book review : Coding for Penetration Testers

Pour une fois les spams envahissant ma mailbox recèlent une bonne nouvelle. Et oui, l’annonce des nouvelles publications d’ouvrages sécurité n’aurait pas du se retrouver dans le débarras, mais heureusement, je parcours malgré tout les titres avant la fatale étape de la suppression.

Après un examen attentif de ces nouveautés, je choisis finalement le livre « Coding for penetration testers ». Un vieux fantasme de jeune homme, travailler honnêtement mais malgré tout être capable d’effleurer du doigt les zones de gris existant dans le domaine de la sécurité.

le résumé du livre

Malgré un titre pouvant paraître prometteur (racoleur ?), ce livre offre essentiellement une introduction au développement dans quelques-uns des grands langages scriptés (Perl, Python, PHP, Shell, …six chapitres sur dix au total). Quelques arguments en début de chapitres pourraient permettre d’orienter le choix d’un langage face à une situation. Malheureusement, en oubliant de considérer l’ensemble des librairies existant aujourd’hui sur le web, avec un examen basé purement sur la structure basique du langage, il n’est pas possible de faire le meilleur choix pour une situation donnée. C’est en tout cas le point de vue de quelqu’un cherchant avant tout à trouver/créer un outil rapidement pour résoudre une situation et pas à devenir développeur professionnel. L’outil en lui-même n’a d’intérêt que par le résultat qu’il apporte.

Pour avoir déjà été confronté à ce type de choix dans le passé, j’ai finalement sélectionné le langage qui m’offrait le plus de librairies et de fonctions toutes faites pour arriver à mon but. J’ai donc été obligé de me confronter à Perl, Python ou tout simplement … le shell. Et quoiqu’on en dise, rien ne sert de jouer au puriste (qui préférera toujours le C ou le C++ pour la plus grande souffrance des simples mortels), le plus rapide et le plus accessible n’est pas forcément un mauvais choix.

les moins

Par ailleurs, si l’on regarde l’approche visant à enseigner les bases des langages, il devient vite évident qu’un néophyte devra forcément se tourner vers une littérature plus pédagogique, tandis que l’utilisateur avancé n’apprendra pas grand-chose. De mon coté je considère ces quelques pages dédiés à chaque langage comme un aide mémoire qui pourrait être utile lorsque je reviendrai sur un langage après une longue période sans le côtoyer. Bref, il ne faut pas espérer trouver un ouvrage qui conduira vers le sombre monde des buffers overflow, fuzzing et autres joyeusetés. Si c’était votre espoir, vous êtes déjà trop avancés sur la voie de la connaissance. Passez votre chemin.

les plus

Malgré tout, je retiens une approche qui n’est pas inintéressante en considérant les capacités d’outils comme Nessus ou encore NMAP pour réaliser certaines actions, plutôt que de tout réinventer. En effet, c’est une approche qui n’est pas toujours conseillée, pourtant les capacités du langage LUA permettant de faire des scripts NSE à intégrer dans NMAP semblent vraiment porteuses de promesse. J’évoque NMAP plutôt que NESSUS puisqu’il reste toujours en libre accès pour tous.

ma conclusion

Est-ce que je regrette mon achat ? Et bien globalement oui. Ce livre s’éparpille sur trop de sujets pour pouvoir être réellement utile et efficace pour le lecteur. Il aurait mérité soit d’être plus léger pour se concentrer uniquement sur les informations et propriétés sans évoquer les bases des langages, soit au contraire oser aller vraiment plus loin pour ouvrir grand la porte et éviter au lecteur de devoir se fournir en livres complémentaires ou en heures de recherches sur Internet.

Cedric

Cedric Baillet

Membre actif de la communauté sécurité d'orange Business Services, je suis aujourd'hui en charge, au sein de l'équipe marketing « sécurité »,  de la bonne prise en compte de la sécurité dans nos offres traitant des communications sur IP, et cela du mode cloud à l'intégré classique. Un large périmètre pour rencontrer des problématiques complexes sur le plan technique comme sur le plan organisationnel. Bref, un océan de motivation pour toute personne qui marche  au challenge et à l'envie d'apprendre.