sast-analysis について
セキュリティ評価の事前調査向けに、コードベースを分析するスキルです。技術スタック、入口、データフロー、信頼境界を整理し、後続の分析に使う概要を `sast/architecture.md` に記録します。
主な機能
- 01言語、フレームワーク、依存関係を特定
- 02サービス境界とデータフローを整理
- 03入口、認証、外部連携を確認
- 04機密データと信頼境界を記録
活用シーン
- 01後続の脆弱性検査に向けてアーキテクチャ情報を整備
- 02大規模コードベースの認証・データアクセス経路を把握
- 03プロジェクトの入口、インフラ、依存関係を整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ utkusen/ sast-skills --skill sast-analysisインストール後、Claude Code で/sast-analysisを入力して読み込まれたか確認します。
詳細
コードベースの分析
セキュリティ評価の第1フェーズを実施します。目標は、コードベースを深く理解することです。現時点では、具体的な脆弱性を探しているわけではありません。これは純粋な偵察です。
プロジェクトのルートに sast/ フォルダーがまだ存在しない場合は作成してください。このフェーズでは、その中に次の出力ファイルを1つ作成します。
sast/architecture.md — 技術スタック、アーキテクチャ、エントリーポイント、データフロー
フェーズ1:技術の調査
コードベースを調査し、以下を特定してください。
- 言語:使用されているすべてのプログラミング言語と、指定されている場合はそのバージョン
- フレームワーク:Web フレームワーク、ORM レイヤー、テンプレートエンジン、タスクキュー
- パッケージマネージャーと依存関係:ロックファイル、依存関係マニフェスト(package.json、requirements.txt、go.mod、Gemfile、pom.xml など)
- インフラストラクチャの手がかり:Dockerfile、docker-compose、Kubernetes マニフェスト、Terraform、CI/CD 設定
- データベース:SQL、NoSQL、キャッシュレイヤー、メッセージブローカー — 接続文字列、ORM モデル、マイグレーションファイルを確認してください
- 認証と認可:認証ライブラリ、ミドルウェア、セッション設定、OAuth/OIDC プロバイダー、JWT の使用状況、API キーのパターン
- 外部連携:サードパーティ API、決済処理サービス、メールサービス、クラウド SDK、Webhook ハンドラー
- エントリーポイント:HTTP ルート、GraphQL スキーマ、gRPC サービス定義、CLI コマンド、WebSocket ハンドラー、スケジュール済みジョブ、メッセージコンシューマー
まず依存関係マニフェスト、プロジェクト設定、ディレクトリー構造を確認してください。その後、ソースコードを詳しく調査し、判明した内容を確認してください。
フェーズ2:アーキテクチャのマッピング
フェーズ1の結果に基づき、次の項目についてメンタルモデルを構築してください。
- サービス境界:これはモノリスですか、それともマイクロサービスですか?各要素はどのように連携していますか?
- データフロー:ユーザー入力はどのようにシステムに入り、処理され、保存され、返されますか?
- 信頼境界:システムが信頼できるコンテキストと信頼できないコンテキストの間を移行するのはどこですか?(例:ユーザー入力 → バックエンド、バックエンド → データベース、サービス → サービス、サーバー → クライアント)
- 権限レベル:どのようなロールや権限がありますか?どのように適用されていますか?管理パネルはありますか?
- 機密データの一覧:PII、認証情報、トークン、金融データ、健康記録 — それぞれどこに保存され、どのように移動しますか?
フェーズ1とフェーズ2の結果を sast/architecture.md に記述してください。 次の形式を使用してください。
# Architecture: [Project Name]
## Technology Stack
| Category | Details |
|---|---|
| Languages | ... |
| Frameworks | ... |
| Databases | ... |
| Auth mechanism | ... |
| Infrastructure | ... |
| External services | ... |
## Architecture Overview
[Describe the architecture: monolith vs microservices, how components interact,
main modules and their responsibilities]
## Data Flow
[Trace how user input enters the system, gets processed, stored, and returned.
Cover the primary flows (e.g., registration, login, core business actions).]
## Entry Points
| Entry Point | Type | Auth Required | Description |
|---|---|---|---|
| ... | HTTP/GraphQL/WS/etc. | Yes/No | ... |
## Trust Boundaries
[List each trust boundary and what crosses it]
## Sensitive Data Inventory
| Data Type | Where Stored | How Accessed | Protection |
|---|---|---|---|
| ... | ... | ... | ... |
重要な注意事項
- 具体的な脆弱性(「42行目に SQL インジェクションがある」など)は報告しないでください。脆弱性の報告は後のフェーズで行います。
- 徹底的に調査してください。設定ファイルだけでなく、実際のソースコードを読んでください。認証ミドルウェアの適用方法、クエリの構築方法、ファイルアップロードの処理方法を確認してください。
- コードベースが大規模な場合は、認証、決済、データアクセス、ファイル処理、管理機能など、セキュリティ上重要な領域を優先してください。
コメント
Markdown 対応