You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
8.1 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 开篇词 | 别说你没被安全困扰过
你好,我是何为舟,很高兴能在这里和你聊安全。
我喜欢安全,本科和硕士读的都是信息安全专业。在工作中,我会把自己想象为一名仗剑走天涯的侠客,哪里有安全问题,我便会拔刀相助。我喜欢那种解决完问题后的快感,那场景就好像有人和我说,“感谢大侠的救命之恩”。
我现在是美团点评的安全平台负责人。在加入美团之前,我曾任职于新浪微博,负责网络安全和业务安全方向的整体研发和设计工作,这其中包括攻防对抗、安全工具开发、风控系统等。
作为一个安全侠客,我打过全球流行的网络安全竞赛[CTF](https://baike.baidu.com/item/ctf/9548546),做过渗透测试,还考取了信息系统安全专业认证。在安全这件事情上,我还真有挺多话题想和你聊。
## 为什么要学安全?
首先不知道你是否还记得2017年9月美国知名征信公司 Equifax 的数据泄露事件这事导致了1.45 亿美国居民个人隐私信息被泄露。受事件影响Equifax公司市值瞬间就蒸发了30亿美元最后还赔偿给用户4.25 亿美元可谓损失惨重。后来Equifax公司复盘了安全事故的原因发现这个事故的罪魁祸首居然是一个早已被披露出来的安全漏洞叫作Apache Struts真是让人哭笑不得。
你说这事难吗现在看起来一点都不难。但问题出现在什么地方呢我觉得核心点是Equifax公司的工程师可能没有安全意识也没有把安全当成一个优先级很高的事情去做。
同样的事情其实还有很多我觉得Equifax公司的低级安全事件应该给我们每一个程序员敲响警钟**我们在追求开发效率的同时,一定要把“安全”这俩字“放在心上”。**
**其次,从公司的角度来说,安全同样是不可或缺的一环。**
任何一家公司都会存在安全的刚需问题,肯定需要有人来解决它。但是,公司招人组建安全团队,需要投入较大的成本。而这部分安全的成本,很多时候并不产生直接的收益。因此,对很多公司来说,业务都没成熟,就去考虑安全,是不合算的。这也就产生了一种现状:**小公司没有安全,大公司都在“补”安全。**
从安全发展角度上来讲,这种前期不重视安全,后期再补安全的做法,是很不利的。一方面,在发展前期留下了极大的安全隐患,公司可能在一次攻击后就彻底垮台了。另一方面,后期补安全,会因为安全去改动已经发展成熟的业务,导致安全和业务产生冲突,从而阻碍安全发展。
于是,矛盾点就产生了:很多规模不大的公司不愿意投入成本去做安全,但从长远考虑又需要安全。那该怎么办呢?我认为,**如果业务的开发和管理人员,能够具备基础的安全知识,尽早做好安全规划,就能够以很低的成本满足公司前期的安全诉求**。
因此,如果你想要在企业的全面发展中占据一席之地,或者是在管理方向上走得更“远”,那么我建议你,尽早地掌握安全知识,掌握企业安全防护的专业技巧。
## 我们究竟该怎么学习安全呢?
你可能会存在这样的顾虑:安全可能需要花上几年时间学习和实践才能小有所成,时间成本是否有点高呢?确实,想要真正做好安全,时间的磨砺是不可或缺的。但是,这并不意味着你需要几年后再去从事安全相关的工作。正如上面所说的,公司初期的安全需求相对简单。因此,你完全可以快速入门,然后投入到公司的安全需求中去。接下来,**你就可以随着公司的发展,边学习边做安全**。
那么,学习安全是否门槛很高、难度很深呢?学习安全的过程中,你可能需要懂前端、懂后端、懂操作系统、懂网络。需要懂的知识非常多,但幸运的是,对于安全入门来说,宽度比深度更重要。因此,对于这些基础知识,深刻理解自然更好,但是懂些皮毛也足够了。在专栏中,我也会由浅入深,对安全需要的基础知识进行讲解。
你还可能会问:没有实践的机会,我能不能学好安全呢?确实,实践出真知,个人安全能力的提升,需要经过不断的磨练。跟着专栏进行学习,我相信你可以具备解决安全问题的基本能力。为了帮助你快速实践,我会通过思考题的形式,去引导你分析自己所在公司的现状和未来。你可以将你的所思所想发表出来,共同探讨,进行“沙盘演练”。
总结来说,本次专栏的定位是**安全基础课**。在专栏的覆盖面上,我会力求全面,让你能够了解安全的方方面面。我希望,通过对安全专栏的学习,你能够具备安全思维,在遇到安全问题的时候,有解决问题的方向和路径。
这里,我为你准备了一张安全攻防知识全景图,包含你需要掌握的所有相关知识。建议你最好保存下来,在之后的学习过程中,有针对性地去训练自己。
![](https://static001.geekbang.org/resource/image/45/38/457cef0e4b6df41aa80ade3a85e92538.jpg)
在内容设计上,我根据安全方向的不同,把专栏内容划分为五个模块。
在第一模块“安全基础”中,我首先会为你系统地讲解安全基础概念、思考框架,以及解决安全问题的思路,带你从理论层次认知安全,让你能够系统地看待安全问题、评估安全需求,为你的安全学习指明方向。
在第二模块“Web安全”中我会为你讲述Web安全中一些经典安全问题的成因结合当下App端各类接口中存在的Web漏洞让你了解常见的Web攻防手段帮助你在开发时从源头切断安全问题。
在第三模块“Linux系统和应用安全”中我会为你讲解底层攻击的各种手段以及它们会产生的影响让你掌握其中的原理能够在部署底层设施时遵守安全事项避免产生运维层面的安全问题。
在第四模块“安全防御工具”中,我会结合真实的安全防护案例,为你介绍六大安全防御工具的使用方法和适用场景。另外,我还会总结一些常见的安全防御手段,引导你建设系统级的安全防御体系。
在第五模块“业务安全”中,我会为你讲解“黑灰产”的常见手段,教你识别查找“黑灰产”的方法及防护策略。另外,我还会联系实际业务场景,手把手教你系统解决业务安全问题。
我希望学完这个专栏之后,你能够**既懂“攻”又懂“防”,既懂理论也懂实践**。比如你既能知道怎么发起一个简单的SQL注入攻击也能够知道怎么从代码开发层次进行防御同时也会了解到怎么通过和代码解耦合的WAF去做防御。又比如你会知道怎么去规划和设计安全体系以及在不同的阶段应该做什么事。
除了正文之外,我还设计了几篇不定期加餐,来和你聊一聊目前一些热门的安全方向,希望能够加深你对安全的理解。同时,加餐中也包含了我对个人发展的一些思考和建议。目前,安全行业普遍存在人才供给不足的现象,很多岗位招不到合适的人。因此,我希望结合我的个人经验,能够给想往安全专业发展的同学一些指引,教你成为“合适的人”。
最后,我想说,安全是一个特别重实践的领域,如果你有时间,一定要多练习,多总结。在课程设计中,我在每一节课后都留了思考题,希望你能够结合知识点,给出自己的思考。很多事情都没有标准答案,你梳理的过程本身也就是强化思考的过程,所以,千万不要有心理负担,大胆表达就可以了,我一定会尽我所能及时给你反馈。
如一开始所说我喜欢安全喜欢侠客精神。正在看这篇文章的你我相信你也是如此。希望在接下来3个月的“刀光剑影”里我们能互相切磋一起成长