深信服安全服务工程师实战

978-7-115-59069-5
作者: 深信服安全服务团队
译者:
编辑: 孙喆思

图书目录:

详情

为了进一步解决全社会的网络安全人才缺口的问题,深信服科技股份有限公司结合逾20 年的安全实践和内部人才培养经验,编写本书。本书以安全服务工作为主线,全面涵盖安全服务的主要工作。本书共9章,包括安全服务基础、风险评估服务、基线核查服务、漏洞扫描服务、安全体检服务、安全运营服务、应急响应服务、渗透测试服务、安全服务交付流程等。通过学习本书,读者可以快速形成完整的安全服务观念、系统的安全服务思路、标准的安全服务动作、规范的安全服务流程,从而为日后的安全服务工作打下扎实的基础。 本书可作为深信服SCSSA(深信服安全服务认证工程师)的培训教材,也可作为安全服务甲乙方单位内部网络安全团队的学习参考资料。

图书摘要

版权信息

书名:深信服安全服务工程师实战

ISBN:978-7-115-59069-5

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

编  著 深信服安全服务团队

责任编辑 孙喆思

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


为了进一步解决全社会的网络安全人才缺口的问题,深信服科技股份有限公司结合逾20年的安全实践和内部人才培养经验,编写了本书。

本书以安全服务工作为主线,全面涵盖安全服务的主要工作。本书共9章,包括安全服务基础、风险评估服务、基线核查服务、漏洞扫描服务、安全体检服务、安全托管服务、应急响应服务、渗透测试服务、安全服务交付流程等。通过阅读本书,读者可以快速形成完整的安全服务观念、系统的安全服务思路、标准的安全服务动作、规范的安全服务流程,从而为日后的安全服务工作打下扎实的基础。

本书可作为深信服安全服务工程师认证(SCSSA)的培训教材,也可作为安全服务客户方和服务方单位内部网络安全团队的学习参考资料。


我国正处于从工业社会向信息社会转型的加速期,政府、教育、医疗、金融等各行各业的数字化转型都在如火如荼地开展。信息网络系统已然成为经济社会运行的关键基础设施,确保其安全运行成为关键任务。

与此同时,网络空间的攻防对抗形势愈加严峻,《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》等法律法规的密集出台,要求各行各业在加快数字化转型进程之余,必须思考如何保障数字化转型的安全性。因此,加强网络安全人才队伍建设,已经成为信息社会转型的关键需求。

当前,我国网络安全人才的缺口从2015年的50万人急速扩大至150多万人,而且随着信息社会转型的推进,这一人才缺口还将进一步扩大。在2020年和2021年的国家网络安全宣传周上,包括与会专家在内的业内人士纷纷呼吁,要求大力培养网络安全实战型、实用型人才。

在网络安全人才缺口中,占比最大的是安全服务工程师。政企等客户方单位,需要安全服务工程师发现和处置网络安全问题,保障信息网络系统的安全运行。安全集成等服务方单位,需要安全服务工程师理解客户需求,提供有效的安全解决方案,让安全产品发挥作用,做好客户的安全保障工作。

那么,如何培养安全服务工程师呢?深信服科技股份有限公司(文中简称为“深信服”)在服务大量客户、成功保障客户网络安全的经验基础之上,探索总结出了一套贴近实战、面向实用的培养方法。

在不到3年的时间里,深信服利用这套方法在公司内部培养出了一支强大的安全服务团队,团队成员分布全国各地,为大量客户的基础设施提供了安全保护并得到了客户的广泛认可和赞誉。从2019年9月开始,深信服向核心合作伙伴开放了这套培养方法。截至2021年底,深信服已经为全国500多家合作伙伴培养了近千名安全服务工程师,这在扩大安全服务覆盖面的同时,也让更多的客户用得上、用得起专业的安全服务。

此外,为了进一步解决全社会的网络安全人才缺口的问题,深信服在内部培养和为合作伙伴培养安全服务工程师的基础之上,特地在2021年组织了一批长期在安全服务一线耕耘的资深专家,结合深信服逾20年的安全实践和内部人才培养经验,花费一年的时间编写了本书。

本书一方面可作为深信服安全服务工程师认证(SCSSA)的培训教材,另一方面可以作为安全服务客户方和服务方单位内部网络安全团队的学习参考资料,旨在培养更多的网络安全人才,为社会做出一点贡献。

在本书的编写过程中,我们得到了深信服各个部门的关心和支持。公司内的许多安全服务专家、SCSSA培训讲师也参与了本书的编写和审稿工作。在此表示感谢!

