Libseccomp: T: mencegat syscalls dari proses yang sama

Dibuat pada 20 Mei 2021  ·  3Komentar  ·  Sumber: seccomp/libseccomp

Saya sedang mengerjakan kotak pasir di Linux, yang ingin saya capai adalah mencegat syscalls dan mengembalikan nilai yang ditiru atau mengubah register/pointer dan menjalankan syscall dengan nilai yang dimodifikasi.

Saya ingin mencapai ini dari proses yang sama, kode saya sudah disuntikkan ke proses target saat startup.

Apakah mungkin dilakukan dengan seccomp?
Jika Anda memiliki beberapa contoh akan membantu atau rekomendasi lain, mungkin ada cara yang lebih baik untuk mencapai hal yang sama

question

Komentar yang paling membantu

Anda selalu dapat memeriksa tes di bawah ini, ini agak sederhana tetapi seharusnya memberi Anda ide dasar tentang cara menggunakannya:

Saya akan menutup masalah ini karena saya pikir pertanyaannya telah diselesaikan, tetapi jika Anda tidak setuju, silakan buka kembali/komentar.

Semua 3 komentar

Mungkin perlu disebutkan bahwa upaya untuk mencegat syscalls sebagai bentuk sandboxing dari dalam ruang alamat yang sama dengan proses yang di-sandbox akan rentan terhadap kegagalan. Aplikasi jahat dapat menemukan cara untuk mendeteksi bahwa itu sedang dikotak pasir dan mengambil tindakan terhadap kode kotak pasir yang berjalan di ruang alamatnya.

Pilihan yang lebih baik adalah menggunakan filter syscall statis yang lebih tradisional seperti yang dilakukan oleh sejumlah besar alat sandboxing atau membuat proses supervisor untuk memantau dan mencegat syscalls menggunakan kemampuan notifikasi yang ditambahkan ke seccomp/libseccomp.

Saya cukup baru di seccomp, sehari sebelumnya bahkan tidak tahu tentang keberadaannya, jika saya mengerti dengan benar, penambahan pemberitahuan baru-baru ini memberi kami kemampuan untuk menangani syscalls dari mode pengguna.
Apakah Anda memiliki kode yang dapat saya gunakan sebagai referensi untuk tugas ini (seccomp notif. untuk mencegat syscalls)?

Anda selalu dapat memeriksa tes di bawah ini, ini agak sederhana tetapi seharusnya memberi Anda ide dasar tentang cara menggunakannya:

Saya akan menutup masalah ini karena saya pikir pertanyaannya telah diselesaikan, tetapi jika Anda tidak setuju, silakan buka kembali/komentar.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat