Slide 1

Slide 1 text

MBSD Cybersecurity Challenges 2022 final

Slide 2

Slide 2 text

はじめに ● この資料は再診断の結果をご報告するものです。 ● 本日は各脆弱性の概略を説明したのち、 脆弱性を 1 つピックアップして詳細に解説します。 ● 再診断報告書_IPFactory.pdf を添付しております。 時間の都合上説明しきれないものについては再診断報告書をご覧ください。 2

Slide 3

Slide 3 text

5段階のリスクレベル 3段階の攻撃難易度 脆弱性の評価指標について 3 リスクレベル ☠緊急☠ 高 中 低 情報 攻撃難易度 易 普 難

Slide 4

Slide 4 text

再診断実施結果概要

Slide 5

Slide 5 text

再診断結果サマリ 依然としてリスクレベル 高 の脆弱性が存在 個人情報の漏洩などが予想されます 5 D

Slide 6

Slide 6 text

再診断指摘事項一覧 6 No 初回診断 再診断結果 指摘事項 2 高 低 蓄積型クロスサイト・スクリプティング 4 高 高 クロスサイト・リクエスト・フォージェリ 5 中 中 サーバサイド・リクエスト・フォージェリ 8 低 低 強制ブラウズ 9 低 低 パスワードポリシーに関する設定不備 10 低 低 オープンリダイレクト ※ No は初回診断報告書に準拠 ※ リスクレベル 情報 は省略

Slide 7

Slide 7 text

再診断指摘事項一覧 ● No. 4 クロスサイト・リクエスト・フォージェリの脆弱性をピックアップ ● No. 2, 5, 8, 9, 10 については、概略のみを紹介 ● 詳細は再診断報告書にて 7 No 再診断結果 指摘事項 2 低 蓄積型クロスサイト・スクリプティング 4 高 クロスサイト・リクエスト・フォージェリ 5 中 サーバサイド・リクエスト・フォージェリ 8 低 強制ブラウズ 9 低 パスワードポリシーに関する設定不備 10 低 オープンリダイレクト

Slide 8

Slide 8 text

[ CWE-79 ] 蓄積型クロスサイト・スクリプティング

Slide 9

Slide 9 text

● data スキームにより空の Origin になり、情報の盗取等は不可 ● iframe に sandbox 属性がないためリダイレクト程度の処理は可能 [ CWE-79 ] 蓄積型クロスサイト・スクリプティング 9 No 画面名 リスクレベル 21, 35, 53 プロファイル > ペンマーク > 更新 解消 42 教材管理 > プラスマーク > 更新 低 リスクレベル 攻撃難易度 高 → 低 易 → 易

Slide 10

Slide 10 text

[ CWE-352 ] クロスサイト・リクエスト・フォージェリ

Slide 11

Slide 11 text

[ CWE-352 ] クロスサイト・リクエスト・フォージェリ 11 ● 未修整・不十分な修正 ● Cookie の SameSite 属性により攻撃条件が特殊になるため詳細は後ほど解説 No 画面名 リスクレベル 21, 35, 53 プロファイル > ペンマーク > 更新 高 66 ユーザ管理 > プラスマーク > 追加する#2 解消 67 ユーザ管理 > ペンマーク > 更新する 高 リスクレベル 攻撃難易度 高 → 高 普 → 難

Slide 12

Slide 12 text

[ CWE-98 ] サーバサイド・リクエスト・フォージェリ

Slide 13

Slide 13 text

[ CWE-98 ] サーバサイド・リクエスト・フォージェリ 13 ● 未修整・不十分な修正 ● チャットに直接 file:///etc/passwd を入力しても LFI はできなくなったが、 リダイレクトを利用してローカルファイルの読み込みが可能 ● http://localhost/ で LAN 内コンテンツを読み込める点は修正されていない No 画面名 リスクレベル 16, 17, 30, 31, 47,48 チャット > 送信 チャット > 編集 > 送信 中 リスクレベル 攻撃難易度 中 → 中 易 → 普

Slide 14

Slide 14 text

[ CWE-425 ] 強制ブラウズ

Slide 15

Slide 15 text

[ CWE-425 ] 強制ブラウズ 15 ● 未修整 ● 利用者に見られるべきではないと考えられる情報が書いてあるため、 公開範囲を限定するための措置を行うことを推奨 No 画面名 リスクレベル 3 ヘルプ (管理者向け機能 ) 低 リスクレベル 攻撃難易度 低 → 低 易 → 易

