Coders Conquer Security OWASP APIセキュリティトップ10シリーズ - マスアサインメント

マスアサインメント脆弱性は、多くのモダンなフレームワークが、コードの簡素化と処理の高速化を目的として、クライアントからの入力をコード変数や内部オブジェクトに自動的にバインドする機能を開発者に推奨したことで生まれました。
攻撃者はこの手法を悪用し、本来クライアントが更新すべきではないオブジェクトのプロパティを強制的に変更できます。通常、これはWebサイトのダウンや企業秘密の窃取ではなく、ユーザーが自分自身に管理者権限を付与するといった、ビジネス固有の問題を引き起こします。攻撃者は、悪用対象となるアプリケーションのオブジェクト間の関係やビジネスロジックをある程度把握している必要があります。
しかし、だからといってマスアサインメント脆弱性が、悪意ある巧妙なユーザーの手にかかれば危険であることに変わりはありません。
本ガイドを読み進める前に、まずはゲーム形式のチャレンジに挑戦して、自分の実力を試してみましょう。
攻撃者はどのようにしてマスアサインメント脆弱性を悪用するのでしょうか?
OWASPが提示し、私たちが一部修正を加えたシナリオでは、マスアサインメントを使用してコード内のオブジェクトにさまざまなプロパティがバインドされているライドシェアアプリを想定しています。これには、ユーザーが変更可能な権限関連のプロパティと、アプリケーション内部でのみ設定されるべきプロセス依存のプロパティが含まれます。どちらもマスアサインメントを使用してプロパティをオブジェクトにバインドしています。
このシナリオでは、多くのユーザー向けアプリケーションと同様に、ライドシェアアプリでユーザーがプロフィールを更新できるものとします。これはPUTへのAPI呼び出しを使用して行われ、以下のJSONオブジェクトが返されます。
{"user_name":"SneakySnake", "age":17, "is_admin":false}
攻撃者であるSneakySnake氏は、プロパティとオブジェクトの関係を突き止めたため、プロフィールを更新するための元のリクエストを以下の文字列で再送信できます。
{"user_name":"SneakySnake","age":24,, "is_admin":true}
エンドポイントがマスアサインメントに対して脆弱であるため、新しい入力が有効なものとして受け入れられます。ハッカーはプロフィールの年齢を書き換えただけでなく、自分自身に管理者権限を付与することに成功しました。
マスアサインメント脆弱性の排除
一部のフレームワークでマスアサインメント機能を使うのは便利ですが、APIの安全性を維持したいのであれば避けるべきです。代わりに、値をオブジェクトに直接バインドするのではなく、リクエスト値を解析するようにしてください。また、データ転送オブジェクト(DTO)を限定的に使用すれば、オブジェクトへの直接バインドに近い利便性を維持しつつ、関連するリスクを排除できます。
さらなる予防策として、上記の例のような管理者権限などの機密性の高いプロパティを拒否設定にし、API呼び出しでサーバーが受け入れないようにすることも可能です。さらに良い方法として、デフォルトですべてのプロパティを拒否し、ユーザーが更新や変更を許可したい特定の非機密プロパティのみを許可する設定が挙げられます。これらの対策を講じることで、APIを保護し、環境からマスアサインメント脆弱性を排除できます。
この脆弱性に関する詳細や、その他のセキュリティ上の欠陥から組織や顧客を守る方法については、Secure Code Warriorのブログをご覧ください。また、デモを試して、Secure Code Warriorのトレーニングプラットフォームでサイバーセキュリティスキルを常に最新の状態に保つことも可能です。
AI主導の開発をリリース前にガバナンスする
AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。
他のブログ記事を見る
セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
AIを活用した開発をリリース前にセキュアに
開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。



.avif)