Skip to main content

SnykのAI搭載コードセキュリティツールで、インテリジェントに検出・自動修正・優先順位付け

blog feature

2024年10月24日

0 分で読めます

待望のSnyk Launch 2024で、AIエンジンDeepCode AIを搭載したSnyk Codeの自動修正機能、Snyk AgentFixの一般提供開始を発表しました。この節目を記念して、SnykのAI搭載機能がアプリケーションセキュリティに対する当社のアプローチをどのように差別化しているのかをご紹介します。

Snyk Code's powerful, real-time, code auto-fixing feature, DeepCode AI Fix

AIは誰もが注目する話題であり、幅広い解決策(そして課題)をもたらす数々の用途が期待されています。アプリケーションセキュリティもこのAI革命と無縁ではなく、安全でないコードの問題は依然として最重要課題です。AIに関連する新たなリスクや増大するリスク、たとえば脆弱性を含むAI生成コードが大規模に作られることにより、コードセキュリティの重要性は一層高まっています。

AI搭載ソフトウェア開発における、最新のアプリケーションセキュリティ

AI時代の今、開発の加速、急速な変化、そして前例のないセキュリティ課題の増大に対応するには、アプリケーションセキュリティへの新たなアプローチが必要です。AIの進化に歩調を合わせながらアプリケーションセキュリティを効果的に拡張するには、セキュリティを開発の早い段階に組み込み、よりインテリジェントに問題の優先順位を付ける必要があります。そのためには、次のことを可能にするAIセキュリティツールが求められます。

その1:IDEで早期に修正する

AI生成コードの脆弱性に対処するには、スピードと早期の対応が不可欠です。セキュリティチェックをIDE内で直接実行して開発の早い段階にシフトレフトすることで、最も早い時点で介入できます。コードをビルドしてからスキャンする必要がなくなり、問題に即座に対応できるうえ、コンテキストを切り替えることなくシームレスに修正できるため、開発速度も向上します。

独自のAIDeepCode AIを搭載した、開発者ファーストのSASTツールSnyk Codeは、高速かつプロアクティブなソリューションを提供します。IDE内で実行することで、問題がパイプラインに広がり、修正が高コストで複雑になるずっと前に、開発者が問題を解消できるよう支援します。

その2:検出と修正を自動化し、高速・大規模・高精度なスキャンと自動修正を実現する

コードセキュリティの問題を見つけるだけでは不十分です。修正して初めて作業は完了します。効率よく正確に修正するには、信頼できるスキャン結果が必要です。信頼性の高い自動修正機能が追随できなければ、優れた検出ツールだけでは不十分です。反対に、自動修正システムの性能も、組み合わせる検出ツールの品質に左右されます。どちらの機能もシームレスに連携する必要があります。

AI搭載ツールは、AIコーディングツールやLLMが生成したコードの脆弱性検出と修正を大幅に加速できます。しかし、こうしたツールのスピードと規模のメリットを十分に得るには、精度も欠かせません。信頼できる結果を出すツールなら、すでに済ませた作業をやり直すことを避けられ、高速スキャンで得た価値が損なわれるのを防げます。

DevSecOpsをリードするプラットフォームSnyk Codeは、LLMを活用した脆弱性の自動修正機能Snyk Agent Fixを提供しています。このツールは、安全でないコードを検出して自動修正し、開発者の作業を中断させることなく、生成AIツールを安全に活用できるよう支援します。Fortune 100企業のある1社では、Snyk Codeを導入し、平均修復時間を84%短縮。Snyk CodeのIDEプラグインを使用して、チーム全体でコードセキュリティを迅速かつ一貫して拡大しました。

検出:AI搭載SASTスキャン

