Coders Conquer Security OWASP Top 10 API Series - Excessive Data Exposure
過剰なデータ露出の脆弱性は、OWASP のリストに掲載されている他の API 問題とは異なり、非常に特殊な種類のデータが関係している点が特徴です。この脆弱性の背後にある実際の仕組みは他の問題と似ていますが、この場合の「過度のデータ露出」は、法的に保護されたデータや非常にセンシティブなデータを含むと定義されています。これには、よくPIIと呼ばれる、個人を特定できる情報が含まれます。また、PCI(Payment Card Industry)情報が含まれる場合もあります。さらに、欧州の一般データ保護規則(GDPR)や米国の医療保険の相互運用性と説明責任に関する法律(HIPAA)などのプライバシー法の対象となる情報も、過剰なデータ露出に含まれます。
ご想像のとおり、これは大きな懸念材料であり、精通した開発者は可能な限りこれらのバグをつぶす方法を学ぶ必要があります。もし、あなたがデータ漏洩対策に取り組む準備ができているなら、ゲーム化されたチャレンジに参加してみてください。
あなたのスコアは何点でしたか?読んでみてください。
過剰なデータ露出の例としてはどのようなものがありますか?
過剰なデータ公開が発生する主な理由の一つは、開発者やコーダーがアプリケーションで使用するデータの種類を十分に把握していないことです。そのため、開発者は、すべてのオブジェクトのプロパティがエンドユーザーに公開されるような汎用的な処理を行う傾向があります。
また、開発者は、フロントエンドコンポーネントがユーザーに情報を表示する前にデータのフィルタリングを行うことを想定していることがあります。一般的なデータであれば、これが問題になることはほとんどありません。しかし、例えば、セッションIDの一部として法的に保護されたデータや機密データをユーザに公開すると、セキュリティと法的な観点から大きな問題になります。
OWASPレポートでは、機密データが誤って共有されやすい例として、警備員が施設内の特定のIoTベースのカメラへのアクセス権を与えられた場合を想定しています。おそらく、それらのカメラは密閉された安全なエリアを監視しており、一方で、人を映し出す他のカメラは、より高い権限を持つ警備員や監督者に制限されているはずです。
警備員に許可されたカメラへのアクセス権を与えるために、開発者は以下のようなAPIコールを使用することができます。
/api/sites/111/cameras
それを受けて、アプリは警備員が見ることのできるカメラの詳細を以下の形式で送信します。
{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}
表面的には問題なく機能しているように見えます。アプリのグラフィカル・ユーザー・インターフェースを使用している警備員は、自分が見ることを許可されたカメラのフィードだけを見ることができます。問題は、一般的なコードを使用しているため、実際のAPIレスポンスには、施設内のすべてのカメラの全リストが含まれていることです。ネットワークを盗聴してそのデータを取得したり、警備員のアカウントを侵害したりすると、ネットワーク上のすべてのカメラの位置と名称を知ることができます。そして、そのデータに制限なくアクセスすることができるのです。
過剰なデータ露出をなくす
データの過剰な露出を防ぐ最大の鍵は、データとそれを取り巻く保護機能を理解することです。汎用的なAPIを作成し、ユーザーに表示する前にデータを選別することをクライアントに任せることは、多くの予防可能なセキュリティ侵害につながる危険な選択です。
関連するデータ保護を理解することに加えて、汎用APIを使ってユーザーにすべてを送信するプロセスを止めることも重要です。例えば、to_json()やto_string()のようなコードは避けなければなりません。代わりに、コードは許可されたユーザーに返す必要のあるプロパティを特に選び、その情報だけを送信するべきです。
保護されたデータが誤って過剰に共有されていないことを確認する方法として、組織は、セキュリティの追加レイヤーとして、スキーマベースのレスポンス検証メカニズムの実装を検討する必要があります。スキーマベースのレスポンス検証メカニズムでは、エラー報告のルールを含め、すべてのAPIメソッドから返されるデータを定義し、強制する必要があります。
最後に、PIIやPCIを含むと分類されるデータや、GDPRやHIPAAなどの規制で保護されている情報は、強力な暗号化を用いて保護する必要があります。これにより、過剰なデータ露出の脆弱性の一部としてデータの場所が漏れることがあっても、悪意のあるユーザーや脅威のあるアクターの手に渡ったとしても、データを保護するための優れた二次的な防御策が用意されています。
以下のブログページをご覧ください。 Secure Code Warriorブログページでは、この脆弱性に関するより詳しい情報や、他のセキュリティ上の欠陥の被害から組織や顧客を守る方法についてご紹介しています。また、Secure Code Warrior トレーニングプラットフォームのデモをお試しいただくことで、サイバーセキュリティに関するすべてのスキルを磨き上げ、最新の状態に保つことができます。
Matias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。
Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するMatias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。
マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。
Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。
過剰なデータ露出の脆弱性は、OWASP のリストに掲載されている他の API 問題とは異なり、非常に特殊な種類のデータが関係している点が特徴です。この脆弱性の背後にある実際の仕組みは他の問題と似ていますが、この場合の「過度のデータ露出」は、法的に保護されたデータや非常にセンシティブなデータを含むと定義されています。これには、よくPIIと呼ばれる、個人を特定できる情報が含まれます。また、PCI(Payment Card Industry)情報が含まれる場合もあります。さらに、欧州の一般データ保護規則(GDPR)や米国の医療保険の相互運用性と説明責任に関する法律(HIPAA)などのプライバシー法の対象となる情報も、過剰なデータ露出に含まれます。
ご想像のとおり、これは大きな懸念材料であり、精通した開発者は可能な限りこれらのバグをつぶす方法を学ぶ必要があります。もし、あなたがデータ漏洩対策に取り組む準備ができているなら、ゲーム化されたチャレンジに参加してみてください。
あなたのスコアは何点でしたか?読んでみてください。
過剰なデータ露出の例としてはどのようなものがありますか?
過剰なデータ公開が発生する主な理由の一つは、開発者やコーダーがアプリケーションで使用するデータの種類を十分に把握していないことです。そのため、開発者は、すべてのオブジェクトのプロパティがエンドユーザーに公開されるような汎用的な処理を行う傾向があります。
また、開発者は、フロントエンドコンポーネントがユーザーに情報を表示する前にデータのフィルタリングを行うことを想定していることがあります。一般的なデータであれば、これが問題になることはほとんどありません。しかし、例えば、セッションIDの一部として法的に保護されたデータや機密データをユーザに公開すると、セキュリティと法的な観点から大きな問題になります。
OWASPレポートでは、機密データが誤って共有されやすい例として、警備員が施設内の特定のIoTベースのカメラへのアクセス権を与えられた場合を想定しています。おそらく、それらのカメラは密閉された安全なエリアを監視しており、一方で、人を映し出す他のカメラは、より高い権限を持つ警備員や監督者に制限されているはずです。
警備員に許可されたカメラへのアクセス権を与えるために、開発者は以下のようなAPIコールを使用することができます。
/api/sites/111/cameras
それを受けて、アプリは警備員が見ることのできるカメラの詳細を以下の形式で送信します。
{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}
表面的には問題なく機能しているように見えます。アプリのグラフィカル・ユーザー・インターフェースを使用している警備員は、自分が見ることを許可されたカメラのフィードだけを見ることができます。問題は、一般的なコードを使用しているため、実際のAPIレスポンスには、施設内のすべてのカメラの全リストが含まれていることです。ネットワークを盗聴してそのデータを取得したり、警備員のアカウントを侵害したりすると、ネットワーク上のすべてのカメラの位置と名称を知ることができます。そして、そのデータに制限なくアクセスすることができるのです。
過剰なデータ露出をなくす
データの過剰な露出を防ぐ最大の鍵は、データとそれを取り巻く保護機能を理解することです。汎用的なAPIを作成し、ユーザーに表示する前にデータを選別することをクライアントに任せることは、多くの予防可能なセキュリティ侵害につながる危険な選択です。
関連するデータ保護を理解することに加えて、汎用APIを使ってユーザーにすべてを送信するプロセスを止めることも重要です。例えば、to_json()やto_string()のようなコードは避けなければなりません。代わりに、コードは許可されたユーザーに返す必要のあるプロパティを特に選び、その情報だけを送信するべきです。
保護されたデータが誤って過剰に共有されていないことを確認する方法として、組織は、セキュリティの追加レイヤーとして、スキーマベースのレスポンス検証メカニズムの実装を検討する必要があります。スキーマベースのレスポンス検証メカニズムでは、エラー報告のルールを含め、すべてのAPIメソッドから返されるデータを定義し、強制する必要があります。
最後に、PIIやPCIを含むと分類されるデータや、GDPRやHIPAAなどの規制で保護されている情報は、強力な暗号化を用いて保護する必要があります。これにより、過剰なデータ露出の脆弱性の一部としてデータの場所が漏れることがあっても、悪意のあるユーザーや脅威のあるアクターの手に渡ったとしても、データを保護するための優れた二次的な防御策が用意されています。
以下のブログページをご覧ください。 Secure Code Warriorブログページでは、この脆弱性に関するより詳しい情報や、他のセキュリティ上の欠陥の被害から組織や顧客を守る方法についてご紹介しています。また、Secure Code Warrior トレーニングプラットフォームのデモをお試しいただくことで、サイバーセキュリティに関するすべてのスキルを磨き上げ、最新の状態に保つことができます。
過剰なデータ露出の脆弱性は、OWASP のリストに掲載されている他の API 問題とは異なり、非常に特殊な種類のデータが関係している点が特徴です。この脆弱性の背後にある実際の仕組みは他の問題と似ていますが、この場合の「過度のデータ露出」は、法的に保護されたデータや非常にセンシティブなデータを含むと定義されています。これには、よくPIIと呼ばれる、個人を特定できる情報が含まれます。また、PCI(Payment Card Industry)情報が含まれる場合もあります。さらに、欧州の一般データ保護規則(GDPR)や米国の医療保険の相互運用性と説明責任に関する法律(HIPAA)などのプライバシー法の対象となる情報も、過剰なデータ露出に含まれます。
ご想像のとおり、これは大きな懸念材料であり、精通した開発者は可能な限りこれらのバグをつぶす方法を学ぶ必要があります。もし、あなたがデータ漏洩対策に取り組む準備ができているなら、ゲーム化されたチャレンジに参加してみてください。
あなたのスコアは何点でしたか?読んでみてください。
過剰なデータ露出の例としてはどのようなものがありますか?
過剰なデータ公開が発生する主な理由の一つは、開発者やコーダーがアプリケーションで使用するデータの種類を十分に把握していないことです。そのため、開発者は、すべてのオブジェクトのプロパティがエンドユーザーに公開されるような汎用的な処理を行う傾向があります。
また、開発者は、フロントエンドコンポーネントがユーザーに情報を表示する前にデータのフィルタリングを行うことを想定していることがあります。一般的なデータであれば、これが問題になることはほとんどありません。しかし、例えば、セッションIDの一部として法的に保護されたデータや機密データをユーザに公開すると、セキュリティと法的な観点から大きな問題になります。
OWASPレポートでは、機密データが誤って共有されやすい例として、警備員が施設内の特定のIoTベースのカメラへのアクセス権を与えられた場合を想定しています。おそらく、それらのカメラは密閉された安全なエリアを監視しており、一方で、人を映し出す他のカメラは、より高い権限を持つ警備員や監督者に制限されているはずです。
警備員に許可されたカメラへのアクセス権を与えるために、開発者は以下のようなAPIコールを使用することができます。
/api/sites/111/cameras
それを受けて、アプリは警備員が見ることのできるカメラの詳細を以下の形式で送信します。
{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}
表面的には問題なく機能しているように見えます。アプリのグラフィカル・ユーザー・インターフェースを使用している警備員は、自分が見ることを許可されたカメラのフィードだけを見ることができます。問題は、一般的なコードを使用しているため、実際のAPIレスポンスには、施設内のすべてのカメラの全リストが含まれていることです。ネットワークを盗聴してそのデータを取得したり、警備員のアカウントを侵害したりすると、ネットワーク上のすべてのカメラの位置と名称を知ることができます。そして、そのデータに制限なくアクセスすることができるのです。
過剰なデータ露出をなくす
データの過剰な露出を防ぐ最大の鍵は、データとそれを取り巻く保護機能を理解することです。汎用的なAPIを作成し、ユーザーに表示する前にデータを選別することをクライアントに任せることは、多くの予防可能なセキュリティ侵害につながる危険な選択です。
関連するデータ保護を理解することに加えて、汎用APIを使ってユーザーにすべてを送信するプロセスを止めることも重要です。例えば、to_json()やto_string()のようなコードは避けなければなりません。代わりに、コードは許可されたユーザーに返す必要のあるプロパティを特に選び、その情報だけを送信するべきです。
保護されたデータが誤って過剰に共有されていないことを確認する方法として、組織は、セキュリティの追加レイヤーとして、スキーマベースのレスポンス検証メカニズムの実装を検討する必要があります。スキーマベースのレスポンス検証メカニズムでは、エラー報告のルールを含め、すべてのAPIメソッドから返されるデータを定義し、強制する必要があります。
最後に、PIIやPCIを含むと分類されるデータや、GDPRやHIPAAなどの規制で保護されている情報は、強力な暗号化を用いて保護する必要があります。これにより、過剰なデータ露出の脆弱性の一部としてデータの場所が漏れることがあっても、悪意のあるユーザーや脅威のあるアクターの手に渡ったとしても、データを保護するための優れた二次的な防御策が用意されています。
以下のブログページをご覧ください。 Secure Code Warriorブログページでは、この脆弱性に関するより詳しい情報や、他のセキュリティ上の欠陥の被害から組織や顧客を守る方法についてご紹介しています。また、Secure Code Warrior トレーニングプラットフォームのデモをお試しいただくことで、サイバーセキュリティに関するすべてのスキルを磨き上げ、最新の状態に保つことができます。
以下のリンクをクリックし、この資料のPDFをダウンロードしてください。
Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
レポートを見るデモを予約するMatias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。
マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。
Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。
過剰なデータ露出の脆弱性は、OWASP のリストに掲載されている他の API 問題とは異なり、非常に特殊な種類のデータが関係している点が特徴です。この脆弱性の背後にある実際の仕組みは他の問題と似ていますが、この場合の「過度のデータ露出」は、法的に保護されたデータや非常にセンシティブなデータを含むと定義されています。これには、よくPIIと呼ばれる、個人を特定できる情報が含まれます。また、PCI(Payment Card Industry)情報が含まれる場合もあります。さらに、欧州の一般データ保護規則(GDPR)や米国の医療保険の相互運用性と説明責任に関する法律(HIPAA)などのプライバシー法の対象となる情報も、過剰なデータ露出に含まれます。
ご想像のとおり、これは大きな懸念材料であり、精通した開発者は可能な限りこれらのバグをつぶす方法を学ぶ必要があります。もし、あなたがデータ漏洩対策に取り組む準備ができているなら、ゲーム化されたチャレンジに参加してみてください。
あなたのスコアは何点でしたか?読んでみてください。
過剰なデータ露出の例としてはどのようなものがありますか?
過剰なデータ公開が発生する主な理由の一つは、開発者やコーダーがアプリケーションで使用するデータの種類を十分に把握していないことです。そのため、開発者は、すべてのオブジェクトのプロパティがエンドユーザーに公開されるような汎用的な処理を行う傾向があります。
また、開発者は、フロントエンドコンポーネントがユーザーに情報を表示する前にデータのフィルタリングを行うことを想定していることがあります。一般的なデータであれば、これが問題になることはほとんどありません。しかし、例えば、セッションIDの一部として法的に保護されたデータや機密データをユーザに公開すると、セキュリティと法的な観点から大きな問題になります。
OWASPレポートでは、機密データが誤って共有されやすい例として、警備員が施設内の特定のIoTベースのカメラへのアクセス権を与えられた場合を想定しています。おそらく、それらのカメラは密閉された安全なエリアを監視しており、一方で、人を映し出す他のカメラは、より高い権限を持つ警備員や監督者に制限されているはずです。
警備員に許可されたカメラへのアクセス権を与えるために、開発者は以下のようなAPIコールを使用することができます。
/api/sites/111/cameras
それを受けて、アプリは警備員が見ることのできるカメラの詳細を以下の形式で送信します。
{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}
表面的には問題なく機能しているように見えます。アプリのグラフィカル・ユーザー・インターフェースを使用している警備員は、自分が見ることを許可されたカメラのフィードだけを見ることができます。問題は、一般的なコードを使用しているため、実際のAPIレスポンスには、施設内のすべてのカメラの全リストが含まれていることです。ネットワークを盗聴してそのデータを取得したり、警備員のアカウントを侵害したりすると、ネットワーク上のすべてのカメラの位置と名称を知ることができます。そして、そのデータに制限なくアクセスすることができるのです。
過剰なデータ露出をなくす
データの過剰な露出を防ぐ最大の鍵は、データとそれを取り巻く保護機能を理解することです。汎用的なAPIを作成し、ユーザーに表示する前にデータを選別することをクライアントに任せることは、多くの予防可能なセキュリティ侵害につながる危険な選択です。
関連するデータ保護を理解することに加えて、汎用APIを使ってユーザーにすべてを送信するプロセスを止めることも重要です。例えば、to_json()やto_string()のようなコードは避けなければなりません。代わりに、コードは許可されたユーザーに返す必要のあるプロパティを特に選び、その情報だけを送信するべきです。
保護されたデータが誤って過剰に共有されていないことを確認する方法として、組織は、セキュリティの追加レイヤーとして、スキーマベースのレスポンス検証メカニズムの実装を検討する必要があります。スキーマベースのレスポンス検証メカニズムでは、エラー報告のルールを含め、すべてのAPIメソッドから返されるデータを定義し、強制する必要があります。
最後に、PIIやPCIを含むと分類されるデータや、GDPRやHIPAAなどの規制で保護されている情報は、強力な暗号化を用いて保護する必要があります。これにより、過剰なデータ露出の脆弱性の一部としてデータの場所が漏れることがあっても、悪意のあるユーザーや脅威のあるアクターの手に渡ったとしても、データを保護するための優れた二次的な防御策が用意されています。
以下のブログページをご覧ください。 Secure Code Warriorブログページでは、この脆弱性に関するより詳しい情報や、他のセキュリティ上の欠陥の被害から組織や顧客を守る方法についてご紹介しています。また、Secure Code Warrior トレーニングプラットフォームのデモをお試しいただくことで、サイバーセキュリティに関するすべてのスキルを磨き上げ、最新の状態に保つことができます。
目次
Matias Madou, Ph.D. セキュリティ専門家、研究者、CTO兼共同設立者(Secure Code Warrior )。Ghent大学でアプリケーションセキュリティの博士号を取得し、静的解析ソリューションに焦点を当てた。その後、米国Fortify社に入社し、開発者が安全なコードを書くことを支援せずに、コードの問題を検出するだけでは不十分であることに気づきました。開発者を支援し、セキュリティの負担を軽減し、お客様の期待を上回る製品を開発することを志すようになった。Team Awesomeの一員としてデスクワークをしていないときは、RSA Conference、BlackHat、DefConなどのカンファレンスでプレゼンテーションをするのが好きである。
Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するダウンロード