基于OSSIM平台下华为交换机日志收集插件的开发
2019独角兽企业重金招聘Python工程师标准>>>
基于OSSIM平台下华为交换机日志收集插件的开发
长期以来,大家在收集华为交换机日志是往往通过syslog协议转发的方式,将华为交换机日志转发到日志收集器上,简单存储,但这样并没有将日志标准化,也就是OSSIM中对日志的归一化处理,在《开源安全运维平台-OSSIM最佳实践》一书的第七章专门讲解了日志收集与插件的自定义,本文将继续本书内容,为大家分享华为交换机插件,根据书中讲解,我们在OSSIM Agent插件目录中建立插件名称,huawei.cfg,编写插件大致格式可按书里面内容编写,不过还需要注意插件的导入过程,下面举个华为插件的实际例子。
[DEFAULT]
plugin_id=1728
[config]
type=detector
enable=yes
source=log
location=/var/log/huawei.log
create_file=yes
process=
start=no
stop=no
startup=
shutdown=
[translation]
SESSION_TEARDOWN=1
BOTNET=2
DETECT=3
CMDRECORD=4
DISPLAY_CMDRECORD=5
LOAD_OK=6
UPDATESUCCESS=7
LOAD_FAIL=8
PASS=9
OUT=10
TRAPLOG=11
LOGIN_SUCCED=9
LOGIN_SUCCEED=9
FIREWALLATCK=12
USER_ACCESSRESULT=13
USER_OFFLINERESULT=14
DATASYNC_CFGCHANGE=15
CMDCONFIRM_UNIFORMRECORD=16
SAVE=17
STREAM=18
LOGIN=9
LOADSUCC=19
LINK_STATE=20
STATUSUP=21
IF_ENABLE=22
ONLINESUCC=23
HOT_INSERT=24
BOARD_ENABLE=25
CMDCONFIRM_UNIFORMRECORD=26
ACTIVATION=27
DEV_REG=28
GETSERVERR=29
VIRUS=30
BOARD_ABSENT=31
REMOVABLE=32
REBOOT=33
WARMSTART=34
NLOGINIT=35
TRAP=11
RECOVERSUCCESS=37
UPDATE_SUCCESS=38
ENGINE_OK=39
这里是正则表达式的例子,需要有一定基础哦
[0001 - Huawei]
event_type=event
precheck="Application"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\).*?:\s+(?P.*?)\(.*?Policy="(?P[^"]*)",\s+SrcIp=(?P[^,]*),\s+DstIp=(?P[^,]*),\s+SrcPort=(?P[^,]*),\s+DstPort=(?P[^,]*),\s+SrcZone=(?P[^,]*),\s+DstZone=(?P[^,]*),\s+User="(?P[^"]*)",\s+Protocol=(?P[^,]*),\s+Application="(?P[^,]*)",\s+Profile="(?P[^"]*)",\s+.*?(?:SignName|VirusName)="(?P[^"]*)",\s(?:DetectionType="(?P[^,]*)",)?.*?Action=(?P[^\)]*)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
protocol={$proto}
src_ip={$src_ip}
dst_ip={$dst_ip}
src_port={$src_port}
dst_port={$dst_port}
username={$user}
userdata1={$description}
userdata2={translate($severity)}
userdata3={$policy}
userdata4={$action}
userdata5={$det_type}
userdata6={$profile}
userdata7={$sig_name}
userdata8={$app}
userdata9={$dst_zone}
[0002 - Huawei Attack]
event_type=event
precheck="AttackType"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?P\S+)\/(?P\d)\/(?P[^\(]*).*?AttackType="(?P[^"]*)",\s+.*?interface="(?P[^"]*)",\s+proto="(?P[^"]*)",\s+src="(?P[^:]*):(?P\d+)\s+",\s+dst="(?P[^:]*):(?P\d+)\s+",\s+begin\s+time="(?P[^"]*)",\s+end\s+time="(?P[^"]*)",\s+total\s+packets="(?P[^"]*)",\s+max\s+speed="(?P[^"]*)",\s+User="(?P[^"]*)",\s+Action="(?P[^"]*)""
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($src_ip)}
dst_ip={resolv($dst_ip)}
src_port={$src_port}
dst_port={$dst_port}
username={$user}
protocol={$proto}
userdata1={$action}
userdata2={translate($severity)}
userdata3={$module}
userdata4={$begin_time}
userdata5={$end_time}
userdata6={$total_pkt}
userdata7={$speed}
userdata8={$interface}
userdata9={$attack}
[0003 - Huawei]
event_type=event
precheck="SourceVpnID"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?:\d{4}-\d{2}-\d{2}\s+\d+\d+:\d+:\d+)\s+(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\):IPVer=(?P[^,]*),Protocol=(?P[^,]*),SourceIP=(?P[^,]*),DestinationIP=(?P[^,]*),SourcePort=(?P[^,]*),DestinationPort=(?P[^,]*),BeginTime=(?P[^,]*),EndTime=(?P[^,]*),SendPkts=(?P[^,]*),SendBytes=(?P[^,]*),RcvPkts=(?P[^,]*),RcvBytes=(?P[^,]*),SourceVpnID=(?P[^,]*),DestinationVpnID=(?P[^,]*)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
protocol={$proto}
src_ip={$src_ip}
dst_ip={$dst_ip}
src_port={$src_port}
dst_port={$dst_port}
userdata1={$module}
userdata2={translate($severity)}
userdata3={$send_pkt}
userdata4={$send_b}
userdata5={$rcv_pkt}
userdata6={$rcv_b}
userdata7={$src_vpn_id}
userdata8={$dst_vpn_id}
userdata9={$module}
[0004 - Huawei]
event_type=event
precheck="AuthenticationMethod"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\).*?:(?P.*?)\(Task=(?P[^,]*),\s+Ip=(?P[^,]*),\s+VpnName=(?P[^,]*),\s+User=(?P[^,]*),\s+AuthenticationMethod="(?P[^,]*)",\s+Command="(?P[^,]*)""
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($ip)}
username={$user}
userdata1={$identifier}
userdata2={translate($severity)}
userdata3={$task}
userdata5={$vpn_name}
userdata6={$method}
userdata7={$command}
userdata8={$module}
userdata9={$description}
[0005 - Huawei updates]
event_type=event
precheck="Version"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\).*?:(?P.*?)\(SyslogId=(?P[^,]*),\s+(User=(?P[^,]*),\s+IP=(?P[^,]*),\s+)?Module=(?P[^,]*),.*?Version=(?P[^,]*),\s+(UpdateVersion=(?P[^,]*),\s+Status=(?P[^,]*),\s+)?Duration\(s\)=(?P[^,|\)]*)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($ip)}
username={$user}
userdata1={$version}
userdata2={translate($severity)}
userdata3={$module}
userdata4={$module1}
userdata5={$version1}
userdata6={$duration}
userdata7={$status}
userdata8={$module}
userdata9={$description}
[0006 - Huawei login logout]
event_type=event
precheck="IP"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\).*?:User\s+(?P\S+)\(IP:(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+ID:(?P\d+)\)\s+(?Plogin|logout)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($user_address)}
username={$username}
userdata1={$version}
userdata2={translate($severity)}
userdata3={$module}
userdata5={$id}
userdata6={$action}
userdata7={$module}
userdata8={$identifier}
[0007 - Huawei config]
event_type=event
precheck="ConfigSource"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\).*?configure changed.*?EventIndex=(?P\d),\s+CommandSource=(?P\d+),\s+ConfigSource=(?P\d+),\s+ConfigDestination=(?P\d+)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($hostname)}
userdata1={$version}
userdata2={translate($severity)}
userdata3={$module}
userdata4={$config_dst}
userdata5={$config_src}
userdata6={$command_index}
userdata7={$index}
userdata8={$identifier}
[0008 - Huawei access]
event_type=event
precheck="DEVICEMAC"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)(?P\d\d)(?P\S+)\/(?P\d)\/(?P.*?)\((?P\w)\).*?:.*?DEVICEMAC:(?P[^;]*);DEVICENAME:(?P[^;]*);USER:(?P[^;]*);MAC:(?P[^;]*);IPADDRESS:(?P[^;]*);TIME:(?P[^;]*);ZONE:(?P[^;]*);DAYLIGHT:(?P[^;]*);ERRCODE:(?P[^;]*);RESULT:(?P[^;]*)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($ip)}
username={$user}
userdata1={$result}
userdata2={translate($severity)}
userdata3={$module}
userdata4={$dec_mac}
userdata5={$dev_name}
userdata6={$errcode}
userdata7={$identifier}
userdata8={$daylight}
userdata9={$zone}
[0009 - Huawei login]
event_type=event
precheck="User login succeed"
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?P\S+)\/(?P\d)\/(?P.*?):.*?User login succeed.*?username\s+=\s+(?P[^,]*),\s+loginIP\s+=\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}),\s+loginTime\s+=\s+(?P[^,]*),\s+loginType\s=\s(?P[^,]*),\s+userLevel\s+=\s+(?P[^,|)]*)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($ip)}
username={$user}
userdata1={translate($severity)}
userdata2={$module}
userdata3={$login_time}
userdata4={$login_type}
userdata5={$level}
[0030 - Huawei generic]
event_type=event
regexp="(?P\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*?(?P\S+)\s+(?:%%)?(?P\d\d)?(?P\S+)\/(?P\d)\/(?P[^:|\(]*)(?:\((?P\w)\))?.*?:(?P.*)"
date={normalize_date($syslog_date)}
device={resolv($hostname)}
plugin_sid={translate($brief)}
src_ip={resolv($hostname)}
userdata1={translate($severity)}
userdata2={$module}
userdata3={$identifier}
userdata4={$msg}
userdata5={$version}
完成插件编写之后就要进行反复测试与修改,待测试通过后就要进行插件导入工作,最后是插件启用,如下图所示。
以上是华为交换机插件的一个例子,还有其他华为设备的日志也是照此编写,如果有不明白指出大家参阅《开源安全运维平台OSSIM最佳实践》一书或与该书作者联系。
转载于:https://my.oschina.net/chenguang/blog/630753
基于OSSIM平台下华为交换机日志收集插件的开发相关推荐
- linux网卡握手速率模式,一种基于Linux平台下的网卡速率和双工模式测试的方法与流程...
本发明涉及计算机技术领域,更具体的说是涉及一种基于Linux平台下的网卡速率和双工模式测试的方法. 背景技术: 随着社会经济的发展和互联网技术的进步,如今把计算机网络使得我们的生活变得更加方便,快捷. ...
- ossim监控mysql_基于OSSIM平台的漏洞扫描详解
Ossim 中漏洞扫描详解 Openvas是一套开源漏洞扫描系统,如果手动搭建需要复杂的过程,花费不少人力和时间成本,因为它是套免费的漏洞扫描系统,功能上不逊色于商业版的漏洞扫描器,受到不少用户的青睐 ...
- linux日志采集配置,linux下配置rsyslog日志收集服务器案例
原标题:linux下配置rsyslog日志收集服务器案例 环境配置 centos6系统 client1:192.168.1.33 centos7系统 client2:192.168.1.44 cent ...
- 基于.net平台下大型分布式HIS系统之药房药库系统-石曼迪-专题视频课程
基于.net平台下大型分布式HIS系统之药房药库系统-159人已学习 课程介绍 本次课程重点讲解药房药库系统中典型的几个环节,如:入库.入库审核.盘点.盘点审核.药房划价.门诊发药.住 ...
- 基于MacOSX平台下的二维码扫码功能
基于MacOSX平台下的二维码扫码功能 最近项目接受了一个需求,要在macOS的系统上实现一个二维码扫码的功能.通过多方面的学习,最终实现了要求,具体的实现步骤将会在下面展示. 核心功能模块 实现途径 ...
- 基于kfaka和zookeeper的nginx日志收集平台,项目详细步骤
目录 一.项目环境: 二.项目介绍: 三.项目步骤 3.1 环境准备 3.1.1 准备好虚拟机 3.1.2 配置好静态ip 3.1.3 修改主机名以及写好域名映射关系 3.1.4 安装基本软件 ...
- execve系统调用_张凯捷—系统调用分析(3) (基于最新Linux5.0版本系统调用日志收集系统)...
在上一篇文章<系统调用分析(2)>中介绍和分析了32位和64位的快速系统调用指令--sysenter/sysexit和syscall/sysret,以及内核对快速系统调用部分的相关代码,并 ...
- linux收集完整技术支持信息的命令有,Linux下常用的日志收集命令(RedhatSuSe)
Linux下日志的采集和分析是一个非常重要的工作,一般厂商在你需要技术支持的时候,都需要你通过对应指令收集系统的信息,我这边列举下常用的两个Linux厂商的收集命令(Redhat Linux以及SuS ...
- 华为交换机记录日志_华为交换机日志导出 华为交换机日志导出命令
怎么查看华为交换机的系统日志? 如果需要, 您可以手动将事件添加到您要设置的每个事件中,并将其添加到您要踩踏的电话中. 华为手机自有日历: 无一次性设置, 无共享日历链接, 只从其他日历导入华为日历, ...
- android教育游戏设计方案,基于Android平台的儿童教育游戏的设计与开发
摘要: 在通讯技术和信息技术的不断发展时代,智能手机(平板电脑)等移动终端的普及和功能的不断强大,基于移动终端的移动学习的理念渐渐深入人心且被广大的学习者所青睐,逐渐成为一种新的学习方式.学习者在面对 ...
最新文章
- forward 和redirect的区别
- python自学行吗-自学python有用吗?
- 恶意文件 大数据案例库_无文件恶意软件感染完整指南
- sql or 与and同时有时要注意
- 常系数齐次线性微分方程的解法
- java 编译java文件_如何编译JAVA文件
- 电工与电子技术基础【2】
- 中仪股份管道机器人_中仪股份 X5-HT 管道CCTV检测机器人
- Filesystem Hierachy Standard 文件系统层级标准详解
- 自学软件测试需要多久?能掌握吗?
- 匿名游走 Anonymous Walk
- mysql 重做日志原理_Oracle恢复内部原理(重做日志)
- 用Python实现微信定时发送消息
- Derby 和 Geronimo 使用感觉
- delphi Base64 编解码
- 用telnet+openocd+jtag_dpi+vcs仿真调试RISCV的cpu
- OpenJudge NOI题库 1.5编程基础之循环控制
- ural1051(数学题)
- 视频剪辑srt字幕的添加步骤,三分钟学会这个方法
- python理解以及conda使用