Slide 1

Slide 1 text

VAddy導入の案内 松浦 庸介

Slide 2

Slide 2 text

はじめに この資料はhachidori株式会社(https://hachidoriinc.com/)で VAddyを導入するにあたり、 社内説明会資料から社内向けの記述を取り除いたものです フィードバック、指摘など歓迎です

Slide 3

Slide 3 text

脆弱性とはなに? n 簡単に言うと安全性に影響するバグ l URLを書き換えると、他の人のデータが見えてしまう l コメント欄にプログラムを書き込むと、サイトにウィルスを埋め込めてしまうなど n いくつかの類型があり、代表的な類型集がOWASP Top10 l https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project n 自分たちで書いたプログラムだけでなく、Ruby, Gem, OSなどに も脆弱性がある n Gemの脆弱性はSnykで管理している l https://snyk.io/ 3

Slide 4

Slide 4 text

リスクマネジメントという考え方 n リスクアセスメントを行い、リスクごとに4類型に分類 n どんな情報資産があって、それぞれにどんなリスクがあるのか n それぞれのリスクの発生確率と影響度はどの程度か n もちろん脆弱性もリスクに含まれる 4

Slide 5

Slide 5 text

脆弱性とリスクマネジメント 5 n リスクの低減 l 例:脆弱性バグの修正 n リスクの保有 l 例:何もしない n リスクの回避 l 例:サービスをクローズする n リスクの移転 l 例:受託開発業者に開発してもらう n リスクの大きさと発生確率によって選択する l 個人情報が流出して、果たして会社が耐えられるでしょうか? l それはどのくらいの確率で起きうるでしょうか? 図表 https://www.ipa.go.jp/security/manager/protect/pdca/risk.html 情報処理推進機構 情報セキュリティマネジメントとPDCAサイクル より

Slide 6

Slide 6 text

セキュリティ侵害のダメージ n セキュリティ侵害によるダメージは固定ダメージ(ここは私見) l 大きい会社だろうと小さい会社だろうと同じダメージを受ける l 考えてみれば当たり前の話で、事故があったとき小さい会社の方が補償が少ないなんて ことはない l お金がないから、体制がないから対策できないという言い訳は通用しない n マイナーなサービスは攻撃されないという幻想 l 攻撃者は機械的に試行しているので、規模によらない l 目立つところは名指しで狙われるが、小さいところが狙われないわけではない n 重要な情報を扱っていなくても、サーバ上のクレデンシャルを使っ て、暗号資産採掘用インスタンスを起動されるという事例もある 6

Slide 7

Slide 7 text

脆弱性診断はじめます n 攻撃が成功すると l お客様情報の流出 l ページの改ざん l データの破壊 l などされるかもしれない n 現実に起こりうるリスクで、どれも起きると深刻な影響がある n 擬似的な攻撃を行って欠陥を探す l これが脆弱性診断 n 診断のためにVAddyというツールを導入します 7

Slide 8

Slide 8 text

VAddyとはなに? n Webアプリケーションの脆弱性診断ツール n https://vaddy.net/ja/ n 以下の脆弱性に対応(詳細は省略。気になる人は調べてください) l SQLインジェクション l クロスサイトスクリプティング(XSS) l リモートファイルインクルージョン l コマンドインジェクション l ディレクトリトラバーサル l ブラインドSQLインジェクション l 安全でないデシリアライゼーション l XML外部実体攻撃(XXE) l HTTPヘッダインジェクション 8

Slide 9

Slide 9 text

VAddyのしくみ n プロキシサーバーを利用して、機能ごとにシナリオを作成 l ログインからログアウトまでがシナリオ1セット l ログイン→ユーザー情報を表示→ログアウト l ログイン→課金ステータスを表示→ログアウト l ・・・ n シナリオを作成したら、シナリオごとにスキャンを実施 l シナリオ数の制限はないので、1機能1シナリオに分けるのがコツ n 自動的にAPIのパラメーターを変更して攻撃を試みる l 例 l http://example.com/search.php?keyword1=foo&keyword2=bar l http://example.com/search.php?keyword1=foovaddy&ke yword2=bar 9

Slide 10

Slide 10 text

VAddyの使い方 n 機能単位でテストシナリオを作成 l 新しい機能を追加したら、シナリオを作ってください l シナリオを作り忘れると検査してくれません l 追加APIは開発した人が作りましょう n シナリオを作成したら、管理画面からテストを実行 n 検査した結果、脆弱性が見つかったら修正してください 10

Slide 11

Slide 11 text

シナリオの作り方 n クロールしかできないプロキシサーバーを使うので、普段用途のブ ラウザとクロール用ブラウザを分けた方がよい n Chrome, Safari, Edgeは他を巻き込むので、Firefoxがおすすめ l Firefoxを通常利用している人は、VAddy用にFirefox Developer Editionを使うと楽 n https://support.vaddy.net/hc/ja/articles/115005935107- -STEP-2- %E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3 %81%AE%E8%A8%AD%E5%AE%9A%E3%81%A8%E5%AE %9F%E8%A1%8C (マニュアル) n スマホアプリの場合は、cURLでAPIリクエストを発行することで テストできる l PCでエミュレーターを使ってもテストできるかもしれない(試してない) 11

Slide 12

Slide 12 text

プロキシ設定 n クローリング用プロキシサーバのIPアドレスとポート番号は管理コ ンソールから確認可能 n 除外サイト:Google FontsなどでテストFQDN以外からアセット を読み込んでいる場合、配信ドメインを指定します。(プロキシ サーバは登録したFQDN以外の接続を拒否するため) 12

Slide 13

Slide 13 text

アクセスの記録 n プロキシサーバーを経由した状態で、開始URLにアクセスすると記 録が開始され、終了URLにアクセスすると記録が終了します l 開始URL、終了URLとも管理画面に記載されている n 証明書エラーになった場合は、下記URLを参考に証明書チェックを 無効化します n https://support.vaddy.net/hc/ja/articles/115009042828- %E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%A8%E3 %83%A9%E3%83%BC%E3%81%AE%E5%9B%9E%E9%81 %BF 13

Slide 14

Slide 14 text

Note:シナリオにはラベルをつけてください 14 n 作成したシナリオはクロール登録状況に表示されます n ラベルに名前をつけないと、何をするテストなのかわからなくなる ので名前をつけてください

Slide 15

Slide 15 text

スキャンの実行 15 n シナリオを作成したら、一覧から‘Start Scan’で検査を開始しま す n テスト項目は、理由がなければ全部選択でOKです n 数分で

Slide 16

Slide 16 text

奥付的なもの 名前: 松浦 庸介 Twitter: 蟒蛇(@uwabami_garden) Profiee: https://profiee.com/i/matsuura Mail: [email protected] PowerPointテンプレート: the power of powerpoint “URANUS” http://thepopp.com/free-template-uranus/