GitLabの脆弱性は「AIアシスタントの両刃の剣さを浮き彫りにする」

GitLabの脆弱性は「AIアシスタントの両刃の剣さを浮き彫りにする」
サイバー攻撃の可視化。
画像: CROCOTHERY/Adobe Stock

GitLab の AI 搭載コーディング アシスタントである GitLab Duo に新たに公開された脆弱性により、ソフトウェア開発ワークフローに組み込まれた AI ツールの安全性について深刻な懸念が生じています。

Legit Security のサイバーセキュリティ研究者は、攻撃者が非公開のソースコードを盗み、AI が生成したコード提案を操作し、非公開のプロジェクトから未公開のセキュリティ脆弱性を漏洩することを可能にするリモートプロンプトインジェクションの脆弱性を発見しました。

エクスプロイトの仕組み

Anthropic の Claude モデルを搭載した GitLab Duo は、開発者がコードの作成、レビュー、分析を行えるように設計されているが、研究者らは分析したコンテンツを過度に信頼していることを発見した。

Legit Security のブログ投稿によると、攻撃者は、マージ リクエストの説明、コミット メッセージ、問題コメントなど、GitLab プロジェクトのさまざまな部分、さらにはソース コード自体の中にも隠しプロンプトを埋め込むことができました。

Duo はこのコンテンツをスキャンして処理し、役立つ AI 応答を提供するため、隠されたプロンプトによって、ユーザーが気付かないうちに悪意のあるアクションが実行されてしまうのです。

「Duoはコメント、説明、ソースコードなど、ページのコンテキスト全体を分析するため、そのコンテキストのどこかに隠された挿入命令に対して脆弱になる」と、セキュリティ研究者のオマー・メイラズ氏はLegit Securityのレポートで述べている。

悪意のあるプロンプトを人間の目に見えないようにするために、攻撃者は次のようないくつかの巧妙な方法を使用しました。

  • 悪意のある命令を隠すためのUnicode 密輸
  • プロンプトを目立たないように隠すためのBase16 エンコード。
  • 悪意のあるテキストをページ上で見えなくするために、KaTeX を白いテキストでフォーマットします。

たとえば、KaTeX を使用してコメントに白色のテキストを埋め込むと、ユーザーには表示されず Duo にのみ表示されるようになります。

これにより、攻撃者は悪意のある JavaScript パッケージを推奨したり、偽の URL を正当なものとして提示したりするなど、Duo の動作を操作できるようになり、被害者をフィッシング サイトに誘導する可能性があります。

HTMLインジェクションとコード盗難

GitLab Duo はレスポンスをストリーミングし、生成と同時に HTML でレンダリングするため、攻撃者は <img> タグなどの生の HTML を紛れ込ませることができます。これらのタグは、攻撃者が管理するサーバーに HTTP リクエストを送信し、base64 でエンコードされた盗まれたソースコードを送信するように設定できます。

Legit Securityは、Duoに隠されたマージリクエストから非公開のソースコードを抽出し、エンコードして<img src=…>タグに挿入するよう指示するプロンプトを仕掛けることで、この脆弱性を実証しました。ユーザーがレスポンスを閲覧すると、ブラウザは盗まれたデータを自動的に攻撃者に送信します。

「Duoの回答に生のHTMLタグを直接挿入できることに気付きました」と研究者たちは説明した。「回答の内容はDOMPurifyの『サニタイズ』機能に渡されます…しかし、<img>、<form>、<a>といった特定のHTMLタグはデフォルトでは削除されません。」

GitLabの対応とパッチ

GitLabは2月12日にこの問題の通知を受けました。同社はプロンプトインジェクションとHTMLインジェクションの両方の脆弱性を確認し、パッチduo-ui!52で修正プログラムをリリースしました。

Legit Securityによると、このパッチにより、DuoはGitLabでホストされていない外部ドメインを指す安全でないHTMLタグをレンダリングできなくなりました。これにより、デモで使用されたタイプのエクスプロイトは阻止されます。

GitLabの積極的な対応は研究者から賞賛され、「プロセス全体を通してGitLabの透明性と迅速な連携に感謝します」と述べられた。

この事件は、ソフトウェア開発やその他の機密性の高い環境における AI の利用増加に対する幅広い懸念を浮き彫りにしています。

「この脆弱性は、GitLab DuoのようなAIアシスタントの諸刃の剣な性質を浮き彫りにしています。開発ワークフローに深く統合されると、コンテキストだけでなくリスクも引き継ぐのです」とメイラズ氏は述べた。

Tagged: