From Remediation to Auto-remediation and GenAI (Part 2) の翻訳版です。
修復から自動修復、そしてGenAIへ - Part2
2024年8月14日
著者: Adam Cave / Product Marketing Manager, HCL AppScan
これは、修復と人工知能 (AI) の使用に関する 2 部構成のシリーズのパート 2 です。パート 1 では、開発者が脆弱性を修正するのを支援するもう 1 つの主要なアプローチ、つまり従来の修復と教育を紹介します。
キュレーションされた自動修正は、ソースコードで見つかった既知の脆弱性に対処するために、人間のセキュリティ専門家によって作成されます。単純な問題の場合、これらの修正は IDE の自動補完レベルであってもほぼ瞬時に適用できます。このアプローチは「実証済みの」方法で、さまざまなセキュリティ問題と非セキュリティ問題に対処するために長年使用されています。
これらの修正の利点は、テストおよび検証されているため、新しい問題を引き起こすことなく、問題を修復する信頼性の高い方法を提供できることです。これらの修正の一貫性により、同じ問題が常に同じ方法で解決され、コードの品質と保守性が向上します。
このようなツールは、即時の解決策だけでなく、修正によってどのように問題が解決されるかを説明する説明が付属していることが多いため、教育的価値も提供します。修復と学習というこの二重の利点は、開発者が将来同様の問題を理解し、防止するのに役立ちます。
キュレーションされた自動修正に欠点があるとすれば、それはスケーラビリティの課題です。これらの修正は手作業で作成されるため、複数の例とユースケースにわたって各言語で実装およびテストするには多大な労力が必要です。この労働集約的なプロセスにより、アプローチをより広範な問題と言語に拡張する能力が制限されます。この課題にもかかわらず、キュレーションされた自動修正の有効性と信頼性は、特によく知られた繰り返し発生する問題に対して、開発者の武器庫にある貴重なツールとなっています。
修復に対する 3 番目のアプローチは、最も有望なものの 1 つであり、Generative AI (GenAI) を活用してオンデマンドの自動修正を作成します。このテクノロジーは、優れたカバレッジと汎用性を提供し、事実上すべてのプログラミング言語の問題に対する修正を提供する可能性があります。
GenAI を使用すると、開発者はさまざまなコーディング環境や要件に適応できる自動化されたオンザフライソリューションにアクセスできるため、修復プロセスの効率と有効性が大幅に向上します。この方法の目標の 1 つは、巧妙なプロンプトエンジニアリングにより、これらの AI 駆動型ソリューションが特定の問題に効果的に対処するコンテキスト認識応答を生成できるようにすることです。このアプローチは比較的迅速な実装とスケーリングを約束し、さまざまなコーディングの問題に対処できるようになります。
GenAI は、大規模言語モデル (LLM) などの基盤となる AI モデルを使用して、十分な情報がない場合でも回答を生成します。その結果、「幻覚」、つまり不正確または無意味な応答が生じることがあります。このため、監視なしでは修正の品質は保証されません。
GenAI の結果は、使用されるプロンプトと、Gen AI モデルがトレーニングされたデータの品質に依存します。ChatGPT や Claude などの事前トレーニング済みモデルは使いやすいですが、これらのモデルは必ずしもコードのみでトレーニングされているわけではなく、検証可能なセキュリティコードでトレーニングされているわけでもありません。
既存のモデルを微調整するのは難しく、修正しようとしている脆弱性をモデルが「理解」していることを保証するものではありません。モデルを最初からトレーニングするのはさらに難しく、非常にコストがかかり、膨大な量のデータが必要になります。さらに、トレーニング済みのモデルは、新たに発見された脆弱性ごとに再トレーニングする必要があり、スケーラビリティはほぼ不可能になります。
修復と AI の使用に関する 3 つのアプローチを検討すると、GenAI 自動修正は有望な方向性である一方で、落とし穴があることは明らかです。組織は、安全なコードをリリースしていることを確認するためのチェックとバランスの方法として、手動による監視を維持する必要があります。
このシリーズのパート 1 で説明したように、教育は常にスキルギャップを埋め、開発者が最初から安全なコードを書くようにトレーニングされるようにするための最良のアプローチです。そして、AI もここで役割を果たします。HCL AppScan は、より複雑な修復アドバイザリのわかりやすい概要をユーザーに提供することで、教育をより実用的なものにするために、GenAI と LLM の使用を検討してきました。
必要な時間とリソースにもかかわらず、キュレートされた自動修正のセットをコンパイルすることは、結果として得られる修正が追加の問題を引き起こすことなく脆弱性に対処すると信頼できるため、多くの場合、努力する価値があります。また、GenAI には、厳選された自動修正の生成とテストの作業負荷を軽減する強力なユースケースがあることも注目に値します。
AI は、セキュリティテストソフトウェアに組み込まれている場合でも、開発者のユーザーエクスペリエンスの一部として組み込まれている場合でも、今後も存在し続けるでしょう。時間とリソースの節約の可能性は莫大です。今日の意思決定者は、コスト削減につながる新しいテクノロジーに内在する潜在的なリスクを考慮し、信頼できる厳選されたツールやアプローチの採用とバランスを取る必要があります。
HCL AppScan にアクセスして、HCLSoftware のアプリケーションセキュリティテストソリューションで現在利用可能な AI および機械学習機能の詳細をご確認ください。