Slide 16

Slide 16 text

[ CWE-521 ] パスワードポリシーに関する設定不備

Slide 17

Slide 17 text

[ CWE-521 ] パスワードポリシーに関する設定不備 17 ● 不十分な対策 ● パスワードの変更を強制しない限り 利用者の多くはパスワードを変更しないことが予想される ● 変更時にも文字種などの制限がないため脆弱なパスワードが設定可能 ● パスワードポリシーを強制することを推奨 No 画面名 リスクレベル 21, 35, 53 プロファイル > ペンマーク > 更新 低 リスクレベル 攻撃難易度 低 → 低 易 → 易

Slide 18

Slide 18 text

[ CWE-601 ] オープンリダイレクト

Slide 19

Slide 19 text

[ CWE-601 ] オープンリダイレクト 19 ● 不十分な修正 ● redirect の先頭が // であるときに無効化するように書かれているが、 Tab文字である %09 を挿入し /%09/example.com にすることで回避可能 ● JavaScript 内に allowpath という無害なパスのリストが確認できる ● allowpath を利用した許可リスト方式に使用する事を推奨 No 画面名 リスクレベル 2 TOP#2 低 リスクレベル 攻撃難易度 低 → 低 普 → 普

Slide 20

Slide 20 text

[ CWE-352 ] クロスサイト・リクエスト・フォージェリ

Slide 21

Slide 21 text

[ CWE-352 ] クロスサイト・リクエスト・フォージェリ 21 概要 ログインした利用者の意図したリクエストであるかの確認ができていないと発生す る脆弱性 想定される影響 アカウントの不正利用やアカウント内情報の改ざんなど 今回はパスワードが変更できるためリスク 高

Slide 22

Slide 22 text

攻撃の実例(初回診断時) 22 罠サイト http://attacker.example セッションID発行 通常ログイン ログインした状態で 罠サイトを閲覧 意図しない リクエストの送信 プロフィール情報 変更処理 利用者 MBSD塾 http://mbsd.juku

Slide 23

Slide 23 text

以下の 3 か所を リスクレベル 高・攻撃難易度 普 の CSRF 脆弱性として報告 23 初回診断時の報告 ※ #2 とは、そのページを開いた時に自動送信される 2 つ目のリクエストを指します。 画面名 対象権限 ユーザ管理 > プラスマーク > 追加する#2 admin ユーザ管理 > ペンマーク > 更新する admin プロファイル > ペンマーク > 更新 student parent teacher 詳しくは脆弱性診断結果報告書をご参照ください。

Slide 24

Slide 24 text

再診断結果: CSRF の修正は不十分 指摘した 3 箇所のうち、正しく修正できていたのは 1 箇所のみ SameSite=Strict が明確に指定されたことにより攻撃難易度は やや難化 より限定された攻撃シナリオにはなるが、依然として脆弱性は残ったままである 24 画面名 対象権限 再診断評価 ユーザ管理 > プラスマーク > 追加する#2 admin OK ユーザ管理 > ペンマーク > 更新する admin NG プロファイル > ペンマーク > 更新 student parent teacher NG

Slide 25

Slide 25 text

