1
我已经使用Input :: add_table函数编写了一个bro脚本来查找IP及其相应的主机名并将它们插入到conn_id记录中 - 以便我拥有id.source_name &每个日志文件中的id.destination_name。这可以正常工作,除非发生隧道事件,并且会导致分段错误导致Bro崩溃。我怀疑这是与封装ID有关,但我不知道。我知道我可以为每个类型的Info记录添加src & dest名称,但这意味着需要修改每种类型。我试图做的根本不正确或隧道代码中导致崩溃的错误?还是有更好的办法做到这一点Bro脚本从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;
}
}
说说挖掘到康恩记录来处理持续时间的人。 :) :) –