平成27年春 基本情報技術者試験 午後 問1
問1 インターネットを利用した受注管理システムのセキュリティに関する次の記述を読んで、設問1〜4に答えよ。
製造業のK社では、インターネットを利用した受注管理システムを開発している。受注管理システムは、取引先も利用するので、セキュリティ上の欠陥があった場合、自社だけでなく取引先にも損害を与える可能性がある。そこで、K社は、セキュリティ診断サービスを行っているZ社に、受注管理システムの脆弱性診断を依頼した。
〔受注管理システム〕
受注管理システムのアプリケーション(以下、受注管理アプリケーションという)は、Webサーバ上で稼働する。受注や出荷などの情報は、データベース(以下、DBという)サーバ上で稼働する受注情報DBに格納され、受注管理アプリケーションから、参照、更新される。取引先PCにダウンロードできるファイルや、取引先PCからアップロードされたファイルは、Webサーバに接続されているディスクに格納される。受注管理システムの構成を図1に示す。
RPSには、ディジタル証明書を設定しておく。受注管理システムを利用する取引先の担当者は、取引先PCのブラウザからRPSを経由して受注管理アプリケーションにアクセスし、ログイン画面で利用者IDとパスワードを入力してログインする。その際、取引先PCのブラウザからの通信には、HTTP over SSL/TLS(以下、HTTPSという)を使用する。RPSではディジタル証明書を使って、HTTPSからHTTPにプロトコルを変換する。
図1中の通信経路を表2に示す1〜5とした場合、取引先PCからWebサーバにアクセスするときに、HTTPSが通信に使われる通信経路は? →1、2、3
問題文から、取引先PCからRPSまでがHTTPS通信、RPSからK社内のネットワークがHTTP通信であることが分かります。
「RPSではディジタル証明書を使って、HTTPSからHTTPにプロトコル変換する」とは、HTTPSで送信されてきた暗号データをディジタル証明書に対応する秘密鍵で復号して、平文でK社内のネットワークに送信するということです。
〔Z社の脆弱性診断の結果〕
受注管理アプリケーションには、想定していない操作をDBサーバに実行させて、DBに不正アクセスするような(a:SQLインジェクション)については、対策がされている。しかし、Z社の脆弱性診断の結果、受注管理アプリケーションに対策が必要なセキュリティ上の脆弱性が複数指摘された。表1にZ社からの指摘事項(抜粋)を示す。
a:SQLインジェクション
「想定していない操作をDBサーバに実行させてDBに不正アクセスする」 という記述からSQLインジェクションが該当します。具体的な操作としては、アプリケーションの入力データとしてDBへのSQL命令文を構成するデータを入力するような行為です。
b:クロスサイトスクリプティング
「Webページ内にスクリプトが埋め込まれ、他のWebサイトに誘導される」という記述からクロスサイトスクリプティングが該当します。
下線①の対策 →ダウンロードしたいファイルのファイル名だけを指定させ、取引先ごとに決められたフィルダ内に該当ファイルが存在する場合には、ダウンロードの処理を行う。
指摘事項に「取引先の担当者がWebサーバの任意のファイルをダウンロード可能である」とあり、複数の取引先の担当者が、他の取引先の任意のファイルをダウンロード可能ということになり、リスクが高い状態にあります。
これを防ぐために、取引先ごとにアクセスできる範囲を必要最低限のファイルに限定する必要があります。
下線②の脆弱性から考えられるセキュリティ事故 →パスワードの処理を自動で次々と入力するプログラムを利用することで、ログインできてしまう。
複数のログイン失敗を許容すると、総当り攻撃によっていつかは認証を突破されるリスクがあります。これに対応するには、連続するログイン失敗時にはアカウントの利用を一時的に停止するロックアウト処理が必要です。
K社は、表1中の下線①及び②に対策を行った。さらに、Z社からのその他の指摘事項にも対策を行って、K社は、受注管理システムの運用を開始することにした。
【出典:基本情報技術者試験 平成27年度春期午後問1(一部、加工あり)】