一括割り当ては、 Web アプリケーションのアクティブレコード パターンが悪用され、パスワード、付与された権限、管理者ステータスなど、ユーザーが通常はアクセスできないデータ項目が変更される コンピュータの脆弱性です。
多くのウェブアプリケーションフレームワークは、アクティブレコードとオブジェクトリレーショナルマッピング機能を提供しています。これらの機能では、シリアル化形式の外部データは入力時に自動的に内部オブジェクトに変換され、さらにデータベースレコードのフィールドに変換されます。フレームワークの変換インターフェースがあまりにも寛容で、アプリケーション設計者が特定のフィールドを不変として指定していない場合、外部から変更されることを意図していないフィールド(例えば、管理者権限フラグ)が上書きされる可能性があります。[1]
これらの脆弱性は、Ruby on Rails [2] 、ASP.NET MVC [3]、Java Playフレームワーク[4]で書かれたアプリケーションで発見されています。
2012年にRuby on Railsの大量割り当てによりマッピング制限の回避が可能になり、GitHubのユーザーアカウントに不正なSSH公開鍵が注入されるという概念実証が行われました。[5] [6] Ruby on Railsのさらなる脆弱性により、特別に細工されたJSON構造を通じて内部オブジェクトが作成される可能性がありました。[7]
ASP.NET Coreでは、マッピング制限は属性を使用して宣言できます[BindNever]。[8]
参照
- データ転送オブジェクト(DTO)
参考文献
- ^ 「CWE-915: 動的に決定されたオブジェクト属性の不適切な制御による変更」。共通脆弱性一覧。NIST 。 2013年2月27日閲覧。
- ^ 「Mass Assignment」。Ruby On Rails セキュリティガイド。 2013年2月27日閲覧。
- ^ 「ASP.NET MVCにおけるMass Assignment脆弱性」IronsHay . 2013年2月27日閲覧。
- ^ Alberto Souza (2014). 「Playframework、一括代入から保護する方法」
- ^ 「GitHub、'mass-assignment'ハッキングでメンバーを一時停止」ZDnet、2012年。 2013年2月27日閲覧。
- ^ 「[SEC][ANN] Rails 3.2.12、3.1.11、2.3.17がリリースされました!」2016年1月7日閲覧。
- ^ 「JSONにおけるサービス拒否および安全でないオブジェクト作成の脆弱性(CVE-2013-0269)」 。 2016年1月7日閲覧。
- ^ tdykstra (2023年6月20日). 「ASP.NET Core でのモデルバインディング」. docs.microsoft.com .