カーネル:モジュールを使用してリスニングコールを傍受する

カーネル:モジュールを使用してリスニングコールを傍受する

listen(2)私は着信接続のためにソケットを開くために呼び出すアプリケーションを検出し、ルールテーブルを使用してそれを見つけるアプリケーションを作成しています。これはmacOSのアプリケーションファイアウォールと非常によく似ています。したがって、私の主なアプローチは、listenロード可能なカーネルモジュールを使用して呼び出しをオーバーライドすることです。カーネル2.6以降では、システムコールテーブルが読み取り専用の場合、Linuxでも可能ですか?もっと良い方法がありますか?

ベストアンサー1

たとえば、より良いアプローチはeBPFを使用することです。

https://stackoverflow.com/questions/43003805/can-ebpf-modify-the-return-value-or-parameters-of-a-syscall/

「パケットフィルタリング」部分にだまされないでください。 BPFは、もはやパケットフィルタリングに関するものではありません。学習曲線はかなり急ですが、それほど価値があります。

おすすめ記事