午後まとめ試験午後問題 問7

問7 情報セキュリティ管理

 セキュリティ事故の対応に関する次の記述を読んで,設問1~4に答えよ。

 自転車用品の中堅通信販売会社のD社では,顧客からの注文を郵便及び電話で受け付けていた。顧客へのサービスの拡大を目的として,インターネットを利用した会員制のサービスを開始することとした。
 会社の紹介だけを掲載していた従来のWebサイトを改修し,Webサイトでの会員情報の登録及び修正,会員に対するWebサイトでの商品の販売並びに会員向けのメールマガジン送付の登録を行う。
 なお,Webサイトでの商品の販売における決済手段はクレジットカードだけとする。
 改修後のWebサイトは,D社のDMZ上に設置されたWebサーバと,社内LAN内に設置されたデータベースサーバで構成される。データベースサーバのデータは平文で保存しており,会員情報の登録及び修正,商品の販売並びに会員向けのメールマガジン送付の登録を行う際には,SSLによってネットワーク経路の暗号化を行う。

〔会員情報の登録〕
 D社では,Webサイトで取得する個人情報の利用目的を,注文の受付,決済,商品の配送,及びメールマガジンの送付に限定し,会員登録の希望者に対し,登録時に利用目的を通知して同意を得ることとした。同意を得た会員に対しては,会員情報として次の情報を登録してもらうこととした。
【全員に登録してもらう情報】
利用者ID,パスワード,メールアドレス,メールマガジン送付の有無
【任意に登録してもらう情報】
性別,生年月日
【商品を購入する会員に登録してもらう情報】
氏名,配送先住所,電話番号,クレジットカードの発行会社名,
クレジットカード番号,クレジットカードの有効期限
〔セキュリティ事故の発生〕
 複数の会員から,"D社のサービスに登録したメールアドレス宛てに迷惑メールが大量に送られてくるようになった"との連絡がお客様相談窓口に入った。さらに,連絡があった会員のうち数名については,迷惑メールの宛先メールアドレスはD社以外のサービスでは利用していないことが分かった。
 この報告を受けてD社の情報システム部のY部長は,会員情報が漏えいしている可能性があると判断した。また,会員情報として登録されているクレジットカード情報が漏えいしていることも考えられると判断した。そこで,情報システム部のWebサイト担当者Z氏に対し,Webサイトを停止して調査するよう指示した。
 Z氏の調査の結果,D社のWebサイトにおいて,会員が利用者IDとパスワードの入力を行うログインの処理に不備があり,外部からSQLインジェクション攻撃を受けていたことが判明した。

〔セキュリティ事故への対応〕
 Z氏は,一般的なWebサイトにおけるセキュリティ事故に関して考えられる対策と対応を調査し,今回のセキュリティ事故において会員とWebサイトに対して必要と思われる対策と対応を表1にまとめて,Y部長に報告した。
pm07_1.gif
 Y部長は,表1の⑦は実施を見合わせ,Z氏に①~⑥の実施を急がせるとともに,更なる情報セキュリティ対策の実施を指示した。

設問1

今回受けたSQLインジェクション攻撃に関する記述として適切な答えを,解答群の中から選べ。
解答群
  • 攻撃者がDNSに登録されたドメインの情報を改ざんすることによって,利用者をフィッシングサイトに誘導し,そこで入手した利用者IDとパスワードを用いて,データベースを不正に操作した。
  • 攻撃者が,D社のWebサイトの入力項目に対し,命令文を送り込むことによって,データベースを不正に操作した。
  • 攻撃者がD社のデータベースの管理ツールを入手し,管理ツール経由で直接D社のデータベースを不正に操作した。
  • 攻撃者がネットワーク上で情報の盗聴を行い,D社のデータベースの管理者のIDとパスワードを入手し,データベースを不正に操作した。
解答選択欄
  •  
  •  

解説

SQLインジェクションは、Webアプリケーションの入力データとしてデータベースへの命令文を構成するデータを入力し、Webアプリケーションが想定していないSQL文を意図的に実行させることでデータベースを破壊したり情報を搾取する行為です。

したがってWebアプリケーションの入力項目に命令文を与えてデータベースを攻撃する「イ」が適切です。

∴イ

以下にSQLインジェクションの例を紹介します。

例えば、アプリケーション側で利用者からの入力値を基に構成される以下のSQL文が用意されているとします。

SELECT * FROM USER
 WHERE name = '入力値'
アプリケーション側では、入力値として利用者名が入ることを想定したSQL文ですが、攻撃者が入力値として、

' OR 'A'='A
を与えると、実行されるSQL文は以下のようになります。

SELECT * FROM USER
 WHERE name = '' OR 'A'='A'
WHERE句に「OR 'A'='A'」の条件が加わることで結果は常に真となり、開発者が意図しない全レコードを対象とした処理に書きかえられてしまいます。

このシングルクォートの挿入による攻撃の他にも以下の手法がよく知られています。
  • セミコロン(;)を使用して複数のSQL文を実行させる
  • SQL文のコメントアウト構文を使用したSQLの部分的無効化する

設問2

表1中の③に関して,今回のセキュリティ事故の対応として適切な答えを,解答群の中から選べ。
解答群
  • 安易なパスワードの設定を防止するために,パスワードは英字,数字,記号が混在する8文字以上のものにするよう会員に依頼する。
  • 攻撃を受けた場合の被害を抑えるために,メールマガジン購読だけを利用する会員の会員情報を格納したデータベースと商品の購入を行う会員の会員情報を格納したデータベースとを分離し,商品の購入を行う会員だけには,利用者ID及びパスワードの変更を依頼する。
  • 個人情報の目的外利用を避けるために,D社が取得する個人情報の利用目的に事故の対応を追加し,同意を会員に依頼する。
  • クレジットカード情報が漏えいしている場合の不正利用を防止するために,登録されたクレジットカードの停止及び番号変更の手続を会員に依頼する。
解答選択欄
  •  
  •  

解説

③は「会員への事故対応の依頼」なので、このセキュリティ事故の対策として適切な答えを選択します。
  • 攻撃を受けた原因はパスワード強度ではないため不適切です。
  • 全ての会員情報に対して漏えいの可能性が考えられるため、迷惑メールなどの被害を未然に防ぐためにも全ての会員について変更を依頼すべきです。
  • 個人情報保護法によれば、「個人情報の取得時にはその利用目的を明示しなければならない」とされていますが、「ただし、人の生命、身体又は財産の保護のために緊急に必要がある場合は、この限りでない。」と緊急時に必要であると認められる場合には利用目的の通知を後日にすることができます。(第18条の2)
    このケースではクレジットカード情報の流出により会員の財産に被害が及ぶ恐れが高いため、利用目的の通知よりも先に被害の発生を防ぐための対応を依頼することが適切です。
  • 正しい。会員情報として登録されているクレジットカード情報の漏えいにより会員の財産への被害が想定されます。したがって漏えいしたクレジットカード情報の不正使用をさせないための手続きを会員に依頼する必要があります。
∴エ

設問3

表1中の⑦に関して,Y部長が実施を見合わせた理由として適切な答えを,解答群の中から選べ。
解答群
  • Webサーバの増設が必要となる。
  • 稼働中のサービスの停止が必要であり,事業への影響が大きい。
  • 今回のSQLインジェクション攻撃を防ぐ対策にならない。
  • セキュリティ事故発生時に攻撃者の侵入経路の特定に時間が掛かる。
解答選択欄
  •  
  •  

解説

⑦「ネットワーク回線の二重化」は、人為的な過負荷によるサービス停止攻撃(DoS攻撃)に対処するためのものです。
今回のセキュリティ事故の原因となったのはSQLインジェクションの脆弱性となるログイン処理の不備であり、Y部長が⑦の対策を見合わせたのは今回の事故への直接の対策として不適切と考えたからと想像できます。

∴ウ:今回のSQLインジェクション攻撃を防ぐ対策にならない

設問4

Y部長は,Z氏に事故の再発防止のために更なる情報セキュリティ対策の実施を指示した。次の記述中の に入れる適切な答えを,解答群の中から選べ。

〔SQLインジェクション攻撃への追加対策〕
 SQLインジェクション攻撃は,システム開発の際にセキュリティを考慮した設計及び実装を行うことで回避できる。例えば,aことで,アプリケーション開発時に脆(ぜい)弱性が作り込まれる可能性を減らすこととする。

〔会員情報に対するその他のセキュリティ対策〕
 会員情報を格納したデータベースサーバへの不正アクセス対策として,bこととする。また,情報漏えいが発生した場合の原因の分析や犯人の追跡を行うための証拠の確保には,cを行うこととする。
a に関する解答群
  • 開発担当者と運用担当者の職務を分離する
  • 開発用の端末と通常利用の端末を分離する
  • 瑕疵(かし)の発生に備えた保険に加入する
  • 機密保持に関する誓約書を作成する
  • セキュアプログラミングのルールを作成する
  • 負荷分散装置を設置する
b に関する解答群
  • Webサーバとデータベースサーバの時刻を同期させる
  • 会員情報を暗号化する
  • 社内からのインターネット利用時にフィルタリングを実施する
  • 共有IDを利用する
  • データベースサーバをRAID構成にする
c に関する解答群
  • アクセスログやエラーログの保管
  • 外部記憶媒体の利用禁止を明文化
  • 業界団体との連携によるセキュリティ事故情報の共有
  • 担当する業務に応じた情報セキュリティ教育の実施
  • 内部不正に対する罰則の強化
解答選択欄
  • a:
  • b:
  • c:
  • a=
  • b=
  • c=

解説

aについて〕
aは、システムやアプリケーション開発時に脆弱性が作り込まれる可能性を低くする設計・実装です。選択肢中、開発時に行われ、かつ、アプリケーションに内在する脆弱性を減らす効果をもつ対策は「セキュアプログラミングのルールを作成する」になります。

a=オ:セキュアプログラミングのルールを作成する

bについて〕
  • Webサーバとデータベースサーバの時刻同期は、順序関係が正確なアクセスログやエラーログを収集するための手段であり、不正アクセス対策にはなりません。
  • 正しい。データベースに会員情報を暗号化した状態で保管すれば、不正アクセスを受けた場合でも攻撃者に内容を知られることがなくなり情報の漏えいを防ぐことができます。
  • 不正アクセスを防ぐためには社外から内部へのアクセスに対してフィルタリングを行うことが効果的です。
  • 共有IDの使用は、利用者の把握が困難になり不正アクセスの温床になるため不適切です。
  • RAID構成には読書き速度や冗長性を向上させる効果がありますが、不正アクセス対策にはなりません。
b=イ:会員情報を暗号化する

cについて〕
アクセスログやエラーログは、不正アクセスや情報漏えいなどのセキュリティインシデントの発生時に、原因究明を行うための手段、及び、法的紛争になった場合の証拠となるため、適切な方法で収集した後、ある程度の期間に渡って保管することが求められます。また取得するログはシステムの動作について、その主体と動作内容を一意に追跡できる項目が含まれている必要があります。

c=ア:アクセスログやエラーログの補完

Pagetop