课程介绍
这次我将从反勒索安全策略制定、软件架构。驱动代码编写、应用层核心代码编写、界面编写、web端代码编写,带大家一起亲手开发出一款属于自己的反勒索软件。
开课原因
1.做最有意义的事情
\qquad以前听一位大佬讲道,大概是在2017年的时候他的一个小兄弟去到一个美国的二三流安全公司去面试,面试官当时考了他一些问题,要求至少能回答出一半以上的问题。什么意思呢,我们假设面试官自己知道有十种从内核里面往进程注入DLL的方法,那么他要求应聘人员至少要答出5种以上,考的问题大概全是这一类的问题,当时这位大佬看到这些问题的时候也是心里一惊,当这位大佬看到这些问题的时候他说如果不看任何资料直接说自己也只能说出七八种,没办法答全。
\qquad在我看来,至少能回答出5种以上的这个技术要求,如果对标到国内搞安全开发的技术人员身上的话,那么他至少要有四五年的开发经验,也就是说美国的一家二三流的安全公司对研究生的技术要求相当于国内高安全驱动开发的技术人员四五年的工作经验。懂的都懂,国内研究生毕业时候的水平跟高安全驱动开发四五年工作经验的开发人员的技术水平,这种差距我想大家也都心里有数。可能那位小兄弟当时觉得并没什么,但是这件事情·,这种差距真的是把我震撼到了。然后再反过来,从我家自己身上来判断,我自己认为有点意思的项目我又没资源去弄,单纯的造轮子能够混口饭吃但是没意义啊!
人生苦短不要虚度光阴啊,那倒不如把自己知道的知识跟大家分享出来,为初入安全领域的小伙伴们尽一份自己的绵薄之力。而且就目前来说,我认为最有价值,也是最有意义的事情,就是开课。虽然说有价值和有意义的事情一般都赚不到钱,但是《增广贤文》上不是有说嘛,“但行好事,莫问前程”。这是第一个原因,也是最重要的原因。
2.抛砖引玉
\qquad在线课程我也有关注过一些,有些会教你写驱动,有些会教你写应用,以及如何搞逆向,如何写界面。但可能是我孤陋寡闻了,到现在我都没有看到一个在线课程,从实际的项目角度切入,去把这些技术与知识点结合起来进行讲解和运用的,我确实没有看到。所以我想做一下尝试,这样呢,既能为新人带来一道不一样的菜肴,也能为其他同仁提供一个不一样的参考,这就是我说的盘抛砖引玉,我们再往大了说也算是为我们这个安全领域略尽绵薄之力。/狗头
课程概述
\qquad 本次课程我会按照大致如下的结构进行
\qquad 让我们回到2015年底到2016年初的时候,在当时的安全领域有这么多发展方向的前提下,怎样去预先判断出勒索病毒必然会流行,当你判断出勒索病毒会流行之后肯定要去分析一下这种病毒可能带来的威胁,这就要求我们要分析大量的威胁样本,从样本中归纳出勒索病毒的共性,就是说他肯定绕不出哪些技术点,这叫共性归纳。共性归纳出来以后就要产生相应的对抗思路,然后就要依据对抗思路做模块拆分。举个例子,比如说诱饵文件技术和分类备份技术,这都是对抗勒索病毒比较有效的思路,当你的思路产生以后,这两个功能还不能成为一个产品,想要成为一个产品肯定还要添加其他的模块,比如说自我保护、界面、服务、清除模块等等,包括安装包、卸载包这一类的。做一个模块拆分,使其功能比较丰满,在这个前提下才能做架构设计。这样设计起来思路清晰,层次分明,做起来比较一目了然。
主接口与其他说明
界面里的所有接口均是调用一个.h函数 高度模块化标明注释,若需换界面只需重写一下界面函数,然后调用.h函数,部署之后里面的功能依旧同之前一样,只是换了你自己写的界面。代码已完整注释,方便初学者学和研究。