「基礎から学ぶコンテナセキュリティ」という書籍を書きました

# どういう書籍か コンテナの要素技術である Linux Namespaces などの Linux の機能について体験し、それらが機能していないコンテナではどういった脅威が生じ、どのような攻撃手法があるのかについて紹介した本です。 副題は「Dockerを通して理解するコンテナの攻撃例と対策」ですが、演習題材として Docker を使うという意味であり、Kubernetes などの環境では通用しない...

`aws sso login` が必要な環境でも 1Password にクレデンシャルを保存して 1Password CLI で利用したい

1Password の AWS shell plugin は大変便利なのだが、AWS_SESSION_TOKEN に対応していないので aws sso login が必要な環境では、そのままでは利用が難しい。 短命のトークンとはいえ、 ~/.aws/sso/cache にクレデンシャルを保存したくないので、なんとか 1Password に保存して 1Password CLI で利用したい。 &he...

runc create したときに runc init プロセスが残る仕組み

最近、趣味で低レイヤコンテナランタイムを実装しているので、 runc のコードを読んだり、挙動を確認している。コンテナのステータスの変化を確認していたとき、 runc create して runc init コマンドが実行されると、それが runc start するまで残り続けていることが分かった。 今回はこれがどうやって実現されているのか調べたので、そのメモになります。 $ runc -v ru...

2021年の振り返り

昨年は こちら。 仕事 昨年と引き続きフルリモート。 まだ評価資料を作っていないので、ちゃんと振り返っているわけではないのだが、今年もセキュリティ対策室の行動指針のもと、以下のような施策を行ってきた。 Semgrep などを用いた SAST の導入 脅威モデリングの実施 Wazuh 周りあれこれ Splunk を使った外部サービスの監査ログ収集と SOAR の実装 他にも Gatekeeper...

コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする

特定の外部ネットワークへの通信の制限にはファイアウォールなどを利用することが多いですが、コンテナや実行されたコマンド名などをもとに、通信を制御したいという需要が自分の中でありました。 具体的には GitHub Self-hosted runner のような CI / CD 環境で、依存パッケージに悪意あるコードが入り込んでしまうようなサプライチェーン攻撃などを検知・防御し、意図せずにクレデンシャル...

falco で特定のイベントを検知したら対応するインシデントプレイブックを自動で実行する

セキュリティインシデントが発生した場合、事前に作成したワークフローやアクションプランに基づいて動くことで対応をスムーズに行うことができます。 インシデントにおいて、このワークフローやアクションプランのような対応手順書を「プレイブック」と呼ぶことが多く、インシデント発生時にプレイブックの実行を自動化することで、対応チームの負荷を下げることができます。 コンテナのセキュリティ監視ツールである falc...

Infra Study Meetup #10 に登壇した

いよいよ最終回となった Infra Study Meetup #10 に登壇した。 Infra Study Meetup #10「202X年のインフラ技術」 (2021/01/26 19:30〜) 本イベントは、複数回にわたりインフラ技術の各分野に精通した講師をお招きし、インフラ技術の「これまで」と「これから」を網羅的に学ぶことを趣旨として開催いたします。... 今回はパネルディス...