推論攻撃への対策
統計データベースにおいて,利用者には個々のレコードの参照を許可せず,件数,合計,平均などの集計結果だけを返している。このとき,複数の問合せの集計結果を組み合わせて特定の個人の値を推測する推論攻撃への対策として,最も適切なものはどれか。
- ア表のデータを DBMS の透過的データ暗号化(TDE)機能で暗号化し,記憶媒体が盗まれてもデータを読み取られないようにする。
- イアプリケーションが発行する SQL 文をプレースホルダを用いて組み立て,入力値によって SQL 文の構造が変更されないようにする。
- ウ問合せの条件に該当するレコードの件数が一定数に満たない場合には,その集計結果を返さないようにする。
- エ氏名や社員番号など個人を直接識別できる項目を,問合せの条件に指定できないようにする。
正解と解説を見る
正解 ウ
この問題の基礎知識
- 統計データベースは,個々のレコードではなく,件数,合計,平均などの集計結果だけを利用者に提供するデータベースである。
- 推論攻撃は,許可された問合せの結果を組み合わせたり差分を取ったりして,本来知り得ない特定の個人の値を推測する攻撃である。
- 氏名などの直接識別子を使えなくても,年齢,性別,所属などの準識別子の組合せで個人が特定され得る。
- TDE は保存データの暗号化,プレースホルダは SQL インジェクションへの対策であり,正規の問合せを組み合わせる推論攻撃とは防ぐ対象が異なる。
ア表のデータを DBMS の透過的データ暗号化(TDE)機能で暗号化し,記憶媒体が盗まれてもデータを読み取られないようにする。
TDE は記憶媒体やバックアップの盗難に備えて保存データを暗号化するもので,DBMS 経由の問合せには復号した値に基づく結果が返される。正規の問合せを組み合わせる推論攻撃は防げない。
イアプリケーションが発行する SQL 文をプレースホルダを用いて組み立て,入力値によって SQL 文の構造が変更されないようにする。
プレースホルダは SQL インジェクションへの対策である。推論攻撃は,許可された集計の問合せを正規の方法で組み合わせて行うので,SQL 文の構造の改変を防いでも対策にならない。
ウ問合せの条件に該当するレコードの件数が一定数に満たない場合には,その集計結果を返さないようにする。正解
該当件数が極端に少ない集合の集計値は,特定の個人の値を直接表したり差分から導いたりできるので,結果を返さない。ただし集計だけでは保護は十分でないので,結果へのノイズの付加や問合せと結果の記録などと組み合わせる。
エ氏名や社員番号など個人を直接識別できる項目を,問合せの条件に指定できないようにする。
直接識別できる項目を条件に使えなくても,所属,年齢,性別などの組合せによって特定の個人だけが該当する条件を作れる。こうした準識別子の組合せによる推論は防げない。
検証用の出典出典照合済み
NIST SP 800-188 De-Identifying Government Datasets: Techniques and Governance照合の根拠(5 件)
- ウ(正解): 件数があらかじめ定めた閾値に満たない集計は抑制して,少数の属性の組合せによる識別を防ぐ
Data suppression. Cells in contingency tables with counts lower than a predefned threshold can be suppressed to prevent the identifcation of attribute combinations with small numbers
NIST SP 800-188 · 4.3.3 De-Identifying Numeric Quasi-Identifiers(新しいタブで開きます) - ウ(正解)の解説: 問合せインタフェースだけでは保護は十分でなく,結果へのノイズの付加や問合せと結果の記録と組み合わせる
query interfaces should incorporate privacy mechanisms, such as adding noise to results with differential privacy, and log both queries and query results in order to deter and detect malicious use.
NIST SP 800-188 · 4.5 De-Identifying with an Interactive Query Interface(新しいタブで開きます) - ア(誤り): 保存データの暗号化は保存先からの直接の取得を防ぐもので,正規の問合せを組み合わせる推論は防げない
Encrypting sensitive data at rest can prevent attackers from obtaining the data directly (e.g., by compromising the server that stores it).
NIST SP 800-188 · 3.9.1 Encryption and Access Control(新しいタブで開きます) - イ(誤り): プレースホルダは SQL インジェクション(SQL 文の構造の改変)への対策である
Define the SQL structure separately from its data values, then bind those values through the database API. Prepared statements treat bound values as data rather than SQL syntax .
OWASP SQL Injection Prevention Cheat Sheet · Defense Option 1: Prepared Statements (with Parameterized Queries)(新しいタブで開きます) - エ(誤り): 直接の識別子を除いても,準識別子の組合せで再識別され得る
Specifcally, the combination of quasi-identifers (indirect identifers) left in the de-identifed dataset (e.g., race, gender, income and education level) may raise re-identifcation issues.
NIST SP 800-188 · 3.7.2 Prescriptive De-Identification Standards(新しいタブで開きます)