ハッキング API

ハッキングエーピーアイ

Web API を攻撃から守るためのテスト技法

ハッキング API の表紙
プログラミング
著者:
Corey Ball / 石川 朝久 / 北原 憲 / 洲崎 俊(コーリー ボール / イシカワ トモヒサ / キタハラ ケン / スザキ シュン)
出版社:
オライリージャパン
出版日:
2023年03月27日
ISBN:
9784814400249
在庫:
在庫あり
4(1 件 / 楽天ブックス)
中級者向け
プログラミングインターネットセキュリティインターネット・WEB デザインセキュリティ脆弱性認証APIテスト保護Web セキュリティ攻撃対策

なぜ注目されているか

言及数
627位
総合892位 ↓ 31 ランクダウン 言及 4 件

書籍紹介

API セキュリティの基礎、テスト、保護までを体系的に学べる!
本書は、Web API に脆弱性がないかどうかを検証する API セキュリティのテスト技術、保護技術についての解説書です。基礎知識となる Web API の仕組みや脆弱性の概要から、テストツール、検証用ラボの構築、各種攻撃 (認証・認可に対する攻撃、インジェクション攻撃など) への対策まで、体形的に学ぶことができます。自社サービス活用の促進、開発の省力化・効率化の側面からサービスを Web API として公開することが不可欠となっている昨今、必要不可欠な知識です。

技書の森解説

『ハッキング API』 (Corey Ball 著、石川 朝久 訳、北原 憲、洲崎 俊 技術監修、オライリー・ジャパン、2023 年 3 月刊) は、Web API に脆弱性がないかを検証するセキュリティテストの方法を、攻撃者の視点から学ぶ解説書です。副題は「Web API を攻撃から守るためのテスト技法」、原書は Hacking APIs -Breaking Web Application Programming Interfaces です。版元の紹介文によると、Web アプリケーションで最も一般的な API の形式である REST API のセキュリティテストに焦点を当てながら GraphQL API への攻撃も扱い、情報セキュリティに携わるエンジニアだけでなく、Web アプリケーションのエンジニアリングチームにも有益な内容とされています。

テストの準備からデータ侵害の事例まで、4 部 16 章の構成

本文は第 0 章から第 15 章までの 16 章を 4 部に分け、付録 2 本が続きます。第 1 部「API セキュリティの原理」は、テスト許可の取得や脅威モデリング、報告書と再テスト、バグバウンティプログラムのスコープの注意点を扱う第 0 章「セキュリティテストへの準備」に始まり、第 1 章「Web アプリケーションの仕組み」、第 2 章「Web API の解剖学」、第 3 章「一般的な API 脆弱性」へと進みます。第 2 章は RESTful API と GraphQL、JSON や XML、YAML といったデータ交換フォーマット、BASIC 認証や API キー、JSON Web Tokens、HMAC、OAuth 2.0 などの認証方式を、第 3 章はオブジェクトレベルの認可不備 (BOLA)、過剰なデータ露出、機能レベルの認可不備 (BFLA)、マスアサインメント、ビジネスロジックの欠陥などの脆弱性の種類を取り上げます。第 2 部「API テストラボの構築」は第 4 章「API ハッキングラボの構築」と第 5 章「脆弱な API ラボ環境の準備」で、Kali Linux、Burp Suite、Postman、OWASP ZAP、Docker と Docker Compose、crAPI や OWASP Juice Shop といった道具と検証用アプリケーションを揃えます。第 3 部「API への攻撃」は第 6 章「API の検出」から第 12 章「インジェクション攻撃」までで、エンドポイント分析、認証への攻撃、ファジング、認可への攻撃、マスアサインメントの章が並びます。第 4 部「実世界における API 攻撃」は第 13 章「バイパス技術の応用とレート制限テスト」、第 14 章「GraphQL への攻撃」、第 15 章「データ侵害とバグバウンティ」で、実際のデータ侵害とバグバウンティの事例を扱います。付録 A は「API ハッキングチェックリスト」、付録 B は「参考文献」です。

API の認可の不備が画面の検査では見落とされやすい理由

Web の画面を相手にした診断では、ボタンやフォームといった見える入口を順にたどることで多くの確認ができます。ところが REST API では、利用者の画面には出てこない呼び出し先や項目も外部からそのまま呼び出せるため、どこまでが攻撃を受けうる範囲なのかを先に洗い出す作業が要になります。とくに見落とされやすいのが認可の不備です。ログインしているかを確かめる認証は多くの実装に入っていても、リクエストに含まれる識別子が本当にその利用者のものかを毎回確かめていなければ、他人のデータに手が届いてしまいます。画面では使わない項目までレスポンスに含めて返す設計や、受け取った JSON の項目をそのまま内部のデータに反映する実装も、画面の確認だけでは気づきにくい弱点です。

攻撃者の視点でテストする手法を身につける意味は、防御を作った人の想定ではなく、外から見える振る舞いで確かめられる点にあります。認可の判定を一か所に集める、返す項目を明示して絞る、受け付ける項目を許可した一覧に限るといった対策は、実際に試して初めて抜けが見つかることも少なくありません。本書は第 2 部で、意図的に脆弱に作られたアプリケーションを手元の検証用ラボに用意し、そのうえで第 3 部の攻撃の章へ進む並びになっています。

HTTP の基礎がある開発者と診断担当者に向けて

第 1 章で URL、HTTP のリクエストとレスポンス、ステータスコード、リクエストメソッド、データベースの基本を押さえる構成なので、Web の仕組みを一から学び直す必要はありませんが、検証環境は Kali Linux や Docker で組み立てるため、Linux のコマンド操作に慣れていると準備が進めやすくなります。目次に特定の開発フレームワークでの実装手順を扱う章はなく、安全な API をコードでどう組み立てるかを順に学びたい人は、設計や実装の本と組み合わせるのが合っています。セキュリティ分野の中から目的に合う本を探し直したい場合は、セキュリティ技術書の選び方 で分野の全体を確かめておくと選びやすくなります。また本書は第 0 章をテスト許可の取得から始めており、自分が管理する環境か、明示的に許可を得た範囲の外で手法を試せば、関係する法令に触れるおそれがあります。

自社で API を公開している開発チームや、Web の脆弱性診断を API へ広げたい担当者、バグバウンティのスコープの中で API を調べたい人にとって、準備から検証用ラボ、脆弱性の分類、実際の事例までを一続きで追える本書は、API の守りを外からの振る舞いで確かめる手順を身につけるための一冊です。

言及した記事 (4 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: