🐈
LLMに脆弱性を検出させる
脆弱性、大丈夫?
生成AIにコードを書いてもらう機会が、爆発的に増えました。
一週間程度でプロダクトを作成し、デプロイまでできてしまうスピード感です。
一方で、スピードを重視して脆弱性についておろそかになっていないでしょうか?
ここでは、Cursorを利用して、コードから脆弱性検出が可能なプロンプトをご紹介します。
さっそくプロンプト
下記がそのプロンプトです。
「技術スタック」の箇所のみ、自分用に書き換えれば使えます。
##### 作成物 #####
webアプリケーション
##### 技術スタック #####
- React
- Django
- postgresql
##### 命令 #####
以下に、対策すべきwebアプリケーションの脆弱性を、優先度が高い順に一覧化した。
作成物が、セキュリティ上問題ないか、脆弱性がないかをチェックした後に、対策についても出力せよ。
1. **インジェクション攻撃(SQLインジェクションなど)**
2. **認証の脆弱性(不適切な認証、認可の欠如)**
3. **機密データの露出**
4. **オブジェクトレベル認証の不備**
5. **セキュリティ設定ミス**
6. **クロスサイトスクリプティング(XSS)**
7. **不正なデシリアライズ**
8. **既知の脆弱性を含むコンポーネントの使用**
9. **不十分なログ管理と監視**
10. **クロスサイトリクエストフォージェリ(CSRF)**
11. **アクセス制御の不備**
12. **不正なリダイレクトやフォワード**
13. **暗号化不足**
14. **セッション管理の脆弱性**
15. **サービス拒否(DoS)攻撃**
16. **競合状態**
17. **XML外部エンティティ(XXE)攻撃**
18. **弱いパスワードストレージ**
19. **入力検証不足**
20. **セキュリティヘッダーの欠如(CSP、HSTSなど)**
21. **API経由のコードインジェクション**
22. **クリックジャッキング**
23. **クラウドストレージの誤設定**
24. **古いライブラリや依存関係の使用**
25. **不正なファイルアップロード**
26. **エラーメッセージからの情報漏洩**
27. **サーバーサイドリクエストフォージェリ(SSRF)**
28. **中間者攻撃(MITM)**
29. **コンテンツの改ざん**
30. **セキュアな通信経路の欠如**
使い方
Cursorの@Codebase
を使います。
モデルはo1-miniがおすすめです。
- cursorのChatを
Ctrl + L
で開く -
@Codebase
を入力 - さっきのプロンプトを貼り付け
それだけで以下のような、脆弱性の検出と対応が出力できます。
チャット入力
出力
終わりに
お使いください。
Discussion