ハッキングAPI ―Web APIを攻撃から守るためのテスト技法

本日読了。

良書。あまり類書が無い。

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)。
  • 以降、ツールを使った、一般的な脆弱性の検出方法について詳解。