最新のカーネルのpsまたはtopからプロセスを隠すことはできますか?

最新のカーネルのpsまたはtopからプロセスを隠すことはできますか?

psとtopコマンドのプロセスを隠すことができるカーネルモジュールを構築する方法を探しています。私が使用するカーネルは3.13.0。どのカーネルデータ構造を扱うべきかわかりません。私は完全に動作し、追跡できないか、検出するのが難しいルートキットを見つけることはありません。ただハードコーディングしたプロセスを隠し始めたいのですが、結局はこれまでに生成されたすべてのプロセスを攻撃するルートキットを構築できるようにしたいと思います。ロードされたモジュール。

私はpsコマンドを追跡し始め、私が隠そうとしたプロセスが次のようになったことを発見しました。

stat64("/proc/11914", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/11914/stat", O_RDONLY)      = 6
read(6, "11914 (dummy) S 3184 11914 3184 "..., 1024) = 279
close(6)                                = 0
open("/proc/11914/status", O_RDONLY)    = 6
read(6, "Name:\tdummy\nState:\tS (sleeping)\n"..., 1024) = 807
close(6) 

開こうとしているのを見て、フォルダを/proc隠してみました。このフォルダを表示しないようにシステムコールを/proc/<pid>ハイジャックしましたが、明らかに機能しません。ls

次に何が起こるのかよくわかりません。open()文字列マッチングのためにプロセスをフィルタリングしようとした場合、syscallが見つかりましたが、これは本当に悪いアプローチです。

たぶん私のカーネルバージョンには扱いやすい構造があるかもしれません。最新のカーネルなので、カーネルがtask_structなく、Webページでこの作業を「非常に簡単に」行うことができるという内容を読んでいます。next_taskprev_task

どんな提案がありますか?

ベストアンサー1

おすすめ記事