SCW 아이콘
영웅 배경, 구분선 없음
블로그

Mon pentester, mon ennemi ? Les développeurs révèlent ce qu'ils pensent réellement des résultats des pentests et des analyses statiques

마티아스 마두, Ph.
게시일 : 2020년 12월 15일
마지막 업데이트: 2026년 3월 8일

Dans son habitat naturel, un développeur est souvent aperçu dans un état de grande concentration, en train de coder des fonctionnalités géniales dans des délais serrés. La création de fonctionnalités est souvent notre partie préférée du travail, et c'est en fait le résultat fondamental du cycle de vie du développement logiciel (SDLC).

Cependant, comme nous l'avons déjà dit, beaucoup d'entre nous accordent toujours la priorité aux fonctionnalités par rapport aux meilleures pratiques de sécurité. Après tout, dans la plupart des organisations, cela est conçu pour être le travail de quelqu'un d'autre et la formation adéquate en matière de sécurité pour nous est limitée. Les tests d'intrusion et les outils d'analyse statique (mieux connus sous le nom de SAST) ne sont qu'une partie du processus global visant à atténuer les risques de sécurité, fonctionnant de manière assez indépendante de ce que nous faisons... jusqu'à ce que le code nous soit renvoyé pour les correctifs, bien sûr.

Et c'est à ce moment-là que de nombreux développeurs pensent : »Est-ce que les pentesters me détestent ? ».

Ces interactions définissent souvent une équipe, une culture. Ce qui est inquiétant, c'est que le manque de communication, de compréhension et de collaboration globale a créé des tensions, du moins du côté du développeur. Pensez-y : imaginez que vous avez passé quelques centaines d'heures à sculpter une statue merveilleuse, puis que quelqu'un arrive avec un marteau et commence à en casser des morceaux après vous avoir dit que ses fondations ne sont pas à la hauteur. C'est la dynamique perçue entre un testeur et un développeur : ce dernier voit ses logiciels préférés massacrés par un étranger qui n'a pas travaillé avec lui ; au lieu de cela, ils ont allongé la charge de travail et retardé la satisfaction du code d'expédition.

Ayant emménagé dans le domaine de la sécurité il y a longtemps, je peux voir les deux côtés de l'histoire. Et non, les pentesters ne le font pas haine développeurs. Selon toute probabilité, le pentester est surchargé de travail et soumis à de fortes pressions. En tant que tel, un flux constant de bogues de sécurité courants qui pourraient être facilement corrigés au niveau du code prend du temps, des ressources et de la marge de manœuvre par rapport aux problèmes vraiment graves.

J'ai toujours considéré les pentesters comme des parents. Ils veulent que tu réussis, et quand tu ne le fais pas... ils ne sont pas fâchés, juste déçus.

Maintenant que je vous ai donné cette image (peut-être un peu injuste), explorons-la un peu plus en profondeur. Qu'est-ce qui a provoqué cette vision du monde chez les développeurs ?

« Bien sûr, je suis sur la défensive ; ils me disent comment faire mon travail ! »

Personne n'aime avoir l'impression d'avoir fait du mauvais travail ou d'avoir l'impression que quelqu'un n'aime pas son travail. Malheureusement pour les développeurs, lorsque les résultats des analyses statiques et des pentests leur sont communiqués, cela peut ressembler à un bulletin. Ils ont reçu de mauvaises notes, mais en fin de compte, leur les chefs les évaluent en fonction des fonctionnalités qu'ils ont créées et du délai de livraison, et non de la présence d'éléments vulnérables dans le logiciel ou non.

Pour le pauvre pentester, il s'agit d'une question de « ne tirez pas sur le messager ». Cela n'a rien de personnel : ils sont chargés de trouver des bugs, et ils les ont trouvés. Certes, d'un point de vue personnel, certains pentesters sont peut-être plus grincheux que d'autres, mais ils ne sont pas (ou ne devraient pas) avoir pour but de crucifier les équipes de développement. Ce serait beaucoup plus facile pour les deux équipes si elles étaient sur la même longueur d'onde en ce qui concerne les meilleures pratiques en matière de sécurité. Et les développeurs ne sont pas censés être parfaits ; en réalité, l'équipe de test est là pour les empêcher de publier du code vulnérable.

« Ils m'ont demandé de régler tous ces problèmes mineurs. Ne savent-ils pas qu'il existe des priorités plus importantes ? Et pourquoi ne m'aident-ils pas à les réparer s'ils s'en soucient tant ? »

C'est vrai : la priorité absolue d'un développeur sera toujours la création de fonctionnalités, et dans ce monde fou de numérisation rapide, il faudra le faire rapidement. Alors que certains codeurs s'intéressent personnellement à la sécurité et au codage sécurisé, le sentiment général est que la sécurité est « le problème de quelqu'un d'autre », ce qui inclut inévitablement les pentesters.

Les vulnérabilités les plus courantes sont en effet des problèmes mineurs à corriger. Une fois connus, les correctifs sont simples à exécuter pour des tâches telles que le cross-site scripting (XSS) et l'injection SQL... Le problème est que de nombreux développeurs ne se rendent pas compte qu'ils les introduisent en premier lieu, et ces problèmes apparemment mineurs constituent la petite fenêtre d'opportunité dont un attaquant a besoin pour provoquer des problèmes dévastateurs à une entreprise. Selon Akamai, entre novembre 2017 et mars 2019, les vulnérabilités liées à l'injection SQL ont été prises en compte 65 % de tous les vecteurs d'attaque Web. Pour une vulnérabilité qui a été corrigée depuis plus de vingt ans, c'est une statistique qui donne à réfléchir.

