Webサイトを用いた書籍販売システムのセキュリティ【平成28年度 春期 応用情報技術者試験 午後 問1】
平成28年春 応用情報技術者試験 午後 問1
問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:TLS)による暗号化通信を用いる。
a:TLS
「顧客との通信」とは、文面からインターネット上の顧客とWebサーバ間の通信と考えられます。したがって、HTTPの通信で暗号化通信とくればHTTPSになります。
HTTPSはあくまで通信プロトコルの種別を表すURIのスキームであり、HTTPを暗号化するのはTLSになります。
TLS(Transport Layer Security)は、SSL(Secure Socket Layer)の後継で、現在のインターネット通信の標準プロトコルです。
サーバ管理者は、各サーバやファイアウォールのログを定期的にチェックすることによって、Webシステムにおける不正なアプリケーションの稼働を監視する。
〔侵入テストの実施〕
M課長は、社外のセキュリティコンサルタントのN氏に侵入テストの実施を依頼した。N氏は、表1に示す侵入テストのテスト項目を作成し、M課長に提出した。
〔結果〕
N氏は、テスト項目に沿って侵入テストを実施し、その結果と改善項目をM課長に報告した。テスト結果と改善項目を表2に示す。
b:踏み台
「Webサーバを中継点として内部ネットワークに侵入できた」ということで、攻撃の最終ターゲットにアクセスする前のステップとして悪用されてしまうことを「踏み台」といいます。
本来、内部ネットワークにはインターネットからのアクセスはできませんが、DMZのWebサーバの脆弱性を突き、そこを踏み台にする攻撃の可能性を示しています。
c:ゼロデイ
「脆弱性の存在自体が広く公表される前にそれを悪用する」とあるように、公表される時点では脆弱性の存在とその修正プログラムが提供されますが、それよりも前に脆弱性を突く攻撃を「ゼロデイ攻撃」といいます。
〔改善項目とその対策〕
M課長とN氏は、Webシステムの侵入テストの結果と、セキュリティ上の改善項目について、表1と表2を基にしてL部長に報告した。
N氏:現在のWebシステムには、サイバー攻撃に対して多くの脆弱性が存在します。
L部長:項番1について説明してください。
N氏:攻撃者は①Webサーバの構成情報の調査によって、攻撃するために有用な情報を得ることで、Webサーバの脆弱性を探ってきます。
①で得られるアプリケーションに関する情報 →種類、バージョン
アクセス可能な通信ポートを外部から調査することをポートスキャンといい、不正アクセスの下調べや脆弱性検査などで実施されます。
ポートスキャンによって得られる情報には、OSの種類、稼働中のサービスとそのバージョンなどがあります。
L部長:どのような対策が有効ですか。
N氏:②ポートスキャンについては、Webサーバやファイアウォールの設定で防止する必要があります。Webサーバの構成情報の調査については、Webサーバの設定情報を変更して、必要のない問合せに応答しないようにすることで対処します。
②の効果的な方策 →必要なポートだけ開ける。
「Webシステムのサービスに必要なポートだけをインターネットに公開する。Webサーバが必要のない問合せに応答しないようにする」とあり、Webサーバやファイアウォールの設定としては「必要なポートだけ開ける」ことにより、できるだけ情報にアクセスできないようにすることが有効です。
L部長:項番2で、Webサーバについて改善項目がありますが、どのような対策が必要ですか。
N氏:③Webサーバへの攻撃の疑いがあるアクセスを遮断するセキュリティ機器の導入が効果的です。保護する対象をWebアプリケーションに特化しており、Webサーバ上で使用するアプリケーションに潜む未知の脆弱性を突く攻撃を、プロトコルの異常などによって検知し、遮断できるようになります。
③で、N氏が導入を推奨するセキュリティ機器とは →WAF
「保護する対象をWebアプリケーションに特化」としたセキュリティ機器とくれば、WAF(Web Appliation Firewall)です。
WAFでは、ファイアウォールのパケットのIPアドレス、ポート番号のチェックに加え、ペイロード部(データ部)もチェックして、Webアプリケーションに対する攻撃を検知、遮断することができます。
L部長:項番3のバッファオーバフローとSQLインジェクションについては、どのような対策が必要ですか。
N氏:ソースコードをチェックするツールを使用して、Webアプリケーションの脆弱性を調査し、その結果に基づいたソースコードの修正が必要です。バッファオーバフローは、バッファにデータを保存する際に(d:データサイズ)を常にチェックすることで防ぐことができます。SQLインジェクションは、データをSQLに埋め込むところで、データの特殊文字を適切に(e:エスケープ)することで防ぐことができます。
d:データサイズ
バッファオーバフローに対する対策になります。
バッファオーバフローとは、データの保管のためのメモリ領域(バッファ)に想定以上の大きなデータを書き込んでしまい、溢れたデータが隣接するメモリ領域を不正に書き換えてしまうことで、予期しない動作異常を引き起こすものです。
攻撃者はバッファオーバフローを故意に発生させ、システムへの侵入や管理者権限の取得を試みたりします。
バッファオーバフローの対策としては、データサイズを常にチェックして、想定外のサイズのデータを検知した場合にはエラーとすることが有効です。
e:エスケープ
SQLインジェクションに対する対策になります。
SQLインジェクションは、データベースと連動したWebアプリケーションに対する攻撃の一つで、入力データの一部にSQL文の断片などを混入させ、想定外のSQL文を意図的に実行させてデータベースを破壊したり情報を搾取する攻撃です。
SQLインジェクションの対策としては、ユーザの入力データをSQLに渡す際に、SQLで特別な意味をもつ特殊文字に対しては、これを無害な文字に書き換えるエスケープ処理を行うことが有効です。
M課長:改善項目に対応するようWebアプリケーションのソースコードを修正します。
N氏:Webシステムの構成にも問題点があります。攻撃者が、攻撃の発見を遅らせるために、Webシステム内でログを消去するおそれがあります。
L部長:対策方法はありますか。
N氏:各サーバやファイアウォールのログを集中して保存する専用のサーバを設置し、ログが消去されることを防ぎます。また、④ログをリアルタイムにチェックするツールを導入します。
④のログのリアルタイムでのチェックで、サイバー攻撃の可能性があると判断される痕跡
DNSを使用せずURLの中にIPアドレスを直接書き込んで通信している。:正解
Webサイトへのアクセスは通常、ドメイン名で行われますが、IPアドレスで直接指定することは特殊であり、サイバー攻撃の可能性があります。
送られてくるファイルの拡張子が偽装されている。:正解
故意に拡張子を偽装していることは特殊であり、サイバー攻撃の可能性があります。
通信元のIPアドレスが、想定した範囲から外れている。:正解
本来アクセスされるはずのない地域からのアクセスか、IPアドレスが偽装されているなど、サイバー攻撃の可能性があります。
N氏の指摘に基づいて、開発課がWebシステムを改善し、L部長はWebシステムの総合テストの実施を承認した。
【出典:応用情報技術者試験 平成28年度春期午後問1(一部、加工あり)】