「脆弱性診断ええんやで」を聴講してきた
かの有名なEGセキュアソリューションズの松本さん
OWASP Japanプロモーションチームとしても活動されているとか。
OWASP Japanってもう○年目らしい。そんな長いの。。。
講義の内容
今回のテーマは脆弱性診断の仕組み 何故「思ってたのと違う」見積額が提示されるのかです。
ということでした。
私自身も普段、Webアプリケーション診断の見積もりを作成することがあるのですが、他の診断会社さんはどのような方式を用いているのだろう..?
気になったので参加してきました。
使用したツール
OWASP ZAP:
・世界中のセキュリティエンジニアに使用されているプロキシ
・ZAP Zed Attack Proxy
注意事項
ここからはOWASP ZAPを起動する場合の注意事項です。
OWASP ZAPはプロテクトモードで動かす。
なぜなら、管理外のサイトへの診断を実行する危険性が高い。
診断に使用するツールということは攻撃も可能なわけで...
ZAPは優秀なのでWebアプリケーションに使われているサードパーティAPIなんかも自動診断でフォローしてくれるんですね。
けれどこれは管理外のドメインに攻撃する危険性も孕んでいるのでしっかりと設定してから行うべし。
OWASPの設定 ツール > オプション > ローカルプロキシ
何故「思ってたのと違う」見積額が提示されるのか
見積額が想定外になる原因
対象画面数を基準に考察
発注者⇆受注者で対象画面の箇所が異なる
サイト調査とは
・クローリング(手動)
・診断対象選定
クローリングには補助的にツールを使うこともあるそう。
これも業務で思いますけど見積もりが自動化できたら最高ですよね。
もう取り入れてる診断会社さんとかあるのかな...?
診断すべき画面
パラメータを伴うリクエストにより動的に生成された画面 パラメータを措定して動的に生成
パラメータの例: 1. 検索文字列 2. ログイン時のIDとパスワード 3. 商品購入時の商品ID 4. セッションID, CSRF対策TOKEN....などなど
OWASP bricks https://sechow.com/bricks/index.html
クエリ文字列の例:
a. http://example.com/index.php?page=info.php&user=test&pswd=test
b. http://example.com/index.php?next=info.php&user=test&pswd=test
パラメータ名が同一なら値が異なっても同一のページとしてカウントする。(例外もある)
Cookieヘッダ
- ログイン処理が存在する。 一般に、Cookieにセッション情報を管理するための文字列が含まれるため診断対象となる。
- ログイン処理が存在しない。 Cookieが発行されていても、アプリケーションの内部で考慮しない、利用されない場合は診断対象外となる場合もある。
User-Agentヘッダ
UAを識別してレイアウト、メニュー構成を変化させる場合は診断対象外となる。 1. PC 2. スマホ 3. フィーチャーフォン(ガラケー)
POSTメソッド
- ボディ部分にパラメータを格納していることが多い
URLの一部がパラメータ
- 例1
http://example.com/user/123456/detail/
「123456」がユーザID - 例2
http://example.com/user/123456/detail/
http://example.com/user/123456/edit/
この二者は別々RailsなどのフレームワークやAPIが普及した背景もありURLの構造でルーティングするケースは増えた。
非同期通信
Ajaxなどで非同期に接続...JSONなどを取得するパターン
・自動入力フォーム(郵便番号を検索する)
・サジェスト機能など
ただし、完全な外部APIなどは管理外のためカウントしない
例外として
js,cssなどの静的コンテンツについている_v=12345のようなキャッシュ防止パラメータは診断対象としない。(動的な画面生成をしないため)
総括
やはり他の診断会社さんも同様の手法を用いて見積もりを作成しているのだなと安心した。 私は普段Burp Suiteに見積もり用の拡張機能を用いて手動でせっせと見積もりを行なっているけど、それでも見積もりの工数って馬鹿にならないといつも感じていた。。。
見積もりって気を遣ったり、工数がかかったりで大変なので診断を依頼する会社の担当者の目にこの記事が止まってくれれば良いと思う。。。。
所感
それとは別にもう一つ得た物があった。
講師の方とお話をするべく、講義が終わった後の懇親会にも参加した。
このIT業界で働いている方と話をすると皆さん共通の悩みを抱えていたりする。そんな中でもストレスとのうまい付き合い方(逃げ方)や、自分のロードマップ の考え方などをセキュリティエンジニアの大先輩の考えを聞けたのはかなり得をしたと思う。
せっかく勉強会に参加しても忘れてしまっては意味がないので久々に文字に起こしてみた。
次回はOWASPのLT会にも積極的に参加してみたいと思う。