Skip to content

nttcom/zeek-parser-DHCPv4-COM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zeek-Parser-DHCPv4-COM

English is here

概要

Zeek-Parser-DHCPv4-COMとはZeekオリジナルのDHCPv4(Dynamic Host Configuration Protocol for IPv4)プラグインを参考にして作成したプラグインです。

インストール

パッケージマネージャーによるインストール

このプラグインはZeek Package Manger用のパッケージとして提供されています。

以下のコマンドを実行することで、本プラグインは利用可能になります。

zkg refresh
zkg install zeek-parser-DHCPv4-COM

マニュアルインストール

本プラグインを利用する前に、Zeek, Spicyがインストールされていることを確認します。

# Zeekのチェック
~$ zeek -version
zeek version 5.0.0

# Spicyのチェック
~$ spicyz -version
1.3.16
~$ spicyc -version
spicyc v1.5.0 (d0bc6053)

# 本マニュアルではZeekのパスが以下であることを前提としています。
~$ which zeek
/usr/local/zeek/bin/zeek

本リポジトリをローカル環境に git clone します。

~$ git clone https://github.com/nttcom/zeek-parser-DHCPv4-COM.git

使い方

パッケージマネージャーによるインストールの場合

以下のように本プラグインを使うことで mydhcp.log が生成されます。

zeek -Cr /usr/local/zeek/var/lib/zkg/clones/package/zeek-parser-DHCPv4-COM/testing/Traces/test.pcap zeek-parser-DHCPv4-COM

マニュアルインストールの場合

ソースコードをコンパイルして、オブジェクトファイルを以下のパスにコピーします。

~$ cd ~/zeek-parser-DHCPv4-COM/analyzer
~$ spicyz -o mydhcp.hlto mydhcp.spicy zeek_mydhcp.spicy mydhcp.evt
# mydhcp.hltoが生成されます
~$ cp mydhcp.hlto /usr/local/zeek/lib/zeek-spicy/modules/

同様にZeekファイルを以下のパスにコピーします。

~$ cd ~/zeek-parser-DHCPv4-COM/scripts/
~$ cp main.zeek /usr/local/zeek/share/zeek/site/MYDHCP.zeek

最後にZeekプラグインをインポートします。

~$ tail /usr/local/zeek/share/zeek/site/local.zeek
...省略...
@load MYDHCP

本プラグインを使うことで mydhcp.log が生成されます。

~$ cd ~/zeek-parser-DHCPv4-COM/testing/Traces
~$ zeek -Cr test.pcap /usr/local/zeek/share/zeek/site/MYDHCP.zeek

ログのタイプと説明

本プラグインはdhcpv4の全ての関数を監視してmydhcp.logとして出力します。

フィールド タイプ 説明
ts time 通信した時のタイムスタンプ
SrcIP addr 送信元IPアドレス
SrcMAC string 送信元MACアドレス
Hostname string ホストの名前
ParameterList vector[count] DHCPクライアントとDHCPサーバ間でやり取りされるメッセージ内の設定情報
ClassId string デバイスのタイプやバージョン情報

mydhcp.log の例は以下のとおりです。

#separator \x09
#set_separator	,
#empty_field	(empty)
#unset_field	-
#path	mydhcp
#open	2023-09-13-05-55-51
#fields	ts	SrcIP	SrcMAC	Hostname	ParameterList	ClassId
#types	time	addr	string	string	vector[count]	string
1539480862.362578	0.0.0.0	32:05:33:83:b1:e7	DESKTOP-QVGI2E4	1,3,6,15,31,33,43,44,46,47,119,121,249,252	MSFT 5.0
1539567778.980630	192.168.0.28	32:05:33:83:b1:e7	DESKTOP-QVGI2E4	1,3,6,15,31,33,43,44,46,47,119,121,249,252	MSFT 5.0
#close	2023-09-13-05-55-55

関連ソフトウェア

本プラグインはOsecTで利用されています。

関連リポジトリ

  • spicy-dhcp - ZeekオリジナルのSpicyに基づいたDHCPv4(Dynamic Host Configuration Protocol for IPv4)プラグインです。

ログの差分(DHCPv4-COMとZeekオリジナル)

フィールド DHCPv4-COM Zeekオリジナル 説明
ts 通信した時のタイムスタンプ
SrcIP ◯ (client_addr) 送信元IPアドレス
SrcMAC ◯ (mac) 送信元MACアドレス
Hostname ◯ (host_name) ホストの名前
ParameterList x DHCPクライアントとDHCPサーバ間でやり取りされるメッセージ内の設定情報
ClassId x デバイスのタイプやバージョン情報
uids x 通信に付けられた一意の識別子
server_addr x DHCPサーバのIPアドレス
client_fqdn x DHCPクライアントの完全修飾ドメイン名
domain x DHCPクライアントが所属するドメイン名
requested_addr x DHCPクライアントが要求したIPアドレス
assigned_addr x DHCPサーバによってクライアントに割り当てられたIPアドレス
lease_time x DHCPクライアントに割り当てられたIPアドレスのリース時間
client_message x DHCPクライアントのメッセージ
server_message x DHCPサーバのメッセージ
msg_types x メッセージのタイプ
duration x 通信の継続時間