Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題

14.485 Aufrufe

Veröffentlicht am

ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題(3題)と解説です。PHPカンファレンス2019での講演資料を少し手直ししました。
試験についてはこちら
https://www.phpexam.jp/tokumarubasic/

Veröffentlicht in: Technologie
  • Login to see the comments

ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題

  1. 1. 徳丸試験基礎編の例題を紹介 EG セキュアソリューションズ株式会社 徳丸 浩
  2. 2. 前提 • ウェブ・セキュリティ基礎試験(徳丸基礎試験)の 模擬試験およびその解説です https://www.phpexam.jp/tokumarubasic/ • 徳丸試験の本番の問題とは別ですが、似たような難 易度に調整しています 2
  3. 3. 問題1 クッキーにHttpOnly属性を設定した場合の効果を一つ 選択せよ 1. クッキーがHTTPSではなくHTTPのみで送信される 2. CSRF脆弱性を防止できる 3. JavaScriptから当該クッキーを参照できなくなる 4. 異なるオリジンからアクセスできるようになる 3
  4. 4. 問題1 – 解説 • 正解は 3 • クッキーをHTTPのみで送信強制する方法はありま せん。 • クッキーの発行時にCSRF脆弱性を防止する機能と してSameSite属性が実装されていますが、タイミン グ的に徳丸本2版には間に合いませんでした • JavaScriptから当該クッキーを参照できなくなるす るのがHttpOnly属性の機能です • クッキーを異なるオリジンからアクセスできるよう にする機能候補としてdomain属性がありますが、 ドメイン(effective TLD)を超えた共有はできませ ん 4
  5. 5. 問題2 脆弱性診断の結果、ディレクトリトラバーサル脆弱性が指摘さ れ、その証拠として /etc/passwd にアクセスした結果が報告書 に掲載されていた。 当該脆弱性の正しい対策を一つ選択せよ 1. ウェブアプリケーションの実行ユーザから /etc/passwd に アクセスできないよう設定する 2. 外部から入力されたファイル名を正しくエスケープ処理す る 3. 外部から入力されたファイル名に対して、basename関数な どディレクトリ名を除去する関数を用いる 4. Apache等の設定を見直し、ファイルの一覧が表示されない ことを確認する 5
  6. 6. 問題2 – 解説 • 正解は 3 • /etc/passwd へのアクセス制御は現実的に難しいことと、 他のファイルへのアクセスには効果がないので緩和策と しても効果が少ないです • この文脈ではファイル名のエスケープ処理はできません • basename関数を用いて外部から入力されたファイル名 にディレクトリ名が含まれないようにする…これが正解 です(本番試験では特定言語の関数名は原則として出ま せん) • Apache等の設定を見直し、ファイルの一覧が表示され ないことを確認する…これはディレクトリ・リスティン グの禁止で、意図しないファイル公開への緩和策ですが、 ディレクトリトラバーサルには効果がありません 6
  7. 7. 【解説】basename関数は何をするか • 以下のPHPスクリプト <?php $filename = '../../../../../../etc/passwd'; var_dump(basename($filename)); • 結果は下記となる(var_dumpなので引用符でこま れる) "passwd" • passwdというファイルは通常存在しないが、単に エラーにすればよい 7
  8. 8. 問題3 X-Frame-Optionsヘッダと最も関連の深い脆弱性はど れか? 1. クロスサイト・スクリプティング 2. クリックジャッキング 3. セッションハイジャック 4. クロスサイト・リクエストフォージェリ 8
  9. 9. 問題3 – 解説 • 正解は 2 • X-Frame-Optionsヘッダと最も関連の深い脆弱性は クリックジャッキングで、コンテンツがframe / iframe に入ることを防ぎます。 9
  10. 10. 【解説】クリックジャッキングの攻撃手法 ウェブインテント機能を持つ掲示板、クエリー文字列intentを指定すると犯行予告文を入力 欄に設定できる。 罠ページの画像を用意し、iframe要素を用いて罠と攻撃対象フォームを重ねる。そして、 CSSのz-indexを用いて、罠画像を奥側、攻撃対象フォームを手前にした上で、攻撃対象の フォームを透明に設定する。 利用者から見ると罠サイトだけが見えるが、罠の「応募」ボタンを押そうとすると実際に は手前側の「投稿」ボタンが押され、犯行予告文を投稿してしまう。 10
  11. 11. 【解説】クリックジャッキングの対策 アプリケーション単体では困難なためブラウザ側の支援が必要。 レスポンスヘッダX-Frame-Options  DENY(拒否)  SAMEORIGIN(同一オリジンに限り許可) いずれかの値をとる PHPによりX-Frame-OptionsのSAMEORIGINを指定するには以下のように記述 一般的には、Apacheやnginxの設定で常時このヘッダを出力するとよい X-Frame-Options: DENY X-Frame-Options: SAMEORIGIN header('X-Frame-Options: SAMEORIGIN'); 11
  12. 12. その他大切なこと • 基礎試験はPHP等の特定言語には依存しません – JavaScriptに関する問題は出ます • 徳丸本7章 脆弱性診断入門 からは出題されません • とても基礎的な問題ですが、それでも意外に点数が ばらけます(経験談) • ウェブセキュリティの基礎が把握できているかを確 認するのに良いと思います 12

×