私は現在、「マルウェアアナリストの料理書とDVD」を読んでいます。 「動的分析」に関する章があり、プロセスのAPI呼び出しを接続して監視する方法についていくつかのヒントがありますが、これはWindows用です。
レシピ9-10で説明したのと同じことをしたいのですが、Linuxの場合です。図9-10は、「プロセス、スレッド、およびイメージロードイベントのキャプチャ」と呼ばれます。このレシートには、「マルウェアサンプルの実行中にシステムでイベントが発生したときに警告するドライバを実装する方法」が記載されています。 Windows Driver Kit(WDK)API関数を使用してカスタムコールバック関数を呼び出します。コールバック関数を使用します。
- プロセス生成コールバック関数はPsSetCreateProcessNotifyRoutine(...)を呼び出します。
- スレッド生成コールバック関数はPsSetCreateThreadNotifyRoutine(...)を呼び出します。
- イメージロードコールバック関数はPsSetLoadImageNotifyRoutine(...)と呼ばれます。
イベントが発生すると、それをデバッグメッセージとして表示し、DebugViewなどで表示できます。
Windowsには良いドキュメントがあり、これに関する情報を簡単に見つけることができるようですが、Linuxに関する情報を見つけるのに少し難しいことがあります。
ドライバーの一般的な紹介とフックの紹介を見つけましたが、まだあまり一般的ではないか、少なくともマルウェア分析にもっと焦点を当てた紹介は見つかりませんでした。
このトピックについてもっと読むためのヒントや推奨チュートリアルを受け取りたいです。
答え1
この質問は数年が経ちましたが、まだ関連性があります。
以下はいくつかのオプションです。
- 審査:RHEL6秒ガイド- Red Hat Enterprise Linuxセキュリティガイド。
- 追跡する:スタックオーバーフローリファレンス- Linuxのプロセス追跡ツールです。
- インターネット接続:スタックオーバーフローリファレンス- (回答) Linux プラットフォームでプログラムの開始を検出します。
答え2
最も簡単な方法は、実行中のマルウェアのサンプルを使用することですstrace
。
strace
トレースの下で提供されたコマンドを実行し、アプリケーションおよびその引数によって呼び出されたすべてのシステム呼び出しを標準エラーまたは必要に応じてファイルに出力します。
たとえば、新しいプロセスまたはスレッドを生成するすべての呼び出しをキャプチャするには、次のようにします。
strace -e trace=clone,fork -o trace.log -f malware
-e
記録するシステムコールを指定します。指定しないと、ログにすべてのシステムコールが表示されます。-o
トレースが記録されるファイルを指定してください。-f
生成されたプロセスにトレースを関連付ける