Cette page donne une vue d'ensemble sommaire des étapes nécessaires pour conduire un audit de paquet.
La première étape est en fait celle du choix du paquet à examiner, vous devriez choisir le plus critique en terme de sécurité.
Allez voir la liste des paquets que nous considérons comme importants à auditer pour des suggestions pour vous aider à vous décider.
Il doit être clair que nous n'essayons pas de nous assurer qu'un paquet n'est audité qu'une seule fois. Si plusieurs personnes choisissent d'examiner le même paquet, c'est une bonne chose, puisque cela démontre que de nombreuses personnes considèrent le paquet comme sensible en terme de sécurité.
En autorisant une sélection des paquets essentiellement aléatoire, nous
simplifions la coordination et éliminons le problème du comment
pouvez-vous faire confiance à la personne X pour faire un bon
travail ?
(nous n'en avons pas besoin puisqu'on suppose que tôt ou
tard, quelqu'un d'autre examinera le même programme).
Après avoir fait votre sélection de paquet, vous aurez à démarrer véritablement l'audit.
Si vous n'êtes pas sûr des types de problèmes que vous cherchez, commencez par lire un livre sur le développement de logiciels sûrs.
Le guide Secure Programming for Linux and Unix HOWTO comporte beaucoup de bonnes informations qui peuvent vous aider. Secure Coding: Principles & Practices par Mark G. Graff et Kenneth R. van Wyk est également un excellent livre.
Bien que les outils ne soient par parfaits, ils restent cependant très utiles pour trouver des vulnérabilités. Allez voir la page des outils d'audit pour plus d'informations sur certains outils d'audit et leur utilisation.
De la même façon que regarder le code en lui-même, c'est une bonne idée de lire la documentation du paquet, d'essayer de l'installer et de l'utiliser.
Cela doit vous permettre de penser à des moyens de déstabiliser le programme dans ses opérations habituelles.
Si vous découvrez un problème dans le paquet que vous examinez, vous devriez le rapporter. Dans le rapport d'un bogue de sécurité, essayez de fournir un correctif ; ainsi, les développeurs pourront le corriger dans les temps. Il n'est pas nécessaire de fournir un exemple d'attaque (souvent appelé exploit ou proof of concept) puisque le correctif devrait parler de lui-même. C'est souvent mieux d'investir son temps dans la réalisation d'un correctif propre plutôt que dans la fourniture d'une attaque réussissant à exploiter le bogue.
Voici une liste des étapes que nous vous recommandons de suivre si vous avez trouvé un bogue de sécurité dans Debian :
Si vous n'avez pas de correctif, plus vous donnerez de détails sur l'étendue du problème, sa gravité et les manières de le contourner, mieux ce sera.
Vous remarquerez que ces étapes peuvent dépendre du risque associé à la vulnérabilité trouvée. Vous devez évaluer le risque en vous basant sur :
Ce n'est pas la même chose de rapporter, par exemple, une attaque locale par lien symbolique qui ne peut être utilisée que par des utilisateurs authentifiés, qui leur permet uniquement d'endommager le système, que de rapporter une exploitation distante de dépassement de tampon, qui donne les droits administrateur, et est présente dans un logiciel d'usage très répandu.
Dans la plupart des cas, puisque la plupart des bogues de sécurité ne devraient pas être fermés avant qu'ils soient corrigés, ne les rapportez pas par l'habituel système de suivi des bogues de Debian, mais rapportez plutôt le problème directement à l'équipe de sécurité qui s'occupera de publier un paquet mis à jour, et une fois la correction effectuée, de le rapporter dans le BTS.