Certaines équipes de pentest aident à corriger les bogues de sécurité, mais d'autres signalent les mauvaises nouvelles et s'attendent à ce que les développeurs travaillent sur des correctifs, même s'ils sont passés à un autre projet au moment où cela se produit. Et dans certains cas, l'équipe de développement peut être confrontée à un rapport contenant des bogues qu'elle ne peut pas (ou ne devrait pas être censée) corriger. Cela doit tout de même faire partie des résultats et, encore une fois, ne pas être pris personnellement en compte.

Le « juste milieu » serait que les pentesters, le personnel de sécurité et les responsables du développement jouent davantage un rôle de mentor pour s'assurer que l'équipe dispose de ce dont elle a besoin en termes de formation et d'outils efficaces, donnant ainsi aux codeurs individuels les meilleures chances de réussir et de coder en toute sécurité dès le début du SDLC. Les deux équipes devraient vraiment se rencontrer à mi-chemin pour s'assurer que la sécurité est prise en compte dès le départ, dans le cadre d'une saine pratique DevSecOps.

« Mes connaissances en matière de sécurité sont bien meilleures que ce que l'on pense ; ces rapports sont pour la plupart des faux positifs ou ne sont pas importants ».

L'analyse statique est un élément du processus de sécurité du SDLC, et les outils d'analyse statique (SAST) jouent un rôle fondamental. Et oui, les faux positifs sont un problème avec ces types de scanners et d'autres (DAST/IAST/RAST). C'est un inconvénient dans un processus déjà lent, qui nécessite une révision manuelle du code et met la pression sur les développeurs comme sur les pentesters. Le personnel de pentesting a mis du temps à mettre en place méticuleusement des règles personnalisées afin d'éviter des lectures inexactes et a fourni des conseils spécifiques à l'entreprise, mais certaines fausses lectures se glissent et se retrouvent devant un développeur époustouflant.

Ce processus n'est pas parfait, mais l'autre problème est que de nombreux développeurs ne disposent pas des connaissances suffisantes pour atténuer de manière cohérente de nombreuses vulnérabilités courantes. Étant donné que la formation à la sécurité est rare dans l'enseignement supérieur et que l'efficacité de la formation en cours d'emploi varie, il va de soi qu'il peut également y avoir un certain excès de confiance (et ce n'est pas de leur faute : en tant qu'industrie, nous devons mieux les équiper).

« Je ne savais pas que cette application allait être testée, mais je dois maintenant m'occuper des tâches de correction ».

Parfois, des ingénieurs surchargés de travail pensent que les pentesters ne font que rester dans les coulisses, attendant le moment venu pour tester une application et pleuvoir sur le défilé de l'équipe de développement. Ils font des tests excessifs, ils font des bêtises, ils créent du travail supplémentaire.

Le seul problème, c'est qu'ils sont eux aussi surchargés de travail (d'autant plus, en fait) que la pénurie de compétences en cybersécurité est à des niveaux désastreux et qui ne font qu'empirer) et vous n'avez tout simplement pas le temps de tester sans raison. Ils ne sont pas les seuls à décider de la priorité des tests ; ceux-ci peuvent avoir été demandés par la haute direction, par un client, dans le cadre d'un audit de sécurité ou même déterminés à la suite d'un programme de bug bounty.

Pour un développeur, il est ennuyeux de se voir retirer des sprints de création de fonctionnalités actuels pour travailler sur des correctifs de sécurité, surtout si ce n'est pas son travail. La dernière mise à jour a peut-être été effectuée par une équipe précédente ou par un autre fournisseur. Cependant, la sécurité est l'affaire de tous. Cela ne signifie pas que tous les développeurs doivent s'approprier les bogues de sécurité comme s'ils les avaient tous créés eux-mêmes, mais ils doivent faire en sorte que la sécurité soit une responsabilité partagée.

Où aller à partir d'ici ?

Parfois, un changement de mentalité peut suffire pour faire des progrès significatifs dans la résolution d'un problème. Nous avons parlé de la réaction plutôt glaciale d'un développeur face à des résultats moins que favorables aux pentests, mais que se passerait-il s'il pouvait en faire un défi ? Peut-être pourraient-ils considérer le pentester comme un adversaire amical, quelqu'un qu'ils peuvent battre à leur propre jeu. Après tout, un développeur soucieux de la sécurité capable d'éliminer les bogues courants en écrivant du code va rendre son travail encore plus difficile. En revanche, un développeur qui ne se concentre pas sur la sécurité sera largement battu par ses homologues pentester s'il peut facilement pirater son logiciel.

Les pentesters et les développeurs ne sont peut-être pas en harmonie dans tous les cas, mais leur relation peut être considérablement améliorée lorsqu'une organisation considère la sécurité comme une priorité essentielle et donne aux équipes les connaissances et les outils nécessaires pour réussir, en particulier les développeurs. Il s'agit de savoir si l'instauration d'une culture de sécurité positive à l'échelle de l'entreprise est une priorité, et si nous voulons mener la bataille (actuellement) perdue contre les vulnérabilités courantes, elle doit absolument l'être.

리소스 표시
리소스 표시

