VAddyを使用して脆弱性診断を実施した話
こんにちは。エンジニアの@daikichiです。 今回は、弊社サービスにセルフ脆弱性診断ツールVAddyを導入した時の話をしたいと思います。
脆弱性診断の診断方法
大きく2パターンあります。
- ツール診断
- メリット: ⾃動で効率的に膨⼤なパターンをチェックできる
- デメリット: 複雑なシステムで検知率が上げづらい
- ⼿動診断
- メリット: セキュリティの専⾨家が実施し、ツールでは⾒つけ づらい脆弱性に対象可能
- デメリット:専⾨的な知識が必要となるため、価格が⾼く時間 がかかりやすい
導入予定のサービスでは今後の開発を見込んで、継続的に診断できる方法を検討していました。 その中でも、現在の環境でもっとも効率が良いと感じたのがツール診断にあたるVAddyでした。
VAddyとは
クラウド型Webアプリケーション脆弱性診断ツールでサーバのOS、ミドルウェア、開発言語に関わらず検査可能です。 ツール診断を主としていますが、手動診断にも対応しています。
VAddyを選んだ理由
- セキュリティに精通していないエンジニアを対象としている為操作が容易
- クローリングからスキャン、結果確認まで全て管理画面で実施可能
- 検査項目は必要最低限
- 脆弱性実施までのフローがシンプル
- API連携可能(CI連携可能)
- サポートのレスポンスが速い
特に驚いたのがサポートのレスポンスの速さです。もちろんその時の状況にもよると思いますが、私が何を聞いても営業担当、エンジニア担当の方からの迅速、的確なレスポンスで安心でした。 これは他ツールで検証した中でも断トツで、長く利用する事を前提に考えていたので大変心強かったです。
診断項目
検査項目はプランによりますが、最大9つの検査項目が用意されています。 導入サービスでは初めて脆弱性診断を実施するという事もあり、初月一番上のEnterpriseプランを契約する事にしました。 9つでは少なく感じるかもしれませんが、これでも現実の攻撃の約90%(※クラウド型WAF「Scutum」の観測から算出)をカバーしているとの事です。
「()」内はどのOWASP TOP 10 に対応しているかを記載
- [Enterprise][Professional][Strater] SQLインジェクション(A1 インジェクション)
- [Enterprise][Professional][Starter] クロスサイトスクリプティング (A1 インジェクション)
- [Enterprise][Professional] リモートファイルインクルージョン(A1 インジェクション)
- [Enterprise][Professional] コマンドインジェクション (A1 インジェクション)
- [Enterprise][Professional] ディレクトリトラバーサル (A3 機微な情報の露出)
- [Enterprise][Professional] ブラインドSQLインジェクション (A1 インジェクション)
- [Enterprise] 安全でないデシリアイゼーション (A8. 安全でないデシリアライゼーション)
- [Enterprise] XML外部実体攻撃 (A4 XML外部エンティティ参照)
- [Enterprise] HTTPヘッダインジェクション (A1.インジェクション)
脆弱性診断実施のステップ
基本的な使い方だと4ステップで簡単に脆弱性診断ができます。 スタートアップガイドに沿ってやれば問題なく実行できました。
- 【STEP 1】プロジェクトの作成
- 【STEP 2】クロール(シナリオ作成)の設定と実行
- 【STEP 3】スキャンの実行
- 【STEP 4】レポート確認
クロール時のTips
- クロールするブラウザはFireFoxがよい
- → VAddyプロキシを通す必要があるので、設定が必要になりますが、Google Chorome、Edgeはブラウザだけで設定できなくて、OSのネットワーク設定でやらないとできない
- 外部サイトからライブラリを読み込んでいるアプリケーションはプロキシの除外設定が必要
実施所感
初期設定から1時間もかからずに診断の実施ができました。レポートの画面はシンプルで見やすいです。リクエスト、レスポンスの検査データ情報が確認できるので、あとはコードと照らし合わせて実際に脆弱性の問題があるかの確認をする流れです。
本来ならクロール(シナリオ作成)まで自動化できればよいのですが、それはまた別の機会に。
まとめ
- VAddyはセキュリティに精通していない開発エンジニアでも使えるようにシンプルに設計されていて、良い
- セルフVAddyの利用で100%安心というわけではなく、規模、フェーズによっては手動診断を実施するのがよい