感谢胡斌、高强、薛征宇、李焕波、沙明、王绍东、熊甲林给予的指导!感谢侯美静、罗明、石海赟、骆政、吴周龙、金哲磊、廖辰然、邓德腾等安全服务专家讲师在背后的默默付出!感谢秦晓敏、张诏春、黄心悦对本书所做的审稿工作!

最后,受限于时间以及作者自己的技术水平,本书中难免有不妥或错误之处,恳请同行以及读者不吝指正(可通过anfuxy@sangfor.com.cn进行反馈)。


随着信息时代的飞速发展,大型的网络安全事件、信息泄露事件层出不穷。攻击者的攻击手法更加精密化、工具化,这给企业安全带来了更为严峻的挑战。

此外,云计算、物联网、工控系统、移动互联网这类新技术的出现,也带来了新的风险面。

越来越多的客户目标是最终的安全效果,而不是简单的产品堆叠。客户希望有人能够帮他们建设网络安全体系,让整体安全体系符合等级保护条例,帮他们分担安全运营管理的压力。因此,安全服务应运而生。

安全服务,就是为加强网络信息系统安全性、对抗安全攻击而采取的一系列措施。安全服务的本质就是为客户提供真正的安全效果,分担他们的安全运营管理的压力,让安全体系更加完善。

而想要成为一名安全服务工程师,首先需要具备一些基础知识,如网络基础和安全基础。下面我们分别来看一下。

网络基础分为网络分层体系结构、常见网络协议、Web服务架构、Web服务构成与工作原理和常见Web服务器组件。

网络分层体系结构通常包括OSI七层模型和TCP/IP四层模型。

1.OSI七层模型

为了使全世界不同体系结构的计算机能够互连互通,国际化标准组织(ISO)提出了开放系统互联基本参考模型,即OSI七层模型,如图1-1所示。数据在两台计算机之间传输,发送方由应用层依次向下将数据通过不同的协议进行包装;接收方接收到数据从物理层依次向上拆分数据包,最终达到数据交互的目的。

图1-1 OSI七层模型图

接下来,我们将对于OSI七层模型的每一层进行阐述。

物理层(physical layer)的作用是实现信号在两台相邻网络实体之间的传输。因此物理层协议需要定义通信的机械、电气和功能标准。例如二进制1和0在传输时的具体描述方法、物理接口每个针脚的作用等。物理层交换单元的名称是比特(bit)。

数据链路层(data link layer)的作用是为相连设备或处于同一个局域网中的设备实现数据的传输,并对传输的数据进行校验和控制。所以,数据链路层的协议会定义如何检测出数据在传输过程中出现的错误、如何向发送方确认接收到了数据、如何调节流量的发送速率等。数据链路层交换单元的名称是数据帧,即经数据链路层协议封装后的数据称为数据帧(frame)。

网络层(network layer)的作用是决定数据从源设备转发给目的设备的路径。由此可知,这一层的协议需要定义地址格式、寻址方式等标准。网络层交换单元的名称是数据包,即经网络层协议封装后的数据称为数据包(packet)。

传输层(transport layer)的作用是规范数据传输的功能和流程。因此,这一层的协议会针对是否执行消息确认、如何对数据进行分片和重组等制订标准。传输层的交换单元的名称是数据段,即经传输层协议封装后的数据称为数据段(segment)。

会话层(session layer)的作用是为完成双方交互信息而建立会话关系。这里涉及的工作包括确认通信方的身份、确认通信方可以执行的操作等。例如网络通信中的认证、授权等功能均属于会话层的服务。

表示层(presentation layer)的作用是既保证通信双方在应用层相互发送的信息可以相互解读,也保证双方在信息的表达方式上是一致的。例如加密解密、压缩解压、编码解码等均属于表示层的服务。

应用层(application layer)的作用是提供用户接口,因此应用层中包含了各类用户常用的协议。

2.TCP/IP四层模型

OSI模型与TCP/IP模型对比可见图1-2。OSI七层模型大而全,但是比较复杂,而且只有理论模型,没有实际应用。

图1-2 OSI体系结构与TCP/IP体系结构

TCP/IP四层模型是由实际应用发展总结出来的。它包含了应用层、传输层、网际层和网络接口层。不过从实质上来说,TCP/IP四层模型只有最上面三层,最下面的网络接口层没有什么具体内容,也就是说,TCP/IP四层模型没有真正描述这一层的实现,只是要求这一层能够给其上层(网际层)提供一个访问接口,以便向上传递IP数据包。

常见的网络协议有IP、DNS、ARP、HTTP等。它们为整个互联网提供了联动的基础。下文中我们将简单介绍这些常见的网络协议。

IP(internet protocol,网际互连协议)是TCP/IP四层模型中的网际层协议。设计IP的目的有两个:提高网络的可扩展性,解决网络互连的问题,实现大规模异构网络的互连互通;将顶层网络应用和底层网络技术进行解耦,以便两者能独立发展。根据端到端的设计原则,IP为主机提供一种无连接、不可靠的数据包传输服务。

DNS(domain name system,域名系统)是互联网的一项服务。它是一种可以将域名和IP地址相互映射并且以层次结构分布的数据库系统。DNS系统采用递归查询的请求方式来响应用户的查询,为互联网的运行提供关键性的基础服务。目前绝大多数的防火墙和网络都会开放DNS服务,DNS数据包不会被拦截,因此可以基于DNS建立隐蔽信道,从而顺利穿过防火墙,在客户端和服务器之间传输数据。

ARP(address resolution protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或者称为物理地址)的协议。在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它必须知道对方的IP地址。但是仅仅有IP地址是不够的,因为IP数据包必须封装成帧才能通过数据链路层发送,且发送端必须有接收端的物理地址,所以需要一个从IP地址到物理地址的映射。ARP就是实现这个映射功能的协议。

HTTP(hypertext transfer protocol,超文本传输协议)是一个简单的请求/响应协议,也是一个应用层协议。HTTP用于实现浏览器与Web服务器之间的通信。它指定了浏览器与Web服务器的通信方式,即浏览器怎样向Web服务器请求数据,以及服务器怎样将响应数据回复给浏览器。HTTP是在网络上实现信息交换的重要基础协议。

Web服务主要分为C/S架构和B/S架构。下面我们分别来看一下。

C/S架构指客户/服务器架构,其中服务器负责计算,客户端负责与服务器进行互动。

C/S架构具有以下优点:

由于客户端与服务器的直接相连,没有中间环节,因此响应速度快;

客户端为本地应用程序,运行效率更高;

操作界面漂亮、形式多样,可以充分满足用户自身的个性化要求;

C/S架构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。

C/S架构具有以下缺点:

需要安装专门的客户端程序,分布功能弱,不能够实现快速部署安装和配置;

兼容性差,针对跨平台的场景需要重新开发客户端,开发成本较高,且需要具有一定专业水准的技术人员才能完成。

B/S架构指浏览器/服务器架构。在该架构中,不需要安装客户端软件,而是通过客户端的浏览器来访问服务器。这样一来,在系统升级或维护时,只需更新服务器端的软件即可。

B/S架构具有以下优点:

基于浏览器,具有统一的平台和UI体验;

具有分布性特点,可以随时随地进行查询、浏览等业务处理;

业务扩展简单方便,通过增加网页即可增加服务器功能;

维护简单方便,只需要改变网页,即可实现所有用户的同步更新;

开发简单,共享性强。

B/S架构具有以下缺点:

个性化特点明显降低,无法实现个性化的功能要求;

操作基本以鼠标为主,无法满足快速操作的要求;

页面动态刷新,响应速度较慢;

功能弱化,难以实现传统模式下的特殊功能要求。

一个最简单的静态Web系统由如下部分组成:

Web服务器;

Web浏览器;

HTTP;

HTML。

一个浏览器请求过程如图1-3所示。首先由客户端发起DNS域名解析,将访问的域名解析成IP地址。然后客户端向服务器发起TCP三次握手建立连接后,发送HTTP请求。服务器收到请求后回复HTTP响应数据包。浏览器解析通过HTTP响应数据包传输过来的HTML代码,最后浏览器对页面进行渲染,这就是一个浏览器请求的大致过程。

图1-3 浏览器请求过程图

网站可以简单分为静态网站和动态网站。静态网站是通过单纯的HTML代码写的,通过固定代码直接展示网站效果;而动态网站是使用脚本语言进行编写的。相较于静态网站,动态网站在使用的时候更加灵活,用户不需要掌握代码编写能力,只需要按照固定的框架或者流程进行操作即可。

动态网站一般是由操作系统搭载Web应用程序后联动数据库构成的,一般情况下我们把搭载了Web应用程序的计算机称为Web服务器。接下来我们将介绍常见的操作系统、Web服务器、数据库系统、动态网站脚本语言。