Les tests d'intrusion et les outils d'analyse statique (mieux connus sous le nom de SAST) ne sont qu'une partie du processus global visant à atténuer les risques de sécurité. Ils fonctionnent de manière assez indépendante de ce que nous faisons, jusqu'à ce que le code nous soit renvoyé pour les correctifs, bien sûr !

더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
작가
마티아스 마두, Ph.
게시일: 2020년 12월 15일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

Dans son habitat naturel, un développeur est souvent aperçu dans un état de grande concentration, en train de coder des fonctionnalités géniales dans des délais serrés. La création de fonctionnalités est souvent notre partie préférée du travail, et c'est en fait le résultat fondamental du cycle de vie du développement logiciel (SDLC).

Cependant, comme nous l'avons déjà dit, beaucoup d'entre nous accordent toujours la priorité aux fonctionnalités par rapport aux meilleures pratiques de sécurité. Après tout, dans la plupart des organisations, cela est conçu pour être le travail de quelqu'un d'autre et la formation adéquate en matière de sécurité pour nous est limitée. Les tests d'intrusion et les outils d'analyse statique (mieux connus sous le nom de SAST) ne sont qu'une partie du processus global visant à atténuer les risques de sécurité, fonctionnant de manière assez indépendante de ce que nous faisons... jusqu'à ce que le code nous soit renvoyé pour les correctifs, bien sûr.

Et c'est à ce moment-là que de nombreux développeurs pensent : »Est-ce que les pentesters me détestent ? ».

Ces interactions définissent souvent une équipe, une culture. Ce qui est inquiétant, c'est que le manque de communication, de compréhension et de collaboration globale a créé des tensions, du moins du côté du développeur. Pensez-y : imaginez que vous avez passé quelques centaines d'heures à sculpter une statue merveilleuse, puis que quelqu'un arrive avec un marteau et commence à en casser des morceaux après vous avoir dit que ses fondations ne sont pas à la hauteur. C'est la dynamique perçue entre un testeur et un développeur : ce dernier voit ses logiciels préférés massacrés par un étranger qui n'a pas travaillé avec lui ; au lieu de cela, ils ont allongé la charge de travail et retardé la satisfaction du code d'expédition.

Ayant emménagé dans le domaine de la sécurité il y a longtemps, je peux voir les deux côtés de l'histoire. Et non, les pentesters ne le font pas haine développeurs. Selon toute probabilité, le pentester est surchargé de travail et soumis à de fortes pressions. En tant que tel, un flux constant de bogues de sécurité courants qui pourraient être facilement corrigés au niveau du code prend du temps, des ressources et de la marge de manœuvre par rapport aux problèmes vraiment graves.

J'ai toujours considéré les pentesters comme des parents. Ils veulent que tu réussis, et quand tu ne le fais pas... ils ne sont pas fâchés, juste déçus.

Maintenant que je vous ai donné cette image (peut-être un peu injuste), explorons-la un peu plus en profondeur. Qu'est-ce qui a provoqué cette vision du monde chez les développeurs ?

« Bien sûr, je suis sur la défensive ; ils me disent comment faire mon travail ! »

Personne n'aime avoir l'impression d'avoir fait du mauvais travail ou d'avoir l'impression que quelqu'un n'aime pas son travail. Malheureusement pour les développeurs, lorsque les résultats des analyses statiques et des pentests leur sont communiqués, cela peut ressembler à un bulletin. Ils ont reçu de mauvaises notes, mais en fin de compte, leur les chefs les évaluent en fonction des fonctionnalités qu'ils ont créées et du délai de livraison, et non de la présence d'éléments vulnérables dans le logiciel ou non.

Pour le pauvre pentester, il s'agit d'une question de « ne tirez pas sur le messager ». Cela n'a rien de personnel : ils sont chargés de trouver des bugs, et ils les ont trouvés. Certes, d'un point de vue personnel, certains pentesters sont peut-être plus grincheux que d'autres, mais ils ne sont pas (ou ne devraient pas) avoir pour but de crucifier les équipes de développement. Ce serait beaucoup plus facile pour les deux équipes si elles étaient sur la même longueur d'onde en ce qui concerne les meilleures pratiques en matière de sécurité. Et les développeurs ne sont pas censés être parfaits ; en réalité, l'équipe de test est là pour les empêcher de publier du code vulnérable.

« Ils m'ont demandé de régler tous ces problèmes mineurs. Ne savent-ils pas qu'il existe des priorités plus importantes ? Et pourquoi ne m'aident-ils pas à les réparer s'ils s'en soucient tant ? »

C'est vrai : la priorité absolue d'un développeur sera toujours la création de fonctionnalités, et dans ce monde fou de numérisation rapide, il faudra le faire rapidement. Alors que certains codeurs s'intéressent personnellement à la sécurité et au codage sécurisé, le sentiment général est que la sécurité est « le problème de quelqu'un d'autre », ce qui inclut inévitablement les pentesters.

Les vulnérabilités les plus courantes sont en effet des problèmes mineurs à corriger. Une fois connus, les correctifs sont simples à exécuter pour des tâches telles que le cross-site scripting (XSS) et l'injection SQL... Le problème est que de nombreux développeurs ne se rendent pas compte qu'ils les introduisent en premier lieu, et ces problèmes apparemment mineurs constituent la petite fenêtre d'opportunité dont un attaquant a besoin pour provoquer des problèmes dévastateurs à une entreprise. Selon Akamai, entre novembre 2017 et mars 2019, les vulnérabilités liées à l'injection SQL ont été prises en compte 65 % de tous les vecteurs d'attaque Web. Pour une vulnérabilité qui a été corrigée depuis plus de vingt ans, c'est une statistique qui donne à réfléchir.

