pkgsrc

Les projets qui suivent les meilleures pratiques ci-dessous peuvent s'auto-certifier et montrer qu'ils ont obtenu le badge de la Open Source Security Foundation (OpenSSF).

Si c'est votre projet, veuillez indiquer votre statut de badge sur votre page de projet ! Le statut du badge ressemble à ceci : Le niveau de badge pour le projet 112 est passing Voici comment l'intégrer :

Ce sont les critères du niveau Basique. Vous pouvez également afficher les critères des niveaux Argent ou Or.

        

 Notions de base 13/13

  • Identification

    Portable package manager

    Quel(s) langage(s) de programmation sont utilisés pour implémenter le projet ?
  • Contenu basique du site Web du projet


    Le site du projet DOIT décrire succinctement ce que le logiciel fait (quel problème résout-il ?). [description_good]

    "portable package build system", near the logo.



    Le site Web du projet DOIT fournir des informations sur la façon d'obtenir, de fournir des commentaires (comme des signalements de bogues ou des demandes d'amélioration) et de contribuer au logiciel. [interact]

    Mentions mailing list, IRC on the front page



    L'information sur la façon de contribuer DOIT expliquer le processus de contribution (par exemple, les pull requests sont-ils utilisés ?) (URL requise) [contribution]

    Chapter 21 of the pkgsrc guide: http://www.netbsd.org/docs/pkgsrc/submit.html "Submitting source packages (for non-NetBSD-developers)" mentions: - using the bug repository (send-PR) - the open access (after providing an SSH key) "work in progress" repository, which has a website with detailed instructions about how to receive commit access: http://pkgsrc.org/wip/users/



    Les informations sur la façon de contribuer DEVRAIENT inclure les exigences pour des contributions acceptables (par exemple, une référence à toute norme de codage requise). (URL requise) [contribution_requirements]

    Contributors are often referred to the pkgsrc guide, for example the following example exists for making a package: http://www.netbsd.org/docs/pkgsrc/examples.html


  • Licence FLOSS

    Sous quelle(s) licence(s) le projet est-il distribué ?



    Le logiciel produit par le projet DOIT être distribué en tant que FLOSS. [floss_license]

    All of the pkgsrc infrastructure is released under various BSD licenses.



    Il est PROPOSÉ que toute licence requise pour le logiciel produit par le projet soit approuvée par l'Open Source Initiative (OSI). [floss_license_osi]

    Most code is released under BSD license, but a small amount of it is still BSD 4 clause license.



    Le projet DOIT afficher la ou les licences de ses résultats dans un emplacement standard dans leur dépôt source. (URL requise) [license_location]
  • Documentation


    Le projet DOIT fournir une documentation de base pour le logiciel produit par le projet. [documentation_basics]

    the pkgsrc guide is extremely detailed. http://www.netbsd.org/docs/pkgsrc/



    Le projet DOIT fournir une documentation de référence qui décrit l'interface externe (entrée et sortie) du logiciel produit par le projet. [documentation_interface]
  • Autre


    Les sites du projet (site Web, dépôt et URLs de téléchargement) DOIVENT supporter HTTPS en utilisant TLS. [sites_https]

    Download URL: https://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2016Q1/ Project website: https://pkgsrc.org/ Repository is over CVS (thus SSH) or git



    Le projet DOIT avoir un ou plusieurs mécanismes de discussion (y compris les changements et les problèmes proposés) qui peuvent être recherchés, permettent de désigner les messages et les sujets par une URL, permettent aux nouvelles personnes de participer à certaines des discussions et ne nécessitent pas d'installation côté client de logiciels propriétaires. [discussion]

    Mailing lists: pkgsrc-users (for users, suggested for new contributors too): http://mail-index.netbsd.org/pkgsrc-users/2016/04/thread1.html tech-pkg (very technical discussion of packaging problems): http://mail-index.netbsd.org/tech-pkg/2016/04/thread1.html



    Le projet DEVRAIT fournir de la documentation en anglais et être en mesure d'accepter les signalements de bogues et les commentaires sur le code en anglais. [english]

    Every website to do with the project is in English.



    Le projet DOIT être maintenu. [maintained]


