基本情報技術者試験 平成30年度 秋期 午後 問1
問1 情報セキュリティ事故と対策に関する次の記述を読んで、設問1〜3に答えよ。
自動車の販売代理店であるA社は、Webサイトで自動車のカタログ請求を受け付けている。Webサイトは、Webアプリケーションソフト(以下、Webアプリという)が稼働するWebサーバと、データベースが稼働するデータベースサーバ(以下、DBサーバという)で構成されている。WebサーバはA社のDMZに設置され、DBサーバはA社の社内LANに接続されている。Webサイトの管理はB氏が、A社の社内LANに接続されている保守用PCからアクセスして行っている。カタログ請求者は、Webブラウザからインターネット経由でHTTP over TLSによってWebサイトにアクセスする。
【カタログ請求者の情報の登録】
A社では、次の目的で、カタログ請求者の情報を保持し、利用することの同意を、カタログ請求者から得ている。
・情報提供や購入支援を行う。
・カタログ請求者が別のカタログを請求したいときなどに、登録した電子メールアドレスとパスワードを使用してログインできるようにする。
同意が得られたときは、氏名、住所、電話番号、電子メールアドレス、パスワード、購入予定時期、購入予算、希望車種などの情報を、Webアプリに入力してもらい、データベースに登録している。パスワードはハッシュ化して、それ以外の情報は平文で、データベースに格納している。A社では、カタログ請求者から要求があったときにだけ、データベースからそのカタログ請求者の情報を消去する運用としている。
【カタログ請求者への対応】
A社では、カタログ請求者へのカタログ送付後の購入支援を、データベースに登録されている情報を基に、電子メールと電話で行っている。
【情報セキュリティ事故の発生】
ある日、A社の社員から、”A社のカタログ請求者一覧と称する情報が、インターネットの掲示板に公開されている”とB氏に連絡があった。公開されている情報をB氏が確認したところ、データベースに登録されている情報の一部であったので、自社のデータベースから情報が流出したと判断して上司に報告した。B氏は上司からの指示を受けて、Webサイトのサービスを停止し、情報が流出した原因と流出した情報の範囲を特定することにした。
【情報セキュリティ事故の原因と流出した情報の範囲】
B氏の調査の結果、WebアプリにSQLインジェクションの脆弱性があることが分かった。そのことからB氏は、攻撃者が①インターネット経由でSQLインジェクション攻撃を行い、データベースに登録されているカタログ請求者の情報を不正に取得したと推測した。Webサーバとデータベースではアクセスログを取得しない設定にしていたこともあり、流出した情報の範囲は特定できなかった。そこで、データベースに登録されている全ての情報が流出したことを前提に、A社では、データベースに登録されている全てのカタログ請求者に情報の流出について連絡するとともに、対策を講じることにした。
本文中の①について、この攻撃の説明として適切な答えを、解答群の中から選べ。
解答群
- 攻撃者が、DNSに登録されているドメインの情報をインターネット経由で外部から改ざんすることによって、カタログ請求者を攻撃者のWebサイトに誘導し、カタログ請求者のWebブラウザで不正スクリプトを実行させる
- 攻撃者が、インターネット経由でDBサーバに不正ログインする。
- 攻撃者が、インターネット経由でWebアプリに、データベース操作の命令文を入力することによって、データベースを不正に操作する。
- 攻撃者が、インターネット経由で送信されている情報を盗聴する。
- DNSキャッシュポイズニング攻撃
- SQLインジェクション攻撃は、DBサーバへ単独でログインするのではなく、Webアプリを介して、DBサーバにアクセスします。
- 正解です。
- SQLインジェクション攻撃は、盗聴を目的とした攻撃ではありません。
【情報セキュリティ事故を踏まえたシステム面での対策】
B氏は、今回の情報セキュリティ事故を踏まえたシステム面での対策案を、表1のようにまとめた。
aに関する解答群
- Webアプリへの入力パラメタには、Webサーバ内のファイル名を直接指定できないようにする。
- Webサーバのメモリを直接操作するような命令を記述できないプログラム言語を用いて、Webアプリを作り直す。
- Webページに出力する要素に対して、エスケープ処理を施す。
- データベース操作の命令文の組立てを文字列連結によって行う場合は、連結する文字列にエスケープ処理を施す。
- ディレクトリトラバーサル攻撃への対策です。
- OSコマンドインジェクション攻撃への対策です。
- クロスサイトスクリプティング攻撃への対策です。
- エスケープ処理とは、文字列を扱う際に、文法や処理にとって特別な意味や機能を持つ文字や記号を、一定の規則により別の文字列に置き換えることです。SQLインジェクション攻撃の場合、SQLに入力される値を変数であるプレースホルダとして確保し、実行時に入力値を割り当てることで安全に実行しますが、文字列連結によって処理する場合にはこの方法が使えません。この場合はエスケープ処理を施します。
bに関する解答群
- カタログ請求者の情報の適切な保管期間を定め、カタログ請求者の同意を得た上で、保管期間を過ぎた時点でデータベースから消去する。
- カタログ請求者の情報を、カタログ送付後に直ちに、データベースから消去する。
- カタログ請求者へ送付する電子メールにディジタル署名を付ける。
- データベースに登録されている情報を定期的にバックアップする。
- データベースに最小限のデータのみを格納することは、情報流出リスクを低減させることになります。
- 請求者情報を用いた購入支援ができなくなります。
- 情報流出リスクは低減されません。
- 情報流出リスクは低減されません。攻撃後のリカバリには役立ちます。
cに関する解答群
- Webサイトの管理に使用する保守用PCは、必要なときだけ起動する。
- WebサーバとDBサーバにインストールするミドルウェアは、必要最低限にする。
- WebサーバとDBサーバのハードディスクのデフラグメンテーションを、定期的に行う。
- データベースへのアクセスログを取得する。
「情報流出の原因と流出した情報の範囲の特定」について、問題文に「Webサーバとデータベースではアクセスログを取得しない設定にしていたこともあり、流出した情報の範囲は特定できなかった。」 とあります。
したがって、データベースのアクセスログを取得することで、少なくても流出した情報の範囲の特定が可能となりそうです。
B氏は上司から、表1ににまとめた対策案だけで十分なのか検討せよとの指示を受けた。そこで、社外のセキュリティコンサルタント会社に相談したところ、”Webアプリに脆弱性がないか調査をした方がよい”と助言され、Webアプリの一部について脆弱性の調査を依頼した。その結果、クロスサイトスクリプティングの脆弱性が存在することが判明した。また、”Webアプリの他の部分にも脆弱性があることが疑われるので、Webアプリ全体の調査を行うとともに、新たな対策を講じた方がよい”と助言された。新たな対策として適切な答えを、解答群の中から選べ。
解答群
- DBサーバを、Webサーバと同じく、DMZに設置する。
- 不正な通信を遮断するために、WAF(Web Application Firewall)を導入する。
- Webサーバを増設して冗長化した構成にする。
- 保守用PCのログインパスワードには英数字及び記号を使用し、推測が難しい複雑なものを設定する。
【出典:基本情報技術者試験 平成30年度 秋期 午後 問1(一部、加工あり)】
- DMZは、インターネットなど外部から直接アクセスされる機器を配置するエリアです。DMZにはWebサーバを配置し、重要情報を持つDBサーバは内部LANに配置することが重要です。外部から攻撃を受けた際、最悪の場合はサービスが停止する可能性がありますが、重要情報が流出することは避けることができます。
- 正解です。WAFは、ファイアウォールの機能である通過パケットのIPアドレスやポート番号のチェックに加え、ペイロード(データ部分)をチェックすることで、Webアプリへの不正な通信を検知し、遮断することができます。今回のSQLインジェクションやクロスサイトスクリプティングなど、Webアプリの脆弱性に対し、Webアプリ側での対策は必要ですが、WAFによる対策など多重防御の対策を施すことが重要です。
- 可用性の向上にはなりますが、Webアプリの脆弱性対策にはなりません。
- 保守用PCへの不正ログインなどの対策にはなりますが、Webアプリの脆弱性対策とは直接関係ありません。