Linuxの実行環境のisolationをもうちょっとちゃんとする今年は
いままでpip実行するたびに、「これどこかのsetup.pyに一行でもid_rsaとかfirefoxのprofileデータをどこかにアップロードするコード混じってたら終わりだよな」と思ってたけど、
https://pytorch.org/blog/compromised-nightly-dependency/
いよいよそういうことが起こってきたので、なんとか対応したほうがいいという気持ちになった。今年中に使用感を悪化しない範囲でどこまでできるかを探りたいと思いますね。
- ブラウザを別UIDで実行する
firefoxのデータに自由にアクセスできたらMFAとか意味ないんだよなあ…
ブラウザのデータを別プロセスから読みたいとか、ブラウザにパイプ繋げたりとかしたい場合はないので、別ユーザにして、isolationすべきという気がする。
firefoxだけ起動できる UID を作って、その UID で firefox 起動コマンドを受けて起動するデーモンを入れておくとかする。
waylandはshm経由で画像データやりとりするので、ブラウザで今表示してるものが別プロセスから読まれるのだけ回避できないかも。
- sudo 運用をなんとかする
知らないプロセスが勝手にsudoするような事態があれば他の対策が全部無駄になるので、あずかり知らぬところでsudoが通るみたいな事態だけは絶対避ける。
sudo 最初はターミナルごとにパスワード要求にする。パスワードではなくてYubikeyを要求するとかがベスト?(yubikeyは必ずタッチしないと通らないので)
sudo やめて polkit ちゃんと設定方法を覚えるべきという気もするが、polkitでうまく運用できる気がしないのでやらないかも。
- SELinux 使いかたちゃんと覚えて妥協ラインを探す
pip とか cargo とかで取ってきたコードを実行するときはちゃんとisolateした環境で実行すべき。
プロセスごとにアクセスできるリソースを制限できればよくて、SELinuxちゃんと覚えればできるはずや。
aurでインストールしたようなのはどうしたらいいですか?どうしたらいいですかね…
- Yubikeyの使いかたマスターする
証明書、鍵とかなんとかそういうのをちゃんと理解する(まだあんまり理解してないので書けることはない)
ssh も yubikey にする。それで id_rsa コピーされる心配はなくなる
今のLUKSはfido2とか使ってpassphrase消すと二度と設定変えられなくなるが、これUIというかsystemd-cryptenrollの問題でほんとはなんとかできるでしょ。