ことさら−古都プログラマーの更級日記

京都でお寺を回りながら御朱印集めをしていたり、LoLをしたり試合を見に行ったりしているエンジニアのブログです。技術的なはなしとか日常的なはなし、カメラやLoLや競馬の話も書きます。右メニューに検索やらカテゴリーやらがあるので、見たい記事だけ見てね!

情報処理安全確保支援士 平成30年度春期を受けてきた 午後II問2のついて考えてみる

もくじ

f:id:yoshiki_utakata:20180413095415j:plain

この記事は何?

情報処理安全確保支援士試験 平成30年度春期を受けてきて、午後IIで問2を説いてきたのでそのまとめです。ここの回答が必ずしも正しいとは限りません。

情報処理安全確保支援士試験 平成30年度春期 午後IIで問2

Webサイトのセキュリティに関する問題でした。割と得意な分野なので選択しました。問題の難易度は低めだったかと思います。

設問1 (1)

Webサーバーの標準設定ではアクセスログに残らない攻撃についての設定です。これはPOSTメソッドのボディ部分のことをさしているのだと思います。

ログイン画面などでパスワードをサーバーに送信する場合、通常はHTTPSで暗号化して送信します。HTTPSリクエストで暗号化されるのはリクエストボディだけで、ヘッダは暗号化されません。なので通常パスワードなどはPOSTリクエストのボディなどで送ります。

もしWebサーバーでPOSTリクエストのボディをログに出力するようになっていた場合、パスワードなどがログに書き出されてしまう恐れがあります。これはあまり良い状態とは言えません。サーバー管理者がログを見るとパスワードが分かってしまいますし、万が一サーバーのデータが流出した場合にハッシュ化されていないパスワードが流出する恐れがあります。このようなことから通常HTTPのリクエストのボディはログに出力されないようになっているのだと思います。

設問1 (2)

aに入る確認方法を表1の結果を考慮し答えよという問題です。確認方法はいろいろありますが、表1をヒントにして適切な確認方法を導き出す必要があります。

おそらく重要なのは、「WebサイトYは外部からのアクセスはなく、改ざんされた痕跡も見つけられなかった」という点です。WebサイトYはWebサイトXと全く同じものがデプロイされています。つまり、改ざんされたWebサイトXと改ざんされていないWebサイトYのファイルを比較して差分があるかどうかを見ることで、WebサイトXの改ざんされた箇所を効率的に発見できるというわけです。

設問1 (3)

誰もがご存知公開鍵認証方式だと思います。

設問2

bに入る報告内容を具体的に述べよというものです。これはセキスペでありがちな問題ですが、おそらく各サーバーがどのようなソフトウェアのどのバージョンを使っているかの管理台帳を作れという話かと思います。あるソフトウェアのあるバージョンに脆弱性が見つかった時、その管理台帳を見ることで対応が必要なサーバーが一発で分かるというものです。

設問3

だと思います。

設問4 (1)

SQLインジェクションに関する問題で、表4のまずNo.3から見てみると、

No.3は where keyword = 'bag' のようなクエリになると考えられます。

そのうえでNo.1を見てみると、これは where keyword = 'bag' and '1' = '1' のようなクエリになると考えられます。となると'1' = '1' は常にtrueでこのwhereは keyword = 'bag' と同じ意味になるので結果は30件。同様に考えるとNo.2は where keyword = 'bag' and '1' = '2' のようになり、'1' = '2'はfalseとなるので結果は0件となります。

設問4 (2)

イの文字列でalert が出ます。

設問4 (3)

表2の(う)を見ると、ここでcodeに対応する賞品が無料会員でも購入できる賞品かどうかのチェックを挟んでいないようにみえるので、POSTデータを改変して有料会員限定商品のcodeにすり替えることで、無料会員でも限定商品が購入できると考えられます。

設問4 (4)

これが難しかったのですが、おそらく k は無料アカウントと有料アカウントを両方用意しておけということかと思います。

i に関して、表5を見てみると、表5の不正な購入処理を行うためには、限定商品のIDを知っている必要がありますので、そのあたりの話か、あるいは正しい購入フローを行った時に正しく購入できるかの事前確認あたりの話かと思いますが、これという決定打をつかめていなかったためよくわかりませんでした。

設問5

これ確か過去問でもあったよくある問題で、A社の診断を通過することを研修条件に追加すればよいかと思います。

設問6

セキュリティガイドについての話なので、図1,3,11のセキュリティガイドと、表3の診断結果についてよく見てみました。すると図3の直前あたりに、「Webセキュリティガイドの記載が抽象的なので誤った実装をしていた」といった旨の記述があるため、「診断結果を利用することでセキュリティガイドの記述をより具体的にできる」といったような内容をかけば良いのでないかと個人的には思いました。

その他問題文章で気になった点

設問になっている以外の部分でもいくつか気になった(問題になってもおかしくないかなと思った)点がありましたのでメモしておきます。

辞書攻撃

17ページ下部に辞書攻撃の話がありましたので、辞書攻撃に関する説明などの問題が出題されててもおかしくなかったなと思いました。

WAFの話

脆弱性に対するパッチがすぐに当てられない場合にWAFの話が出てくる事がよくありますが今回はこれが問われる事はありませんでした。

CSRFや他の脆弱性の話

今回はSQLインジェクションXSSの話でしたが、CSRFやOSコマンドインジェクションといった他の脆弱性の話もよくテストに問題になっているなという印象がありました。

表2について

今回表2のURLはすべてhttpsでしたが、これにhttpが混ざっていたりして、CookieのSecure属性が指定されていないがゆえにセッションハイジャックやセッションフィクセーションの被害が出るような問題もよく見るかと思います。

最近のWebブラウザのXSS耐性

最近のブラウザではXSSを検知すると自動的にブロックするような機能を持っていたりするらしく、その部分が問題になっていた年もありました。今回の問題でいうと25ページあたりの記述です。

まとめ

今年の午後2問2は個人的に割とときやすかった。午後1と午後2は、自分がとける問題をいかにすばやく選択するかという点、そして、典型的な問題と回答のパターンを把握しておいて問題からスムーズに回答につなげることができるか、が重要かと思った。

問題回答パターン集ならポケットスタディがいいらしい。

ポケットスタディ 情報処理安全確保支援士 (情報処理技術者試験)

ポケットスタディ 情報処理安全確保支援士 (情報処理技術者試験)

絶対わかる情報処理安全確保支援士 2018年春版

絶対わかる情報処理安全確保支援士 2018年春版