adtech studio

アジャイル診断と自動脆弱性診断ツールの活用(OWASP ZAP編)

hajime By hajime

Linux OSS セキュリティ 検証

はじめに

こんにちは、アドテクスタジオでセキュリティエンジニアをしている岡崎です。

前回は、「Google ChromeにおけるSymantec系サーバ証明書の扱いについて」書かせていただきました。
今回は、「アジャイル診断と自動脆弱性診断ツールの活用(OWASP ZAP編)」について、紹介させていただきます。

近年、東京オリンピックも近いことから日本のシステムは多くのサイバー攻撃を受けてます。このようなサイバー攻撃からアドテクスタジオのシステムを守る手段として、以前から脆弱性診断を取り入れてます。最近では脆弱性診断も内部に脆弱性診断チームを持ち、内製化をしました。その為、さらに脆弱性診断が受診しやすくなりました。
とはいえ、脆弱性診断を行う際は、プロダクト(開発側)に以下のようなヒアリングや診断中の対応に貴重な時間を割いてもらわなければなりません。

 

[ヒアリング例]
・脆弱性診断対象があるデータセンターはどちらになるでしょうか。
・脆弱性診断対象のURLやアカウント情報ををください。
・脆弱性診断チームから脆弱性診断対象への接続元IPを許可してください。
・AWSアカウントの場合は、AWSへの侵入テスト申請をお願いします。
・診断日はX月X日からX日間でよろしいでしょうか。
・加えて、診断当日の機能やエラーに対するお問い合わせ
など

セキュリティチームが中心となりヒアリングや調整を行なってますが、もっとスムーズに手軽に脆弱性診断を受けてもらえる仕組みがないか、考え自動脆弱性スキャンツールの導入を検討しました。

脆弱性診断は、新規システム構築時(リニューアル含む)と年に1回の定期診断を最低限としていますが、セキュリティチームとしては、小さな細々とした機能修正や機能追加時に対しても都度行いたいものです・・・
また、アドテクスタジオでは多くのプロダクト(サービス・システム)が存在します。各々の機能修正や機能追加の度に脆弱性診断の調整をしているとあっというまに1年が終わってしまいます。

このような問題を解決するためにも自動脆弱性診断ツールを活用できないか、と思いました。

 

自動脆弱性診断ツールの導入

脆弱性診断を都度行ってしまうと、プロダクト側の貴重な開発時間を奪ってしまうため、開発スピードを鈍化させる恐れがあります。
アドテクスタジオのセキュリティチームでは、「セキュリティ強化することによる開発や売上の鈍化」に関して敏感であります。
そのため、第三による脆弱性診断は適度な回数にし、その間のフォローとして「自動脆弱性診断ツール」を活用することにしました。

 

アジャイル診断

日々の開発フローの中にテストの一環として、自動脆弱性診断ツールを活用する試みになります。

 

このように開発フローに組み込むことにより、

日々行われる修正や機能追加は自動脆弱性診断ツールを活用し、ある程度まとまった段階で第三者による脆弱性診断を受けるようにすることで、開発側の脆弱性診断対応コストをなるべく減らし、セキュリティ強化することが可能です。

 

脆弱性自動診断ツールと脆弱性診断の差

脆弱性自動診断ツールでは、もちろん発見可能な脆弱性は限りがあります。

[脆弱性自動診断ツールで発見可能な脆弱性]

可能:
・OSコマンドインジェクション
・SQLインジェクション
・クロスサイトスクリプティング(XSS)
・クロスサイトリクエストフォージェリ(CSRF)
・バージョン情報の漏洩
・HTTPヘッダー系の不備
など

 

困難:
・不適切な認証及びパスワードリセット機能
・セッション管理周り
・アクセスコントロールの不備
・エラー処理の不備
・アプリケーションロジックの不備
・その他、不正行為
など

このような違いを考慮して、利用していきます。

 

続いては、どのような仕組みになっているかを説明します。

 

OWASP ZAPの活用

今回、脆弱性診断ツールとしては、OWASP ZAPを利用しました。OWASP ZAPでスキャンした結果をKibanaを利用し、出力しています。

*OWASP ZAPとはOWASPが提供しているOSSになります。
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

 

OWASP ZAPとKibanaの連携図

 

今回は、shellで活用したいため、LinuxにOWASP ZAPをインストールする手順を紹介します。

 

インストール手順

これでインストールは完了です。

 

次に対象へのスキャンです。
*今回は認証を必要としないスキャンの例です。

参考: https://github.com/zaproxy/zaproxy/wiki/ApiGen_Full

 

OWSP ZAPはそのままhtmlでも結果を出力することができます。

 

Kibanaでの表示

 

おわりに

「アジャイル診断と自動脆弱性診断ツールの活用(OWASP ZAP編)」について、まとめさせていただきました。

アドテクスタジオでは、簡潔にセキュリティ強化できるものを求められてます。

今後もエンジニアが開発しやすく かつ セキュリティが向上しやすい 環境作りに努めて行きます。

*脆弱性スキャンは許可なく行うと、攻撃とみなされるので注意しましょう。