HOME»基本情報技術者平成30年秋期問題»午後問1
基本情報技術者過去問題 平成30年秋期 午後問1
⇄問題文と設問を画面2分割で開く⇱問題PDF問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社では,データベースに登録されている全てのカタログ請求者に情報の流出について連絡するとともに,対策を講じることにした。
〔情報セキュリティ事故を踏まえたシステム面での対策〕
B氏は,今回の情報セキュリティ事故を踏まえたシステム面での対策案を,表1のようにまとめた。
自動車の販売代理店である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社では,データベースに登録されている全てのカタログ請求者に情報の流出について連絡するとともに,対策を講じることにした。
〔情報セキュリティ事故を踏まえたシステム面での対策〕
B氏は,今回の情報セキュリティ事故を踏まえたシステム面での対策案を,表1のようにまとめた。
設問1
本文中の下線①について,この攻撃の説明として適切な答えを,解答群の中から選べ。
解答群
- 攻撃者が,DNSに登録されているドメインの情報をインターネット経由で外部から改ざんすることによって,カタログ請求者を攻撃者のWebサイトに誘導し,カタログ請求者のWebブラウザで不正スクリプトを実行させる。
- 攻撃者が,インターネット経由でDBサーバに不正ログインする。
- 攻撃者が,インターネット経由でWebアプリに,データベース操作の命令文を入力することによって,データベースを不正に操作する。
- 攻撃者が,インターネット経由で送信されている情報を盗聴する。
解答選択欄
解答
- ウ
解説
SQLインジェクションは、Webアプリケーションの入力データとしてデータベースへの命令文を構成する文字列を入力し、Webアプリケーションが想定していないSQL文を意図的に実行させることでデータベースを攻撃する行為です。この攻撃を受けると、データベースの情報が不正に取得されたり、データベースのデータが削除されたりするなどの被害が発生します。
したがって「ウ」が適切です。
したがって「ウ」が適切です。
- DNSキャッシュポイズニングの説明です。
- SQLインジェクションは、Webアプリケーションを介して(DBサーバへのログインなしに)データベースを不正に操作する攻撃です。
- 正しい。
- SQLインジェクションは盗聴行為ではありません。
設問2
表1中の に入れる対策として最も適切な答えを,解答群の中から選べ。
a に関する解答群
- Webアプリへの入力パラメータには,Webサーバ内のファイル名を直接指定できないようにする。
- Webサーバのメモリを直接操作するような命令を記述できないプログラム言語を用いて,Webアプリを作り直す。
- Webページに出力する要素に対して,エスケープ処理を施す。
- データベース操作の命令文の組立てを文字列連結によって行う場合は,連結する文字列にエスケープ処理を施す。
b に関する解答群
- カタログ請求者の情報の適切な保管期間を定め,カタログ請求者の同意を得た上で,保管期間を過ぎた時点でデータベースから消去する。
- カタログ請求者の情報を,カタログ送付後に直ちに,データベースから消去する。
- カタログ請求者へ送付する電子メールにデジタル署名を付ける。
- データベースに登録されている情報を定期的にバックアップする。
c に関する解答群
- Webサイトの管理に使用する保守用PCは,必要なときだけ起動する。
- WebサーバとDBサーバにインストールするミドルウェアは,必要最低限にする。
- WebサーバとDBサーバのハードディスクのデフラグメンテーションを,定期的に行う。
- データベースへのアクセスログを取得する。
解答選択欄
- a:
- b:
- c:
解答
- a=エ
- b=ア
- c=エ
解説
〔aについて〕
SQLインジェクションから防御するには、バインド機構やプレースホルダを用いるのが最も有効です。これらは、利用者からの入力が挿入される部分を変数としたSQLのひな型をあらかじめ用意し、実行時に変数部分に入力データを割り当てることでSQL文を安全に実行できます。
SQLを文字列の連結で行うときのようにバインド機構やプレースホルダが利用できない場合には、最低限、SQLに組み込む入力データを適切にエスケープ処理する必要があります。
したがって「エ」が適切です。
〔bについて〕
〔cについて〕
本文中で、「アクセスログを取得しない設定にしていたこともあり,流出した情報の範囲は特定できなかった」と説明されています。逆に言えば、データベースへのアクセスログを取得すれば、流出範囲や流出原因となった操作等を特定できるということです。よって、対策としては「データベースへのアクセスログを取得する」が適切です。
∴c=エ
SQLインジェクションから防御するには、バインド機構やプレースホルダを用いるのが最も有効です。これらは、利用者からの入力が挿入される部分を変数としたSQLのひな型をあらかじめ用意し、実行時に変数部分に入力データを割り当てることでSQL文を安全に実行できます。
SQLを文字列の連結で行うときのようにバインド機構やプレースホルダが利用できない場合には、最低限、SQLに組み込む入力データを適切にエスケープ処理する必要があります。
したがって「エ」が適切です。
- ディレクトリトラバーサル対策です。
- OSコマンドインジェクション対策です。
- クロスサイトスクリプティング対策です。
- 正しい。SQLインジェクション対策です。
〔bについて〕
- 正しい。データベースから重要でない請求者情報を削除することで保持する情報量が減り、万が一攻撃を受けたときの被害を小さくすることができます。
- 情報流出リスクは大きく低減されますが、請求者情報を用いた情報提供や購入支援ができなくなってしまうので不適切です。
- メールにデジタル署名を付しても、情報流出リスクは変わりません。
- バックアップの取得は、媒体障害対策や攻撃を受けた後の回復には役に立ちますが、情報流出リスクを低減させることはできません。
〔cについて〕
本文中で、「アクセスログを取得しない設定にしていたこともあり,流出した情報の範囲は特定できなかった」と説明されています。逆に言えば、データベースへのアクセスログを取得すれば、流出範囲や流出原因となった操作等を特定できるということです。よって、対策としては「データベースへのアクセスログを取得する」が適切です。
∴c=エ
設問3
B氏は上司から,表1にまとめた対策案だけで十分なのか検討せよとの指示を受けた。そこで,社外のセキュリティコンサルタント会社に相談したところ,"Webアプリに脆弱性がないか調査をした方がよい"と助言され,Webアプリの一部について脆弱性の調査を依頼した。その結果,クロスサイトスクリプティングの脆弱性が存在することが判明した。また,"Webアプリの他の部分にも脆弱性があることが疑われるので,Webアプリ全体の調査を行うとともに,新たな対策を講じた方がよい"と助言された。新たな対策として適切な答えを,解答群の中から選べ。
解答群
- DBサーバを,Webサーバと同じく,DMZに設置する。
- 不正な通信を遮断するために,WAF(Web Application Firewall)を導入する。
- Webサーバを増設して冗長化した構成にする。
- 保守用PCのログインパスワードには英数字及び記号を使用し,推測が難しい複雑なものを設定する。
解答選択欄
解答
- イ
解説
- DMZは、外部から直接アクセスされる機器(Webサーバ、メールサーバ、プロキシサーバなど)を配置するネットワークエリアです。DBサーバをDMZに配置すると、DBサーバが外部から直接アクセスを受けることになってしまうため危険性が増します。
- 正しい。WAF(Web Application Firewall)は、通過するパケットのIPアドレスやポート番号だけでなくペイロード部(データ部分)をチェックすることで、Webアプリケーションに対する攻撃を検知し、攻撃と判断した通信をブロックするファイアウォールです。
クロスサイトスクリプティングは、Webアプリケーションの脆弱性を突く攻撃ですので、本来はWebアプリケーション側で対策を採るのがベストです。しかし、実際問題として全ての攻撃に対して万全の対策をとることは難しいため、Webアプリケーションの脆弱性を埋めつつ未知の攻撃に対してWAFで補完することが効果的な対策となります。 - 対障害性が向上するのでDoS攻撃などの対策にはなりますが、クロスサイトスクリプティングに対しては効果を望めません。
- 保守用PCは社内LANに配置されており、外部からアクセスできないようになっています。クロスサイトスクリプティングは、Webアプリケーションの脆弱性を突く攻撃であり、保守用PCが不正ログインを受ける訳ではないので保守用PCにセキュリティ対策を施しても効果はありません。