Certaines équipes de pentest aident à corriger les bogues de sécurité, mais d'autres signalent les mauvaises nouvelles et s'attendent à ce que les développeurs travaillent sur des correctifs, même s'ils sont passés à un autre projet au moment où cela se produit. Et dans certains cas, l'équipe de développement peut être confrontée à un rapport contenant des bogues qu'elle ne peut pas (ou ne devrait pas être censée) corriger. Cela doit tout de même faire partie des résultats et, encore une fois, ne pas être pris personnellement en compte.

Le « juste milieu » serait que les pentesters, le personnel de sécurité et les responsables du développement jouent davantage un rôle de mentor pour s'assurer que l'équipe dispose de ce dont elle a besoin en termes de formation et d'outils efficaces, donnant ainsi aux codeurs individuels les meilleures chances de réussir et de coder en toute sécurité dès le début du SDLC. Les deux équipes devraient vraiment se rencontrer à mi-chemin pour s'assurer que la sécurité est prise en compte dès le départ, dans le cadre d'une saine pratique DevSecOps.

« Mes connaissances en matière de sécurité sont bien meilleures que ce que l'on pense ; ces rapports sont pour la plupart des faux positifs ou ne sont pas importants ».

L'analyse statique est un élément du processus de sécurité du SDLC, et les outils d'analyse statique (SAST) jouent un rôle fondamental. Et oui, les faux positifs sont un problème avec ces types de scanners et d'autres (DAST/IAST/RAST). C'est un inconvénient dans un processus déjà lent, qui nécessite une révision manuelle du code et met la pression sur les développeurs comme sur les pentesters. Le personnel de pentesting a mis du temps à mettre en place méticuleusement des règles personnalisées afin d'éviter des lectures inexactes et a fourni des conseils spécifiques à l'entreprise, mais certaines fausses lectures se glissent et se retrouvent devant un développeur époustouflant.

Ce processus n'est pas parfait, mais l'autre problème est que de nombreux développeurs ne disposent pas des connaissances suffisantes pour atténuer de manière cohérente de nombreuses vulnérabilités courantes. Étant donné que la formation à la sécurité est rare dans l'enseignement supérieur et que l'efficacité de la formation en cours d'emploi varie, il va de soi qu'il peut également y avoir un certain excès de confiance (et ce n'est pas de leur faute : en tant qu'industrie, nous devons mieux les équiper).

« Je ne savais pas que cette application allait être testée, mais je dois maintenant m'occuper des tâches de correction ».

Parfois, des ingénieurs surchargés de travail pensent que les pentesters ne font que rester dans les coulisses, attendant le moment venu pour tester une application et pleuvoir sur le défilé de l'équipe de développement. Ils font des tests excessifs, ils font des bêtises, ils créent du travail supplémentaire.

Le seul problème, c'est qu'ils sont eux aussi surchargés de travail (d'autant plus, en fait) que la pénurie de compétences en cybersécurité est à des niveaux désastreux et qui ne font qu'empirer) et vous n'avez tout simplement pas le temps de tester sans raison. Ils ne sont pas les seuls à décider de la priorité des tests ; ceux-ci peuvent avoir été demandés par la haute direction, par un client, dans le cadre d'un audit de sécurité ou même déterminés à la suite d'un programme de bug bounty.

Pour un développeur, il est ennuyeux de se voir retirer des sprints de création de fonctionnalités actuels pour travailler sur des correctifs de sécurité, surtout si ce n'est pas son travail. La dernière mise à jour a peut-être été effectuée par une équipe précédente ou par un autre fournisseur. Cependant, la sécurité est l'affaire de tous. Cela ne signifie pas que tous les développeurs doivent s'approprier les bogues de sécurité comme s'ils les avaient tous créés eux-mêmes, mais ils doivent faire en sorte que la sécurité soit une responsabilité partagée.

Où aller à partir d'ici ?

Parfois, un changement de mentalité peut suffire pour faire des progrès significatifs dans la résolution d'un problème. Nous avons parlé de la réaction plutôt glaciale d'un développeur face à des résultats moins que favorables aux pentests, mais que se passerait-il s'il pouvait en faire un défi ? Peut-être pourraient-ils considérer le pentester comme un adversaire amical, quelqu'un qu'ils peuvent battre à leur propre jeu. Après tout, un développeur soucieux de la sécurité capable d'éliminer les bogues courants en écrivant du code va rendre son travail encore plus difficile. En revanche, un développeur qui ne se concentre pas sur la sécurité sera largement battu par ses homologues pentester s'il peut facilement pirater son logiciel.

Les pentesters et les développeurs ne sont peut-être pas en harmonie dans tous les cas, mais leur relation peut être considérablement améliorée lorsqu'une organisation considère la sécurité comme une priorité essentielle et donne aux équipes les connaissances et les outils nécessaires pour réussir, en particulier les développeurs. Il s'agit de savoir si l'instauration d'une culture de sécurité positive à l'échelle de l'entreprise est une priorité, et si nous voulons mener la bataille (actuellement) perdue contre les vulnérabilités courantes, elle doit absolument l'être.

리소스 표시
리소스 표시

아래 양식을 작성하여 보고서를 다운로드하세요

저희 제품 및/또는 안전한 코딩 관련 주제에 대한 정보를 보내드리는 데 귀하의 허락을 받고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 다른 기업에 절대 판매하지 않을 것입니다.

제출하다
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주십시오. 완료 후에는 다시 비활성화하셔도 됩니다.

Dans son habitat naturel, un développeur est souvent aperçu dans un état de grande concentration, en train de coder des fonctionnalités géniales dans des délais serrés. La création de fonctionnalités est souvent notre partie préférée du travail, et c'est en fait le résultat fondamental du cycle de vie du développement logiciel (SDLC).

Cependant, comme nous l'avons déjà dit, beaucoup d'entre nous accordent toujours la priorité aux fonctionnalités par rapport aux meilleures pratiques de sécurité. Après tout, dans la plupart des organisations, cela est conçu pour être le travail de quelqu'un d'autre et la formation adéquate en matière de sécurité pour nous est limitée. Les tests d'intrusion et les outils d'analyse statique (mieux connus sous le nom de SAST) ne sont qu'une partie du processus global visant à atténuer les risques de sécurité, fonctionnant de manière assez indépendante de ce que nous faisons... jusqu'à ce que le code nous soit renvoyé pour les correctifs, bien sûr.

Et c'est à ce moment-là que de nombreux développeurs pensent : »Est-ce que les pentesters me détestent ? ».

Ces interactions définissent souvent une équipe, une culture. Ce qui est inquiétant, c'est que le manque de communication, de compréhension et de collaboration globale a créé des tensions, du moins du côté du développeur. Pensez-y : imaginez que vous avez passé quelques centaines d'heures à sculpter une statue merveilleuse, puis que quelqu'un arrive avec un marteau et commence à en casser des morceaux après vous avoir dit que ses fondations ne sont pas à la hauteur. C'est la dynamique perçue entre un testeur et un développeur : ce dernier voit ses logiciels préférés massacrés par un étranger qui n'a pas travaillé avec lui ; au lieu de cela, ils ont allongé la charge de travail et retardé la satisfaction du code d'expédition.

Ayant emménagé dans le domaine de la sécurité il y a longtemps, je peux voir les deux côtés de l'histoire. Et non, les pentesters ne le font pas haine développeurs. Selon toute probabilité, le pentester est surchargé de travail et soumis à de fortes pressions. En tant que tel, un flux constant de bogues de sécurité courants qui pourraient être facilement corrigés au niveau du code prend du temps, des ressources et de la marge de manœuvre par rapport aux problèmes vraiment graves.

J'ai toujours considéré les pentesters comme des parents. Ils veulent que tu réussis, et quand tu ne le fais pas... ils ne sont pas fâchés, juste déçus.

Maintenant que je vous ai donné cette image (peut-être un peu injuste), explorons-la un peu plus en profondeur. Qu'est-ce qui a provoqué cette vision du monde chez les développeurs ?

« Bien sûr, je suis sur la défensive ; ils me disent comment faire mon travail ! »

Personne n'aime avoir l'impression d'avoir fait du mauvais travail ou d'avoir l'impression que quelqu'un n'aime pas son travail. Malheureusement pour les développeurs, lorsque les résultats des analyses statiques et des pentests leur sont communiqués, cela peut ressembler à un bulletin. Ils ont reçu de mauvaises notes, mais en fin de compte, leur les chefs les évaluent en fonction des fonctionnalités qu'ils ont créées et du délai de livraison, et non de la présence d'éléments vulnérables dans le logiciel ou non.

Pour le pauvre pentester, il s'agit d'une question de « ne tirez pas sur le messager ». Cela n'a rien de personnel : ils sont chargés de trouver des bugs, et ils les ont trouvés. Certes, d'un point de vue personnel, certains pentesters sont peut-être plus grincheux que d'autres, mais ils ne sont pas (ou ne devraient pas) avoir pour but de crucifier les équipes de développement. Ce serait beaucoup plus facile pour les deux équipes si elles étaient sur la même longueur d'onde en ce qui concerne les meilleures pratiques en matière de sécurité. Et les développeurs ne sont pas censés être parfaits ; en réalité, l'équipe de test est là pour les empêcher de publier du code vulnérable.

« Ils m'ont demandé de régler tous ces problèmes mineurs. Ne savent-ils pas qu'il existe des priorités plus importantes ? Et pourquoi ne m'aident-ils pas à les réparer s'ils s'en soucient tant ? »

C'est vrai : la priorité absolue d'un développeur sera toujours la création de fonctionnalités, et dans ce monde fou de numérisation rapide, il faudra le faire rapidement. Alors que certains codeurs s'intéressent personnellement à la sécurité et au codage sécurisé, le sentiment général est que la sécurité est « le problème de quelqu'un d'autre », ce qui inclut inévitablement les pentesters.

Les vulnérabilités les plus courantes sont en effet des problèmes mineurs à corriger. Une fois connus, les correctifs sont simples à exécuter pour des tâches telles que le cross-site scripting (XSS) et l'injection SQL... Le problème est que de nombreux développeurs ne se rendent pas compte qu'ils les introduisent en premier lieu, et ces problèmes apparemment mineurs constituent la petite fenêtre d'opportunité dont un attaquant a besoin pour provoquer des problèmes dévastateurs à une entreprise. Selon Akamai, entre novembre 2017 et mars 2019, les vulnérabilités liées à l'injection SQL ont été prises en compte 65 % de tous les vecteurs d'attaque Web. Pour une vulnérabilité qui a été corrigée depuis plus de vingt ans, c'est une statistique qui donne à réfléchir.

