Prompting Guide
Takumi を効果的に活用するにあたって最も重要なポイントは探索させる領域を狭くすることです。 しかし、セキュリティの専門家であっても最初からスコープを限定した依頼をするのは困難です。 そこで、本ドキュメントではより効果的な Takumi の活用方法のポイントを紹介していきます。
良い依頼の例
まずは、効果的ではない依頼をみてみましょう。
脆弱性がないか調査してください。
これだけでもある程度の診断は可能ですが、特に注意深く診断してほしい機能に着目してもらえなかったり、大きなリスクには繋がりづらい軽微な事項に関する報告が増えたりしてしまいます。
対象の機能を指定し、この依頼の調査範囲を狭くしてみましょう。
商品の購入履歴を閲覧する機能において脆弱性が存在しないか調査してください。特に、他人の購入履歴が見える脆弱性があると、重大な情報漏洩リ スクにつながってしまいます。関連する機能の実装は path/to/directory にあります。
対象の機能や着目してほしいリスクが明示されている上、ファイルパスも含まれているため Takumi の調査する領域が大幅に狭くなり、精度が上がります。
認証機能に関する脆弱性を調査してほしいです。このような脆弱性があると、アプリケーションにおいてアカウントテイクオーバー等の重大なセキュリティインシデントに波及する恐れがあるためです。特に、アカウント登録機能やログイン機能、パスワードリセット機能について重点的に調査してください。
脆弱性の種類を絞ることにより、Takumi は特定の脆弱性をより深く調査できるようになるため、診断の精度が向上します。また、脆弱性が存在した場合に顕在化が懸念されるリスクに関する説明をプロンプトにて与えることで、Takumi は診断の目的をより理解した上で調査するようになります。
良い依頼の書き方
ここまでは良い依頼内容とはどのようなものかを紹介してきました。ここからは、上記のような良い依頼を作成するための方法を紹介します。
抽象から具体へ
上記では「脆弱性がないか調査してください」という抽象的な依頼をどう書き換えたら良くなるかについて紹介しましたが、最初から具体的な依頼をするのは難しいものです。
ポイントは、まずアプリケーションの各機能が実装されているコードを俯瞰的に洗い出すための依頼をして、その結果を元により具体的な依頼をすることです。
抽象的な依頼の結果に基づいて具体的な依頼を作成する例を見てみましょう。
アプリケーションのセキュリティ診断を実施したいと考えています。そこで、まずはアプリケーションが実装し ている機能を洗い出すとともに、各機能についてどのような点に注意すれば堅牢にできるか教えて下さい。
この以来の調査結果において、ユーザーデータを扱うファイルアップロード機能の詳細が記載されているとしましょう。ユーザーデータには機密情報が含まれやすいため、この機能に注目した方がいいかもしれません。このように、診断を実施したい機能や、特定の機能において着目してほしいリスク上の観点を明らかにしておくことで、より具体的なタスクを依頼しやすくなります。
アプリケーションのユーザーデータのファイルアップロード機能はユーザーデータを扱うため、念入りに調査してほしいです。特に名前や住所など個人情報が漏洩する可能性がないか確認してください。
他にも、ファイルアップロード機能に関する脆弱性についてもっと詳しく知るために、より詳細な説明を依頼するのも良いでしょう。
ファイルアップロード機能にまつわる脆弱性は頻繁に発生するみたいですね。それらの脆弱性について詳しく教えてください。このアプリケーションの場合はどのようなリスクが想定できるかについてもしっかりと説明してください。
ここまでの例では、抽象的な依頼の結果に基づいて、依頼内容をより具体的にしていくことについて触れました。この手法は、特定の脆弱性やリスクについて深堀りする際にも効果的です。
例えば、最初の依頼で機能と実装が存在する箇所を指定したとしましょう。