HTTPメソッドによるログ検知の違いとSSH認証方式【情報処理安全確保支援士試験 平成30年度 春期 午後2 問2 設問1】
情報処理安全確保支援士試験 平成30年度 春期 午後2 問2 設問1
問2 Webサイトのセキュリティに関する次の記述を読んで、設問1〜6に答えよ。
A社は、従業員数1,200名のマスメディア関連会社である。A社では、提供するサービスごとにWebサイトを用意し、インターネット上に公開している。Webサイトには、情報提供サイトやショッピングサイトなど様々なものがある。Webサイトでは、Webアプリケーションソフトウェア(以下、Webアプリという)が動作し、その設計、実装、テスト(以下、この3工程を開発という)及び運用は、Webサイトごとに情報システム子会社B社又は外部の業者に委託されている。多くのWebサイトでは、キャンペーンなどのたびに、開発とリリースを繰り返している。
【現状のセキュリティ施策】
A社では、脆弱性を作り込まないようにするために、Webサイトのライフサイクルの五つの工程(要件定義、設計、実装、テスト、運用)に関するセキュリティガイドライン(以下、Webセキュリティガイドという)を整備している。現行のWebセキュリティガイド第1版を図1に示す。
Webセキュリティガイドは、開発及び運用を委託している外部の業者にも順守を義務付けている。
【Webサイトの運用について】
A社のカスタマサポートサービス提供用のWebサイトXは、A社のデータセンタXに設置されている。WebサイトXは、B社に開発と運用を委託している。データセンタXとB社本社のシステム構成を図2に示す。
WebサーバX上では、WebアプリXが稼働している。WebアプリXは、Webアプリケーションフレームワーク(以下、WFという)の一つであるWF-Kを使用して開発されている。
WebサイトXとシステム構成が全く同じWebサイトYを、別のデータセンタYに災害対策用として設置している。WebサイトX稼働時にはWebサイトYは、インターネットに公開しておらず、ホットスタンバイの状態で運用している。
WebサイトXとWebサイトYのソフトウェアの脆弱性修正プログラム(以下、パッチという)は、3か月ごとの定期メンテナンス日にB社運用チームのCさんが適用している。Cさんは、新しいパッチが提供されているかを定期メンテナンス日の前に確認し、もしあれば、まずWebサイトYにパッチを適用している。WebサイトYでの稼働に問題がなければ、WebサイトXにもパッチを適用している。コンテンツも、まずWebサイトYを更新し、問題がなければ、WebサイトXを更新している。パッチ適用とコンテンツ更新は、B社PC-LAN上のCさんのPCから行っている。
なお、B社では、全従業員にPCが1台ずつ貸与されており、そのPCでWebサイトを閲覧して情報を収集したり、電子メール(以下、メールという)を送受信したりしている。
【セキュリティインシデントの発生】
ある日、WebサイトXの利用者から、WebサイトXのダウンロードページでファイルをダウンロードしたところ、マルウェア対策ソフトが警告を表示したという連絡があった。Cさんがダウンロードページを確認したところ、あるダウンロードファイルへのリンクが外部のURLに改ざんされていた。Cさんは運用チームのリーダであるDさんに報告し、WebサイトYに切り替えるべきかを相談した。Dさんは、切り替えるとWebサイトYも改ざんされてしまうことを懸念して、WebサイトYには切り替えないようCさんに伝えた。代わりに、DNSサーバの設定を変更して、メンテナンス中であることを表示するサーバに切り替えるようCさんに指示した。Dさんは、すぐにA社に連絡し、ファイルへのリンクが改ざんされたと伝えた。その後、A社のWebサイトX及びWebサイトYの担当部署のEさんがセキュリティ専門業者に連絡して、今後の対応について相談することになった。
【セキュリティ専門業者による調査】
セキュリティ専門業者の情報処理安全確保支援士(登録セキスペ)であるF氏が、被害の状況を調査した。調査内容と調査結果を表1に示す。
①について、アクセスログに残らないのは、どのような攻撃の場合か。35字以内で述べよ。:攻撃に使われる文字列がPOSTデータ内に含まれている場合
攻撃手法Kについて「特定の文字列を含むHTTPリクエストを送信すると、Webアプリの実行ユーザ権限で任意のファイルの読出しと書込みができる可能性がある」とあるように、WebサーバXでのHTTPリクエストに関するアクセスログの動作が問われています。
HTTPリクエストで特定の文字列を送信する方法には、GETメソッドとPOSTメソッドがあります。
GETメソッドでは、文字列をURLに付加してで送信します。(http://x.x.x.x/login.php?id=user1&password=yyy)この時、Webサーバのアクセスログには付加された文字列も記録されます。
一方、POSTメソッドでは、文字列をリクエストボディに付加して送信します。この時、Webサーバ側では通常、アクセスログにリクエストボディに付加された文字列は記録されません。
したがって、攻撃手法Kで、攻撃に使う文字列をPOSTデータ内に含め送信すれば、Webサーバのアクセスログには残らないことになります。
F氏は、DさんとEさんに調査結果を伝えた。次は、その時のF氏、Dさん、Eさんの会話である。
F氏:脆弱性Kは、改ざんの3週間前に公表されたものです。
Dさん:そうですか。その脆弱性は、認識していませんでした。すぐに確認して、パッチを適用します。仮に、認識していたとしてもパッチ適用は定期メンテナンス日、つまり、来週の月曜日にしていたと思うので、やはり改ざんされていましたね。
F氏:ダウンロードページのリンク以外に外部のURLに改ざんされているページはありませんでした。しかし、スクリプトを埋め込まれるなど、他の形でページが改ざんされている可能性もあるので確認が必要です。
Dさん:分かりました。ページの改ざんは、実際にはどのように確認すればよいでしょうか。
F氏:WebサイトXの全ファイルを(a:WebサイトYの全ファイルと比較)して確認すると漏れがなく、効率も良いでしょう。
a:WebサイトYの全ファイルと比較
WebサイトXは、「WebサイトXとシステム構成が全く同じWebサイトY」とあるようにWebサイトXとWebサイトYはコンテンツ、つまり全てのファイルが同じと考えて良さそうです。
また、表1(F氏の調査内容と調査結果)のNo.5に、WebサイトYでは「外部からの不正アクセスはなく、改ざんされた痕跡も見つけられなかった」とあり、WebサイトYは正常な状態であることが分かります。
したがって、WebサイトXとWebサイトYで全ファイルを比較して、改ざん箇所を確認すれば効率がいいでしょう。
Dさん:なるほど。分かりました。
F氏:調査結果は以上です。
Eさん:ありがとうございました。攻撃手法Kによって実際にWebサーバXを改ざんできるかどうかを知りたいので、調査してもらえないでしょうか。また、他に脆弱性がないかについても調査をお願いします。
F氏:分かりました。
F氏が、まず、WebサイトXに対して、攻撃手法Kによる攻撃を実施したところ、実際にWebサーバXを改ざんできることが確認できた。
次に、他に脆弱性がないか、WebサイトYに対してB社PC-LANからOS及びミドルウェア(以下、プラットフォームという)の診断並びにWebアプリXの診断を実施した。
プラットフォームの診断では、メンテナンスで使っているSSHサービスに対して辞書攻撃が容易に成功することが確認された。F氏がCさんにセキュリティ上の問題がないか確認したところ、”SSHサービスはB社PC-LANからだけアクセスできるように設定しているので問題はないと考えている”とのことであった。F氏によるとB社PC-LAN内に攻撃者が侵入できると、WebサイトYに不正にログインできる。そこで、F氏は、②SSHの認証方式をパスワード認証方式以外に設定するようDさんにアドバイスした。また、この設定をしたとしても、メンテナンスに自分のPCを利用するのはセキュリティ上の問題があるので、新たにメンテナンス専用PCを準備し、それをB社運用チームだけが利用できるようにすることをアドバイスした。
②について、設定すべき認証方式の名称を、10字以内で答えよ。:公開鍵認証方式
SSHのユーザ認証方式には以下のようなものがあります。
- パスワード認証:ユーザしか知り得ないパスフレーズを共通秘密として認証に利用
- 公開鍵認証:ユーザの秘密鍵を利用した署名を検証して認証する
B社PC-LANに攻撃者が侵入した場合、パスワード認証では辞書攻撃により不正ログインが可能となります。 これに対し、公開鍵認証では秘密鍵がないと署名ができないため、辞書攻撃による不正ログインを防ぐことができます。
次に、WebアプリXを診断したところ、XSSの脆弱性が5件検出された。
F氏の調査結果を基に、Dさんは、脆弱性Kに対するパッチ適用、SSHサービスの設定変更、メンテナンス専用PCの準備、XSSが検出されたプログラムの修正及びWebサイトXの復旧を行うようCさんに指示した。Cさんは1週間で対応を完了し、WebサイトXが再稼働した。
【出典:情報処理安全確保支援士試験 平成30年度 春期 午後2問2(一部、加工あり)】