mcpField
S
source-code-scanning

source-code-scanning

github.com/transilienceaiセキュリティ598204 回インストール13 週間前に更新
リポジトリ

source-code-scanning について

開発者やセキュリティレビュー担当者向けのソースコード監査スキルです。スタックに応じたSAST、依存関係とシークレットのスキャンに加え、危険なコードや不正な内容、モバイルアプリのバイナリを確認し、証拠と修正案を整理します。

主な機能

  1. 01言語とフレームワークの特定
  2. 02スタック別SASTの実行
  3. 03依存関係のCVEスキャン
  4. 04埋め込みシークレットの検出
  5. 05高リスクなコード経路のレビュー
  6. 06モバイルアプリバイナリの分析

活用シーン

  1. 01リリース前のリポジトリ監査
  2. 02既知のCVEがある依存関係の確認
  3. 03不審なコードやバックドアの調査
  4. 04APKやIPA内のシークレットの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/transilienceai/communitytools --skill source-code-scanning

インストール後、Claude Code で/source-code-scanningを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
dependency-cve-scanning.md
language-patterns.md
malicious-code.md
manual-review.md
sast-tools.md
secrets-detection.md

詳細

ソースコードのセキュリティレビュー

クイックスタート

  1. 特定 - 使用されている言語、フレームワーク、パッケージマネージャーを特定します
  2. 自動 SAST - スタックに適したツールを実行します
  3. 依存関係の CVE - ロックファイル/マニフェストをスキャンして、既知の CVE を検出します
  4. シークレットスキャン - ハードコードされた認証情報/トークンを検出します
  5. 手動レビュー - リスクの高いシンク(exec、eval、query、deserialize)を追跡します
  6. 悪意のあるコード - バックドア、難読化、不審なネットワーク呼び出しを確認します
  7. 報告 - CWE/CVE の参照情報、重大度、PoC、修正方法を含めて報告します

ワークフロー

フェーズ 1:列挙
- Languages: ls **/*.{py,js,ts,java,go,rb,php,cs,rs}
- Packages: find package.json, requirements.txt, go.mod, pom.xml, Gemfile, composer.json, Cargo.toml
- Entry points: main(), index.*, app.*, server.*
- Config files: .env*, config.*, settings.*, *.yaml, *.toml
フェーズ 2:自動 SAST

言語ごとのコマンドについては、sast-tools.md を参照してください。

主なツール:

  • 複数言語対応:Semgrep(semgrep --config=auto .)
  • Python:Bandit(bandit -r . -f json)
  • JavaScript/TS:ESLint security plugin、njsscan
  • Java:SpotBugs + FindSecBugs
  • Go:gosec(gosec ./...)
  • PHP:PHPCS Security Audit
  • Ruby:Brakeman(brakeman -o report.json)
  • すべて:CodeQL(gh codeql 経由)
フェーズ 3:依存関係の CVE スキャン

コマンドについては、dependency-cve-scanning.md を参照してください。

エコシステムコマンド
npm/yarnnpm audit --json / yarn audit
Pythonpip-audit -r requirements.txt
Javadependency-check --scan .
Gogovulncheck ./...
Rubybundle audit
汎用trivy fs . / grype dir:.
フェーズ 4:シークレットの検出

secrets-detection.md を参照してください。

trufflehog filesystem . --json
gitleaks detect --source . -v
フェーズ 5:手動レビュー

リスクの高いシンクに重点を置きます。manual-review.md を参照してください。

  • インジェクションシンク:exec、eval、query、system、popen
  • デシリアライズ:pickle.loads、ObjectInputStream、unserialize
  • 暗号:ハードコードされた鍵、脆弱なアルゴリズム(MD5、SHA1、DES、ECB)
  • 認証:JWT の検証、セッション管理、RBAC の適用
  • ファイル操作:ユーザー入力を使ったパスの構築
フェーズ 6:悪意のあるコード

malicious-code.md を参照してください。

  • 難読化された文字列(base64、hex、charCode)
  • ライブラリコード内の予期しないネットワーク呼び出し
  • タイポスクワッティングの兆候
  • postinstall/ライフサイクルスクリプトの悪用
  • 依存関係に隠されたバックドア

言語固有のパターン

Python、JS、Java、Go、PHP、Ruby については、language-patterns.md を参照してください。

重大度の対応表

重大度CVSS例
クリティカル9.0+RCE、データ流出を伴う SQLi、認証バイパス
高7.0-8.9格納型 XSS、SSRF、安全でないデシリアライズ
中4.0-6.9反射型 XSS、情報漏えい、IDOR
低0.1-3.9ヘッダーの欠落、詳細すぎるエラー

出力形式

findings/
  <severity>-<vuln-type>-<location>.md   # One file per finding
evidence/
  <tool>-output.json                      # Raw tool output
summary-report.md                         # Executive summary

各指摘事項:CWE/CVE ID | ファイル:行 | 重大度 | PoC | 修正方法

モバイルアプリの解析(APK/IPA)

モバイルアプリのバイナリが渡された場合:

  1. 展開:unzip app.apk -d extracted/(APK は ZIP アーカイブです)
  2. フレームワークの特定:React Native(assets/index.android.bundle)、Flutter(libflutter.so)、Xamarin、またはネイティブ
  3. React Native:JS バンドルはプレーンテキストです。シークレット、API キー、設定オブジェクト、ハードコードされたトークンを検索します
  4. エンコードされたシークレット:既知のフラグ/シークレット形式の base64 プレフィックス(例:RkxBR = FLAG の base64)を検索します。設定オブジェクトでは、debug、secret、apiKey フィールドにシークレットが base64 で保存されていることがよくあります
  5. ネイティブ:jadx で Java/Kotlin を逆コンパイルし、AndroidManifest.xml、strings.xml、BuildConfig を確認します
  6. 共有ライブラリ:.so ファイルを strings で確認し、ハードコードされた認証情報を探します

重要なルール

  • レビュー中に信頼できないコードを実行しないでください
  • すべての指摘事項は、検証されるまでは潜在的なものとして扱ってください
  • CVE は必ず実際に使用されているバージョンと照合してください
  • サプライチェーンの問題は別途報告してください(すべてのユーザーに影響します)

コメント