ローカルプロキシツールとは? 〜セキュリティ診断について理解を深めるその3〜
Webセキュリティを担う診断員の必須ツールともいえる「ローカルプロキシツール」。なぜ必須なのか、実はあまりピンときていないブログ担当もちゃじです。
この記事では、「ローカルプロキシツール」ってどんなことができて、実際に診断員はどんな機能を使っているのか勉強していきます。お付き合いいただけるとうれしいです。
セキュリティ診断について理解を深めるシリーズは、こちらからご覧いただけます。
- その1 ブラックボックス診断とは?
- その2 セキュリティ診断の診断項目、その多さの理由に迫る
- その3 ローカルプロキシツールとは? ←本記事
- その4 ツールによる診断とは?
- その5 手作業による診断とは?
- その6 報告書とは?
- その7 セキュリティ診断員ってこんな仕事
ローカルプロキシツールって?
ここのところ、セキュリティ用語にも慣れてきました。 「ローカル」で使う「プロキシ」の「ツール」ってことですよね? ローカルプロキシツールって。
「プロキシ」が重要なことが想像できます。では、まずは「プロキシ」から理解しようじゃないか。
プロキシとは
「プロキシ(Proxy)」とは、ネットワーク上で通信する時の中継役のこと。通信を代理で中継する機能のことを指します。本来の意味は 「プロキシ=代理」なのが、IT界隈で「代理で通信を行う」ことに転じたとかなんとか。
プロキシの機能を提供しているサーバーを「プロキシサーバー」といいます。ただ、一般的に「プロキシ」というと、この「プロキシサーバー」を指すことが多いです(もちゃじはここで大混乱)。
もちゃじが最初「プロキシ」と「プロキシサーバー」を混同していましたが、細かくいえば「プロキシ」は通信を中継する機能のことであって、本来プロキシサーバーのことではありません。ややこしや。
ローカルプロキシ
次に、「ローカルプロキシ」。
代理中継役の「プロキシ」を自分のパソコンの中に立て、インターネットに接続する前に通信を中継します。そうすると、もちゃじのパソコンからの通信を、全部「ローカルプロキシ」に通せるようになります。
ローカルプロキシツール
「ローカルプロキシツール」は、個々のパソコンにインストールし「ローカルプロキシ」を設定したり操作したりするためのアプリケーションのこと。 有名なところでは、Burp SuiteやOWASP ZAP、Fiddlerなどがあります。
ローカルプロキシツールをセキュリティ診断に使用する目的
Webセキュリティ診断にローカルプロキシツールを使用する目的は主に2つ。
- Webブラウザで意図したリクエストがその通りに送られているかのチェック
- 応答が返ってきた時にレスポンスが意図した通りかのチェック
ふむ。
こちらの意図した通りに動いているかのチェックということですね。要求(リクエスト)も応答(レスポンス)も。 そのチェックをすることで、Webアプリケーションの脆弱性を特定して、修正できるということか!
ローカルプロキシツールの役割
目的は分かった。では、Webセキュリティにおいて、ローカルプロキシツールはどういった役割があるのでしょうか。 ざっくりと3つに絞ってみました。 順番に見ていきましょう。
通信内容の監視
攻撃者による不正なアクセスや攻撃を早期に検出する役割。 ローカルプロキシツールは、WebブラウザとWebサーバーの間に置かれる、ネットワークの中継役でしたね。どんな通信も中継役を通る。全通信の情報を持っているともいえます。これは監視役にもってこいだぜ。
ってことで、Webサイトへのアクセス時に送信される情報を監視するんです。 ということは、このようなことも確認できるんです。
- Webサイトへのアクセス時に送信される情報が暗号化されているかどうか
- 攻撃者がデータを傍受できる可能性があるかどうか
そして、監視するだけじゃなくて、解析もできちゃう有能さ。 プロキシの中にリクエストとレスポンスが保存されているから、Webアプリの通信を全て解析できるんです。
脆弱性の検査
Webアプリケーションの動作を検査する役割。悪意のあるコードや、脆弱性があるWebページ、攻撃のパターンやテクニックを検出することができます。
例えば、
- 特定のHTTPヘッダー送信→Webアプリの応答を観察
- リクエストやレスポンスのボディを操作
これにより、Webアプリケーションが潜在的な脆弱性を持っているかどうかを判断できるとのこと。ほおお。
悪い人の視点でWebアプリケーションを操作して、悪い人が使用する可能性がある攻撃を再現して、Webアプリケーションに脆弱性があるかどうかを検査する「疑似攻撃」が含まれることもあるようです。
機能の検証
Webアプリケーションが想定通り動作しているか検証する役割。
具体的には、
- セキュリティトークンが正しく実装されているか
- アクセス制御が正しく設定されているか
- 暗号化が適切に実装されているか
など。(実はこのあたり、もちゃじはまだよく分かっていないところなので、これだけにとどめ、次にいきます)
診断員が使うローカルプロキシツールの機能ランキング
なんだかできることがたくさんあるローカルプロキシツール、実際に診断している診断員たちはどんな機能を使っているんだろう? 気になったもちゃじは先輩方に突撃しました!
当社が提供するWebセキュリティ診断「ABURIDA」の診断員たちに聞いた、実際に使っている機能をランキング形式でご紹介します。
ちなみに、当社ではBurp Suiteを使用しています。
第1位/インターセプト
インターセプトは、リクエスト/レスポンスを一時停止して、内容を改ざんできる機能。 通信内容を途中で取り出して内容をのぞいたり変更したり。 悪い人に使われたくないですね。
なかなかイメージがつかない人は、ローカルプロキシツールを使って疑似攻撃をした動画があるので、こちらの記事をご覧ください。
第2位/リピーター
リピーターは、通信ログから特定のリクエストを、同じ操作を行わずに再送できる機能。 同じ操作を行わず? と思った方(もちゃじです)……
例えば、
xxx画面を開いて、yyy操作をして、zzzボタンを押した時のリクエスト
→zzzボタンを押した時のリクエストだけ送信したい
こういうことができます。
第3位/コンペア
コンペアは、通信ログのあれとこれを比較し、差異のある箇所をハイライト表示する機能。 例えば、もちゃじがログインした時と、別の人がログインした時のレスポンスを比較できます。
どちらも同じレスポンスのはずなのに違う場合、どういった差異があるのかを比較します。差異のある場所はハイライト表示されるので、そのハイライトを見てどう診断するかっていうのが、診断員の腕の見せ所なんだなと理解しました。
第4位/イントルーダー
特定の操作を繰り返し行う機能。 リストを書いて実行すると、こちらが指定した攻撃をたくさん試してくれます。
例えば、イントルーダーの設定で「情報漏えいになりそうなファイルたち」のリストがあったとしたら、それを1から全部試してくれて、アクセスがあったかなかったかを確認してくれます。
もちゃじが自分のブログにこっそり隠していたファイルも暴かれちゃいます。
第5位/シーケンサー
繰り返し同じ通信を送る機能。 100件以上の通信を行い、そのレスポンス状況をチェックしてくれます。
例えば、サイトのログイン画面を開いて「CookieがセットされるところのCookieの値は毎回違うかどうか」を知りたいとします。
そしたら、100回リクエストを投げて、100個のレスポンスを検証してくれるんです。ユーザーが指定した箇所のランダム性をチェックしてくれるということ。
レスポンスを蓄積して、統計をとって検証してくれる、コツコツ実直なやつなんです。
まとめ
ローカルプロキシツールは、個々のパソコンにインストールして、ローカルプロキシ機能を使えるようにするアプリケーションで、クライアントとWebサーバーの間に置かれる通信の代理中継役です。通信の監視や解析、Webアプリケーションの動作の検査・検証ができることが分かりました。
たくさんの機能があり、Webセキュリティの診断員たちにとっても診断に必須となっているローカルプロキシツール。特にインターセプトは、全診断員が使用しているといっても良いような気がします。(もちゃじ調べ)
ただしその使用には、プライバシーやセキュリティの問題が伴うため、慎重に使用する必要があることも忘れてはなりません。
ふう、書き終えた
ローカルプロキシツールのことを考えれば考えるほど、もちゃじの頭の中には騎士とか家令のイメージが湧き上がり楽しくなったものの、きっと共感は得られまいとも思ったのでした。
ライター/もちゃじ
IT業界に縁なく秘書畑をさすらい、前職はインドで社長秘書。ほぼ日本語とパッションのみで乗り切ったずうずうしさはスキルの一つか。完全なインドア派ながらたまにふらりと旅に出る。行き場のない母性を持て余し、友人の犬を溺愛するもほえられる。体が硬く、インドでヨガティーチャーに笑われたことに深く傷つく一面も。
ITド素人の私がWebセキュリティについて学び、レベルアップしていく(予定です)様子をお届けします。学びを発信することで、少しでもWebセキュリティに関する「難しそう」というイメージが下がり、苦手意識のある方たちに届いたらうれしいです。