‫続いて､ ランタイムの不具合についてです｡
‫あまり多くは語りませんが､ これは私のリストの中で一番新しいものです｡
‫Sysdig Falcoは､ 他にも似たようなツールはありますが､
‫Falcoほど簡単で､ コンテナ用に設計されたものは見たことがありません｡
‫ファルコは基本的に､ 悪い行動､ あるいは疑わしい行動とでも言うべきものをよくある小さなリストにしていますね｡
‫本番サーバーで稼働中のコンテナに実行するような､ 必ずしも多く起きてはならないことが起きています｡
‫あるいは､ 稼働中のサーバーで､ そのコンテナにファイルをコピーすること｡
‫あるいは､ ホストOSからコンテナ自体に機密データをバインドしてマウントする､
‫ですね｡
‫ここで少し例を挙げて､ 具体的にどうすればいいのかを説明します｡
‫彼らは基本的に､
‫すべてのサーバーでFalcoエージェントを実行し､ 疑わしいと思われる特定の動作をコンテナで行っているのです｡
‫Falcoの目標は､ 基本的にあらゆる悪い行動を追跡し､ 必要であればそれらのログに基づいて警告するために､ それらの行動を監査して記録することです｡
‫ここでは､
‫あるものを実行して､ そのログがどのように出力されるかを見ることができます｡
‫これの一番クールなところは､
‫デフォルトでセットされていることです｡
‫なぜなら､ 多くの人は悪い行動をすべて知っているわけではないからです｡
‫下手したら全部わからない､
‫みたいな｡
‫ファルコの良いところは､ デフォルトのリストが付属しており､
‫あとはアプリケーションで独自にルールを追加できることです｡
‫カスタムリストを作成し､
‫ファルコの実行時に追加することができます｡
‫それは､ 無料のオープンソースツールです｡
‫それは､ 間違いなく､ より高度になっていると言えるでしょう｡
‫ご覧のように､
‫このリストは下に行くほど高度になっています｡
‫でも､ 本番サーバーに追加する価値のあるものだと思います｡
‫ログを常時監視したり､ アラートを出したりしなくても､
‫ログがあれば､ 何か問題が発生したときに､ 過去に遡って何か挙動があったか､
‫その挙動はどうだったかを確認し､ 自分の足取りをたどることができますよね？
‫ぜひ､ ツールキットの中に入れておきたいですね｡
‫次は､ コンテンツの信頼性です｡ ツール一式なので､ デモやコンテンツの信頼性を示す方法はないんです｡
‫Dockerはそれらを多く提供しています｡ gitレポでのコード署名から､
‫チームによって署名されたイメージのみがサーバー上で実行されることを本番で確認することまで､
‫パイプラインのすべてを確認することについて｡
‫そのプロセス全体をコンテンツ・トラストと呼びます｡
‫それは､ 信頼のパイプラインです｡
‫これは､ ツールのさまざまな部分､
‫イメージ､ コードに署名するパイプラインで､
‫署名によって特に許可されない限り､ サーバー上のDockerでは何も実行されないことを保証するものです｡
‫OKです｡ だから､ それはプロジェクトなんです｡
‫それは間違いなくプロジェクトでしょう？
‫このままでは､ 下火になってしまう｡
‫セキュアな開発､ セキュアなデプロイメントについて話し始めると､
‫これはより高度な機能の1つで､ 開発者､ つまりセキュリティ・チームが関与する必要があるからです｡
‫コードサイニングやイメージサイニングが必要ですが､ Dockerのツールはそれを容易にしてくれます｡
‫わかりました｡ これらをチームに導入するのです｡
‫次は､ 手間がかかる上に､
‫あまりメリットがないかもしれないものです｡
‫これは､ 先ほどお話した､ AppArmor､ SELinux､ Seccomp､
‫「Linux capabilities」のデフォルトのプロファイルをすべて取り出したものです｡
‫引用符で囲むのは､
‫それが実際にカーネルに搭載されている機能だからです｡ 300くらいの機能があって､
‫Dockerは特定のものを取り出して削除してくれるんです｡
‫しかし､ それらは変えることができます｡ それらをその場でカスタマイズすることができます｡
‫実際にもっとロックダウンすることもできますし､
‫ニーズに応じてDockerをオープン化することもできます｡
‫特定のアプリケーションについて学び､ 深く掘り下げれば､
‫これらをよりロックダウンする方法について学ぶことができます｡
‫また､ Nginxのようなオープンソースのアプリケーションでは､
‫これらのツールのカスタムテンプレートをダウンロードし､ そのイメージを実行する際に適用することができます｡
‫なぜなら､
‫Docker自身はコンテナ内で何が動いているのかを知らないからです｡ 私のMySQLを動かしていることはわからないんですよね｡
‫そのため､
‫MySQL固有のポリシーを適用することはできません｡ でも､ もしかしたら見つかるかもしれませんよ｡
‫もう少し安全性の高い良いものが作れるかもしれません｡
‫かなり進化していますね｡ システム､ 内部構造､
‫その仕組みについてかなり知識が必要です｡
‫しかし､ Dockerはそれをすべてサポートしています｡
‫これはコンテナごとの機能なので､ 要件に応じて､ 実行中のコンテナごとに変更することができます｡
‫確認してみてください｡
‫セキュリティチームにも好評です｡
‫このようなものを実装して､ 何も壊さないようにできれば､ それがキーポイントになります｡
‫何も壊さないこと｡
‫セキュリティチームも大喜びでしょう｡