LDAPインジェクション(CWE-90)の仕組みと対策。検索フィルタとDNでエスケープ規則が違う点まで整理する
LDAPインジェクション(CWE-90)を発生原理から対策まで整理します。利用者名に渡された*や括弧が検索フィルタの意味を変えて認証をすり抜ける仕組み、RFC 4515とRFC 4514でエスケープ規則が異なる理由、検索してからバインドする2段構えや最小権限のバインドアカウントまで開発者向けに解説します。
LDAPインジェクション(CWE-90)を発生原理から対策まで整理します。利用者名に渡された*や括弧が検索フィルタの意味を変えて認証をすり抜ける仕組み、RFC 4515とRFC 4514でエスケープ規則が異なる理由、検索してからバインドする2段構えや最小権限のバインドアカウントまで開発者向けに解説します。
NoSQLインジェクション(CWE-943相当)を発生原理から対策まで整理します。信頼できない入力がクエリのオブジェクト構造や演算子として解釈され、認証回避やデータ抽出に至る仕組みと、型検証や演算子の拒否、安全なクエリAPI、$whereの不使用、最小権限による根本対策を開発者向けに解説します。
キャッシュキーに含まれないunkeyed inputが応答に反映されると、汚染した応答がキャッシュに載り後続の正規利用者へ配信されます。キャッシュキー、cache buster、レスポンス反映をたどってWebキャッシュポイズニングの機構と、キャッシュ設計を軸にした防御を開発者向けに整理します。
利用者入力を検証せずにリダイレクト先へ使うことで生じるオープンリダイレクト(CWE-601)を、サーバ側とクライアント側それぞれの機構から解説します。フィッシングやOAuthの認可コード窃取に悪用される理由と、許可リストによる正しい防御設計を開発者向けに整理します。
プロキシとバックエンドがHTTPリクエストの境界を別々に解釈することで起きるリクエストスマグリングを、Content-LengthとTransfer-Encodingの矛盾、CL.TEやHTTP/2ダウングレードdesyncの機構、そして防御設計まで開発者向けに整理します。
セキュリティを後付けの検査ではなく設計に組み込むための脅威モデリングを、STRIDEを軸に解説します。データフロー図と信頼境界の描き方から、6分類での脅威の洗い出し、対策の紐付けと優先度付けまでを開発チーム向けに整理します。
ユーザー入力がデータではなくテンプレートそのものとして評価されると、多くのエンジンでリモートコード実行にまで至ります。SSTIの発生機構と、値として渡す実装やロジックレス化などの対策を開発者向けに整理します。
安全でないデシリアライゼーション(CWE-502)を、発生原理から対策まで開発者目線で整理します。オブジェクトの復元がなぜ任意コード実行やDoSにつながるのか、ガジェットチェーンの考え方、OWASP Top 10での位置づけの変遷、そしてネイティブ形式を避けJSONを使う根本対策と言語別の危険APIの避け方を解説します。
XMLパーサが外部実体を解決してしまうXXE(XML外部実体参照、CWE-611)を、なぜ成立するのかという機構から、ローカルファイル読み出しやSSRF、実体展開によるDoSといった影響、DTDと外部実体の解決を無効化する根本対策までWebアプリ開発者向けに整理します。
IDOR(BOLA)は、識別子で受け取った資源を要求元がアクセスしてよいか確かめずに直接参照することで成立します。OWASP A01 Broken Access Controlとの関係、サーバー側でのオブジェクト単位の認可、既定は拒否、推測困難なIDは認可の代替にならない点まで、Web/API開発者向けに整理します。
ユーザー入力がファイルパスに連結され「../」で基準ディレクトリの外へ到達されるパストラバーサル(CWE-22)を、なぜ成立するのかという機構から、任意ファイル読取などの想定影響、正規化と許可リストによる根本対策までWebアプリ開発者向けに体系的に整理します。
OWASP Top 10のA10:2021に位置づくSSRF(サーバーサイドリクエストフォージェリ)を、なぜ成立するのかという原理から、内部ネットワークやクラウドメタデータへ到達されうる危険性、許可リスト方式の検証やIMDSv2による防御までを実務目線で整理します。
Webアプリケーションの代表的なセキュリティリスクをまとめたOWASP Top 10について、その位置づけ、各カテゴリで何が問題になりどう防ぐか、そして開発プロセスへの組み込み方までを、開発者目線で具体例つきに解説します。