前言
信息安全经过多年的发展已经比较成熟了,稍有一定规模的安全团队都具备自研安全工具与安全系统的能力,信息安全从业者必须掌握安全开发技能,否则难以进一步提高与精进。
本书介绍了常见的渗透测试工具与防御系统的原理、开发过程以及使用方法。读者可以直接使用随书配套的项目,也可以在其基础上进行二次开发。
本书中的大部分系统是用Go语言开发的,部分系统是用OpenResty/Lua语言开发的。
● Go语言是谷歌开源的一种编译型的静态编程语言,被称为云时代的C语言,具有简单易学、内置支持并发和支持跨平台等特点。
● OpenResty/Lua是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块及大多数的依赖项。可以用于搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关,在安全领域主要用来实现Web应用防火墙、安全代理等产品。
这两种语言都是近年来非常热门的语言,它们的共同特点是简单易学、开发效率高。
本书内容
全书共10章,分为3篇,内容如下。
第1篇为安全开发基础,介绍了互联网企业信息安全的工作内容、常用的安全模型与互联网企业基础设施的安全,从而引出了安全开发能力对安全从业者与企业安全建设的作用。最后介绍了Go语言、OpenResty/Lua语言开发环境的配置方法。
第2篇为渗透测试工具开发,共3章,具体内容如下。
第2章介绍了端口扫描器、弱口令扫描器、代理服务扫描器的原理、种类及实现过程。其中包括TCP全连接与半连接扫描器,支持SSH、FTP、MySQL、Redis、MSSQL、Post greSQL和MongoDB等多种服务的扫描器,以及HTTP、SOCKS5代理服务器的扫描器等。
第3章首先介绍了常见后门的种类与原理,然后分别介绍了正向后门、反向后门、Webshell与Lua环境下技术的后门与防御,最后介绍了一个基于HTTP2的命令与控制服务器的开发过程。
第4章介绍了嗅探器的原理、基于gopacket库的嗅探器、ARP嗅探器,以及如何用Go语言实现一个WebSpy。
第3篇为安全防御系统开发,共6章,具体内容如下。
第5章介绍了一个恶意流量分析系统,它分为数据采集传感器与服务器端两个组件,数据采集传感器采集TCP、DNS、HTTP包并发给服务器端进行检测。
第6章介绍了Exchange邮箱安全网关的原理与作用,并详细介绍了如何用OpenResty/Lua开发Exchange邮箱网关的Web端、计算机端与移动端插件,之后详细介绍了设备授权接口的实现,以及如何通过钉钉、企业微信等推送授权信息等功能,最后演示了邮箱安全的配置与使用。
第7章首先介绍了蜜罐与欺骗防御系统的概念与区别,然后分别用Go语言实现了蜜罐的Agent和支持SSH、MySQL、Redis与Web服务的高交互蜜罐。最后演示了蜜罐与欺骗防御系统的部署与使用。
第8章介绍了代理蜜罐的原理、作用和框架,并介绍了如何用Go语言开发代理蜜罐Agent、Server、管理端,以及如何用Python开发数据分析程序,最后介绍了代理蜜罐的部署方法、使用场景以及使用的效果。
第9章首先介绍了Web应用防火墙(WAF)的原理与常见的架构,然后介绍了如何用OpenResty开发反向代理型的WAF,并介绍了如何用Go语言开发一个WAF管理端,最后演示了WAF的配置、管理端的使用,以及WAF的应用效果。
第10章首先介绍了零信任安全模型与谷歌的BeyondCrop项目,然后介绍了零信任网关IAP的概念,以及如何用Go语言开发一个支持反向代理、认证与授权策略功能的零信任安全网关,最后介绍了零信任网关的配置与使用。
致谢
感谢我任职过的公司,让我在工作的实践中有了学习、成长与积累的机会,也感谢在工作中一直给予我帮助与鼓励的领导与同事们,他们包括且不限于:
● 赵彦(ayazero)@美团、陈驰(CFC4N)@美团、母大治@美团、王生新@美团、延晋@美团、韩清华@美团。
● 陈洋(cy07)@小米、王书魁(piaca)@小米、张杰(大毛)@小米。
同时也感谢机械工业出版社的李培培编辑,她在我写作的过程中给予了很大的鼓励与专业建议。
由于本人水平有限,疏漏之处在所难免,恳请广大读者批评指正。
本书中涉及的所有项目的源代码都提交到了随书附带的Github中,地址为https://github.com/netxfly/sec-dev-in-action-src。
联系方式
● 邮箱:x@xsec.io。
● 博客:http://sec.lu。
● Github:https://github.com/netxfly。
● 知乎专栏:https://zhuanlan.zhihu.com/netxfly。
作 者