1.操作系统

操作系统是管理计算机硬件与软件资源的计算机程序。操作系统需要执行配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统提供了一个让用户与系统交互的操作界面,让用户更加简单地使用计算机。现在市面上最常见的操作系统有两款:一款是交互界面比较好看的Windows系统,另一款是计算性能更加优秀的Linux。下面我们简单介绍一下这两个操作系统。

Windows是微软研发的一款操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续微软不断地更新升级系统版本,它也因其易用性慢慢地成为人们最喜爱的操作系统。Windows采用了图形操作界面,比从前手动输入命令的方式更为人性化。随着计算机硬件和软件的不断升级,微软的Windows也在不断升级,架构从16位到32位再到64位,系统版本从最初的Windows 1.0到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10和Windows Server服务器企业级操作系统。

Linux是一款可免费使用和自由传播的类UNIX操作系统,由世界各地成千上万的程序员共同设计和实现。Linux系统有如下特点:开放性、多用户、多任务、良好的用户界面、设备独立性、网络功能丰富、系统安全可靠、良好的可移植性和稳定性。目前市面上常见的Linux系统有RedHat、SUSE、Ubuntu、CentOS、Kali等。

2.Web服务器

现在使用最多的Web服务器有IIS、Apache、Nginx、WebLogic、Tomcat、JBoss等,这些Web服务器各有优劣,所以用户可以针对自己的使用场景来选择不同的服务器。下面我们简单介绍一下这些Web服务器。

IIS(Internet Information Services)是微软提供的互联网服务,其中包括Web、FTP、SMTP等服务器组件。

Apache是全球用得最多的Web服务器,市场占有率达60%。世界上很多著名的网站都基于Apache。Apache的成功之处主要在于它的源代码开放,支持跨平台的应用(可以运行在几乎所有的系统平台上)以及可移植性好等。

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。Nginx的特点是占有内存少、并发能力强。当前,国内使用Nginx服务器的厂商有百度、京东、新浪、网易、腾讯、阿里巴巴等。

WebLogic是一个基于Java EE架构的中间件。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,普遍用于中小型系统和并发访问用户不是很多的场合,是开发和调试JSP程序的首选。

JBoss是一个开放源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。但JBoss的核心服务不包括支持Servlet/JSP的Web容器。

3.数据库系统

数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。下面我们简单介绍一下常见的数据库系统。

Access是由微软发布的关系数据库管理系统。它结合了Microsoft Jet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一,通常与IIS和ASP脚本语言搭配使用。

MySQL是一款开放源代码的关系数据库管理系统,是最常用的数据库管理语言,通常与Apache和PHP脚本语言搭配使用。

Oracle是甲骨文公司的一款关系数据库管理系统。它是一款在数据库领域一直处于领先地位的产品,具有系统可移植性好、使用方便、功能强的优点,适用于各种规模的企业环境。它提供了一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

Redis,即远程字典服务,是一款开源的分布式数据库,适用于多种编程语言,是目前大型系统用得比较多的数据库系统。

MongoDB是一款介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的一款数据库系统。

4.动态网站脚本语言

常见的动态网站脚本语言有ASP、PHP、JSP和JavaScript。下面我们简单介绍一下这些动态网站脚本语言。

ASP(active server pages,活动服务器网页)是微软开发的代替CGI(common gateway interface,公共网关接口)脚本程序的一种应用,它可以与数据库和其他程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,常用于比较老的网站。

PHP(page hypertext preprocessor,页面超文本预处理器)是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法使用了C、Java和Perl,其网页文件的格式是.php,常用于中小型网站。

JSP(Java server page,Java服务器页面)是一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式的Web网页,然后返回给请求者。JSP最常用于大型网站。

JavaScript是一种具有函数优先的轻量级解释型或即时编译型的编程语言。它作为开发Web页面的脚本语言而出名,是一门前端语言,常用于各类网站。

网络安全指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,从而保证系统连续可靠地正常运行,且网络服务不中断。安全服务离不开安全服务工具的帮助,常见的安全服务工具包括但不限于下面这些。

传统的服务项目安全评估工具主要用于安全服务项目的交付,由于在交付传统的服务项目时,通常采用人工方式或第三方厂商产品,因此交付效率低下,并且第三方厂商产品的可控性和灵活性差,及时支撑能力弱。为支持安全服务项目交付,深信服开发了安全评估工具TSS,主要功能包括资产识别、系统漏洞查找、Web漏洞查找、弱口令检测和基线核查等。

Nmap一直是网络发现和攻击界面测绘的首选工具,从主机发现和端口扫描,到操作系统检测,Nmap是不少黑客爱用的工具之一。

系统管理员可以利用Nmap来探测工作环境中未经批准使用的服务器,黑客也会利用Nmap来搜集目标计算机的网络设置,从而进行有针对性的攻击。

Nmap通常用在信息搜集阶段,用于搜集目标主机的基本状态信息,其扫描结果可以作为漏洞扫描、漏洞利用和权限提升阶段的输入。例如,业界流行的漏洞扫描工具Nessus与漏洞利用工具Metasploit都支持导入Nmap的XML格式的结果,而Metasploit框架内也集成了Nmap工具(支持Metasploit直接扫描)。

Nmap不仅可以用于扫描单个主机,也可以用于扫描大规模的计算机网络(例如扫描网络中数万台计算机,从中找出感兴趣的主机和服务)。

sqlmap是一款开源软件,用于检测和利用数据库漏洞,并提供恶意代码注入工具,它还可以自动检测和利用SQL注入漏洞。该软件在命令行中运行,而且针对不同的操作系统提供了不同的版本。

除了发现和检测漏洞,该软件还可以访问数据库、编辑和删除数据以及查看表格中的数据,如用户、密码、备份、电话号码、电子邮件地址、信用卡和其他机密或敏感信息。

sqlmap支持多种数据库,包括MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird和SAP MaxDB。sqlmap全面支持所有注入技术,如布尔注入、报错注入、堆叠注入、时间注入、联合注入等。

AWVS(Acunetix Web Vulnerability Scanner)是一款知名的网络漏洞扫描工具,它可以通过网络爬虫测试网站的安全性,并检测常见的安全漏洞,如SQL注入漏洞、跨站脚本攻击漏洞、目录遍历漏洞等。

Burp Suite是一个为渗透测试人员开发的集成平台,用于测试和评估Web应用程序的安全性。它非常易于使用,并且具有高度的可配置性。除了代理服务器、Scanner(扫描器)和Intruder(入侵者)等基本功能,该工具还包含更高级的选项,如Spider(爬虫)、Repeater(中继器)、Decoder(解码器)、Comparer(比较器)、Extender(扩展器)和Sequencer(测序器)。

Metasploit是一款开源的安全漏洞检测框架,内置几千个攻击脚本,只使用该框架就可以一键调用攻击脚本。Metasploit可以帮助安全从业人员识别安全性问题,验证漏洞的缓解措施,并对管理专家驱动的安全性进行评估,提供真正的安全风险情报。该工具的功能包括智能开发、代码审计、Web应用程序扫描、社会工程学等。

Metasploit框架具有良好的可扩展性,它的控制接口负责发现漏洞、攻击漏洞、提交漏洞,而且还可以通过一些接口加入报表工具等。Metasploit框架可以从一个漏洞扫描程序中导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击。所有这些操作都可以通过Metasploit的Web页面进行管理,而这只是其中一种管理接口,Metasploit还有命令行工具和一些商业工具。

攻击者可以将漏洞扫描程序的结果导入Metasploit框架的开源安全工具Armitage中,然后通过Metasploit的模块来确定漏洞。一旦发现了漏洞,攻击者就可以采取一种可行的方法攻击系统,如通过Shell或启动Metasploit的Meterpreter来控制这个系统。

Nessus是一款系统漏洞扫描与分析软件,总共有超过75 000个机构使用Nessus作为扫描计算机系统漏洞的软件。

Nessus采用客户/服务器架构,其中客户端提供了运行在X Window下的图形界面,接受用户的命令并与服务器通信,传送用户的扫描请求给服务器,然后由服务器启动扫描并将扫描结果呈现给用户。用户可以使用Nessus对自己的服务器或者操作系统进行周期性扫描,实时发现自己操作系统的漏洞,并且按照扫描器的加固指南进行加固,以保证操作系统的安全。


相关图书

CTF快速上手:PicoCTF真题解析(Web篇)
CTF快速上手:PicoCTF真题解析(Web篇)
数字银行安全体系构建
数字银行安全体系构建
软件开发安全之道概念、设计与实施
软件开发安全之道概念、设计与实施
企业信息安全体系建设之道
企业信息安全体系建设之道
内网渗透技术
内网渗透技术
深入浅出密码学
深入浅出密码学

相关文章

相关课程