From Remediation to Auto-remediation and GenAI (Part 1) の翻訳版です。
修復から自動修復、そしてGenAIへ - Part1
2024年8月14日
著者: Adam Cave / Product Marketing Manager, HCL AppScan
人工知能 (AI) は誰もが話題にできる話題です。生成 AI (GenAI) と大規模言語モデル (LLM) の登場により、AI の機能は自動化やデータ分析をはるかに超えて拡張され、テクノロジー、ビジネス、日常生活のあらゆる側面に浸透するには、データサイエンスの博士号が実質的に必要になっています。
GenAI は、ますます増え続けるコードをより短い期間で記述しようとしているソフトウェア開発者にとって、ゲームチェンジャーと見なされています。GitHub Copilot、Amazon Code Whisperer、Tabnine などのツールは、シンプルなプロンプトから AI 生成コードを作成できるようになり、開発者の膨大な時間を節約できます。これらのツールは、一般的なコーディングタスクを迅速に処理することに優れていますが、LLM に使用されるトレーニング データに存在していた可能性のあるセキュリティの脆弱性をもたらす可能性があります。
GenAI は、どのように使用しても、生産性を向上させる強力なツールであることは間違いありません。アプリケーションセキュリティの分野では、ユースケースは「防御的 AI」または「攻撃的 AI」のいずれかとして見られることがよくあります。
前者の場合、防御的 AI は、AppSecn テストの結果を整理し、どの結果が最も「興味深い」か、人間の注意を必要とするかを判断する能力が成熟しています。セキュリティの観点から重要度が低いと判断された結果を除外することで、これらのツールは開発チームの時間を大幅に節約できます。
攻撃的 AI とは、データ侵害を可能にするセキュリティ上の欠陥を見つけるために、実行中のソフトウェアアプリケーションへの攻撃を GenAI を使用して調整することです。AI 生成コンテンツを使用したフィッシング攻撃など、さまざまな攻撃ベクトルに国家支援のハッカーを含む悪意のある人物が攻撃的 AI を使用することには大きな懸念があります。諺にあるように、最良の防御は優れた攻撃です。そのため、セキュリティ研究者は、攻撃に効果的に対抗するために、同じ AI ツールを使って GenAI の機能についてさらに学習しています。
脆弱性を見つけることは、堅牢なアプリケーションセキュリティを維持するための重要なステップですが、問題を特定することは始まりに過ぎません。問題を修正することも同様に重要です。ここで修復が重要になります。修復は、セキュリティの脆弱性だけでなく、従来のバグやコーディング規則 (リンティング) にも関係します。修復には、主に 3 つのアプローチがあります。
従来の修復: この教育ベースのアプローチには、よく書かれた記事、トレーニングビデオ、洞察を盛り込んだブログ、さまざまな種類の問題に関する開発者向けのガイダンス、およびさまざまなプログラミング言語やアプリケーションフレームワークでの修正方法の例が含まれます。
自動修復: このアプローチでは、使用されている AppSecn ソフトウェアが、特定の種類の問題に使用するための、手作業で作成された/キュレートされた/事前に作成された自動修正を開発者またはセキュリティ チームに提供します。いずれの場合も、特定の言語が提供され、修正の複雑さは大きく異なる場合があります。
GenAI による自動修復: このアプローチでは、LLM を使用して GenAI がコード修正をオンデマンドで修復します。これは通常、巧妙なプロンプトエンジニアリングを採用した API にラップされており、多くの場合、コードスニペットを GenAI プラットフォームに送信する必要があります。
2 部構成のブログ投稿のパート 1 では、従来の修復に見られる教育ベースのアプローチについて説明します。パート 2 では、手作業で作成/キュレート/事前に作成された自動修正と GenAI 駆動の自動修正の両方を使用した自動修復について詳しく説明します。
包括的なリソースを通じて開発者を教育することで、開発者は問題を特定して理解できるようになるだけでなく、ソリューションのニュアンスも把握できるようになります。この理解の深さは、開発者が将来同じ間違いを繰り返さないようにするための準備となるため、非常に重要です。このような教育コンテンツは、セキュリティを開発者のスキル セットに組み込むのに役立ち、セキュリティの問題に対するリアクティブではなくプロアクティブなアプローチを促進します。
さまざまな種類の問題を詳しく説明し、さまざまなプログラミング言語で問題を解決する方法の例を提供する、よく書かれた記事は、アプリケーション セキュリティで長期的に成功するための最良の方法の 1 つであると言えます。セキュリティソフトウェアのユーザーインターフェイス (UI) の一部として完全な記事または要約が提供される場合があり、開発者は問題が指摘されたときにその背景を把握できます。
さらに、スケーラブルで包括的なトレーニングモジュールは、開発者がスキルを継続的に向上させ、新しいセキュリティ上の課題に適応するのに役立ちます。セキュリティを優れたコーディングプラクティスの不可欠な要素にすることで、記事と教育リソースは、より堅牢で回復力のある開発文化に貢献します。
熟練した開発者は、高品質で効率的でスケーラブルなコードを作成することが期待されるのと同様に、コードのセキュリティを確保することも期待されます。教育は、開発組織の複数のメンバーのスキル全体でこれを実現する最も効果的な方法です。
手作業で作成/キュレート/事前に作成された自動修正と GenAI 駆動の自動修正の長所と短所、および 3 つのアプローチの比較の概要については、このシリーズの第 2 部で詳しく説明します。
HCL AppScan のページにアクセスして、HCLSoftware のアプリケーションセキュリティテストソリューションで現在利用可能な AI および機械学習機能の詳細をご確認ください。