Snyk で AI 生成によるコードの脆弱性の自動修正機能が利用できるようになりました(公開ベータ版)

2023.06.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 Delivery部の若槻です。

Snyk は、開発者がアプリケーションのセキュリティを簡単に管理できるようにするためのツールです。

Snyk では、アプリケーションのコードのセキュリティを管理する Snyk Code 、Insrastructure as Code(IaC)のセキュリティを管理する Snyk IaC、オープンソースのコンポーネントのセキュリティを管理する Snyk Open Source などの製品を提供しています。

そして先月のアップデートで、Snyk Code で AI 生成によるコードの脆弱性の自動修正機能 が公開ベータで利用できるようになりました。

ドキュメント

「AI 生成によるコードの脆弱性の自動修正機能」のドキュメントは以下になります。

この機能は「DeepCode AI」により実現されているとのことです。

DeepCode AI は Snyk 社が 2020年に買収した DeepCode 社が開発した 機械学習セマンティックコード分析 エンジンで、買収後に Snyk のプラットフォームに統合されました。

サポート言語

現在は JavaScript(TypeScript)のみです。

試してみた

機能の有効化

Snyk のコンソールにログインし、Settings > Snyk Preview から Snyk Code Fix Suggestions 機能を有効化します。

VS Code プラグインのインストール、認証

Visual Studio Code(VS Code)または Eclipse のプラグインで利用できます。

今回は VS Code プラグインで試してみます。以下のプラグインをインストールします。

Snyk の VS Code プラグインには Preview 版もありますが、「AI 生成によるコードの脆弱性の自動修正機能」は上記のリリース版で利用できます。

インストール後、未認証の場合は次のようなエラーメッセージが出ます。

サイドバーから Snyk のプラグインメニューを開き、[Turn workspace and connect] をクリックすると認証用のURLを取得できるので、ブラウザで開いて Snyk の認証を行います。

認証が完了すると、Snyk のプラグインメニューに機能が表示されます。

機能の利用

TypsScript(.ts)のコードで機能を試してみます。

機密情報(パスワード)をソースコードにハードコードする記述を行います。すると Fix this Issue: Use of Hardcoded Credentials というサジェストが表示されます。

そして自動的に機密情報のハードコードの利用の修正が開始されます。

少し経つと機密情報を環境変数から取得するようにコードが変更されました!

おわりに

Snyk Code で AI 生成によるコードの脆弱性の自動修正機能 が公開ベータで利用できるようになりました。

開発者が特に操作をすることなく、コーディング時にリアルタイムで脆弱性を検出し、自動的に修正をしてくれるのは便利ですね。

ちなみに今回の VS Code 環境では GitHub Copilot プラグインも導入して利用できるようにしていましたが、特に両者が競合することはありませんでした。両者を使いこなせれば、より効率的な開発ができそうです。

参考

以上