Pipeline 引用外部数据源最佳实践

场景解析

在企业网络安全日志处理场景中,防火墙、入侵检测系统(IDS)等设备会持续产生大量日志,记录网络流量、访问请求、异常事件等基础信息,但这些原始日志仅能呈现表面现象,难以全面剖析安全威胁,需要在日志处理过程中引入外部数据增强安全分析能力。

例如,某天 IDS(入侵检测系统) 日志记录到多个来自同一 IP 地址的异常端口扫描行为,原始日志仅显示时间、源 IP、扫描端口等信息,无法判断该 IP 是否为恶意攻击源,也不清楚其背后的攻击意图。此时,就需要引用外部数据来丰富日志内容。可以从威胁情报平台获取该 IP 地址的历史攻击记录、所属的恶意组织标签等数据,从地理位置数据库获取其所在地区、网络服务提供商等信息,并将这些外部数据与原始日志进行关联整合。

经过数据融合后,原本孤立的日志事件就有了更丰富的背景信息。安全人员可以通过这些丰富的日志数据,快速判断该 IP 地址是否属于已知的恶意攻击源,是否存在特定的攻击目标偏好,进而采取更精准的安全防护措施,如封禁 IP、加强对应端口的防护策略等。同时,还能基于这些数据对攻击模式进行分析,预测潜在的安全风险,提前完善安全防御体系,提升企业整体的网络安全防护能力。

方案解析

观测云 Pipeline 是一个可编程数据处理器,使用观测云开源的 Platypus 语言作为运行时,能够在边缘节点进行大规模数据分析和特征提取。Datakit Pipeline 提供以下两个内置函数用于从外部表引用数据:

  • query_refer_table(),函数原型为 fn query_refer_table(table_name: str, key: str, value),它能够查询 table_name 表中 key 列为 value 的行,将返回的首行数据丰富至日志中;
  • mquery_refer_table(),函数原型为 fn mquery_refer_table(table_name: str, keys: list, values: list),相比 query_refer_table(),该函数能够使用多个列和值对 table_name 表进行查询。

在以上函数的支持下,Pipeline 能够使用外部表对安全日志进行丰富,以 Zeek conn.log 为例,丰富前的日志如下:

{
    "ts": 1591367999.3059881,
    "uid": "CMdzit1AMNsmfAIiQc",
    "id.orig_h": "192.168.4.76", # 源 IP
    "id.orig_p": 36844,
    "id.resp_h": "192.168.4.1",
    "id.resp_p": 53,
    "proto": "udp",
    "service": "dns",
    "duration": 0.06685185432434082,
    "orig_bytes": 62,
    "resp_bytes": 141,
    "conn_state": "SF",
    "missed_bytes": 0,
    "history": "Dd",
    "orig_pkts": 2,
    "orig_ip_bytes": 118,
    "resp_pkts": 2,
    "resp_ip_bytes": 197,
    "ip_proto": 17
}

假设在 Pipeline 中引用了风险情报表,此表中记录了危险 IP,包含 I

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值