实践|病毒情报自动化闭环运营
2023-7-10 10:26:23 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

病毒情报
ioc
BACKGROUND
正常情况下,企业的病毒情报依赖于安全厂家设备自带的 ioc,然后通过月度或者季度,或者牛一点的就每天对 ioc 库进行更新。那遇到新发现的病毒情报,厂家肯定无法实时更新然后同步到企业。所以我决定自己动手
Introduce
什么是病毒情报?
INTRODECE
病毒情报(Virus Intelligence)指的是关于计算机病毒和恶意软件的信息和情报数据。它是针对恶意软件的研究、分析和监测的结果,用于了解和对抗不断变化和演化的威胁。
What's the use
病毒情报对企业有什么用?
What's the use
病毒情报对企业来说是关键的安全资源,它提供了关于当前和新兴威胁的信息,帮助企业了解各种恶意软件、攻击向量和攻击手法。这使企业能够更好地了解威胁环境,并根据最新的威胁情报来改进其安全防御策略。
Ideas
思路
Ideas

然后我的思路是这样的, 通过以下四个步骤来完成我的自动化闭环运营。

Practice
实践
01
获取情报源
目前我使用的源是 MalwareBazaar 跟 Abuseipdb ,当然后续有新的或者更好的还会不断添加。
02

为什么使用他们?

  • MalwareBazaar:

它是一个公开的恶意软件样本库和情报平台,我们可以访问大量的恶意软件样本,并与其他专业人士共享他们的分析结果和发现,这种协作和知识共享的方式有助于更好地了解恶意软件的行为。它不仅提供了恶意软件样本的下载,还包含了样本的元数据、文件哈希值、IOC 等信息。最重要的是,支持 API。
  • 抽样评估:

某步云在线结果:没有新样本更新

某60沙箱:时间:2023-02-07 09:48:52。稍微慢了 8 h 左右

某信沙箱:时间:2023-02-08 07:41:41。稍微慢了 30 h 左右

vt 沙箱:时间:2023-02-08 13:40:23 。稍微慢了 36 h 左右

很明显,这些的时间都慢 MalwareBazaar
  • Abuseipdb

它是一个专注于帮助打击网络上的黑客、垃圾邮件和滥用行为的项目。它提供了一个中央黑名单,供网站管理员、系统管理员和其他感兴趣的人员报告和查询涉嫌恶意活动的 IP 地址。同样 AbuseIPDB 也支持API。
  • 对新报告恶意 IP 地址进行抽样评估

某步:

某60

某信

03
 提取 ioc 
这一步的操作路线是这样的

提取 ioc,我这里用的是通过 python 调用 API  来实现的,这里的存储需要好好想一下。因为想要做到全自动化,我们必须把 ioc 存储到其他提取 ioc 的设备能够访问到的地方,再加上要考虑度量,每个月每个季度能获取多少 ioc,然后这里选择用了 jira。
MalwareBazaar 部分代码如下
response = requests.post('https://mb-api.abuse.ch/api/v1/', data=data, timeout=30, headers=headers,proxies=proxies)json_response = response.json()

if(args.field): query = ".data[]." + args.field json_response = jq(query).transform(text=json_response, text_output=True)

today = datetime.today()yesterday_9 = (today - timedelta(days=1)).replace(hour=9, minute=0, second=0, microsecond=0)today_9 = today.replace(hour=9, minute=0, second=0, microsecond=0)

results = []

for i in range(len(json_response['data'])): data_time = datetime.strptime(json_response['data'][i]['first_seen'], '%Y-%m-%d %H:%M:%S')

if yesterday_9 <= data_time < today_9: first_seen = "first_seen: " + json_response['data'][i]['first_seen'] sha256_hash = "sha256_hash: " + json_response['data'][i]['sha256_hash'] sha1_hash = "sha1_hash: " + json_response['data'][i]['sha1_hash'] md5_hash = "md5_hash: " + json_response['data'][i]['md5_hash'] file_type = "file_type: " + json_response['data'][i]['file_type'] testttt = first_seen + "\n" + sha256_hash + "\n" + sha1_hash + "\n" + md5_hash + "\n" + file_type + "\n" results.extend(testttt.splitlines())
取了每天 9 点到第二天 9 点的,因为默认设置 9 点自动化运行,然后再将获取到的 ioc 贴到 jira 就完事了,大致效果如下。

Abuseipdb 部分代码如下
url = "https://www.abuseipdb.com/statistics"re= requests.get(url)re.encoding="utf-8"#改为utf-8格式,不然可能读取到的是乱码selector=etree.HTML(re.text)#解析网站,变成HTML格式

xPath1 = "/html/body/div[3]/div/div/div/div/div[4]//text()"xPath2 = "/html/body/div[3]/div/div/div/div/div[5]//text()"xPath3 = "/html/body/div[3]/div/div/div/div/div[6]//text()"xPath4 = "/html/body/div[3]/div/div/div/div/div[7]//text()"xPath5 = "/html/body/div[3]/div/div/div/div/div[8]//text()" widelyIP=selector.xpath("/html/body/div[3]/div/div/div/div/aside[1]//text()")recentlyIP=selector.xpath(xPath1)+selector.xpath(xPath2)+selector.xpath(xPath3)+selector.xpath(xPath4)+selector.xpath(xPath5)
效果如下

接下来就交给 SOAR 了,让它提取工单 ioc 对设备进行赋能,然后抽验检验 ioc 对 jira 工单进行闭环,soar 的流程图如下

04
自动化运营

通过上面的自动化操作,我完成了病毒情报的自动化闭环运营。

1、每天定时自动化获取 IOC

2、存储 jira 工单便于度量

3、SOAR 自动化提取赋能安全设备

4、SOAR 自动化验证闭环 JIRA 工单。

最终效果流程如下:

05
Finally
文章中的一些问题希望各位大佬不吝赐教,有更好的方式方法也可以一同探讨,后续还有一些新的处置想法,有机会再与大佬们分享。对于一些错误之处希望各位师傅多多指正!

文章来源: https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&mid=2247488860&idx=1&sn=afae4caa542f6890eaca714673eeea59&chksm=fad4c84bcda3415d0ed8ccafe801d6649e766002947b72be6da0ab2298ef63f2e36b71b5f26a&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh