セキュア・コーディング・テクニック。XMLデータの処理、パート1
XML(Extensible Markup Language)は、機械にとって扱いやすく、人間にとっても読みやすいフォーマットで文書を符号化するためのマークアップ言語です。しかし、一般的に使用されているこのフォーマットには、複数のセキュリティ上の欠陥があります。XML関連のブログ記事の第1回目となる今回は、スキーマを使ってXML文書を安全に取り扱うための基礎知識を説明します。
OWASP は、XML および XML スキーマに関連するさまざまな脆弱性を 2 つのカテゴリに分けています。
不正なXML文書
不正なXML文書とは、W3CのXML仕様に準拠していない文書のことである。不正なドキュメントになる例としては、終了タグの削除、異なる要素の順序の変更、禁止された文字の使用などがあります。これらのエラーはすべて致命的なエラーとなり、ドキュメントは追加の処理を受けるべきではありません。
不正な文書に起因する脆弱性を回避するためには、W3Cの仕様に準拠し、不正な文書の処理に著しく時間がかからない、十分にテストされたXMLパーサーを使用する必要があります。
無効なXML文書
無効なXML文書は、うまく形成されているものの、予期しない値を含んでいます。ここで、攻撃者は、文書が有効であるかどうかを識別するためのXMLスキーマを適切に定義していないアプリケーションを利用することができます。以下に、正しく検証されなかった場合に意図しない結果をもたらす可能性のある文書の簡単な例を示します。
トランザクションをXMLデータで保存するウェブストアです。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

また、スキーマの制限が不十分であったり、他の入力検証が不十分であったりして、負の数や特殊な小数(NaNやInfinityなど)、あるいは非常に大きな値が想定外の場所に入力されてしまい、同様の意図しない動作が発生することもあります。
不正なXML文書に関する脆弱性を回避するには、正確で制限のあるXMLスキーマを定義して、不適切なデータ検証による問題を回避する必要があります。
次回のブログ記事では、ジャンボ・ペイロードや、OWASPトップテンの第4位であるXXEなど、XML文書に対するより高度な攻撃を紹介します。
それまでの間、私たちのポータルで、XML入力検証のスキルを磨いたり、挑戦したりすることができます。
XMLおよびXMLスキーマの仕様には、複数のセキュリティ上の欠陥が含まれています。同時に、これらの仕様は、XMLアプリケーションを保護するために必要なツールを提供しています。XML文書のセキュリティを定義するためにXMLスキーマを使用しているにもかかわらず、ファイル検索、サーバサイドリクエストフォージェリ、ポートスキャン、ブルートフォースなど、さまざまな攻撃を行うために使用することができます。


XMLおよびXMLスキーマの仕様には、複数のセキュリティ上の欠陥が含まれています。同時に、これらの仕様は、XMLアプリケーションを保護するために必要なツールを提供しています。XML文書のセキュリティを定義するためにXMLスキーマを使用しているにもかかわらず、様々な攻撃を行うために使用することができます。
アプリケーション・セキュリティ・リサーチャー、R&Dエンジニア、博士号取得者

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するアプリケーション・セキュリティ・リサーチャー、R&Dエンジニア、博士号取得者


XML(Extensible Markup Language)は、機械にとって扱いやすく、人間にとっても読みやすいフォーマットで文書を符号化するためのマークアップ言語です。しかし、一般的に使用されているこのフォーマットには、複数のセキュリティ上の欠陥があります。XML関連のブログ記事の第1回目となる今回は、スキーマを使ってXML文書を安全に取り扱うための基礎知識を説明します。
OWASP は、XML および XML スキーマに関連するさまざまな脆弱性を 2 つのカテゴリに分けています。
不正なXML文書
不正なXML文書とは、W3CのXML仕様に準拠していない文書のことである。不正なドキュメントになる例としては、終了タグの削除、異なる要素の順序の変更、禁止された文字の使用などがあります。これらのエラーはすべて致命的なエラーとなり、ドキュメントは追加の処理を受けるべきではありません。
不正な文書に起因する脆弱性を回避するためには、W3Cの仕様に準拠し、不正な文書の処理に著しく時間がかからない、十分にテストされたXMLパーサーを使用する必要があります。
無効なXML文書
無効なXML文書は、うまく形成されているものの、予期しない値を含んでいます。ここで、攻撃者は、文書が有効であるかどうかを識別するためのXMLスキーマを適切に定義していないアプリケーションを利用することができます。以下に、正しく検証されなかった場合に意図しない結果をもたらす可能性のある文書の簡単な例を示します。
トランザクションをXMLデータで保存するウェブストアです。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

また、スキーマの制限が不十分であったり、他の入力検証が不十分であったりして、負の数や特殊な小数(NaNやInfinityなど)、あるいは非常に大きな値が想定外の場所に入力されてしまい、同様の意図しない動作が発生することもあります。
不正なXML文書に関する脆弱性を回避するには、正確で制限のあるXMLスキーマを定義して、不適切なデータ検証による問題を回避する必要があります。
次回のブログ記事では、ジャンボ・ペイロードや、OWASPトップテンの第4位であるXXEなど、XML文書に対するより高度な攻撃を紹介します。
それまでの間、私たちのポータルで、XML入力検証のスキルを磨いたり、挑戦したりすることができます。
XMLおよびXMLスキーマの仕様には、複数のセキュリティ上の欠陥が含まれています。同時に、これらの仕様は、XMLアプリケーションを保護するために必要なツールを提供しています。XML文書のセキュリティを定義するためにXMLスキーマを使用しているにもかかわらず、ファイル検索、サーバサイドリクエストフォージェリ、ポートスキャン、ブルートフォースなど、さまざまな攻撃を行うために使用することができます。

XML(Extensible Markup Language)は、機械にとって扱いやすく、人間にとっても読みやすいフォーマットで文書を符号化するためのマークアップ言語です。しかし、一般的に使用されているこのフォーマットには、複数のセキュリティ上の欠陥があります。XML関連のブログ記事の第1回目となる今回は、スキーマを使ってXML文書を安全に取り扱うための基礎知識を説明します。
OWASP は、XML および XML スキーマに関連するさまざまな脆弱性を 2 つのカテゴリに分けています。
不正なXML文書
不正なXML文書とは、W3CのXML仕様に準拠していない文書のことである。不正なドキュメントになる例としては、終了タグの削除、異なる要素の順序の変更、禁止された文字の使用などがあります。これらのエラーはすべて致命的なエラーとなり、ドキュメントは追加の処理を受けるべきではありません。
不正な文書に起因する脆弱性を回避するためには、W3Cの仕様に準拠し、不正な文書の処理に著しく時間がかからない、十分にテストされたXMLパーサーを使用する必要があります。
無効なXML文書
無効なXML文書は、うまく形成されているものの、予期しない値を含んでいます。ここで、攻撃者は、文書が有効であるかどうかを識別するためのXMLスキーマを適切に定義していないアプリケーションを利用することができます。以下に、正しく検証されなかった場合に意図しない結果をもたらす可能性のある文書の簡単な例を示します。
トランザクションをXMLデータで保存するウェブストアです。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

また、スキーマの制限が不十分であったり、他の入力検証が不十分であったりして、負の数や特殊な小数(NaNやInfinityなど)、あるいは非常に大きな値が想定外の場所に入力されてしまい、同様の意図しない動作が発生することもあります。
不正なXML文書に関する脆弱性を回避するには、正確で制限のあるXMLスキーマを定義して、不適切なデータ検証による問題を回避する必要があります。
次回のブログ記事では、ジャンボ・ペイロードや、OWASPトップテンの第4位であるXXEなど、XML文書に対するより高度な攻撃を紹介します。
それまでの間、私たちのポータルで、XML入力検証のスキルを磨いたり、挑戦したりすることができます。
XMLおよびXMLスキーマの仕様には、複数のセキュリティ上の欠陥が含まれています。同時に、これらの仕様は、XMLアプリケーションを保護するために必要なツールを提供しています。XML文書のセキュリティを定義するためにXMLスキーマを使用しているにもかかわらず、ファイル検索、サーバサイドリクエストフォージェリ、ポートスキャン、ブルートフォースなど、さまざまな攻撃を行うために使用することができます。
XML(Extensible Markup Language)は、機械にとって扱いやすく、人間にとっても読みやすいフォーマットで文書を符号化するためのマークアップ言語です。しかし、一般的に使用されているこのフォーマットには、複数のセキュリティ上の欠陥があります。XML関連のブログ記事の第1回目となる今回は、スキーマを使ってXML文書を安全に取り扱うための基礎知識を説明します。
OWASP は、XML および XML スキーマに関連するさまざまな脆弱性を 2 つのカテゴリに分けています。
不正なXML文書
不正なXML文書とは、W3CのXML仕様に準拠していない文書のことである。不正なドキュメントになる例としては、終了タグの削除、異なる要素の順序の変更、禁止された文字の使用などがあります。これらのエラーはすべて致命的なエラーとなり、ドキュメントは追加の処理を受けるべきではありません。
不正な文書に起因する脆弱性を回避するためには、W3Cの仕様に準拠し、不正な文書の処理に著しく時間がかからない、十分にテストされたXMLパーサーを使用する必要があります。
無効なXML文書
無効なXML文書は、うまく形成されているものの、予期しない値を含んでいます。ここで、攻撃者は、文書が有効であるかどうかを識別するためのXMLスキーマを適切に定義していないアプリケーションを利用することができます。以下に、正しく検証されなかった場合に意図しない結果をもたらす可能性のある文書の簡単な例を示します。
トランザクションをXMLデータで保存するウェブストアです。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

また、スキーマの制限が不十分であったり、他の入力検証が不十分であったりして、負の数や特殊な小数(NaNやInfinityなど)、あるいは非常に大きな値が想定外の場所に入力されてしまい、同様の意図しない動作が発生することもあります。
不正なXML文書に関する脆弱性を回避するには、正確で制限のあるXMLスキーマを定義して、不適切なデータ検証による問題を回避する必要があります。
次回のブログ記事では、ジャンボ・ペイロードや、OWASPトップテンの第4位であるXXEなど、XML文書に対するより高度な攻撃を紹介します。
それまでの間、私たちのポータルで、XML入力検証のスキルを磨いたり、挑戦したりすることができます。
XMLおよびXMLスキーマの仕様には、複数のセキュリティ上の欠陥が含まれています。同時に、これらの仕様は、XMLアプリケーションを保護するために必要なツールを提供しています。XML文書のセキュリティを定義するためにXMLスキーマを使用しているにもかかわらず、ファイル検索、サーバサイドリクエストフォージェリ、ポートスキャン、ブルートフォースなど、さまざまな攻撃を行うために使用することができます。
始めるためのリソース
セキュア・バイ・デザインベストプラクティスの定義、開発者の能力向上、予防的セキュリティ成果のベンチマーク
このリサーチペーパーでは、Secure Code Warrior 共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士、そして専門家であるクリス・イングリス(Chris Inglis)氏(元米国サイバーディレクター、現パラディン・キャピタル・グループ戦略顧問)、デヴィン・リンチ(Devin Lynch)氏(パラディン・グローバル・インスティテュート・シニアディレクター)が、CISO、アプリケーション・セキュリティ担当副社長、ソフトウェア・セキュリティの専門家など、企業のセキュリティ・リーダー20人以上への詳細なインタビューから得られた主な知見を明らかにします。
セキュリティ スキルのベンチマーク: 企業におけるセキュアな設計の合理化
セキュアバイデザイン(SBD)構想の成功に関する有意義なデータを見つけることは、非常に困難である。CISO は、セキュリティプログラム活動の投資収益率(ROI)とビジネス価値を、従業員レベルと企業レベルの両方で証明しようとすると、しばしば困難に直面します。言うまでもなく、企業にとって、現在の業界標準に対して自社の組織がどのようにベンチマークされているかを把握することは特に困難です。大統領の国家サイバーセキュリティ戦略は、関係者に「デザインによるセキュリティとレジリエンスを受け入れる」ことを求めている。セキュアバイデザインの取り組みを成功させる鍵は、開発者にセキュアなコードを保証するスキルを与えるだけでなく、規制当局にそれらのスキルが整っていることを保証することである。本プレゼンテーションでは、25万人以上の開発者から収集した社内データ、データに基づく顧客の洞察、公的研究など、複数の一次ソースから得られた無数の定性的・定量的データを紹介します。こうしたデータ・ポイントの集積を活用することで、複数の業種におけるセキュア・バイ・デザイン・イニシアチブの現状をお伝えすることを目的としています。本レポートでは、この領域が現在十分に活用されていない理由、スキルアッププログラムの成功がサイバーセキュリティのリスク軽減に与える大きな影響、コードベースから脆弱性のカテゴリーを排除できる可能性について詳述しています。
始めるためのリソース
明らかになった:サイバー業界はセキュア・バイ・デザインをどのように定義しているか
最新のホワイトペーパーでは、当社の共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士が、CISO、AppSecリーダー、セキュリティ専門家を含む20人以上の企業セキュリティリーダーと対談し、このパズルの重要なピースを見つけ出し、Secure by Design運動の背後にある現実を明らかにしました。セキュア・バイ・デザインは、セキュリティ・チーム全体で共有された野心ですが、共有されたプレイブックはありません。