SCW アイコン
ヒーロー背景(区切りなし)
ブログ

Joyeux anniversaire, l'injection SQL, le bogue qui ne peut pas être corrigé

マティアス・マドゥ博士
2021年3月17日 掲載
最終更新日: 2026年3月8日

Une version de cet article a été initialement publiée dans Help Net Security. Il a été mis à jour et diffusé ici.

Si vous occupez un poste pratique dans le domaine de la cybersécurité, qui nécessite une certaine familiarité avec le code, il y a de fortes chances que vous ayez dû penser à l'injection SQL... encore et encore. Il s'agit d'une vulnérabilité courante qui, bien que nous connaissions sa solution assez simple quelques semaines après sa première découverte, continue de sévir dans notre logiciel et offre une petite fenêtre d'opportunité aux attaquants potentiels si elle n'est pas détectée avant le déploiement.

Le 13 décembre 2020 a marqué le 22e anniversaire de SQL Injection, et bien que cette vulnérabilité soit assez ancienne pour être consommée, nous la laissons prendre le dessus sur nous au lieu de l'éliminer définitivement. En août de cette année, Freepik Company a révélé qu'elle avait a été victime d'une erreur d'injection SQL qui a compromis les comptes de 8,3 millions d'utilisateurs. Alors qu'un certain nombre d'entre eux utilisaient des identifiants tiers (par exemple Google, Facebook), quelques millions avaient des mots de passe non chiffrés exposés en même temps que leur nom d'utilisateur. Malheureusement pour eux et pour bien d'autres personnes en cours de route, les conséquences de ces incidents sont un véritable casse-tête, et rétablir la confiance avec la base d'utilisateurs est un processus de longue haleine.

Alors que nous « célébrons » cette étape importante avec ce qui est considéré comme un problème d'héritage, analysons-le un instant. Pourquoi apparaît-il sans cesse, pourquoi est-il toujours si dangereux qu'il n'a pas quitté la première place du Top 10 de l'OWASP depuis des années, et pourquoi sa solution relativement simple ne figure-t-elle pas parmi les normes de référence générales en matière de développement de logiciels ?

Pourquoi l'injection SQL est-elle toujours d'actualité en 2021 ?

Un rapide coup d'œil sur une récente violation très médiatisée, cyberattaque dévastatrice contre FireEye, révèle un niveau de sophistication impressionnant : il s'agissait d'une attaque d'un État-nation hautement coordonnée utilisant un large éventail de techniques avancées qui semblaient avoir été personnalisées pour un cambriolage FireEye. Dans un communiqué, le PDG de FireEye, Kevin Mandia, a déclaré :

»Les attaquants ont adapté leurs capacités de pointe spécifiquement pour cibler et attaque FireEye. Ils sont hautement qualifiés en matière de sécurité opérationnelle et exécutés avec discipline et concentration... Ils ont utilisé une combinaison inédite de techniques dont nous ou nos partenaires n'avions jamais été témoins dans le passé.»

C'est un carburant cauchemardesque pour tout CISO, et si quelque chose comme cela peut arriver à FireEye, cela met en perspective la vulnérabilité réelle de nombreuses entreprises.

... sauf que c'est même pire des nouvelles pour l'organisation moyenne. FireEye est l'une des sociétés de cybersécurité les plus renommées au monde, et l'attaque réussie dont elle a été victime a nécessité des escrocs de haut niveau qui ont jeté tout ce qu'ils possédaient dans le cadre d'une exécution coordonnée et à grande échelle. Pour de nombreuses entreprises, une violation de données lucrative peut être possible en exploitant un simple bogue, assez rapidement, sans avoir besoin d'aucun cerveau. Et l'injection SQL est un exemple courant de cette dernière solution, encore utilisée par les amateurs de scripts qui cherchent à gagner rapidement de l'argent sur le Dark Web.

En mai 2020, un homme a été accusé de trafic de cartes de crédit et de piratage informatique, lorsqu'il a été découvert avec un support numérique contenant des centaines de milliers de numéros de cartes de crédit actifs. Il les a toutes récoltées à l'aide de techniques d'injection SQL, dans le cadre d'une opération qui a compromis de nombreuses entreprises et des millions de leurs clients.

En tant qu'industrie, nous sont s'améliorant sans cesse, mais l'injection SQL constitue toujours une menace importante et touche bien plus que les systèmes existants ou non patchés.

