GitHub Launches AI-Powered Autofix Tool to Assist Devs in Patching Security Flaws
2024/03/21 TheHackerNews — 3月20日に GitHub が発表したのは 、Advanced Security の全顧客を対象に、コードスキャン自動修正と呼ばれる機能を、パブリック・ベータ版として公開することである。GitHub の Pierre Tempel と Eric Tooley によると、「GitHub Copilot と CodeQL を搭載したコードスキャン自動修正機能は、JavaScript/TypeScript/Java/Python のアラート・タイプの 90%以上をカバーし、見つかった脆弱性の3分の2以上を、ほとんど編集せずに修正できるコード案を提供する」という。

この、2023年11月に初めてプレビューされた機能は、CodeQL/Copilot API/OpenAI GPT-4 などの組み合わせを活用して、コード提案を生成する。Microsoft の子会社である GitHub は、将来的には C# や Go などの、多くのプログラミング言語のサポートを追加する予定だと述べている。
サポートされている言語で問題が発見された場合において、コードスキャンの自動修正により候補が生成される。さらに、自然言語による説明が提供されるため、開発者たちはコードを書きながら、脆弱性を解決できるように設計されている。
これらの提案はカレント・ファイルに限定されるものではなく、他のファイルとの依存関係が含まれ、そこでの変更や修正の追加が必要なる場合もある。

GitHub は、「コード・スキャン自動修正機能は、ベスト・プラクティスに関する情報とコードベースの詳細やアラートを組み合わせて、開発者に修正候補を提案することで参入障壁を下げるものだ。ユーザーは、脆弱性に関する情報を自ら検索をせずに、コードベースの潜在的な解決策を示すサジェストから作業を開始できる」と述べている。
とはいえ、アドバイザリを評価し、それが正しい解決策かどうかを判断し、意図した動作から逸脱しないように調整する作業は、開発者の手に委ねられている。
さらに GitHub は、現時点におけるサジェスト機能の限界を、以下のように提示している。つまり、それを受け入れる前に、変更と依存関係を注意深く確認するよう、開発者たちに求めている:
- 構文的に正しいコード変更ではない修正を提案する。
- 構文的に正しいコードであるにもかかわらず、間違った位置で修正を提案する。
- 構文的には正しいが、プログラムのセマンティクスを変更するような修正を提案する。
- 根本的な原因に対処できず、新たな脆弱性が生じるような修正を提案する。
- 根本的な欠陥を部分的にしか解決しない修正を提案する。
- サポートされていない、あるいは安全でない依存関係を提案する。
- 恣意的な依存関係を示唆し、サプライチェーン攻撃につながる可能性が生じる。
GitHub は、「このシステムの、より広いエコシステムで公開されている依存関係に関する情報は、今のところまだ不完全だ。そのため、攻撃者が統計的に可能性の高い依存関係の名前で公開している悪意のソフトウェアに、新しい依存関係を追加するような提案をする可能性がある」と述べている。
これまでにも、GitHub Copilot に関する記事を何本かポストしてきました。徐々にではあっても、この生成 AI により、GitHub の安全性が高まるようであり、今後に期待したいですね。よろしければ、GitHub + Copilot で検索も、ご利用ください。
You must be logged in to post a comment.