Snyk Codeのセキュリティ専門AIは、セキュリティだけを目的として開発、トレーニング、微調整されています。精度の高い結果(目的に特化したトレーニングデータと高速な分析による)は、専門性の高さを示しています。Snyk CodeのSASTスキャンは従来型ツールより50倍高速で、他の最新SASTツールより2.4倍高速です。また、AI生成コードを対象としたSASTソリューションのOWASP Benchmark精度は、よく知られた開発者向けブランドのソリューションを約20ポイント上回ります。Snyk CodeのAIは、ノイズとなる誤検知と危険な見逃しを減らし、スキャン結果をより見やすくすることで、開発者の時間を確実に節約します。

修正:AI搭載のコード自動修正

Snyk Codeの検出速度を開発者が最大限に活用するには、修正もその速度に追いつく必要があります。脆弱性の検出は効率化していますが、セキュリティリスクの修正には依然として手間と時間がかかります。さらに、AI生成コードによってこれまで以上の速度と規模で脆弱性が持ち込まれるようになり、修正にかかる時間はさらに増えています。開発者がセキュリティ問題を特定し、効率よく修正方法を見つける必要があると、作業の勢いが途切れ、修正率が下がってセキュリティ負債が増大し、安全性を欠く場当たり的な回避策につながります。

Snykとともに、コーディングアシスタントの未来を切り拓く

コーディングアシスタントについて学び、開発ワークフローに取り入れる方法をご紹介します。

コードの脆弱性を修正し、セキュリティ負債を解消して、時間のかかる修正作業を軽減するには、修正をシンプルかつ迅速に自動化し、開発者のワークフローにシームレスに統合できるAI搭載SASTツールが必要です。Snyk Codeの自動修正機能は、まさにそれを実現します。Snyk Agent Fixは現在早期アクセスで提供されており、2024年10月29日に一般提供を開始する予定です。

DeepCode AI Fixが選択され、有効化トグルがオンになっているSnyk Settingsページ
Snykの設定からDeepCode AI Fixを有効にする方法

10月29日以降、上の画像のようにSnykの設定でSnyk Code Fixを有効化してください。Snyk Codeをまだご利用でない場合は、Snykアカウントに登録し、IDEでSnykを使う方法を確認して、AIの速度に合わせた信頼性の高い自動修正を始めましょう。

より安全な自動修正

Snyk Codeの脆弱性パネル。AIが生成した修正案でHTTPをHTTPSに置き換え、コードエディターの横に「修正を適用」ボタンが表示されています。
DeepCode AI Fixが修正候補をいくつか提示。開発者は希望する候補を選択して「修正を適用」をクリックします。

Snyk Agent Fixは、Snyk Codeが報告した問題に対して、最大5件の修正案を提示します。ユーザーは状況に最適な修正案を選び、ワンクリックで適用できます。修正によって新たなセキュリティ問題が生じないため、安心して利用できます。Snyk Agent Fixが独自なのは、開発者向けの修正案の作成を生成AIだけに頼らない点です。

セキュリティの専門家として、私たちは生成AIに本質的な限界があることを理解しています。こうした課題に対処するため、異なるAI手法を組み合わせ、それぞれの強みを生かしながら潜在的な弱点を補う、独自のマルチモデルAIを開発しました。その結果、Snyk Agent Fixは、LLMや単一モデルのAIだけに依存するコードスキャンの自動修正ソリューションよりも高い信頼性を実現しています。

さらに、Snyk CodeのSnyk Agent Fixでは、提案された修正案がすべて自動的にセキュリティチェックされるようになっています。修正案が開発者にルールベースのシンボリックAIによってチェックされ、開発者に修正案が提示される前に、セキュリティ上の問題を確認します。つまり、Snyk Agent FixはIDE内で動作し、Snyk Codeが修正案のセキュリティを自動チェックするため、自動修正を適用した後にコードをビルドして手動で再スキャンする必要はありません。開発者は最初から修正案を確認し、希望する修正をワンクリックで適用できます。

