2025/5/9
https://sneakycrow.dev/blog
https://github.com/decalage2/awesome-security-hardening
こんなんあるんやな
https://app.studyraid.com/en/courses/8393/building-cross-platform-desktop-apps-with-tauri
おもろいサイトやな。
【Tauri】sidecarについて
【Tauri】capabilityはwebviewに与える権限(Iam Role的な)で、permissionsはポリシー(Iam Policy的な)
【Tauri】capabilityはJSからtauri側APiを叩くときの制限であり、rust側で書いたコードの制限はしない
【Rust】rustで別プラットフォームのバイナリにコンパイルしたいならターゲットを追加する必要がある
【Rust】Cargoプロジェクトで複数バイナリをビルドしたい時
Tauriでmain以外のバイナリをバンドルに入れるのは少し苦労するかも。
通常のCargoプロジェクトのノリで別binaryをCargo.tomlで明記しても、buildしてくれないっぽい。
MacOSの/tmpディレクトリはPC再起動などで簡単に自動削除されるので注意
【Rust】auto-launchクレートは、Agentを登録するだけで即起動することはない
【Rust】iceoryx2クレートはゼロコピー方式を採用してて、固定長データ型のやり取りが基本である
Javascript for Automation
親プロセスがkillされても、子プロセスが自動でkillされるとは限らない
簡単なwatchdogの仕組みを作って動作確認する
雑多にチェック項目
watchdogはagentから生成される
watchdogが存在して良いかは、mainの設定から決まる
watchdogの存在して良いかの判断にはflagファイルを用いる(flagファイルがあれば無効、なければ有効)
mainからflagファイルを生成/消去する
watchdogはagentの生存確認を行い、死んでたら復活させる
agentはwatchdogが存在して良い場合、かつ、watchdogが存在しない場合、watchdogを生成する
background実行アイテムで指定agentがoffにされたとしても、watchdogがあるならagentが復活する
background実行アイテムoffの状態で、PC再起動が入った場合は、流石にagentは自動起動しない
ここまでされるとお手上げ。ブロックは回避されるだろう。だが、そこまでしちゃう人はもう救えない...。
background実行アイテムonの状態で、PC再起動が入った場合は、逆に救える。その場合はブロックは有効だから。
注意
background実行アイテムをoffにされても、agentをwatchdogで無理やり起動させる方法は結構なハッキング手法。
appleの推奨する手L法ではないので、いつか対策加えられる気もする。
それに備えて、対応しやすい設計にしておくのがbetter。
セキュリティ強化のTips
Cargo buildとworkspaceのdefault member