网络扫描实践指南-全-
网络扫描实践指南(全)
原文:
annas-archive.org/md5/60b2ca6f3a787faa0c1c8d75391c306e译者:飞龙
前言
网络扫描是通过识别网络上的活动主机来构建 IT 基础设施资产清单的过程。攻击者或网络管理员可以使用类似的方法来评估安全性。该过程在风险评估程序和为您的组织制定安全计划中起着至关重要的作用。
实用网络扫描从网络扫描的概念以及组织如何从中受益开始。接下来,我们将深入探讨扫描过程中涉及的不同步骤,例如服务检测、防火墙检测、TCP/IP 端口检测和操作系统检测。我们还将通过市场上几款最著名的工具,如 Nessus 和 Nmap,来实现这些概念。在最后几章中,我们为您的组织准备了完整的漏洞评估计划。到本书结束时,您将获得使用不同工具进行网络扫描的实践经验,并能够选择适合您系统的最佳工具。
本书的适用人群
如果您是负责确保组织网络基础设施安全的网络和安全专业人员,那么本书适合您。
如何最大化地利用本书
为了理解本书的内容,建议您具备基本的计算机网络知识。如果您持有 CCNA 网络和安全认证,那么这将为您通过阅读本书进一步提升计算机网络知识打下良好的基础。
正如您所知,在没有进行实际操作的情况下学习计算机网络是没有意义的。因此,建议您实践 TCP/IP、IP 数据包流、基础网络设计以及至少使用 Cisco 交换机和路由器搭建 LAN。下载诸如 PuTTY 和 Tera Term、Packet Tracer 和 GNS3、Wireshark、Nmap、Nessus 等模拟器和仿真器。所有下载链接都包含在本书中。
下载彩色图像
我们还提供了一个 PDF 文件,其中包含本书中使用的截图/图表的彩色图像。您可以通过www.packtpub.com/sites/default/files/downloads/PracticalNetworkScanning_ColorImages.pdf下载该文件。
使用的约定
本书中使用了若干文本约定。
CodeInText:表示文本中的代码词、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟网址、用户输入以及 Twitter 用户名。例如:“对于 Linux,sudo iptables -L 列出您当前的iptables规则。”
任何命令行输入或输出均按如下方式编写:
netstat -antp | grep "LISTEN"
粗体:表示新术语、重要词汇或您在屏幕上看到的词语。例如,菜单或对话框中的词语会以这种方式显示在文本中。示例如下:
我们中的大多数人在许多网站上通过点击“我同意”或“我接受”条款和条件的方式分享个人信息。
警告或重要说明如此显示。提示和技巧如此显示。
保持联系
我们的读者反馈总是受欢迎的。
一般反馈:电子邮件feedback@packtpub.com,在邮件主题中提及书名。如果您对本书的任何方面有疑问,请电邮我们:questions@packtpub.com。
勘误:尽管我们已尽最大努力确保内容的准确性,但错误确实会发生。如果您在本书中发现错误,请向我们报告。请访问www.packtpub.com/submit-errata,选择您的书籍,点击勘误提交表格链接并输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制,请提供位置地址或网站名称,我们将不胜感激。请通过链接联系我们:copyright@packtpub.com。
如果您有兴趣成为作者:如果您对某个您在其中拥有专业知识并且有意撰写或为书籍做出贡献的主题感兴趣,请访问authors.packtpub.com。
评论
请留下评论。阅读并使用本书后,请在购买该书的网站上留下评论,不妨?潜在读者可以查看和使用您的公正意见来做出购买决策,我们在 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。谢谢!
欲了解有关 Packt 的更多信息,请访问packtpub.com。
第一章:基本的安全概念
在这个不断发展的技术世界中,安全和数据隐私至关重要。本章将介绍 IT 基础设施安全的一些基本概念。为了确保系统安全,关键任务是识别和分类信息资产,并定义一个安全框架。
本章将介绍安全对网络和系统管理员意味着什么。还将探讨如何构建一个安全的网络,结合你所定义的安全框架中的安全原则。
让我们从网络基础设施安全开始。本章将涵盖以下主题:
-
为什么需要安全?
-
信息安全的构建模块
-
计算机安全
-
网络安全
-
互联网安全
-
安全问题、威胁和攻击
为什么需要安全?
随着互联网的不断发展以及现代计算机网络技术的进步,网络安全已成为每个人最重要的因素之一。这包括从终端用户到中小型企业(SMBs)再到云服务提供商的每个人。
由于网络攻击的数量不断增加,网络安全应在设计网络架构时成为优先考虑的事项。为了理解这一点,试想一下如果银行、证券交易所或其他金融数据库发生网络完整性漏洞,可能会带来什么后果。
网络安全的重要性不仅限于 IT 行业。它在医疗等行业中同样重要。健康记录包含一些最有价值的信息,包括社会保险号码、家庭住址和病人的健康历史。如果这些数据被未经授权的人访问,它可能会被盗取或出售给黑市。
安全意识对每个人都很重要,而不仅仅是 IT 部门的责任。如果你使用联网设备,这也是你的责任。然而,只有了解如何确保安全后,你才能控制信息安全。
在系统受到威胁之前,没有人能够进入你的系统。同样,如果你的门从外面上了锁,除非有人获得了复制钥匙或通过物理接触获得锁的类似钥匙,否则没有人能进入你的房子。以下是一些系统可能受到威胁的例子:
-
可能会向随机用户发送带有附件的定向邮件(Drive by Download)。如果用户打开该附件,他们的系统将会被攻破。
-
收到一封伪装成银行等领域的邮件,要求你通过提供的链接更改密码。一旦你这样做,你的用户名和密码可能会被盗取。
-
如果在浏览器中输入网站地址时犯了一个小小的错别字,可能会打开一个类似的页面(网络钓鱼),而这个页面并不真实,你的凭证可能会被盗取。
-
用于重置忘记密码的功能也可能非常危险。假设有人知道我的电子邮件 ID,并试图通过选择忘记密码选项来访问我的帐户。如果安全问题要求提供我的出生日期,这个信息很容易从我的简历中找到。
-
一个 Excel 文件的密码可以通过暴力破解攻击轻易破解。
-
最广泛的勒索软件类型会加密你电脑上所有或部分数据,然后要求支付一笔大额费用(赎金)以恢复对数据的访问。
-
在 DNS 劫持期间,在线攻击者将覆盖你电脑的 TCP/IP 设置,从而改变 DNS 解析。例如,输入
abc.com会将其解析为此 IP:140.166.226.26。然而,DNS 劫持者会更改解析,使得abc.com将转到另一个网站的 IP 地址。 -
拒绝服务(DoS)网络攻击通过发送大量的流量扰乱目标服务的正常流量量。这可能会以各种方式造成损害。例如,如果某公司有周五的促销活动,而竞争对手发动攻击以关闭其服务,从而增加自己的销售额。
根据英国保险公司 Lloyd's 的研究,黑客造成的损害每年让企业损失 4000 亿美元。
要进一步了解网络犯罪的成本,请访问以下网页:www.forbes.com/sites/stevemorgan/2016/01/17/cyber-crime-costs-projected-to-reach-2-trillion-by-2019/#612db25c3a91.
市场研究公司 Gartner 估计,2018 年全球在网络安全上的支出约为 960 亿美元。到 2020 年,预计全球公司将花费约 1700 亿美元——未来五年增长率接近百分之十。
信息安全的构建模块
你的数据可以轻松分为以下三类。了解这些分类尤其重要,因为它有助于在制定安全计划之前确定你的数据的价值:
-
低业务影响(LBI):如果 LBI 数据被泄露,可能会发生有限的信息丢失。这类数据的例子包括姓名、性别和/或居住国家。
-
中等业务影响(MBI):如果 MBI 数据被泄露,可能会发生灾难性的数据信息丢失,直接损害组织的声誉。MBI 数据的例子包括名字、姓氏、电子邮件 ID、邮寄地址和电话号码。
-
高业务影响(HBI):如果 HBI 数据被泄露,可能会发生严重的信息丢失。访问权限必须受到控制,并限制在必要的知情范围内。HBI 数据的例子包括政府 ID、信用卡信息、医疗健康记录、密码和实时位置。
需要适当的安全控制措施来确保严密的安全性。以下流程图帮助我们理解安全过程:

-
风险管理过程:在设计安全网络时,这一点尤其重要。必须提前进行风险管理分析,因为这有助于设计安全的基础设施。步骤应包括风险识别、风险分析、风险排序和缓解计划。例如,ISP 连接可以是公共或私有的广域网(WAN)连接。通过公共基础设施进行的两个站点之间的数据传输可以通过实施 VPN 来保障安全。通过私有链接进行的两个站点之间的数据传输可以通过链接设备未来加密。必须识别连接的目的和资金来源,并在安装或激活任何链接之前进行适当的风险评估。
-
信息安全设计过程:必须定义并记录外围边界。例如,连接到 WAN 互联网或通过 WAN 连接到其他地点必须被定义。当我说到边界时,我们应该始终采取分层的方法。没有理想的情况可以确保 100%的安全性,但通过在每一层实施安全措施,你可以确保严密的安全性。分层安全方法涵盖了技术和非技术的安全措施。
例如,外围安全可以通过防火墙进行保护。必须识别基础设施细节,如服务器类型和系统中运行的服务。软件和操作系统的漏洞应记录下来。IP 空间和安全区应定义清楚。系统管理员访问权限应由安全组控制。
-
验证过程:每个外部网/内部网连接的验证过程目的是生成所有在安全设计合规程序中记录的审计证据。它将包含有关用户、远程 IP 以及他们执行的任务的信息。网络扫描、渗透测试和得分报告提供了基础设施安全的深入视图。
定期审计总是必需的,以便了解是否存在意外活动。例如,防火墙日志、来自 IIS 负载均衡器的 TCP/IP 头信息、以及双重身份验证都是验证过程的示例。
-
安全实施过程:在这个阶段,你应该准备好以下项目以便实施:
-
安全策略—密码策略和访问控制
-
灾难恢复计划
-
备份和恢复计划
-
WAN 恢复计划
-
网络安全区
-
数据库安全
-
IIS 或网页安全
-
数据与资产分类
-
数据加密
-
应用用户的资源控制
-
操作系统安全
-
事件管理与响应
-
变更管理和版本控制
-
计算机安全
计算机安全不仅仅是关于终端用户计算的,它还包括服务器/应用程序基础设施。对于服务器和客户端之间的任何数据传输,双方都应确保安全。即使是通信渠道,也应足够安全,以避免数据盗窃。
我们知道专业人员了解网络安全,但终端用户呢?我们可以强制用户实施安全策略,但那就够了吗?为了更好的安全性,意识是关键。我们每天使用的软件中经常会发现安全问题,包括常见且可靠的程序,如 Windows、Internet Explorer 以及 Adobe 的 PDF 阅读器。因此,采取一些简单的措施来提升安全性是非常重要的。
人们常常将计算机安全看作是技术复杂的事情,但实际上并非如此。接下来,我们将探讨一些最基本且重要的事情,帮助你在网上更加安全:
-
使用杀毒软件和反恶意软件,并了解哪些邮件链接是安全的可以点击的。
-
小心你下载和运行的程序;不要轻信弹出通知。
-
在服务器层面,可以使用加密芯片来避免硬件被盗。
大多数计算机设施在保护其物理资产方面做得比数据要好得多,即使数据的价值远远高于硬件的价值。
由于意识尤为重要,我们还应考虑组织内的意识水平。可以通过发送一些看起来真实的电子邮件,并统计有多少用户打开了这些邮件,来简单地实现这一点。活动可以通过数字进行跟踪。例如,可以查看有多少用户分享了密码,有多少人下载了附件。
网络安全
在今天复杂的网络架构和不断增长的网络环境下,保护数据和维护机密性发挥着非常重要的作用。复杂的网络包括企业网络、数据中心网络以及当然还有云端网络之间流动的网络流量。一个安全的网络帮助我们防止数据丢失、网络攻击和未经授权的访问,从而提供更好的用户体验。网络安全技术使得多个平台具备处理具体保护需求的能力。
防火墙
防火墙是一种网络安全设备,根据配置的规则和预配置的策略接受或拒绝流量。防火墙的放置完全取决于网络架构,包括对网络边缘、子网和区域的保护。外围防火墙始终放置在网络边缘,以过滤进入网络的数据包。外围防火墙是安全的第一层,如果恶意流量设法绕过了,主机防火墙通过允许或拒绝进入端主机设备的数据包提供另一层保护。这被称为多层安全方法。可以设置多个防火墙来设计高度安全的环境。
防火墙通常部署在网络的其他部分,以在企业基础架构内的访问层和数据中心提供适当的分段和数据保护。
防火墙可以进一步分类为以下几种:
-
简单的数据包过滤
-
应用程序代理
-
有状态检查防火墙
-
下一代防火墙
传统防火墙提供诸如数据包地址转换(PAT)、网络地址转换(NAT)和虚拟专用网络(VPN)等功能。传统防火墙的基本特征是根据规则工作。例如,来自子网(10.10.10.0/24)的用户希望在 UDP 端口53上访问 Google DNS 8.8.8.8。
典型的防火墙规则如下所示:
| 源 IP | 目标 IP | 协议 | 端口 | 动作 |
|---|---|---|---|---|
| `10.10.10.0/24** | **8.8.8.8/32` | UDP | 53 |
允许 |
然而,下一代防火墙基于应用程序和用户感知策略工作。应用程序级别的控制允许您根据用户和应用程序设置策略。
例如,您可以完全阻止对等下载(P2P)或者禁用 Facebook 聊天,而不影响 Facebook 的其他功能。
我们将在接下来的章节中详细讨论防火墙。以下图表反映了区域和连接性,展示了防火墙区域如何连接到多个业务:
-
非军事区(DMZ):面向互联网的应用程序位于 DMZ 中。其他区域的服务对互联网不可访问。放置在 DMZ 中的最常见服务包括电子邮件服务、FTP 服务器和 Web 服务器。
-
内部区域:内部区域被用户称为受信任的区域。该区域内的应用程序被认为是高度安全的。在受信任区域中,默认情况下通过防火墙拒绝来自较不受信任区域的所有流量。
-
云和互联网区域:我们不要专注于对这些区域的命名。它们是企业网络中常见的标准段。这些区域被认为是低于安全区域。

入侵检测系统 / 入侵防御系统
攻击进入网络的可能性很高。入侵防御系统(IPS)/入侵检测系统(IDS)是一种主动措施,用于检测和识别表示入侵的可疑或不希望发生的活动。在 IDS 中,部署可以是在线的或离线的,基本思想是将您希望监控的流量进行重定向。有多种方法,如交换机端口 SPAN 或光纤 TAP 解决方案,可以用于重定向流量。模式匹配用于通过签名和异常检测已知攻击。根据活动,可以设置监控警报,以便通知网络管理员。
如下图所示,SPAN 端口在交换机上配置,以便将流量重定向到 IDS 传感器。实际的 SPAN 端口会为特定接口流动的数据创建副本,并将其重定向到交换机上的另一个端口:

IPS 提供了针对不需要的网络流量的主动检测和预防功能。在 IPS 的内联部署中,所有流量将通过 IPS 设备传输。根据规则,可以采取相应的措施。当在 IPS 设备上检测到签名时,可以用来重置、阻止和拒绝连接,以及日志记录、监控和报警。系统管理员还可以定义基于策略的方法,设定政策违规规则和措施,以便在已知签名发布时牢记。行动应由系统管理员定义。
下图展示了 IPS 的内联部署拓扑结构。所有流量都经过 IPS 设备进行流量检测。这与端口 SPAN 有所不同,因为所有数据都会经过 IPS 设备。因此,您需要了解必须检测的数据类型:

有许多不同类型的攻击可以通过 IPS 进行防御,包括:
-
拒绝服务
-
分布式拒绝服务
-
漏洞利用
-
蠕虫
-
病毒
多层拓扑结构
多层拓扑结构为您提供了基于角色和访问策略来分段资源的灵活性。在典型的三层应用架构中,具有 Web、应用程序和数据库服务器的架构可以根据位置进行分配。由于 Web/应用区始终暴露给最终用户,隔离区(DMZ)的 IP 空间始终是公开的。子网和数据库服务器不应直接访问,因此我们应该始终分配来自 RFC 1918 的私有 IP 空间。

这提供了基于 IP 和资源位置逐步控制的访问。当设计网络时,您可以引入多层防火墙方法。在多层设计方法中,基本思想是将资源彼此隔离,考虑到如果一层被攻破,其他层不会受到影响。
跨站点 IPsec 隧道 提供了一种在两个网络和多个本地站点之间,或在 Azure/AWS 中的其他虚拟网络之间建立安全连接的方法。这可以通过使用 IPsec 框架加密数据,确保数据传输的安全。在 AWS 中,虚拟网络称为 VPC,而在 Azure 中,则称为 VNET。

分布式拒绝服务:拒绝服务(DoS)攻击或分布式拒绝服务(DDoS)攻击是试图使网络资源对目标用户不可用的行为。
现实世界中的目标可能是在线服务,如电子商务和游戏行业,通过使前端资源对最终用户不可用来阻止商店进行任何业务。想象一下在大型购物节的销售时段,如果有人发起了 DDoS 攻击,使得你的电子商务门户关闭。
DDoS 攻击的两种最基本类型如下:
-
WAN 攻击:WAN DDoS 攻击利用物理链路上的可用带宽,通过传输大负载的高频数据包,或传输小负载的大量数据包。较大负载的网络资源,如路由器或防火墙,将处理这些数据包并消耗所有带宽。对于较小负载的网络资源,像路由器和防火墙将尝试处理所有数据包。然而,由于有限的 CPU 和硬件资源,可能无法处理来自最终用户的真实数据包,并可能因负载过重而失败。
-
例如,假设你有一个 10 Mbps 的 WAN 链接,在攻击带宽期间,利用率仅为 5 Mbps。然而,大量小数据包每秒可达到一百万个数据包。在这种情况下,假设你的网络设备没有足够的 CPU 周期来处理所有这些小数据包。
另一个例子是,如果有人发起了一个使用大 ICMP 数据包的 DDoS 攻击。这会占用你的带宽,导致其他应用程序无法运行。
-
最常见的带宽攻击形式是数据包泛滥攻击,攻击者向目标或指定目的地发送大量合法的 TCP、用户数据报协议(UDP)或互联网控制报文协议(ICMP)数据包。如果攻击者使用伪造源地址等技术,这种攻击会变得更难检测。
-
应用程序攻击:这些 DDoS 攻击利用了 TCP 和 HTTP 等协议的预期行为。应用程序攻击具有破坏性,但其规模小且隐蔽,非常难以检测,因为它们利用的是预期行为。应用层攻击很容易生成,并且需要更少的数据包和小负载就能让目标应用服务中断。应用程序攻击的目标是网页应用层。对于一个小的 HTTP 请求,实际服务器需要在网页服务器上执行大量资源操作,以获取内容或资源。每个这样的服务器资源都有有限的 CPU 和内存,容易成为攻击目标。在这个例子中,我并没有考虑基于云的网页应用程序,因为这些应用程序具备弹性特性,随着请求数量的增加,服务器资源会自动创建以适应这些请求。
让我们通过一个例子更好地理解这一点:
-
HTTP 洪水攻击:这是一种简单的攻击方式,试图通过自动化方式反复访问同一个网页。它们通常使用相同范围的 IP 地址。根据趋势,由于这些攻击来自相同来源,因此可以阻止源 IP 池来缓解攻击。
-
随机 HTTP 洪水攻击:这是一种复杂的攻击,使用来自多个位置的大量 IP 地址,并随机化 URL。由于这些攻击来自多个位置,因此很难阻止源 IP。然而,可以对服务器资源设置速率限制。
简单来说,DDoS 攻击是一种通过多个被攻破的网络/主机来攻击单一系统的攻击方式。这就像僵尸攻击,非常难以识别真正的用户。一旦感染,联网设备便成为僵尸网络的一部分,向目标发送恶意流量。

互联网安全
这些是你在使用在线系统时需要理解的基本内容。在日常使用中,我们会暴露自己于各种风险之中。
让我们深入了解互联网安全的基本组成部分。
密码
由于我们拥有互联网连接设备,因此我们对自己的安全负责。那么,让我们从密码开始。作为用户,我们必须选择一个强密码。或者,组织应鼓励用户选择一个强密码。
密码分析表明,123456及其他类似的简单模式是用户常用的密码。大多数用户在多个平台上选择相同的密码。如果服务器或数据库被黑客攻击,像这样的密码就容易被破解。
很多常见的网页门户包含个人信息。然而,如果要求员工创建一个由其姓名和员工编号组成的用户名,并且与一个简单的默认密码(如abcX123)结合使用,那么他们的信息就很容易被猜测。
系统升级与更新
WannaCry 勒索病毒攻击是 2017 年 5 月发生的全球网络攻击,由 WannaCry 勒索病毒加密蠕虫引发。这次攻击主要针对运行 Microsoft Windows 操作系统的计算机,通过加密数据并要求以比特币支付赎金。这种感染发生的原因是人们使用过时的软件,攻击者正是利用了这一点。这不仅限于个人电脑,还包括移动设备和其他联网设备。
网络钓鱼
网络钓鱼是一种在线欺诈形式,你会收到看似来自可信来源的电子邮件。该消息可能会要求你通过登录伪造网站来验证、确认或更新你的账户信息。目标通过电话、电子邮件和短信与受害者联系,借此窃取信用卡信息和密码。
这是我自己的电子邮箱,里面有一条信息说我应该收到 13,17422 印度卢比,并需要更新我的详细信息。虽然攻击者使用金钱作为诱饵,但重要的是要思考一下关于你 IT 部门的事情。是否应该期望收到这种类型的邮件?仅仅通过查看电子邮件标题,你就可以轻松判断出这不是一个真实的域名。按照此信息中的指示操作可能会带来灾难性的后果:

小心网络钓鱼电话
攻击者可能会打电话给你,声称通过向你出售软件许可或获取你的个人信息来解决你的计算机问题,以便在后台系统中更新你的信息。
一旦他们获得了你的信任,网络犯罪分子可能会要求你提供用户名和密码,或让你访问一个网站安装软件,从而让他们能够远程访问你的计算机进行修复。一旦你这样做,你的计算机和个人信息就会被劫持。
以同样的方式,银行诈骗也可能发生。这包括网络犯罪分子打电话给你,试图说服你分享你的信用卡和银行账户信息。
一些网络钓鱼电话的迹象包括:
-
您已被特别选中参与任何提供的项目
-
你在彩票中中奖了
-
你有所得税退税
-
有人询问信用卡 CVV 码和其他细节,以更新银行数据库
网络钓鱼防护
防范网络钓鱼攻击需要用户和企业共同采取措施。对于用户来说,提高意识是关键。伪造的消息通常包含一些错误,这些错误暴露了其真实身份。这些错误可能包括拼写错误或域名的更改,就像之前的 URL 示例中所看到的那样。用户还应停下来思考,为什么自己会收到这样的电子邮件或电话。
你应该将此类电子邮件报告给相关部门,以便采取适当的行动。
安全问题、威胁和攻击
我们每天都在使用计算机和手机连接互联网,查看电子邮件,进行在线交易,检查社交媒体,创建文件,拍摄朋友、家人或喜爱的地方的照片。
物联网安全风险
下一件将在我们生活中发挥重要作用的大事就是物联网(IoT)。一切都会连接到互联网——风扇、管灯、电冰箱、门、汽车,甚至在医疗术语中,我们的心脏——都可以连接到一个物联网传感器。这个清单会很长。想象一下,如果一个人的心率通过物联网传感器控制而被黑客攻击的情况。
最突出的物联网安全问题之一是个人使用相同的登录凭证进行所有操作的问题。
计算机安全风险
计算机安全风险是可能损坏或窃取数据,或未经用户通知允许未授权访问计算机的事件。你的计算机由操作系统和应用程序组成,其中大多数攻击都是通过恶意应用程序或坏软件实施的,换句话说,就是通过不良软件。通常认为所有损害仅由计算机病毒造成,但实际上有多种类型的不良软件。像后门程序、拨号器、间谍软件、病毒和蠕虫、键盘记录器、广告软件等特性都可能导致计算机安全风险。

安全风险 - 边界网关协议
在网络世界中,设想一种情况,攻击者将他们的电缆插入你的网络,建立一个边界网关协议(BGP)会话,并嗅探进入线路的所有数据。这不仅限于嗅探你的信息,还可能给其他人带来很多麻烦。
例如:
-
PTA 封锁 YouTube:
-
场景:巴基斯坦电信通过 PCCW 电信连接到全球互联网。
-
问题:PCCW 未验证巴基斯坦电信广告的前缀,且 BGP 协议中没有内建的机制来验证信息。
-
影响:对客户的拒绝服务(DoS)、流量重定向、前缀劫持和 AS 劫持。
-
-
2008 年 2 月 24 日,巴基斯坦电信管理局(PTA)开始发布 YouTube 的特定前缀。PTA 打算在巴基斯坦封锁对 YouTube 的访问,并广告了特定前缀
208.65.153.0/24。这是 YouTube 使用的前缀之一208.65.152.0/22-208.65.155.255。目的是让 YouTube 的流量被转发到 Null0 接口,从而在巴基斯坦封锁 YouTube。然而,同一路由也被广告到上游 ISP(PCCW AS 号3491)。PCCW 也将此信息展示给其他对等方。于是 YouTube 启动了一个更具体的前缀(208.65.153.128/25)来恢复流量。 -
中间人攻击(MITM):这是另一个例子。想象一个情况,你所在的组织中某个人通过配置交换机上的 SPAN,使得所有财务员工都能连接到这个网络进行数据监听。如果财务门户没有采取安全的访问方式,所有的用户名和密码信息都可能被提取出来。这就是我说应该为所有系统启用 HTTPS 的原因。即使黑客可以访问数据进行监听,他们也无法解密系统中的加密数据。这些类型的黑客行为属于 MITM 攻击,其中攻击者能够访问数据线路或劫持流量。

- 地址解析协议(ARP):欺骗攻击可以是类似的攻击类型。对于局域网地址解析协议,必须知道计算机在局域网(LAN)中的身份。假设你在局域网中配置了互联网网关,并且所有互联网流量都经过该设备。攻击者可以进行 ARP 欺骗,将一个新系统伪装成互联网网关。现在所有的互联网流量都会经过攻击者的系统,他们可以监听你的数据。市场上有许多工具可以用来进行欺骗,它们的作用就是改变你机器的 MAC 地址。

MITM 攻击可以进一步分为两类:WAN 和 LAN。
安全性和威胁
在一个日益互联的世界中,安全威胁不断发展,试图寻找新的方式来窃取或破坏数据。对于任何组织和任何有互联网连接系统的个人,保护这些信息变得尤为重要。恶意或无知的人为活动是计算机的主要威胁。恶意行为总是有一个目标,并且有特定的攻击对象。
攻击者通常有动机或目标。这些动机和目标通常遵循以下公式:
动机 + 方法 + 漏洞 = 攻击:
如下图所示,安全威胁由人为因素或自然灾害驱动。人为因素驱动的威胁可以进一步分为外部威胁或内部威胁,或者归因于用户的无知。我们将详细讨论这些威胁:

自然灾害
自然灾害是由地球自然过程引发的重大不利事件。例子包括洪水、飓风、龙卷风、火山爆发、地震、海啸以及其他地质过程。没有人能阻止自然的进程。这些事件会对计算机系统造成严重损害。信息可能丢失,可能会发生停机或生产力损失,硬件损坏也可能中断其他关键服务。对自然灾害能采取的保护措施很少。最好的方法是制定灾难恢复计划和业务连续性计划(BCP)。
人为威胁
人为威胁包括内部攻击者或外部攻击者。内部攻击者可以是员工、供应商或拥有系统特权访问权限的承包商。外部攻击者则是指非员工或出于某种动机或目的,试图破坏和干扰组织的个人或团体。
最危险的攻击者通常是内部人员,因为他们可以访问系统并了解已有的安全措施。内部攻击可能是恶意的,也可能是疏忽的,甚至有时是偶然的。
世界上所有公司都必须应对员工的裁员和扩展。因此,控制和更改系统资产的权限是一个非常重要的行动项目。如果没有流程,且未能移除不再需要访问敏感资产的员工的权限,资产将暴露于未授权访问的风险之中。这常常是内部攻击的常见原因,但往往被忽视。
由于员工与雇主之间通常存在信任关系,大多数员工并非出于恶意。然而,无法确保所有员工都遵循这一点,因此最好的做法是保持谨慎,并采取适当的措施以防范内部威胁。
这里有一个经典例子:
一家公司的重要应用程序是由一名在公司工作多年的员工使用个人凭证操作的。然而,有一天公司解雇了这名员工。第二天,信息技术部门删除了他的凭证,结果该应用程序停止了工作。像这样的问题可能会对系统造成重大损害,并且肯定需要时间才能识别和修复问题。
人为安全威胁可能是非常简单的事情,比如一个人打开了一个附带恶意脚本或恶意软件的附件,这些脚本或恶意软件打开了系统的后门,允许外部人员提取信息。最糟糕的情况往往不是黑客突破内部系统,而是员工丢失了智能手机或笔记本电脑被盗。最好的防御是保护数据,而不仅仅是保护设备。这意味着要在文件级别进行加密,即使信息被盗,也能确保机密信息得到保护。
安全漏洞
恶意攻击者使用一种方法寻找目标资源,发现已知的漏洞,然后利用这些漏洞来实现某个目标。漏洞是安全中的弱点、配置错误或漏洞,攻击者通过这些漏洞获取对网络或网络资源的访问权限。
安全漏洞不仅限于 Web、SQL 数据库或操作系统。相同的方法适用于任何基础设施的网络设备。
这些是三个主要类别:
-
技术弱点
-
配置弱点
-
安全政策弱点
技术弱点
这些包括 TCP/IP 协议的弱点、操作系统的弱点、操作系统上运行的软件弱点和网络设备的弱点。
TCP/IP 是一组协议,用于通过网络传输数据。该协议组中最重要的部分是 IP,它代表网络中的用户身份。相关的主要协议包括:
-
传输控制协议(TCP)
-
用户数据报协议(UDP)
-
互联网控制消息协议(ICMP)
TCP 端口号用于标识应用程序。例如:
-
端口
21:FTP -
端口
23:Telnet -
端口
80:HTTP -
端口
443:HTTPS
TCP/IP 本应提供两个主机之间的可靠连接,但没有内建安全功能,例如加密或身份验证。像 HTTP、FTP、TFTP 和 TELNET 这样的协议是不安全的,因为所有信息都是明文传输的。
SYN 洪水是一种 DoS 攻击形式,攻击者通过发送一系列 SYN 请求,试图占用目标系统所有的可用服务器资源,从而使系统无法对合法流量提供服务。
这是 TCP 三次握手的正常行为。SYN 数据包由用户发送,服务器确认后最终通过 ACK 回应。

在 SYN 洪水攻击中,系统无法处理 SYN 数据包。攻击者(绿色)发送一系列 SYN 数据包,并且也会收到 ACK 回应。同时,攻击者消耗所有服务器资源,因此真正的用户(紫色)无法收到 SYN-ACK 回应。

UNIX、Linux、Macintosh、Windows 和 OS/2 操作系统都存在安全问题。这些公司不时发布安全更新和漏洞修复。
路由器、防火墙、光纤设备和交换机等网络设备具有必须识别并加以保护的安全弱点。
在接下来的章节中,我们将详细讨论这些类型的攻击,分析如何在实际网络中应对它们。
配置弱点
作为网络/系统管理员,我们应该了解配置弱点是什么,以及如何为计算和网络设备采取纠正措施。
用户账户信息可能以明文方式在网络上传输,暴露用户名和密码给攻击者。例如,如果你通过 Telnet 管理设备,用户名和密码可能会被窃取。使用 HTTP 图形界面管理设备时,同样的风险也存在。
设备配置错误可能导致重大网络设备安全问题,并为未经授权的访问打开大门。例如,配置错误的访问控制列表、路由协议或 SNMP 社区字符串可能会造成严重的安全漏洞。配置错误的加密、缺少加密或使用低强度加密算法的远程访问控制也会引发严重的安全问题。
身份验证和授权是一个主要关注点。如果您想知道谁在网络设备或系统上做了什么,那么您可能希望通过启用日志记录的单一身份验证平台来集中身份验证,以便定期进行审计。
为了减少对您网络的威胁,最好的选择是在所有网络设备和计算系统上禁用任何未使用的服务。例如,如果您有一个 Web 服务器,您应该禁用 FTP、SMTP 和其他服务。另一个例子是,如果您正在使用 SSH 管理设备,您可以在同一台设备上禁用 Telnet、HTTP 和 FTP。
您应该只在设备上运行必要的应用程序。所有不必要的应用程序和服务都应该被禁用,以最大程度地减少对外部世界的暴露。
安全策略弱点
安全策略弱点可能会导致意想不到的安全威胁。如果系统管理员不遵循安全策略和行业最佳实践,网络基础设施本身可能对自身构成安全风险。每个组织都必须有一个安全策略,并且应该强制执行给所有用户/管理员/基础设施。当没有明确或书面的基线安全策略文件时,安全弱点就会出现。
始终遵循所有基础设施设备和网络的基线,以符合政策。应该建立系统来验证不符合规定的设备。例如,如果您在网络中有数百万台设备,很难检查它们是否都符合规定。然而,像 HPNA 和其他工具这样的系统可以扫描所有设备的基线配置集,并生成报告。
单一密码验证:有三种基本的身份验证方法:
-
用户名和密码
-
一次性密码
-
证书
在第一种方法中,密码基本上是用户定义的,证书是计算机生成的,基于密钥。暴力破解可以轻松破解密码;密码容易忘记,并且经常在多个服务或应用程序上重复使用。这些密码就像对称密钥一样,存储在服务的某个地方。服务提供者有责任保护您的密码。然而,在新闻中,我们经常听到密码数据库被黑客入侵,数百万个密码泄露。第三种方法基于密钥和强大的算法,但即使它们也不是 100%防不胜防,因为私钥也可能被盗。
双因素认证(2FA),通常称为两步验证,是一种安全流程,用户通过结合两种方法提供密码信息来验证用户是否真实。双因素认证通过保持密码的一部分静态和另一部分动态,在给定的时间间隔后不断更改,提供了额外的安全层。这使得攻击者更难以访问个人设备和在线账户;仅仅知道受害者的密码是不足以通过认证检查的,因为组合密码是动态的,并且与之关联有一个过期时间。长期以来,双因素认证一直被用于控制对敏感系统和数据的访问,越来越多的在线服务引入了 2FA,以防止黑客通过嗅探或窃取密码来访问用户的数据。
谷歌等公司正在遵循最佳实践。即使您更换智能手机或浏览器,您也会立即收到通知。公司采用智能卡认证以及电话认证的方法来验证用户的身份。银行业分发 RSA 令牌用于双因素认证。
使用未加密或弱加密的网站
诸如 Telnet、HTTP 或 FTP 等协议为中间人攻击打开了大门。其主要原因是这些协议不提供端到端加密。文件传输协议用于两个主机之间的数据传输,每次您需要输入明文的用户名和密码,这对于攻击者来说非常容易嗅探到凭据和传输的数据。为了保护信息免受攻击者的侵害,我们不应该使用任何不支持加密的协议。例如,为了管理目的,我们应该在任何设备上使用 SSH 而不是 Telnet。所有网站必须提供 HTTPS,而不是使用 FTP 进行数据传输应该使用 SCP 或 SFTP。特别是,历史上不安全的服务,如 Telnet、FTP、SNMP、POP 和 IMAP,必须被它们的加密等价物所取代。
SSL SHA1,一种极其流行的哈希函数,正在退出历史舞台。严格来说,这一发展并不新鲜。SHA1 存在弱点的迹象几乎出现在将近 10 年前。2012 年,一些计算显示,对于那些有能力的人来说,破解 SHA1 正在变得可行。2013 年 11 月,微软宣布他们将在 2016 年之后不再接受 SHA1 证书。
保护域控制器:消除 LM 和 NTLM(v1)的使用,转而使用 NTLMv2 或 Kerberos。Kerberos 是基于令牌的系统。刷新时间非常快,以至于即使有人入侵了您的会话,您也会得到新的令牌,刷新时间使其更加可靠。
同样,你应该制定资产安全管理的指导方针。所有的服务器和资产应该由域控制器安全组来管理。使用服务账户进行交互式登录也可能造成重大损害,因此应禁用服务账户的交互式登录。其原因在于,如果系统被攻破,攻击者也能访问域控制器。
连接到不安全的 Wi-Fi 网络:通过公共 Wi-Fi 网络或热点连接可能会危及你的计算机/移动安全,将你的信息置于风险之中。无论是在计算机还是移动设备上,黑客都能相对容易地通过不安全的 Wi-Fi 网络访问你输入并发送的信息,包括你的登录信息和密码。
用户需要接受如何使用 Wi-Fi 与计算机设备连接的教育。以下是每个公司员工都应该知道的一些重要提示:
-
如果可能,确保仅连接到安全的网络
-
对所有在线账户使用强密码,并定期更改密码
-
使用 VPN 访问公司资源

总结
到目前为止,我们讨论了为什么基础设施是当今互联网世界的绝对需求,以及这对系统管理员和互联网用户意味着什么。我们还了解了如何建立安全的 IT 基础设施和政策框架来保护信息。
当今信息安全的一个主要弱点是人为因素。员工和最终用户的日常行为构成了对组织和客户最大的风险之一。IT 技术的发展速度比以往任何时候都要快。我们看到组织内不断实施新的安全控制、政策和最佳实践,但每天安全漏洞仍在发生。从小型到大型组织,没有人能做到 100%的保护。只需一个未经教育的最终用户犯下简单的错误,就可能在信息安全中留下后门。组织需要关注他们与之合作的人,无论是内部还是外部。为员工和最终用户制定足够的培训和安全框架,对于保护系统变得非常重要,尤其考虑到不仅是技术发挥着重要作用,用户也是关键。我再强调一次:如果你有联网设备,那么保护它们也是你的责任。
在 2017 年,像 WannaCry、NotPetya 和 Bad Rabbit 等勒索病毒展示了这种威胁的危险性,以及对几乎任何行业的潜在影响。预计 2018 年,物联网(IOT)将成为未来几年攻击者的主要目标,此外,云基础设施、人工智能(AI)以及移动攻击者的崛起也日益增加。
在我们的下一章中,我们将讨论如何设计安全的基础设施,并牢记常见的风险因素。这从防火墙和 DDoS 保护技术的布局开始。
这是一个著名的名言,请记住:
“如果你在咖啡上的花费超过了 IT 安全,你就会被黑客攻击。而且,更糟糕的是,你应该被黑客攻击。”
― 理查德·克拉克
问题
-
防火墙有哪些不同类型?
-
简单包过滤
-
应用代理
-
有状态检查防火墙
-
下一代防火墙
-
以上全部
-
-
使用 IDS/IPS 可以防止哪些类型的攻击?
-
拒绝服务(DoS)
-
分布式拒绝服务(DDoS)
-
漏洞利用
-
蠕虫
-
病毒
-
-
以下哪些信息可以在 IP 头部中找到?
-
IP 数据包的源地址和目标地址
-
IP 数据包的源端口和目标端口
-
IP 数据包的序列号
-
仅(1)和(2)。
-
-
请求 HTTPS 的标准端口号是多少?
-
80
-
53
-
443
-
25
-
-
以下哪一项不被认为是网络的外部威胁?
-
人类无知
-
病毒
-
黑客
-
恶意软件
-
进一步阅读
访问以下链接以获取更多信息:
第二章:安全网络设计
在上一章中,你学习了基础设施安全的基本概念,并为理解网络空间中当前存在的安全威胁所需的信息安全领域打下了坚实的基础。
互联网发展迅速,已经进入一个每个人都必须连接才能交换信息的阶段。想象一下,数十亿拥有互联网设备的人直接连接到互联网,而某种不安全的网络成为网络犯罪分子的目标。
在本章中,我们将描述如何确保网络安全,并探讨网络安全的重要性。以分层的方式,我们还将讨论根据业务目标建立安全网络的方法和途径。
本章将涵盖以下主题:
-
访问控制
-
网络管理和安全设计
-
强化你的 TCP/IP 栈
-
DoS 和 DDoS 攻击
-
IP 欺骗
-
Ping 扫描和端口扫描
-
DNS 漏洞
-
双因素认证
访问控制
作为应用程序或网络的拥有者,我们应该知道谁或什么正在访问我们的网络资源。如果我们不知道或没有跟踪我们的活动,而只是假设网络上发生的事情,我们就无法保证数据安全和最终用户的安全。
我们需要从安全基础开始。这从了解我们的网络中包含什么开始。
资产分类和物理安全
网络安全中最基本(但往往最被忽视)的要素是防止硬件被盗或受到物理入侵。
如前所述,我们需要分类的第一个对象是我们的资产。一旦数据分类确定,网络服务器、网络交换机和其他核心网络组件应该放置在安全的设施中进行保护。机架和机柜应上锁,并根据需要授权,并且必须有适当的批准和安全指南。
认证、授权和计费
认证、授权和计费 (AAA) 是一个用于集中和安全地控制 IT 基础设施资源访问的功能。通过执行策略和提供审计功能,跟踪在给定设备上执行的活动来实现这一点。简单来说,认证可以指通过用户名和密码识别用户。AAA 服务器将用户的认证凭证与存储在后端数据库中的凭证进行匹配。授权过程验证用户是否有权限执行指定的任务。这可以包括访问或在给定资源上执行任何命令。AAA 功能的最后一部分是计费,它记录用户在访问过程中所消耗的所有资源活动。
AAA 功能通常由一个专用的集中式 AAA 服务器提供,这是一个执行所有这些功能的软件程序。网络访问服务器与 AAA 服务器对接的当前标准是远程身份验证拨号用户服务(RADIUS)或终端接入控制访问控制系统(TACACS)协议。
TACACS 还可以进一步连接到域控制器的安全组,从而提供更高的安全访问权限。你需要在域控制器上创建两个安全组,例如RO和RW。经过一两次人工安全批准后,你的用户账户将自动添加到RW组中。这提供了一种动态请求管理员(admin)权限访问生产机器的方式。在指定时间后,账户会自动从该组中移除。
网络管理与安全设计
在管理网络和网络资产时,必须始终有一个集中式的安全管理工具子网,用于 DNS、DHCP、NTP、AAA 和网络管理等服务。通过定义边界,问题的排查变得更加容易,因为这些服务处于已知位置,并且有几个公认的访问路径和方法。
网络分段
我们大多数人专注于前门的安全,并通过在外围设置某种防火墙来防范来自外部世界的威胁。实际上,单靠外围安全并不能保护你的网络和信息数据。这样做就像把钱存进一个依赖单个武装守卫的银行。
分段的概念源于古代历史,当时罗马帝国根据俘获战士的民族和地理身份组建和作战单位。这个想法非常简单:根据相似的背景组成战士小组,以便他们能够相互联结,最终成为更强的战斗单位。
在关注基础设施安全时,资源整合、虚拟化和网络整合是有益的。通过提高安全性的网络基础设施整合一直是分段策略的关键部分。传统的分布式应用程序和复杂设计的服务模型现在正在向共享物理基础设施或云网络迁移,这要求进行隔离以保持强大的隔离性。同样,随着虚拟化、软件定义网络(SDN)、容器、无线连接、托管服务、数据中心基础设施和物联网(IoT)的引入,网络在过去几年经历了剧烈变化。通过实施 Layer-2 技术,如 VLAN,Layer-3 技术,如虚拟路由与转发(VRF)进行路由隔离,以及基于区域的防火墙进行段间隔离,可以实现网络分段。
在当今的网络安全环境中,你必须假设自己不是 100%免疫于这些威胁,并且可能已经有恶意软件在网络中存在。通过多层防御的方法,网络分段使得攻击者更难对整个网络发起攻击。同时,这也为内部人员增加了一层威慑,因为你可以将重要数据和资源与内部攻击进行隔离。
从网络设计的角度来看,分段有限、用户数量庞大且应用复杂的网络通常会遇到访问控制问题。每个用户组几乎都能访问企业网络中的所有应用。所有部门都能连接到网络上的所有其他资源,如下图所示:

分段策略步骤
分段设计和策略应基于关键资产的价值或资源,而不仅仅是基于网络边界的隔离。此设计策略应从高层网络设计开始,通过传统的网络边界(如 DMZ、数据中心、虚拟云和校园网络)隔离各个区域。然后,逐步深入每个区域,为其中的应用提供隔离:

虚拟局域网(VLAN):一个扁平的局域网段构成一个单一的广播域。这意味着如果一个用户在局域网上广播信息,所有其他用户都会听到这个广播。为了限制广播并隔离用户和应用,局域网段可以被划分为逻辑分段,称为VLAN,同时共享相同的物理有线网络。在下图中,你可以将第一个 VLAN 称为 VLAN_1,专门为财务团队使用;VLAN_2 专为人力资源使用,VLAN_3 专为工资单管理使用。所有 VLAN 共享相同的物理介质,但在逻辑上被隔离,以限制广播:

在下图中,每种颜色代表不同的 VLAN。该图展示了连接的示意图:

红色电缆代表 VLAN1,紫色电缆代表 VLAN2,黄色电缆代表 VLAN3。
虚拟路由与转发 (VRF):虚拟化是一种技术,它具有隐藏计算机资源物理特性的巨大优势,这些资源与多个操作系统共享。最终用户与这些资源进行交互时,甚至无法意识到这些资源是共享的。VRF 是一种用于 互联网协议 (IP) 网络路由器的技术,它允许在路由器中存在多个路由表实例并同时工作。VRF 还提高了网络安全性,这也是这些 VRF 资源不能相互通信的原因,除非它们通过单独的 Layer-3 设备进行通信。VRF 的主要优势在于,它们可以有重叠的 IP 地址而不会发生冲突。例如,在 MPLS 网络中,多个客户使用相同的 IP 范围,并且服务提供商资源是共享的。VRF 提供了灵活性,可以为多个客户使用相同的 IP 空间,同时确保安全性。如以下图所示,有四个 VRF,它们都在同一台路由器上使用相同的 IP 范围:

网络保护的考虑和设计
LAN 保护主要围绕 OSI 模型中的 Layer-2 保护。TCP/IP 的所有层都有自己的安全威胁和漏洞。防火墙是保护 LAN 的一种非常简单的方式,但它只保护来自外部的流量。Layer-2 攻击的来源是来自 内部 的 LAN。
对外部人员来说,执行 Layer-2 攻击是困难的,但绝不可低估内部人员的威力。内部人员通过从网络内部发起恶意攻击,能够造成比外部人员更多的损害。对这一点的主动威慑措施是:保持日志的记录,并设置 IDS 以检测此类攻击!
在深入探讨这个话题之前,让我们先了解一下网络交换机是如何工作的。
让我们检查一个 VLAN 段中的拓扑:A、B 和 C 是三个主机,它们连接到同一交换机的三个不同端口。当主机 A 通过端口 Fastethernet0/1 向主机 B 发送数据时,交换机会得知主机 A 位于端口 Fastethernet0/1,并将该映射记录到 内容可寻址存储器 (CAM) 中。如果主机 B 没有发起连接,也没有发送任何数据包,那么交换机将无法定位到主机 B,并且会将由 A 发起的数据包泛洪到所有 VLAN 端口。通过泛洪学习是交换机的基本行为,它用于在网络上发现主机:

这里是已知的主要 Layer-2 攻击:
-
CAM 溢出 / MAC 泛洪:交换机将 MAC 地址存储在 CAM 表中。内存大小根据每个型号和容量不同而有所差异,但内存是有限的。很容易通过虚假的 MAC 地址数据泛洪网络交换机。交换机无法处理这些多余的数据时,会陷入困境,开始像集线器一样工作。攻击发生后,你可以使用 Wireshark 等程序或其他通用嗅探工具来监听网络上的所有流量,因为交换机会将数据转发到所有其他端口。Macof 是
dsniff工具套件的成员,主要用于在本地网络中通过 MAC 地址泛洪交换机。Macof 每秒生成数千个数据包,每个数据包都会发送随机的源和目标 IP 地址。每个以太网帧的源和目标 MAC 地址也不同。 -
CAM 流量保护和防御措施:端口安全功能可以用于保护网络免受这种攻击,限制接口上的 MAC 地址数量。Cisco 在 IOS 中内置了这一功能,它允许你在交换机在一个端口上接收到超过一定数量的 MAC 地址时,将端口关闭。
Nexus 3064 交换机可以容纳 128k 条条目。通过以下命令可以查看此交换机学习到的所有 MAC 地址:

Cisco IOS 交换机 2960 可以容纳 8k 条条目:

一旦你启动macof攻击,所有可用地址会变为零,交换机开始像集线器一样工作。
你可以限制在此交换机接口上学习的 MAC 地址数量,并定义违规行为。请记住,这是确保用户端口安全的简单步骤,但在使用虚拟化的数据中心环境中,预计在同一个交换机端口上会学习到更多的 MAC 地址:

这是一个虚拟环境,多个 MAC 地址正在同一接口上被学习。这不是攻击,但你仍然可以根据设计指南限制 MAC 地址的数量:

ARP 欺骗:地址解析协议(ARP)是一种用于查找已知 IP 地址对应的未知 MAC 地址的协议或过程。所有需要在网络上通信的网络设备会广播 ARP 查询以查找其他机器的 MAC 地址。简单来说,任何 IP 网络上的通信,我们需要知道下一个跳点的 MAC 地址,才能将数据包放在网线中传输。
可以发送两种类型的 ARP 消息:
-
ARP 请求
-
ARP 回复
在 ARP 请求消息中,发送方将 ARP 请求广播到子网中的所有计算机,以发现目标 IP 地址的 MAC 地址。
在 ARP 回复中,目标系统将回复发送给发送者,提供 MAC 地址。
例如,目标伪装可能是互联网网关路由器。攻击者伪装路由器的 MAC 地址。为了转移流量,你需要将相同的 IP 配置到另一台设备上。然而,这会导致 IP 冲突,并可能引起网络管理员的警觉。路由器传输的 ARP 请求非常少,因为这类设备的 ARP 缓存时间可能非常长(例如,默认的 CISCO 路由器配置缓存时间为八小时)。所有这一切都是通过无意义的 ARP(gratuitous ARP)发生的,它会自动广播 ARP 的 MAC 地址到整个网络。在这种情况下,攻击者将发送 无意义的 ARP (GARP) 来毒化受害者机器中的 ARP 表:

上图展示了学习网关 MAC 地址的正常过程。受害者的主机向默认网关 192.168.1.1 发送 ARP 请求并得到响应,响应中包含 MAC 地址 CC:CC:CC:CC:CC:

攻击者发送 G-ARP,告知受害者他们现在拥有默认网关 192.168.1.1 和源 IP 192.168.1.2。这就是游戏开始的地方。现在,通信可以通过嗅探器被劫持。这样,受害者和互联网网关就能通过攻击者的计算机交换流量,而不会被通知。
WAN 保护:WAN 是一种地理分布式的连接方式,连接多个网络。典型的 WAN 可能包括与互联网服务提供商的多个位置的连接、ISP 之间的互联网连接、分支机构的连接、托管设施、云服务、公共互联网连接和其他位置。例如,MPLS WAN、互联网 WAN、专线、IPLC 电路和暗光纤电路。
为了保护通过 WAN 传输的数据的机密性和完整性,我们需要确保数据被加密。通过互联网 VPN,IPsec 和 SSL 加密可以提供全面的保护。
所有 MPLS 服务提供商都使用术语 虚拟专用网络 (VPN),表示某种程度的安全性。但实际上,MPLS 默认并不提供加密。相反,该技术允许服务提供商为每个客户保持独立的路由表。攻击者无法直接访问 MPLS 客户网络,但他们可能会获得核心网络的访问权限。缺乏内建加密意味着攻击者可以嗅探数据并进行分析。为了防止核心网络被破解,IPsec 在 MPLS 网络上提供额外的安全性。

在规划加密时,我们需要决定我们希望加密的层级。
为什么要加密第 1 层?
在更高层加密 IP 数据流量可能会显著增加两个网络节点之间的延迟,而在第一层加密则提供极低的延迟和高吞吐量。考虑到 100 Gbps(甚至更高)的网络连接的普及,通过在第一层加密数据可以实现期望的结果。随着更高层次加密的复杂网络和加密管理的增加,需要管理更多的设备和复杂的加密密钥管理。光学加密包括传输机和接收机之间的加密解密过程以及密钥分发。
数据中心互连(DCI)是暗光纤的主要用例:

为什么要加密第二层?
在以太网为基础的 VPN 安全时,以太网加密器在第二层加密网络是最佳选择。网络窃听是一种常见且无法防止的做法。第二层加密是硬件处理的,几乎以全线速运行,并且适用于 L2 网络(点对多点和多模式链路):

MACsec 提供的是第二层逐跳加密。每个跳设备将加密和解密数据包,但 IP 和 IP 载荷将被加密。在传输中查看数据包时,您将只看到第二层头部和其他内容。MACsec 是 IEEE 802.1AE 标准,用于在两个支持 MACsec 的设备之间认证和加密数据包。并非所有交换机都支持 MACsec。在实施 MACsec 之前,请检查交换机的能力。
TrustSec 使用 AES-128 GCM 和 GMAC(Galois/Counter Mode Advanced Encryption Standard 128)。MACsec 可以在主机之间配置 - 在此模式下,交换机被称为下行 MACsec。MACsec 还可以在交换机之间工作 - 此模式称为上行 MACsec。
对于下行模式,我们需要具备 NIC,它有助于 MACsec 或 Cisco 依赖于任何连接的软件:

为什么要加密第三层?
公共互联网便宜且更灵活。请记住,公共互联网并不安全,IPsec 提供了大量灵活性以加密数据并提供维护机密性、完整性、身份验证和反重放攻击的框架。IPsec 提供了一种基于标准的端到端加密解决方案,与底层物理网络基础设施无关。IPsec 也有几个限制。其中包括它不支持非 IP 流量,包括数据中心存储协议如光纤通道(FC)。
IPsec 加密在 OSI 模型的网络层(第三层)进行。第二层和第一层加密技术提供了与线速相同的 100% 吞吐量的“障碍消除”,远低于 IPsec VPN 的延迟。第三层加密对于低带宽环境是更好的选择:

加固你的 TCP/IP 协议栈
对于任何给定的操作系统,TCP/IP 协议栈的调优可以由系统管理员进行。更改 TCP/IP 协议栈变量的默认值可以提供额外的保护层,帮助你更好地保护主机的安全。
这主要是确定并决定服务器在触发 TCP/IP SYN 洪水攻击防护之前,能够在半开放状态下保持多少连接。这意味着,为了配置 TCP 连接的阈值,请求必须超过该值,才能触发 SYN 洪水防护。
以下参数可以在操作系统层面上调整,用于优化 TCP/IP 协议栈。这些调整不仅适用于操作系统,还适用于防火墙、负载均衡器等网络设备,帮助你精细调节 TCP 协议栈:
-
TcpMaxHalfOpen -
TcpMaxHalfOpenRetried -
TcpMaxPortsExhausted -
TcpMaxConnectResponseRetransmissions
我们将在下一节详细讨论 DoS 攻击。
DoS 和 DDoS 攻击
拒绝服务(Denial-of-Service,DoS)是一种攻击方式,在这种攻击中,由于恶意请求过度占用资源,在线服务无法响应来自合法主机的连接。当攻击来自多个来源时,这种攻击就变成了分布式拒绝服务(DDoS)攻击,且很难通过 IP 地址或地理位置来阻止攻击源。
DDoS 攻击通常采用以下形式:
-
基于流量的攻击
-
应用层攻击
-
低速攻击
基于流量的攻击
基于流量的攻击是迄今为止最常见的 DDoS 攻击类型。
根据 Arbor Networks 的报告,65%的 DDoS 攻击具有流量放大特性。
基于流量的攻击特点是流量过大(有时超过 100Gbps)。这些攻击并不要求流量来自某一个位置或某一个来源。
以下是这种攻击的一个示例:
- NTP 放大攻击:NTP 放大攻击是一种基于流量的 DDoS 攻击,攻击者利用公开可访问的网络时间协议(NTP)服务器功能。这个名为
monlist的命令会向请求者发送最近六百个连接到查询服务器的主机列表。对于一个小的查询,响应数据量非常大。假设查询:响应的比例为 1:50。也就是说,攻击者可以通过一个 1 Gbps 的网络接口卡(NIC)产生 50 Gbps 的流量,而这一过程会在多个来源中复制。这可能会在网络中引发多个太比特的流量。
在以下示意图中,你可以看到攻击者向公共 NTP 服务器发起查询,并伪造受害者的 IP 地址。NTP 服务器响应查询时,会将大量数据发送给受害者的 IP,从而使受害者的网络受到阻塞,导致资源不可用:

- 缓解措施:应启用源 IP 验证,以防止伪造的数据包离开网络。
其他类似的大流量攻击例子有:
-
用户数据报协议(UDP)洪水攻击
-
ICMP 洪水攻击
-
域名服务器(DNS)放大攻击
-
字符生成器(Chargen)
应用层攻击
应用层攻击是低流量攻击,非常难以检测。这些攻击针对应用程序或服务器的弱点,目的是建立连接并耗尽进程和事务。此类攻击不需要僵尸网络类型的军队;生成低流量的攻击只需要少量资源,且流量类型看起来是合法的。
最著名的第 7 层攻击示例是 HTTP Get/Post DDoS 攻击。
- HTTP 洪水攻击:HTTP 洪水是一种非常常见的 DDoS 攻击类型,网络犯罪分子利用 HTTP
GET或POST请求攻击在线 Web 服务器或应用程序。攻击者通过形成一个僵尸网络,向目标服务器发送大量的 GET(图像内容)或 POST(文件)请求。目标 Web 服务器会试图响应来自僵尸网络的每一个请求。根据正常的应用行为,服务器会分配最大量的资源来处理这些请求。这会阻止来自真实用户的请求到达 Web 服务器或应用程序,从而形成服务拒绝:

- 云是攻击者的新平台:云平台为黑客提供了一个新的平台来创建僵尸网络军队。几千个虚拟机/主机可以在几秒钟内创建并删除,且流量看起来是合法的:

- 缓解措施:基于环形的 Anycast 解决方案提供了内建的 DDoS 防护,能够防止此类洪水攻击。最有效的缓解机制依赖于结合流量分析方法,包括识别 IP 声誉。
低速攻击
低速攻击的目标是悄无声息地使目标瘫痪。这与高速暴力破解攻击有很大不同。这些攻击通过在一段时间内创建相对较少的连接并尽可能长时间保持这些会话开放,来让目标的连接保持打开状态。此类攻击的著名例子是Slowloris工具,它允许攻击者仅凭最小的带宽要求,而不需要同时发起大量连接,就能摧毁受害者的 Web 服务器。
Slowloris是一种应用层(第 7 层)DDoS 攻击,它通过利用有效的部分 HTTP 请求来运作。攻击者向目标 Web 服务器发送带有连接请求的 HTTP 头部,并保持这些连接尽可能长时间,但永远不会完成请求。为了避免连接超时,攻击者会定期向目标发送另一组部分请求头部,以保持请求活跃。最终,这会导致最大并发连接池溢出,从而使合法用户的后续连接无法获得服务。
缓解措施:
-
提高服务器可用性
-
限制传入请求的速率
-
限制来自一个 IP 地址的连接数。
IP 欺骗
IP 欺骗是利用他人的 IP 地址作为 IP 数据包的源地址来创建 IP 数据包。
让我们来看看 IP 数据包中的 IP 头部:

在下图中,攻击者代表的是他人的 IP 地址:

使用访问列表进行防欺骗
网络运营商可以实施一个防欺骗的访问控制列表过滤器,防止源 IP 地址不正确的数据包进入或离开网络。使用以下命令,访问控制列表将阻止带有内部 IP 地址的数据包进入。220.x.x.x是我拥有的网络,所以我不期望会有来自我自己 IP 地址以外的数据包。
Cisco IOS 命令:
access-list 101 deny 220.x.x.0 0.0.0.255 any
加密
另一种防止 IP 欺骗的可能方法是加密所有网络流量,以防止源主机和目标主机被攻破。
使用 RPF 检查进行防欺骗
RPF 是一种支持多厂商的防止 IP 欺骗的功能。它可以用于单播和多播。RPF 检查数据包的源地址以及它从哪个接口学习到该地址。如果源地址在路由表中,则该数据包会被路由设备接受。如果不在路由表中,则会丢弃该数据包。RPF 的唯一问题是它不适用于不对称路由,因此要求严格的对称路由模式。
Ping 扫描和端口扫描
在讨论 ping 扫描之前,让我们先来了解一下 ping。
-
Ping:Ping 是一种常用的工具,用于查找网络中主机的状态。Ping 基于 ICMP 协议。当发送一个 Ping 过程请求作为 ICMP 回显请求到目标主机时,目标主机会以 ICMP 回显应答来回复。
-
Ping 扫描:Ping 扫描是一种可以用来找出在指定 IP 范围内哪些主机处于活动状态的技术。允许 ICMP 的网络管理员容易受到基于 ICMP 的攻击。
多种工具可用于 ping 扫描。你甚至可以通过编写一个简单的脚本开发自己的工具。以下是如何从 Windows 机器运行 ping 扫描的简单示例:FOR /L 循环,这是一个计数器,变量为 %i。它从 1 开始,每次循环迭代增加 1,直到 255。我想在 192.168.0.0/24 网络中对 /24 子网进行 ping 扫描,并对每个 IP 地址进行一次 ping (-n 1)。可以使用过滤器 | find "Reply",但这只会显示从中收到回复的 IP 地址。在我的实际网络中,有四个 IP 地址响应 ICMP ping,如下图所示:

- 端口扫描:首先,让我们了解一下什么是端口。主机上的任何应用程序都应该有一个有效的端口,这个端口就像一个小门,用于与网络上的其他主机进行通信。你可以有总共 65,535 个 TCP 端口和另 65,535 个 UDP 端口。端口范围
0到1023保留给特权服务,并被指定为知名端口。
端口扫描是一种向目标主机的一系列服务器端口地址发送客户端请求的过程,目的是寻找活动端口并利用该服务的已知漏洞。
-
TCP 端口扫描:TCP 端口扫描是最基本的 TCP 扫描形式。端口扫描工具可以以每秒大约一千个端口或更多的速度快速扫描目标。这些工具使用操作系统打开与目标机器任何端口的连接,以便检测目标的可用服务数量。如果端口正在监听,初始连接握手将成功,否则该端口将无法访问。
-
TCP SYN 扫描:TCP SYN 扫描基于 TCP 三次握手,也被称为 半开放 扫描。攻击者不会建立完整的 TCP 连接,而是发送一个 SYN 包并等待响应。目标的 SYN/ACK 响应表示该端口正在监听,一旦收到 SYN/ACK,攻击者就会发送一个 RST 响应。
缓解措施
解决这个问题的一个简单方法是完全停止 ICMP。ICMP 可以在防火墙层、网络层或主机层停止。我们理解 ICMP 是网络管理员和系统管理员常用的故障排除工具,但我们应该避免依赖基于 ICMP 的 ping,而应依赖 TCP ping。这种扫描也可以被 IPS/IDS 系统检测到并停止。
对于主机级别的示例,可以通过配置入站规则轻松地在 Windows 上阻止 ICMP Echo。可以使用 Windows 系统中的工具 wf.msc 创建一个新规则:

DNS 漏洞
DNS 依然是黑客非常感兴趣的目标,并且从用户的角度来看,DNS 是网络中非常重要的一部分。我们几乎每天在浏览网页或使用应用时都会无缝地使用它,甚至不知道它的存在。
DNS 提供了一种通过目录服务解析互联网中任何主机的 IP 地址的方法。
DNS 如何工作?
一台主机向 DNS 服务器发送 DNS 查询请求,并且作为响应,获取了1.1.1.1的 IP 地址对应于www.abc.com。此时,主机可以直接使用该 IP 地址请求www.abc.com:

DNS 协议攻击
DNS 欺骗或 DNS 缓存中毒:DNS 欺骗发生在特定 DNS 服务器记录被篡改,从而将流量重定向到攻击者处。这种流量重定向使攻击者能够窃取数据,因为用户很难识别实际网页和假网页之间的差异。
在此示例中,用户尝试获取真实 Web 服务器的 IP 地址1.1.1.1,但攻击者已篡改 DNS 记录,因此用户被重定向到一个假网站的 IP 地址2.2.2.2:

缓解措施
域名系统安全扩展(DNSSEC)是一项基于数字签名 DNS 记录的安全技术,用于帮助确定数据的真实性。DNSSEC 通过在现有的 DNS 记录中添加加密签名来创建一个安全的域名系统。DNSSEC 的主要目标是通过帮助保护用户免受被重定向到欺诈性网站和不必要地址的攻击,增强互联网的信任度。
双因素认证
双因素认证(2FA)是一种可选的安全层,它为您的账户增加了额外的保护层。该过程将您拥有的东西(令牌或代码)与您知道的东西(密码)结合起来。双因素认证比单纯的密码更有效地保护账户访问,使攻击者更难访问您的账户,因为它们具有动态特性。2FA 的两种常见方法如下:
-
认证应用程序或令牌:使用受信任的应用程序或安全 RSA 令牌生成安全代码
-
短信验证:通过短信将安全代码发送到与您账户关联的电话号码
双因素认证示例:
现在大多数银行都为客户提供双因素认证服务。网络管理的一个好例子是将 RSA 功能与 Cisco TACACS 或 Radius 结合使用,以获得对任何网络设备的访问权限。VPN 用户必须通过 2FA 认证来验证身份。
硬件令牌(如钥匙扣或读卡器形式)由于物流支持问题而难以维护,且令牌通常较小,容易丢失。双因素认证(2FA)通过利用手机短信技术使生活更加便捷。
以下是 RSA 硬件令牌的图片:

总结
设计安全网络的过程需要识别不安全区域,了解网络攻击的方法以及满足业务需求的最佳解决方案。网络设计的四个基本技术要求是可扩展性、可用性、安全性和可管理性。
我们讨论了在一个日益以互联网为导向的世界中采用正确方法来防范安全威胁的重要性。我们还涵盖了所有网络层的安全弱点,包括路由器、交换机、防火墙配置系统以及连接到互联网时的风险。我们还学习了最佳的安全方法,以及如何通过应用安全配置来保护网络免受漏洞、威胁和攻击。
在下一章中,我们将讨论更多关于服务器安全、加密方法和数据保护政策执行的内容。
问题
- AAA 代表什么?
-
-
权威
-
授权
-
审计
-
身份验证
-
会计
-
-
什么是最常见的两种 AAA 协议?
-
TCP/IP
-
RADIUS
-
TACACS+
-
PPP
-
-
试图使目标系统对其预期用户不可用的攻击被称为:
-
-
拒绝服务攻击
-
Slow read attack
-
伪造攻击
-
饥饿攻击
-
-
以下哪项不是攻击,而是一种搜索可用服务以识别漏洞以便攻击给定目标的工具?
-
拒绝服务
-
端口扫描
-
内存访问违规
-
垃圾箱搜寻
-
进一步阅读
有关参考资料和更多信息,请参考以下链接:
第三章:服务器级安全
在上一章中,我们讨论了如何构建安全的网络基础设施。本章将讨论如何在安全网络内部构建和确保服务器安全。
服务器/计算机安全是确保业务顺利运行的基础设施关键部分。信息安全随着依赖公共网络的增加而发展,以防止个人、财务及其他限制信息的泄露。因此,维护数据的机密性、完整性和可用性变得尤为重要。本章重点介绍如何确保数据安全,并实施各种政策来保护服务器基础设施。
本章将涵盖以下主题:
-
数据分类
-
物理安全
-
磁盘加密
-
强化服务器安全
-
认证 NTLM 与 Kerberos
-
密码策略
-
服务器级权限
-
服务器病毒和恶意软件保护
-
本地安全策略
数据分类
设置 IT 基础设施的主要目的是使应用程序运行起来。然而,在对资产进行分类后,我们需要解决服务器特定基础设施上的安全性问题。在一个包含多个厂商服务器和多操作系统环境的大型网络中,预期会有不同的应用程序集。基于角色、权限和操作系统的服务器分组可以解决多个安全问题。
物理安全
在大多数情况下,物理访问意味着完全丧失安全性。即使攻击者无法访问你的数据,他们也可以造成大量损害。我们将查看每个人都应该实施的最基本的安全措施,前提是这些措施尚未实施:
-
锁好服务器机房:服务器机房是你物理网络的电力站,任何能够物理接触到机房内的服务器、交换机、路由器、电缆和其他设备的人,都可能造成巨大损害。
-
设置监控:你需要一种方法来监控谁进出,做了什么以及何时做的。更好的解决方案是设置生物识别扫描仪,要求在解锁门时进行验证,并记录每位技术人员的身份。监控摄像头可以进行持续监控,或者使用运动检测技术来记录人的移动。如果在不该有动作的时候检测到运动,它们甚至可以发送电子邮件或手机通知。
-
禁用驱动器:当然,为了保护环境,我们不希望任何人将公司信息复制到可移动媒体。你应该简单地禁用或移除 USB 接口和其他连接外部驱动器的方式。
-
教育你的员工:除了技术之外,这是确保安全最重要的因素。必须对员工进行安全相关问题的培训,例如密码选择、社交工程策略和电子邮件钓鱼。这样几乎不可能让外部人员侵入。
磁盘加密
保护管理业务关键数据及其客户的任何服务器非常重要。尽管服务器存放在安全设施中,但这并不意味着它们不会面临数据丢失或盗窃的风险。有时,服务器中的存储驱动器在运输过程中被错放,这可能导致数据丢失。另一个例子是防止离线攻击。如果数据驱动器被盗并插入到另一台系统中以启动其他操作系统,这基本上绕过了密码保护。如果该驱动器没有加密,其信息可能会被检索出来并暴露给不必要的人员,导致组织面临合规性违规、个人诉讼以及公司声誉受损的风险。
全盘加密
让我们详细探讨一下整个磁盘加密的工作流程。全盘加密会对整个磁盘驱动器进行加密。当经过身份验证的用户从完全加密的驱动器访问文件时,加密技术会使用系统启动时提供的解密密钥对文件进行解密,其余部分的驱动器仍然保持加密状态。这种方法确保了在系统故障或系统故意关闭时硬盘的保护。全盘加密的主要目标是,在系统关闭状态下,驱动器和文件保持加密。在运行中的系统中,加密技术对用户访问文件实际上是不可见的。这是因为操作系统拥有解密密钥来访问磁盘上的文件。
全盘加密是笔记本电脑和台式机等设备的完美解决方案,因为这些设备会在某些时候关闭。全盘加密有助于在磁盘物理丢失的情况下保护数据,并且更适合便携设备。
Bitlocker
BitLocker 是微软的本地技术,它使你能够加密整个硬盘,包括操作系统。为了获得 BitLocker 的最佳效果,硬件系统必须配备受信平台模块(TPM)芯片。这是一种特殊的微芯片,使设备支持高级安全功能。然而,你也可以在没有 TPM 的情况下使用 BitLocker,通过使用基于软件的加密方法。
在设备管理器的安全设备下可以看到 TPM 芯片 2.0:

虚拟受信平台模块 – vTPM
受信计算组 (TCG) 于 2009 年推出了 TPM。受信平台模块 (TPM) 是一个通常集成在主板中的微芯片,提供基于硬件的安全性。如果你的主板支持,也可以在之后为定制系统添加 TPM。TPM 芯片是一个安全的加密处理器,旨在执行加密操作。如果你在具有 TPM 的计算机上使用 BitLocker 加密,部分密钥会存储在 TPM 本身中,而不仅仅存储在硬盘上。这意味着攻击者无法仅通过将硬盘从计算机中取出并尝试在其他地方访问其文件。
在 Windows Server 2016 Hyper-V 和 Windows 10 中,你可以在虚拟机中启用 vTPM。虚拟实例将映射到每个虚拟机,如下图所示:

这是硬件 TPM 芯片的样子:

加密你的 Hyper-V 客户虚拟机
在虚拟化环境中,加密客户虚拟机是 Hyper-V 中可以增加的另一层保护。你可能会问,如果加密 Hyper-V 主机本身能保护物理磁盘被盗,为什么还需要加密虚拟机呢?启用 BitLocker 加密虚拟机内部的虚拟磁盘也能防止虚拟磁盘被盗。例如,如果攻击者设法访问了一个在线的 Hyper-V 主机,VHDX 或 VHD 文件就可能被下载或窃取。
这是来自 Hyper-V 2016 的截图,其中 vTPM 选项默认禁用。一旦启用该功能,它可以与虚拟机共享虚拟化 TPM 实例:

云虚拟机磁盘加密
在此图中,我截取了正在运行的 Azure 虚拟机的截图,显示与未加密的虚拟机相关联的磁盘(ENCRYPTION 未启用)。但它也指出该磁盘在静态时已使用存储服务加密 (SSE)进行加密。欲了解更多信息,你可以参考 Azure 文档。静态加密是通过加密服务提供商的整个磁盘来保护数据,以防磁盘被盗或丢失时发生数据泄露:

什么是静态加密?
静态加密是指在数据存储在物理介质上时对其进行加密编码。静态加密旨在保护数据免受静态攻击,包括尝试获取数据存储介质物理访问的攻击。在此类攻击中,服务器的硬盘可能被盗或丢失,攻击者可能会通过将其插入自己的计算设备来恢复硬盘上的数据。静态加密旨在通过确保数据在磁盘上存储时仍然加密,防止未经授权的人访问关键数据。攻击者可以获取包含加密数据的硬盘,但如果没有加密密钥,他们将无法解码数据。静态加密被高度推荐,并且是许多组织的优先要求,包括云服务提供商,以使其符合国家法律、政府规定和行业标准,如 HIPAA 和 PCI。
Google、Amazon 和 Azure 云服务提供商默认会加密存储在静态状态下的客户数据,您无需进行额外操作。
强化服务器安全
我们大多数人认为系统或服务器已经是安全的,但这可能是一个错误的假设。试想一下,如果任何系统服务器、防火墙或路由器在没有先进行加固的情况下被盗,攻击者很可能会首先尝试使用默认的用户名和密码破解目标系统。对于基于 Linux 的机器,我的默认用户名是root,密码是root,我们大多数人可能会继续使用它。服务器加固包括识别和修复安全漏洞。我们将讨论服务器加固以及您可以立即实施的最佳实践,以降低攻击者危害您企业关键系统和数据的风险。
检查开放端口或服务
识别服务器上的开放端口需要将端口打开并禁用或关闭不必要的服务。服务器应具有最小化的操作系统配置。
对于 Windows,请使用命令提示符运行以下命令:
netstat -a | findstr "LISTEN"
上述命令的输出如截图所示:

对于 Linux/Unix,请使用 Shell 提示符运行以下命令:
netstat -antp | grep "LISTEN"

系统防火墙配置
为了基于防火墙规则限制流量,应该只允许流量进入需要为服务开放的端口。例如,安全的 Web 服务器需要为大多数用户提供对 TCP 端口443的访问,但它们不需要所有源 IP 地址的远程桌面协议(RDP)或安全外壳(SSH)管理访问。
对于 Windows,您可以使用高级安全选项配置新的入站和出站规则:

对于 Linux,sudo iptables -L会列出当前在iptables中的规则。如果你刚刚设置了服务器,应该没有任何规则,输出应类似于以下截图:

系统更新
第一次启动后的第一件事就是更新系统。应该尽快应用重要更新。一定要在测试环境中测试这些更新。首先做这个以确认功能正常。如果没有兼容性问题,再在生产环境中测试。
以下截图来自 2016 服务器,你可以使用 PowerShell 提示符进行更新:

对于 Linux,你可以运行一个命令来获取所有更新:
sudo apt-get update

禁用 USB
通用串行总线(USB)连接通常是即插即用设备。例如,计算机的硬盘或优盘。由于其即插即用特性,操作系统会自动识别设备并为其安装驱动程序。由于 USB 设备便于携带且可以轻松连接到计算机,这些设备可能带来真正的安全威胁。为了防止员工将敏感信息保存在 USB 驱动器上,金融机构不允许使用 USB 设备。系统管理员可以通过组策略禁用或阻止 USB 设备。现在我们来看看如何通过组策略禁用 USB 设备的步骤。
对于 Windows,在组策略管理编辑器中,你可以启用“所有移除存储类:拒绝所有访问”,如下图所示:

对于 Linux,你可以通过编辑该文件并添加blacklist usb_storage来禁用 USB 存储。

硬盘加密
磁盘加密在防止盗窃时非常重要。这是因为盗窃你电脑的攻击者,如果将硬盘连接到他们的机器并试图恢复数据,他们将无法解码你的数据。我们已经在本章的全盘加密部分详细讨论了这一选项。
BIOS 保护
保护系统 BIOS 密码非常重要,这样攻击者就无法利用它来更改安全设置。你还需要禁用从外部媒体设备(如 USB/CD/DVD)启动。BIOS 保护只是一个认证机制,旨在防止未经授权的物理访问。现在的 BIOS 支持带外访问,意味着只要硬件配置正确,你就可以完全远程访问计算机,无论计算机处于何种状态。
检查已安装的软件包
列出操作系统上安装的所有软件包,并移除不必要的包。禁用不必要的服务将减少攻击面。让我们看看如何在不同操作系统上检查已安装的软件包。
对于 Windows,从管理员模式下的 PowerShell 运行以下命令:
Get-AppxPackage -AllUsers | Select Name, PackageFullName

对于 Linux,Telnet 自带默认配置。在一个安全环境中,我们是否需要 Telnet?也许需要,但个人来说,我不推荐在安全环境中使用它,因为 Telnet 连接所使用的数据交换是明文的。

密码策略
不要忘记保护你的密码,也不要重复使用密码。使用密码策略来确保服务器上的账户不会被暴力破解或攻击。如果你的服务器是Active Directory Domain Services (ADDS)的成员,密码策略将会在域级别进行设置。我们将在接下来的章节中详细讨论密码策略。
安全加密远程访问
SSH 使用后台运行的加密过程,因此被认为是非常安全的。然而,你仍然需要对该服务进行加固。确保你正在运行最新版本的 SSH 协议,并且可以通过 IP 子网进一步限制 SSH 来源。远程桌面会话通过加密通道操作,防止任何人在网络上窃听你的会话。然而,早期版本的 RDP 在加密会话时所用的方法存在漏洞。最佳做法是更新软件,使用防火墙限制访问,并设置账户锁定策略以增强安全性。你还可以将 RDP 端口从3389更改为其他端口,使用 RDP 网关,并最终使用双因素认证(2FA)。
实现活动日志记录
你需要确保日志和监控已配置,并捕获你想要的数据,这样在出现问题时,你可以迅速发现问题发生的人员、时间和需要修复的内容。你必须设置集中式日志管理解决方案,监控日志、服务器健康状况(如磁盘空间、CPU、内存和网络活动)。
记录主机信息
最后,你应该有适当的文档,包含主机信息,如系统名称、IP 地址、MAC 地址、资产标签和所有者信息。
身份验证 NTLM 与 Kerberos
NT LAN Manager (NTLM) 和 Kerberos 都是身份验证协议,但它们在授权方面不起作用。NTLM 是微软开发的专有身份验证协议,而 Kerberos 是标准协议。从 Win2K 开始,微软将 Kerberos 作为 Windows 操作系统的默认身份验证协议。然而,如果因为某些原因无法协商使用 Kerberos 协议,那么Active Directory (AD) 将使用 LM、NTLM 或NTLM 版本 2 (NTLMv2)。
Kerberos 是一种加密网络协议,用于对用户进行身份验证以访问资源,它涉及客户端、服务器和 Key Distribution Center(KDC)。Kerberos 的名字来源于希腊神话中的三头犬 Cerberus,因为它有三个组成部分。KDC 由 Authentication Server 和 Ticket Granting Service 两个部分组成,同时还有客户端和客户端想要访问的 Print Server,如以下图所示:

让我们一步步理解这个过程:
-
对于网络域身份验证,客户端提供用户名和密码,由 KDC 的认证服务器进行验证。
-
KDC 会授予一个 Ticket Getting Ticket(TGT),其默认有效期为 10 小时。
-
当客户端尝试访问域中的打印服务器时,TGT 被用来发起请求,而不是一次又一次地输入凭证。客户端从 KDC 的一个组件 Ticket Granting Server 获取服务票证。
-
服务票证是为客户端和客户端想要访问的服务器创建的。服务票证由票证和会话密钥组成。
-
客户端提供服务票证以创建与服务器上服务的会话。服务器使用其密钥解密来自 TGS 的信息,并对客户端进行身份验证。
主要的区别可以在下表中看到:
系统管理员需要确保默认运行 Kerberos。在任何需要启用 NTLM 的情况下,都应谨慎使用,并牢记风险。
密码策略
密码是计算机安全的重要特征。构建不当或弱密码可能导致未经授权的访问或滥用组织的 IT 资源。此密码构建指南适用于所有密码,包括(但不限于)用户级账户、系统级账户、Web 账户、电子邮件账户和本地路由器登录。在 Windows 系统上,您可以从命令提示符运行 secpol.msc:

强密码具有以下特点:
-
它们至少包含十二个字母数字字符
-
它们包含大写字母和小写字母
-
它们至少包含一个数字(例如,0-9)
-
它们至少包含一个特殊字符(例如,!$%^*()_+|~-=`{}[]:";'?,/)
以下是我们必须记住的一些密码策略:
-
保护你的密码:记住密码而不将其写在某个地方是非常具有挑战性的,因此请选择一个你容易记住的强密码或密码短语。如果你有很多密码,可以使用密码管理工具或保险库,但务必选择一个强大的主密钥并记住它。定期更改密码,即使它没有被泄露,你也可以设置一个每 90 天更改一次密码的政策,作为标准指南。不要为包含敏感信息的多个网站使用相同的密码。
-
设置锁定策略:我们都曾在某个时刻忘记过密码,并且经过几次尝试才能重新进入系统。然而,你应该设置一个可接受的登录尝试次数,当尝试失败次数超过时,将锁定用户。这将保护你的系统免受任何类型的暴力破解攻击。
-
强制密码历史:此安全设置确定在可以重新使用旧密码之前,必须与用户帐户关联的唯一新密码的数量。该值必须在零到二十四个密码之间,适用于域控制器。
-
最小密码使用期限:此设置确定密码必须使用的最短天数才能更改。只有当最小密码使用期限到期时,用户才允许更改密码。这确保用户不会更频繁地更改密码。该值可以设置为零到九百九十九天之间。域控制器的默认值为一,独立服务器的默认值为零。
-
最小密码长度:此设置确定密码应包含的最小字符数。该值可以设置为零到十四之间。域控制器的默认值为七,独立服务器的默认值为零。
服务器级别权限
在一个组织中,首先你需要根据服务器的类型识别资产,每个服务器都有一个特定的角色要执行。服务器级别的角色在权限范围内是全局性的。你可以将服务器级别的主体(服务器登录、用户帐户和 Windows 安全组)添加到服务器级别的角色中。安全组可以提供一种高效的方式来分配对网络资源的访问权限:
-
Active Directory 中的安全组:用户权限分配给安全组,以确定该组成员在域或森林的范围内可以执行哪些操作。例如,默认域管理员对该特定域的所有服务器部分具有完全权限,无论服务器角色如何。然而,我们可以创建用户定义的组并将所需的用户帐户添加到该组,以限制访问权限。
-
Windows 服务账户:一些在 Windows 服务器上运行的应用程序需要专门的账户来运行。服务账户可以帮助解决这个问题,它作为一个用户身份,与服务可执行文件关联,为该服务提供安全上下文。
服务器防病毒与恶意软件保护
理解恶意软件、间谍软件、木马病毒、勒索病毒、恐吓软件和计算机病毒之间的区别非常重要。例如,计算机病毒是最著名的恶意软件类型。恶意软件是恶意软件或代码的缩写,是一个统一的术语,用于指代病毒、间谍软件、蠕虫等,这些软件通过网络破坏、利用、窃取数据或禁用计算机。所有用户都必须了解如何识别并保护自己免受各种形式的恶意软件侵害。由于其特性,计算机病毒和蠕虫通过自我复制传播。大多数人认为防火墙能够保护我们免受恶意软件侵害,但实际上,正常的有状态防火墙(我们将在第十章,防火墙部署与检测技术中详细讨论有状态防火墙的工作原理)并不能保护我们免受网站上的恶意内容侵害,而反恶意软件则能保护服务器和工作站。在这里我想澄清的是,下一代防火墙通常配备有防病毒和恶意软件保护功能,但需要根据您希望检查的流量进行配置。您仍然需要端点保护。
一款强大的防病毒软件包是每个个人和企业计算机系统必须具备的主要技术防御层。设计良好的防病毒保护具有以下几个特点:
-
勒索病毒保护
-
恶意软件保护
-
网站安全
-
电子邮件安全
-
扫描引擎
-
反键盘记录器
WannaCry 勒索病毒在 2017 年 5 月感染了全球数百万基于 Windows 的系统。WannaCry 会搜索并加密 176 种不同的文件类型。勒索信中指出,支付金额将在三天后翻倍。如果七天内未支付,信中表示加密的文件将被删除。WannaCry 已经影响了个人用户,以及政府机构、医院和大学。你最终可以通过防病毒软件移除 WannaCry,但不幸的是,由于使用了 AES-128 与 RSA-2048 的强加密方式,这并不会神奇地解密你的文件。
为了防止 WannaCry 勒索病毒攻击,保持软件更新,尤其是操作系统,是非常重要的。建议通过端点防病毒软件安装第二层保护。
本地安全策略
本地安全策略是特定于本地系统或机器的。这使得可以强制执行许多系统、用户和安全相关的设置,例如密码策略、审计策略和用户权限。大多数 Windows 默认的策略设置是可以接受的,但有一些需要调整以增强安全性。这些策略可以通过本地组策略编辑器进行修改,该编辑器通常包含帐户策略、本地策略、防火墙、安全等内容。在 Windows 系统上,您可以通过运行gpedit.msc命令并使用命令提示符来访问策略编辑器。以下截图显示了本地组策略编辑器:

总结
无论您的网络基础设施有多安全,也无论您的服务器运行哪些服务,您都必须应用一些基本的强化技术。在本章中,我们特别关注适用于任何服务器的硬化步骤。我们讨论了服务器资源的物理安全,然后介绍了可以用于本地和云基础设施的磁盘加密技术。我们已经确定几乎每台服务器都有某种面对互联网的连接,并且必须通过防病毒和恶意软件解决方案进行保护。为了补充这些安全解决方案,我们还可以强化我们的服务器,并调整本地安全策略和权限。最后,我们讨论了一些服务器管理技术,用于限制对特定 IP 地址集的 SSH 和 RDP 服务访问。
问题
-
与密码策略相关的不良做法是什么?
-
决定密码的最大使用期限
-
限制密码重用和历史记录
-
加密密码
-
每两年更改一次密码
-
-
什么不是加密的特点?
-
保护数据在传输过程中免受未经授权的访问
-
确保用户身份验证
-
确保数据完整性
-
确保数据不发生损坏
-
-
什么不是加密标准?
-
AES
-
TES
-
三重 DES
-
DES
-
-
密钥分发中心的作用是什么?
-
它用于将密钥分发给全世界的每个人
-
其目的是减少交换密钥时的固有风险
-
以上所有
-
以上都不是
-
-
理想情况下,应该在密码中使用哪些字符来确保其强度?
-
仅限字母和数字
-
混合大小写字母(大写和小写)
-
特殊字符
-
以上所有
-
进一步阅读
如需更多信息,您可以参考以下链接:
-
www.symantec.com/content/en/us/enterprise/white_papers/b-how-drive-encryption-works_WP_21275920.pdf -
blogs.msdn.microsoft.com/azuresecurity/2016/01/22/azure-disk-encryption-white-paper-updated/
第四章:云安全设计
在上一章中,我们探讨了如何在安全网络中保护服务器基础设施。我们还讨论了在将系统迁移到生产环境之前考虑服务器硬化的重要性。在本章中,你将学习云基础设施的安全问题。作为用户,你不需要管理或保护服务提供商的物理基础设施。
IT 行业正在经历一场重大变革,云计算的采纳显然是许多公司和个人的战略方向。本章为你打下云计算的基础,帮助你清晰理解这一主题,然后再深入探讨关键应用和将数据迁移到公有云网络。云计算带来许多好处,但也有一些缺点。它还引入了确保云用户外包数据安全的难度。在本书中,我们将从通用的角度探讨云安全和风险问题。
本章将涵盖以下主题:
-
云服务
-
公有云与私有云
-
共享技术和共享危险
-
云计算的安全方法
-
DOS 攻击防护
-
数据丢失防护
-
被利用的系统漏洞
云服务
这是一个话题小但争议大的问题。这个争议探讨了在一个组织计划迁移到云时,哪种云模型更适合企业。基于云的虚拟基础设施相较于传统数据中心有其优势。私有云和公有云模型都有各自的优缺点。任何迁移到云的组织必须首先仔细分析这些内容,然后再决定适合他们的方式。
在本节中,我们将简要地回顾云服务,重点讨论两种服务的安全性好处。云计算的三种主要模型如下:
-
基础设施即服务 (IaaS)
-
平台即服务 (PaaS)
-
软件即服务 (SaaS)
以下图表是自我解释的。它展示了云服务,并指出这些服务中哪些应该由客户管理,哪些应该由云服务提供商管理:
真正的云服务提供商不仅提供高度自动化的虚拟化环境,而且全球资源的覆盖才使其成为真正的云服务提供商。这里的全球覆盖由用户的接近程度和用户与服务提供商的距离定义。例如,如果我在一个名为A的区域,而我的云服务提供商也在A,那么我的用户体验将比在B或C的其他用户要好得多。AWS/Azure 拥有全球覆盖,能够提供所需的资源,将应用程序更接近全球的最终用户。全球覆盖还使得消费者能够指定其数据存储的位置。
IaaS
IaaS 是一种高度自动化的云服务。在 IaaS 中,计算、存储和网络能力由云服务提供商拥有,并以按需自助服务的方式提供给客户。这种基础设施使用 GUI 界面或命令行界面,作为客户管理整体环境的控制台。云用户将对虚拟机拥有完全的管理员权限。下面的图示展示了一个典型的 IaaS 模型,其中计算、网络、负载均衡和存储由云消费者提供:

PaaS
PaaS 是云计算的另一种服务形式,处于 IaaS 和 SaaS 之间的中间层,主要为开发人员提供运行时环境来构建和测试应用程序。使用 PaaS 时,用户不需要像从 AWS 或 Azure 请求虚拟机那样进行操作,而是可以请求一个实际的应用程序和底层的云基础设施,包括网络、服务器、操作系统、存储和安全性,这些都由云服务提供商进行管理。PaaS 帮助企业通过减少市场时间来最小化运营成本并提高生产力。PaaS 用户在将来希望更换云服务提供商时,常常担心供应商锁定和缺乏可移植性。然而,所有云服务提供商都会提供一个标准化平台,以避免供应商锁定的情况。
SaaS
SaaS 云服务易于使用,是最流行的云计算形式之一。SaaS 还采用基于 Web 的交付模型。大多数 SaaS 应用程序可以直接在 Web 浏览器中运行,无需任何下载或安装,从而消除了在单独的计算机上安装和运行应用程序的需要。简单来说,用户可以访问安装在服务器上的应用服务。企业可以更加专注于实际业务,而不是 IT 管理,因为一切都由云服务提供商进行管理:应用程序、运行时、数据、中间件、操作系统、虚拟化、服务器、存储、安全性和网络。Gmail、Salesforce 和 Office 365 是由 Google、Salesforce 和 Microsoft 提供的著名 SaaS 服务示例。
公有云与私有云
选择公共云和私有云模型将取决于一个组织的业务模型、预算、安全性和合规性因素。我们来讨论一下它们之间的一些主要区别。
公有云基本上是基于互联网的云计算平台。主要的公有云服务提供商包括亚马逊弹性计算云(EC2)和 Windows Azure 服务平台。由于公有云使用共享基础设施和虚拟化环境,多个客户可以同时使用服务而不互相干扰。它采用基于订阅的按使用付费模式,产生的费用仅基于实际使用的容量。
另一方面,私有云解决方案提供的云服务几乎与公有云相同,但基础设施仅为一个组织或企业独立部署和运营。私有云也是依赖遗留应用程序、在迁移到公有云时可能出现性能差的组织,或者需要重写整个应用程序的组织的首选。
公有 IaaS 与私有 IaaS
现在,让我们深入探讨,尝试理解公有云和私有云在各自服务上的差异。IaaS 组件通常由公有云服务提供商定义,终端消费者对操作系统模板、版本和标准配置选项的定制化选项有限。服务提供商基于对更大范围消费者的需求以及减少不同组件变异的需求,推出标准服务。而私有云则为您提供更大的灵活性,允许您在更大程度上定制服务组件。
公有 PaaS 与私有 PaaS
对于 PaaS 服务的消费者来说,在决定使用 PaaS 部署模式之前,了解公有和私有 PaaS 的优缺点非常重要。公有 PaaS 运行在共享基础设施上,以托管多租户环境,而私有 PaaS 则运行在仅供一个组织使用的基础设施上。私有 PaaS 被认为更安全,可以避免公有云计算带来的商业和技术风险。选择私有云的主要考虑因素是数据安全性。这并不意味着公有云中的数据不安全,而是有时数据确实可能不安全。例如,银行行业不会将关键数据托管在公有云上。
公有 SaaS 与私有 SaaS
私有 SaaS 是基于单租户架构提供的 SaaS 应用程序。这些应用程序托管在本地或异地,始终在一个高度安全的网络上。应用程序定制化是其最大优势,因为在公有 SaaS 中,定制化选项非常有限。
共享技术与共享风险
今天,云计算已经成为一个成熟的行业。它具有成本效益,高度敏捷和灵活,能够提供按需的大规模云计算。数据安全是一个主要关注点,常见的问题是:将数据迁移到云端是否安全?在大多数情况下,数据是安全的。然而,当涉及到丢失关键信息的恐惧时,组织往往会选择私有云。
让我们讨论一下共享安全如何在公共云中工作。主要云服务提供商的安全实施并非云服务提供商的单方面责任,而是提供商和客户的共享责任。服务提供商负责底层基础设施,但资源访问和应用程序安全由客户负责。这类似于一个有很多守卫的大社区,入口处有主门被守卫着。一旦允许访客进入,访客的活动就成为了你的责任。在我们的情境中,如果在虚拟机监控器(Hypervisor)中发现了漏洞,服务提供商不会允许你进行修补。如果在操作系统中发现了漏洞,服务提供商不会为虚拟机进行修补,因此责任转移到了客户身上。
网络安全是多租户环境中的一个主要组成部分,严格的隔离是必须的。云服务提供商确实提供了一个网络基础设施,用以构建隔离的网络,但他们并不跟踪进出网络的流量类型。基础设施硬件和软件的漏洞可能导致租户之间隔离的失败。在发生故障时,如果攻击者获取了一个租户的访问权限,他们也可以访问其他租户的资源。
另一个主要威胁存在于云消费者数据中。消费者对于数据的物理存储位置可见性较差。一个非常简单的例子就是消费者数据的删除。租户数据可能存储在多个物理主机上;这些主机可能属于同一个集群,也可能不属于。如果消费者选择了地理冗余,数据可能位于一个区域,或者分布在多个区域。数据删除过程可能因服务提供商而异,消费者没有机制验证数据是否已删除。必须有可能在存储资源分配过程中,数据被下一个租户访问,否则攻击者可能会获取这些数据。
到目前为止,我们讨论了威胁的普遍性。在多租户环境中,当 CPU 在多个客户之间共享时,它可能会造成重大的风险。有趣吧?让我们详细讨论一下:

Meltdown 和 Spectre 漏洞使得共同托管的租户之间可能发生数据泄漏,尤其是在用户共享单一设备时,这种风险更为严重。云为每个客户提供独立的实例,隔离性非常强,并且没有办法从一个实例跳到另一个实例。在这种情况下,攻击者直接从处理器中提取正在处理的数据,针对共享相同芯片的客户。这可能包括你存储在密码管理器或浏览器中的密码、个人照片、电子邮件、即时消息,甚至是业务中的重要文件。当你不确定是否有人试图窃取你的数据时,这才是最大的担忧。该漏洞的利用不会在传统的日志文件中留下任何痕迹。
云计算的安全方法
从本地到云应用的转型过程中,消费者失去了对许多事物的可见性。网络安全无法为消费者提供虚拟化程度很高的云网络所需的可见性。云技术带来了某种程度的不确定性和恐惧。依赖云存储大量关键数据,而没有网络边界、较少的可见性和减少的安全控制,使管理员很难看到应用程序和数据的动态。
云计算围绕数据中心及其全球分布展开。消费者无法看到底层网络和云提供商的安全基础设施。所有云消费者面临的最大问题是,是否应该了解底层云基础设施的建设。对此问题的答案是既是又不是。对于底层网络和安全,答案是不是,因为你不应该管理和控制这些内容。而对于位于物理基础设施之上的逻辑基础设施,你必须有可见性,因此答案是是。
传统企业网络模型
在传统的企业和托管网络架构中,IT 资源如计算、防火墙、存储、负载均衡器和广域网都相对静态,且在明确的边界下定义,具有较高的控制度。网络安全团队实施了安全信息和事件管理(SIEM)、适当的安全区、被动 TAP、基于网络流的解决方案以及 IDS/IPS 工具,以便深入了解其网络环境中发生的安全威胁:

此图展示了一个传统网络的网页服务器、网络设备、广域网/合作伙伴连接和安全架构。在这种模型下,所有系统、网络、服务器和安全都在组织的控制之下。实现对网络的完全可见性并不是一个重大挑战。
这并不是一个完美的模型,它有自己的局限性,包括:
-
固定的架构和拓扑
-
专有协议
-
基础设施资源的低效使用
-
硬件为中心
-
手动配置过程
-
缺乏自动化和可编程性
混合数据中心和云网络
下图展示了混合数据中心从客户角度来看是什么样的。在这种情况下,你的大部分内容都位于组织网络边界之外,例如 SaaS、IaaS 和 PaaS,而你当前部署的安全解决方案已经失去了对部署在全球另一侧的基础设施的可见性。在网络可见性方面,IaaS 模型比 SaaS 更灵活。另一方面,SaaS 模型不允许查看云应用程序背后的基础设施:

让我们看看云数据中心网络是什么样的,以及为什么从客户的角度来看我们会失去 SaaS 的完全可见性。大多数大型云服务提供商都有一个非常灵活且具有弹性的无脂肪网络,看起来类似于以下图示:

在这个云设计中,通过利用网络功能虚拟化(NFV),所有网络功能,如防火墙和负载均衡器,都已经被移到服务器层。这种设计支持增加东西向流量,而传统的模型是基于传统的客户端-服务器(南北向)流量。这些服务器也是共享资源,虚拟机分配给客户。服务提供商可以使用 GRE 或 Vxlan 加密来连接一个虚拟机到另一个虚拟机:

在这种模型中,资源可以位于服务器集群的任何位置。作为客户,我们无法控制选择物理资源。从 ISP 到 L3 机架顶端交换机(TOR)以及从一台物理服务器到另一台,通信是加密的,并由服务提供商控制,因此你无法查看网络流量。IaaS 服务提供了配置虚拟设备的选项,如防火墙虚拟设备和虚拟 TAP。这些可以提供一定的可见性,但 SaaS 将是一个完全的零可见区。
IaaS 的网络安全设备
虚拟设备可以用于保护或获得客户环境的可见性,特别是针对 IaaS。这与服务提供商的基础环境无关。
让我们来看看 Microsoft Azure 为客户提供的安全层级。对于来自互联网的入站流量,Azure DDoS 是第一层安全防护,帮助我们保护 Azure 客户资源免受大规模攻击。接下来是客户定义的公共 IP 地址(端点)。有些端点是标准的,其余的可以由客户定义,用于确定哪些流量可以通过云服务(公共 IP)传递到虚拟网络资源。原生的 Azure 虚拟网络隔离确保了与所有其他客户网络的完全隔离,并且提供了重新利用 IP 地址空间的灵活性。网络安全组是下一层,它充当基于用户定义规则的防火墙访问控制列表。网络虚拟设备是最后一层。这可以用于创建安全边界,保护受保护虚拟网络中的应用程序部署:

防火墙虚拟设备
多层架构是云应用程序中的常见做法。虚拟防火墙设备是一个预安装的软件解决方案,运行在虚拟机之上。所有进出流量都经过防火墙。这提供了完整的可见性和更好的控制。客户可以使用这些防火墙来实现流量控制和虚拟专用网(VPN)。
一个典型的部署可能如下图所示。这些产品可以从市场中选择,并且支持BYOL。主要供应商有 Cisco vASA、Barracuda、Palo Alto 和 Check Point:

让我们来看看网络安全组,这是 Azure 内置的一个功能。你可以在虚拟机网络部分找到这个选项:

你还可以根据需要添加/删除入站或出站流量规则,方法是指定不同的参数,如源、目标、端口范围、协议、动作和规则优先级:

虚拟 TAP vTAP
在传统网络中,你可以通过应用某种 TAP 设备或端口镜像(SPAN)来捕获数据流量。端口镜像会创建两个节点之间传输的数据包的副本,通常通过网络设备进行。在云中提供此功能,你必须使用 tap-as-a-service。启用并配置后,它将允许系统管理员在其租户网络上运行 IDS。此类解决方案的良好示例包括 Ixia 的 Phantom TAP 和 Gigamon1s 的 GigaVue。像 Cisco 1000V 这样的高级虚拟交换机也支持 SPAN 端口功能。
虚拟路由器
虚拟路由器是一种软件功能,运行在普通服务器上,而不是专用的硬件平台。你可以利用传统硬件路由器所提供的所有功能,如防火墙、高级路由、访问控制列表(ACL)和 NAT 功能。一个非常著名的产品是 Cisco 的 CSR 1000v。
虚拟 Web 应用防火墙
Azure 云通过将Web 应用防火墙 (WAF) 添加到 Azure 应用程序网关服务来提供 Web 应用安全。这是一个来自第三方的虚拟机设备,位于 Azure 市场,提供第 7 层安全性,可添加到应用程序网关进行应用层检查:

典型的 WAF 解决方案可保护您免受以下攻击:
-
SQL 注入
-
XSS(跨站脚本攻击)
-
常见 Web 攻击
-
HTTP 协议违规和异常
-
分布式拒绝服务攻击 (DDoS)
-
僵尸网络和扫描器
-
常见的 IIS 和 Apache 配置错误
DDoS 攻击防护
DDoS 攻击是托管在公共云上的应用程序面临的主要安全问题之一。游戏行业尤为容易受到 DDoS 攻击的影响。由于公共云的责任是共享的,服务提供商免费提供基本的 DDoS 保护服务,并通过服务分析、流量模式的变化以及提供遥测监控视图来提供定制化服务。
在编写本章节时,Azure DDoS 保护标准处于预览阶段。Azure 提供基本和标准的 DDoS 保护,AWS 则称之为标准和高级 DDoS 保护盾。
数据丢失防护
数据丢失防护 (DLP) 是一种保护静态数据、传输数据和终端数据的过程,旨在降低数据盗窃或未经授权泄露的可能性。企业数据中心内的本地备份技术和流程对公共云的保护效果较差。敏感数据的故意或意外删除可能给组织带来严重问题。由于缺乏可见性,客户数据始终容易遭受数据丢失。通过在将数据传输到云端或云供应商之间时进行加密,可以提供额外的数据保护安全层,降低数据丢失的风险。
这两项任务将是数据丢失防护策略的主要考虑内容:
-
公共云数据的自动备份:公共云敏感数据的备份极其重要,应高度自动化并采用适当的加密措施。
-
删除控制和验证:如果数据删除验证失败,可能会因缺乏可见性而导致后续数据丢失,从而带来灾难性的后果。必须有一种方法来检测和显示数据是无论是意外还是故意删除的。必须实施多因素认证和严格的访问控制,以防止未经授权访问敏感数据。
被利用的系统漏洞
在迁移到云计算时,您需要考虑以下安全问题以增强数据安全性。
会话劫持攻击基于会话 cookie,并利用用户之前已认证的会话。账户劫持或会话劫持对于云服务提供商和用户来说并不陌生。黑客能够获得登录凭据,并可以轻松追踪用户活动。当攻击者在没有用户凭据的情况下访问云驱动器文件时,也会发生类似的攻击。这种攻击通过通过钓鱼攻击或驱动器利用来窃取密码令牌,后者是一个小文件,通常驻留在用户设备上以方便用户(避免每次都输入密码)。一旦攻击者获得访问权限,他们就能访问并窃取文件,甚至向受害者的云文件夹添加恶意软件或勒索软件,用于进一步的攻击。
Https:// 并不能防止会话劫持攻击。
基于云的 DDoS 攻击现在是一大威胁,因为快速启停成千上万的虚拟机变得非常容易。攻击者并非从单一的服务提供商和位置发起此类攻击——如果机器分布在多个位置,每个机器向受害者生成流量,那么攻击的强度会非常高。服务提供商通常有检测机制来检测异常流量,因此如果从单一服务提供商发起大量攻击,被发现的几率非常高。另一种攻击类型是暴力破解攻击。如果从云端发起,这种攻击可以非常强大,因为它每秒可以尝试成千上万的密码,甚至可以破解 SHA-1 哈希。
云应用编程接口(Cloud API)是一种 API,通常基于表述性状态转移(REST),用于开发应用程序和服务,提供云硬件、软件和平台的服务。云网络通常会因为不安全或不当使用 API 而面临风险。我们之前讨论过系统特定的漏洞,如 Meltdown 和 Spectre。
摘要
云计算是增长最快的计算模型,并被企业广泛采用。根据《福布斯》报道,到 2020 年,83%的企业工作负载将转移到云端。云计算提供了简化软件开发、动态服务器配置和按需 IT 资源的能力,并具有更大的灵活性。这改变了组织的 IT 运营模型。数据安全是已经将数据迁移到公有云或计划未来部署应用程序的组织中的一个关键部分。在本章中,我们讨论了云计算的不同服务以及作为云数据安全的一部分应该了解的内容。我们还讨论了云共享基础设施的安全性考虑因素以及云客户和云服务提供商之间的共享责任。在最后一节中,我们介绍了如何恢复丢失的数据并在云共享基础设施中实现网络可见性。
在下一章中,我们将讨论在应用程序发布和公开访问之前,应用程序安全性的考虑事项。
问题
-
以下哪些服务为云提供商提供最低限度的内建安全性?
-
SaaS
-
PaaS
-
IaaS
-
所有提到的
-
-
存储驱动器是一种云计算形式:
-
正确
-
错误
-
-
以下哪项不是云计算使用的主要类型?
-
DDoS 即服务
-
PaaS
-
SaaS
-
IaaS
-
-
哪些可能导致云资源服务中断?
-
僵尸
-
DOS
-
DDOS
-
后门通道攻击
-
2 和 3 两者都不是
-
以上所有
-
-
以下哪项不是云服务提供商?
-
亚马逊
-
亚马逊 EC2
-
Hadoop
-
SAP
-
Azure
-
进一步阅读
欲了解更多信息,请参考以下链接:
-
docs.microsoft.com/en-us/azure/virtual-network/ddos-protection-overview -
www.cisco.com/c/en/us/products/routers/cloud-services-router-1000v-series/index.html -
www.sdxcentral.com/nfv/definitions/whats-a-virtual-router-vrouter/
第五章:应用安全设计
在上一章中,我们讨论了云托管应用程序的数据保护和安全技术。在本章中,我们将讨论基于 Web 的应用程序的安全性。
尽管应用程序可以提高效率,但风险仍然存在。这是因为存在一些新的安全威胁,这些威胁可能对组织的 IT 基础设施造成重大风险。了解各种应用程序中常见的漏洞,并为用户提供更好的体验至关重要。本章将重点讨论基于 Web 的应用程序的安全性,通用数据保护条例(GDPR)即将到来。
本章我们将讨论以下主题:
-
GDPR
-
SQL 注入
-
Web 应用防火墙和安全性
-
黑名单与白名单
-
使用 HTTPS 做为一切的基础
GDPR
在数字化转型的时代,商业组织持有的客户敏感个人信息一旦被盗用或滥用,将构成重大风险。全球的数据保护法律有一个共同的目标,即保护个人的隐私。为此,推出了通用数据保护条例,明确规定了如何使用和保护客户数据。我们大多数人在多个网页门户上分享个人信息,并点击“我同意”或“我接受”条款与条件。个人数据包含有关个人的信息,包括他们是谁、做什么以及去哪里。我们每个人在网络世界中都会留下数字足迹。数据挖掘是行业中的新石油,它提供洞察力并带来竞争优势。
GDPR 合规期限为 2018 年 5 月 25 日。任何存储或使用欧洲个人数据的组织,无论其业务性质如何,都将受到新数据保护法的影响。
让我们看一个例子,了解这如何影响全球组织。
收集来自欧盟人员数据的美国公司将承担与其欧盟总部相同的法律义务。即使他们在欧盟没有实际的物理服务器或办公室,基本的原则是,如果数据没有实际存放在欧盟区域,那么这些规则也不适用。例如,任何社交网络门户都必须保存用户信息,如果用户属于欧盟,该信息将存储在欧盟边界之外的服务器上。
法规必须在 2018 年 5 月 25 日前强制执行,未能遵守的组织可能会面临巨额罚款。最高罚款为 2000 万欧元或公司全球营业额的 4%。这一金额足以让许多企业关闭。为了避免这些严厉的后果,准备工作是成功的关键。
获取同意
同意是 GDPR 法规的一个关键因素,它为个人提供了选择和控制自己数据使用方式的权利,旨在建立信任和参与感。您的收集个人数据的 Web 门户必须让访问者清楚了解您计划如何使用他们的个人信息。然后,他们必须同意每一个具体的目的。即使您在某人使用购物车功能后获得了他们的电子邮件地址、电话号码和信用卡信息,在没有他们的同意下,您也不允许分享这些信息。
WhatsApp 现在允许用户查看它从他们那里收集的数据。
数据访问
GDPR 的另一个关键特性是使用户能够查看谁有权限访问存储在您网站和后台系统中的个人数据。首先需要了解的是,这些实体是谁,并且他们是否有正当理由访问这些数据。此外,所有从个人收集的数据必须是关联的,且一键操作应该足以删除所有不再需要的系统数据。
加密
提交到您的网站的任何数据都必须加密,以符合 GDPR 的要求。必须在您的站点上安装 SSL/TLS 证书以加密数据,避免中间人攻击。
若要了解更多有关 GDPR 的信息,您可以访问www.eugdpr.org。
SQL 注入
SQL 注入是攻击者用来从基于 SQL 的数据库中窃取有价值数据的最古老且最广泛使用的应用层漏洞之一。攻击者利用 SQL 注入漏洞绕过 Web 应用程序的身份验证系统并检索信息。SQL 注入还可以用于进行更改,如添加、删除和修改数据记录。下图展示了 3 层架构应用程序:

3 层架构应用程序包含以下组件:
-
用户界面:用户界面(UI)基本上是与实际应用程序交互的一种用户友好的方式。它可以是移动应用程序、Web UI 或 API 方法来与应用程序交互。UI 层请求来自业务层的数据。
-
业务逻辑:业务逻辑可以被视为一个应用层,负责处理数据验证、业务规则和特定任务的行为。业务规则从数据库层提取或插入数据。
-
数据库层:这是 3 层架构中第三层也是最关键的一层,承载实际的数据,并负责将数据提供给上述两个层。
在此值得一提的是,在没有网站所有者许可的情况下对网站发起 SQLi 攻击,可能会导致您面临法律麻烦,并受到国家执法机关的追究。
让我们详细讨论 SQLi 的工作原理:
- 在网站登录页面,当您提交用户名和密码时,SQL 查询将如下所示。如果提供了正确的凭据,一切将正常工作:
SELECT id FROM customer_data WHERE username = 'xyz' AND password ='abcd';
- 由于一个小技巧绕过了 Web 门户的登录表单,同样的方法变得脆弱:
SELECT id FROM customer_data WHERE username = '' AND password = '' OR '1'='1'';
你可以看到用户名字段为空,密码字段有一个闭合的引号。魔法从这里开始,OR 语句 '1' = '1' 总是返回 true,整个查询返回了整个数据库的所有 username 和 password。
我们已经讨论了 SQL 注入的基本概念及其工作原理。前面的例子是一个非常基本的攻击,能够运行非常复杂的查询来破解数据库。强烈建议每次将系统或包含数据库的网站发布到公共访问时,都对其进行这类攻击的测试。试想,如果你能在一个易受 SQL 注入攻击的银行系统上捣乱,你可能通过操纵账户显示的金额或向别人转账来抢劫银行。
请记住,这个 SQL 注入测试应该只在测试环境中进行。
防止对 Web 应用程序的 SQL 注入攻击
好消息是,网站所有者实际上可以做很多事情来防止 SQL 注入。坏消息是,数据库安全没有一个完整、万无一失的解决方案:

实施全面的数据清理
对所有网站来说,过滤所有用户输入非常重要,利用弱输入过滤或根本没有过滤的漏洞也很常见。你也可以把这个叫做验证。例如,如果输入字段应该是手机号码,你当然可以验证这个字段,确保它只包含数字,且长度符合手机号码的标准。这不仅可以保护你的应用免受 SQL 注入攻击,还可以保护你免受不必要的行为。
部署 Web 应用防火墙
Web 应用防火墙(WAFs)是如今几乎所有商业网站上都使用的重要安全机制。使用 WAF 是防止已知攻击的非常有效的方式。WAF 通过多种安全检查来过滤传入的 HTTP/HTTPS 请求,抵御常见的针对 Web 服务器的攻击。除了管理请求,你还可以对返回给用户的响应应用 WAF 安全检查。尽管 WAF 对许多类型的攻击提供了优秀的保护,但它对当前复杂的SQL 注入(SQLi)攻击并不充分防护。你可以将 WAF 视为一种基于规则的第二层防御,用于保护 Web 服务器免受已知威胁,如 XSS、SQLi 和 DDoS 攻击。
限制数据库权限
数据库安全的关键要素是每个人的访问控制权限,从 DBA 到应用程序架构。为了限制数据库权限,应为每个使用环境创建多个具有最低权限的数据库用户账户。还应为应用程序授予最低的数据库访问权限。除非绝对必要,否则不要允许 DROP、DELETE 等操作。
漏洞发现
一旦你编写了应用程序,我们无法知道它是否容易受到 SQL 注入攻击。显然,你可以检查源代码,找出任何将用户输入与 SQL 拼接的实例,但这可能非常繁琐且耗时。你必须使用一个优秀且更新的漏洞扫描器来查找最常见的漏洞。执行 SQL 注入攻击会产生高网络带宽并发送大量数据,因此确保你是你正在测试的网站的所有者。如果不是,确保已从网站所有者处获得事先许可。像 sqlmap、Acunetix、Vega 和 Netsparker 等一些著名工具可以用于扫描。
WAF
WAF 提供额外的安全防护,位于用户和 Web 应用程序之间,保护 Web 服务器免受未经授权的访问和恶意攻击。WAF 供应商提供硬件、软件、虚拟和基于云的防火墙解决方案。Web 应用程序极其脆弱,同时又是业务的支柱,因此必须保护它们。应用程序安全的最大挑战是检测应用程序中的漏洞,此时修补和修复代码的工作才开始,因为这些都是耗时的任务。这时 WAF 发挥作用;一旦发现漏洞,你可以将补丁应用到 WAF 中。所有在 WAF 补丁更新后发出的请求都会阻止与已发现漏洞相关的攻击。
让我们来看一下下面的图示。非 HTTP/HTTPS 攻击会被外围防火墙阻止,但外围防火墙确实允许 HTTP/HTTPS 连接。这些 HTTP/HTTPS 连接也可能成为攻击,因此会被 WAF 阻止,WAF 作为第二层安全防护。因此,只有通过这两层的干净连接才能到达应用服务器:

WAF 防护常见的 Web 攻击
WAF 保护你的 Web 服务器免受可能危害网站安全的常见威胁。我们将列出常见的威胁和你可以使用的 WAF 安全检查,以应对这些攻击:
-
缓冲区溢出攻击
-
Cookie 篡改
-
强制浏览
-
Web 表单安全攻击
-
请求保护
-
机器人检测
-
暴力破解和凭证填充
-
第 7 层 DoS 攻击
-
跨站脚本攻击(XSS)
黑名单和白名单
IT 安全中的一个简单方法和基本原则是只允许真正需要的内容。安全就是访问控制和通过身份追踪活动。在网络安全中,访问是基于身份和意图授予的。白名单是具有良好意图的身份,而黑名单是具有恶意意图的身份。这是一个有争议的话题,我们将根据需求和实施进一步讨论:

什么是黑名单?
市面上大多数杀毒软件套件都采用黑名单方法来检测和防止病毒及恶意软件。1980 年代,杀毒软件首次使用黑名单。如今,杀毒行业仍然遵循这一原则。这就像是创建一个全球所有网络罪犯的名单。然而,如果漏掉了几个罪犯,或者他们是新出现的并且不在名单上,那该怎么办呢?根据 IT 环境的不同,黑名单中的实体可能包括已知会对个人或其他组织构成威胁的用户、应用程序、进程、IP 地址和组织。
黑名单几乎对零日威胁毫无价值。
黑名单的优缺点
黑名单的主要优势在于其简单性。你可以将已知威胁排除在系统之外,情报掌握在软件供应商手中。其有效性完全取决于供应商发布或更新已知威胁数据库的频率。从用户的角度来看,所有更新都是自动获取的。用户无法区分好坏数据流,直到软件标识为恶意。黑名单架构的主要缺点是如何应对未知威胁。例如,勒索软件不断发展,出现了许多前所未见的新模式和变种。
什么是白名单?
应用程序白名单使用的是反向逻辑。在这里,你可以创建一个受信任实体的名单,例如应用程序、电子邮件、用户、可信伙伴、服务和 IP 地址。这些实体被允许访问 IT 资源,而所有看似不必要的内容则被阻止。使用白名单架构时,你必须有严格的访问控制策略,并为用户授予适当的权限。由于你阻止了所有不需要的实体,这样可以减少攻击面,从而自动防御零日攻击。
白名单的优缺点
白名单的主要目标是保护高风险的安全环境。此方法只允许可信的软件、应用程序、用户和 IP,这大大减少了入侵的风险。主要优势在于,任何不在列表上的东西都无法进入网络。一个很好的例子是 Salesforce 应用程序门户的运作方式。通过此方法,你只能从允许的 IP 范围和用户中访问应用程序。我们都知道,Salesforce 是一个关键应用程序。对于大型网络来说,这种方式的扩展性不好,每次需要添加新条目时也很麻烦,因此难以管理。
哪个更好?
每种安全方法都有其优缺点。听起来可能有些奇怪,但你需要两者。一个典型的商业组织使用有限数量的应用程序,并且了解这些应用程序所需的用户和网络连接,应采用白名单方法。下一步是将此方法与黑名单结合,确保如果授权用户带着已知威胁进入网络,你的网络仍然可以得到保护。当然,相比白名单,黑名单的管理工作量较小,而且随着白名单规模的增大,差距也会更加明显。你可以对那些可以全球访问的应用程序采取白名单方法,比如银行门户网站和在线购物车。
对所有内容使用 HTTPS
全球约有二十亿人连接到互联网,互联网世界已成为人类的支柱。HTTP 是最著名的协议之一,在今天的数字时代中变得至关重要,它是计算机、平板、智能手机及其他许多设备上应用程序的主要协议。你应该始终用 HTTPS 保护你所有的网站,即使它们不处理敏感信息。因为在今天的世界中,没有所谓的非敏感网络流量。
从 2018 年 7 月起,随着 Chrome 68 的发布,Chrome 将标记所有 HTTP 网站为不安全。
HTTPS 是一个非常严肃和敏感的话题,在本节中我们将讨论网站安全。
HTTP 与 HTTPS 的比较
超文本传输协议(HTTP)是一种允许客户端和服务器之间进行通信的协议。最常见的用途是将数据从网页服务器传输到浏览器,以查看网页内容。主要的问题在于,HTTP 不会加密传输的数据,可能会被他人窃听。如图表的第一部分所示,运行在服务端口80上的网页服务器以及客户端和服务器之间传输的所有内容都是明文的。在图表的下一部分,网页服务运行在服务端口443上,并且数据以加密模式传输:

HTTPS 是 HTTP 的安全版本,这意味着你访问的浏览器和 web 服务器之间交换的信息是加密的。目前使用 HTTP 的任何 web 服务器都可以迁移到 HTTPS。然而,如果必须购买安全套接字层(SSL)证书,可能会有一定成本。HTTPS 有助于防止攻击者在使用公共基础设施(如公共 Wi-Fi、互联网服务提供商或酒店)时劫持你的 web 服务器与用户浏览器之间的通信会话。
Web 应用安全
每个开发者都希望他们的应用能够更安全。本节重点介绍了在设计或迁移到 HTTPS 时的一些顶级安全考虑和最佳实践。
SSL/TLS 部署
选择一个认证机构(CA),该机构可靠且严肃对待其证书业务、安全性和声誉。可靠的 CA 还会提供各种证书类型和灵活的许可模型。
SSL/TLS 密钥大小
长度更长的密钥总是更为理想,但对于公钥密码学(非对称密码),2048 位密钥具有相同的性质,因此更长的密钥没有意义。国家标准与技术研究院(NIST)建议,2048 位 RSA 密钥的强度相当于 112 位,因此理论上有 2112 种可能性来破解私钥。RSA 声明,1024 位(非对称)密钥可能会在 2006 年至 2010 年之间被破解,而 2048 位密钥足以保持安全直到 2030 年。同时,像 4096 位这样的更长密钥会显著降低服务器性能,直接影响浏览器的响应时间。
NIST 建议使用 2048 位的 RSA 密钥。
签名算法
安全哈希算法(SHA)是一种用于确保连接安全的哈希算法,用于提供消息的完整性和接收方的真实性。SHA 算法是 SSL/TLS 证书中的默认哈希算法。SHA-2 是一组哈希函数,包括 SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224 和 SHA-512/256。最常用的哈希函数是 SHA-256。一般来说,SHA-2 = SHA-256,这也是最低要求。
安全哈希算法 3(SHA-3)是安全哈希算法系列标准中的最新成员,于 2015 年 8 月 5 日由 NIST 发布。SHA-3 的广泛应用可能还需要许多年。
安全协议
不要使用 SSL 3.0。为了安全实现,配置支持最新版本 TLS 标准(TLS 1.1 和 TLS 1.2)的服务器和软件。
防止认证攻击
认证在 web 应用安全中扮演着非常关键的角色。攻击者会尝试寻找密码或会话 ID,并获得访问所需信息的权限。以下是一些防止认证攻击的方法:
-
通过添加验证码来防止自动化的暴力破解攻击。然而,这并不完美。除了验证码,还要使用账户锁定功能。这是防范暴力破解攻击的一个非常有效的威慑手段。
-
在 Cookies 中传输会话密钥(不要在 URL 中显示会话 ID),并确保会话密钥是不可预测的。将会话 ID 显示在 URL 中通常是当客户端阻止 Cookies 或作为备用方法时使用的。
-
缩短会话 ID 的持续时间,并确保在登出后服务器会拒绝它们。
-
使用双因素认证。
-
在会话固定攻击中,攻击者希望你使用他选择的会话 ID 登录账户。解决此问题的一个简单方法是不要让客户端选择会话 ID。
-
一旦完成操作,切勿保持会话处于活动状态;确保在每次会话结束时登出。会话登出也会迫使攻击者自动登出。
安全使用 Cookies
Cookies 是存储在客户端浏览器中的一组信息,在客户端每次发出后续请求时都会将这些信息发送到服务器。Cookies 主要用于身份验证和保持会话状态。为了避免会话劫持,确保有效地保护 Cookies 变得非常重要。可以通过正确设置 Cookie 属性来保护 Cookies。这些属性包括:
-
安全
-
域名
-
路径
-
HTTPOnly
-
过期
开发人员仅对主登录页面进行加密。其他敏感和非敏感信息以未加密的格式发送到服务器。请记住,Cookies 也会与这些请求一起发送。如果这些 Cookies 没有加密,就会给攻击者提供嗅探数据的机会,从而窃取这些 Cookies 中的会话信息。为了避免会话信息泄露给攻击者,确保 Cookies 也只能通过 HTTPS 连接进行传输,而非 HTTP 连接。这可以通过 Cookie 的安全属性来实现。你还可以调整其他属性,如 HTTPOnly。这样可以保护你免受 XSS(跨站脚本攻击),防止从 Cookies 中窃取数据。
漏洞扫描
随着企业和组织采用数字化转型,Web 应用程序已成为攻击者的有利目标。由于编码不当和硬化策略失效,Web 应用程序通常会受到漏洞和错误配置的困扰。网络和安全管理员必须使用 Web 应用安全扫描器对 Web 应用程序进行测试,并识别安全漏洞。扫描器不会访问实际的源代码,它们仅进行功能测试并尝试寻找安全漏洞。
服务器安全
为服务器做好安全运行的准备。以下是你需要执行的几个步骤:
-
将服务器更新至最新操作系统
-
开启内置防火墙
-
启用操作系统安全的自动关键更新
-
启用日志记录或与 SIEM 系统集成
引入漏洞赏金计划
漏洞奖励计划是基于激励并以结果为导向的计划,旨在鼓励安全研究人员发现与产品相关的漏洞和安全风险。然后,鼓励他们将这些问题报告给赞助组织。这些计划被认为非常有益,因为它们代表了一个全球的专业人员和研究人员社区,随时可用。
总结
到目前为止,你已经熟悉了应用安全的基础知识。我们在这一章中提供了足够的背景信息,帮助你理解多层安全方法。虽然 Web 应用能够高效地交换信息,但这些应用依然存在被攻击的风险。许多新的安全威胁也随之出现。如果处理不当,这些问题可能对组织的信息技术基础设施构成重大风险。由于涉及到数据安全,个人数据至关重要。因此,设计一个符合 GDPR 的稳健 Web 系统以保护用户信息变得尤为重要。
在下一章中,我们将讨论基础设施安全和未来技术的整体方法。
问题
-
以下哪项不是保护环境免受安全攻击的因素?
-
攻击者的教育
-
系统配置
-
网络架构
-
公司的商业策略
-
数据库管理员(DBA)提供的访问权限级别
-
-
你在任何网站地址开头输入的
http代表什么?-
超文本传输协议
-
HTML 传输技术过程
-
超空间术语与技术协议
-
超空间技术与技术进展
-
-
SQL 注入是一种什么样的攻击,处理什么样的代码发送到数据库服务器?
-
恶意
-
冗余
-
清洁
-
非恶意
-
-
以下哪项不是一种安全漏洞?
-
窃听
-
跨站脚本攻击
-
身份验证
-
SQL 注入
-
以上都不是
-
-
以下哪项最容易受到注入攻击?
-
会话 ID
-
注册表键值
-
网络通信
-
基于用户输入的 SQL 查询
-
以上都不容易受到注入攻击
-
延伸阅读
欲了解更多信息,请参考以下链接:
-
www.sans.org/reading-room/whitepapers/analyst/started-web-application-security-36735 -
www.sans.org/reading-room/whitepapers/application/web-application-firewalls-35817 -
www.cisecurity.org/wp-content/uploads/2017/05/SQL-Injection-White-Paper2.pdf
第六章:威胁检测与响应
在上一章中,您已经了解了在设计和启动应用程序时涉及的常见风险。您还学习了帮助用户安全浏览应用程序的常见保护方法。
在一个高度互联的世界中,应对网络威胁已成为组织和安全专业人员的新现实。在本章中,我们将探讨威胁检测的基础知识以及减轻持续威胁的方式。最后,您将学习如何根据业务目标选择和部署先进的威胁防护系统。典型的网络包含关于用户的信息,还包括安全信息。保护您的组织的一个关键步骤是对正常和异常流量模式、URL 扫描、被阻止的流量、访问恶意网站时的基于排名的网站、检测僵尸网络、DDoS 防护以及对未知威胁的防御实现端到端可见性。
在本章中,我们将涵盖以下主题:
-
网络威胁检测
-
端点威胁检测
-
安全信息与事件管理
网络威胁检测
为了保护信息,组织需要改变思维方式。管理员需要停止认为防火墙、IPS、IDS 和防病毒软件套件能够保护其系统免受所有类型的网络威胁。大多数传统的安全检测模型已经过时,甚至无法区分恶意软件和常规网络流量。一个组织的数据安全程序理想情况下可以阻止大多数已知威胁。然而,还有许多未知的、恶意的威胁,组织旨在检测这些威胁,但此前未曾遇到过。这可能是由于全新的方法和技术。
检测方法
网络入侵检测系统本身并不完美,常常会受到误报和漏报的干扰。因此,任何威胁检测系统都需要既有人力元素,又有技术元素。人力元素可以由安全分析师来参与,他们分析趋势、数据流量模式、行为和报告,并能够判断异常数据是否表明潜在威胁或是假警告。
让我们来看看不同的检测方法。
入侵检测系统
入侵检测系统(IDS)是一种基于特征的软件,旨在监控或扫描网络流量,寻找可疑活动,并在某些行为试图通过恶意活动或安全策略违规破坏信息系统时触发警报。警报信息包含入侵的源地址、目标/受害者地址以及怀疑的攻击类型。IDS 被称为攻击检测技术,但它不能防止或阻止攻击。相反,IPS 设备可以通过检测攻击并在它们到达目标之前主动阻止它们,从而防止攻击。
IDS 类型
入侵检测系统可以根据其部署位置进一步分为两大类:基于主机的 IDS 和基于网络的 IDS。
- 主机基入侵检测系统(HIDS):这是一个小型的、基于代理或传感器的软件,安装在网络中的单个或多个主机上。它通过监控和报告系统配置以及跟踪应用程序活动来保护单个主机。主机 IDS 本质上是被动的,提供通过识别、记录、警报和报告来收集信息的功能。你可以在不同的 DMZ 服务器上安装 HIDS,例如 web 服务器、邮件服务器、数据库服务器,或任何你希望在网络中监控或保护的服务器。任何掩蔽技术,如插入、填充、分段或乱序传输,虽然可以绕过基于网络的 IDS,但可以轻松被基于主机的 IDS 捕捉。任何 HIDS 的主要目标是监控和分析通过主机的网络接口卡(NIC)的流量,但也可以扩展到监控应用程序行为和活动。

- 基于网络的入侵检测系统(NIDS):它提供了一种不同的方法,监控整体网络流量的活动,而不是每个单独的主机。NIDS 的操作基于窃听的概念,系统配有已知的攻击特征,也可以进行定制。特征更新由供应商定期发布。NIDS 的主要问题是性能。对于小型组织,这可能是一个合适的解决方案,可以处理数 GB 的流量。然而,对于高速网络的大型组织来说,它显然无法应付:
NIDS 不会解密加密流量。
网络捕获解决方案
通过在网络中部署网络 TAP,并将流量通过网络 TAP 或 SPAN 端口重定向到安全分析器,可以嗅探网络中的 IP 流量。下图展示了流量从路由器和交换机通过网络 TAP 传输的过程。之后,流量被引导到一个主机网络嗅探分析器的端口。该方法提供了对网络中所有流量的全面可见性。网络 TAP 的一个最大优势是能够在不干扰流量的情况下监控网络流量。
然而,也有一些缺点。包括 TAP 的部署会造成干扰,并且本质上很昂贵,对于大规模网络来说,管理起来也可能很困难。由于需要使用安全分析器来关联所有数据包捕获,识别并缓解安全攻击,TAP 的部署以及数据存储,可能会产生显著的费用。这些费用源自任何给定网络拓扑中的多个物理链路。

网络 TAP 可以分为两类:
-
被动 TAP:被动 TAP 是被动设备,它会复制网络数据并将其分发到在网络节点之间传递的第三方设备上。
-
主动 TAP:这是 TAP 内部的工作方式,是其与被动 TAP 的区别所在。主动 TAP 用于铜缆或光纤预算无法支持被动 TAP 的网络环境中。
安装 TAP 通常需要一定的网络停机时间,如果 TAP 出现问题,这个停机时间可能会延长。
使用 NetFlow/IPFIX 进行威胁检测
在云规模和高速数据网络中,趋势是基于 NetFlow 和IP 流量信息导出(IPFIX)来监控并触发可疑流量事件。大多数网络设备、路由器/交换机和防火墙都支持 NetFlow 和 IPFIX。这些流量方法使得通过设备的数据流量变得可见。你可以将这些方法与 Wireshark 捕获相联系,Wireshark 捕获包含如源 IP、目标 IP 和 TCP/UDP 端口等信息。Wireshark 捕获类似于电话录音,而流量则类似于包含元数据信息的通话记录。流量报告系统持续监控流量,并能够连接主机声誉数据库,以检查任何异常的流量模式:

在思科路由器上,可以为 NetFlow v9 进行此配置。在 NetFlow v9 发布之前,流量的字段仅限于大约 20 个常见字段,其余数据包内容会被丢弃。NetFlow v9 的引入使得可以使用数据导出逻辑来提取数据包中的任何细节:
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match interface input
collect routing source as
collect routing destination as
collect transport tcp flags
collect interface output
collect counter bytes
collect counter packets
假设你正在导出 TCP 标志信息以及网络流量,你还知道网络流的源和目标。拥有这些信息可以轻松检测到 SYN(一个 TCP 标志)攻击。在流技术中,网络威胁检测主要集中在监控流量行为,而不是执行 DPI(如防火墙)并根据威胁签名匹配触发事件。DPI 方法对于大型基础设施(如云服务提供商)扩展性不佳,后者的流量以每秒 Tera/Peta 位的速度进入。由于缺乏流量处理能力,这使得用昂贵的设备(如防火墙和 IPS 系统)扫描所有流量几乎变得不可能。
NetFlow vs. IPFIX
首先,IPFIX 是 NetFlow v9 的增强版,广泛被认为是 NetFlow v10。IPFIX 是一个 IETF 标准,专门设计用于使流数据更容易向各种厂商开放。
如你所知,IPFIX RFC 5101 和 RFC 5102 源自于 NetFlow v9 RFC。IPFIX 也与 v9 向后兼容,这得益于厂商们希望摆脱思科主导的标准。这本质上允许硬件厂商指定厂商 ID,将任何专有信息放入流中,并将其从收集器/分析器中导出,以便进一步剖析和监控。NetFlow v9 现在支持灵活的 NetFlow,几乎等同于 IPFIX。默认情况下,IPFIX 监听 UDP 端口 4739,而 NetFlow v9 监听 2055、2056、4432、4739、9995、9996 等端口。NetFlow v9 定义了 79 种字段类型,IPFIX 也定义了相同的 79 种,并继续扩展至 238 种。
端点威胁检测
无论你的防御有多强,攻击者总有可能绕过你的安全系统并获得访问权限。端点安全通常指的是一种保护组织数据和网络的明确定义方法,这些数据和网络是由最终用户和连接设备访问的。笔记本电脑和台式机不仅被认为是端点;智能手机和其他无线设备也具有网络访问功能,成为安全威胁的目标和入口点。
什么是端点
端点是指任何连接的设备,用于访问组织的数据和网络资源。如何处理端点设备,以保护通过这些系统可访问的数据资产,是安全管理员的一项艰巨任务。
当你允许员工使用自带设备(BYOD)时,安全管理员面临的挑战更加复杂。像物联网(IoTs)这样的未来技术也被视为端点。
以下图表显示了在任何组织网络中发现的不同类型资产的层级结构。从底到顶的方式反映了设备数量和业务价值在风险方面的关系。就数量而言,终端用户设备的数量通常多于其他任何设备,网络设备和关键业务端点的数量相对较少:

从业务角度来看,金字塔图展示了被攻击的风险。金字塔底部的设备更容易受到严重威胁,这为攻击者打开了通向高价值资产的大门。攻击者在金字塔上攀爬得越高,影响越大。
端点检测与响应(EDR)系统
网络交互的每个点都是潜在的网络攻击面。端点安全简单来说就是通过加固设备来减少攻击面,并限制网络攻击向量。端点检测与响应(EDR)是整体安全战略的重要组成部分,旨在满足持续监控和应对高级威胁的需求。保护端点始于端点发现,因为了解网络上有什么至关重要。资产发现有助于建立包括固件、操作系统和其他许多属性的清单。安全管理员现在可以为端点分配适当的安全策略,并继续监控,以帮助应对任何策略违规、未经授权的更改和访问:

EDR 系统也可以是轻量级的程序,称为代理程序,它们以应用程序的形式在每个端点上运行。它们甚至可以以内核级插件的形式运行在可能不支持直接托管应用程序的设备上。在某些场景下,也可以使用无代理的方法。代理提供对通过网络接口卡(NIC)传输的数据流量的实时监控、分析和警报。你的端点可以托管在本地网络上,例如企业数据中心,也可以托管在云网络上,使用各种设备,如虚拟桌面,或使用多种操作系统,如亚马逊 Web 服务(AWS)和 Azure 部署。
案例研究 – 为什么需要 EDR 系统?
端点检测与响应(EDR)解决方案本质上是一套下一代安全工具,专注于监控、检测、调查和缓解恶意活动以及可能针对端点的攻击,超越了传统安全工具中基于签名的遗留方法。
让我们看一个 EDR 系统可以提供帮助的例子:
一家在线购物公司的网络运营中心(NOC)开始收到 500 内部服务器错误日志的警报,其中 10% 的交易失败。在初步调查过程中,NOC 认为这可能是某种 DDoS 攻击,但他们的防火墙和网络入侵检测系统并未报告任何相关事件。然后他们认为这是一个被利用的系统漏洞,但他们的漏洞扫描器也未报告与此事件相关的任何信息。最后,通过使用带配置管理的 EDR,查看系统状态历史记录后,确定服务器农场中的四台系统(共 20 台服务器)上部署了错误的操作系统更新补丁。补丁被重新部署后,错误消失了!
安全政策
安全政策是一份定义了保护各种资产(包括物理资产和虚拟资产)计划的文件。以下领域必须被涵盖:
-
风险评估政策
-
密码政策
-
电子邮件政策
-
网络政策
-
灾难恢复
-
入侵检测
任何违反这些政策的行为都应被监控,并优先进行分析和响应。这些可以用于及早发现任何安全漏洞。任何希望实现高水平安全成熟度的组织,应不定期检查和调整其终端安全政策。
如何选择 EDR 解决方案?
网络攻击越来越多地针对组织,导致近年来多次数据泄露事件。这些攻击不仅在数量上增加,而且在性质上也变得更加复杂。这些复杂的新方法更加复杂,且更难被发现和阻止。EDR 与其他终端保护平台(EPP)如杀毒软件(AV)和反恶意软件不同,其主要焦点不仅仅是自动停止终端执行前的威胁。对于任何一个注重业务并希望确保免受攻击威胁的组织来说,EDR 解决方案是最优先的需求。
市场上有许多 EDR 解决方案。然而,平台之间的功能可能有所不同。在评估 EDR 平台时,您必须考虑包括可视化水平、报告、自动化、响应效果、部署简便性、对环境的影响,最后是符合预算的解决方案等能力。
以下是组织在选择合适的 EDR 解决方案时需要考虑的事项:
-
EDR 解决方案应作为基于复杂分析的托管服务运行,组织需要能够查看 EDR 操作和管理。这可能会因组织的需求而有所不同,是否仅需要防护,或者是否还需要可视化。
-
任何可行的 EDR 候选方案必须支持其网络上的所有类型终端。
-
以可扩展且具有成本效益的方式快速部署数万或数十万个终端。
-
该解决方案应足够智能,能够关联跨多个终端的活动。
-
该解决方案不应消耗大量的终端资源,如带宽和 CPU。
-
最后,购买和部署的成本,加上所有的持续费用,必须符合您的安全预算。
这个链接为您提供了市场上不同 EDR 解决方案的比较:www.gartner.com/reviews/market/endpoint-detection-and-response-solutions
安全信息和事件管理
理解网络内部发生的情况是确保网络安全并持续进行监控的关键元素。管理来自服务器和安全设备的数据流,包括活动和使用这些可用服务的情况,是提供此类安全保障的关键。SIEM 是一个工具,它将来自网络传感器(如 IPS、IDS、蜜罐、防火墙或任何能够检测安全事件并将信息提供给 SIEM 工具的设备)汇总的信息整合起来。SIEM 提供您网络的当前状态,并为 IT 环境提供 360 度视图。与日志事件的关联使得能够查看网络中发生的情况,加入此功能后,事故响应团队可以做出反应。
SIEM——事件与事故和数据泄露的区别
如果您曾经是网络或安全专业人士,您可能会熟悉诸如日志、警报、通知、事件和事故等术语。这些术语的含义取决于您如何标记某个事件,这将决定您的响应方式。
什么是事件?
根据国家标准与技术研究院(NIST)的定义,"系统或网络中的任何可观察到的事件,如发送电子邮件、SSH 登录到任何设备,或防火墙阻止连接尝试,都被定义为事件。"
什么是安全事件?
安全事件是违反组织安全政策和程序,并危及信息资产的完整性、机密性和可用性的事件。例如,简单地登录到 SSH 服务器被视为一个事件,但使用多个登录尝试对 SSH 服务器进行暴力破解攻击则被视为安全事件。所有类型的安全事件应能采取行动,无论是通过自动化方式还是由安全分析员处理。
什么是数据泄露?
数据泄露是最为关键和确凿的安全或隐私事件。这些事件可能涉及个人或商业敏感信息。存储敏感数据总是受州法律定义的法律约束。数据泄露还需要通知受影响的个人或用户、监管机构,有时还包括信用报告机构和媒体。
到目前为止,Facebook–剑桥分析数据丑闻是迄今为止发生的最严重的数据泄露事件。
SIEM 系统是如何工作的?
SIEM 可以提供由任何可以生成可收集日志流的系统产生的安全警报的实时分析。

事件生成传感器
日志是可视化网络中发生的事情以及谁在攻击的关键和基本要求。每个组织都希望从网络和业务的所有关键资源中获得日志。作为安全管理员,你总是希望从防火墙、IPS 和 IDS 中获取日志。你还希望从位于 DMZ 的关键服务器中获取日志,当然,你还会包括 Active Directory 服务器以及关键应用程序、端点和数据库服务器的日志。
事件和日志收集或数据聚合
日志收集或聚合是 SIEM 解决方案的核心。SIEM 不应与 SYSLOG 数据混淆,SYSLOG 是由设备生成的简单日志。必须有人查看这些日志,以找出警报的根本原因。其目的不仅是收集日志数据,还要从日志数据中创建有意义的上下文。SIEM 平台从安装在各种设备上的成千上万的不同传感器中收集事件日志,这些事件提供活动数据,这是分析我们 IT 环境安全所必需的。为了获得 360 度的视角,我们需要将收集的数据整合到一个平台上,以找出模式。聚合是将来自不同类型源的数据转换为通用存储库和有意义的标准格式的过程。
例如,事件 ID 10509 导致了登录失败,日志数据传送到 SIEM 解决方案。很容易将此事件与攻击或事故相关联:

关联
事件关联是 SIEM(安全信息和事件管理)将一系列事件联系起来,生成事故或更有意义的事件的过程。在我们之前的示例中,有五次来自多个源机器的相同用户账户的登录失败尝试。对于安全分析师来说,这可能值得调查。记录关联是提出警报的最佳方式:

报告与警报
警报是使 SIEM 系统根据配置的规则触发警报的功能。所有解决方案至少会在 SIEM 控制台发出警报,但一些解决方案可能提供扩展的警报功能。
仪表板
对于大规模 SIEM 部署,SIEM 解决方案必须拥有有效的仪表板,用于合规性、基础设施和安全分析。仪表板使安全管理员能够更容易地可视化趋势和活动报告,识别异常,跟踪安全指标,并评估 IT 环境的整体安全态势。大多数 SIEM 产品都带有预构建的仪表板,但这些仪表板也可以根据需求进行定制。
自动化
安全专业人员花费大量时间运行自定义查询以获取所需的数据。他们还花费大量时间浏览多个仪表板和数据源,只为找到调查单个警报所需的细节。随着网络攻击的不断增加,开发更好的识别和响应潜在攻击与安全威胁的能力变得尤为重要。
为了说明这一点,让我们看一下以下场景:
这是一个星期六的晚上,你收到 IT 环境中类似 WannaCry 的恶意软件感染警报。你做的第一件事是尝试远程访问你的网络,但由于某种原因,这并没有成功。你有其他选择吗?你可以换好衣服,去公司查看 IPS/IDS 报告以及分析安全报告,但这可能会花费很多时间。在报告上投入时间可能会造成更多损害,因为此类攻击传播迅速。此时,最简单的方法是通过关闭设备或拔掉电缆来隔离网络。但这可能行得通吗?是的,但仅适用于小型网络,仅有少数几台服务器和少量网络设备。然而,对于大规模的地理分布式网络,这种方法几乎不可能实现。
现在想象一个自动化事件响应系统,一旦检测到恶意软件,它就会发出警报,并通过短信通知你。你的 SIEM 解决方案将通过将感染的机器从网络中隔离来响应此类威胁,当你收到短信通知,告知问题已暂时解决时,平静将恢复。到周一你返回办公室时,可以分析安全报告并恢复关键系统。
让我们再看几个例子:
-
阻止恶意 IP 地址:任何组织的第一道安全防线是外围防火墙。我们知道防火墙是根据规则工作的,这种情况可以通过创建新规则,在检测到可疑活动时立即阻止恶意 IP 来解决。
-
节点隔离:SIEM 可以自动进行漏洞扫描,识别处于风险中的系统。响应工具可以通过禁用感染系统的网络连接,将其与网络隔离。
-
DDoS 攻击:通过仅使用日志监控,SIEM 工具可以用于检测拒绝服务(DoS)攻击,这是最危险和最常见的网络攻击类型之一。根据日志分析,系统可以生成 DoS 攻击的警报,并进一步自动化流量重定向到 DDoS 清洗器。
网络发现
网络发现基本上用于发现给定网络上的多个活动主机。对此有许多方法可以进行配置。
日志管理
日志管理的基本前提非常简单。网络设备和操作系统都会生成事件和通知。SIEM 解决方案根据时间周期组织并存档这些日志事件数据。任何超过安全管理员定义的时长的日志通常会被移到某种备份位置。
SIEM 商业产品
以下是根据 2017 年调查结果列出的市场上最著名的产品:
-
LogRhythm
-
LogPoint
-
Splunk
-
QRadar
-
AlienVault OSSIM
-
RSA Security Analytics 平台
-
ArcSight
总结
安全的定义有多种方式,但对 IT 安全专业人士来说,这只是与网络犯罪分子的简单竞争。在这场竞争中,赢家拥有网络。我们无法保护我们不理解的东西——就是这么简单。在本章中,我们讨论了如何在潜在的安全威胁影响我们的网络、主机基础设施和应用程序之前进行检测。我们还讨论了一个事实,即对于人类来说,阅读来自各种设备的所有日志是非常困难的。考虑到这一点,我们讨论了 SIEM 工具及其与自动化和自动化威胁响应技术的未来发展。
在下一章中,我们将讨论漏洞评估以及为什么每个组织都需要这些来保护信息。
问题
-
在 SIEM 环境中,通常会包括哪些元素?
-
客户端、服务器、代理
-
存档、云处理器、贡献网络
-
中央处理节点、传感器、数据库/日志记录
-
代理、传感器、日志记录、报告、中央处理节点
-
-
SIEM 如何直接支持增强的安全服务?
-
通过提高事件消息的完整性
-
通过使用认证信息叠加额外的上下文信息。这将实现认证的关联视图。
-
通过提高处理环境的整体可用性
-
通过提高事件消息的机密性
-
-
在考虑 SIEM 服务的预算时,应该考虑哪些组件?
-
监控代理和控制台
-
软件许可、实施费用
-
实施项目、硬件(平台/存储)、软件、运营成本
-
存档存储系统和处理节点
-
-
黑客攻击的哪个阶段对网络或系统执行实际攻击?
-
侦察
-
维持访问权限
-
扫描
-
获得访问权限
-
-
哪个陈述最适合利用 IT 系统安全的弱点?
-
威胁
-
攻击
-
漏洞利用
-
漏洞
-
进一步阅读
欲了解更多信息,请访问以下链接:
-
www.cisco.com/en/US/technologies/tk648/tk362/technologies_white_paper09186a00800a3db9.html -
www.sans.org/reading-room/whitepapers/detection/understanding-intrusion-detection-systems-337
第七章:漏洞评估
在上一章中,我们学习了有关安全 IT 基础设施的各个方面,包括监控和应对事件、威胁检测以及分散攻击者的注意力。
在今天的数字世界中,信息是以电子方式访问、存储和传输的。这些信息及其存储系统的安全性对公司的声誉至关重要,同时也对提供更好的用户体验有重要作用。因此,分析和修复 IT 基础设施中的漏洞,已成为任何安全专家、系统管理员或网络管理员最重要的任务之一。即便一个组织已建立了良好的安全基础设施,例如防火墙、杀毒软件和入侵检测系统,攻击者依然可能通过利用漏洞获得未经授权的访问权限。在软件安全的背景下,漏洞是指软件中的特定缺陷或疏忽,攻击者可以利用这些漏洞。通过评估方法,我们将在本章中重点关注安全功能和安全评估。
在本章中,我们将讨论以下主题:
-
基础设施问题
-
Nessus 安装和漏洞评估方法
-
示例报告
基础设施问题
随着网络攻击威胁的日益增加(包括来自自身网络的攻击),组织保护其 IT 资源变得越来越重要。世界发展的速度比以往任何时候都要快——每年,网络犯罪分子发动的攻击次数多于软件开发者发布的补丁数量。没有任何单一系统是由一个供应商管理的——它们通常是多供应商环境:主板制造商不同;操作系统由其他厂商提供;存储则来自不同的供应商。在这个永无止境的列表之上,你的操作系统中安装了多个应用程序,此外,为了保护你的 IT 资源,你还需要防火墙和加密系统。这些系统没有万无一失的保障,始终会受到攻击的威胁。
改变整个生态系统将是一项巨大的、繁琐的任务。每天都有新技术面世,每日的补丁和版本更新发布,厂商还提供免费升级。因此,对于 IT 组织而言,保持所有资源的最新状态变得非常困难。
除了前面提到的因素外,以下是一些常见的假设:
-
我们受到防火墙和入侵检测系统(IDS)的高度保护
-
许多组织直到灾难发生,迫使他们做出反应时才进行审计
-
我的组织由于业务性质不是攻击的目标
-
漏洞评估太昂贵,我看不到任何投资回报
-
攻击者比我们更聪明;我们无法战胜他们
-
我的基础设施运行正常,我们从未觉得需要审计
-
我们不了解自己的网络基础设施
什么是漏洞评估?
在 IT 领域,漏洞评估是识别和分类组织系统、网络和通信基础设施中安全漏洞的过程,这些漏洞可能受到内部或外部威胁的影响。漏洞评估通常涉及使用高度自动化的测试工具,如云托管实例和网络安全扫描设备进行内部扫描。结果通常会提供漏洞及相应解决方案。当涉及识别这些安全漏洞时,我们需要决定是选择常见问题解答、漏洞评估、渗透测试还是合规性测试。实际上,漏洞评估和渗透测试是不同的活动。从合规性监管的角度来看,选择漏洞评估还是渗透测试将取决于你尝试满足的具体控制目标。在这个不断发展的数字时代,组织的数据管理和安全方法必须符合由受监管的机构或组织(如 PCI、HIPPA、GDPR、ISO 或 SOX)规定的标准。这是确保满足最低安全要求以便开展业务的重要因素。
下图总结了漏洞评估:

计划
一切从规划开始。规划组件将包括收集所有相关信息,定义活动范围,获取许可,角色和责任,并通过变更管理流程让其他人知晓。
漏洞扫描
保持系统安全和最新的最有效方法是定期进行漏洞测试,发现漏洞并突出需要采取的措施,以帮助你做出明智的决策,降低业务风险。
报告
漏洞报告在将每一项重要信息纳入扫描报告时非常重要。报告应包含问题类型、严重性、产品和服务、漏洞类型、潜在威胁以及概念验证的详细信息。
补救
补救计划应包括详细的自下而上的技术措施,如应用程序补丁、防火墙或其他基于网络设备的配置更改、政策、流程和程序的变更,或配置标准。
为什么我们需要漏洞评估?
漏洞评估的总体目标是扫描、调查、分析并报告与外部资源上发现的任何漏洞相关的风险严重性。它还应为组织提供适当的缓解计划,以解决之前发现的弱点或漏洞。网络漏洞扫描可以帮助组织识别其网络安全中的弱点。结果好坏取决于谁先进行扫描——系统管理员还是攻击者。
漏洞评估类型
漏洞评估大致可以分为两个主要类别:
-
基于网络的评估
-
基于主机的评估
为了最大化效果和安全性,必须同时进行上述两种漏洞评估。这是因为漏洞可能被内部人员、合法用户、外围外部的坏人或未经授权的用户利用。
基于网络的评估
基于网络的漏洞评估由内部或外部安装的扫描工具完成。这些工具允许网络管理员发现并消除组织内的基于网络的安全漏洞。
网络漏洞评估通常包括以下任务:
-
针对网络设备如路由器/交换机/无线网络的密码分析
-
审查网络抵御分布式拒绝服务攻击(DDoS)的能力
-
网络入侵
-
设备级别的安全分析(如路由器、交换机、计算机)
-
扫描已知和潜在的威胁和漏洞
一些常用工具有:
-
Nessus
-
OpenVAS
-
Qualys
Nessus 是一个免费的开源工具。它的功能与一些最好的商业漏洞评估扫描仪一样强大。
大多数著名的网络扫描仪以虚拟和物理设备的形式出现。这些硬件设备设计用于放置在客户场所,如数据中心或办公室。这些扫描仪提供对 IT 资产的持续安全性和合规性监控,并将数据发送到云实例后台扫描引擎。扫描引擎在后台自动更新最新的漏洞特征。客户部署后无需再接触这些设备。下图展示了一个典型的基于网络的扫描仪架构:

基于主机的评估
基于主机的漏洞评估采用客户端-服务器模型,客户端执行扫描并将报告发送回服务器/管理器。基于主机的扫描器安装在你想要监控的系统的每台主机上。基于主机的漏洞评估工具可以提供对潜在损害的洞察,这些损害可能会在系统获取一定级别的访问权限后,来自内部人员或外部攻击者。它们通常有助于发现初始访问控制设置后的弱点。基于网络的扫描器无法进行深度的低级安全检查,因为它们无法直接访问目标主机的文件系统。几种著名的开源工具包括 OSSEC、Prelude 和 SNORT。
Nessus 的安装、配置和漏洞评估方法
Nessus 是一个非常强大的远程安全扫描工具,能够扫描设备,并在发现黑客可能利用的漏洞时发出警报,从而帮助黑客访问你连接到网络的计算机。在漏洞公开发布几天内,Nessus 就会为新的漏洞发布插件。Nessus 使用 Nmap 进行端口扫描。
让我们一步步来看如何扫描指定的网络和主机。
安装
要下载 Nessus 的最新版本,请访问 www.tenable.com/downloads/nessus。我选择下载适用于 Windows 2016 的安装包:

安装成功后,可以通过端口 8834 访问控制台,https://localhost:8834。首先,你需要提供激活密钥,并创建用户名和密码。然后,Nessus 将安装所有必需的文件和插件来扫描你的资产。插件和文件下载完成后,你将被重定向到登录页面。
策略
登录后,你将看到首页。请按照以下步骤操作:
- 点击策略:

- 点击新建策略。在这里,你会看到许多默认和内置的策略。你可以选择使用这些默认策略,或者选择一种策略来自定义自己的扫描策略:

-
让我们进行一次基本的网络扫描。点击新建扫描,并选择基本网络扫描策略。
-
分配一个唯一的名称,反映此扫描的目标或用途。
-
在目标中,输入目标的 IP 地址范围。你也可以在这里输入一个范围。例如,
10.0.0.1-255或整个子网,10.0.0.0/24:

第二个最重要的因素是凭证。在扫描网络之前,你应该根据网络中主机的类型提供必要的凭证。你可以为 Windows、SSH、数据库(MySQL、Oracle 等)、虚拟机和端口(FTP、POP3 等)添加凭证:

我已经为 SSH 和 Windows 通过了凭证认证。以相同的方式,你可以从列表中添加更多的凭证,如下图所示:

默认情况下,网络扫描会在常见端口和协议上运行,如下图所示:

你可以通过将扫描类型更改为自定义,来定制发现过程,这样你可以自定义主机发现、端口扫描和服务发现:

发现模块已被划分为三个部分:
-
主机发现
-
端口扫描
-
服务发现
让我们详细讨论这些模块:
- 主机发现:主机发现是一种方法,用于检查给定网络或网络范围内的活动主机数量。当你希望 Nessus 尽快完成扫描时,可以使用快速网络发现选项。个人来说,我不会选择这个选项,因为使用此选项时,Nessus 不会深度探测网络。Nessus 还可以使用 TCP Ping,并且可以定义具体的端口号。出于安全考虑,大多数系统管理员会阻止 ICMP。最后一种方法是基于 ICMP 的,如果没有防火墙阻止 ICMP,这种方法效果较好。你还可以上传 MAC 地址列表进行扫描。由于 UDP 是一种无连接协议,有时无法被检测到,因此它可能不是一个好的选择。

- 端口扫描:默认情况下,Nessus 会将所有未扫描的端口视为关闭状态。你可以定义要扫描的端口范围,但默认情况下,只有
4790个常见端口会被扫描并列出在 Nessus 中。而“All”表示扫描所有65365个端口,典型的系统最多可以有65365个端口。还可以选择端口号的范围,例如从 1-99。局部端口枚举是基于凭证的扫描。netstat工具是专门为 Unix 系统设计的,它使用netstat命令查找任何运行系统中开放的端口及其状态。相比之下,WMI(netstat)是针对 Windows 系统的,也需要凭证来使用netstat命令,后者也可以通过 Windows 命令提示符启动。TCP 使用三次握手过程,首先发送一个 SYN 包到远程主机。扫描器将 SYN 包发送到目标,收到目标机器的 ACK 消息后,根据签名预测操作系统。Nessus 的后台进程利用 NMAP 签名来检测操作系统:

简单网络管理协议(SNMP)测试适用于路由器、交换机、防火墙及其他网络设备。可以通过查看 SNMP Walk 回复来预测设备类型。在启动扫描之前,请确保提供一个 SNMP 社区字符串:

- 服务发现:这是一个 Nessus 设置,用于查找与端口号相关的服务。它会探测所有端口,以找到在所有端口上运行的服务。启用 CRL 检查(连接到互联网)将检查证书的吊销:

-
评估:评估设置可以分为不同的类别:
-
一般
-
暴力破解
-
Web 应用程序
-
Windows:
-

- 一般:一般选项卡代表基于响应的结果准确性。如果你希望 Nessus 不报告任何不确定的漏洞,则选择避免潜在的误报:

- 暴力破解:在第一次尝试时,Nessus 将尝试使用 Nessus 管理员提供的凭据进行登录。如果你还希望测试系统安全性,则可以选择使用 Nessus 存储的默认账户进行测试的第二个选项:

- Web 应用程序:如果你希望 Nessus 执行 Web 应用程序测试,可以启用 Web 应用程序扫描选项:

- Windows:在 Nessus Windows 选项卡中,你可以配置域用户的枚举值。为反向域查找配置 UID 值:

- 报告:默认情况下,覆盖正常的详细程度选项是禁用的,你有两个选项。首先,如果你有有限的磁盘空间,则选择报告尽可能少(或尽可能多)的信息。对于报告输出,使用主机名而不是 IP 地址,并报告成功响应 Ping 的主机。这些也是基于你希望在报告模式中看到的内容而自解释的选项:

完成凭据设置后,保存并启动扫描器。
示例报告
让我们看一下基于我的 Azure 托管网站应用程序的示例报告。该报告是通过使用默认 Web 扫描策略扫描 URL myapptestsec.azurewebsites.net生成的:

Nessus 将漏洞的级别分为五个不同的部分(从低到高):
-
信息
-
低
-
中
-
高
-
严重:

在以下截图中,你可以看到 Nessus 没有发现任何严重漏洞,但列出了十二个信息项。欲了解更多详情,你可以点击信息选项卡以展开并查看详细信息:

总结
漏洞日益增加,网络变得越来越难以保护。漏洞评估已经成为许多关注声誉的组织管理安全缺陷的首选、强制性方法。网络漏洞评估可以快速识别并提供目标网络的 360 度安全弱点视图,并辅以主机评估。有许多自动化工具可以检测并报告所有关键漏洞。这些系统的设计方式、使用的技术和漏洞测试的方法可能差异很大。由于漏洞扫描通常针对特定的主机或一系列主机,它通常进行比网络扫描仪更深入的检查,识别软件版本、操作系统、特定的软件应用程序和服务,以及系统配置属性。
在本章中,我们已经探讨了如何安装 Nessus VA 工具以及启动、扫描和生成报告之前你应该了解的不同设置。
在下一章中,我们将讨论使用 NMAP 进行远程操作系统检测的技术。
问题
-
Nessus 将漏洞分为多少级?
-
1
-
3
-
5
-
7
-
-
以下哪项不是系统安全加固的一部分?
-
关闭未使用的服务
-
实施 IDS(入侵检测系统)
-
打补丁操作系统
-
日志分析
-
-
运行系统工具
NetStat的最重要原因是什么?-
为了减轻 DDoS 攻击的尝试
-
编辑系统注册表
-
检查密码
-
确定主机上的开放端口
-
-
使用扫描仪时的最佳方法是什么?
-
使用外部扫描仪
-
使用多个扫描仪
-
使用一个扫描仪扫描所有远程网络
-
为了获得最佳结果,每个网络段使用一个扫描仪
-
-
哪个不是网络扫描仪?
-
Qualys
-
Openvas
-
Nessus
-
Radware
-
进一步阅读
有许多工具、文章、指南和在线资源可以帮助你更好地理解漏洞评估。更多信息,我建议你探索以下三种著名工具:
第八章:远程操作系统检测
在本章中,我们将介绍可以用来检测远程操作系统的技术和方法。操作系统的漏洞是特定且不可避免的。因此,网络管理员需要了解所有在网络中运行的主机上安装的操作系统。对于一个小型网络,可能很容易识别所有主机的操作系统。然而,对于大规模的云组织来说,维护一个数据库,其中每分钟都在删除和创建数千台主机,且这些主机不断变化,将变得非常具有挑战性。
市面上有许多扫描工具,但 Nmap 和 Wireshark 是最受欢迎和广泛使用的工具。为了成功使用 Wireshark 捕获功能,您应该已经做过一些背景阅读。在本章中,我们将使用 Nmap 和 Wireshark 进行扫描和捕获数据包。在下一章中,我们将讨论 SSL、基本安全性和技术问题,以及基于 Web 服务的实现。
在本章中,您将学习以下内容:
-
操作系统检测的原因
-
确定目标主机的漏洞
-
定制漏洞利用
-
使用 Nmap 进行操作系统检测技术
-
Nmap 支持的 TCP/IP 指纹识别方法
-
理解 Nmap 指纹
-
操作系统匹配算法
操作系统检测的原因
在我们讨论为什么要检测操作系统之前,让我们先理解一下操作系统到底是什么。操作系统是一组编译的程序,负责管理与计算机相关的多个硬件资源,并且设计用于提供资源平台池以运行其他应用程序:

以下是市场上最常见的操作系统:
-
Linux
-
Windows
-
Red Hat
-
FreeBSD
-
Solaris
-
macOS
现在让我们来讨论为什么我们需要检测操作系统。您可以在以下有趣的网站上查看计算机上安装的操作系统:whatsmyos.com/。作为系统管理员,您会希望跟踪 IT 资源。同样,攻击者也希望访问您的资源清单,这将帮助他们找到资源并针对漏洞发起攻击。
网络操作系统清单 – 追踪您的基础设施
作为系统管理员,了解网络中运行的内容非常重要,市面上有多种工具可以用来创建清单。清单可以帮助你确定操作系统的生命周期、许可费用、预算和补丁管理。最重要的是,它能为你提供基础设施上运行的操作系统的可视性和分析。系统管理员和攻击者之间唯一的相似之处在于,他们都使用类似的方法来修复或利用系统。系统管理员需要在攻击者利用任何漏洞之前,进行扫描并修复问题。
确定目标主机的漏洞
漏洞扫描(通常称为基于网络的扫描)可以远程进行。直接在主机上运行扫描的方法称为主机扫描。仅仅确定应用程序版本并不总是有助于我们找到漏洞来攻破系统。检测操作系统版本同样非常重要,以便结合扫描结果。有时候,操作系统会发布更新,修补应用程序而不改变应用程序版本。通过远程扫描找到漏洞有点困难,因为结果可能会出现误报。
定制利用攻击
缓冲区溢出是最著名、最强大且最常用的攻击之一,用来利用应用程序漏洞。缓冲区溢出攻击可以让攻击者获得执行命令或定制 shell 代码的权限。一旦你获得了对目标机器的访问权限,你可以添加账户、访问命令提示符、远程控制图形界面,并修改系统配置。
当我说缓冲区内存时,我指的是用于暂时存储数据、在数据传递到目标应用程序之前的随机存取存储器(RAM)。系统中的每个应用程序都有一个固定大小的数据缓冲区(内存来自公共池)。攻击者使用技术将数据填充到缓冲区,直到缓冲区没有空间可用——这就是所谓的缓冲区溢出。在你尝试执行此类脚本以利用漏洞之前,了解或检测实际操作系统非常重要。首先使用操作系统检测,否则你可能会把 Linux shellcode 发送到 FreeBSD 服务器。
使用 Nmap 进行操作系统检测技术
在我们讨论远程操作系统检测之前,让我们先了解一下 Nmap 是什么,以及它能做什么。我还会向你展示 Nmap 工具的一些不同标志和选项。
Nmap 工具
网络映射器(Nmap)是一个免费开源工具,供系统和网络管理员使用,允许他们执行诸如收集企业网络清单、管理服务升级计划、基本安全审计以及监控主机或服务的正常运行时间等任务。Nmap 在主要计算机操作系统平台上都有官方版本,如 Linux、Windows 和 macOS X。
Nmap 可执行文件可以从 nmap.org/download.html 下载。安装成功后,你可以通过输入 nmap -V 命令来检查版本:
- Windows:Windows 上的输出显示当前安装的程序是
Nmap version 7.60:

- Linux:Linux 上的输出显示当前安装的程序是
Nmap version 6.40:

Nmap 可以通过 Linux/Unix shell 或 Windows 命令提示符界面在具有 root 或管理员权限的情况下运行。
Nmap 的基本语法如下:
# nmap [scan type] [options] [target]
只需输入目标 IP 地址而不使用其他选项,就可以执行非常简单的扫描。目标字段可以是 IPv4 地址 address:1.1.1.1,IPv6 地址 address :2001:db8:0:0:0:5678:d334:8af,主机名 www.xyz.com,IP 地址范围 192.168.0.1 - 192.168.0.10,以及 无类域间路由 (CIDR) 块 10.10.10.0/24:
- 示例 1:扫描主机名为
myapptestsec.azurewebsites.net的主机。默认情况下,它将扫描一千个端口。共计九百九十八个端口被过滤,两个端口开放,如截图所示。
请只提及网站的主机名:

请参考帮助选项以获取更多信息:

- 示例 2:扫描具有指定端口号的主机。如我们所见,默认情况下只扫描一千个端口,但 Nmap 让你可以通过输入
-p标志并选择端口范围-p <Port 1>-<Port 2>,端口列表-p <Port 1>,<Port 2>等,来定义端口选项:

请参考帮助选项以获取更多信息:

- 示例 3:使用不同的扫描类型扫描主机。你可以指定多个标志来执行不同类型的扫描,包括 SYN 扫描
-sS、没有端口扫描的主机发现-sN、版本扫描-sV、TCP 连接扫描-sT和操作系统检测-O:

请参考帮助选项以获取更多信息:

操作系统检测
操作系统检测提供了关于目标主机上当前安装和运行的操作系统的宝贵信息。我们来讨论一下发现的逻辑,以及 Nmap 是如何猜测操作系统的。
Nmap 解码标准探针的属性和响应模式,并将其发送到远程主机以确定操作系统。这个过程被称为 TCP/IP 指纹识别。在以下输出中,您可以看到在目标主机 IP 23.100.21.174 上运行的多个服务。接下来是我的 Linux 主机。为了测试目的,我安装了 Apache2 Web 服务器。在以下屏幕截图中,我们可以看到启动浏览器时显示的默认页面:

Nmap 的最佳猜测(激进的操作系统猜测)是,系统有 86% 的概率运行在 Linux 3.5 或 Linux 2.6.32 系统上,且这一猜测是准确的。如果您发现此信息不正确,可以将输出上传至 Nmap 门户。这将帮助 Nmap 开发者改进下一个版本:

使用 Nmap,让我们尝试进一步挖掘服务版本。这次扫描花费的时间稍长,完成时间为 26.4 秒,而常规扫描完成的时间为 14.98 秒。输出显示了此主机上运行的不同服务的版本,以及它们的软件版本:

TCP/IP 指纹识别需要收集有关目标 IP 栈的详细信息。这里是 Nmap 当前数据库签名的链接 svn.nmap.org/nmap/nmap-os-db。
在当前的 Nmap 数据库(6.47)中,有 4485 个指纹,涵盖了 5009 个 CPE(平台)名称,其中超过 800 个与不同版本的 MS-Windows 匹配,超过 1000 个与各种 Linux 系统(包括设备)匹配。
Nmap 支持的 TCP/IP 指纹识别方法
过去,曾使用横幅抓取方法来检测远程操作系统。通过 Telnet 连接,发送到目标系统,系统会显示主机上运行的操作系统的横幅。这种方法不太准确,因为系统管理员也可以禁用横幅或更改实际的横幅,以误导攻击者。
新的远程操作系统检测方法是分析源和目标之间的数据包。此检测技术不仅可以检测操作系统平台,还可以检测操作系统版本。
TCP/UDP/IP 基础
用一个类比来说,如果 IP 是建筑物地址,服务端口就是楼层号码。TCP 和 UDP 都使用进出端口进行数据通信。大多数基于 IP 的服务使用标准端口(HTTP TCP:80,SMTP TCP:25,DNS TCP-UDP:53)。
TCP 栈有六种标志消息类型,用于完成三次握手:

这是我在网页浏览器上打开的一个网站的数据包捕获。这显示了一个三次握手过程,包含 SYN-SYN-ACK。默认情况下,Wireshark 会跟踪所有 TCP 会话,并将所有的序列号(SEQ 号)和确认号(ACK 号)转换为相对数字。这意味着,Wireshark 不会在显示中显示真实/绝对的 SEQ 和 ACK 号码,而是显示相对于会话中首次出现的段的 SEQ 和 ACK 号:

如果你有兴趣了解 TCP 序列号的确切实数值,那么你需要通过勾选与序列号相关的未勾选框来调整 Wireshark 的设置:

在 Wireshark 中,我已扩展第一个连接以显示 SYN 标志设置为1。同样,你也可以扩展其余连接:

-
SYN 和 SYN-ACK:任何 TCP 通信都将以一个 SYN(同步)包开始,通过将标志位设置为
1。服务器会响应一个 SYN-ACK,这意味着服务端口正在监听并处于开放状态。 -
ACK:在接收到服务器的 SYN-ACK 后,客户端会发送最终的 ACK 以通过设置 ACK 标志为
1来完成三次握手。 -
RST:复位标志表示服务器不接受在服务端口上建立的连接,或者它拒绝请求。
-
FIN:当任一方希望完成连接时,完成标志会被设置为
1,这可以通过关闭浏览器来实现。
以下技术用于确定系统上的操作系统。
FIN 探测
FIN 包用于关闭客户端和服务器之间的 TCP 连接。关闭连接比建立连接要复杂,因为双方都必须释放各自的资源。在下图中,你可以看到 FIN 包与最后的 ACK 一起工作:

像 Nmap 这样的工具可以生成一个没有设置 ACK 为1的 FIN 包。操作系统可能会对此做出 RST 响应,这能为你提供关于远程操作系统的线索。
在设计 TCP/IP 实现时,厂商对 RFC 793《传输控制协议》有不同的解释。当一个 TCP 段到达并且 FIN 标志被设置,但 ACK 标志没有被设置时,一些实现会发送 RST 段,而其他一些实现则会丢弃该包而不发送 RST。
让我们通过数据包捕获来测试一个实际环境。我在我的无线路由器上测试了 FIN,下面是我在 Wireshark 中跟踪 TCP 流时的结果:

让我们在 Wireshark 中测试端口80的结果,我知道这个端口在此设备上是开放的。你可以看到,只发送了 FIN 包,并且路由器没有响应:

发送到端口443的 FIN 会收到一个 RST,因为该路由器上的此端口未打开:
FIN 扫描只在 Linux 机器上有效,且在最新版本的 Windows 上无效。CISCO、HP/UX、MVS 和 IRIX 会返回一个 RST 包。
TCP ISN 采样
在 TCP 栈序列和确认中,字段为 32 位[4 字节]。有2³²= 4,294,967,296种生成随机数的可能性:

在客户端和服务器之间,当客户端发起连接时,它会生成一个初始序列号(ISN)。每个操作系统都有自己生成 ISN 的算法,而这个过程是可以预测的。
Windows NT 4.0 生成可预测的随机 TCP ISN,这使得远程攻击者能够进行欺骗和会话劫持。
随机 ISN 值很好,因为它们使得预测序列号变得更加困难。从 Windows 2003 开始,ISN 算法已经被修改,使得 ISN 在系统启动时通过使用基于 RC4 的随机数生成器和一个 2048 位的随机密钥以随机增量方式增加。
RFC 6528 规定,初始序列号生成算法 TCP 应使用以下表达式来生成 ISN:
ISN = M + F(localip, localport, remoteip, remoteport, secretkey)
这里,M是四微秒计时器,F()是连接 ID 的伪随机函数(PRF)。总的来说,ISN 值完全基于不同操作系统所使用的 TCP/IP 栈实现和算法,但总有一个共同的模式可以帮助预测操作系统。
TCP 初始窗口
这是检查返回数据包上的窗口大小,这个值对于不同操作系统似乎相当恒定。
服务类型
该字段通常对所有操作系统设置为零。Linux 将 ToS 字段的优先位设置为 0xC0。ICMP 错误消息总是使用默认的 ToS 值 0x0000 发送。ICMP 回显应答消息应与 ICMP 请求消息具有相同的 ToS 值。
生存时间(TTL)
基于主机之间的网络流量,可以预测系统上运行的操作系统。每个操作系统都有自己独特的方式来实现 TCP/IP 栈。一种非常简单但有效的被动方法是检查 IP 头部中的初始生存时间(TTL):

我在一台 Windows 10 机器上,尝试了对主机4.2.2.2的 ICMP ping。在下面附带的 Wireshark 抓包中,你可以看到 Windows 10 的初始 TTL 值为128:

我从 Wireshark 中展开了第一个数据包,确认 TTL 为128:

让我们尝试展开返回的数据包,让我们看到 TTL 值为59:

现在,您可以通过 Nmap 远程操作系统检测获取匹配结果。系统运行 Linux 操作系统的概率为 90%。这应与我们的参考表匹配。Linux 的 TTL 值为 64,值为 59 表示该主机距离我有五跳。
不分片(DF)位
一些操作系统会设置此位,而其他操作系统则不会。
还有许多其他工具和扫描技术可以用来检测远程操作系统。请阅读 nmap.org/book/osdetect-methods.html 以获取更多信息。
理解 Nmap 指纹
操作系统指纹识别是一种用于确定远程主机上运行的操作系统类型和版本的技术。nmap-os-db 数据文件包含成千上万的签名。然而,不同的远程操作系统会对 Nmap 的专用操作系统检测探针做出响应。一个指纹包含操作系统的名称、其一般分类以及响应数据模式。
一个典型的指纹格式如下图所示。在检测探针过程中,属性和结果会与 Nmap 的 os-db 操作系统数据库进行比较。可以使用简单的命令进行操作系统检测,使用的标志是 -O:
#sudo nmap --O <ip or ip subnet>
以下截图特定于 Cisco 2820 设备,显示在 Nmap 确认该设备为 Cisco 2820 之前将执行多个测试。此 Nmap 数据库将为大多数已知设备提供类似的指纹,而且它不断增长:

我们可以在上面的快照中看到以下术语:
-
SEQ 测试:SEQ 测试返回有关序列分析的信息
-
OPS 测试:OPS 测试返回每个 [01-06] 探针接收到的 TCP 选项信息
-
WIN 测试:WIN 测试返回每个 [W1 -W6] 探针的 TCP 初始窗口大小信息
-
ECN 测试:ECN 测试返回显式拥塞通知响应
-
T1 至 T7 测试:这些是 TCP 探针:
-
T1 是带有多个 TCP 选项用于打开端口的 SYN 包
-
T2 是带有打开端口选项的 NULL 包
-
T3 是带有打开端口选项的 SYN/FIN/URG/PSH 包
-
T4 是带有打开端口选项的 ACK 包
-
T5 是带有关闭端口选项的 SYN 包
-
T6 是带有关闭端口选项的 ACK 包
-
T7 是带有关闭端口选项的 FIN/PSH/URG 包
-
-
PU 测试:PU 测试是一个用于关闭端口的 UDP 包
操作系统匹配算法
Nmap 的匹配检测算法是一个简单的过程,它收集目标指纹并将其与 nmap-os-db 中的每个参考指纹进行测试。在对所有探针进行指纹测试后,Nmap 会将 NumMatchPoints 除以可能的点数。这个结果是一个置信因子,描述了目标指纹与特定参考指纹匹配的概率。
防御端口扫描
到目前为止,我们已经学习了如何使用端口扫描技术来发现和检测远程主机的信息。让我们尝试理解,任何服务/主机都会受到端口扫描的影响,这些主机通过某种方式与用户连接。可能包括企业 WAN 或互联网。端口扫描也不被归类为非法活动,除非信息被用来利用系统漏洞。
应该暴露给外界的信息量取决于系统管理员。任何 IP 扫描都以 ICMP 开始,你可以在企业边缘设备上阻止所有传入的 ICMP。这将使 Ping 无效,并且会过滤 ICMP 不可达消息,从而阻止 Traceroute,作为第一道防线。但这能解决所有问题吗?不能,端口扫描同样适用于 TCP/UDP 端口。
限制信息的另一种方式是禁用系统中所有不必要的服务。当然,你不能封锁所有服务。例如,如果你在主机上运行 HTTPS 服务,那么只有端口 443 [HTTPS] 应该暴露到互联网。另一个简单的方法是通过源 IP 地址来限制服务。来自其他 IP 地址的扫描将无法发现这些服务。
一个巧妙的最终解决方案是配置防火墙/IPS/IDS 上的策略进行威胁签名检测。就像其他应用程序一样,Nmap 本身也有自己的签名。
总结
在本章中,我们讨论了 TCP/IP 的基础知识,以及如何利用其不同的属性进行端口扫描技术和远程操作系统检测。我们还讨论了如何在不同操作系统上使用 Nmap 工具,以及如何使用 Wireshark 进行数据包捕获分析。优秀的黑客知道如何破解系统,而伟大的网络管理员知道如何防范这些攻击。
“最好的防守是进攻”
在下一章中,我们将讨论 SSL 的基础知识,为什么它对于基于 Web 的应用程序至关重要,以及在保护应用程序之前需要考虑哪些安全事项。
问题
-
端口扫描是以下内容的一部分:
-
Traceroute
-
Nmap
-
路由
-
Ipconfig/all
-
-
TCP 连接的模式是什么?
-
SYN-ACK
-
SYN-ACK-FIN
-
SYN-RST-ACK
-
SYN-SYN-ACK
-
-
系统黑客中最重要的活动是什么?
-
信息收集
-
破解密码的暴力攻击
-
DDoS 攻击
-
漏洞利用
-
进一步阅读
第九章:公钥基础设施-SSL
在上一章中,我们了解了用于检测远程操作系统的网络映射工具和端口扫描技术。
在今天的数字时代,越来越多的互联网用户正在开展网络业务。小型到大型企业推出了更多的营销工具,例如广告、网页服务、电子邮件、社交媒体、数字内容、网上银行、手机应用程序,当然还有在线购物。然而,直到信息安全得到保障,没有人愿意在互联网上存储或传输信息。
安全套接字层(SSL)为基于网页的应用程序提供传输层安全性,并为最终用户或客户提供安全的浏览体验。在本章中,我们将讨论什么是 SSL,它如何工作以及谁需要它。我们还将讨论 SSL 的发展,重点介绍你需要知道的内容,以便实施它。这将包括了解当前的威胁和验证方法。
我们将涵盖以下主题:
-
SSL 的基础
-
TLS 与 SSL
-
公钥基础设施(PKI)
-
针对 PKI 的攻击
-
微软 Windows 和 IIS
-
OpenSSL
-
SSL 管理工具
SSL 的基础
在本节中,我们将从最终用户的角度学习 SSL 的基础知识,重点是用户在安全浏览时应该了解的 SSL 内容。在你的网站上拥有 SSL 证书标志对安全性至关重要。为了保护数据免受攻击者的侵害,SSL 技术用于在最终用户(通常是一个网页浏览器)和网页服务器之间创建加密连接。SSL 允许像信用卡号、社会安全号码和登录凭证等敏感信息以加密格式安全地传输。即使攻击者能够拦截客户端和网页服务器之间发送的所有数据,他们仍然无法读取和使用加密数据中的信息。
要了解 SSL 在 TCP/IP 或 OSI 模型中的位置,让我们看看下图。对于像 HTTPs 这样的安全应用程序,SSL/TLS 位于应用程序和第四层传输层之间:

我怎么知道 SSL 是否正常工作?
在交换任何信息之前,用户必须知道他们所访问的网站区域是否安全和受保护。不同的浏览器展示 SSL 状态的方式各不相同,但通常可以通过检查浏览器顶部的地址栏来查看 SSL 状态。让我们看一下几个浏览器:
微软 Edge:

微软 IE:

谷歌 Chrome:

我们可以清楚地观察到,所有浏览器的共同点是它们都有绿色的突出显示色、锁头符号,并且信息显示在状态栏中,告诉你这是一个安全站点。
为什么没有锁头?
现在的浏览器足够智能。让我们来看一下我在访问银行网站时收到的警告错误信息。在这种情况下,你不应该分享你的信息:

在这里,你可以清楚地看到状态栏没有绿色和锁形图标,浏览器还会显示该网站不安全的原因。
SSL 证书
SSL 证书是一个数字公共文档,将加密密钥与所有者或组织的详细信息绑定,如通过域名、主机名或位置。这验证了访问的网页确实属于合法公司所有。
SSL 证书有三个特定功能:
-
身份认证
-
验证
-
数据加密
换句话说,SSL 证书将包含关于证书颁发者以及证书颁发对象的信息。这不仅限于网页服务器,它还可以用于终端用户机器、手机及更多应用程序。每个 SSL 证书都会附有一个到期日期,就像考试证书在到期后不能再使用一样。因此,要延长证书的有效期,必须进行续期。SSL 证书还将包含公钥和数字签名。如其名称所示,公钥被纳入 SSL 证书中,并与网页浏览器共享;而数字证书是一种过程,保证消息的内容在传输过程中没有被篡改。
SSL 和 TLS 的演变
传输层安全性(TLS)协议是目前互联网上最广泛使用的协议。SSL 最初由 Netscape 在 1993 年开发。让我们来看看 SSL 协议的历史:
-
SSL 1.0:这是 Netscape 在 1994 年初发布的第一个规范,但从未公开发布。这是因为它在加密社区中遭到了广泛的批评,原因是其采用了弱加密算法。
-
SSL 2.0:1995 年初,Netscape 发布了 SSL 2.0,这是原版的改进版本。然而,这个版本同样没有成功。在这个版本中,消息认证使用了 MD5,大多数注重安全的用户已经不再使用该算法。握手消息没有受到保护,这使得 MITM(中间人)攻击能够欺骗客户端选择比正常情况下更弱的密码套件。
-
SSL 3.0:SSL 版本 3 由 Netscape 于 1996 年发布,用以增强 SSL 版本 2 并支持更多的算法。当时,许多 SSL 版本 2 平台已被部署,因此没有简单的方式可以切换到 SSL 版本 3。这迫使 SSL 版本 3 允许与 SSL 版本 2 的向后兼容性。因此,除非你明确知道服务器支持哪些 SSL 版本,否则你的 SSL 应用程序应该在 SSL 版本 2 和 SSL 版本 3 模式下运行。这使得客户端可以与 SSL 版本 2 和 SSL 版本 3 的服务器进行通信,也允许服务器与 SSL 版本 2 和 SSL 版本 3 的客户端建立连接。然而,如果客户端或服务器仅支持 SSL 版本 2,则仅会使用该版本。
SSL 3.0 易受 POODLE 攻击的影响,标志着 SSL 3.0 时代的结束。此漏洞由 Google 安全团队发现,并于 2014 年 10 月 14 日公开披露。
-
TLS 1.0:TLS 协议本身基于 Netscape 于 1999 年 1 月发布的 SSL 3.0 规范。这个协议与 SSL 3.0 之间的差异并不显著,但足够重要,TLS 1.0 和 SSL 3.0 无法互操作。
-
TLS 1.1、TLS 1.2 和 TLS 1.3:RFC 4346 于 2006 年 4 月发布,TLS 1.1 是 TLS 1.0 的更新版本。所做的更改包括用显式的 初始化向量(IV)替代隐式的 IV,以防止 密码块链式连接(CBC)攻击。2008 年 8 月,TLS 1.2 基于 TLS 1.1。
截至 2018 年 1 月,TLS 1.3 是最新的协议,尽管它仍是一个工作草案。让我们通过浏览器(Internet Explorer)查看当前支持的 SSL 和 TLS 版本。
当前支持的标准
对于 Microsoft Internet Explorer,按照以下步骤操作:工具|Internet 选项|高级。在以下截图中,我们可以看到 TLS 1.0 到 TLS 1.2 的选项已被勾选,而 SSL 3.0 被禁用或未勾选:

为什么 TLS 1.3 还没有实施?
这种安全升级本质上很复杂。在多厂商的互联网环境中,你需要更新客户端和服务器以支持新的安全标准。到目前为止,没有主流浏览器默认启用 TLS 1.3。不能假设在某个特定日期,所有服务器和终端设备都会支持所有新的安全标准。此外,TLS 1.3 并不是一个扩展,而是一个完全重构的重大变化。TLS 或 SSL 版本协商的工作方式是,终端用户设备将最新支持的协议版本发送给服务器,服务器回应以其支持的最新版本,并选择双方都支持的版本。
是时候告别 SSL 和早期的 TLS 了。
根据 PCI 数据安全标准 (PCI DSS) 保护支付数据,2018 年 6 月 30 日是禁用 SSL/早期 TLS 并实施更安全的 TLS 1.1 或更高版本加密协议的最后期限。SSL 和早期 TLS 存在许多漏洞,如果不加以解决,将使组织面临被攻击的风险。广泛存在的 POODLE 和 BEAST 漏洞就是攻击者利用 SSL 和早期 TLS 弱点入侵组织的两个例子。
访问以下网站获取更多信息:
blog.pcisecuritystandards.org/are-you-ready-for-30-june-2018-sayin-goodbye-to-ssl-early-tls
SSL 证书组件
我们先讨论客户端 SSL,然后再关注服务器端。您的浏览器预装了受信任的 CA。每次访问网站时,浏览器都会验证信任链,并在握手过程中以本地受信根证书之一结束。
根证书
让我们看一下微软 IE 预装的 CA。您可以通过工具|Internet 选项|内容|证书|受信根证书颁发机构来检查此内容:

根证书确实有到期日期,但它们通常有非常长的有效期(通常在 10 至 20 年之间)。作为浏览器或操作系统更新补丁的一部分,您将在旧证书过期之前获得新的根证书。如果没有 CA 的根证书,浏览器就无法知道是否接受该 CA 签发的 SSL 证书。这些 SSL 证书被称为 单根 证书。
中间证书
从安全角度来看,根证书的私钥至关重要,应保存在证书提供商的安全数据中心。此外,根证书的公钥会交给像微软和谷歌这样的浏览器,以便将其加入到它们的受信根列表中。如果根证书的密钥被泄露,证书提供商构建的整个证书链将被视为不可信。
中间证书颁发机构是被授权签发证书的实体。从逻辑上讲,根 CA 必须签署所有证书。出于安全原因,中间 CA 代表根 CA 签署证书,但中间证书仍然是由根 CA 签署的。
让我们浏览几个网站,查看一个中间证书。在这个例子中,我已经在 IE 中打开了 www.google.com。我提到过,GeoTrust Global CA [Root] 反映了根签名权限,Google Internet Authority G2 [Intermediate] 反映了中间证书,最后,*.google.com [End Host] 是终端主机身份:

我们再来看一个例子。这一次是www.flipkart.com。这里有两个中间证书,并且按照逻辑,可能会有多个,因为它们是主证书的一个子集。困惑的地方在于当你试图将不同类别和与证书相关的群体进行关联时:

这些类别由供应商定义,但在所有顶级证书颁发机构中基本一致。我们来看看证书颁发机构(CA)向客户提供的不同类别的证书以及这些类别对客户意味着什么。
SSL 证书类别
CA 使用类的概念来定义不同类型的数字证书,但这些类别并未在任何 SSL/TLS RFC 中明确说明。我们来尝试理解不同类别对 SSL 终端用户的意义。
- 1 类:1 类证书在没有任何验证的情况下交付。这也称为域验证(DV)证书,依赖于
WHOIS信息数据库(你必须证明你拥有该域)。DV 证书是低认证产品,不保证网站所有者的身份,也不保证组织的实际存在。它仅表示两个实体通过加密通道进行通信,而彼此互不认识。
注意:攻击者可以通过发起钓鱼网站来严重滥用这一点。用户会假设网站拥有由主要证书颁发机构颁发的有效证书。永远不要对基于网页的应用程序使用低验证的证书。
-
2 类:对于 2 类证书(中等安全级别),需要进行背景调查,包括查看拥有该域名的组织、企业或个人,并确认其存在。这些通常被称为组织验证证书。
-
3 类:这些是客户端证书(扩展验证高安全性),在审核后交付。它们会检查组织的详细信息,包括通过多个可信来源验证物理地址和证书所有者。
-
4 类:4 类证书用于公司之间的在线商务交易。
-
5 类:5 类证书是为私营组织或政府安全而设计的。
TLS 与 SSL
TLS 和 SSL 都是为基于 Web 的应用程序提供数据加密和身份验证的安全框架,以确保数据保护。SSL 和 TLS 握手是一个 Web 应用程序的机制,它发生在客户端和服务器之间的 TCP 握手之后。握手本身并不加密任何内容,而是实际协商一个共享的密钥和加密类型,双方达成一致。
在下图中,我们可以看到,在 TCP 和 SSL 握手开始后,安全客户端向服务器发送了一个带有支持加密算法的“hello”消息。服务器响应一个支持的最高加密算法,并分享其证书及公钥:

让我们看一下 Wireshark 来验证。客户端将所有可用的加密套件发送给服务器,标记在黑框中:

在服务器的 hello 消息中,服务器会发送它能用于安全的最高加密算法,显示在黑框中:

公钥基础设施
公钥基础设施(PKI)是指提供两个节点在不安全的基础设施上进行安全数据交换的过程和技术。它通过使用私钥和公钥对来实现基础的安全服务。
有三种类型的加密算法:
-
对称
-
非对称
-
哈希函数。
对称加密
在对称加密中,使用一个密钥同时进行加密和解密。对称加密速度快,简单且易于实现。然而,一些简单的加密算法容易受到暴力破解攻击,使得管理变得复杂。如果密钥被泄露,整个系统都会变得脆弱。数据加密标准(DES)和高级加密标准(AES)是对称加密系统,但 AES 比 DES 更加可靠。
对称加密方案有五个要素:
-
明文:指需要加密的原始数据。
-
加密算法:指的是用于加密数据的密码组合。
-
安全密钥:指的是加密算法中的输入。
-
密文:指的是输出和格式,它取决于明文和密钥输入。
-
解密算法:该算法与加密相反 - 密文变为输入数据,输出变为原始明文:

非对称加密
非对称加密也称为公钥加密,相较于对称加密,这是一种相对安全的方法。在这种方法中,使用两个密钥,一个用于加密,另一个用于解密。公钥顾名思义是公开的。它会在 SSL 握手过程中提供给浏览器。当访问 Web 服务器时,公钥会被使用。另一方面,私钥必须保持机密,并且对其拥有者保密。假设客户端生成了一个密钥,使用服务器的 RSA 公钥加密后发送给服务器,服务器再用其私钥解密。保护私钥非常重要,因为如果密钥丢失,系统将无法使用:

两种最流行的非对称加密算法是:
- Rivest-Shamir-Adleman (RSA):这是最广泛使用的非对称加密算法。让我们查看 SSL 证书来验证正在使用的算法。在证书详情下,你可以看到公钥值是 RSA (2048),这表示使用 RSA 加密:

- 椭圆曲线密码学 (ECC):在第二个示例中,你可以通过查看证书详情看到公钥值是 ECC。ECC 正在业界逐渐获得关注,作为 RSA 的替代方案:

哈希函数
哈希是从文件内部信息生成的数字,可能是一个明文文件。生成的字符串长度固定,并且在输入发生微小变化时,输出结果会有很大不同。哈希与加密不同,它不使用加密和解密数据的过程。然而,哈希是一个单向函数,它将明文数据混淆成一个独特的消息摘要。通过合理设计的算法,哈希过程是单向的,因此无法反转哈希过程以揭示原始密码:

让我们理解其工作原理。
用户在浏览器中输入密码和用户 ID,并通过安全通道将其发送到认证服务器。服务器使用用户 ID 查找相关的消息摘要。用户提交的密码将使用相同的算法进行哈希处理,如果生成的消息摘要与服务器上存储的相匹配,则密码验证成功。
一些流行的哈希算法包括:
-
MD 家族:MD2、MD4 和 MD5(1989 -1992)。这些都是 128 位的哈希函数。MD5 是最著名的哈希算法。MD6 也曾进入业界,但从未获得广泛使用,最终被 SHA3 取代。
-
SHA 家族:SHA 有四个版本,包括 SHA0(最脆弱)、SHA1(最流行)、SHA2(广泛部署)和 SHA3,后者在 2012 年推出。
-
AES 家族:AES 有三个块密码,包括 AES-128、AES-192 和 AES-256。每个密码算法使用 128、192 和 256 位的加密密钥,以 128 位块对数据进行加密和解密。
针对 PKI 的攻击
如果你问任何安全专家 PKI 是否 100% 安全,答案将是一个大大的 不——安全专家时不时会提出一些问题和担忧。我将从 CA 证书和私钥的管理开始讨论。互联网充斥着数十亿的网站和服务,因此存在多个证书颁发机构。推出新标准需要多年时间,因为这会影响整个安全生态系统。
作为一个系统,PKI 不过是数学而已。一旦有人破解了这个公式,行业将推出一个新的公式,看起来更强大、更安全。但这能维持多久呢?另一个主要问题是私钥的安全。通常情况下,你作为客户端会在自己的机器上生成私钥对,然后将 CSR 发送给 CA,作为证书请求的一部分。在某些情况下,允许 CA 生成密钥对并发送给你也是个不错的选择。如果私钥丢失,CA 可以为你提供私钥。
让我们看一下最近发生的一起事件。在这起事件中,成千上万的客户收到了来自安全公司 DigiCert 的邮件,告知他们的 SSL 证书由于 Trustico 的安全漏洞而被吊销。如果证书当前处于有效状态,这将意味着客户开始收到不受信任的证书警告。根据官方声明,23,000 个私钥已被泄露。此事件主要影响了使用 Trustico 网站生成私钥/公钥和 CSR 的客户。
你永远不应当信任任何人你的私钥。私钥应该仅在你希望安装证书的服务器上生成并妥善保管。
你还可以访问www.ssllabs.com/ssl-pulse. SSL Pulse 是一个持续更新的全球仪表盘,用于监控 150,000 个启用了 SSL 和 TLS 的网站的 SSL/TLS 支持质量,数据来源于 Alexa 世界上最受欢迎的网站列表。
微软 Windows 和 IIS
在本节中,我们将讨论使用 Microsoft IIS 安装 SSL 证书:
-
启动 IIS 管理器并双击服务器证书。
-
选择操作菜单(右侧),点击创建证书请求:

这将打开请求证书向导:

在加密服务提供者属性窗口中,保持两个设置为默认值(Microsoft RSA SChannel 和 2048),然后点击下一步:

输入一个文件名和保存 CSR 的位置:

你现在可以打开文本文件来检查 CSR 请求。此文件应提交给 CA 以接收签名:

OpenSSL
OpenSSL 是一个开源项目,包含一个加密库和一个 SSL 工具包。
根据该项目官网的描述,OpenSSL 项目是:
“一个合作努力,旨在开发一个强大、商业级的,
功能齐全且开源的工具包,实施 安全套接层(SSL)和 传输层安全性(TLS)协议,以及一个全功能的通用加密库。该项目由一个全球性的志愿者社区管理,社区成员通过互联网沟通、计划并开发 OpenSSL 工具包及其相关文档。
OpenSSL 库可以用来创建证书请求(CSR)、自签名证书,甚至作为 CA 签发证书。如果你在运行一个小型或企业组织,并且能够将根信任证书导入所有计算机系统,你就可以成为自己的 CA,并自行签发证书。
例如,我将使用我的 Ubuntu 服务器。这是一个较旧的版本,但当然你可以选择升级它:

最新版本可以从 OpenSSL 官方网站下载:www.openssl.org/source/:

在 Ubuntu 服务器上,你可以在 /usr/lib/ssl 路径下找到文件:

让我们看看如何生成私钥和 CSR:
- 首先,我们将生成私钥。这将是一个 RSA 2048 密钥。不过,你也可以选择 DSA 或 EC 密钥。要求提供电子邮件地址、可选的公司名称和挑战密码的字段可以留空:

- 在第二步中,你将被要求提供证书所需的信息,如组织、州、组织名称、FQDN 和电子邮件地址:

现在,私钥和 CSR 可以在同一文件夹中找到:

这只是一个概述。欲了解更多信息,可以访问 www.openssl.org/ 或官方网站。
SSL 管理工具
根据我个人的经验,管理证书时最常见的问题是证书到期。对于小型组织来说,手动跟踪是可能的,但这会是一项繁重的工作。最好有一个自动化框架来监控所有服务资产的证书到期/续期。
一些非常著名的 SSL 管理工具包括:
-
SolarWinds SSL 证书管理
-
Qualys CertView
总结
本章作为了解 PKI 世界的导论。章节从用户的角度出发,介绍了 SSL 的基本原理,并讨论了 SSL 如何用于基于 Web 的应用程序。我们还介绍了可以用来生成强证书的功能和算法。此外,我们还看到了如何为 Windows IIS 生成证书,并了解了如何使用 OpenSSL 工具。本章还让你了解了 PKI 面临的威胁,以及如何采取防护措施来提升用户体验。
在下一章中,我们将讨论防火墙作为一种安全设备,并探讨它在网络基础设施中的作用。
问题
-
SSL 的全称是:
-
串行会话层
-
安全套接字层
-
会话安全层
-
系列套接字层
-
-
运输层提供安全性的是哪个?
-
SSL
-
TLS
-
(1)或(2)
-
(1)和(2)两者都
-
-
SSL 支持的应用程序的标准 TCP 端口是什么?
-
420 -
1032 -
443 -
322
-
-
如何识别一个安全网站?选择所有正确的答案。
-
http -
https -
开放的挂锁
-
锁定的挂锁
-
深入阅读
欲了解更多信息,请参考以下链接:
第十章:防火墙部署和检测技术
在上一章中,我们学习了有关 SSL 的所有内容。我们还探讨了 SSL 如何提供认证、机密性和完整性,以实现传输层安全性。
本章简要概述了防火墙技术,介绍了防火墙在网络中的部署及其提供的服务。在本章中,您将探讨不同一代的防火墙及其应用场景。您还将了解防火墙在网络中的作用,以及它能做什么和不能做什么。此外,本章还涵盖了 TCP/IP、Traceroute、扫描工具、防火墙设置、测试、维护防火墙的最佳实践等内容。我们将讨论以下主题:
-
防火墙和设计考虑因素
-
DMZ 安全设计
-
TCP/IP 与 OSI 模型
-
防火墙性能、能力和功能
技术要求
您需要一台安装了 hping 的 Unix 或 Linux 机器,并具备 TCP/IP、防火墙和 IP 通信的基础知识。
防火墙和设计考虑因素
安全性是任何安全网络设计中最重要的考虑因素。有许多方法可以确保网络安全,而防火墙技术是实现网络安全的最重要手段之一。
防火墙这个术语早在 1764 年就已使用,描述的是将建筑物中最容易发生火灾的部分(例如厨房)与建筑的其他部分隔离开的墙壁。防火墙有两种类型:一种基于硬件,另一种基于软件。硬件防火墙是专用硬件设备,用于保护网络的一部分或一个区段,而软件防火墙则运行在操作系统之上,用于保护主机。
防火墙保护策略完全依赖于防火墙管理员的专业知识和防火墙硬件的效率。安全规则和管理策略是访问控制策略中最关键的任务。IP 通信基于五个基本元组,对于每条防火墙规则,您需要一个有效的源地址、目标地址、源端口、目标端口和传输协议(TCP 或 UDP),以及允许或拒绝的操作。
企业最常实施的解决方案是基于防火墙技术的组合,如数据包过滤、虚拟私人网络(VPN)和网络地址转换(NAT)。
防火墙术语
在详细讨论防火墙之前,您必须理解基本术语:
-
IP 地址:IP 地址是互联网上主机的身份,通过路由协议在网络之间实现可达性。有两种类型的 IP 地址:IPv4(32 位,分为 A、B、C 或 D 类)和 IPv6(128 位,具有单播地址、任播地址或多播地址)。例如,IPv4:
200.10.20.1,IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334。 -
端口:任何托管在操作系统上的应用程序都会通过标准端口在网络上提供服务。当访问互联网上的任何应用程序时,源端口会打开一个动态端口,而目标端口则使用标准已知端口。例如,HTTP 使用端口
80,FTP 使用端口22,Telnet 使用端口23。

-
协议:协议是用于在本地网络、互联网、内部网和广域网中的网络主机间交换数据的标准方法和相互协议。
-
元组:5-元组这个术语指的是在任何给定的 IP 数据包中包含的五个项(源和目标 IP、源和目标端口、协议)。防火墙策略使用这些元组来定义防火墙规则,决定是否阻止或允许流量。
防火墙的代际发展
防火墙是一种网络安全设备,基于一套定义明确且高级的安全规则,监控和控制所有进出网络的流量。让我们讨论一下防火墙的发展历程及其功能。
- 数据包过滤:第一代防火墙——这些防火墙相对便宜,采用一种简单的过滤功能,称为静态数据包过滤,也被称为无状态防火墙。在防火墙术语中,无状态指的是对进出流量进行规则检查,因此,防火墙设备不会保持任何会话或连接状态。
基本上,数据包过滤在第 3 层(IP 层)和第 4 层(传输层)执行,通过将数据包的头部字段与四个元组进行匹配:源和目标 IP 地址、端口和传输协议(TCP/UDP)。一个好的例子是将其与路由器和访问控制列表相联系,用于控制进出流量。
1988 年,数字设备公司(DEC)开发了第一个防火墙系统,称为数据包过滤防火墙。基础数据包过滤防火墙容易受到 IP 欺骗攻击,因为它们不维护连接状态,因此攻击者可以利用这一点进行攻击。
-
有状态防火墙:第二代防火墙——这些防火墙具有与第一代相同的功能,但增加了监控和存储会话及连接状态的能力。对于任何连接,数据包匹配是双向的,这意味着发送的数据包与返回数据包的属性进行匹配,以确认它们属于同一个数据包流。与在无状态设备中双向放置访问控制列表不同,防火墙会根据数据包流的情况允许返回的数据包。它会查看 TCP 头部信息中的 SYN、RST、ACK 和 FIN 标志来确定连接的状态。
-
应用网关:第三代防火墙——应用网关防火墙基于深度数据包检查来理解应用程序(第七层),并充当服务器和客户端之间的代理。这些代理会丢弃可疑的数据和连接。由于它们了解应用程序,它们可以处理更复杂的协议,如 Web、H.323、SIP、FTP、SQL Net 等。应用网关的缺点是建立代理连接需要两个步骤,才能连接到入站或出站连接。简单来说,用户需要连接到应用防火墙,而不是直接连接到主机。
-
下一代防火墙(NGFW):下一代防火墙的核心功能是深度数据包检查(DPI),它包含像 NAT、VPN 和内容过滤这样的标准功能。DPI 功能允许防火墙深入检查数据包,使用协议识别方法。这些识别基于应用程序的特定参数,而不是基于端口的应用程序识别。这也可以基于 IPS 引擎和签名阻止复杂的网络攻击。安全策略或规则可以基于应用程序和网络协议进行实施。
SDN 实现也在遵循类似的方法,通过控制策略来阻止或允许跨多个网关传输的流量,这些网关安装在不同位置。这些策略是基于应用程序的,而不是基于 IP 和端口的。我们获得的灵活性意味着我们可以集中控制器,并且可以在网络上路由应用程序。
由于具有 DPI 功能,下一代防火墙(NGFW)提供的不同安全服务可以协同工作,从而提供比有状态数据包检查(SPI)防火墙更高的安全性:

让我们来看看如何选择一款适合企业和性能标准的防火墙。
防火墙性能
防火墙的性能是在不同的流量负载下进行测试的,考虑到不同的度量标准来评估防火墙性能。具体的度量标准如下:
-
吞吐量:这是每单位时间接收到的实际负载
-
延迟:这是数据包从源头到目的地传输的时间
-
抖动:这是衡量接收数据包延迟变化的指标
-
数据包丢失率(PLR):这是丢失数据包与总传输数据包的比例
如果您正在升级防火墙或购买新的下一代防火墙,如何选择适合您业务的防火墙?供应商总是告诉您他们的防火墙产品有多好,并贬低其他产品,因此很难直接向他们寻求建议。
你应该首先确定一个功能列表和性能水平,然后决定你希望在其基础上添加什么扩展功能或特性。当然,你还应该考虑预算。
安全性考虑问题:
-
流量是否始终在两个方向上进行扫描?
-
所有端口默认是否开放?
-
深度包检测是否默认开启?
-
IPS 和应用控制可以一起运行吗?
管理性考虑问题:
- 是否提供事件分析仪表板?
性能考虑问题:
-
供应商所声称的性能是否基于真实流量?
-
是否对大量安全策略进行过测试?
功能性考虑问题:
-
我需要 VPN 吗?
-
我的网络吞吐量是多少?
-
我需要什么样的许可证和规模——SOHO 还是企业版?
-
我需要高可用性吗?
-
我应该使用软件设备还是硬件设备?
-
防火墙是否支持虚拟化和路由?
-
会话的总数是多少?
-
防火墙是否提供 SSL 吞吐量和远程访问连接?
这些是一些示例问题。根据这些问题的答案,你可以为你的网络选择最佳的防火墙。
防火墙位置和设计网络拓扑
当我们谈论防火墙部署架构时,你有两个选择:单一防火墙或多层防火墙。
单一防火墙架构
单一防火墙在网络中的位置取决于多个因素,如 IP 子网数量以及防火墙后面提供和托管的服务。我们来看几个场景。
单一防火墙架构与单一 IP 子网
在以下图示中,单一防火墙位于 WAN 路由器下方,所有流量都通过此防火墙传输。所有服务器都托管在单一子网中,并由防火墙提供平等的安全保护,从而实现与互联网的隔离。如果服务器之间不需要进一步的隔离,并且不造成重大风险,那么使用单一子网的防火墙可能是合理的:

单一防火墙架构与多个 IP 子网
如下图所示,一种隔离网络资源的简单方法是在不引入另一套防火墙的情况下,使用配置了多个子网的多个接口。在这个设计中,Web、应用程序和数据库服务器被放置在不同的子网中,使用不同的 IP 子网,并且在接口上配置了不同的安全级别。假设只有一台 Web 服务器需要暴露到互联网,其他服务器则通过内部网络与 Web 服务器通信。通过输入防火墙规则,可以轻松配置和控制这一点。通过将 Web 服务器暴露到互联网并允许互联网子网策略,可以实现这一点。如果防火墙由于配置错误被攻破,攻击者可能会访问所有子网:

多层防火墙架构
多层防火墙安全布局是网络安全策略的一部分。将所有服务都放在一个防火墙后面可能存在风险,并且存在单点故障的隐患。让我们来看看防火墙沙拉安全设计,如何在多层安全保护下保护关键资产:
防火墙沙拉设计
企业网络中经常会部署多层防火墙或沙拉设计拓扑。与其将接口专门分配给不同的子网,不如为服务器角色配置独立的防火墙。在这种设计中,基于角色的应用被夹在防火墙之间,并且专用防火墙根据应用架构和安全策略调节相邻子网之间的通信。该架构的基本理念是为简单管理专门设置防火墙角色,并寻找支持不同应用段流量的硬件最佳规格:

非军事区
非军事区(DMZ)是你的前线,保护重要资产免受不信任环境的直接暴露。换句话说,DMZ 通常是一个暴露于互联网的安全网络段,您可以在其中放置像 web 服务器这样的有价值资源(最常见的互联网应用),通过增加一层额外的安全性来增强应用程序的安全性。仔细规划和设计 DMZ 非常重要,因为在处理生产流量时,修复漏洞可能并非易事。
那么,如何设计 DMZ 呢?大多数时候,管理员会把精力集中在 DMZ 安全性上,只关注DMZ 的安全,而忽略了内部数据通信的安全,这些通信用于访问有价值的信息。内部应用访问 DMZ 的路径应尽可能严格限制。
DMZ 到内部访问策略
内部系统存储着重要数据,不直接暴露在互联网上,但 DMZ 在两者之间起到了代理作用。试想一下,如果 DMZ 服务器被攻破,而内部局域网又没有任何防护,在这种情况下,攻击者可能会找到进入网络的方式。
我们来看一下在 DMZ 中设置 web 服务器的示例。
您必须为您想要保护的内容设定一个基准,并考虑可扩展性、可用性和灵活性。您可以自由选择用于设置 DMZ 的防火墙数量,但两个防火墙是一个不错的起点。使用两个防火墙,您可以将前端服务器放置在外围防火墙(DMZ)后面,并将内部资源放置在另一个防火墙后面。
在这个设计中,您还可以有多种场景。我会尽力覆盖这些场景。可以使用私有 IP 配置 Web 服务器,并通过 NAT 将其转换为公共 IP 以便互联网可访问。然而,您也可以直接在服务器上配置公共 IP。Web 服务器可以配置为双网卡,前端网卡(FE NIC)和后端网卡(BE NIC)。来自互联网的连接将终止于前端网卡,之后会建立新连接以访问应用程序和数据库服务器。由于这是一个 Web 服务器,DMZ 防火墙只需要对端口80或443设置规则。Tier-1 防火墙上的端口1433将允许 Web 与应用程序和数据库服务器之间的连接,假设它是一个 SQL 服务器。
在这个图中,您可以看到已经为公共 IP 2.2.2.2上的 Web 服务器建立了一个新连接,端口为80。一旦该连接到达前端防火墙,NAT 规则将把此连接转换为 Web 服务器的真实 IP 10.10.10.1。是否使用单一或双接口 IP 进一步连接数据库服务器,现将取决于网卡设计:

我真的需要双网卡吗?当基于单网卡或双网卡时,这种设计也是可行的。考虑到单网卡可能需要调整路由、交换和 NAT 语句以便在私有 IP 空间之间通信,双网卡设计更为安全。双网卡提供了额外的物理层隔离,从而实现更高的安全性。
话虽如此,DMZ 是您网络安全架构中的一个重要部分。
您需要一种方法将服务暴露给互联网世界,但需要以受控且安全的方式进行。要成功创建 DMZ,需要对访问策略和防火墙检测配置有正确的理解。
OSI 模型与 TCP/IP 模型
在讨论防火墙如何工作之前,我们必须首先了解网络中各个层级如何交互。网络通信基于七层模型,每一层都有自己的职责,以实现通信。防火墙可以在不同层级上运行,以使用不同的标准来阻止或允许流量。
一般来说,防火墙必须在网络层(L3)和传输层(L4)上运行。上层则更像是扫描数据负载中的病毒并进行深度包检测。第 1 层物理层基本上仅仅是网络连接的要求。
TCP/IP,也被称为由国防部(DoD)开发的互联网模型,是一个简化且实用的开放系统互联(OSI)模型(1984 年),该模型基于一个理论概念。
OSI 模型基于服务器层级及其具体功能。下图展示了各个层级及其功能:

前述图中的各个层级如下:
-
物理层:该层通过物理介质连接网络节点,并将比特编码为电信号。
-
数据链路层:该层负责物理介质上的错误检测和流量控制。
-
网络层:该层负责 IP 路由、交换和网络 IP 地址分配。
-
传输层:该层负责传输协议 TCP/UDP 及错误处理。
-
会话层:该层负责连接建立和数据流。
-
表示层:该层负责数据的标准格式,以及加密和解密。
-
应用层:该层提供直接面向用户应用程序的服务,供最终用户通过网络访问。
让我们来看一下 OSI 模型和 TCP/IP 模型之间的区别。在图的右侧,我们可以看到 TCP/IP 模型有四层,包括网络接口层、互联网层、传输层和应用层。TCP/IP 采用自上而下的方法,而 OSI 模型采用自下而上的方法。由于层数较少,这使得它看起来相对简单:

防火墙的性能、功能和作用。
到目前为止,我们已经讨论了防火墙的基本功能。还有许多其他功能可以用于多种用途。以下是这些功能:
-
URL 过滤:随意上网可能会使网络暴露于恶意软件,从而对组织的安全性造成风险。URL 过滤是一种通过比较网络流量与数据库中的数据来限制访问的方式,从而防止员工访问无效的 URL 或内容。
-
病毒和恶意软件保护:NGFW 配备了内建的防病毒引擎和恶意软件保护,能够检查流量并发现恶意感染的文件。
-
集成 IPS/IDS:在传统的企业网络中,IPS/IDS 的部署通常作为独立设备。下一代防火墙配备了 IPS/IDS 模块,并可以根据需求启用或禁用。需要考虑的最大问题是我们希望通过 IPS/IDS 设备传输多少流量,并且这些模块应该支持该流量。
-
服务质量(QoS):QoS 是一个网络框架,确保高优先级应用程序的带宽能力。流量可以根据 DSCP 包标记、应用端口、源和目标 IP,以及深度包检测来进行分类,以检测基于应用的方法。
-
远程访问(VPN):通过防火墙代替专用设备来终止 VPN 连接是一个可行的方案。VPN 有多个版本——企业总部与远程位置之间的连接通常基于站点到站点的 VPN。远程访问 VPN 如 SSL、Web VPN 和 IPsec VPN 客户端允许个人用户远程连接企业网络。
-
高可用性 (HA):这是一种将两个或更多防火墙放入同一组并同步其配置,以防止网络中的单点故障的部署方式。高可用性可以通过将防火墙置于活动-被动模式或活动-活动模式下,通过共享流量来实现。
-
虚拟化:这是防火墙在虚拟化上下文模式下操作的另一个重要功能或特性。可以根据需求形成拓扑结构,并且上下文可以在活动-被动或活动-活动模式下运行。这在需要客户之间隔离的托管环境中效果最佳。请参考产品文档以查看哪些功能在虚拟化环境中受支持。
防火墙管理
防火墙保护企业网络,并在外围防御中发挥关键作用。大多数数据泄露事件都是由于配置错误引起的。因此,企业必须将管理员访问权限交给专家,并避免将安全设置为自动驾驶模式。必须提供实时仪表盘,以便持续监控网络防火墙流量,在损害发生之前识别和响应威胁。
必须实施一些最佳实践,以确保防火墙的正常运行:
-
变更控制策略:防火墙规则或策略变更本质上是非常动态的,并且在适应基础设施环境中的新变化或响应新威胁或漏洞时大多是不可避免的。
-
定期审计配置:审计是确保防火墙补丁保持最新并确保设备符合 SOX、PCI-DSS 和 HIPAA 等标准的要求。
-
防火墙规则整合与优化:随着时间的推移,防火墙将积累成千上万的规则和策略,其中许多规则会变得过时或废弃。这会增加日常任务、故障排除和审计的复杂性,并可能导致防火墙设备的性能问题。通常建议根据应用程序将规则整合成组,并从策略中移除未使用的规则。
-
威胁检测签名更新:威胁检测是基于攻击中发现的模式。在日益增长的互联网环境中,每天都会检测到新的威胁。因此,更新签名和微调策略以避免误报变得非常重要。
应用代理
应用代理(有时称为应用层网关)通常作为中间层。这些代理应用程序运行在防火墙之上。用户通过 Telnet、FTP 或 Web 连接等应用程序连接网关。系统会提示用户输入要访问的资源,并要求验证其凭证。经过成功认证后,网关将建立与远程应用程序的连接,并在应用程序与最终用户之间转发数据。由于应用网关能够感知应用程序,因此从网关管理的角度来看,它变得非常容易。在典型的防火墙中,端口要么关闭,要么打开,且策略由管理员定义。
在下图中,你可以看到 Tom 将根据配置为 ALG 防火墙的规则进行身份验证,这使得 Tom 可以访问运行在 20.20.20.1 上的应用程序。所有其他连接将被拒绝:

应用网关的最大限制之一是它需要为每个网络服务提供一个单独的应用程序。因此,必须检查防火墙供应商支持哪些服务。ALG 的另一个缺点是每个连接都会增加额外的处理开销。
检测防火墙
防火墙保护从小型到大型的基础设施网络免受恶意攻击和不必要的流量。但如果认为输入防火墙就能解决所有问题,那就是错误的。漏洞是任何硬件和软件设备的一部分。最大的漏洞是防火墙的配置错误。一个配置良好、结构设计合理、更新及时且维护得当的防火墙几乎是不可能被突破的。
有几种方法可以帮助你检测位置
防火墙。一个非常简单的方法来定位防火墙是通过 traceroute(Unix 工具)或 tracert(Windows 工具)。
让我们简要了解一下 traceroute 的背景以及它是如何工作的。人们通常说 traceroute 使用 ICMP,这部分是正确的,因为 ICMP 用于错误消息报告。ICMP、UDP 和 TCP 都是第四层协议,IP 数据包包含一个字段 生存时间(TTL)。TTL 字段为 8 位,最大值为 255 跳。不同的操作系统使用不同的值。例如,Windows 10 默认使用 128。这里有一种快速的方式可以从命令提示符查找默认值并 ping 本地主机。每当数据包通过路由器或 L3 设备时,TTL 值会减少 1。

这里有一种快速的方式,可以从命令提示符查找默认值并 ping 本地主机。我是在我的 Windows 10 计算机上进行的。你也可以通过 Windows 注册表获取或调整该值:

假设 ICMP 是开放的:查看 traceroute 结果。我从一个在线 trace 门户获取了这个信息,显示最后一跳是 182.168.6.81。之后,ICMP 似乎被防火墙阻止:

这是另一个不基于 ICMP,而是基于端口 80 上的 TCP 的 traceroute,并到达最终的服务器。当您比较两者时,您可以看到 ICMP 被防火墙过滤:

事实上,没有任何方法是 100% 准确的。它们只是为您提供更多信息,以便您可以更准确地猜测是哪台机器在过滤数据包。
一个非常流行的防火墙 Cisco ASA 默认不会执行 TTL 减少,我们必须手动执行这些操作,以便在进行 traceroutes 时查看 ASA 的接口。
Firewalking 是一种用于发现受防火墙保护的远程网络信息的技术。Firewalking 在后台使用 traceroute 分析来确定数据包是否可以通过数据包过滤设备传递到目标主机。
防火墙执行 NAT/PAT 功能,多个应用程序可以通过一个公共 IP 在互联网上提供服务。您可以看到一个公共 IP 20.20.20.10,它与不同端口号上的内部 IP 进行映射。这称为 NAT 操作,由防火墙执行。通过这种方式,您可以创建远程网络的网络拓扑:

调试工具
使用以下调试工具:
-
ICMP Ping 扫描:在检查网络中的任何设备时,第一个想到的通常是测试基于 ICMP 的扫描。其工作原理是发送一个 ICMP 请求包,并期待 ICMP 回显回复。其基本思路是获取网络中的在线主机,然后针对这些在线主机启动端口扫描器。Angry IP Scanner 是一个非常流行的网络扫描工具。ICMP 的问题在于网络管理员可以在网络或主机层阻止 ICMP。您还可以轻松创建一个 IP 扫描器脚本,扫描其定义范围内的 IP。
-
TCP Ping 扫描:我们已经了解到 ICMP 可能被阻止,因此现在并不非常可靠。然而,代替使用 ICMP,可以通过远程主机发送 TCP syn 到特定端口来进行 ping 探测。然后,您将收到一个 TCP syn-ack 的回复。如果您希望保持您的应用程序在线,这将无法被网络管理员阻止。
-
ARP Ping:您可以使用像 NMAP 这样的工具进行 Ping 扫描,如果您在本地子网使用它,它会使用 ARP Ping 而不是 ICMP。NMAP 默认会这样做。
-
NAMP:NAMP 可以为您做多项工作,从扫描主机开始。它甚至可以通过漏洞扫描的轻量级功能来检测远程主机的操作系统。
-
Hping:Hping 主要用作安全工具,可以用于防火墙测试、端口扫描、网络测试、MTU 发现、进阶跟踪路由和操作系统指纹识别。该工具让你能够构造数据包。我正在使用 Ubuntu 服务器,并且需要安装 hping 包:

让我们看看如何在端口扫描模式下运行此工具。语法包含 0-100(端口范围待扫描)、-S(发送 SYN 包)和4.2.2.2(待扫描主机的 IP 地址)作为参数。结果显示,DNS 端口是开放的,这是正确的,4.2.2.2是一个 DNS 服务器,因此结果是预期的:

- TCP 连接扫描:TCP 连接可以用作端口扫描,这是一种更简单的探测远程主机的方式。此方法涉及到完整的 TCP/IP 连接,逐步与目标主机的所有 TCP 端口建立连接。TCP/IP 作为协议是可靠的,因此这种端口扫描是一种非常可靠的方式,用于确定给定目标主机上哪些 TCP 服务是可访问的。
在这个例子中,nmap工具将尝试以两种方式连接到远程主机。第一种方式是通过语法参数(-sS),这意味着会完成一个三次握手。另一种方法是使用一个(-sT)工具,像浏览器这样的应用程序在后台连接到远程主机:

如果目标端口关闭,源主机将直接接收到一个 RST/ACK 数据包。
总结
本章向你展示了防火墙的基础知识和防火墙系统的设计考虑因素。你了解了不同代防火墙及其功能,并学习了如何设计一个好的防火墙系统。这可以是设置一个基本的包过滤防火墙,也可以是使用带有 DMZ 的有状态防火墙、ALG 认证用户连接、身份验证用户连接、使用不同的扫描技术探测防火墙后面的主机,以及利用许多其他功能等复杂操作。
在下一章中,我们将讨论公共互联网基础设施中的 VPN 以及 IPsec 框架中的不同属性。
问题
-
以下哪些是防火墙类型?
-
包过滤防火墙
-
应用层网关
-
屏蔽主机防火墙
-
所有提到的
-
-
应用代理防火墙过滤的位置是:
-
物理层 1
-
数据链路层 2
-
网络层 3
-
应用层 7
-
-
这个 8 位值标识了数据包在系统中可以停留的最大时间,超过这个时间后会被丢弃:
-
分段
-
存活时间
-
协议
-
校验和
-
进一步阅读
欲了解更多信息,请访问以下链接:
第十一章:VPN 与 WAN 加密
在上一章中,我们通过研究防火墙和防火墙网络设计以及其部署方式来讨论了数据保护和安全技术。在本章中,我们将重点关注在通过公共互联网基础设施或服务提供商共享的网络基础设施传输数据之前保护数据。
在本章中,我们将讨论以下主题:
-
概述
-
VPN 的分类
-
VPN 协议类型
-
VPN 设计
-
IKE V1 与 IKE V2
-
WAN 加密技术
概述
数据是新的货币或石油。它可以在你的购物模式、电子邮件、网上银行、订餐等许多地方找到。每年,我们都遇到像网络威胁、非法监视(维基解密)和反隐私倡导等问题,攻击这些领域。在像互联网这样的互联世界中,保护数据时,安全性和隐私至关重要。作为终端用户,我们无法全面了解我们每天使用的公共互联网基础设施。幸运的是,我们有虚拟私人网络(VPN),这是一种在两个或多个支持 VPN 的设备之间形成安全隧道的屏障。VPN 有助于保护数据流量免受窥探或中间人攻击。然而,为了选择最好的 VPN 服务,我们首先需要了解不同类型的 VPN 及其使用场景。
VPN 有很多使用场景。一个非常常见的理由是,VPN 可以用于移动用户或分支机构与总部之间的安全通信,因为它提供了对企业 IT 资源的安全访问:

你的本地 ISP 作为互联网访问的网关,你的活动可以通过它被追踪。就像你尝试访问任何资源时,资源提供方也可以根据你的 IP 地址追踪你的所在位置。这将是另一种使用案例,在这种情况下你通过使用第三方 VPN 来隐藏自己的身份。在下面的示意图中,你可以看到一个坐在马尼拉的用户可以连接到一个全球资源,而这个资源可能会被马尼拉的本地 ISP 封锁:

这些 VPN 可以以应用程序格式提供,或内置于浏览器中。一些组织还提供完整的隧道功能。在这种情况下,一旦你连接到企业 VPN,你通向互联网的出口点将是你所在组织的互联网网关。
VPN 的分类
VPN 信任用户通过公共基础设施网络安全地连接到私有资源,而这些公共基础设施网络是我们不信任的。VPN 创建一个加密连接(称为安全 VPN 隧道),所有数据流量都通过这个安全隧道传输。
让我们考虑几种不同的 VPN,并思考它们的适用场景。我们将重点讨论两大类 VPN,我将其称为远程访问 VPN 和基于网络的站点到站点 VPN:
- 远程访问 VPN:这是一个完美的解决方案,适用于需要连接到企业网络以远程访问 IT 资源的用户。例如,远程工作者、移动用户和外联网用户。用户与公司网络之间的连接通过互联网进行。VPN 可能要求用户安装 VPN 客户端防火墙供应商的特定软件,或者可能要求使用基于网页的客户端。VPN 客户端软件与 VPN 服务器形成一个安全隧道,并在将信息通过互联网发送到 VPN 服务器之前对其进行封装和加密。IPSec 或隧道协议可以用来在网络的端点之间建立隧道。VPN 技术提供了 IPSec 和 SSL,这是部署远程 VPN 的两种最著名和广泛应用的方法。
远程访问 VPN 用户必须拥有 AAA 配置文件,以控制访问和授权。
- 站点到站点 VPN:站点到站点 VPN(通常称为点对点 VPN)主要用于企业领域,为不同地理位置的分支机构和合作伙伴的办公室提供 IT 资源访问。当同一组织的远程办公室通过站点到站点 VPN 连接时,它被称为基于内联网的 VPN。如果目的是为合作伙伴的域提供连接,则被称为外联网 VPN。
VPN 协议类型
VPN 类型通过各种隧道协议区分,如 PPTP 和 L2TP 与 IPSec。每种 VPN 协议提供不同的功能和安全级别。
点对点隧道协议
PPTP 仍然是一个流行的网络协议——特别是在 Windows 计算机上——它是最古老的仍在使用的协议之一。该协议由微软开发,用于封装另一种名为点对点的协议。PPTP 使用底层认证协议,如 MS-CHAP(挑战握手认证协议(CHAP))——v1/v2,但这些协议存在严重的安全漏洞。PPTP VPN 使用 128 位加密来加密数据,这使其成为最快的,但在安全性方面是最弱的。
层 2 隧道协议
L2TP 是通过将层 2 转发协议(L2F)的特性(由思科设计)与 PPTP 的特性(由微软设计)结合开发的。由于 L2TP 本身不提供保密性和加密功能,因此需要与另一个协议——IPSec 一起使用,以确保连接的安全性。对于终端主机客户端,不需要安装软件,因为几乎所有操作系统都提供内置的 VPN 客户端。256 位加密是 L2TP VPN 的强制性附加项。由于双重封装,L2TP 是一个 CPU 处理器密集型的协议。第一次封装发生在 L2TP VPN 工作时,然后再加上第二次 IPSec 封装。
让我们来看看 Windows 10 内置的 VPN 选项:您可以选择使用带有预共享密钥和证书的 L2TP:

安全套接字隧道协议
基于 VPN,安全套接字隧道协议(SSTP)最适合用于需要高度保密的在线活动,如银行交易、电子商务交易或商务通信。SSTP VPN 是微软的 SSL VPN,运行在443端口上,这个端口可能不会被任何 ISP 阻塞。SSTP 带有集成的网络访问保护(NAP)支持,用于客户端健康检查,包括防病毒和防火墙。与其他 VPN 协议不同,SSTP 从客户端到服务器建立一个单一的 HTTPS 通道,还支持强身份验证,例如智能卡、RSA SecureID 等。
从 Windows 10 开始,NAP 平台不可用。
互联网协议安全
互联网协议安全(IPsec)是一种广泛部署的开放标准,支持多厂商的框架设计,基于密码学实现 IPv4 和 IPv6 的安全性与数据保护。IPsec 支持对称和非对称加密以保护通信。非对称加密总是需要更多的 CPU 处理能力和更高的性能。这是因为实施过程中,使用非对称加密共享一个共享密钥,然后进行对称加密。
IPSec 的主要组成部分如下:
-
认证头部(AH)
-
封装安全负载(ESP)
-
互联网密钥交换协议(IKE)
AH 仅提供消息认证。换句话说,AH 只允许接收方验证消息是否完整且未被篡改;它并不加密数据。下图展示了 AH 封装前后数据包的格式:

基本的区别是 ESP 提供了实际的加密。它加密数据包的有效载荷,防止被窃听和重放。下图展示了数据包
:目前没有 IPsec 部署使用 AH。
IPsec 通信有两个阶段:
在第一阶段(用蓝色标记),IKE 建立了一个安全通道。在第二阶段(用绿色标记),加密数据被传输。
IKE 有两个版本:IKE V1 和 IKE V2。我们将在后续章节讨论 V2 的优势。更多细节请参考tools.ietf.org/html/rfc6311:

SSL VPN
对于远程访问漫游用户,SSL VPN 是最佳解决方案。SSL 协议在公共互联网中提供机密性和真实性。SSL 使用 TCP 443端口,这是一个不会被任何 ISP 阻塞的端口。用户需要在浏览器中输入 SSL VPN 的 FQDN,例如,vpn.corp.com。认证成功后,用户可以与公司 IT 资源进行通信。SSL VPN 不需要在用户端安装和配置客户端软件。
让我们尝试了解 SSL VPN 的安全性。 拥有 VPN 并不意味着一切都很好,数据传输是安全的。 SSL VPN 依赖于 SSL PKI 加密。 使用不安全或过时的弱加密简单地意味着将企业数据置于风险之中。 请参考第九章了解最新的 SSL/TLS 标准。
请记住,SSL 安全通道始终在主机和网关之间建立,而不是到达终端资源。
MPLS VPN
MPLS VPN 是实现企业网络多站点全球连接的最佳用例。企业连接到同一家 MPLS 服务提供商的两个或更多站点,形成 VPN。 MPLS L3VPN 是在多协议标签交换(MPLS)网络上最常部署的应用程序。 MPLS 允许服务提供商在服务提供商边缘上虚拟化其网络资源,因此客户可以共享物理网络但仍保持逻辑隔离。 企业客户使用诸如 MPLS 基础设施之类的服务提供商连接到多个全球站点。 或者,大型企业可能在其自己的全球基础设施内部使用 MPLS。 提供者边缘(PE)路由器将客户的电路终止到对每个客户唯一的虚拟路由转发(VRF)实例中,然后将其转发到提供者核心路由器,使用 MPLS 对流量进行标记并识别流量所属的 VRF:
MPLS 默认不提供加密。
对于远程访问 VPN,除非没有其他选择并且正在进行不需要安全性或安全性的基本活动(如流媒体 Netflix),否则永远不要选择 PPTP。 当必须使用时,请使用 L2TP/IPsec,并牢记 SSTP 是 Windows 设备需要更强安全性的良好选择。 IKEv2 是最新和最好的选择,因为在 Wi-Fi 网络或蜂窝连接之间切换时不会中断安全 VPN 连接。 我们将在下一节讨论 IKEv2 功能。
VPN 设计
让我们讨论站点到站点防火墙终止点的设计考虑。
- 单独的 VPN 防火墙:您可能已经看到了企业网络的多种情景。 仅有一个防火墙会使网络缺乏灵活性和单一的 VPN 终止点。 但是,从安全角度来看,大多数网络至少有一个双防火墙层。 第一个防火墙用于阻止所有不需要的数据流量并控制 DMZ 流量,而第二个防火墙可用于终止 VPN 连接,以及具有 URL 过滤和防病毒等下一代防火墙功能:

- 远程访问 VPN 隧道——分隔还是不分隔?:每当一个组织评估为其远程工作者和合作伙伴设置 VPN 的选项时,一个安全考虑是是否支持分隔隧道模型。让我们探讨一下这种模式的利弊。完整隧道意味着当所有流量都通过 VPN 时建立了一个安全连接。分隔隧道意味着只有公司流量通过隧道。对于其余流量,将使用本地互联网连接。
以下图表显示了一个分隔隧道:红色流量通过本地互联网网关。

以下图表显示了一个完整的隧道:所有流量都通过 VPN。

正如我们所见,分隧道可能通过本地互联网网关实现更快的互联网连接,但直接连接会绕过所有公司的控制和安全策略,如 URL 过滤和恶意软件保护。在完整隧道中,所有流量都通过公司网关传输,提供了很好的安全性。然而,额外的网络跳转可能导致网络访问缓慢。完整隧道还可以帮助您在互联网上隐藏身份。
如果您的企业有足够的带宽来容纳所有远程用户,那么网络和安全管理员必须使用完整隧道。一个拥有大量远程员工的组织可能会消耗大量带宽。
大多数网络管理员遵循的常见做法是选择预共享密钥进行身份验证,这在连接终止点的两端是相同的。这样做是为了避免设置证书颁发机构(CA)并为每个 IPSec 端点发放单独的密钥。因此,如果一个端点被破坏或被盗,整个网络就会变得脆弱。随着 IT 员工的变动,预共享密钥的保密性随着时间的推移而失去意义。基于 SSL/TLS 证书的 VPN 运行良好,但这也带来了设备配置方面的开销。然而,如果您仍然决定使用预共享密钥,那么您应该制定一个在一定时间后更改它们的流程,并且您应该在不同的 VPN 连接上使用不同的预共享密钥。对于经过批准和强大的加密,您必须查看由国家标准与技术研究所发布的联邦信息处理标准(FIPS)。
IKE V1 与 IKE V2
在本节中,我们将介绍 IKE 是什么,以及 IKEv1 和 IKEv2 之间的区别。
IKE 是 IPsec 协议套件中的一个协议,负责建立一个安全关联(双方之间的协议),使两个启用 IPsec 的设备能够安全地发送数据:
-
IKEv2 更快速且对带宽要求较轻,因为建立隧道时需要的消息较少。对于 IKEv1,我们有主模式(9 条消息)和攻击模式(6 条消息)。相比之下,IKEv2 只有一种模式,且只需要 4 条消息。
-
IKEv2 提供了内置的 NAT 穿越功能,而默认情况下,IKEv1 并不提供这一功能。大家普遍知道,IPSec 协议在设计时并没有考虑到网络地址与端口转换(NAPT)。在使用 IPSec ESP 模式时,初始有效载荷,尤其是头部会被加密。中间的 NAT 设备无法更改这些加密头部为其自身的地址。在第一阶段协商期间,如果启用了 NAT 穿越检测,那么双方或其中一方会向对方表明自己正在使用 NAT 穿越,随后 IKE 协商会切换到使用 UDP 端口4500。
-
IKEv2 内置了隧道存活状态检查。如果隧道断开,它具备检测和重新建立隧道的功能。然而,IKEv1 并没有这种功能。虽然有一些针对 IKEv1 的解决方法,但这些方法并没有标准化。
-
IKEv1 支持通过预共享密钥、数字签名和公钥加密进行身份验证。IKEv2 支持预共享密钥、数字签名和可扩展身份验证协议(EAP)。在 IKEv1 中,IPSec 对等体必须使用相同类型的身份验证——例如,双方都使用预共享密钥或双方都使用数字签名。然而,IKEv2 支持非对称身份验证——一方可以使用预共享密钥进行身份验证,而另一方则使用数字签名。
-
IKEv2 移动性和多宿主协议 RFC 4555(MOBIKE)支持远程访问 VPN 用户在不重新建立所有安全关联的情况下,从一个 IP 地址迁移到另一个 IP 地址。通过无须进行加密计算且无需重新连接 VPN 网关的方式,IKEv2 提升了用户体验。而 IKEv1 并不支持这一机制。
广域网加密技术
在今天的互联网和广域网连接环境中,为了确保数据安全并减少间谍窃听的风险,加密关键信息至关重要。数据泄露也包括光纤窃听。随着视频流量、在线游戏行业和云服务的不断发展,广域网带宽持续增加,我们已经看到网络速度从 1GB 提升到 10GB,再到 40GB,现如今甚至达到 100GB。随着链路速度的不断提高以及对带宽需求的持续增加,传统的第三层加密将不足以满足需求。
实现加密的三种最常见方法如下:
-
IPsec,或第三层(L3)加密
-
MACsec 或第二层(L2)加密
-
光网络(OTN)或第一层(L1)加密
IPsec 第三层加密
我们在前一节已经讨论了 IPsec。这里,我们将讨论 IPsec 如何与 WAN 技术互补。三层加密非常适合带宽较低且没有设备支持二层或一层加密的环境。组织正在以不同的方式运行 WAN 技术,例如使用 ATM、Frame-Relay、Metro-Ethernet 和基于 MPLS 的解决方案。最终的安全问题是:你信任谁来处理你业务关键数据? 如果您的回答是服务提供商,那么您可能不需要加密您的数据。然而,如果您的回答是没有人可信,那么您必须将数据传输到一个加密的服务提供商那里。
让我们来看一下广泛部署在 WAN 技术中的 MPLS VPN 提供商。这种服务提供商的主要好处是更快的传输技术,同时在客户之间进行适当的隔离。术语中包括 VPN,但这并不意味着您的数据默认情况下会被加密。
如下图所示,两个客户可以使用相同的子网,并通过适当的隔离连接到同一台路由器提供的服务:

为了确保 MPLS 上的数据传输安全,您可以采用从 CE 到 CE 的 IPsec 方法来保护 VPN 客户端的流量,避免通过不受信任的基础设施进行传输。引入 IPsec 可防止虚假的 CE 被插入到 VPN 中,以及防止加密的 VPN 流量泄漏到不受信任的 VPN 中。这增加了大规模部署的复杂性和可扩展性问题。
动态多点 VPN(DMVPN)模型基于下一跳解析协议(NHRP)的原理。每个 IPsec 节点都保存着如何到达下一跳服务器的信息,该服务器返回目标 IPsec 节点的地址给源节点。这是一种非常可扩展的方式,可以根据需要动态建立 IPsec 隧道。这几乎是一种独立于底层 WAN 基础设施的可扩展解决方案:

在利用 IPSec 进行高速链路加密之前,必须考虑性能。路由器的吞吐能力受限于 IPSec 加密引擎的限制,而不是使用能够利用路由器最大聚合吞吐能力的加密解决方案。使用 IPsec 加密会增加 57 字节的开销,以封装原始数据包的 IP 头并增加额外的认证头和尾部。将 IPsec 与 GRE 一起使用时,会增加 76 字节的额外开销。更多的开销直接导致更低的带宽吞吐量。
MACsec—二层加密
正如其名称所示,MACsec 是一种 MAC 层或链路层加密,为安全的下一代高带宽部署提供了简化的、每端口加密选项。遵守 FIPS、HIPAA 和 PCI DSS 的组织必须实施强大的加密以保护传输过程中的敏感数据。MACsec 提供了很好的逐跳部署灵活性。每当您觉得公共基础设施不安全时,您可以在传输节点之间实施 MACsec。
用例:您可以使用以下示例端到端使用 MACsec 加密:
-
主机到交换机
-
交换机到交换机
-
路由器到交换机
-
路由器到路由器数据中心互连
让我们看看 802.1 AE(MACsec)格式:实际 Ether-type + Payload 如下加密:

现在让我们看一个思科数据中心互连的 MACsec 示例。在 Layer-3 和任何路由协议之间引入 Layer-2 设备可以在 Layer-3 设备之间运行路由协议。DWDM WAN 链路将被加密;加密此链路的主要原因是它可能是由第三方提供的共享基础设施:

光网络—第 1 层加密
有多种访问光纤的方式。包括:
-
点击街道柜
-
光纤耦合器件
-
协议分析仪和拼接盒。
第 1 层加密解决方案支持金融机构的安全数据中心连接、运营商的加密托管服务以及政府机构的安全网络。由于它是在 OSI 模型中可能的最低层进行的,第 1 层加密在技术上提供了最高级别的安全性。它还具有快速速度和低延迟,以及 100%的吞吐量和 0 字节的开销:

摘要
本章详细介绍了 VPN,重点介绍了使用 IPSec 作为 VPN 技术。它从覆盖 VPN 的各种用例和可用选项开始。然后介绍了不同 VPN 协议的技术细节,如 PPTP、L2TP、SSTP、IPsec 以及组成 IPSec 的组件。
本章的中间部分通过查看全隧道和分隧道选项及其优势,介绍了企业远程访问 VPN 的设计原则。该章节最后查看了 WAN 加密技术,从企业到云服务和金融机构,以确保数据通信模型的不同层次上的安全性。
现在您对从网络到应用安全的所有层有了基本了解,下一章将介绍基础设施安全和未来技术的整体方法。
问题
-
以下哪项可能用作站点到站点 VPN 隧道的终止点?
-
防火墙
-
路由器
-
集中器
-
以上所有内容
-
-
以下哪项不是 Layer-2 隧道协议?
-
PPTP
-
IPsec
-
L2TP
-
.MPLS VPN
-
-
IKE 为以下内容创建 SA:
-
SSL
-
PGP
-
IPSec
-
VP
-
-
IPSec 定义了两个协议:_______ 和 ________。
-
AH;SSL
-
PGP;ESP
-
AH;ESP
-
以上所有
-
-
______ 提供 IP 层级的认证。
-
AH
-
ESP
-
PGP
-
SSL
-
深入阅读
欲了解更多信息,请访问以下链接:
第十二章:安全技术的总结和范围
在上一章中,我们讨论了广域网基础设施的安全性以及技术如 IPSec 和 VPN 设计在公共互联网基础设施上建立安全网络的能力。
目前大约有 30 到 40 亿设备连接到互联网,随着物联网(IOT)设备的增加,这一数字将会翻倍。在这种情况下,黑客的攻击范围将不仅限于一个空间,而是几乎可以涵盖从医院到交通信号灯的各个领域,因为这些设备也将通过某种形式的广域网(WAN)连接进行控制和操作。这里的主要问题是:网络安全的长期影响是什么?有一点是肯定的,那就是它将与今天不同。我们还将讨论人工智能如何帮助提升网络安全领域的防护能力。
本章我们将涵盖以下主题:
-
DDoS 防护
-
BGP FlowSpec
-
人工智能在网络安全中的应用
-
下一代 SIEM
-
SDN 防火墙
-
自带身份认证(BYOI)
DDoS 防护
DDoS,即分布式拒绝服务攻击,是一种攻击形式,其中多个被攻陷的网络/主机被用来攻击单一系统。组织需要认真考虑这样一个事实,即使它们对 DDoS 攻击有足够的防护,如果它们的互联网服务提供商(ISP)、托管服务提供商或域名服务(DNS)提供商没有足够的 DDoS 防护,它们的业务也可能被停止服务或脱机。在本节中,我们将讨论旧的 ISP 机制,同时也会重点讨论新的自动化机制。
远程触发黑洞路由(RTBH)
你还记得曾经网络管理员拨打互联网服务提供商电话来缓解 DDoS 攻击的日子吗?远程触发黑洞(RTBH)路由是边界网关协议(BGP)作为服务提供商网络中的安全工具的一个有趣应用。RTBH 的一种常见用途是缓解 DDoS 攻击。RTBH 提供了两种方法:
-
基于源
-
基于目标
基本方法是要么丢弃来自源的所有流量,要么丢弃所有到目标的流量。这些流量可能是既有用的也可能是无用的。此时,我们理解 RTBH 路由是一种可以用来防护 DDoS 攻击的技术。接下来,让我们讨论它是如何保护你的网络的。
下图展示了一家 ISP,拥有多个提供商边缘路由器,并且客户网络通过边缘路由器连接到公共互联网。
请记住,RTBH 路由与 BGP 一起工作。
假设一个 DDoS 攻击针对客户的应用程序发起,例如 Web 服务器。如果 ISP 没有任何保护措施来阻止攻击,并且攻击持续发生,这将导致客户的应用程序瘫痪,同时影响其他客户,造成服务质量下降。当我提到服务质量下降时,这取决于发起的 DDoS 攻击类型,可能会导致 ISP 链路拥堵。ISP 路由器在攻击期间可能无法处理大量数据包。
在这张图中,你可以看到一个客户网络连接到 Tier-1 ISP,Tier-1 ISP 进一步连接到 Tier-2 ISP。一旦攻击者发起攻击,它可以从互联网上的任何地方朝着客户网络发起。图中用红色标记的 PC 符号代表攻击者的机器或互联网上已被入侵的机器,这些机器属于僵尸网络。

在攻击发生时 ISP 可以做些什么?
-
从攻击源处的黑洞流量
-
从攻击目标处的黑洞流量
最大的问题是:你应该选择哪种 ISP 方法?我们将详细讨论这两种选择。
从攻击源处的黑洞流量
基于源的方法是 ISP 首选的方法。这将丢弃所有来自攻击者的流量到客户的 Web 服务器,同时允许其他合法流量通过。如果源 IP 地址是固定的,这可能是一个不错的解决方案,但问题出现在今天的复杂攻击中,攻击源地址不断变化。
从攻击目标处的黑洞流量
使用基于目标的方式将会丢弃所有流量(包括合法流量)到客户的 Web 服务器。这实际上意味着帮助攻击者实现他们的目标,使客户的服务不可用。这个方法唯一的优点是,它不会影响其他 ISP 客户,也不会导致任何服务质量下降。
BGP FlowSpec
BGP FlowSpec 是 RFC 5575 中定义的一种新方法,可以通过利用 BGP 自动化地防止 DDoS 攻击。BGP 流量规范(FlowSpec)功能允许你自动传播过滤和监管功能到服务提供商的上游 BGP 对等路由器。这将减轻 DDoS 攻击对网络的影响。大多数厂商仍然将此实现列入他们的路线图中。实施之前,请向 ISP 查询是否支持此解决方案。
BGP FlowSpec 采用更精细的方式,提供灵活性,让你能够有效地构建指令,以匹配特定数据流的源、目的地、L4 参数和数据包细节(如长度和分片)。在这个示例中,客户路由器(即 FlowSpec 路由器)将这些流量通告给 ISP 边缘路由器。然后,边缘路由器将这些流量安装到硬件中。一旦流量被安装到硬件中,传输路由器就能进行查找,看是否有传入流量与定义的流量匹配,并采取适当的措施。
在下图中,客户将1.1.1.1/32主机网络通过特殊社区100:100通告给服务提供商。一旦该社区在服务提供商端匹配,所有面向客户网络的流量将被服务提供商 1 内的所有边缘路由器丢弃。

这些是 BGP FlowSpec 的规格及可采取的操作列表。
BGP FlowSpec 可以包含以下信息:
-
类型 1–目标前缀
-
类型 2–源前缀
-
类型 3–IP 协议
-
类型 4–源或目标端口
-
类型 5–目标端口
-
类型 6–源端口
-
类型 7–ICMP 类型
-
类型 8–ICMP 代码
-
类型 9–TCP 标志
-
类型 10–数据包长度
-
类型 11–DSCP
-
类型 12–分片编码
动作通过 BGP 扩展社区来定义:
-
流量速率(丢弃/限制)
-
下一跳重定向
-
VRF 重定向
-
DHCP 标记
配置 BGP FlowSpec 之前,请检查硬件规格和支持情况。
DDoS 清洗
组织处理 DDoS 攻击只有两个选择:黑洞或清洗。如我们之前所讨论的,黑洞技术扩展性差,可能会关闭指定目标,以保护其他用户。另一种解决方案是清洗,使用独立的 DDoS 清洗引擎。棘手的部分是 BGP 公告,它将所有目标 IP 地址的网络层数据包重定向到你的清洗服务提供商的服务器。恶意数据包被过滤掉,清洗后的流量或非 DDoS 流量则转发到实际服务。
云服务提供商或互联网服务提供商,通常会将这些清洗设备配置到本地数据中心。业内已经观察到,DDoS 攻击的规模已经达到超过 1 Tbps 的流量,拥有如此大的网络容量是一项巨大的任务。部署如此大带宽来应对 DDoS 攻击既昂贵又复杂。清洗设备是一些简单的设备,必须由专家进行配置。这意味着你必须在所有层次和所有协议上建立相应的能力。清洗中心通常在离线模式下运行,只有在 DDoS 攻击发生时才会被激活。这意味着在流量被重定向到清洗中心之前,互联网应用会首先遭遇 DDoS 攻击。
区块链技术用于应对 DDoS 攻击
DDoS 攻击的增加促使我们发现了更先进、更有效的保护系统的方法。基本思路是创建一个系统,让人们可以租用未使用的带宽,从而将其用于吸收恶意 DDoS 流量,减轻攻击影响。互联网服务提供商(ISP)向客户收取最低费用,客户则因未能利用带宽而损失这笔费用。
更多信息请访问gladius.io/。
AI 在网络安全中的应用
在未来,AI 可能会成为网络安全的游戏规则改变者。网络安全供应商正在创新,致力于将基于 AI 的网络安全产品大规模推向市场。随着这种技术的部署,未来几年将会迎来更大的发展势头。机器学习(ML)是 人工智能(AI)的一个子领域,指的是通过经验让计算机学习和适应的技术。ML 可用于识别恶意行为或恶意实体、黑客、攻击者、恶意软件、不当行为等。最大的挑战是定义应用程序的正常行为。
例如,你可以查看一个在线购物公司在最大用户数量时的在线情况,以及查看与数据模式相关的连接数。当进行大促销时,预计用户数量会很高,因此你可以增加一个新的模式来适应这种情况。通过使用 ML,你可以记录用户和数据流量在该门户上的模式。任何意外的情况,如夜间的连接激增,都可以视为攻击。另一个例子是,如果你在网络中安装了一个网络打印机,那么这里的预期行为是什么?它会正确打印文档,但如果你的网络打印机开始将文档发送到外部的其他人怎么办?
基本的做法是部署一个扫描你网络上所有设备的解决方案。这包括员工的登录主机、打印机、网络服务、网络设备和防火墙。你还应该学习行为模式,识别什么是正常的,什么是异常的。像 Datatrace 和 Splunk 这样的工具是网络行为分析的典型代表。
AI 可以解决以下网络安全领域的问题:
-
恶意的外部和内部威胁
-
DDoS 和大规模攻击
-
数据丢失
-
用户行为分析
下一代 SIEM
安全运营中心常常面临着来自传统 SIEM 系统的警报洪流,假阳性继续困扰着网络,导致数据泄露。随着计算机技术的进步,网络安全也发生了变化。让我们回顾一下员工们使用办公桌面访问公司应用程序的时代。很快,桌面电脑被笔记本和智能设备取代,这些设备能在全球任何地方安全地访问公司应用程序。传统的安全威胁检测和响应方法在应对当今的安全挑战时已经失效。如今,组织需要一个能够扩展以支持来自各种 IT 资源的大数据量,并且能够更快分析数据以实时检测安全威胁的 SIEM 解决方案。同时,它还应适应组织的预算。
在本节中,我们将讨论下一代 SIEM 平台应具备的关键能力。
- 大数据存储能力:网络连接设备的数据增长方式正在扩展。这不仅仅是收集大量数据;数据还需要用于威胁分析、取证和合规性审查。你必须具备以不同方式存储数据的能力,而这种不同的方式就是大数据模型。大数据能够实时处理和分析 TB 级的数据。基于查询的数据还可以进一步用于分析和报告。
下图展示了一个具有本节之前讨论的功能的SIEM 模型:

- 实时分析:网络威胁和网络攻击变得越来越复杂。随着表面攻击的数量增加,攻击者现在能够轻松地攻击组织。传统的 SIEM 解决方案是基于规则的,依赖于已知的威胁模式。下一代 SIEM 应该能够在任何动态环境中实时检测威胁。这是通过使用机器学习(ML)和行为分析来发现当今环境中的高级威胁。

-
准确性:威胁情报可以通过提供丰富的外部背景帮助你始终领先于网络威胁。在没有正确背景的情况下,安全警报很可能会在警报洪流中丢失,或者与安全运营中心(SOC)分析员混淆。作为 SOC 专业人员,我们应该如何应对这些警报?下一代 SIEM 应当提供带有有意义背景的警报。这个有意义的背景可能包括 IP 地址、位置、漏洞类型、所需的操作,以及当然还有警报的优先级或严重性。
-
自动化事件响应:检测网络安全威胁只是 SIEM 的一部分,而更快速地响应威胁被认为是 SIEM 中最关键的部分。SIEM 生成的每个警报都会有一个相关的推荐操作。下一代 SIEM 应该遵循最佳实践,通过 API 与网络和系统厂商的设备(如防火墙、路由器、交换机和终端保护设备)进行交互。其基本思想是,一旦发现事件,就采取一组适当、明确定义且自动化的措施。
-
轻松部署:对于任何企业和 IT 流程,SIEM 系统的部署从彻底规划和审查影响及政策开始。你还应该审查安全政策和行业内的最佳实践。部署模型应与组织的整体 IT 战略相对应。SIEM 解决方案应向客户提供虚拟、基于云的和基于硬件的设备。
-
低成本:安全分析适用于大量数据。随着设备数量的增加,大量日志数据和存储可能会导致解决方案的成本上升。定价模型不应基于收集的数据量,因为这可能导致成本模型的不确定性。下一代 SIEM 的成本可以基于用户和设备的数量,这是一个可预测的数字。使用普通硬件可能进一步降低成本。
软件定义网络防火墙
近年来,持续的创新和适应传统网络限制的需求使得软件定义网络(SDN)变得非常流行。让我们来探讨一下,SDN 有什么特别之处是传统技术无法实现的。
当前的网络基础设施设计不支持动态可扩展性、集中控制和管理、端到端可视化以及动态流量负载分配。这是一种将网络控制平面与数据平面物理分离的方法。这样,网络管理员可以直接进行编程,而无需担心商业硬件的规格。
下图显示了 SDN 架构。SDN 架构可以分为三个层次:应用层、控制平面和转发平面。

在这一部分,我们将讨论如何利用 SDN 功能来为防火墙提供服务。防火墙是一种设备,用于根据防火墙规则过滤通过网络设备进出的流量。传统的防火墙通常位于公共网络和私人网络之间。规则配置由网络管理员定义,并且每当有新规则时,防火墙都需要进行配置。硬件防火墙价格昂贵且存在厂商锁定,这意味着只有厂商才能修改防火墙的行为。如前所述,软件定义网络(SDN)是一种新的网络方法。SDN 提供了灵活性,可以将基于普通硬件的 OpenFlow 支持设备转换为由软件管理的防火墙。
控制平面用于管理任务,并具有网络拓扑的全局视图。所有关于数据包转发的决策都由控制平面做出。控制器使用 OpenFlow 协议与普通交换机进行通信,并且还具备将流条目直接修改到交换机的 TCAM 表中的能力。类似于防火墙规则,流条目用于匹配目的,并且与流相关联的动作。
一个典型的流表看起来如下图所示。表头字段是应与 IP 数据包匹配的字段,动作将由管理员定义。

总体来说,这种方法创建了一个分布式防火墙架构,并且规则会推送到所有设备或指定的设备组中。在此图中,您可以看到三个层次:防火墙应用、控制平面和转发平面。

下表展示了一个防火墙流和规则:

自带身份验证(BYOI)
自带身份验证(BYOI)是一种身份验证机制,它比为多个服务设置多个密码更具安全性,并且提供了更好的用户体验。BYOI 简单地指与社交网络站点(例如,Facebook、Google 和 Yahoo)集成。在实践中,BYOI 的一个示例是在网站上提供使用 Facebook 注册的选项,如下截图所示:

你可能熟悉典型组织中的用户抱怨,必须使用不同的密码、应用程序和认证方法。如果所有的云服务、SaaS、Web 应用程序或本地应用程序都能使用统一的解决方案和相同的身份认证,岂不是很好?Citrix 工作空间体验是一个很酷的解决方案,提供了更好的用户体验。
许多网站吸引更多用户,因为他们不必管理独立的密码,而密码管理通常是我们大多数人的一大烦恼,尤其是在面对安全问题时。通过允许用户使用单一受信任的提供商进行双重身份验证,这增强了安全性。单一身份提供商虽然方便,但也带来了一些隐私问题,可能会导致跨多个服务追踪和分析用户活动。
总结
在本章中,我们讨论了安全领域如何变化,并考虑到网络攻击从蠕虫和病毒发展到如今复杂的网络攻击。现在是时候将我们的焦点从保护转向预防了。最近的数据泄露证明,旧的遗留系统不足以保护资产免受先进的安全威胁。在本章中,我们讨论了通过使用 BGP Flowspec 进行 DDoS 防护的旧方法和新方法。
此外,我们学习了 DDoS 清洗如何工作,以及区块链技术将如何改变安全领域。我们还讨论了网络空间中对人工智能的需求,以及这将如何帮助构建智能化的下一代 SIEM 解决方案。最后,我们讨论了基于软件定义网络构建的防火墙概念,以及“自带身份”(Bring-Your-Own-Identity),这是一种通过提供更好的安全性和用户体验的创新方法。
进一步阅读
欲了解更多信息,请参考以下链接:
第十三章:评估
第一章
-
答案:5
-
答案:1, 2, 3
-
答案:4
-
答案:3
-
答案:1
第二章
-
答案:2, 4, 6
-
答案:2 和 3
-
答案:1
-
答案:2
第三章
-
答案:4
-
答案:4
-
答案:2
-
答案:2
-
答案:4
第四章
-
答案:3
-
答案:1
-
答案:1
-
答案:2 和 3
-
答案:3 和 4
第五章
-
答案:4
-
答案:1
-
答案:1
-
答案:3
-
答案:4
第六章
-
答案:4
-
答案:2
-
答案:3
-
答案:4
-
答案:3
第七章
-
答案:3
-
答案:2 和 4
-
答案:4
-
答案:4
-
答案:4
第八章
-
答案:2
-
答案:4
-
答案:1
第九章
-
答案:2
-
答案:4
-
答案:3
-
答案:2 和 4
第十章
-
答案:1 和 2
-
答案:4
-
答案:2
第十一章
-
答案:4
-
答案:3
-
答案:3
-
答案:3
-
答案:1


浙公网安备 33010602011771号