Pourquoi les développeurs le maintiennent en vie (et pourquoi ce n'est pas de leur faute)

Nous n'arrêtons pas de dire que l'injection SQL est simple à corriger et que le code doit être écrit de manière à ne pas l'introduire du tout. Comme la plupart des choses, ce n'est facile que lorsqu'on vous a appris à bien faire les choses.

C'est là que la roue commence à vaciller dans le processus de développement logiciel. Les développeurs commettent les mêmes erreurs, ce qui entraîne des vulnérabilités récurrentes, telles que l'injection SQL infiltrant une base de code. Cependant, cela ne devrait pas être une surprise. La plupart des ingénieurs obtiennent leur diplôme sans avoir beaucoup appris sur le codage sécurisé, voire pas du tout. La plupart des formations en cours d'emploi sont inadéquates, en particulier dans un environnement où la sécurité n'est pas considérée comme une priorité commerciale dans leur rôle.

Nous ne donnons pas aux développeurs une raison de se préoccuper de la sécurité, ni une plateforme solide pour commencer à prendre davantage conscience de la sécurité. Des modèles de codage médiocres perpétuent des bogues tels que l'injection SQL, et nous devons mettre davantage l'accent sur la sensibilisation des développeurs à la sécurité, tout en leur donnant le temps d'écrire un code sécurisé et de qualité plus élevé. L'écriture de modèles de codage sécurisés peut prendre plus de temps, mais le temps que vous y passez permet de gagner en efficacité, ce qui est inestimable plus tard dans le processus.

Y aura-t-il un jour des funérailles par injection SQL ?

Une métaphore funèbre est un peu morbide, mais en réalité, nos données sensibles seraient plus en sécurité si l'injection SQL était définitivement arrêtée. Je suis convaincu que nous célébrerons encore quelques anniversaires avant d'en arriver là, car la culture qui entoure la sécurité préventive et l'accent mis sur le codage sécurisé n'ont tout simplement pas suffisamment évolué pour que l'on puisse commencer à fermer le cercueil.

Des langages plus récents et plus robustes en termes de sécurité, tels que Rust, aident à éradiquer certains des bogues que nous avons traités pendant longtemps en utilisant des fonctions plus sûres, mais il existe une énorme quantité de logiciels existants, de systèmes anciens et de bibliothèques qui continueront à être utilisés et potentiellement vulnérables.

La responsabilité partagée en matière de sécurité dans le processus de développement (bonjour, DevSecOps) sera cruciale si nous voulons que les exploits « faciles » soient définitivement arrêtés. Les développeurs doivent être impliqués dès le début et soutenus pour qu'ils assument leur part de responsabilité dans la création d'un code plus sûr et de meilleure qualité.

Comment les développeurs doivent-ils aborder la correction d'un bogue d'injection SQL dans leur code ?

Nous avons mis en place un guide complet pour les développeurs qui souhaitent apprendre à identifier et à corriger l'injection SQL. Complétez le tout avec un défi ludique dans le langage de programmation de leur choix (même COBOL !) , cela fournit un excellent apprentissage de base qui aidera chaque développeur à créer un code plus sûr et de meilleure qualité.

リソースを表示する
リソースを表示する

C'est le 22e anniversaire de l'injection SQL, et bien que cette vulnérabilité soit assez ancienne pour être consommée, nous la laissons prendre le dessus sur nous au lieu de l'éliminer définitivement.

さらに詳しく知りたいですか?

Matias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
マティアス・マドゥ博士
2021年3月17日発行

Matias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。

マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。

Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。

共有する:
リンクトインのブランドソーシャルx ロゴ

Une version de cet article a été initialement publiée dans Help Net Security. Il a été mis à jour et diffusé ici.

Si vous occupez un poste pratique dans le domaine de la cybersécurité, qui nécessite une certaine familiarité avec le code, il y a de fortes chances que vous ayez dû penser à l'injection SQL... encore et encore. Il s'agit d'une vulnérabilité courante qui, bien que nous connaissions sa solution assez simple quelques semaines après sa première découverte, continue de sévir dans notre logiciel et offre une petite fenêtre d'opportunité aux attaquants potentiels si elle n'est pas détectée avant le déploiement.

Le 13 décembre 2020 a marqué le 22e anniversaire de SQL Injection, et bien que cette vulnérabilité soit assez ancienne pour être consommée, nous la laissons prendre le dessus sur nous au lieu de l'éliminer définitivement. En août de cette année, Freepik Company a révélé qu'elle avait a été victime d'une erreur d'injection SQL qui a compromis les comptes de 8,3 millions d'utilisateurs. Alors qu'un certain nombre d'entre eux utilisaient des identifiants tiers (par exemple Google, Facebook), quelques millions avaient des mots de passe non chiffrés exposés en même temps que leur nom d'utilisateur. Malheureusement pour eux et pour bien d'autres personnes en cours de route, les conséquences de ces incidents sont un véritable casse-tête, et rétablir la confiance avec la base d'utilisateurs est un processus de longue haleine.

Alors que nous « célébrons » cette étape importante avec ce qui est considéré comme un problème d'héritage, analysons-le un instant. Pourquoi apparaît-il sans cesse, pourquoi est-il toujours si dangereux qu'il n'a pas quitté la première place du Top 10 de l'OWASP depuis des années, et pourquoi sa solution relativement simple ne figure-t-elle pas parmi les normes de référence générales en matière de développement de logiciels ?

Pourquoi l'injection SQL est-elle toujours d'actualité en 2021 ?

Un rapide coup d'œil sur une récente violation très médiatisée, cyberattaque dévastatrice contre FireEye, révèle un niveau de sophistication impressionnant : il s'agissait d'une attaque d'un État-nation hautement coordonnée utilisant un large éventail de techniques avancées qui semblaient avoir été personnalisées pour un cambriolage FireEye. Dans un communiqué, le PDG de FireEye, Kevin Mandia, a déclaré :

»Les attaquants ont adapté leurs capacités de pointe spécifiquement pour cibler et attaque FireEye. Ils sont hautement qualifiés en matière de sécurité opérationnelle et exécutés avec discipline et concentration... Ils ont utilisé une combinaison inédite de techniques dont nous ou nos partenaires n'avions jamais été témoins dans le passé.»

C'est un carburant cauchemardesque pour tout CISO, et si quelque chose comme cela peut arriver à FireEye, cela met en perspective la vulnérabilité réelle de nombreuses entreprises.

... sauf que c'est même pire des nouvelles pour l'organisation moyenne. FireEye est l'une des sociétés de cybersécurité les plus renommées au monde, et l'attaque réussie dont elle a été victime a nécessité des escrocs de haut niveau qui ont jeté tout ce qu'ils possédaient dans le cadre d'une exécution coordonnée et à grande échelle. Pour de nombreuses entreprises, une violation de données lucrative peut être possible en exploitant un simple bogue, assez rapidement, sans avoir besoin d'aucun cerveau. Et l'injection SQL est un exemple courant de cette dernière solution, encore utilisée par les amateurs de scripts qui cherchent à gagner rapidement de l'argent sur le Dark Web.

En mai 2020, un homme a été accusé de trafic de cartes de crédit et de piratage informatique, lorsqu'il a été découvert avec un support numérique contenant des centaines de milliers de numéros de cartes de crédit actifs. Il les a toutes récoltées à l'aide de techniques d'injection SQL, dans le cadre d'une opération qui a compromis de nombreuses entreprises et des millions de leurs clients.

En tant qu'industrie, nous sont s'améliorant sans cesse, mais l'injection SQL constitue toujours une menace importante et touche bien plus que les systèmes existants ou non patchés.

Pourquoi les développeurs le maintiennent en vie (et pourquoi ce n'est pas de leur faute)

Nous n'arrêtons pas de dire que l'injection SQL est simple à corriger et que le code doit être écrit de manière à ne pas l'introduire du tout. Comme la plupart des choses, ce n'est facile que lorsqu'on vous a appris à bien faire les choses.

C'est là que la roue commence à vaciller dans le processus de développement logiciel. Les développeurs commettent les mêmes erreurs, ce qui entraîne des vulnérabilités récurrentes, telles que l'injection SQL infiltrant une base de code. Cependant, cela ne devrait pas être une surprise. La plupart des ingénieurs obtiennent leur diplôme sans avoir beaucoup appris sur le codage sécurisé, voire pas du tout. La plupart des formations en cours d'emploi sont inadéquates, en particulier dans un environnement où la sécurité n'est pas considérée comme une priorité commerciale dans leur rôle.

Nous ne donnons pas aux développeurs une raison de se préoccuper de la sécurité, ni une plateforme solide pour commencer à prendre davantage conscience de la sécurité. Des modèles de codage médiocres perpétuent des bogues tels que l'injection SQL, et nous devons mettre davantage l'accent sur la sensibilisation des développeurs à la sécurité, tout en leur donnant le temps d'écrire un code sécurisé et de qualité plus élevé. L'écriture de modèles de codage sécurisés peut prendre plus de temps, mais le temps que vous y passez permet de gagner en efficacité, ce qui est inestimable plus tard dans le processus.

Y aura-t-il un jour des funérailles par injection SQL ?

Une métaphore funèbre est un peu morbide, mais en réalité, nos données sensibles seraient plus en sécurité si l'injection SQL était définitivement arrêtée. Je suis convaincu que nous célébrerons encore quelques anniversaires avant d'en arriver là, car la culture qui entoure la sécurité préventive et l'accent mis sur le codage sécurisé n'ont tout simplement pas suffisamment évolué pour que l'on puisse commencer à fermer le cercueil.

Des langages plus récents et plus robustes en termes de sécurité, tels que Rust, aident à éradiquer certains des bogues que nous avons traités pendant longtemps en utilisant des fonctions plus sûres, mais il existe une énorme quantité de logiciels existants, de systèmes anciens et de bibliothèques qui continueront à être utilisés et potentiellement vulnérables.

La responsabilité partagée en matière de sécurité dans le processus de développement (bonjour, DevSecOps) sera cruciale si nous voulons que les exploits « faciles » soient définitivement arrêtés. Les développeurs doivent être impliqués dès le début et soutenus pour qu'ils assument leur part de responsabilité dans la création d'un code plus sûr et de meilleure qualité.

Comment les développeurs doivent-ils aborder la correction d'un bogue d'injection SQL dans leur code ?

Nous avons mis en place un guide complet pour les développeurs qui souhaitent apprendre à identifier et à corriger l'injection SQL. Complétez le tout avec un défi ludique dans le langage de programmation de leur choix (même COBOL !) , cela fournit un excellent apprentissage de base qui aidera chaque développeur à créer un code plus sûr et de meilleure qualité.

リソースを表示する
リソースを表示する

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディング関連の情報をお送りするにあたり、ご承諾を頂戴できれば幸いです。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ございません。

提出する
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、Analyticsクッキーを有効にしてください。完了後は再度無効化しても構いません。

Une version de cet article a été initialement publiée dans Help Net Security. Il a été mis à jour et diffusé ici.

Si vous occupez un poste pratique dans le domaine de la cybersécurité, qui nécessite une certaine familiarité avec le code, il y a de fortes chances que vous ayez dû penser à l'injection SQL... encore et encore. Il s'agit d'une vulnérabilité courante qui, bien que nous connaissions sa solution assez simple quelques semaines après sa première découverte, continue de sévir dans notre logiciel et offre une petite fenêtre d'opportunité aux attaquants potentiels si elle n'est pas détectée avant le déploiement.

Le 13 décembre 2020 a marqué le 22e anniversaire de SQL Injection, et bien que cette vulnérabilité soit assez ancienne pour être consommée, nous la laissons prendre le dessus sur nous au lieu de l'éliminer définitivement. En août de cette année, Freepik Company a révélé qu'elle avait a été victime d'une erreur d'injection SQL qui a compromis les comptes de 8,3 millions d'utilisateurs. Alors qu'un certain nombre d'entre eux utilisaient des identifiants tiers (par exemple Google, Facebook), quelques millions avaient des mots de passe non chiffrés exposés en même temps que leur nom d'utilisateur. Malheureusement pour eux et pour bien d'autres personnes en cours de route, les conséquences de ces incidents sont un véritable casse-tête, et rétablir la confiance avec la base d'utilisateurs est un processus de longue haleine.

Alors que nous « célébrons » cette étape importante avec ce qui est considéré comme un problème d'héritage, analysons-le un instant. Pourquoi apparaît-il sans cesse, pourquoi est-il toujours si dangereux qu'il n'a pas quitté la première place du Top 10 de l'OWASP depuis des années, et pourquoi sa solution relativement simple ne figure-t-elle pas parmi les normes de référence générales en matière de développement de logiciels ?

Pourquoi l'injection SQL est-elle toujours d'actualité en 2021 ?

Un rapide coup d'œil sur une récente violation très médiatisée, cyberattaque dévastatrice contre FireEye, révèle un niveau de sophistication impressionnant : il s'agissait d'une attaque d'un État-nation hautement coordonnée utilisant un large éventail de techniques avancées qui semblaient avoir été personnalisées pour un cambriolage FireEye. Dans un communiqué, le PDG de FireEye, Kevin Mandia, a déclaré :

»Les attaquants ont adapté leurs capacités de pointe spécifiquement pour cibler et attaque FireEye. Ils sont hautement qualifiés en matière de sécurité opérationnelle et exécutés avec discipline et concentration... Ils ont utilisé une combinaison inédite de techniques dont nous ou nos partenaires n'avions jamais été témoins dans le passé.»

C'est un carburant cauchemardesque pour tout CISO, et si quelque chose comme cela peut arriver à FireEye, cela met en perspective la vulnérabilité réelle de nombreuses entreprises.

... sauf que c'est même pire des nouvelles pour l'organisation moyenne. FireEye est l'une des sociétés de cybersécurité les plus renommées au monde, et l'attaque réussie dont elle a été victime a nécessité des escrocs de haut niveau qui ont jeté tout ce qu'ils possédaient dans le cadre d'une exécution coordonnée et à grande échelle. Pour de nombreuses entreprises, une violation de données lucrative peut être possible en exploitant un simple bogue, assez rapidement, sans avoir besoin d'aucun cerveau. Et l'injection SQL est un exemple courant de cette dernière solution, encore utilisée par les amateurs de scripts qui cherchent à gagner rapidement de l'argent sur le Dark Web.

En mai 2020, un homme a été accusé de trafic de cartes de crédit et de piratage informatique, lorsqu'il a été découvert avec un support numérique contenant des centaines de milliers de numéros de cartes de crédit actifs. Il les a toutes récoltées à l'aide de techniques d'injection SQL, dans le cadre d'une opération qui a compromis de nombreuses entreprises et des millions de leurs clients.

En tant qu'industrie, nous sont s'améliorant sans cesse, mais l'injection SQL constitue toujours une menace importante et touche bien plus que les systèmes existants ou non patchés.

Pourquoi les développeurs le maintiennent en vie (et pourquoi ce n'est pas de leur faute)

Nous n'arrêtons pas de dire que l'injection SQL est simple à corriger et que le code doit être écrit de manière à ne pas l'introduire du tout. Comme la plupart des choses, ce n'est facile que lorsqu'on vous a appris à bien faire les choses.

C'est là que la roue commence à vaciller dans le processus de développement logiciel. Les développeurs commettent les mêmes erreurs, ce qui entraîne des vulnérabilités récurrentes, telles que l'injection SQL infiltrant une base de code. Cependant, cela ne devrait pas être une surprise. La plupart des ingénieurs obtiennent leur diplôme sans avoir beaucoup appris sur le codage sécurisé, voire pas du tout. La plupart des formations en cours d'emploi sont inadéquates, en particulier dans un environnement où la sécurité n'est pas considérée comme une priorité commerciale dans leur rôle.

Nous ne donnons pas aux développeurs une raison de se préoccuper de la sécurité, ni une plateforme solide pour commencer à prendre davantage conscience de la sécurité. Des modèles de codage médiocres perpétuent des bogues tels que l'injection SQL, et nous devons mettre davantage l'accent sur la sensibilisation des développeurs à la sécurité, tout en leur donnant le temps d'écrire un code sécurisé et de qualité plus élevé. L'écriture de modèles de codage sécurisés peut prendre plus de temps, mais le temps que vous y passez permet de gagner en efficacité, ce qui est inestimable plus tard dans le processus.

Y aura-t-il un jour des funérailles par injection SQL ?

Une métaphore funèbre est un peu morbide, mais en réalité, nos données sensibles seraient plus en sécurité si l'injection SQL était définitivement arrêtée. Je suis convaincu que nous célébrerons encore quelques anniversaires avant d'en arriver là, car la culture qui entoure la sécurité préventive et l'accent mis sur le codage sécurisé n'ont tout simplement pas suffisamment évolué pour que l'on puisse commencer à fermer le cercueil.

Des langages plus récents et plus robustes en termes de sécurité, tels que Rust, aident à éradiquer certains des bogues que nous avons traités pendant longtemps en utilisant des fonctions plus sûres, mais il existe une énorme quantité de logiciels existants, de systèmes anciens et de bibliothèques qui continueront à être utilisés et potentiellement vulnérables.

La responsabilité partagée en matière de sécurité dans le processus de développement (bonjour, DevSecOps) sera cruciale si nous voulons que les exploits « faciles » soient définitivement arrêtés. Les développeurs doivent être impliqués dès le début et soutenus pour qu'ils assument leur part de responsabilité dans la création d'un code plus sûr et de meilleure qualité.

Comment les développeurs doivent-ils aborder la correction d'un bogue d'injection SQL dans leur code ?

Nous avons mis en place un guide complet pour les développeurs qui souhaitent apprendre à identifier et à corriger l'injection SQL. Complétez le tout avec un défi ludique dans le langage de programmation de leur choix (même COBOL !) , cela fournit un excellent apprentissage de base qui aidera chaque développeur à créer un code plus sûr et de meilleure qualité.

ウェビナーを表示する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

レポートを表示するデモを予約する
PDFをダウンロード
リソースを表示する
共有する:
リンクトインのブランドソーシャルx ロゴ
さらに詳しく知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
マティアス・マドゥ博士
2021年3月17日発行

Matias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。

マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。

Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。

共有する:
リンクトインのブランドソーシャルx ロゴ

Une version de cet article a été initialement publiée dans Help Net Security. Il a été mis à jour et diffusé ici.

Si vous occupez un poste pratique dans le domaine de la cybersécurité, qui nécessite une certaine familiarité avec le code, il y a de fortes chances que vous ayez dû penser à l'injection SQL... encore et encore. Il s'agit d'une vulnérabilité courante qui, bien que nous connaissions sa solution assez simple quelques semaines après sa première découverte, continue de sévir dans notre logiciel et offre une petite fenêtre d'opportunité aux attaquants potentiels si elle n'est pas détectée avant le déploiement.

Le 13 décembre 2020 a marqué le 22e anniversaire de SQL Injection, et bien que cette vulnérabilité soit assez ancienne pour être consommée, nous la laissons prendre le dessus sur nous au lieu de l'éliminer définitivement. En août de cette année, Freepik Company a révélé qu'elle avait a été victime d'une erreur d'injection SQL qui a compromis les comptes de 8,3 millions d'utilisateurs. Alors qu'un certain nombre d'entre eux utilisaient des identifiants tiers (par exemple Google, Facebook), quelques millions avaient des mots de passe non chiffrés exposés en même temps que leur nom d'utilisateur. Malheureusement pour eux et pour bien d'autres personnes en cours de route, les conséquences de ces incidents sont un véritable casse-tête, et rétablir la confiance avec la base d'utilisateurs est un processus de longue haleine.

Alors que nous « célébrons » cette étape importante avec ce qui est considéré comme un problème d'héritage, analysons-le un instant. Pourquoi apparaît-il sans cesse, pourquoi est-il toujours si dangereux qu'il n'a pas quitté la première place du Top 10 de l'OWASP depuis des années, et pourquoi sa solution relativement simple ne figure-t-elle pas parmi les normes de référence générales en matière de développement de logiciels ?

Pourquoi l'injection SQL est-elle toujours d'actualité en 2021 ?

Un rapide coup d'œil sur une récente violation très médiatisée, cyberattaque dévastatrice contre FireEye, révèle un niveau de sophistication impressionnant : il s'agissait d'une attaque d'un État-nation hautement coordonnée utilisant un large éventail de techniques avancées qui semblaient avoir été personnalisées pour un cambriolage FireEye. Dans un communiqué, le PDG de FireEye, Kevin Mandia, a déclaré :

»Les attaquants ont adapté leurs capacités de pointe spécifiquement pour cibler et attaque FireEye. Ils sont hautement qualifiés en matière de sécurité opérationnelle et exécutés avec discipline et concentration... Ils ont utilisé une combinaison inédite de techniques dont nous ou nos partenaires n'avions jamais été témoins dans le passé.»

C'est un carburant cauchemardesque pour tout CISO, et si quelque chose comme cela peut arriver à FireEye, cela met en perspective la vulnérabilité réelle de nombreuses entreprises.

... sauf que c'est même pire des nouvelles pour l'organisation moyenne. FireEye est l'une des sociétés de cybersécurité les plus renommées au monde, et l'attaque réussie dont elle a été victime a nécessité des escrocs de haut niveau qui ont jeté tout ce qu'ils possédaient dans le cadre d'une exécution coordonnée et à grande échelle. Pour de nombreuses entreprises, une violation de données lucrative peut être possible en exploitant un simple bogue, assez rapidement, sans avoir besoin d'aucun cerveau. Et l'injection SQL est un exemple courant de cette dernière solution, encore utilisée par les amateurs de scripts qui cherchent à gagner rapidement de l'argent sur le Dark Web.

En mai 2020, un homme a été accusé de trafic de cartes de crédit et de piratage informatique, lorsqu'il a été découvert avec un support numérique contenant des centaines de milliers de numéros de cartes de crédit actifs. Il les a toutes récoltées à l'aide de techniques d'injection SQL, dans le cadre d'une opération qui a compromis de nombreuses entreprises et des millions de leurs clients.

En tant qu'industrie, nous sont s'améliorant sans cesse, mais l'injection SQL constitue toujours une menace importante et touche bien plus que les systèmes existants ou non patchés.

Pourquoi les développeurs le maintiennent en vie (et pourquoi ce n'est pas de leur faute)

Nous n'arrêtons pas de dire que l'injection SQL est simple à corriger et que le code doit être écrit de manière à ne pas l'introduire du tout. Comme la plupart des choses, ce n'est facile que lorsqu'on vous a appris à bien faire les choses.

C'est là que la roue commence à vaciller dans le processus de développement logiciel. Les développeurs commettent les mêmes erreurs, ce qui entraîne des vulnérabilités récurrentes, telles que l'injection SQL infiltrant une base de code. Cependant, cela ne devrait pas être une surprise. La plupart des ingénieurs obtiennent leur diplôme sans avoir beaucoup appris sur le codage sécurisé, voire pas du tout. La plupart des formations en cours d'emploi sont inadéquates, en particulier dans un environnement où la sécurité n'est pas considérée comme une priorité commerciale dans leur rôle.

Nous ne donnons pas aux développeurs une raison de se préoccuper de la sécurité, ni une plateforme solide pour commencer à prendre davantage conscience de la sécurité. Des modèles de codage médiocres perpétuent des bogues tels que l'injection SQL, et nous devons mettre davantage l'accent sur la sensibilisation des développeurs à la sécurité, tout en leur donnant le temps d'écrire un code sécurisé et de qualité plus élevé. L'écriture de modèles de codage sécurisés peut prendre plus de temps, mais le temps que vous y passez permet de gagner en efficacité, ce qui est inestimable plus tard dans le processus.

Y aura-t-il un jour des funérailles par injection SQL ?

Une métaphore funèbre est un peu morbide, mais en réalité, nos données sensibles seraient plus en sécurité si l'injection SQL était définitivement arrêtée. Je suis convaincu que nous célébrerons encore quelques anniversaires avant d'en arriver là, car la culture qui entoure la sécurité préventive et l'accent mis sur le codage sécurisé n'ont tout simplement pas suffisamment évolué pour que l'on puisse commencer à fermer le cercueil.

Des langages plus récents et plus robustes en termes de sécurité, tels que Rust, aident à éradiquer certains des bogues que nous avons traités pendant longtemps en utilisant des fonctions plus sûres, mais il existe une énorme quantité de logiciels existants, de systèmes anciens et de bibliothèques qui continueront à être utilisés et potentiellement vulnérables.

La responsabilité partagée en matière de sécurité dans le processus de développement (bonjour, DevSecOps) sera cruciale si nous voulons que les exploits « faciles » soient définitivement arrêtés. Les développeurs doivent être impliqués dès le début et soutenus pour qu'ils assument leur part de responsabilité dans la création d'un code plus sûr et de meilleure qualité.

Comment les développeurs doivent-ils aborder la correction d'un bogue d'injection SQL dans leur code ?

Nous avons mis en place un guide complet pour les développeurs qui souhaitent apprendre à identifier et à corriger l'injection SQL. Complétez le tout avec un défi ludique dans le langage de programmation de leur choix (même COBOL !) , cela fournit un excellent apprentissage de base qui aidera chaque développeur à créer un code plus sûr et de meilleure qualité.

目次

PDFをダウンロード
リソースを表示する
さらに詳しく知りたいですか?

Matias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません