实践|病毒情报自动化闭环运营

文摘   科技   2023-07-10 10:22   日本  
病毒情报
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
文章中的一些问题希望各位大佬不吝赐教,有更好的方式方法也可以一同探讨,后续还有一些新的处置想法,有机会再与大佬们分享。对于一些错误之处希望各位师傅多多指正!









A9 Team
A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践,期望和朋友们共同进步,守望相助,合作共赢。
 最新文章