Part1 前言:
很久没更文章了,最近沉迷于史,下班后在收拾完后,就早早关闭电脑,看史去了。
看了一些书,也有些书只是浅浅翻了几页,就不再理会,也有些书下载后从没翻过。
但是每次看史都会被书中刻画的人物所叹服,被作者的有趣拍绝,也会更加清晰自己的所愿。
回到文章本身,近期逛土司看到一个较为感兴趣的问题,也是研究思考了很久的事情。这里写下关于自己的思考来与大家探讨下这个问题。
Part2 正文:
在笔者的角度看来,威胁情报这个角度基于企业而言应该分为两种
分类
一种是已知安全风险,包括1day,已知攻击事件,已知钓鱼事件,数据泄露暗链风险。这里的已知是指互联网已知。
未知安全风险,包括0day,未知漏洞,未知暴露面等等。
实现理念:
已知安全风险:
建立的安全模式,在笔者的角度去理解的话就是做一个规则墙,对相关的问题做一个防范以及监测,难点在于如何减少成本的去获取到足够的信息。
未知安全风险:
对于未知的安全风险而言,前辈们也提出了很多理念,如针对整个开发生命周期而言,提出了SDL,安全左移,再到近些年的devsecops。
针对这些理念也引入了许多新型的技术去具体实现,
如容器技术,微服务技术,ast相关技术,soar技术,也都是基于理念而去做的具体实现。
涉及到的知识面及理念太广,要具体细讲也很难简短说的很清楚。
且对于里面的有些技术,笔者也尚未具备相关能力去细讲清楚。
因此这里主要讲ast技术,即黑盒和白盒方面的思路如何去做具体实现。
Part3 具体的落地实现方法:
已知的安全风险:
漏洞风险:
对于笔者而言,采用的模式有2个模块,
且因笔者是个人侧做的一些东西,因此很多东西大部分都调用借用其他大型平台达到笔者的目的。监测安全厂商的漏洞情报,以及重点单位安全厂商的漏洞补丁,如泛微,致远,用友,锐捷等系列的漏洞补丁,进而实现快速了解最新漏洞情况。
具体落地采用rss测绘及google可编程化引擎去实现落地。
poc等就采用反编译,反向代理,日志提取技术去实现。
钓鱼风险:
对于笔者而言,监测这块的风险更主要是想了解新型攻击手法思路。
因此笔者重点关注了 hacker news去监测每日国外的安全事件,以及各大厂商的rss测绘去实现钓鱼风险的监测对于厂商而言的话,如果不具备二进制分析能力,要实现落地就重点监测国内的威胁情报平台,获取相应的报告,进而实现快速知道哪些ip,哪些exe是威胁钓鱼。
如果具备相应的二进制的能力,下载相关的样本进而分析进而达到目的。
暗链风险:
这块对笔者而言,没有去具体的实现,但是基于笔者的想法看的话,如果是少量的网站情况下的话
可以采用爬虫测绘的思路去定时的监测一遍网站的情况,进而实现暗链监测的目的。
未知安全风险:
这里笔者提的ast技术其实也就是大家长谈的黑白盒技术
DAST技术:
黑盒测试技术,即在测试或运行阶段分析应用程序的动态运行状态。
它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该Web应用是否易受攻击。
我们平常做的渗透测试技术其实就是同样的行为,唯一区别在于这个是工具化实现,具备的能力更低端一些,具备一些缺陷,无法检测有些漏洞。
对于笔者而言,采用挖掘单个系统的话,尽量将流量均引入burp中去实现,笔者针对一个域名去利用burp插件去自动化的提取分析相关的接口,参数。而后利用xia_sql
burpbountyplus
autorepeater
burp的指纹识别等插件去进行一个自动化扫描污染过程,进而实现一个大概低交互的快速半自动化的渗透。
SAST技术:
白盒测试技术,在编码阶段对相应的代码进行分析,分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。
这个技术中,在笔者看来经历了四个阶段
第一阶段 正则匹配阶段,基于正则匹配技术去实现代码审计。
难点在于无法确定source是否可控,中间调用过程是否有过滤函数等情况。
第二个阶段基于ast抽象树思路去实现代码审计。
解决了source问题,但是难点还是在于无法处理好判断中间调用过程是否有过滤函数等情况。
第三个阶段基于ir/cfg思路去做代码审计。和上面一样还是无法展现出判断中间流问题。
第四个阶段:现在的codeql技术及joern技术,可以具体的表现出中间的调用过程,可以较好的辅助代码审计人员去做代码审计。
对于这块的技术
对于笔者而言,笔者主要采用第一阶段的思路及第四阶段的思路去具体实现 对于挖掘jsp等文件漏洞时。
笔者会直接采用正则匹配的思路去对相应的jsp做一个漏洞扫描,具体工具笔者采用利用javaid进而二开更改完善相应的规则,而后实现。对于java文件以及已知漏洞文件,笔者采用codeql,以及python脚本去快速提取相关的路由,而后结合正则匹配中的规则去实现快速快速审计。
IAST技术:
通过代理、VPN或者在服务端部署Agent程序,收集、监控Web应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。
一句话总结就是黑加白技术,有点rasp技术的味道(对于这块的技术对于笔者而言还在学习研究的过程中,怕误人子弟,不过多阐述)
Part4 后言:
这篇文章内容文字有点多,但希望能给大家带来一点点收获,如果有错误,望海涵及批评指教,如果有更好的思路,望指教。
终于写完了,可以在拖更一段时间了。
END
原文始发于微信公众号(goddemon的小屋):浅谈威胁情报