[Go] 構造体に特定のメソッドが定義されていれば呼び出す

<h2 id="発端">発端</h2> <p>Go のアプリケーションでエラーを Sentry に送っているのだが、スタックトレースが表示されなくて調査が困ったときがあった。<br> どうすればスタックトレースを送れるのだろうと気になって調べたところ、sentry-go では次の 3 つのパッケージを使って <code>errors</code> を扱っている場合にのみ、スタックトレースを取得でき...

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

<p>最近、趣味で低レイヤコンテナランタイムを実装しているので、 runc のコードを読んだり、挙動を確認している。コンテナのステータスの変化を確認していたとき、 <code>runc create</code> して <code>runc init</code> コマンドが実行されると、それが <code>runc start</code> するまで残り続けていることが分かった。<br> 今回は...

2021年の振り返り

<p>昨年は <a href="https://blog.ssrf.in/post/2020-review/">こちら</a>。</p> <h1 id="仕事">仕事</h1> <p>昨年と引き続きフルリモート。<br> まだ評価資料を作っていないので、ちゃんと振り返っているわけではないのだが、今年も<a href="https://logmi.jp/tech/articles/324600">セ...

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

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

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

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