そして何より、Snyk Agent FixのLLMは、SnykのAIエンジンの他の部分と同様に、セキュリティ専門家によって継続的に改善、トレーニング、入念な微調整が行われ、Snykがホスティングしています。DeepCode AIのトレーニングにあたっては、脆弱性が修正済みで、かつ許容的なライセンスのオープンソースコードのみを使用し、お客様のコードを使ってAIをトレーニングすることは決してありません。そのため、セキュリティ修正はコードセキュリティだけに特化していることから高い信頼性を備えています(すでにご存じのとおり、機能するコードと安全なコードはまったく別物です)。また、知的財産権を侵害することもありません。Snykが独自のAIエンジンをホスティングするため、データがOpenAIなどの第三者のサーバーに送信され、知的財産やお客様の知的財産の管理が及ばなくなることもありません。Snykがお客様のデータを保持することはありません。

Snyk Codeのデータプライバシー、AIモデルのトレーニング、スキャン結果に関する箇条書きを掲載したSnyk User Docsのページ。

より高速で高精度な自動修正

Snyk Agent Fixは、LLMを継続的に改善しているため、自動修正の速度と精度で市場をリードしています。

Snykは最近、Snyk Agent FixのLLMモデルを改善し、OWASP Top 10の脅威に対応する言語のサポートを8言語(さらに拡大中)に増やしました。その結果、速度と精度が大幅に向上し、機能も大きく拡張されました。現在、Snyk Agent Fixがサポートしているプログラミング言語は次のとおりです。

  • JavaScript

  • TypeScript

  • Java

  • Python

  • C/C++(サポートは限定的)

  • C#(サポートは限定的)

  • Go(サポートは限定的)

  • APEX(サポートは限定的)

「サポートは限定的」とは、現在OWASP Top 10を対象とする10未満のルールのみがサポートされていることを意味します。8言語のうち、Java、JavaScript、TypeScript、Pythonは10月29日に一般提供を開始し、その他の言語は早期アクセスで提供されます。Snyk Agent Fixの新しいエクスペリエンスはVS CodeとJetBrains IDEで利用可能となり、今後ほかのIDEにも対応する予定です。

さらに、イノベーションへの大規模な投資により、Snyk DevSecOpsプラットフォームの将来への備えを進めています。最近では、OpenAIの人気モデルGPT-4を含むテスト対象のすべての主要AIモデルのパフォーマンスを大幅に向上させた、特許出願中の技術CodeReduceを開発しました。

CodeReduceはまず、関連するコードを分析し、報告された不具合の影響を受ける箇所と、その不具合の背景を示す箇所を特定します。次に、修正に必要な関連コードのセグメントに優先順位を付け、Snyk Agent Fixのアテンション機構をそこに集中させます。これにより、Snyk Agent Fixが処理するコード量が大幅に減り、主に2つの効果が得られます。1)修正案の品質向上とハルシネーションの抑制、2)Snyk Agent Fixの処理時間の短縮です。

CodeReduceの先進的でインテリジェントな優先順位付けにより、GPT-4の精度は最大20%向上しました。またこれが、Snyk Agent Fixが業界をリードするわずか数秒の自動修正速度と、新たなセキュリティ問題を生むことなく脆弱性を確実に修正できる能力を実現している理由です。

精度の比較:

棒グラフでは、5つのコード分析カテゴリについて、pass@5とexact@5の指標を用いてDeepCode AI Fix、CodeReduce、GPT-4を比較しています。
Snykは精度の面で他のツールを上回り、さまざまなコード分析カテゴリで的確な修正を生成します。多くの指標で最大20%の改善を実現します。

その3:インテリジェントに優先順位を付ける

最新のコードセキュリティツールが取り組むべき最後の重要領域は、インテリジェントな優先順位付けです。セキュリティ脆弱性の増加と開発ペースの速さを踏まえると、より的を絞ったインテリジェントな対応が必要です。ツールが大量のセキュリティ検出結果を提示すること自体は簡単ですが、セキュリティチームにとって大きな価値にはならず、開発者の疲弊につながる可能性があります。真に役立つには、ユーザーのために検出結果を優先度順に整理する必要があります。

