継続的WEBセキュリティテスト VAddyブログ

クラウド型 継続的Webセキュリティテストサービス VAddy のブログです
クラウド型 継続的Webセキュリティテストサービス VAddy のブログです
  • rss
  • archive

新着記事

Loading...
  • CircleCIを使った継続的Webセキュリティテスト環境の構築

    image

    VAddyとCircleCIを組み合わせると、簡単に継続的セキュリティテスト環境が実現できます。
    git pushするとCircleCIのジョブが起動し、テストサーバにコードをデプロイ、そのテストサーバに向けてVAddyからWebの脆弱性検査を実施します。

    今回は、
    git push -> Unit test -> Deploy(Staging) -> VAddy test -> Deploy(Production)
    という流れで解説します。
    Unit testが失敗した場合は後続の処理は行われませんし、VAddy testが失敗した場合も本番にコードがデプロイされません。

    こうして、ユニットテストとWeb脆弱性検査を定期的に実施して問題のないコードのみを本番環境にデプロイできます。

    前提

    VAddyはインターネット経由で検査HTTPリクエストを送るため、外部からアクセスできるテスト用Webサーバが必要です。すでにステージングサーバなどがあれば、それが利用できると思います。

    CircleCIのインスタンスは外部からアクセスできないため、残念ながらCircleCIのみで完結することはできません。これが出来ると便利さが違いますので将来対応します。

    ステップ1

    VAddyに検査対象のサーバを登録し、スキャンが出来るようになりましたらWebAPIのキーを発行します。発行方法はマニュアルを参照ください。

    CircleCIのプロジェクト設定画面で、環境変数にVAddyのAPIキーなどを登録します。

    image

    登録する環境変数は、

    • VADDY_TOKEN
    • VADDY_HOST
    • VADDY_USER

    の3つです。VADDY_HOSTはVAddyに登録した検査対象のFQDNです。VADDY_USERはVAddyのログインIDです。

    ステップ2

    プロジェクト用のcircle.ymlファイルを用意します。gistにサンプルのyamlファイルを置きました。
    https://gist.github.com/ichikaway/2576218f4d05dcda815a

    test:
      override:
        - ./test.sh
    deployment:
      staging:
        branch: master
        commands:
          - ./deploy.sh
          - git clone git@github.com:vaddy/vaddy-api-ruby.git && rvm use 2.1.0 && cd ./vaddy-api-ruby/  && ruby vaddy.rb
          - ./deploy2.sh
    
    test:にてユニットテストを行い、deployment:のstaging:にて、まずdeploy.shでステージングにコードをデプロイし、git cloneでVAddyのクライアントツール(Ruby)をセットして検査開始。問題が何もなければ、deploy2.shが実行されます。
    test.sh、deploy.sh、deploy2.shは適宜プロジェクト用のものを利用してください。
    VAddyクライアントツールはRuby2.0以上が対象ですので、rvmで環境を切り替えています。

     

    動作確認

    git pushしてVAddyで問題がなければdeploy2.shまで実行されます。

    image

    もし、VAddyの検査で1件でも脆弱性が見つかった場合はそこで処理が停止して、deploy2.shは実行されません。

    image

    まとめ

    このようにVAddyのクライアントを使えば簡単にVAddy連携できます。既にVAddy Jenkinsプラグインは公開しておりましたが、最近のCI as a Serviceの流れもあったので、RubyでVAddy APIを操作するツールを実装して簡単に組み込めるようにしました。

    VAddy API Rubyはオープンソースとして公開しておりますので、CircleCI以外のサービスにも適用して連携できると思います。

    WebAPIの仕様書も公開しておりますので、独自のクライアントツールを作り、プロジェクトに組み込むことも出来ます。

    VAddyはCIと連携し継続的なセキュリティテストを実現するサービスです。無料プランでも実行回数無制限ですので是非お試しください。
    http://vaddy.net

    • Tweet
    • このエントリーをはてなブックマークに追加
    • 11月 26, 2014 (1:09 pm)
    • 1 notes
    1. atm09tdがvaddynetからリブログしました
    2. vaddynetの投稿です
© 2014 継続的WEBセキュリティテスト VAddyブログ