Windows では、自動実行ツールは法医学研究者にとって非常に便利なツールであり、疑わしい起動実行可能ファイルを見つけ、無害な実行可能ファイルをフィルタリングするのに役立ちます。
しかし、Linuxではそれほど良いことはできません。それでは、疑わしい起動アプリケーションを見つけるときに自動実行を実装する最も簡単な方法は何ですか? Linuxにも同様のツールがありますか?
基本的に、法医学研究者であり、UbuntuのようなLinuxシステムがあり、疑わしいブート実行可能ファイルを見つけるように求められたとしましょう。プロセスを高速化するために何をし、どのツールを使用しますか?
答え1
基本的に、法医学研究者であり、UbuntuのようなLinuxシステムがあり、疑わしいブート実行可能ファイルを見つけるように求められたとしましょう。プロセスを高速化するために何をし、どのツールを使用しますか?
次のコマンドを使用して、コンピュータで実行されているすべてのプログラムを確認できます。 キツネの塔。与えられた時間に生成されるプロセスの数が多すぎるため、出力には多くのノイズが含まれますが、ここで得られるリストは徹底する必要があります。 [0]
分析しているシステムのカーネルに次のものがあるとします。
NETLINK_CONNECTOR
この機能が有効になっており、たとえば直接コンパイルしてデプロイする場合、forkstat バイナリは破損しません。イベントの受信をどれだけ早く開始するかを決定する必要があります。ユニットファイルを作成してリンクします。システム起動
適切な瞬間に、例えば次のようになりますbasic.target
。
# cat /etc/systemd/system/forkstat.service
[Unit]
Description=process sniffer
[Service]
ExecStart=/sbin/forkstat
[Install]
WantedBy=basic.target
サービスを開始し、観察結果を使用して機能していることを確認してください
journalctl -f
。これにより、forkstat 出力がシステムログに取り込まれます。これは、ルートファイルシステムが利用可能になる前のブートプロセスの非常に初期段階なので、動作させるにはforkstat バイナリは initrd で使用できる必要があります。。 initrdに追加する方法はディストリビューションによって異なります。 Archの場合は、BINARIES=…
行に追加するだけですmkinitcpio.conf
。
サービスを有効にしてinitrdを再構築してから再起動します。新しく起動したら、journalctl -b
次のコマンドを使用してキャプチャされたイベントを表示できます。
Dec 04 10:12:17 zombo.com systemd[1]: Started process sniffer.
Dec 04 10:12:17 zombo.com forkstat[318]: Time Event PID Info Duration Process
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 exec 321 [/sbin/modprobe -q -- iptable_nat]
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 fork 1 parent /sbin/init
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 fork 322 child /sbin/init
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 exit 313 0 0.610s /usr/sbin/rpc.idmapd
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 fork 2 parent [kthreadd]
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 fork 323 child [kthreadd]
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 fork 265 parent /usr/lib/systemd/systemd-udevd
Dec 04 10:12:17 zombo.com forkstat[318]: 10:12:17 fork 324 child /usr/lib/systemd/systemd-udevd
最も興味深いのは、どのプロセスがどのバイナリを実行したかを示すparent
行です。child
私はあなたにお勧めしますフォークスタートマンページ
もっと学ぶ。
注:これはプロセス生成アクティビティの徹底的な概要であるため、ログが大幅に大きくなる可能性があります。生成された多数のログメッセージに対応できるように、ログ制限を合理的に大きな値に設定する必要があります。
また、この出力の精度は信頼できるカーネルによって異なります。カーネル自体がルートキットの形で破損していると思われる場合は、まず信頼できると知られているカーネルを展開することをお勧めします。
[0]非常に忙しいシステムでは、いくつかのイベントが削除されることがあります。これは forkstat で使用されるデフォルトの netlink API の成果物です。
答え2
したがって、Windowsから来るのは物事の観点の枠組みです。私も同じ道を歩いてきました。
最初にすることは、Linuxが自動的に起動する方法を理解することです。 init / systemdについて知っておく必要があり、Linuxには複数の選択可能なデスクトップ環境(DE)があることに注意してください。ただし、ホームユーザーディレクトリにはKDEなど、いくつかの一般的なDEがあります。https://docs.kde.org/trunk5/en/kde-workspace/kcontrol/autostart/index.html
したがって、Linuxファイルシステムで作業し、データを構成するのがどれほど簡単かを考えると、CLIを介したクエリは基本的であり、グラフィッククライアントは必ずしも必要ではありません。
これが初めてなので、一部の作業を自動化できるプロジェクトを見てください。https://cisofy.com/lynis/<これはLinux用のRootkit Hunter(rkhunter)の著者です。この作成者は優れたツールであり、レビュー中に考慮すべきその他の点、つまり悪意のある実行可能ファイルです。そしてルートキット。