人を震えさせるツール「Dockle」の仕組みを解説〜Dockerセキュリティの基礎知識も一緒に


はじめに

3分でできる!最高のDockerfileを書いたあとにやるべき1つのこと」で告知したVuls祭り #5で、コンテナのセキュリティについてお話ししました。

しかし15分程度の時間だと、説明不足な点もあったので、資料を修正しつつ、補足コメントを入れました。

パートごとにタイトルを付けたので、Qiitaの目次を参考にするとわかりやすいと思います。Dockerイメージの簡単な説明 & Dockle内部でやっていることの解説 が本記事のメインパートです。

toc.png

参考になったら、Vuls/Dockle/Trivyのスターお願いします! 特にDockleは後発でスター数が少なく、まずはスター1Kを目指してます。

Vuls stars Dockle stars Trivy stars

なお、タイトルの元ネタはこちらです。震えてくださってありがとうございます。 @nagashi_ma_w

twitter.png


スライド


コンテナ導入実態と、セキュリティの現状

slide4

slide6


  • このパートでコンテナの導入状況を聞いたら9割以上の人が手を上げました。Vulsを利用するところはかなり堅い(既存の資産が強い)企業が多いので意外なのとともに、コンテナの普及率を物語っていました

  • IDC Japanの資料は2018年版の資料です。2019年版は高額で手が出せなかった

  • セキュリティインシデント情報は2018年の情報を元にした資料。詳細はこちら


利用できるセキュリティの指標と、対策ツールたち

slide7

slide8

slide9

slide10

slide11

slide12



  • CISベンチマークはこちら。CIS(The Center for Internet Security)が専門家の意見を元に発行している資料です

  • まわりの企業を見ても、イメージはプライベートレジストリにおいて、クラウドのマネージドサービスで運用というパターンが多いと思うのですがデータはありません


Dockle/Trivyでチェックできること

slide15

slide13

slide14

slide16

slide17


  • 🔺は独断です。「安全なソースから〜」の項目は厳密には❌なのですが、直接インストールしても脆弱性チェックはできる、という意味で甘めに🔺にしてます。


Dockerイメージの簡単な説明 & Dockle内部でやっていることの解説

slide19

slide20

slide21

slide22

slide23

slide24


  • 詳細はこちらの資料。イメージの説明は66ページからはじまります。
    今回は概要だけお伝えしましたが、イメージに保存される各ファイルの形式や情報などもまとまっています。
    Docker might not be your friend. Trojanizing Docker images

  • OS情報のパース, パッケージ情報のパースの部分を僕が担当してます。TrivyでもVulsでも利用されています。


Vulsでも一部の機能を実装したよ

slide28

slide29

slide30


  • OS/パッケージの脆弱性の検知はVulsの機能を使っていて、Trivyを利用してません。ライブラリの検知部分ではTrivyを利用しています。

  • ライブラリの検知は割とアツイ機能!! だが、時間なくてほぼスキップした内容。
    あの現場でVulsのデモが正常に動くのは、 @kotakanbe@github と僕だけだったと思うので、デモすればよかったと思いました。


未発表資料

slide33

全然話す余裕なかった。どこかでお話ししたい


最後に

スライド中でも触れてますが、ここで扱っているのはイメージに関することだけです。

Host設定/DockerDaemon設定/Runtimeの設定のいずれもやらなければならないことなので、このあたりの知見もふくめて情報をまとめたいです。