Open5

『徳丸さんが指南 Webアプリケーション開発に潜むリスクのケーススタディ』に参加してみた🌟

まさぴょんまさぴょん

徳丸さんが指南 Webアプリケーション開発に潜むリスクのケーススタディ

✍️概要

不正アクセスや情報漏洩をはじめとしたセキュリティインシデントが増加し続けており、それらを防ぐために、企業だけではなく一開発者としてもセキュリティの知識が求められています。昨今では、開発の中でもDevSecOpsなど、SaaSやサードパーティ製品利用における脆弱性をつくケースも増えています。
本イベントでは、徳丸 浩(@ockeghem)さんをお招きし、多様化するサイバー攻撃の対策や抑止のために必要な知識について、お話しいただく予定です。

🧑‍💻こんな方におすすめ

Webセキュリティをはじめセキュリティにご興味がある方
現在実務でセキュリティ周りの実装に携わっているエンジニアの方

☑️イベントのゴール

Webセキュリティの最新情報を知れた
イベントから自身の開発現場に活かせる考え方を学べた

参考・引用

https://findy.connpass.com/event/310778/

https://amzn.to/49Em8Yh

https://blog.tokumaru.org/2023/04/clickjacking-condition.html

https://blog.tokumaru.org/2013/09/cookie-manipulation-is-possible-even-on-ssl.html

まさぴょんまさぴょん

Webアプリケーション開発に潜むリスクのケーススタディ🌟

  • 徳丸さん、すごい(語彙力)🌟
  • Webセキュリティといえば、徳丸さん
  • 徳丸本は有名🌟
  • Youtubeもやっていた!!

本日のアジェンダ

Cookieをめぐる状況

  • CookieのSameSite属性について
    • None:従来のデフォルト

    • Lax:Chromeの現在のデフォルト
      • GETのみCookieを送信
      • 例えば、GETリクエストはOKなので、Cookieを使って、そのままLoginはできる
    • Strict:GET も POSTも送らない
      • Cookieは、いっさい送信しない

サードパーティ・Cookieについて

  • Cookieを使った、トラッキングができた歴史
  • プライバシーのための施策だが、セキュリティ上は、好ましい🌟

Google Chromeの場合

Firefoxの場合

CORS(コルス)

  • Allow-Originが必要

CSRF攻撃について

  • 単純リクエスト / プリフライトリクエスト
  • 歴史的経緯で、プリフライトリクエストが必要になった。。。

  • 許可していないアクセスは、プリフライトリクエストで取り消す

Cookieを伴うXHR

フレームワークで、CORS設定

  • みんな大好きExpress.js の脆弱性
  • ガバガバ設定
  • 全部OKなガバガバ設定

サードパーティー・Cookieの脆弱性の実演

CSRF攻撃

プリフライトリクエストが必要かどうか?

  • CORS設定の脆弱性があれば大丈夫!攻撃できます🌟

  • Optionsリクエスト: プリフライトリクエスト

  • Putリクエスト

メソッド・オーバーライドによる攻撃

  • Formの送信メソッドを書き換える攻撃手法
  • トータル・Cookieプロテクションでも防御できなかった。。。
  • SameSite属性のLaxの出番🌟

SameSite属性のLaxや、Strictなら、OK?

  • 抜け穴もある
  • 偽のアクセスポイントによる中間車攻撃
    • 例えば、フリーWifiに見せかけた

CSRFの対策

  • Cookieを使っていない場合は、CSRF対策は不要です。
  • Cookieを使う場合は、CSRF対策をしましょう。

JavaScriptは、バイパスできる🌟

  • XSS攻撃

XSS(クロスサイト・スプリクティング)

  • 改行交じりのテキストを表示する際に、正規表現で、改行を
    タグに変換して、
  • これは、脆弱性🔥
  • XSSは、SameSite, 同じOriginからの通信なので、XSS用の独自対応を実施する必要があります。

今回の場合の解決策: JSXを使って、改行表示しよう

まとめ🌟

  • 対策がすべて不要になることはない

まさぴょんまさぴょん

Q & Aコーナー

トークンによる対策の具体的な方法について

Q. 「セッション管理している限りはトークンによる対策をしよう」とのことですが、トークンによる対策とは具体的にどんな方法があるのでしょうか?概要だけでも結構です。

A. Tokenを渡す際に、乱数文字列などを使用する

  • ライブラリを活用する
  • 例えば、Token・セキュリティのためのライブラリがあったりします。

Webアプリケーション診断で今回のような脆弱性が可視化できますでしょうか?

Q. 本日説明頂いた部分は開発エンジニアが理解できていないことも多く、開発時のセキュリティ要件に落とし込むのが結構難しいとも感じています。
Webアプリケーション診断で今回のような脆弱性が可視化できますでしょうか?

A. 診断エンジニアの腕や、ツールのパワー次第になります。。。

  • 可視化してくれる業者もあれば、そこまでしてくれない業者もいる

デモの際に、リクエストをCheckしていたツールは?

Q. デモの際に、リクエストをCheckしていたツールは?

A. Burp Suite というツールを使っている

  • 無料版で、少し使う程度ならいける🌟

セキュリティにのめり込むようになったのは、なぜ?

Q. セキュリティにのめり込むようになったのは、なぜ?

A. ややこしいからこそ、知的好奇心がくすぐられる🔥