[Go] 構造体に特定のメソッドが定義されていれば呼び出す 発端 Go のアプリケーションでエラーを Sentry に送っているのだが、スタックトレースが表示されなくて調査が困ったときがあった。 どうすればスタックトレースを送れるのだろうと気になって調べたところ、sentry-go では次の 3 つのパッケージを使って errors を扱っている場合にのみ、スタックトレースを取得できるらしい。 https://github.com/pingcap/err... Jun 23, 2024
「基礎から学ぶコンテナセキュリティ」という書籍を書きました # どういう書籍か コンテナの要素技術である Linux Namespaces などの Linux の機能について体験し、それらが機能していないコンテナではどういった脅威が生じ、どのような攻撃手法があるのかについて紹介した本です。 副題は「Dockerを通して理解するコンテナの攻撃例と対策」ですが、演習題材として Docker を使うという意味であり、Kubernetes などの環境では通用しない... Jul 26, 2023
SPA に CSP を適用するための webpack-plugin を作った # Intro create-react-app などで作られた Single Page Application(SPA) に CSP Level 3 (strict-dynamic + hash-source) を適用するための webpack plugin を作った。 https://www.npmjs.com/package/@mrtc0/csp-html-webpack-plugin ... Jul 18, 2023
`aws sso login` が必要な環境でも 1Password にクレデンシャルを保存して 1Password CLI で利用したい 1Password の AWS shell plugin は大変便利なのだが、AWS_SESSION_TOKEN に対応していないので aws sso login が必要な環境では、そのままでは利用が難しい。 短命のトークンとはいえ、 ~/.aws/sso/cache にクレデンシャルを保存したくないので、なんとか 1Password に保存して 1Password CLI で利用したい。 &he... Feb 25, 2023
runc create したときに runc init プロセスが残る仕組み 最近、趣味で低レイヤコンテナランタイムを実装しているので、 runc のコードを読んだり、挙動を確認している。コンテナのステータスの変化を確認していたとき、 runc create して runc init コマンドが実行されると、それが runc start するまで残り続けていることが分かった。 今回はこれがどうやって実現されているのか調べたので、そのメモになります。 $ runc -v ru... Oct 1, 2022
2021年の振り返り 昨年は こちら。 仕事 昨年と引き続きフルリモート。 まだ評価資料を作っていないので、ちゃんと振り返っているわけではないのだが、今年もセキュリティ対策室の行動指針のもと、以下のような施策を行ってきた。 Semgrep などを用いた SAST の導入 脅威モデリングの実施 Wazuh 周りあれこれ Splunk を使った外部サービスの監査ログ収集と SOAR の実装 他にも Gatekeeper... Dec 31, 2021
コンテナやコマンドなどのリソース単位で外部への意図しない通信をブロックする 特定の外部ネットワークへの通信の制限にはファイアウォールなどを利用することが多いですが、コンテナや実行されたコマンド名などをもとに、通信を制御したいという需要が自分の中でありました。 具体的には GitHub Self-hosted runner のような CI / CD 環境で、依存パッケージに悪意あるコードが入り込んでしまうようなサプライチェーン攻撃などを検知・防御し、意図せずにクレデンシャル... Sep 26, 2021
falco で特定のイベントを検知したら対応するインシデントプレイブックを自動で実行する セキュリティインシデントが発生した場合、事前に作成したワークフローやアクションプランに基づいて動くことで対応をスムーズに行うことができます。 インシデントにおいて、このワークフローやアクションプランのような対応手順書を「プレイブック」と呼ぶことが多く、インシデント発生時にプレイブックの実行を自動化することで、対応チームの負荷を下げることができます。 コンテナのセキュリティ監視ツールである falc... Feb 20, 2021