mcafee siem api python包装器

msiemp的Python项目详细描述


Logo

McAfee Siem API Python包装器

Build Status

本项目旨在为McAfee Siem API提供一个基本的API包装器,以帮助它 无障碍和Python。

这个python模块目前正在实验中

主要特点

  • ESM监控(进行中的工作)
  • 数据源操作:添加、编辑、删除-包括客户端数据源(正在工作)
  • 报警操作及查询:过滤、取消确认、删除
  • 事件查询和内置解决方案SIEM查询limit
  • 观察列表操作:列出观察列表,添加值(正在工作)
  • 单个稳定会话处理程序和内置异步作业

文档和链接

安装

pip install msiempy

认证和配置设置

该模块提供了针对siem的单点身份验证,因此在编写脚本时不必担心身份验证问题。这意味着您需要使用配置文件预先配置身份验证。

配置文件(默认情况下)安全地位于用户目录中,因为它包含凭据

  • 对于Windows:%APPDATA%\.msiem\conf.ini
  • 对于mac:$HOME/.msiem/conf.ini
  • 对于Linux:$XDG_CONFIG_HOME/.msiem/conf.ini或:$HOME/.msiem/conf.ini
[esm]
host = HOST
user = USER
passwd = PASSWORD's BASE64

[general]
verbose = yes
quiet = no
logfile = /var/log/msiempy/log.txt
timeout = 30
ssl_verify = no
output = text

要生成密码的base64,可以使用base64unix命令,例如:echo 'p@ss0rd' | base64

您还可以使用python动态编辑配置。

>>>frommsiempyimportNitroConfig>>>config=NitroConfig()>>>config.iset('esm')Enter[esm]host.Press<Enter>tokeepempty:<typehere>Enter[esm]user.Press<Enter>tokeepempty:<typehere>Enter[esm]passwd.Press<Enter>toskip:<typehere>>>>config.iset('general')[...]>>>print(config)Configurationfile:/Users/username/.msiem/conf.ini{'esm':{'host':'***','user':'***','passwd':'***=='},'general':{'verbose':'no','quiet':'no','logfile':'','timeout':'60','ssl_verify':'no','output':'text'}}>>>config.write()

示例

警报

打印一年中名称匹配的所有unacknowledged警报'IPS alarm',并触发事件消息匹配'Wordpress'然后加载触发警报的真正的Event对象(从查询模块),并打印它们的所有json表示。

检索的报警数由page_size属性定义。

importmsiempy.alarmalarms=msiempy.alarm.AlarmManager(time_range='CURRENT_YEAR',status_filter='unacknowledged',filters=[('alarmName','IPS alarm'),('ruleMessage','Wordpress')],page_zize='400')alarms.load_data()print(alarms)alarms.load_events(extra_fields=['HostID','UserIDSrc'])[printalarm['events'].jsonforalarminalarms]

见:FilteredQueryListAlarmManagerAlarm

事件

根据目标IP和主机名筛选器查询事件,使用围绕SIEM查询limit的压缩parralel任务加载数据,并打印选定的数据字段。

max_query_depth参数指定查询最多可以使用的子分区数(默认为零)只有在当前查询设置尚未完成时,查询才会被分割第一个划分是通过将查询的时间范围划分为持续时间为delta的时段来完成的,然后将查询划分为指定数量的slots。使用workers参数控制异步作业的数量

importmsiempy.eventevents=msiempy.event.EventManager(time_range='LAST_3_DAYS',fields=['HostID','UserIDSrc'],filters=[msiempy.query.FieldFilter('DstIP',['8.8.0.0/8',]),msiem.query.FieldFilter('HostID',['mydomain.local'],operator='CONTAINS')],limit=500,max_query_depth=2)events.load_data(delta='2h',slots='4',workers=5)print(events.get_text(fields=['Alert.LastTime','Alert.SrcIP','Alert.BIN(4','Alert.BIN(7)','Rule.msg']))

见:FilteredQueryListEventManagerFieldFilterEvent

ESM

打印一些esm信息这项工作仍在进行中

>>>importmsiempy.device>>>esm=msiempy.device.ESM()>>>esm.version()'11.2.1'>>>esm.recs()[('ERC-1',144116287587483648)]>>>esm.buildstamp()'11.2.1 20190725050014'

见:ESM

数据源

加载所有数据源。这项工作仍在进行中

importmsiempy.devicedevtree=msiempy.device.DevTree()

见:DevTreeDataSource

观察列表

打印列表。这项工作仍在进行中

importmsiempy.watchlistwatchlists=msiempy.watchlist.WatchlistManager()print(watchlists)

见:WatchlistManagerWatchlist

贡献

如果你喜欢这个项目,并认为你可以帮助它变得更好,有很多方法可以做到:

  • 为新功能建议或错误创建新问题
  • 实现现有问题
  • 帮助改进文档
  • 向你的同事、朋友、博客或任何其他渠道传播有关该项目的信息
  • 任何你能想象的事情
  • 任何贡献都将是巨大的帮助,我将非常感谢!如果您有任何问题,请创建一个新问题,或通过tris.la.tr@gmail.com联系我

运行测试

./setup.py test
[...]
----------------------------------------------------------------------
Ran 13 tests in 182.815s

OK

不超过5分钟

错误报告

在配置文件中配置日志文件报告并执行:
cat /path/to/your/log/file | cut -c 25-500 | grep -i error | sort | uniq

免责声明

这是一个非正式的项目,由McAfee赞助或支持,在C。如果不小心删除了所有数据源,请不要致电支持人员(或我)产品访问将始终限于“安全”方法和McAfee的知识产权

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java希望直接扫描要上传到网页的文档   java JavaFX使对象可见,但不使用(忽略)点击   java LibGdx奇怪的纹理行为   java JavaFx ComboBox在第一次单击时未获得正确的值   api WebDav服务器库最好使用Java   java在Android中维护应用程序状态   java保存在Android中拖放RecyclerView后所做的更改我已经阅读了所有内容   无法读取项目中所需库tomcatembedwebsocket的java存档,或者该存档不是有效的ZIP文件   c#类在系统中有哪些关联?如何在UML中最好地表示它们?   java如何使用bazaar访问两台计算机上的同一文件夹   Java易失性与缓存一致性   java如何解决http11。校长:例外?   java liferaymavenplugin从maven Liferay 6.2.5(6.2 ga6)部署war   安卓的jar for java在哪里。木卫一。文件   java邻接矩阵中BFS的顺序是什么?   虚拟机如何从java启动linux虚拟机?   向DefaultListModel添加元素时java JList未更新   java JMSListener批注无法与REST服务一起使用   java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?   java DropWizard Hibernate doc想说什么?