Save 37% off PRO during our Black Friday Sale! »

Continuous Vulnerability scanning on CircleCI

Continuous Vulnerability scanning on CircleCI

Vuls を CircleCI 上で動かしてみた話。

64b867898a13f809f0146c9df00aaf01?s=128

lorentzca

August 27, 2018
Tweet

Transcript

  1. Continuous Vulnerability scanning on CircleCI @lorentzca

  2. Contents • 自己紹介 • CircleCI 上で Vuls を動かしてみた話

  3. About Me • 国島と申します • ID は lorentzca • Web

    インフラエンジニア -> サポートエンジニア • 主な趣味はキャンプ・釣 り・酒 • 最近自作キーボード沼 に入水しました • よろしくおねがいします
  4. CircleCI 上で Vuls を動かしてみた話

  5. CircleCI • コードのテストやデプロイを自動化してくれる サービス • 競合として Jenkins, Travis CI, Wercker

    等 • 継続的インテグレーション (CI: Continuous Integration)
  6. なぜそんなことを

  7. CircleCI 2.0 in 2017 • 好きな Docker Image を使える •

    Scheduling jobs (cron) を使える
  8. つまり…

  9. なんでもあり!!

  10. Vuls も CircleCI 上で動かせそう = 継続的脆弱性スキャンの実現

  11. 必要な Docker Image は公式で提供され ている • vuls/go-cve-dictionary • vuls/goval-dictionary •

    vuls/vuls • あとは CircleCI でうまくやるだけ
  12. CircleCI 2.0 の機能を駆使する

  13. Job の流れ

  14. Job 間での成果物の共有 • 成果物 (cve.sqlite3, oval.sqlite3) を workspaces に作成 •

    persist_to_workspace キーで成果物を保持 • 下流の job (vuls report 用 job) で attach_workspace キーを使い成果物を取得
  15. SSH 周り • CircleCI の add_ssh_keys の fingerprints キーを使うと .ssh

    以下に config と秘密鍵が追加される • vuls コマンドの -ssh-config オプションで上記 .ssh/config を読んで ssh してくれる • Are you sure you want to continue connecting (yes/no)? ◦ うるせえ! echo "StrictHostKeyChecking no" >> /root/.ssh/config して黙殺(雑)
  16. config.toml の取得 • Private Gist からダウンロードしてる • 他にもやり方はありそうだけど(リポジトリ内に置 いて checkout

    とか)、 Gist なら Web 上でささっ と編集できるので便利
  17. Job 間の順序依存 • workflows の requires キーで依存関係を定義 できる

  18. 定期的に実行する • workflows の schedule トリガーを使う • cron 形式で指定できる ◦

    UTC なので注意!コメントで JST の時間を 書いておくと日本人に優しい ☺
  19. github.com/lorentzca/vurcleci/.ci rcleci/config.yml

  20. 感想 • 個人用途であればこれで十分 ☺ • 無料嬉しい • 対象サーバが複数あるときつそう • いろいろ試行錯誤したことなどは別途ブログにもまとめる予

    定 ◦ blog.lorentzca.me
  21. ご清聴ありがとうございました

  22. おまけ

  23. 1台目の自作キーボード。 Planck という 40% キーボード。名前はセラス。

  24. 2台目の自作キーボード。同じく Planck 。名前はイリス。セラスは職場で使っていて、イリスは自宅 & 持ち運び用。