Input :: add_table関数を使用してIPとその対応するホスト名を検索し、conn_idレコードに挿入するbroスクリプトを作成しました。id.source_name &すべてのログファイルのid.destination_nameこれは、トンネルイベントが存在し、セグメンテーションエラーでbroがクラッシュする場合を除いて、正常に機能します。私はこれがカプセル化IDと関係があると考えていますが、実際には分かりません。私は各タイプのInfoレコードにsrc & dest名を追加することができますが、それはすべてのタイプを変更することを意味します。根本的に間違っているか、クラッシュの原因となっているトンネルコードにバグがありますか?それとも残念ながら、あなたがconn_id
レコードを拡張する必要はありません。このIPアドレスからホスト名を検索するためのスクリプト
export {
global host_table: table[addr] of Val = table();
}
redef record conn_id += {
src_name: string &optional &log;
dest_name: string &optional &log;
};
const host_file = “hosts.txt”
event bro_init() &priority=20
{
Input::add_table([$source=host_file, $name =“host_stream”, $idx=Idx, $val=Val, $destination=host_table]);
Input::remove(“host_stream”);
}
event new_connection(c: connection) {
if(c$id$orig_h in host_table) {
c$id$src_name = host_table[c$id$orig_h]$host;
}
if(c$id$resp_h in host_table) {
c$id$dest_name = host_table[c$id$resp_h]$host;
}
}
継続時間の処理を処理するためにConnレコードをタップした人に言います。 :) :) –