Certaines équipes de pentest aident à corriger les bogues de sécurité, mais d'autres signalent les mauvaises nouvelles et s'attendent à ce que les développeurs travaillent sur des correctifs, même s'ils sont passés à un autre projet au moment où cela se produit. Et dans certains cas, l'équipe de développement peut être confrontée à un rapport contenant des bogues qu'elle ne peut pas (ou ne devrait pas être censée) corriger. Cela doit tout de même faire partie des résultats et, encore une fois, ne pas être pris personnellement en compte.

Le « juste milieu » serait que les pentesters, le personnel de sécurité et les responsables du développement jouent davantage un rôle de mentor pour s'assurer que l'équipe dispose de ce dont elle a besoin en termes de formation et d'outils efficaces, donnant ainsi aux codeurs individuels les meilleures chances de réussir et de coder en toute sécurité dès le début du SDLC. Les deux équipes devraient vraiment se rencontrer à mi-chemin pour s'assurer que la sécurité est prise en compte dès le départ, dans le cadre d'une saine pratique DevSecOps.

« Mes connaissances en matière de sécurité sont bien meilleures que ce que l'on pense ; ces rapports sont pour la plupart des faux positifs ou ne sont pas importants ».

L'analyse statique est un élément du processus de sécurité du SDLC, et les outils d'analyse statique (SAST) jouent un rôle fondamental. Et oui, les faux positifs sont un problème avec ces types de scanners et d'autres (DAST/IAST/RAST). C'est un inconvénient dans un processus déjà lent, qui nécessite une révision manuelle du code et met la pression sur les développeurs comme sur les pentesters. Le personnel de pentesting a mis du temps à mettre en place méticuleusement des règles personnalisées afin d'éviter des lectures inexactes et a fourni des conseils spécifiques à l'entreprise, mais certaines fausses lectures se glissent et se retrouvent devant un développeur époustouflant.

Ce processus n'est pas parfait, mais l'autre problème est que de nombreux développeurs ne disposent pas des connaissances suffisantes pour atténuer de manière cohérente de nombreuses vulnérabilités courantes. Étant donné que la formation à la sécurité est rare dans l'enseignement supérieur et que l'efficacité de la formation en cours d'emploi varie, il va de soi qu'il peut également y avoir un certain excès de confiance (et ce n'est pas de leur faute : en tant qu'industrie, nous devons mieux les équiper).

« Je ne savais pas que cette application allait être testée, mais je dois maintenant m'occuper des tâches de correction ».

Parfois, des ingénieurs surchargés de travail pensent que les pentesters ne font que rester dans les coulisses, attendant le moment venu pour tester une application et pleuvoir sur le défilé de l'équipe de développement. Ils font des tests excessifs, ils font des bêtises, ils créent du travail supplémentaire.

Le seul problème, c'est qu'ils sont eux aussi surchargés de travail (d'autant plus, en fait) que la pénurie de compétences en cybersécurité est à des niveaux désastreux et qui ne font qu'empirer) et vous n'avez tout simplement pas le temps de tester sans raison. Ils ne sont pas les seuls à décider de la priorité des tests ; ceux-ci peuvent avoir été demandés par la haute direction, par un client, dans le cadre d'un audit de sécurité ou même déterminés à la suite d'un programme de bug bounty.

Pour un développeur, il est ennuyeux de se voir retirer des sprints de création de fonctionnalités actuels pour travailler sur des correctifs de sécurité, surtout si ce n'est pas son travail. La dernière mise à jour a peut-être été effectuée par une équipe précédente ou par un autre fournisseur. Cependant, la sécurité est l'affaire de tous. Cela ne signifie pas que tous les développeurs doivent s'approprier les bogues de sécurité comme s'ils les avaient tous créés eux-mêmes, mais ils doivent faire en sorte que la sécurité soit une responsabilité partagée.

Où aller à partir d'ici ?

Parfois, un changement de mentalité peut suffire pour faire des progrès significatifs dans la résolution d'un problème. Nous avons parlé de la réaction plutôt glaciale d'un développeur face à des résultats moins que favorables aux pentests, mais que se passerait-il s'il pouvait en faire un défi ? Peut-être pourraient-ils considérer le pentester comme un adversaire amical, quelqu'un qu'ils peuvent battre à leur propre jeu. Après tout, un développeur soucieux de la sécurité capable d'éliminer les bogues courants en écrivant du code va rendre son travail encore plus difficile. En revanche, un développeur qui ne se concentre pas sur la sécurité sera largement battu par ses homologues pentester s'il peut facilement pirater son logiciel.

Les pentesters et les développeurs ne sont peut-être pas en harmonie dans tous les cas, mais leur relation peut être considérablement améliorée lorsqu'une organisation considère la sécurité comme une priorité essentielle et donne aux équipes les connaissances et les outils nécessaires pour réussir, en particulier les développeurs. Il s'agit de savoir si l'instauration d'une culture de sécurité positive à l'échelle de l'entreprise est une priorité, et si nous voulons mener la bataille (actuellement) perdue contre les vulnérabilités courantes, elle doit absolument l'être.

웨비나 보기
시작하세요
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 표시데모 예약하기
리소스 표시
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
작가
마티아스 마두, Ph.
게시일: 2020년 12월 15일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

Dans son habitat naturel, un développeur est souvent aperçu dans un état de grande concentration, en train de coder des fonctionnalités géniales dans des délais serrés. La création de fonctionnalités est souvent notre partie préférée du travail, et c'est en fait le résultat fondamental du cycle de vie du développement logiciel (SDLC).

Cependant, comme nous l'avons déjà dit, beaucoup d'entre nous accordent toujours la priorité aux fonctionnalités par rapport aux meilleures pratiques de sécurité. Après tout, dans la plupart des organisations, cela est conçu pour être le travail de quelqu'un d'autre et la formation adéquate en matière de sécurité pour nous est limitée. Les tests d'intrusion et les outils d'analyse statique (mieux connus sous le nom de SAST) ne sont qu'une partie du processus global visant à atténuer les risques de sécurité, fonctionnant de manière assez indépendante de ce que nous faisons... jusqu'à ce que le code nous soit renvoyé pour les correctifs, bien sûr.

Et c'est à ce moment-là que de nombreux développeurs pensent : »Est-ce que les pentesters me détestent ? ».

Ces interactions définissent souvent une équipe, une culture. Ce qui est inquiétant, c'est que le manque de communication, de compréhension et de collaboration globale a créé des tensions, du moins du côté du développeur. Pensez-y : imaginez que vous avez passé quelques centaines d'heures à sculpter une statue merveilleuse, puis que quelqu'un arrive avec un marteau et commence à en casser des morceaux après vous avoir dit que ses fondations ne sont pas à la hauteur. C'est la dynamique perçue entre un testeur et un développeur : ce dernier voit ses logiciels préférés massacrés par un étranger qui n'a pas travaillé avec lui ; au lieu de cela, ils ont allongé la charge de travail et retardé la satisfaction du code d'expédition.

Ayant emménagé dans le domaine de la sécurité il y a longtemps, je peux voir les deux côtés de l'histoire. Et non, les pentesters ne le font pas haine développeurs. Selon toute probabilité, le pentester est surchargé de travail et soumis à de fortes pressions. En tant que tel, un flux constant de bogues de sécurité courants qui pourraient être facilement corrigés au niveau du code prend du temps, des ressources et de la marge de manœuvre par rapport aux problèmes vraiment graves.

J'ai toujours considéré les pentesters comme des parents. Ils veulent que tu réussis, et quand tu ne le fais pas... ils ne sont pas fâchés, juste déçus.

Maintenant que je vous ai donné cette image (peut-être un peu injuste), explorons-la un peu plus en profondeur. Qu'est-ce qui a provoqué cette vision du monde chez les développeurs ?

« Bien sûr, je suis sur la défensive ; ils me disent comment faire mon travail ! »

Personne n'aime avoir l'impression d'avoir fait du mauvais travail ou d'avoir l'impression que quelqu'un n'aime pas son travail. Malheureusement pour les développeurs, lorsque les résultats des analyses statiques et des pentests leur sont communiqués, cela peut ressembler à un bulletin. Ils ont reçu de mauvaises notes, mais en fin de compte, leur les chefs les évaluent en fonction des fonctionnalités qu'ils ont créées et du délai de livraison, et non de la présence d'éléments vulnérables dans le logiciel ou non.

Pour le pauvre pentester, il s'agit d'une question de « ne tirez pas sur le messager ». Cela n'a rien de personnel : ils sont chargés de trouver des bugs, et ils les ont trouvés. Certes, d'un point de vue personnel, certains pentesters sont peut-être plus grincheux que d'autres, mais ils ne sont pas (ou ne devraient pas) avoir pour but de crucifier les équipes de développement. Ce serait beaucoup plus facile pour les deux équipes si elles étaient sur la même longueur d'onde en ce qui concerne les meilleures pratiques en matière de sécurité. Et les développeurs ne sont pas censés être parfaits ; en réalité, l'équipe de test est là pour les empêcher de publier du code vulnérable.

« Ils m'ont demandé de régler tous ces problèmes mineurs. Ne savent-ils pas qu'il existe des priorités plus importantes ? Et pourquoi ne m'aident-ils pas à les réparer s'ils s'en soucient tant ? »

C'est vrai : la priorité absolue d'un développeur sera toujours la création de fonctionnalités, et dans ce monde fou de numérisation rapide, il faudra le faire rapidement. Alors que certains codeurs s'intéressent personnellement à la sécurité et au codage sécurisé, le sentiment général est que la sécurité est « le problème de quelqu'un d'autre », ce qui inclut inévitablement les pentesters.

Les vulnérabilités les plus courantes sont en effet des problèmes mineurs à corriger. Une fois connus, les correctifs sont simples à exécuter pour des tâches telles que le cross-site scripting (XSS) et l'injection SQL... Le problème est que de nombreux développeurs ne se rendent pas compte qu'ils les introduisent en premier lieu, et ces problèmes apparemment mineurs constituent la petite fenêtre d'opportunité dont un attaquant a besoin pour provoquer des problèmes dévastateurs à une entreprise. Selon Akamai, entre novembre 2017 et mars 2019, les vulnérabilités liées à l'injection SQL ont été prises en compte 65 % de tous les vecteurs d'attaque Web. Pour une vulnérabilité qui a été corrigée depuis plus de vingt ans, c'est une statistique qui donne à réfléchir.

