はじめに
新たなサイバー脅威が次々と登場する中、アプリとAPIのセキュリティを万全に守ることが以前にも増して難しくなっています。セキュリティ専門家にとって、これらの脅威に慣れ、問題が大きくなる前に対処するのは大変な課題です。
IDORは特に注目すべき脆弱性で、OWASP Top 10にも掲載されています。内容を確認してほしい。
IDOR脆弱性は、認証済みユーザの入力が他の権限のない者によって利用され、特定のアプリ/リソース/ソフトウェア/操作へアクセスされることで発生します。早急な対処がなされない場合、計画的なIDOR攻撃により深刻な危険が生じる可能性があります。
場合によっては、IDOR自体は直接的な脅威でないこともあります。しかし、このタイプのアクセス制御攻撃を用いることで、熟練した攻撃者がより大規模で被害の大きい攻撃の下地を作り出す恐れがあります。
OWASP Top 10は、最も重大な被害をもたらす高リスクの脆弱性を専門家が選定した一覧です。各コミュニティのセキュリティ専門家の意見を基に作成され、通常3~4年ごとに更新されます。IDORは2017年のリストにも含まれていました。
この用語は、攻撃者が参照オブジェクトを直接狙い、制限されたリソースやアプリへの不正なアクセスを試みるサイバー攻撃を指します。
OWASPのIDOR定義によれば、脆弱なウェブサイトやアプリは、内部で利用しているオブジェクト(例:ユーザID)を直接表示する傾向があります。そのため、実際の参照先やその形式が明らかになり、不正なユーザがアプリ所有のリソースや操作にアクセスされる可能性があります。
以上のIDOR脆弱性の各種は、単独でも、また他の脆弱性と組み合わせることで強力な攻撃手段となります。
ユーザが操作するパラメータを用いたIDOR攻撃は非常に一般的であり、各所で見受けられます。以下にいくつかの例を示します。
以下は、IDORが発生する可能性を示す例です。例えば、顧客専用ページに以下のURLが用いられていると仮定します。
https://insecure-website.com/customer_account?customer_number=132355
バックエンドのデータベースに保存された情報が抽出され、アクセスが実現されます。
この例では、顧客番号がバックエンドデータベースのレコードインデックスとして利用されています。その他の対策が不十分な場合、攻撃者は該当のcustomer_numberの値を変更し、設定されたアクセス制限を回避できます。これにより、他のユーザの情報にも容易にアクセスされる恐れがあります。
この例は、水平権限昇格を引き起こすIDOR脆弱性を示しています。水平権限昇格に加え、垂直権限昇格も可能です。いずれの場合も、攻撃者が追加の権限情報を変更することで、アクセス制限が容易に突破されます。
攻撃者がユーザアカウントに侵入した場合、パスワード流出の悪用や主要パラメータの変更といった手法が用いられることもあります。
静的ファイル内に検出されない機微な情報が存在する場合、IDOR脆弱性が発生する可能性があります。
例えば、チャットメッセージの記録をディスクに保存しているウェブサイトでは、連番のファイル名が使用され、下記のURLから任意のチャット記録が取得可能なケースがあります。
https://insecure-website.com/static/12144.txt
このURLを利用し、攻撃者がファイル名を変更することで、記録されたチャット内容やその他重要なデータへ不正にアクセスされる恐れがあります。
早期に検出すれば、被害は軽減されます。幸いなことに、IDORの検出とテストには、手動または自動化された複数の手法が存在します。以下、その一例を紹介します。
ファズテストは、プログラムやアプリに不正な入力があった際、システムの直接的または間接的な不具合を検出する従来の手法です。SwaggerでAPIが定義されているアプリの場合、Fuzz Lightyearツールを用いることで、タイムリーなIDOR検出が可能です。
次に有効な手法として、対象アプリに対するペンテストが挙げられます。正確かつ迅速、かつ広範囲な検出が期待でき、Burp Authorizeなどのツールがよく利用されます。
この脆弱性に適切な注意を払わないと、数多くの問題が発生することは明らかです。そのため、予防、早期検出、対策を講ずることが欠かせません。
基本的なIDOR脆弱性の予防策は、脆弱性が発生しやすい直接参照を、それに相応する間接参照に置き換えることです。これにより、攻撃の可能性を自動的に低減できます。さらに納得がいかない場合は、安全なハッシュを採用する方法もあり、攻撃者の狙える範囲を狭める効果があります。
ただし、これらの予防策は内部実装を隠すには有用ですが、潜在的なアクセス制御の問題を特定するには不十分です。より高度な対策として、包括的なセッション管理を行えば、IDOR攻撃が成功した場合でも攻撃者が認可されたリソースにアクセスするのを防げます。
Subscribe for the latest news