企業によって優先事項や働き方、環境、リスクプロファイルは異なります。他の組織の70%にとって重要なリスクでも、自社にとって重要とは限りません。Snykはこの複雑な課題に取り組み、最小限の労力で最大限の効果を上げられるようチームを支援します。Snykは、セキュリティ問題全体のうち重大なものはわずか約7%にすぎないと把握しています。だからこそ、この7%の優先順位付けを支援することで、チームはより短時間でより多くの成果を上げられると考えています。

ノイズを取り除く独自のアプローチは2つあります。まず、Snyk Codeのスキャンで重要度の高いリスクに絞って報告し、最初からユーザーが確認しやすい結果を提示します。また、Snyk Open SourceとSnyk Containerでは、包括的なアプローチで精度を高めながら、Snyk Risk Scoreを通じてリスクの検出結果に優先順位を付けます。

Snyk Risk Scoreは、脆弱性が悪用される可能性とその影響を測定するために、二値モデルと確率モデルを組み合わせて使用します。また、到達可能性、Exploit Maturity、EPSS、CVSS指標、ビジネス上の重要度など、客観的なリスク要因とコンテキストに応じたリスク要因を複数考慮します。

DeepCode AIを活用したSnykの到達可能な脆弱性の分析では、問題がアプリケーションから呼び出される関数に関連しているかどうかを特定します。つまり、その問題は悪用されるリスクが高いということです。SnykのAIを活用した到達可能性分析は、脆弱性データベースをすばやく分析して関連する関数を調べ、オープンソースパッケージの脆弱な関数がアプリケーションで使用されているかどうかを判定するためのコールグラフを作成します。これにより、潜在的なセキュリティリスクを特定できます。

到達可能性を考慮したSnyk Risk Scoreは現在、Snyk Open SourceとSnyk Containerでオープンベータとして利用できます。Snykの到達可能性分析について詳しくは、こちらをご覧ください。

最後に

複雑さと競争が増すアプリケーションセキュリティの分野において、Snykは、数多くの限定的なポイントソリューションによる局地的な小競り合いではないと認識しています。これは、すべての要素を1つのプラットフォームにまとめ、膨大なデータをチームにとって有意義でインパクトのある形で提示する、統合的かつ連携の取れた、優先順位付けを重視するアプローチを必要とする、組織的で構造化された戦いです。

AIの力を活用することで、これまで行ってきたことをより速く、より良く実現するだけでなく、インサイトと効率性を備えた、優先順位付けを通じてチームがより現代的な方法で働けるようにします。

Snyk Codeのコード自動修正機能、Snyk Agent Fixは、今月10月29日に一般提供を開始し、期間限定で無料でご利用いただけます。以下の画像のように、設定を開き、左側のメニューからSnyk Agent Fixを選択して、オンにしてください。

DeepCode AI Fixが選択され、有効化トグルがオンになっているSnyk Settingsページ
Snykの設定からDeepCode AI Fixを有効にする方法

既存のSnyk Codeをご利用のお客様は、10月末に開催されるCustomer Product Updates Webinarにぜひご参加ください。Snyk Agent Fixの速度、精度、使いやすさなどを実際にご覧いただけます。Snykを初めてご利用の方、導入を検討中の方、または使い方をおさらいしたい方には、IDEでSnyk Codeを使い、コンテキストを切り替えることなく問題をすばやく検出して自動修正する方法を学べる新しいSnyk Learnのレッスンもご用意しています。

アプリケーションセキュリティテスト分野で2023年のGartner® Magic Quadrant™のリーダーに選ばれたSnykが、組織によるAIの安全な導入をどのように支援しているのか、またAIを活用したインテリジェントな検出、優先順位付け、修正を体験してみませんか?こちらからSnykアカウントに登録して、よりプロアクティブで、簡単かつ効率的なワークフローを今すぐ体験しましょう。

AI生成コードの脆弱性を克服

DeepCode AI Fixがセキュリティ修正を自動化し、開発者のワークフローにシームレスに統合することで、修正率を高め、セキュリティ上の負債を削減する方法をご覧ください。