CSRF の対策に今回行われた修正 25 機能 (画面名) 対象権限 3 番 修正評価 23 番 修正評価 再診断評価 期限編集機能 (ユーザ管理 > プラスマーク > 追加する#2) admin 〇 〇 OK ユーザ情報編集機能 (ユーザ管理 > ペンマーク > 更新する) admin × (不十分) 〇 NG プロフィール情報更新機能 (プロファイル > ペンマーク > 更新) student parent teacher × (非対応) 〇 NG (悪用可能) 3. 管理者権限のユーザ情報編集機能と期限編集機能で、
 CSRFトークンが検証されていなかった 23. セッションcookieにHttpOnly属性とSameSite属性が付与されていなかった
 fixed.html

Slide 26

Slide 26 text

[RFC 6265bis] SameSite 属性を Strict にする効果 今回の修正によって Cookie の SameSite 属性 に Strict が設定された 26 If the "SameSite" attribute's value is "Strict", the cookie will only be sent along with "same-site" requests RFC 6265bis-11(draft) ※ RFC 6265bis は Draft ですが、Chrome, Edge, Firefox, Safari などの主要ブラウザには実装済みのセキュリティ機構です。 SameSite cookies - HTTP | MDN より RFC 6265bis によれば、Same-Site の リクエストのみに Cookie が付与される

Slide 27

Slide 27 text

Samesite 属性を Strict にする効果 27 罠サイト http://attacker.example セッションID発行 通常ログイン ログインした状態で 罠サイトを閲覧 利用者 MBSD塾 http://mbsd.juku セキュアにすな リクエストに Cookie が付与されない

Slide 28

Slide 28 text

確かに Cross-Site の攻撃ができない

Slide 29

Slide 29 text

では Samesite 属性 に制限 されないリクエストなら?

Slide 30

Slide 30 text

SameSite 属性に制限されないリクエスト SameSite 属性は Cross-Site のリクエストに Cookie を付与するかを決めるもの → 当然ながら、Same-Site からの リクエストに制限は無い “SameSite 属性に制限されない変更リクエストを被害者から送らせる方法” があれば、攻撃シナリオが組み立てられそう → Same-Site から POST リクエストを強制する手段は無いが・・・ 30

Slide 31

Slide 31 text

プロフィール情報更新のリクエストは POST の制限がない 「プロフィール情報更新」は GET リクエストでも更新可能である “SameSite 属性に制限されない GET リクエストを被害者から送らせる方法” 案 ● サイト内からのリダイレクト → ログインページのリダイレクト機能を応用して攻撃は可能 ただし、罠のログイン URL を共有する必要がある ● URLの直打ち → 被害者自身に URL を直打ちしてもらうシナリオは非現実的… 31

Slide 32

Slide 32 text

MBSD塾で利用する 共用PC

Slide 33

Slide 33 text

MBSD塾は、通い形式の学習塾です(オンライン学習ではありません)。 生徒さんには塾に来てもらい、塾内で本システムを活用して学習を進めて いただきます。 複数人が交代で操作する共用 PC からサービスへアクセスすることが考えられる 罠のブックマークを被害者がクリックしてしまう可能性があるなら “SameSite 属性に制限されない GET リクエストを被害者から送らせる方法” が現実的なシナリオになる MBSD塾で利用する共用PC 33 help/common.html

Slide 34

Slide 34 text

ブックマークをトリガーにした攻撃シナリオ 34 塾内共用PC プロフィール情報を変更するパラメータ 利用者 ブックマークから アクセス プロフィール変更!! P@ssw0rd!

Slide 35

Slide 35 text

SameSite 属性によって CSRF 対策がされているように見えるが、 以下の 2 点を踏まえたうえで、攻撃が可能であることを示す ● CSRF トークンの検証が未実装 ● 本来は POST で実装するべき機能だが、GET でも正常動作してしまう デモ 35 機能 (画面名) 対象権限 3 番 修正評価 23 番 修正評価 再診断評価 プロフィール情報更新機能 (プロファイル > ペンマーク > 更新) student parent teacher × (非対応) 〇 NG (悪用可能)

Slide 36

Slide 36 text

36

Slide 37

Slide 37 text

● Cookie の SameSite 属性を Strict にするだけでは攻撃を防ぐことができない ● CSRF トークンの検証を正しく実装すれば脆弱性を根本的に無くすことができる 根本的な対策が必要 37 機能 (画面名) 対象権限 3 番 CSRFトークンの検証 診断評価 期限編集機能 (ユーザ管理 > プラスマーク > 追加する#2) admin 対応 OK ユーザ情報編集機能 (ユーザ管理 > ペンマーク > 更新する) admin 対応 OK プロフィール情報更新機能 (プロファイル > ペンマーク > 更新) student parent teacher 対応 OK

Slide 38

Slide 38 text

よりセキュアなサービスを提供するために CSRF に限らず脆弱性の対策には根本的な対策が必要になります。 今回指摘した各脆弱性の詳細な解説は再診断報告書に記載してあります。 再診断報告書を参考に修正していただければ再々診断の実施が可能です。 是非ご検討ください。 IPFactory は脆弱性診断から 1 年以上経過した Web サイトに定期診断を推奨しており ます。見積等の工程を省けることからお安くご提供することが可能です。 今後ともよろしくお願いいたします。 38

Slide 39

Slide 39 text

Appendix 39

Slide 40

Slide 40 text

使用したイラスト ● いらすとや ● Insert icons for Slides 👌 - Google Workspace Marketplace 40

Slide 41

Slide 41 text

参考資料 ● RFC 6265bis: Cookies: HTTP State Management Mechanism ● SameSite cookies - HTTP | MDN ● RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content 41