
Go製の証拠重視型DASTスキャナ。WebアプリとAPIをクロールし、適応型のSQLi、XSS、RCE、SSRF、認証チェックを再現可能な証拠とともに実行します。
高度なWebセキュリティスキャナー
エンドポイントを発見する。Webアプリケーションをテストする。証拠を検証する。
インストール · 使用方法 · ワークフロー · プロファイル · カバレッジ · レポート · サポート · 機能 · 変更履歴
AKCAは、Goで書かれたオープンソースの証拠重視型動的アプリケーションセキュリティテスト(DAST)スキャナーです。HTTPおよびブラウザ支援によるクローリング、JavaScript解析、APIインポート、適応型アクティブテスト、パッシブ検査、再現可能な証拠を、単一のコマンドラインワークフローに統合しています。
多くのスキャナーはアプリケーションをクロールした後、発見したすべてのエンドポイントに広範なペイロードセットを送信します。この戦略は不要なトラフィックを発生させ、防御システムを誘発し、手動でのトリアージを大量に必要とする弱いシグナルを生み出す可能性があります。AKCAはより文脈に即したアプローチを取ります。まずターゲットについて学習し、発見した攻撃対象領域をモデル化してから、技術スタック、パラメータ、認証状態、WAFの挙動、利用可能な検証機能に応じてテストを選択します。
AKCAは以下のように設計されています:
目標はターゲットを疲弊させたり圧倒したりすることではありません。意図的なリクエストと有用な証拠によって、実際の弱点を見つけることです。
AKCAは、Acunetix、Invicti/Netsparker、Burp Suite Professionalなどの成熟した商用プラットフォームと機能や検出の同等性を主張するものではありません。これらの製品は経験豊富なチームによって長年にわたり構築されています。AKCAは、確立されたセキュリティツールに触発され、独自のアイデアとコミュニティのフィードバックによって形作られ、1人の開発者が利用可能な個人の時間で独立して維持しています。現在の優先事項は、シンプルで有用かつ透明なスキャナーです。グラフィカルインターフェースは、エンジンが十分に安定して信頼できるようになった段階で計画されています。
AKCA v0.2.4のスキャンセッション。ライブエンジンステータス、リソーステレメトリ、確認済みの検出結果を表示。
Go 1.25以降が必要です。```bash go install github.com/akha-security/akca/engine/cmd/akca@latest akca --version
<details>
<summary>コマンドが見つかりませんか?PATHを設定してください。</summary>
デフォルトのGoインストールでは、Goバイナリディレクトリを現在のターミナルの`PATH`に追加します。
**Linux / macOS**```bash
export PATH="$(go env GOPATH)/bin:$PATH"
セッションをまたいで保持するには、その行をシェルの設定ファイルに追加してください。
Windows PowerShell```powershell $env:Path += ";$(go env GOPATH)\bin"
今後のセッションでは、同じディレクトリをユーザーの `Path` 環境変数に追加してください。`GOBIN` を設定した場合は、代わりにそのディレクトリを使用してください。
</details>
### ビルド済みバイナリ
[GitHub Releases](https://github.com/akha-security/akca/releases/latest) からご利用のビルドをダウンロードしてください。リリースにはチェックサム検証用の `SHA256SUMS.txt` が含まれています。
| プラットフォーム | アーキテクチャ | アセット |
| --- | --- | --- |
| Linux | x64 / ARM64 | `akca-linux-amd64` / `akca-linux-arm64` |
| macOS | Intel / Apple Silicon | `akca-darwin-amd64` / `akca-darwin-arm64` |
| Windows | x64 | `akca-windows-amd64.exe` |
Linux または macOS では、ダウンロードしたファイルに実行権限を付与してください。Linux x64 の場合:```bash
chmod +x akca-linux-amd64
./akca-linux-amd64 --help
Windows では、ダウンロードしたファイルを akca.exe にリネームし、PowerShell で .\akca.exe --help を実行します。以下の例では、akca が PATH 上で利用可能であることを前提としています。
ブラウザベースのチェックには Chrome、Chromium、または Edge が必要です。
AKCA は、所有しているかテストの許可を得ているシステムでのみ使用してください。例の URL は、許可されたターゲットに置き換えてください。
akca -u https://example.com
デフォルトプロファイルは `full` です。HTML レポートを保存するには:```bash
akca -u https://example.com -f html -o report.html
SQLインジェクション、XSS、サーバーサイドインジェクションのチェック(SSTIを含む)を実行します:```bash akca -u https://example.com -m sql,xss,rce
パッシブチェックを実行する:```bash
akca -u https://example.com -m passive
パッシブスキャンでも、検出と検査のためにリクエストを送信します。
セッションCookieを指定します:```bash akca -u https://example.com -c "session=YOUR_SESSION_COOKIE"
または認証ヘッダー:```bash
akca -u https://example.com -H "Authorization: Bearer YOUR_TOKEN"
一部の認可チェックでは、単一のセッションを超えた追加のIDまたは状態設定が必要です。
akca -u https://api.example.com --api-spec ./openapi.yaml -m api
Discovery は OpenAPI/Swagger、RAML、Postman、HAR、GraphQL、WSDL、protobuf、AsyncAPI の入力をサポートしており、対応する ZIP バンドルも含まれます。テストカバレッジは、インポートされたプロトコルと操作によって異なります。
### プロキシ経由でトラフィックを検査する```bash
akca -u https://example.com -p http://127.0.0.1:8080
すべての利用可能なオプションについては akca --help を実行してください。
日常的な簡易ヘルプには akca -h を、完全なオプションリファレンスには akca --help を使用してください。スキャン対象は -u または --url で明示的に指定する必要があります。
プロファイルは -m で選択するか、カンマで区切って複数を組み合わせます。
実行は、発見されたエンドポイント、設定、利用可能な検証機能、およびスキャン制限に依存します。完全な機能ガイドについては FEATURES.md を参照してください。
AKCA は段階的なパイプラインを使用するため、後続のチェックが以前に学習した事実を活用できます。
カバレッジは明示的です。スキップされた、失敗した、予算制限された、または未完了のターゲットは不完全なカバレッジとして記録され、クリーンなセキュリティ結果として暗黙的に扱われることはありません。
以下のリストは、実装されている発見エンジンとセキュリティテストファミリーを説明しています。個々のチェックは、発見されたサーフェス、スキャンプロファイル、設定、安全ポリシー、および検証の前提条件が適用可能な場合にのみ実行されます。リストに記載された機能は、脆弱性のすべてのバリアントが検出されることを保証するものではありません。
合計リクエスト予算と最大期間を設定します:```bash akca -u https://example.com --request-budget 5000 --time-budget 30m
または、検出された URL/メソッドの組み合わせからモジュールの予算を計算します:```bash
akca -u https://example.com --requests-per-target 200
AKCA は、モジュール、URL、パラメータに対して有界なモジュール予算を配分します。未使用の割り当ては後続の作業に繰り越されます。正の --request-budget は --requests-per-target より優先されます。
デフォルトでは、モジュールスキャンにリクエストクォータはありません。予算による中断は incomplete coverage として報告されます。後続の作業で未使用の予算が戻っても、中断されたターゲットは自動的に再開されません。どの予算設定も、すべての脆弱性の検出を保証するものではありません。
リンクされた API/サービスサブドメインは、デフォルトのターゲットスコープ外です。同じルート配下のリンクされたサブドメインを含めるには:```bash akca -u https://www.example.com --include-linked-api-subdomains
### フルスキャンに時間がかかる理由
AKCAのデフォルトのフルスキャンは、最短の完了時間ではなく、カバレッジとエビデンスの品質を中心に設計されています。そのため、その実行時間は、浅いHTTPクロールで停止したり、単一のレスポンス差分から脆弱性を報告したりするツールとは直接比較できません。
包括的な実行に時間がかかる場合があるのは、AKCAが以下のことを行うためです:
- クライアントレンダリングされるルートのためにブラウザセッションを維持し、遅延読み込みされるアプリケーションチャンクを含むJavaScriptを検査します。
- 有望な結果を、知見として昇格させる前にコントロールを用いて再実行し、一般的なエラー、不安定なページ、WAFレスポンスに起因する誤検知を減らします。
- モジュールがより強力な証明を必要とする場合、アイデンティティ、状態、コールバックを考慮したチェックを実行します。
- 速度だけを唯一の成功指標として扱うのではなく、ターゲットのペーシング、リトライ、リクエスト予算、帯域外観測ウィンドウを尊重します。
スキャン時間は、アプリケーションのサイズ、レスポンスレイテンシ、認証フロー、防御コントロール、設定されたスコープにも依存します。より迅速なフィードバックを得るには、`-m`で関連するモジュールのみを選択するか、明示的なクロール、リクエスト、時間の予算を適用してください。レートと並行性を上げるのは、許可されたターゲットが追加のトラフィックを安全に処理できる場合に限ってください。短いスキャンが必ずしもより完全なスキャンであるとは限りません。
## レポート
`-f`で出力形式を、`-o`でファイルパスを選択します:```bash
akca -u https://example.com -f html -o report.html
対応フォーマット: HTML、JSON、Markdown、CSV、SARIF。各実行は新しいスキャンを開始します。
HTMLレポートは自己完結型で、AKCAロゴ、リスクと重大度のサマリー、脆弱性統計、構造化された検出詳細、展開可能なHTTP証拠を含みます。リクエストタブとレスポンスタブは、統合ビュー、全内容の展開、コピーをサポートします。検出結果が一致するレスポンス値を保持している場合、AKCAはそれを黄色でハイライトし、反射されたペイロードや露出したシークレットの特定を支援します。パッシブなシークレット検出結果は、一致箇所周辺の抜粋を保持します。
モジュールに応じて、検出結果には以下が含まれます:
タイミング検出、欠落ヘッダー、外部コールバックには、ハイライトすべきレスポンステキストが存在しない場合があります。それらの検証コンテキストが関連する証拠を提供します。
スキャナが完全な生トランザクションを保存した場合、レポートはそれを正確に保持します。古い証拠や構造化のみの証拠は、リクエスト行、順序付けられたヘッダー、ヘッダー/ボディ区切り、標準的なHTTPレスポンス理由句を備えた従来のBurp形式のHTTPレイアウトでレンダリングされます。トランスポートキャプチャ制限によってレスポンスが切り詰められた場合、レポートはその旨を明示します。保存された部分を、利用できない完全なレスポンスとして提示することは決してありません。
保存された検出結果をリプレイする:```bash akca replay --finding 42
レポートはデフォルトで認識された認証情報をマスクします。生の保存された証拠はリプレイ用に保持されます。生のエクスポートが必要な場合にのみ、スキャン設定で `redact_reports` を `false` に設定するか、レポート API で `redact=false` を使用してください。共有前にレポートを確認してください。自動マスキングはすべてのアプリケーション固有のシークレットを認識できるわけではありません。
### クロールとプルーフの設定
クローラーは各クロールフェーズを通じて、Cookie やブラウザストレージを含む 1 つのブラウザセッションを保持します。明示的な非フォームタブと展開可能なパネルを探索しますが、フォームの自動入力や送信は行いません。ブラウザリクエストは依然としてスコープとリクエスト予算に従います。必要なサードパーティの静的依存関係については、正確なホスト名を個別に設定してください:```json
{
"browser_resource_domains": ["cdn.example.com"],
"redact_reports": true
}
これにより、それらのホストへのGET/HEADスクリプト、スタイルシート、画像、フォント、メディアリクエストのみが許可され、認証情報とカスタムヘッダーは削除されます。それらのホストをアクティブスキャンスコープに追加したり、クロスオリジンAPI呼び出しを許可したりするものではありません。ブロックされたブラウザ依存関係はカバレッジギャップイベントを生成します。
発見されたURLは、訪問できない場合でも保持されます。キューに入った作業を残したまま予算を使い果たしたクロールは、部分的なスキャンと非ゼロのCLI終了コードを生成します。モジュールのプリフライトメッセージは、欠落しているID/状態ポリシーと、設定された検証機能を区別します。
未設定のレート制限チェックは、脆弱性の検出結果ではなく観察結果を生成します。設定されたしきい値の証明にはwindow_secondsも必要です。リクエストがそのウィンドウ内に収まらない場合、チェックは結論が出ません。SQLiは、400レスポンスや算術評価だけを証明として扱いません。400/422レスポンスに現れる新しいベンダー固有のSQLエラーは、リプレイおよびコントロール検証パスを通過する必要があります。
リリースの詳細についてはCHANGELOG.mdを参照してください。
AKCAはスポンサーシップや個人からの寄付を受け付けていません。コードの貢献、テスト、ドキュメント、思慮深いフィードバックはいつでも歓迎します。
Projeye maddi olarak destek olmak istiyorsanız, bana göndermek yerine Mehmetçik Vakfı, AFAD, Türk Kızılay veya Çocuk Hizmetleri Genel Müdürlüğü aracılığıyla desteklenen güvenilir sosyal yardım çalışmalarından birine bağış yapmanızı rica ediyorum. Mümkünse bağışınızı kızım Akça Aktaş adına yapın. Bağıştan sonra X üzerinden @caneraktas_ hesabına mesaj göndermeniz beni gerçekten çok mutlu eder.
If you would like to support the project financially, please donate to a reputable charity in your country that helps children, disaster-affected communities, veterans, or people in urgent need. When possible, make the donation in the name of my daughter, Akça Aktaş. You are welcome to share it with me on X at @caneraktas_; knowing that this project inspired a helpful act would mean a great deal to me.
ソースからビルド:```bash git clone https://github.com/akha-security/akca.git cd akca/engine go build -buildvcs=false -trimpath -o ../akca ./cmd/akca
Windows では、実行ファイル名に `-o ../akca.exe` を使用してください。
`engine` ディレクトリからチェックを実行します:```bash
go test ./... -count=1
go vet ./...
go run ./cmd/akca benchmark --strict
ベンチマークは、観測されたコーパスを測定します。実装の詳細と検証の制限については、アーキテクチャガイドと検証監査をお読みください。
コントリビューションを歓迎します。プルリクエストを作成する前に、CONTRIBUTING.mdと行動規範をお読みください。AKCAの脆弱性はSECURITY.mdを通じて報告してください。
Apache License 2.0 · Copyright 2026 AKHA Security contributors.
| プロファイル | チェック内容 |
|---|
full | 有効なすべてのアクティブおよびパッシブモジュール。デフォルト |
sql | SQL および NoSQL インジェクション |
xss | 反射型、蓄積型、DOM、ブラインド XSS。関連するクライアントサイドチェック |
rce | コマンドインジェクション、SSTI、デシリアライゼーション、および関連チェック |
api | API 露出、BOLA/IDOR、BFLA、マスアサインメント、およびトークンチェック |
graphql | GraphQL スキーマおよびオペレーションチェック |
ssrf | SSRF、XXE、および関連するアウトオブバンドチェック |
auth | 認証、認可、CSRF、および Cookie/ヘッダーチェック |
passive | メタデータ、TLS、セキュリティヘッダー、シークレット、およびコンポーネント分析 |
fuzz | パス、露出したアーティファクト、トラバーサル、および関連チェック |
| オプション | 目的 |
|---|
--request-budget 5000 | ディスカバリ、リトライ、リダイレクトを含む総リクエスト数を制限する |
--requests-per-target 200 | 検出された URL/メソッドの組み合わせからモジュール予算を導出する |
--crawler-budget 1000 | ディスカバリリクエストを制限する |
--time-budget 30m | スキャン時間を制限する |
--rate-limit 5 | 1 秒あたりのリクエスト数を制限する |
--concurrency 4 | 同時ワーカー数を制限する |