Skip to main content

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

2024年10月24日

9 分で読めます

待望の Snyk Launch 2024 の開催中、Snyk Code の自動修正機能「DeepCode AI Fix」 の一般提供が発表されました。この機能は、当社の AI マシンである DeepCode AI を搭載しています。このマイルストーンを記念して、AI を活用した機能によってアプリケーションセキュリティに対する Snyk のアプローチがどのように差別化されるかをご紹介します。

AI は誰もが注目する存在となっており、その無数の活用方法は多種多様なソリューション (そして課題) を生み出しています。アプリケーションセキュリティもこの AI 革命の影響を免れることはできず、安全でないコードに関する問題は依然として大きな課題となっています。脆弱な AI 生成コードが大量に生成されるなど、AI 関連の新たなリスクが増加しており、コードセキュリティの重要性がますます高まっています。 

AI を活用したソフトウェア開発向けの最新アプリケーションセキュリティ

AI 活用が進む現在では、開発の加速、急速な変化、セキュリティに関する課題のかつてないほどの増加により、アプリケーションセキュリティに対する新しいアプローチが求められています。アプリケーションセキュリティを効果的に拡張し、AI の進化速度に対応するために、シフトレフトを実施し、セキュリティ上の問題をよりインテリジェントに優先順位付けすることが急務となっています。これには、次のことを可能にする AI セキュリティツールが必要です。

1 つ目: IDE で早期に対策を講じる

AI によってもたらされる脆弱性に対応するには、早期に迅速な措置を行う必要があります。シフトレフトを実施し、IDE 内で直接セキュリティスキャンを実行することで、最も早い段階での対策が可能になります。これにより、スキャン前にコードをビルドする必要がなくなり、問題に対して即座に対処できるほか、コンテキストを切り替えることなくシームレスに対策を講じられる環境が提供されるため、開発速度が向上します。 

Snyk Code は、当社の独自 AI である DeepCode AI を搭載した開発者ファーストの SAST ツールで、高速かつプロアクティブなソリューションを提供します。Snyk Code は IDE で動作するため、パイプライン内で拡散される前に問題を解消でき、修正が高コストかつ複雑にならずに済みます。

2 つ目: 検出と対策を自動化し、スピード、拡張性、精度を兼ね備えたスキャンと自動修正を行う

コードセキュリティ上の問題を見つけるだけでは十分とは言えず、問題を修正することが重要です。これを効率的かつ正確に行うには、信頼性の高いスキャン結果が必要になります。優れた検出ツールであっても、それに対応した信頼性の高い自動修正コンポーネントでなければ十分ではありません。逆に、優れた自動修正システムであっても、連携する検出ツールが優れていなければ効果を発揮しません。この両方のコンポーネントがシームレスに連携することが不可欠です。

AI 駆動ツールは、AI コーディングツールおよび LLM ソースコードの脆弱性検出と対策を大幅にスピードアップさせます。ただし、このツールのスピードと拡張性を最大限に活用するには、精度も必要です。信頼性の高い結果を生成するツールを使用すると、すでに行った作業の再検討や、高速スキャンによって得られた価値の損失を避けることができます。 

業界をリードする DevSecOps プラットフォームの Snyk Code では、LLM を活用した脆弱性の自動修正機能である DeepCode AI Fix を提供しています。このツールは、開発者の作業フローを妨げることなく、安全でないコードを検出して自動修正するため、生成 AI ツールの安全な利用が可能になります。ある Fortune 100 企業では、Snyk Code を採用したところ、修正にかかる平均時間を 84% 削減できたほか、Snyk Code の IDE プラグインを使用し、チーム全体のコードセキュリティを迅速かつ一貫して拡張することに成功しました。

検出: AI を活用した SAST スキャン 

Snyk Code の専用 AI は、セキュリティのみを目的として作成、トレーニング、微調整されています。スキャン結果の精度の高さは、特化型のトレーニングデータと高速分析によって得られるもので、この機能の高度な専門性を証明しています。Snyk Code は、従来のツールよりも 50 倍高速で、他の最新 SAST ツールよりも 2.4 倍高速の SAST スキャンを実行します。さらに、ある有名な開発者向けブランドのAI 生成コード向け SAST ソリューションよりも、約 20 ポイント高い OWASP ベンチマーク精度を誇っています。つまり、Snyk Code の AI は、ノイズの多い誤検出と危険な検出漏れを減らし、よりシンプルなスキャン結果を生成することで、最終的には開発者の作業時間短縮を実現します。 

修正: AI を活用したコードの自動修正 

開発者が Snyk Code の検出スピードを最大限に活用するには、対策も同じスピードで行われる必要があります。脆弱性の検出は効率化が進んでいますが、そのセキュリティリスクへの対策は依然として面倒で時間のかかる作業です。そして現在、AI 生成コードによって脆弱性がかつてないほど高速かつ大量に生み出されているため、対策にはさらに時間がかかります。開発者はセキュリティ上の問題を特定し、それを効率的に修正する方法を決める必要があるため、作業フローが滞り、修正率が低下してセキュリティ負債が増大し、安全でない急ごしらえの回避策を講じることにつながってしまいます。

Snyk を導入して、コーディングアシスタントの未来を切り開く

コーディングアシスタントについて理解し、そのツールを開発ワークフローに統合する方法を学びましょう。

コードの脆弱性を修正し、セキュリティ負債を解消し、時間のかかる対策作業を短縮するには、AI を活用した SAST ツールを使用して対策をシンプルかつ迅速に自動化し、開発者のワークフローにシームレスに統合する必要があります。Snyk Code の自動修正機能である DeepCode AI Fix は、まさにこれを実現します。現在、DeepCode AI Fix は早期アクセス版として提供されていますが、2024 年 10 月 29 日に一般提供される予定です

Snyk の設定で DeepCode AI Fix を有効にする方法

10 月 29 日以降は、上記の画像に示すように Snyk の設定で Snyk Code Fix を有効にしてください。まだ Snyk Code を利用していない場合は、Snyk アカウントを登録して、IDE で Snyk を使用する方法を学び、AI を活用した高速で信頼性の高い自動修正機能をご体験ください。

より安全な自動修正

DeepCode AI Fix は、いくつかの修正案を提示します。開発者は希望する修正案を選択したら、「Apply Fix (修正を適用)」をクリックするだけです。

DeepCode AI Fix は、Snyk Code が報告した問題に対して最大 5 つの修正案を提示する仕組みになっています。ユーザーは自分の状況に最も適した修正案を選択し、ワンクリックで適用できます。さらに、その修正案が新たなセキュリティ問題を引き起こすことはありません。これが DeepCode AI Fix の唯一無二な点で、単に開発者向けの修正案を作成するために生成 AI を活用しているわけではありません。 

セキュリティの専門家として、当社は生成 AI の本質的な限界を理解しています。そういった課題に対処するために、さまざまな AI 手法を組み合わせて独自のマルチモデル AI を作成しました。この AI では、それぞれの強みを活かしながら、潜在的な弱みを埋めることができます。その結果、DeepCode AI Fix は、LLM または単一の AI モデルのみに依存するコードスキャン自動修正ソリューションよりも優れた信頼性を誇っています。

さらに、Snyk Code の DeepCode AI Fix は、すべての修正案に対して自動的にセキュリティスクリーニングを実施するように設定されています。このスクリーニングには Snyk Code のルールベースのシンボリック AI が使用され、修正案が開発者に提示される前に行われます。つまり、DeepCode AI Fix は IDE で動作し、Snyk Code が修正案のセキュリティスクリーニングを自動的に実施するため、自動修正を適用した後にコードをビルドして手動で再度スキャンする必要はありません。開発者は IDE での作業開始時に修正案を確認し、使用したい案をワンクリックで適用できます。

そして最後に、DeepCode AI Fix の LLM は、Snyk の AI マシンに含まれるその他のコンポーネントと同様に、セキュリティ専門家によって継続的に改善、トレーニング、そして大規模な微調整が行われ、Snyk によってホストされています。DeepCode AI をトレーニングする際、Snyk は脆弱性が修正され、ライセンスが許可されているオープンソースコードのみを使用します。お客様のコードを使用して AI をトレーニングすることはありません。つまり、Snyk が提案するセキュリティ修正はすべて、コードセキュリティのみに特化しているため (ご存じのとおり、「機能するコード」と「安全なコード」はまったく異なります)、信頼性がきわめて高く、知的財産権を侵害しません。また、Snyk は自社の AI マシンをホストしているため、ユーザーのデータがサードパーティ (OpenAI など) のサーバーに送信されることはなく、自社や顧客の知的財産の管理が行き届かなくなることもありません。そして、Snyk はお客様のデータを保持しません。

より高速かつ正確な自動修正

DeepCode AI Fix は、スピードと精度でも自動修正市場をリードしています。その理由は、DeepCode AI Fix の LLM が継続的に改善されているためです。

Snyk は最近、DeepCode AI Fix の LLM モデルを改善し、OWASP Top 10 の脅威に対応する言語を 8 言語に拡大したため (今後も追加予定)、スピードと精度が飛躍的に向上しました。こうした改善により、幅広い機能も追加されました。DeepCode AI Fix は現在、次の言語をサポートしています。

  • JavaScript

  • TypeScript

  • Java

  • Python

  • C および C++ (限定的サポート)

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

  • Go (限定的サポート)

  • APEX (限定的サポート)

「限定的サポート」とは、現在 OWASP Top 10 に対応するルールが 10 個未満であることを意味します。この 8 言語のうち、Java、JavaScript、TypeScript、Python は 10 月 29 日に一般提供が開始され、それ以外の言語は早期アクセス版として提供されます。DeepCode AI Fix の新しい機能は、VS Code および JetBrains IDE で利用できるようになります。今後はさらに多くの IDE への対応を予定しています。

さらに、Snyk はイノベーションに多大な投資を行うことで、当社の DevSecOps プラットフォームの将来性を確保しています。その最新の成果が、特許出願中の技術である CodeReduce です。これは、OpenAI の大変人気ある GPT-4 モデルを含む、テスト済みのあらゆる主要な AI モデルのパフォーマンスを大幅に向上させています。 

CodeReduce は、まず関連コードを分析して、報告された不具合によって影響を受ける部分と、その不具合のコンテキストとなる部分を確認します。次に、修正を実行するために必要な関連コードのセグメントの優先順位付けを行い、DeepCode AI Fix のアテンション機構を最も関連する部分に集中させます。これにより、DeepCode AI Fix が処理する必要があるコードの量が大幅に削減され、1) 修正案の品質が向上してハルシネーションが減り、2) DeepCode AI Fix の処理時間が短縮する、という 2 つの重要な効果が得られます。 

この未来志向でインテリジェントな優先順位付けにより、CodeReduce は、GPT-4 の精度を最大 20% 向上させました。そして、DeepCode AI Fix の業界屈指の自動修正スピード (わずか数秒) と、新たなセキュリティ問題を発生させずに脆弱性を確実に修正する機能も実現させています。

精度の比較:

Snyk は他のツールを上回る精度を誇り、さまざまなコード分析カテゴリーに対して正確な修正を生成します。ほとんどの指標で最大 20% の改善を実現しています。

3 つ目: インテリジェントに優先順位付けを行う

