设为首页 收藏本站
查看: 1491|回复: 0

[经验分享] 基于OSSIM平台下华为交换机日志收集插件的开发

[复制链接]

尚未签到

发表于 2018-7-24 12:18:29 | 显示全部楼层 |阅读模式
  基于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_ACCE***ESULT=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="Source***ID"
  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[^,]*),Source***ID=(?P[^,]*),Destination***ID=(?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_***_id}
  userdata8={$dst_***_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+***Name=(?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={$***_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}
  完成插件编写之后就要进行反复测试与修改,待测试通过后就要进行插件导入工作,最后是插件启用,如下图所示。
DSC0000.jpg

  以上是华为交换机插件的一个例子,还有其他华为设备的日志也是照此编写,如果有不明白指出大家参阅《开源安全运维平台OSSIM最佳实践》一书或与该书作者联系。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-540790-1-1.html 上篇帖子: 华为路由器Eth-Trunk技术简介 下篇帖子: 10、【华为HCIE-Storage】--链路协议SCSI
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表