(Avancé) Quels autres utilisateurs ont les droits supplémentaires pour modifier cette soumission de badge? Actuellement : []



Default package manager for several open source operating systems, including: NetBSD, SmartOS, MINIX3. It works very well on others, too: OS X, Linux, etc. Every file downloaded for building a package is checked against a SHA sum. Several built in tools allow auditing for security purposes. It optionally warns you about any known vulnerability when building a package, and provides a tool to check if there are any (even new) vulnerabilities in installed packages. This is the database of known package vulnerabilities: https://ftp.netbsd.org/pub/NetBSD/packages/vulns/pkg-vulnerabilities It doesn't allow packages that cannot be built exclusively from source code: even compilers such as Go are booted from C - first by building Go 1.4, then building the latest Go compiler using the booted Go 1.4 compiler.

  • Dépôt source public sous contrôle de version


    Le projet DOIT avoir un dépôt source sous contrôle de version qui est publiquement lisible et possède une URL. [repo_public]

    Le dépôt source du projet DOIT suivre les changements apportés, qui a effectué les changements et quand les changements ont été effectués. [repo_track]

    Through CVS.



    Pour permettre une analyse collaborative, le dépôt source du projet DOIT inclure des versions provisoires pour examen entre versions officielles ; Il NE DOIT PAS inclure que les dernières versions. [repo_interim]

    pkgsrc supports two branches: pkgsrc-current, which has the latest packages and uses a freeze period for extensive review (but is possible to review continuously) pkgsrc-stable, which is a release branch.



    Il est PROPOSÉ qu'un logiciel reconnu de contrôle de version distribué soit utilisé (par exemple, git) pour le dépôt source du projet. [repo_distributed]

  • Numérotation unique de la version


    Les résultats du projet DOIVENT avoir un identifiant de version unique pour chaque version destinée à être utilisée par les utilisateurs. [version_unique]

    Quarterly releases are made. The current release is 2016Q1. It is not properly a "release", because security and significant bug fixes can be done, but stability must be preserved.



    Il est PROPOSÉ d'utiliser le format de numérotation de version appelé Versionage Sémantique (SemVer) ou Versionage Calendaire (CalVer). Il est PROPOSÉ que ceux qui utilisent CalVer incluent une valeur de niveau micro. [version_semver]

    It is a package manager - the releases exist to avoid major instability-inducing changes. they are not properly a released version, but a branch which is guaranteed to only have minimal, required changes, such as security backports.



    Il est PROPOSÉ que les projets identifient chaque version dans leur système de contrôle de version. Par exemple, il est PROPOSÉ que ceux qui utilisent git identifient chaque version à l'aide des tags de git. [version_tags]

    Releases are CVS branches. For example, it may be used with cvs ... -r2016Q1.


  • Notes de version


    Le projet DOIT fournir, avec chaque distribution, des notes de version qui sont un résumé lisible par les humains des changements majeurs dans cette version afin d'aider les utilisateurs à déterminer s'ils doivent se mettre à niveau et quel sera l'impact de la mise à niveau. Les notes de version NE DOIVENT PAS être la sortie brute d'un journal de contrôle de version (par exemple, les résultats de la commande « git log » ne sont pas des notes de version). Les projets dont les résultats ne sont pas destinés à être réutilisés dans plusieurs emplacements (tels que le logiciel pour un site Web ou un service unique) ET qui utilisent la livraison continue PEUVENT sélectionner « N/A ». (URL requise) [release_notes]

    It contains a doc/CHANGES-YEAR file. the latest, viewed from cvsweb, is the following: http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/pkgsrc/doc/CHANGES-2016?rev=1.1833&content-type=text/plain



    Les notes de version DOIVENT identifier toutes les vulnérabilités connues du public corrigées dans cette version qui avaient déjà une affectation CVE ou similaire lors de la création de la version. Ce critère peut être marqué comme non applicable (N/A) si les utilisateurs ne peuvent pas en général mettre à jour le logiciel eux-mêmes (par exemple, comme c'est souvent le cas pour les mises à jour du noyau). Ce critère s'applique uniquement aux résultats du projet, pas à ses dépendances. S'il n'y a pas de notes de version ou qu'il n'y a pas eu de vulnérabilité publiquement connue, choisissez N/A. [release_notes_vulns]

    Rather than offer a singular list which must be viewed by a human, it offers extensive tools for checking for vulnerabilities. Upon install, the user can opt to disallow packages known to be vulnerable (ALLOW_VULNERABLE_PACKAGES=yes), or audit already installed packages using convenient tools: https://www.netbsd.org/docs/pkgsrc/using.html#vulnerabilities


  • Procédure de signalement des bogues


    Le projet DOIT fournir un processus permettant aux utilisateurs de soumettre des signalements de bogue (par exemple, en utilisant un suivi des problèmes ou une liste de diffusion). (URL requise) [report_process]

    Le projet DEVRAIT utiliser un suivi des problèmes pour le suivi des problèmes individuels. [report_tracker]

    You may search the issue tracker here: http://www.netbsd.org/support/query-pr.html



    Le projet DOIT confirmer une majorité des signalements de bogues soumis au cours des 2 à 12 derniers mois (inclus) ; la réponse ne doit pas nécessairement inclure une correction. [report_responses]

    While no link for statistics exist, it is uncommon for a bug report to be unacknowledged.



    Le projet DEVRAIT répondre à une majorité (>50%) des demandes d'amélioration au cours des 2 à 12 derniers mois (inclus). [enhancement_responses]


    Le projet DOIT avoir une archive publique pour les signalements et les réponses pour une recherche ultérieure. (URL requise) [report_archive]

    You may search the issue tracker here: http://www.netbsd.org/support/query-pr.html Or the mailing lists of said issue tracker: http://mail-index.netbsd.org/pkgsrc-bugs/index.html


  • Processus de signalement de vulnérabilité


    Le projet DOIT publier le processus de signalement des vulnérabilités sur le site du projet. (URL requise) [vulnerability_report_process]

    It suggests contacting the pkgsrc-security team in the pkgsrc guide: http://www.netbsd.org/docs/pkgsrc/fixes.html#security-handling



    Si les signalements de vulnérabilités privés sont pris en charge, le projet DOIT inclure la façon d'envoyer l'information de manière confidentielle. (URL requise) [vulnerability_report_private]

    Contacting pkgsrc-security is strongly recommended, and emails to this list are not public by default: http://www.netbsd.org/docs/pkgsrc/fixes.html#security-handling



    Le temps de réponse initial du projet pour tout signalement de vulnérabilité reçu au cours des 6 derniers mois DOIT être inférieur ou égal à 14 jours. [vulnerability_report_response]

  • Système de construction opérationnel


    Si le logiciel produit par le projet nécessite d'être construit pour être utilisé, le projet DOIT fournir un système de construction fonctionnel qui peut reconstruire automatiquement le logiciel à partir du code source. [build]

    pkgsrc carries a bootstrap tool: cd pkgsrc/bootstrap && ./bootstrap it will build all the required tools from source code.



    Il est PROPOSÉ d'utiliser des outils courants pour la construction du logiciel. [build_common_tools]

    It uses mostly BSD makefiles. It contains any tools required for building packages.



    Le projet DEVRAIT être constructible en utilisant uniquement des outils FLOSS. [build_floss_tools]

  • Suite de tests automatisée


    Le projet DOIT utiliser au moins une suite de tests automatisée publiée publiquement comme FLOSS (cette suite de tests peut être maintenue sous la forme d'un projet FLOSS distinct). Le projet DOIT clairement montrer ou documenter comment exécuter la ou les suites de tests (par exemple, via un script d'intégration continue (CI) ou via la documentation dans des fichiers tels que BUILD.md, README.md ou CONTRIBUTING.md). [test]

    pkglint is the common tool for testing an individual package and is BSD-2 licensed, it is also a package hosted within pkgsrc. mass build tests can be done using bulkbuild, a BSD licensed package also hosted within pkgsrc.



    Une suite de tests DEVRAIT être invocable d'une manière standard pour ce langage. [test_invocation]

    typical invocation of pkglint: pkglint -Wall -Call.



    Il est PROPOSÉ que la suite de tests couvre la plupart (ou idéalement toutes) les branches du code, les champs de saisie et les fonctionnalités. [test_most]


    Il est PROPOSÉ que le projet utilise une intégration continue (où le code nouveau ou modifié est fréquemment intégré dans un dépôt de code central et des tests automatisés sont exécutés sur le résultat). [test_continuous_integration]

    raw bulk build test reports, on a mailing list archive: http://mail-index.netbsd.org/pkgsrc-bulk/2016/04/thread1.html


  • Nouveau test de fonctionnalité


    Le projet DOIT avoir une politique générale (formelle ou non) qui spécifie que, dès qu'une nouvelle fonctionnalité majeure est ajoutée au logiciel produit par le projet, des tests de cette fonctionnalité devraient être ajoutés à une suite de tests automatisée. [test_policy]


    Le projet DOIT avoir la preuve que la politique de test pour l'ajout de tests a été respectée dans les dernières modifications majeures apportées au logiciel produit par le projet. [tests_are_added]

    Bulk build reports are publicly viewable on a mailing list archive: http://mail-index.netbsd.org/pkgsrc-bulk/2016/04/thread1.html



    Il est PROPOSÉ que cette politique sur l'ajout de tests (voir la politique de test) soit documentée dans les instructions pour les propositions de modification. [tests_documented_added]

    The addition of pkgsrc infrastructure requiring additional tests is very rarely done, most of the work is on the packages themselves. Discussions of additional infrastructure are expected to take place in tech-pkg, but it is very infrequently done, so it is undocumented.


  • Options d'avertissement


    Le projet DOIT activer une ou plusieurs options d'avertissement du compilateur, un mode du langage « sûr » ou utiliser un outil « linter » séparé pour rechercher des erreurs de qualité de code ou des erreurs simples courantes, s'il existe au moins un outil FLOSS qui peut implémenter ce critère dans le langage sélectionné. [warnings]

    pkglint is used, and checks new packages for problems. it is a BSD-2 licensed project hosted within pkgsrc.



    Le projet DOIT résoudre les avertissements. [warnings_fixed]


    Il est PROPOSÉ que les projets soient maximalement stricts avec les avertissements dans le logiciel produit par le projet, quand cela est approprié. [warnings_strict]

  • Connaissance du développement sécurisé


    Le projet DOIT avoir au moins un développeur principal qui sait comment concevoir un logiciel sécurisé. (Voir les « détails » pour les exigences exactes.) [know_secure_design]

    It has the pkgsrc-security team with several such members.



    Au moins l'un des principaux développeurs du projet DOIT connaître les types courants d'erreurs qui conduisent à des vulnérabilités dans ce genre de logiciel, ainsi qu'au moins une méthode pour contrer ou atténuer chacun d'eux. [know_common_errors]

  • Utiliser de bonnes pratiques de base de cryptographie

    Notez que certains logiciels n'ont pas besoin d'utiliser des mécanismes cryptographiques. Si votre projet produit un logiciel qui (1) inclut ou active la fonctionnalité de chiffrement, et (2) peut être publié des États-Unis (US) vers l'extérieur des États-Unis ou vers un citoyen autre qu'américain, vous pouvez être légalement obligé à faire quelques étapes supplémentaires. En règle générale, cela implique simplement l'envoi d'un email. Pour plus d'informations, consultez la section sur le chiffrement de Comprendre la technologie Open Source et les contrôles à l'exportation américains .

    Le logiciel produit par le projet DOIT utiliser, par défaut, uniquement les protocoles cryptographiques et les algorithmes publiés publiquement et revus par des experts (si des protocoles et algorithmes cryptographiques sont utilisés). [crypto_published]

    SHA-3



    Si le logiciel produit par le projet est une application ou une bibliothèque, et si son objectif principal n'est pas d'implémenter de la cryptographie, alors il DEVRAIT simplement appeler un logiciel spécialement conçu pour implémenter des fonctions cryptographiques ; il ne DEVRAIT PAS ré-implémenter les siennes. [crypto_call]

    SHA-3 code that is BSD-licensed could not be found.



    Toutes les fonctionnalités du logiciel produit par le projet qui dépendent de la cryptographie DOIVENT être réalisables à l'aide de FLOSS. [crypto_floss]


    Les mécanismes de sécurité dans le logiciel produit par le projet DOIVENT utiliser des longueurs de clés par défaut qui satisfont au moins aux exigences minimales du NIST jusqu'à l'année 2030 (comme indiqué en 2012). Il DOIT être possible de configurer le logiciel afin que les plus petites longueurs de clés soient complètement désactivées. [crypto_keylength]

    SHA-3 is used.



    Les mécanismes de sécurité par défaut dans le logiciel produit par le projet NE DOIVENT PAS dépendre d'algorithmes cryptographiques cassés (par exemple, MD4, MD5, DES unique, RC4, Dual_EC_DRBG) ou utiliser des modes de chiffrement inappropriés dans le contexte, sauf si ils sont nécessaires pour implémenter un protocole d'interopérabilité (où le protocole implémenté est la version la plus récente du standard supporté largement par l'écosystème du réseau, l'écosystème requiert l'utilisation de cet algorithme ou mode, et cet écosystème n'offre pas d'alternative plus sûre). La documentation DOIT décrire tous les risques de sécurité appropriés et les parades connues si ces algorithmes ou modes cassés sont nécessaires pour un protocole d'interopérabilité. [crypto_working]


    Les mécanismes de sécurité par défaut dans le logiciel produit par le projet NE DEVRAIENT PAS dépendre d'algorithmes ou de modes cryptographiques avec des faiblesses sérieuses connues (par exemple, l'algorithme de hachage cryptographique SHA-1 ou le mode CBC en SSH). [crypto_weaknesses]

    pkgsrc itself uses a SHA3 sum for online source code downloads.



    Les mécanismes de sécurité dans le logiciel produit par le projet DEVRAIENT implémenter la confidentialité persistante pour les protocoles d'échange de clés afin qu'une clé de session dérivée d'un ensemble de clés à long terme ne soit pas compromise si l'une des clés à long terme est compromise dans le futur. [crypto_pfs]


    Si le logiciel produit par le projet entraîne la sauvegarde de mots de passe pour l'authentification d'utilisateurs externes, les mots de passe DOIVENT être sauvegardés comme hachages itérés avec un salage par utilisateur en utilisant un algorithme d'étirement de clé (itéré) (par exemple Argon2id, Bcrypt, Scrypt, ou PBKDF2). Voir également le pense-bête sur le stockage des clés d'OWASP. [crypto_password_storage]

    No passwords.



    Les mécanismes de sécurité dans le logiciel produit par le projet DOIVENT générer toutes les clés cryptographiques et les nonces en utilisant un générateur de nombres aléatoires cryptographiquement sécurisé, et NE DOIVENT PAS le faire en utilisant des générateurs qui ne seraient pas cryptographiquement sécurisés. [crypto_random]

  • Livraison sécurisée contre les attaques man-in-the-middle (MITM)


    Le projet DOIT utiliser un mécanisme de livraison qui contrecarre les attaques MITM. L'utilisation de https ou ssh+scp est acceptable. [delivery_mitm]

    CVS is done over SSH. source code downloads are checked against SHA3 sums, as the downloads are typically done from the original source, not a rehosted repository of source code, and not all packages use HTTPS, and even if they did, they could not be trusted to not have a security problem and change the source code for a package.



    Un hachage cryptographique (par exemple, un sha1sum) NE DOIT PAS être récupéré par http et utilisé sans vérifier une signature cryptographique. [delivery_unsigned]

  • Vulnérabilités publiquement identifiées et corrigées


    Il ne DOIT pas y avoir de vulnérabilités non corrigées de gravité moyenne ou supérieure connues publiquement depuis plus de 60 jours. [vulnerabilities_fixed_60_days]

    pkgsrc tools have no known vulnerabilities (they are extremely minimal). packages with vulnerabilities are patched when possible.



    Les projets DEVRAIENT corriger rapidement toutes les vulnérabilités critiques après leur signalement. [vulnerabilities_critical_fixed]

    pkgsrc infrastructure has no known vulnerabilities. some packages do and do not contain any fixes - when they do, they are updated.


  • Autres problèmes de sécurité


    Les dépôts publics NE DOIVENT PAS fuiter un certificat privé valide (par exemple, un mot de passe ou une clé privée) qui est destiné à limiter l'accès public. [no_leaked_credentials]

    Private credentials are not used.


  • Analyse statique de code


    Au moins un outil d'analyse statique de code (au-delà des avertissements du compilateur et des modes « sûrs » des languages) DOIT être appliqué à toute distribution majeure proposée avant sa sortie s'il existe au moins un outil FLOSS qui implémente ce critère dans le langage sélectionné. [static_analysis]

    It is a package manager using primarily makefiles, so only the pkgsrc tool pkglint can be reasonably used.



    Il est PROPOSÉ qu'au moins l'un des outils d'analyse statique utilisés pour le critère d'analyse statique inclue des règles ou des approches pour rechercher des vulnérabilités courantes dans le langage ou l'environnement analysé. [static_analysis_common_vulnerabilities]

    Downloaded external files are checked against a SHA3 sum, but no further checks are possible.



    Toutes les vulnérabilités exploitables de gravité moyenne ou plus découvertes avec une analyse statique de code DOIVENT être corrigées en temps approprié après leur confirmation. [static_analysis_fixed]

    pkglint should not be capable of discovering vulnerabilities except for MITM attacks (by a mismatched signature for downloaded files), which are tested at every use.



    Il est PROPOSÉ que l'analyse statique du code source se produise à chaque commit ou au moins quotidiennement. [static_analysis_often]

    Contributors are strongly encouraged to use pkglint


  • Analyse dynamique de code


    Il est PROPOSÉ qu'au moins un outil d'analyse dynamique soit appliqué à tout candidat pour une version majeure du logiciel avant sa distribution. [dynamic_analysis]

    pkgsrc only contains the files required to build the packages. the packages themselves are expected to contain most of the vulnerabilities.



    Il est PROPOSÉ que, si le logiciel produit par le projet comprend un logiciel écrit à l'aide d'un langage non sûr pour les accès mémoire (par exemple, C ou C ++), au moins un outil dynamique (par exemple, un fuzzer ou un scanner d'application Web) soit utilisé de façon routinière en combinaison avec un mécanisme pour détecter des problèmes de sécurité mémoire tels que les dépassements de zone mémoire. Si le projet ne produit pas de logiciel écrit dans un langage non sûr pour les accès mémoire, choisissez « non applicable » (N/A). [dynamic_analysis_unsafe]

    most of pkgsrc is the makefiles, which aren't normally tested for such things.



    Il est PROPOSÉ que le projet utilise une configuration pour au moins une analyse dynamique (comme le test ou le fuzzing) qui active de nombreuses assertions. Dans de nombreux cas, ces assertions ne doivent pas être activées dans les versions de production. [dynamic_analysis_enable_assertions]


    Toutes les vulnérabilités exploitables de gravité moyenne ou plus découvertes avec une analyse de code dynamique DOIVENT être corrigées en un temps approprié après leur confirmation. [dynamic_analysis_fixed]

    Typically no dynamic code analysis is done. however, any reports will be answered.



Ces données sont disponibles sous licence Creative Commons Attribution version 3.0 (CC-BY-3.0) comme indiqué dans les conditions d'utilisation de la Open Source Security Foundation. Chacun peut librement partager et adapter les données, à condition de créditer leur origine. Veuillez créditer Maya Rashish et les contributeurs du badge des meilleures pratiques de la OpenSSF.

Soumission du badge du projet appartenant à : Maya Rashish.
Soumission créée le 2016-05-04 21:27:53 UTC, dernière mise à jour le 2016-06-29 23:49:16 UTC. Le dernier badge obtenu l'a été le 2016-06-29 23:49:00 UTC.

Retour