

Grafikiは、Sysmonとグラフを扱うDjangoプロジェクトです(現時点では)。
私の意見では、EventViewer、Elastic、さらにはKibanaでも、十分にグラフィカルではありません。現在の脅威は複雑であり、攻撃者がグラフで考えるなら、防御側もそうしなければなりません。
これは概念実証であり、コードはまだデバッグされていませんが、誰かに役立つかもしれません。今後改善していきます。
このプロジェクトはEVTXパーサーをSQLデータベースに変換するものとして始まりましたが、これがプロジェクトの中核かもしれません。
プロジェクトはまだ成熟していませんが、動作はします。テスト計画はまだ定義されていません。
意見、バグ報告、改善リクエストなど、何でも歓迎します。
git clone https://github.com/lucky-luk3/Grafiki.git
cd Grafiki
sudo -- sh -c -e "echo '127.0.0.1 grafiki.local' >> /etc/hosts"
docker compose up --build &
docker exec -it -d grafiki-app-1 /init_django.sh
ブラウザで http://127.0.0.1:8000/ または http://grafiki.local:8000/ にアクセスしてください。
ハントして、学んで、楽しんでください!
このアプリケーションは2種類のファイルを処理できます。

このページでは、evtxファイルまたはElasticイベントファイルをアップロードして処理できます。

このページは、オンラインサンプルファイルのライブラリを作成するのに便利です。
例を作成すると、ファイルのURLを指定し、処理時にアプリケーションがイベントファイルをダウンロードして処理します。

このページでは、Elasticインスタンスへの検索を作成し、結果のグラフを作成できます。 次の項目に関するフィルターを作成できます。

グラフページはこのアプリケーションの中核であり、調査インターフェースです。
他のページでデータを選択すると、このページがグラフページに送信します。グラフページに直接アクセスしても、何も表示されないか、最後に検索したデータが表示されます。
このページには2つのタブがあり、1つはSysmon用、もう1つはPowershellイベント用です。
要素はノードとエッジの2種類があります。ノードはプロセス、ファイル、レジストリキーなどのエンティティを表し、エッジは作成、削除、接続などのアクションを表します。

ここが中核です。
この部分では、データベースの情報を使用して、分析されたイベントに関するグラフを作成します。
グラフ内を移動して、プロセス作成、名前付きパイプ接続などを確認できますが、通常は快適に作業するには情報が多すぎます。
タブ内にはグラフフィルターに関する非表示セクションがあります。
この領域では、グラフデータをフィルタリングして作業できます。
次のエンティティでノードをフィルタリングできます。
また、プロセスノードは次の属性でもフィルタリングできます。
さらに、次のアクションでエッジをフィルタリングできます。
優れた機能の1つは、グラフ内のデータに関するアニメーションを作成できることで、例えばParent PID Spoofingや、あるコンピュータのユーザーがリモートでコマンドを実行する場合などに非常に便利です。

グラフに情報が多すぎる場合、1つのノード、1つのエッジ、ノードのグループ、またはノードのグループを再帰的に削除できます。
ノードのグループ削除は、ノードを選択すると、アプリケーションが選択されたノードを親とするすべてのノードを削除します。
再帰的グループ削除もノードを選択して機能しますが、アプリケーションはこのツリーブランチが終了するまでノードを辿って削除します。ブランチに多くの情報がある場合、時間がかかる可能性があります。
画面下部では、グラフの物理演算を変更できます。
グラフに多くの情報がある場合、物理演算を無効にしてグラフを安定させると便利です。
物理演算で遊んでみてください。楽しいですよ。
Powershellタブでは、Powershellコマンドを分析できます。
コマンドはアコーディオンで表示され、各行内にbase64コマンドが含まれている場合、それがデコードされて解析されます。
すべてのイベントで、エンコードまたはデコードされたコマンド部分を検索できます。





