0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】Red Team におけるブラウザ自動化の価値

0
Posted at

はじめに

― なぜ今、Browser Automation が攻撃者の武器になるのか

Red Team やペネトレーションテストにおいて、
これまで主戦場だったのは Intercepting Proxy(Burp Suite、ZAP など)でした。

  • リクエストを書き換える
  • パラメータを改ざんする
  • 暗号化ロジックをリバースする

しかし、近年の Web アプリケーションはこうした手法を前提で潰しに来ています

  • クライアントサイド暗号化
  • 難読化された JavaScript
  • 動的に生成されるトークン
  • 複雑な UI フロー
  • Bot / Automation 対策

ここで登場するのが ブラウザ自動化(Browser Automation) です。


従来手法の限界:

「アプリケーションと戦う」アプローチ

Intercepting Proxy を使う場合、我々は次のことを行います。

  • JavaScript を解析する
  • 暗号化処理を理解する
  • 同じ処理を自前で再実装する

これは言い換えると、

「フロントエンドアプリケーションと正面衝突する」

という戦い方です。

もちろん可能ではありますが、

  • 時間がかかる
  • 修正に弱い
  • 実装ミスが出やすい

という致命的な弱点があります。


ブラウザ自動化の発想転換

「壊す」から「使う」へ

ブラウザ自動化は、発想が真逆です。

アプリのロジックを解析しない。
そのまま実行させる。

  • JavaScript → ブラウザが実行
  • 暗号化 → ブラウザが実行
  • DOM 操作 → ブラウザが実行

Red Teamer はただ:

  • 入力する
  • クリックする
  • 表示された結果を取得する

これだけです。


なぜ Red Team にとって強力なのか

① クライアントサイド暗号化を「無視」できる

たとえば:

  • パスワードが JavaScript で AES 暗号化される
  • トークンが難読化された関数で生成される

Intercepting Proxy では:

  • JS を解析
  • ロジックを再実装

ブラウザ自動化では:

  • フォームに入力
  • ボタンを押す
  • 暗号化後の値を取得

暗号を壊していない。
暗号を“使わせている”。

これは非常に重要な違いです。


② CAPTCHA やクライアント制御の回避

ブラウザ自動化は 「実際のユーザ操作」 を再現します。

  • マウス操作
  • キーボード入力
  • DOM イベント
  • 実ブラウザ環境

そのため:

  • 単純な bot 判定
  • クライアント側バリデーション
  • 一部の CAPTCHA フロー

が無力化されるケースがあります。

特に 既存のブラウザコンテキストを再利用 できる場合:

「信頼済みブラウザ」として扱われる

ことすらあります。


③ マルチステップ攻撃が自然に書ける

現代の攻撃は一発では終わりません。

  • ログイン
  • 画面遷移
  • 設定変更
  • 特定 UI 操作
  • トークン取得

これを HTTP レベルで再現するのは地獄です。

ブラウザ自動化なら:

click → wait → input → submit → extract

人間の操作をそのままコード化できます。


④ 動的・描画後データへの直接アクセス

重要なデータは「通信」ではなく「描画後」に現れることがあります。

  • JavaScript 実行後に生成されるトークン
  • DOM に一瞬だけ現れる値
  • lazy load されたデータ

ブラウザ自動化は:

  • DOM を直接読む
  • JavaScript コンテキストを持つ
  • 実行後の状態を取得できる

つまり、

画面に一度でも表示されたものは、全て奪える

という世界です。


ブラウザ自動化ツール比較(Red Team 視点)

ツール 特徴 注意点
Playwright 高速・モダン・ステルス性能高 学習コストやや高
Selenium 枯れている・情報量豊富 やや遅い
Puppeteer JS ネイティブ・Chrome 最適 Chrome 中心
Pyppeteer Python から操作可能 近年 deprecated
Power Automate 人間操作に近い 精度・再現性低

おすすめ:Selenium と Playwright

なぜ Selenium と Playwright を使うのか

  • Selenium
    • 学習しやすい
    • 環境を選ばない
    • 情報が多い
  • Playwright
    • 最新 Web との相性が良い
    • 高速
    • Red Team 向きの API が多い

まとめ

Intercepting Proxy が
「通信を支配する武器」 だとすれば、

ブラウザ自動化は
「ユーザになりきる武器」 です。

現代の Web アプリケーションにおいて:

  • ロジックはクライアントにある
  • セキュリティ判断もブラウザにある

だからこそ、

Browser Automation は Red Team の必須スキル

になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?