Continuous Vulnerability scanning on CircleCI
by
lorentzca
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Continuous Vulnerability scanning on CircleCI @lorentzca
Slide 2
Slide 2 text
Contents ● 自己紹介 ● CircleCI 上で Vuls を動かしてみた話
Slide 3
Slide 3 text
About Me ● 国島と申します ● ID は lorentzca ● Web インフラエンジニア -> サポートエンジニア ● 主な趣味はキャンプ・釣 り・酒 ● 最近自作キーボード沼 に入水しました ● よろしくおねがいします
Slide 4
Slide 4 text
CircleCI 上で Vuls を動かしてみた話
Slide 5
Slide 5 text
CircleCI ● コードのテストやデプロイを自動化してくれる サービス ● 競合として Jenkins, Travis CI, Wercker 等 ● 継続的インテグレーション (CI: Continuous Integration)
Slide 6
Slide 6 text
なぜそんなことを
Slide 7
Slide 7 text
CircleCI 2.0 in 2017 ● 好きな Docker Image を使える ● Scheduling jobs (cron) を使える
Slide 8
Slide 8 text
つまり…
Slide 9
Slide 9 text
なんでもあり!!
Slide 10
Slide 10 text
Vuls も CircleCI 上で動かせそう = 継続的脆弱性スキャンの実現
Slide 11
Slide 11 text
必要な Docker Image は公式で提供され ている ● vuls/go-cve-dictionary ● vuls/goval-dictionary ● vuls/vuls ● あとは CircleCI でうまくやるだけ
Slide 12
Slide 12 text
CircleCI 2.0 の機能を駆使する
Slide 13
Slide 13 text
Job の流れ
Slide 14
Slide 14 text
Job 間での成果物の共有 ● 成果物 (cve.sqlite3, oval.sqlite3) を workspaces に作成 ● persist_to_workspace キーで成果物を保持 ● 下流の job (vuls report 用 job) で attach_workspace キーを使い成果物を取得
Slide 15
Slide 15 text
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 して黙殺(雑)
Slide 16
Slide 16 text
config.toml の取得 ● Private Gist からダウンロードしてる ● 他にもやり方はありそうだけど(リポジトリ内に置 いて checkout とか)、 Gist なら Web 上でささっ と編集できるので便利
Slide 17
Slide 17 text
Job 間の順序依存 ● workflows の requires キーで依存関係を定義 できる
Slide 18
Slide 18 text
定期的に実行する ● workflows の schedule トリガーを使う ● cron 形式で指定できる ○ UTC なので注意!コメントで JST の時間を 書いておくと日本人に優しい ☺
Slide 19
Slide 19 text
github.com/lorentzca/vurcleci/.ci rcleci/config.yml
Slide 20
Slide 20 text
感想 ● 個人用途であればこれで十分 ☺ ● 無料嬉しい ● 対象サーバが複数あるときつそう ● いろいろ試行錯誤したことなどは別途ブログにもまとめる予 定 ○ blog.lorentzca.me
Slide 21
Slide 21 text
ご清聴ありがとうございました
Slide 22
Slide 22 text
おまけ
Slide 23
Slide 23 text
1台目の自作キーボード。 Planck という 40% キーボード。名前はセラス。
Slide 24
Slide 24 text
2台目の自作キーボード。同じく Planck 。名前はイリス。セラスは職場で使っていて、イリスは自宅 & 持ち運び用。