Linuxでサンドボックスに取り組んでいます。達成したいのは、syscallをインターセプトしてエミュレートされた値を返すか、レジスター/ポインターを変更して、変更された値でsyscallを実行することです。
同じプロセスからこれを実現したいのですが、私のコードは起動時にターゲットプロセスにすでに挿入されています。
seccompで行うことは可能ですか?
役立つ例やその他の推奨事項がある場合は、同じことを達成するためのより良い方法があるかもしれません
サンドボックス化されているプロセスと同じアドレス空間内からサンドボックス化の形式としてシステムコールを傍受しようとすると、失敗する傾向があることは、おそらく言及する価値があります。 悪意のあるアプリケーションは、サンドボックス化されていることを検出し、そのアドレス空間で実行されているサンドボックス化コードに対してアクションを実行する方法を見つける可能性があります。
より良いオプションは、多数のサンドボックスツールで行われるような従来の静的システムコールフィルターを使用するか、seccomp / libseccompに追加された通知機能を使用してシステムコールを監視および傍受するスーパーバイザープロセスを作成することです。
私はseccompにかなり慣れていません。前日、その存在についてさえ知りませんでした。最近の通知の追加により、ユーザーモードからシステムコールを処理できるようになったことが正しく理解されていれば。
このタスクのリファレンスとして使用できるコードはありますか(システムコールをインターセプトするためのseccomp notif。)?
以下のテストはいつでも確認できます。かなり単純ですが、使用方法の基本的な考え方がわかります。
質問は解決したと思いますので、この問題をクローズしますが、同意できない場合は、お気軽に再開/コメントしてください。
最も参考になるコメント
以下のテストはいつでも確認できます。かなり単純ですが、使用方法の基本的な考え方がわかります。
質問は解決したと思いますので、この問題をクローズしますが、同意できない場合は、お気軽に再開/コメントしてください。