Certaines équipes de pentest aident à corriger les bogues de sécurité, mais d'autres signalent les mauvaises nouvelles et s'attendent à ce que les développeurs travaillent sur des correctifs, même s'ils sont passés à un autre projet au moment où cela se produit. Et dans certains cas, l'équipe de développement peut être confrontée à un rapport contenant des bogues qu'elle ne peut pas (ou ne devrait pas être censée) corriger. Cela doit tout de même faire partie des résultats et, encore une fois, ne pas être pris personnellement en compte.

Le « juste milieu » serait que les pentesters, le personnel de sécurité et les responsables du développement jouent davantage un rôle de mentor pour s'assurer que l'équipe dispose de ce dont elle a besoin en termes de formation et d'outils efficaces, donnant ainsi aux codeurs individuels les meilleures chances de réussir et de coder en toute sécurité dès le début du SDLC. Les deux équipes devraient vraiment se rencontrer à mi-chemin pour s'assurer que la sécurité est prise en compte dès le départ, dans le cadre d'une saine pratique DevSecOps.

« Mes connaissances en matière de sécurité sont bien meilleures que ce que l'on pense ; ces rapports sont pour la plupart des faux positifs ou ne sont pas importants ».

L'analyse statique est un élément du processus de sécurité du SDLC, et les outils d'analyse statique (SAST) jouent un rôle fondamental. Et oui, les faux positifs sont un problème avec ces types de scanners et d'autres (DAST/IAST/RAST). C'est un inconvénient dans un processus déjà lent, qui nécessite une révision manuelle du code et met la pression sur les développeurs comme sur les pentesters. Le personnel de pentesting a mis du temps à mettre en place méticuleusement des règles personnalisées afin d'éviter des lectures inexactes et a fourni des conseils spécifiques à l'entreprise, mais certaines fausses lectures se glissent et se retrouvent devant un développeur époustouflant.

Ce processus n'est pas parfait, mais l'autre problème est que de nombreux développeurs ne disposent pas des connaissances suffisantes pour atténuer de manière cohérente de nombreuses vulnérabilités courantes. Étant donné que la formation à la sécurité est rare dans l'enseignement supérieur et que l'efficacité de la formation en cours d'emploi varie, il va de soi qu'il peut également y avoir un certain excès de confiance (et ce n'est pas de leur faute : en tant qu'industrie, nous devons mieux les équiper).

« Je ne savais pas que cette application allait être testée, mais je dois maintenant m'occuper des tâches de correction ».

Parfois, des ingénieurs surchargés de travail pensent que les pentesters ne font que rester dans les coulisses, attendant le moment venu pour tester une application et pleuvoir sur le défilé de l'équipe de développement. Ils font des tests excessifs, ils font des bêtises, ils créent du travail supplémentaire.

Le seul problème, c'est qu'ils sont eux aussi surchargés de travail (d'autant plus, en fait) que la pénurie de compétences en cybersécurité est à des niveaux désastreux et qui ne font qu'empirer) et vous n'avez tout simplement pas le temps de tester sans raison. Ils ne sont pas les seuls à décider de la priorité des tests ; ceux-ci peuvent avoir été demandés par la haute direction, par un client, dans le cadre d'un audit de sécurité ou même déterminés à la suite d'un programme de bug bounty.

Pour un développeur, il est ennuyeux de se voir retirer des sprints de création de fonctionnalités actuels pour travailler sur des correctifs de sécurité, surtout si ce n'est pas son travail. La dernière mise à jour a peut-être été effectuée par une équipe précédente ou par un autre fournisseur. Cependant, la sécurité est l'affaire de tous. Cela ne signifie pas que tous les développeurs doivent s'approprier les bogues de sécurité comme s'ils les avaient tous créés eux-mêmes, mais ils doivent faire en sorte que la sécurité soit une responsabilité partagée.

Où aller à partir d'ici ?

Parfois, un changement de mentalité peut suffire pour faire des progrès significatifs dans la résolution d'un problème. Nous avons parlé de la réaction plutôt glaciale d'un développeur face à des résultats moins que favorables aux pentests, mais que se passerait-il s'il pouvait en faire un défi ? Peut-être pourraient-ils considérer le pentester comme un adversaire amical, quelqu'un qu'ils peuvent battre à leur propre jeu. Après tout, un développeur soucieux de la sécurité capable d'éliminer les bogues courants en écrivant du code va rendre son travail encore plus difficile. En revanche, un développeur qui ne se concentre pas sur la sécurité sera largement battu par ses homologues pentester s'il peut facilement pirater son logiciel.

Les pentesters et les développeurs ne sont peut-être pas en harmonie dans tous les cas, mais leur relation peut être considérablement améliorée lorsqu'une organisation considère la sécurité comme une priorité essentielle et donne aux équipes les connaissances et les outils nécessaires pour réussir, en particulier les développeurs. Il s'agit de savoir si l'instauration d'une culture de sécurité positive à l'échelle de l'entreprise est une priorité, et si nous voulons mener la bataille (actuellement) perdue contre les vulnérabilités courantes, elle doit absolument l'être.

목차

PDF 다운로드
리소스 표시
더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기Télécharger
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물