NoSQLインジェクション攻撃は、NoSQLデータベースのクエリ組み立ての不備を悪用し、不正な演算子や文字列を挿入することでデータを窃取します。
例えば、代表的なNoSQLデータベースである「MongoDB」では、特定の操作を行うための演算子が用意されており、攻撃者は以下の流れで攻撃を成立させます。
- 入力フォームなどから、「$ne(一致しない値を出力する)」といった演算子を不正に注入します。
- データベースへの検索条件が意図せず書き換えられ、「空白以外のすべて」といった条件に変更されます。
- システムが改ざんされた指示を実行し、全ユーザーのIDなどの機密情報が不正に引き出されます。
NoSQL環境でのシステム開発では、入力値の厳密な検証によってクエリへの干渉を防ぐ設計が不可欠です。
詳しい攻撃手法は、「NoSQLインジェクション攻撃の実例」をご覧ください。