最新のコードセキュリティツールが対応すべき最後の重要な領域は、「インテリジェントな優先順位付け」です。開発ペースが加速するのに比例して、セキュリティの脆弱性が増加しているため、よりインテリジェントにターゲットを絞る必要があります。セキュリティに関する大量の検出結果を提示するツールは比較的簡単に実現できますが、そのようなツールはセキュリティチームにとってあまり価値がなく、開発者の疲労につながる可能性があります。検出結果をユーザーの優先順位に従って整理することができなければ、本当に役立つツールとは言えません。

企業の優先順位、作業プロセス、設定方法、リスクプロファイルはそれぞれ異なります。他の 70% の組織にとっては重要なリスクでも、自社にとっては重要ではないこともあります。そこで Snyk は、組織のチームが最小の労力で最大の効果を生み出すことに集中できるよう、この繊細な領域に取り組むことにしました。Snyk では、あらゆるセキュリティ上の問題のうち、重要なものは約 7% に過ぎないことを理解しています。そのため、この 7% を優先的に対応できるよう支援することで、チームは短い時間で多くの成果を上げられると考えています。 

ノイズをフィルタリングするための Snyk 独自のアプローチには、2 つの側面があります。1 つは、Snyk Code のスキャンでは、より重大なリスクの報告に重点を置き、ユーザーが最初に確認するスキャン結果をシンプルにすることです。もう 1 つは、Snyk Open Source および Snyk Container では、Snyk Risk Score を通じて、リスクの検出結果を優先順位付けすることです。この総合的なアプローチにより、最高の精度を実現します。

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

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

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

まとめ

アプリケーションセキュリティの分野は複雑化が進み、競争が激化していますが、Snyk はこれを「狭い範囲での小競り合い」ではないと認識しています。この競争で必要なのは、狭い範囲向けのポイントソリューションを多数盛り込むことではなく、組織的かつ構造化された取り組みです。さまざまな要素がすべて 1 つのプラットフォームにまとめられ、膨大な量のデータをチームにとって効果的で意味のある形で提供できる、統合、調整、優先順位付けされたアプローチが求められています。 

当社は AI の能力を活用することで、従来の作業の高速化と改善を実現するだけでなく、優先順位付けにより、効率的かつインサイトが得られる最新の作業プロセスを組織のチームに提供します。

Snyk Code のコード自動修正機能である DeepCode AI Fix は、今月後半の 10 月 29 日に一般提供される予定で、期間限定で無料にてご利用いただけます。Settings (設定) に移動し、左側のメニューから DeepCode AI Fix を見つけて、以下の画像に示すようにトグルをオンに切り替えることで有効化できます。

Snyk の設定で DeepCode AI Fix を有効にする方法

Snyk Code をすでに利用されている場合は、10 月末に開催される Customer Product Updates Webinar (お客様向け製品アップデートウェビナー) に参加して、DeepCode AI Fix の動作をご確認ください。スピード、精度、使いやすさなどをご覧いただけます。 また、Snyk を初めて利用する方、検討中の方、もう一度学習したい方向けに、Snyk Learn に新たなレッスンを追加しました。このレッスンでは、IDE で Snyk Code を使用し、コンテキストを切り替えることなく、問題をすばやく検出して自動修復する方法を紹介しています。

2023 年の Gartner® Magic Quadrant™ for Application Security Testing でリーダーの評価を受けた Snyk は、組織の安全な AI 導入をサポートしています。AI を活用したインテリジェントな検出、優先順位付け、修正を自社に取り入れてみませんか?こちらで Snyk アカウントに登録し、よりプロアクティブで簡単、かつ効率化されたワークフローを今すぐご体験ください。

AI によって生成されたコードの脆弱性を解決する

DeepCode AI Fix は開発者のワークフローにシームレスに統合でき、セキュリティ対策を自動化します。修正率の向上やセキュリティ負債の削減がどのように実現されるのかをご覧ください。

SDLCにおけるAIのベストプラクティス

チートシートをダウンロードして、安全にSDLCでAIを活用するためのベストプラクティスを学びましょう。