ディスカッション (6件)
「ファイルを開く」という何気ない操作。普段私たちが当たり前のように使っているこの処理の裏側では、OSレベルで一体何が起きているのでしょうか?シンプルに見えて実は奥が深い、ファイルオープン処理の真実について深掘りします。
セキュリティで何を懸念すべきかを知ることもスキルだよね。過剰にエンジニアリングしすぎて、リスクでもないことに力を入れすぎるのはよくある話。以前、学生がクライアントからサーバーのIPアドレスが漏れることを心配してたのを思い出したよ。脆弱性がないとは言わないけど、解決策はバグを修正して、SELinuxやUnixユーザーみたいな標準のハードニング(強化)メカニズムを使うこと。みんなが何十年も使ってきた既存のファイルシステムAPIが根本原因だとはとても思えないし、どう考えても君の書いたコードに問題があるんじゃないかな。
Flatpakのサンドボックスエスケープについてのいい解説だね。LLMで書かれた文章が苦手な人向けに言うと、いくつかLLMっぽい書き方の文があるよ。例えば「修正は『一つの関数を変える』ような単純なものじゃなくて、『ポータルリクエストからbubblewrap実行までの呼び出しチェーン全体を精査して、パス文字列をすべてfdに置き換える』ようなものだった」といった箇所だね。
見落としてるかもしれないんだけど、この記事が主張する脆弱性って、攻撃者がすでにシステムに対して「自分のコードが参照しているパス上のファイルを改ざんできる」レベルの権限を持っているという前提に依存してない?これって脆弱性というより、特権昇格のベクトルって呼ぶべきじゃないのかな。実用的な教訓が何なのか理解したいんだけど。
呼び出し元のプロセスの権限でファイルを開いて、それを渡すような方法ってないのかな?
ちょうど昨日、AIエージェントに対する似たような攻撃ベクトルについて考えてたところだよ。多くのハーネスは、指定されたパスがホワイトリストに含まれているかチェックすることで、ファイル読み書きやシェルコマンドを(アプリレベルで)「サンドボックス化」してる。でも、エージェントがシンボリックリンクを別の場所に作成して、サンドボックスを欺いて権限があると誤認させるようなケースが絶対にあるはずだよね?