想开发一个安全软件,怎么搞?

今天跟大家介绍一下,开发一个像360、QQ电脑管家这样的安全软件,有哪些核心技术,或者说哪些核心组件是必不可少的?

反病毒引擎

首先,第一个必不可少的就是反病毒引擎。安全软件最早的核心也就是这个东西,它的目的就是检测一个文件是不是恶意软件。

反病毒引擎主要通过对文件进行静态分析,识别恶意文件的特征,与自己的病毒特征库进行匹配,来判断目标是否是恶意的。

这里面主要用到的技术有文件格式识别、加壳脱壳技术、加密解密技术、可执行文件的反汇编、指令级的特征匹配、虚拟执行、样本家族团伙基因判别、机器学习等等。

HOOK驱动

安全软件的主要任务,就是要保护我们的电脑不受病毒、木马这些恶意软件的侵害,除了能通过静态分析识别已知的威胁,还要守住计算机的安全防线,防止被恶意软件攻破。

那如何防守呢?

安全软件需要感知计算机上发生的一切事情,这包含,每一个进程线程的创建、每一个文件的创建和读写、每一次网络连接的建立,甚至每一次系统服务的调用。

安全软件是通过HOOK技术来做到这一切的。

安全软件使用内核驱动程序,劫持应用程序通向操作系统内核的关键入口,从而监控所有进程的行为。

几乎每一个安全软件都有这么一个驱动程序,它内部有一套HOOK框架,提供编程接口给其他驱动程序调用,比如360中大名鼎鼎的hookport.sys

主动防御驱动

光有一个HOOK框架驱动不行,还得配套有一个主动防御驱动,负责完成具体的安全防御。

应用层上一般会有一个主动防御进程,负责从安全软件云端服务器接收控制指令,下发最新的防御规则,最新的特征库,比如拦截哪些程序,拦截哪些操作等等。

主动防御进程拉取到这些信息后,下发给内核空间的主动防御驱动程序,由它来具体执行对应的拦截行为。

文件过滤驱动

通过HOOK驱动来进行监控,有时候并不能完全解决问题。有一些底层软件,可以绕过系统API调用,这样一来HOOK驱动就监控不到了。

因此,安全软件一般还会配套有一个文件过滤驱动,通过文件系统提供的接口实现更底层的文件监控功能。

这一类驱动一般使用的技术有minifilter、sfilter等。

网络监控驱动

和文件过滤驱动类似,对于网络同样需要一个更底层的驱动程序,来监控计算机中所有的网络连接,通过操作系统网络架构底层的接口,监控计算机进进出出所有的数据包,将网络通信情况完全了如指掌。

这一类驱动使用的技术有TDI、NDIS、WFP等。

沙箱驱动

除了守护我们的计算机,安全软件的另外主要工作还是分析恶意程序。

前面提到的反病毒引擎主要是静态分析,但静态分析有一定的局限性,很多时候程序的恶意需要运行以后才会暴露出来。因此,动态分析技术少不了。

虽然网络安全技术发展了很多年,但动态分析用到的主要技术还是“沙箱分析”。

所谓沙箱分析,就是提供一个仿真的环境,把目标丢进去,让它跑起来,等到它原形毕露,是不是恶意就能一目了然。

因此,许多安全软件也会提供一个沙箱驱动,通过内核隔离,模拟出一个“安全”的执行环境,让目标在其中运行。

攻防驱动

安全软件目标这么大,自然会招来很多恶意软件的攻击。除了恶意软件,有些安全软件互相为了抢夺用户,也会互相攻击。

所以,安全软件必须加强自身的防御。

前面提到的主动防御,属于正规军作战,也包含有保护自己的能力,但面对同样是内核级的攻击对手,这一招基本就收效甚微了。

因此,安全软件一般还会有一个攻防驱动,通过各种手段和对手作战,保护自己,这里面用到的技术就五花八门了。

总结

总结一下,开发一款安全软件,主要有三方面的事情要做:

看完这篇文章,你有什么收获吗,写作不易,欢迎动动手指转发分享。

②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值