応用情報技術者過去問題 平成28年春期 午後問1
⇄問題文と設問を画面2分割で開く⇱問題PDF問1 情報セキュリティ
Webサイトを用いた書籍販売システムのセキュリティに関する次の記述を読んで,設問1~4に答えよ。
K社は技術書籍の大手出版社である。従来は全ての書籍を書店で販売していたが,顧客からの要望によって,高額書籍を自社のWebサイトでも販売することになった。K社システム部のL部長は,Webサイトを用いた書籍販売システム(以下,Webシステムという)の開発のためのプロジェクトチームを立ち上げ,開発課のM課長をリーダーに任命した。L部長は,情報セキュリティ確保のための対策として,サイバー攻撃によるWebシステムへの侵入を想定したテスト(以下,侵入テストという)を実施するようにM課長に指示した。M課長は,開発作業が結合テストまで完了した段階で,Webシステムのテスト環境を利用して侵入テストを実施することにした。
〔Webシステムのテスト環境〕
Webシステムは,高額書籍を購入する顧客の氏名,住所,購入履歴などの個人情報(以下,顧客情報という)を内部ネットワーク上のデータベースサーバ(以下,DBサーバという)に保存し,WebサーバがDBサーバ,業務サーバにアクセスして販売処理を行う。Webシステムのテスト環境の構成を図1に示す。〔Webシステムの認証と通信〕
顧客がWebシステムを利用する際,利用者IDとパスワードで認証する。また,顧客との通信には,インターネット標準として利用されているaによる暗号化通信を用いる。
サーバ管理者は,各サーバやファイアウォールのログを定期的にチェックすることによって,Webシステムにおける不正なアプリケーションの稼働を監視する。
〔侵入テストの実施〕
M課長は,社外のセキュリティコンサルタントのN氏に侵入テストの実施を依頼した。N氏は,表1に示す侵入テストのテスト項目を作成し,M課長に提出した。〔結果〕
N氏は,テスト項目に沿って侵入テストを実施し,その結果と改善項目をM課長に報告した。テスト結果と改善項目を表2に示す。〔改善項目とその対策〕
M課長とN氏は,Webシステムの侵入テストの結果と,セキュリティ上の改善項目について,表1と表2を基にしてL部長に報告した。
K社は技術書籍の大手出版社である。従来は全ての書籍を書店で販売していたが,顧客からの要望によって,高額書籍を自社のWebサイトでも販売することになった。K社システム部のL部長は,Webサイトを用いた書籍販売システム(以下,Webシステムという)の開発のためのプロジェクトチームを立ち上げ,開発課のM課長をリーダーに任命した。L部長は,情報セキュリティ確保のための対策として,サイバー攻撃によるWebシステムへの侵入を想定したテスト(以下,侵入テストという)を実施するようにM課長に指示した。M課長は,開発作業が結合テストまで完了した段階で,Webシステムのテスト環境を利用して侵入テストを実施することにした。
〔Webシステムのテスト環境〕
Webシステムは,高額書籍を購入する顧客の氏名,住所,購入履歴などの個人情報(以下,顧客情報という)を内部ネットワーク上のデータベースサーバ(以下,DBサーバという)に保存し,WebサーバがDBサーバ,業務サーバにアクセスして販売処理を行う。Webシステムのテスト環境の構成を図1に示す。〔Webシステムの認証と通信〕
顧客がWebシステムを利用する際,利用者IDとパスワードで認証する。また,顧客との通信には,インターネット標準として利用されているaによる暗号化通信を用いる。
サーバ管理者は,各サーバやファイアウォールのログを定期的にチェックすることによって,Webシステムにおける不正なアプリケーションの稼働を監視する。
〔侵入テストの実施〕
M課長は,社外のセキュリティコンサルタントのN氏に侵入テストの実施を依頼した。N氏は,表1に示す侵入テストのテスト項目を作成し,M課長に提出した。〔結果〕
N氏は,テスト項目に沿って侵入テストを実施し,その結果と改善項目をM課長に報告した。テスト結果と改善項目を表2に示す。〔改善項目とその対策〕
M課長とN氏は,Webシステムの侵入テストの結果と,セキュリティ上の改善項目について,表1と表2を基にしてL部長に報告した。
- N氏 :
- 現在のWebシステムには,サイバー攻撃に対して多くの脆弱性が存在します。
- L部長:
- 項番1について説明してください。
- N氏 :
- 攻撃者は①Webサーバの構成情報の調査によって,攻撃するために有用な情報を得ることで,Webサーバの脆弱性を探ってきます。
- L部長:
- どのような対策が有効ですか。
- N氏 :
- ②ポートスキャンについては,Webサーバやファイアウォールの設定で防止する必要があります。Webサーバの構成情報の調査については,Webサーバの設定情報を変更して,必要のない問合せに応答しないようにすることで対処します。
- L部長:
- 項番2で,Webサーバについて改善項目がありますが,どのような対策が必要ですか。
- N氏 :
- ③Webサーバへの攻撃の疑いがあるアクセスを遮断するセキュリティ機器の導入が効果的です。保護する対象をWebアプリケーションに特化しており,Webサーバ上で使用するアプリケーションに潜む未知の脆弱性を突く攻撃を,プロトコルの異常などによって検知し,遮断できるようになります。
- L部長:
- :項番3のバッファオーバーフローとSQLインジェクションについては,どのような対策が必要ですか。
- N氏 :
- :ソースコードをチェックするツールを使用して,Webアプリケーションの脆弱性を調査し,その結果に基づいたソースコードの修正が必要です。バッファオーバーフローは,バッファにデータを保存する際にdを常にチェックすることで防ぐことができます。SQLインジェクションは,データをSQLに埋め込むところで,データの特殊文字を適切にeすることで防ぐことができます。
- L部長:
- 改善項目に対応するようWebアプリケーションのソースコードを修正します。
- N氏 :
- Webシステムの構成にも問題点があります。攻撃者が,攻撃の発見を遅らせるために,Webシステム内でログを消去するおそれがあります。
- L部長:
- 対策方法はありますか。
- N氏 :
- 各サーバやファイアウォールのログを集中して保存する専用のサーバを設置し,ログが消去されることを防ぎます。また,④ログをリアルタイムにチェックするツールを導入します。
設問1
本文中のa及び表2中のb,cに入れる適切な字句をそれぞれ4字以内で答えよ。
解答入力欄
- a:
- b:
- c:
解答例・解答の要点
- a:TLS (3文字)
- b:踏み台 (3文字)
- c:ゼロデイ (4文字)
解説
〔aについて〕
Webシステムという性格上、顧客はWebサーバと通信を行うことになるため、やり取りに使用されるプロトコルはHTTPになります。HTTP通信の暗号化を行うインターネット標準規格はTLS(Transport Layer Security)です。
TLSはSSL3.0をもとに策定された規格で、現在のインターネット通信において認証・暗号化・改ざん検知の機能を提供する標準プロトコルです。2020年現在の最新版はTLS1.3です。
なぜSSLではなくTLSなのかということにも言及しておきます。以前からHTTP通信の暗号化ではSSLがインターネット標準として使用され、今でもTLS/SSLというように併記されることがあります。しかし現在、SSLはセキュリティ上の脆弱性により使用が非推奨とされている※ためインターネット標準という観点からいえば不適切となります。
∴a=TLS
※2015年6月、RFC7568によってSSL3.0の使用は禁止された(Wikipediaより)
〔bについて〕
bの前後部分に当たる項番2のテスト結果には、「テストではWebサーバを介して内部ネットワークに侵入できた」とあります。これはDMZに設置されているWebサーバの脆弱性が原因で本来外部からアクセスできないはずの内部ネットワークにまで攻撃が及ぶ可能性を示しています。
この事例のWebサーバやボットネットにおけるゾンビコンピュータ群のように攻撃者に脆弱性を突かれ、意図せずに他の攻撃のステップに悪用されてしまうことを踏み台にされると言います。
b=踏み台
〔cについて〕
ゼロデイ攻撃は、あるOSやソフトウェアに脆弱性が存在することが判明し、ソフトウェアの修正プログラムがベンダーから提供されるより前に、その脆弱性を悪用して行われる攻撃のことを指します。問題解決のための修正パッチが提供された日を1日目としたとき、それ以前に始まった攻撃という意味でゼロデイ(0 day)攻撃と呼ばれます。
cの前文である「脆弱性の存在自体が公表される前にそれを悪用する…」という記述からゼロデイ攻撃であると判断できます。
c=ゼロデイ
Webシステムという性格上、顧客はWebサーバと通信を行うことになるため、やり取りに使用されるプロトコルはHTTPになります。HTTP通信の暗号化を行うインターネット標準規格はTLS(Transport Layer Security)です。
TLSはSSL3.0をもとに策定された規格で、現在のインターネット通信において認証・暗号化・改ざん検知の機能を提供する標準プロトコルです。2020年現在の最新版はTLS1.3です。
なぜSSLではなくTLSなのかということにも言及しておきます。以前からHTTP通信の暗号化ではSSLがインターネット標準として使用され、今でもTLS/SSLというように併記されることがあります。しかし現在、SSLはセキュリティ上の脆弱性により使用が非推奨とされている※ためインターネット標準という観点からいえば不適切となります。
∴a=TLS
※2015年6月、RFC7568によってSSL3.0の使用は禁止された(Wikipediaより)
〔bについて〕
bの前後部分に当たる項番2のテスト結果には、「テストではWebサーバを介して内部ネットワークに侵入できた」とあります。これはDMZに設置されているWebサーバの脆弱性が原因で本来外部からアクセスできないはずの内部ネットワークにまで攻撃が及ぶ可能性を示しています。
この事例のWebサーバやボットネットにおけるゾンビコンピュータ群のように攻撃者に脆弱性を突かれ、意図せずに他の攻撃のステップに悪用されてしまうことを踏み台にされると言います。
b=踏み台
〔cについて〕
ゼロデイ攻撃は、あるOSやソフトウェアに脆弱性が存在することが判明し、ソフトウェアの修正プログラムがベンダーから提供されるより前に、その脆弱性を悪用して行われる攻撃のことを指します。問題解決のための修正パッチが提供された日を1日目としたとき、それ以前に始まった攻撃という意味でゼロデイ(0 day)攻撃と呼ばれます。
cの前文である「脆弱性の存在自体が公表される前にそれを悪用する…」という記述からゼロデイ攻撃であると判断できます。
c=ゼロデイ
設問2
本文中のd,eに入れる適切な字句をそれぞれ解答群の中から選び,記号で答えよ。
d,e に関する解答群
- エスケープ
- データサイズ
- マイグレーション
- リダイレクト
- ルートクラック
解答入力欄
- d:
- e:
解答例・解答の要点
- d:イ
- e:ア
解説
〔dについて〕
バッファオーバーフロー攻撃への対策が入ります。
バッファオーバーフロー攻撃は、プログラムが確保したメモリ領域(バッファ)よりも大きなデータを読み込ませることで、メモリ領域からあふれた部分に不正なデータを書き込み、システムへの侵入や管理者権限の取得を試みる攻撃です。
この攻撃は、プログラムが入出力するデータサイズの検査を怠っていることに付け入る形で仕掛けられます。したがって、この攻撃に対してはバッファに書込むデータサイズをWebアプリケーション側で事前にチェックし、想定外のサイズだった場合はエラーにする仕組みを設けることが有効な対策となります。
∴d=イ:データサイズ
〔eについて〕
SQLインジェクション攻撃への対策が入ります。
SQLインジェクション攻撃は、Webアプリケーションに対してデータベースへの命令文を構成する不正な入力データを与え、Webアプリケーションが想定していないSQL文を意図的に実行させることで、データベースを破壊したり情報を不正取得したりする攻撃です。
この攻撃は、入力データのなかにSQL文において特別な意味をもつ記号文字※が含まれていることをWebアプリケーション側で検査せずに、そのままSQL文に渡してしまうことによって起こります。したがって、この攻撃に対してはユーザの入力データを無害な文字に置き換えするエスケープ処理(例えば、「'」→「''」、「\」→「\\」等)をSQLに組み込む直前に行うことが有効な対策となります。
∴e=ア:エスケープ
※シングルクォーテンション「'」やバックスラッシュ「\」、コメント記号「--」、セミコロン「;」など
バッファオーバーフロー攻撃への対策が入ります。
バッファオーバーフロー攻撃は、プログラムが確保したメモリ領域(バッファ)よりも大きなデータを読み込ませることで、メモリ領域からあふれた部分に不正なデータを書き込み、システムへの侵入や管理者権限の取得を試みる攻撃です。
この攻撃は、プログラムが入出力するデータサイズの検査を怠っていることに付け入る形で仕掛けられます。したがって、この攻撃に対してはバッファに書込むデータサイズをWebアプリケーション側で事前にチェックし、想定外のサイズだった場合はエラーにする仕組みを設けることが有効な対策となります。
∴d=イ:データサイズ
〔eについて〕
SQLインジェクション攻撃への対策が入ります。
SQLインジェクション攻撃は、Webアプリケーションに対してデータベースへの命令文を構成する不正な入力データを与え、Webアプリケーションが想定していないSQL文を意図的に実行させることで、データベースを破壊したり情報を不正取得したりする攻撃です。
この攻撃は、入力データのなかにSQL文において特別な意味をもつ記号文字※が含まれていることをWebアプリケーション側で検査せずに、そのままSQL文に渡してしまうことによって起こります。したがって、この攻撃に対してはユーザの入力データを無害な文字に置き換えするエスケープ処理(例えば、「'」→「''」、「\」→「\\」等)をSQLに組み込む直前に行うことが有効な対策となります。
∴e=ア:エスケープ
※シングルクォーテンション「'」やバックスラッシュ「\」、コメント記号「--」、セミコロン「;」など
設問3
〔改善項目とその対策〕について,(1)~(3)に答えよ。
解答入力欄
- ①:
- ②:
解答例・解答の要点
- ①:種類 (2文字)
- ②:バージョン (5文字)
- 必要なポートだけ開ける (11文字)
- WAF (3文字)
解説
- ポートスキャンは、コンピュータやルータのアクセス可能な通信ポートを外部から調査する行為で、不正アクセスを行うための下調べや、脆弱性検査などの目的で実施されます。スキャン対象の応答からOSの種類、稼働しているサービスとそのバージョンなどの情報が得ることが可能です。
WebサーバはDMZに設置され外部からのアクセスを受け付けている状態です。このためポートスキャンは容易に成功し、Webサーバソフトウェアの種類とそのバージョン情報などを得ることができます。
∴種類,バージョン - 表2の項番1の改善対策欄にて「Webシステムのサービスに必要なポートだけをインターネットに公開する。Webサーバが必要のない問合せに応答しないようにする」とポートスキャンへの対策が説明されています。不必要なポートを開けたままにしておくと攻撃者に情報や攻撃チャンスを与えることになってしまうため、「必要なポートだけ開ける」ように設定を変更し、構成情報をできるだけ秘匿する必要があります。
∴必要なポートだけ開ける - WAF(Web Application Firewall)は、通過するパケットのIPアドレスやポート番号だけでなくペイロード部(データ部分)をチェックすることで、Webアプリケーションに対する攻撃を検知し、遮断することが可能なファイアウォールです。WAFでチェックされる内容はURLパラメータやクッキーの内容などのHTTPヘッダー情報や、POSTデータの内容などのメッセージボディ部などです。
下線部③の後の、「保護対象がWebアプリケーションのみ」「未知の脆弱性を防ぐことが可能」「プロトコルの異常を検知してパケットを遮断する」でアルファベット3文字という条件からWAFが適切と判断できます。
∴WAF
設問4
本文中の下線④について,ログのリアルタイムでのチェックで,サイバー攻撃の可能性があると判断される痕跡を解答群の中から全て選び,記号で答えよ。
解答群
- DNSを使用せずURLの中にIPアドレスを直接書き込んで通信している。
- URLフィルターのホワイトリストに一致した通信が発生している。
- 送られてくるファイルの拡張子が偽装されている。
- 業務時間外に内部ネットワークから業務サーバへのアクセスが減少している。
- 通信元のIPアドレスが,想定した範囲から外れている。
解答入力欄
- o:
解答例・解答の要点
- o:ア,ウ,オ
解説
- 正しい。通常であればWebサイトへのアクセスはドメイン名で行うため、IPアドレスの直打ちでのアクセス自体がかなり特殊です。IPアドレスを1ずつ増加させながらpingを送信し、インターネット上に存在するホストを検出するPINGスイープという行為がありますが、「ア」はそれのHTTP版にあたる行為であると推測できます。したがってサイバー攻撃の可能性があると判断できます。
- ホワイトリストは、パケットをすべて「拒否」する初期状態に、通信を「許可」するルールを記述したリストです。ホワイトリストには通信を許可するURLが列挙されるため、ホワイトリスト内のURLと一致したとしても問題はありません。
- 正しい。故意的に拡張子を変えてファイルの種類を偽装する正当な目的があるとは考えられないため、サイバー攻撃の可能性があると判断できます。
- 業務時間外であれば業務時間内と比較して処理件数は減ると考えられるためアクセスが少なくても問題はありません。
- 正しい。送信元が偽装されている、又は、本来アクセスがあるはずのない地域から行われたものと考えられるため、サイバー攻撃の可能性があると判断できます。