本日読了。
良書。あまり類書が無い。
APIの脆弱性は、APIごとに挙動が大きく異なるため一般化しにくく、従来のアプリケーションで発見される脆弱性とも傾向が異なる。そのためWAFでの検知は難しい。
- ペネトレーションテストには、クラウド事業者・アプリ提供者などの許可を得る必要がある。メガクラウド各社は有効的で、DoS攻撃などを除いて事前許可が必要無い場合が多い。
- API認証の種類。認証なし、BASIC認証、APIキー、JWT、HMAC。認可としてOAuth2.0。
- OWASP API Security Top 10。
- 一般的な脆弱性。意図しない情報漏洩(WordPressなどミドル初期設定、詳細なエラーメッセージにサーバ種別やバージョンが入るなど)、オブジェクトレベルの認可不備(BOLA)、ユーザー認証の不備、リクエストを超えた過剰なデータ露出、リソース不足とレート制限不備によるDos攻撃の許容、機能レベルの認可不備(BFLA)、マスアサインメント(アプリケーションの意図以上のパラメータに反応してしまう)、セキュリティ設定ミス(暗号化設定ミス、入力値検証の不備、など)、インジェクション(リクエストをコードとして実行してしまう)、不適切な資産管理(旧版APIの脆弱性残存など)、ビジネスロジックの欠陥(意図しないコードのアップロード実行など)。
- ツール。Chrome DevTools、Burp Suite(リクエストの取得と変更)、FoxyProxy(ボタンひとつでリクエストをBurp SuiteなどのProxyソフトに振り向ける)、Postman(APIブラウザ)、その他補助ツール(OWASP Amass、Kiterunner、Nikto、OWASP ZAP、Wfuzz、Arjun)。
- 以降、ツールを使った、一般的な脆弱性の検出方法について詳解。