3

服务器运维环境安全体系(上篇)

 2 years ago
source link: https://blog.51cto.com/u_14206262/5354133
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
服务器运维环境安全体系(上篇)_客户端

总有一些突发事件提醒我们,网络安全的重要性。关注【融云全球互联网通信云】了解更多

5 月 25 日,“搜狐全体员工遭遇工资补助诈骗”的新闻冲上热搜,令人咋舌。当天下午,搜狐发布声明称,不法分子冒充财务部盗发邮件,24 名员工被骗 4 万余元。

从额度和手法上看,这个事件都算是普通级别,但人们的哗点在于,它发生在知名的互联网企业。也从另一个角度说明,大众对于网络安全的关注程度正在提升。

网络安全问题伴随着互联网的高速发展日益严峻,新经济业态使得各关键行业和重要系统对网络安全保障的需求不断增加,安全已成为网络强国建设的基础保障。

同时,企业的安全生产也离不开安全相关的技术保障,因此每一个企业都需要构建一套自上而下完善的安全解决方案。

本文围绕服务器运维环境安全体系展开,通过上、下两篇,分析网络安全现状并提出应对之策。


网络安全现状

当下硬件、软件和协议或系统安全策略的具体实现上存在的缺陷,使入侵者可以在未经许可的情况下非法访问和破坏系统及系统中数据。

同时,从访问的角度来看,当系统运行与系统安全发生冲突时,也会产生安全漏洞。

漏洞问题也与时间密切相关,随着软件的深入使用,软件漏洞将不断暴露。老漏洞不断被攻克,新漏洞不断出现,漏洞问题会长期存在。

随着数字化进程的不断演进,大量新型互联网产品和服务应运而生。安全漏洞、数据泄露、网络诈骗、勒索病毒等网络安全威胁也日益凸显,有组织、有目的的网络攻击形势愈加严重。

如以下图片所示,恶意程序捕获、计算机恶意程序用户感染、安全漏洞、DDoS 攻击等威胁不容小觑,为网络安全防护工作带来更多挑战。

服务器运维环境安全体系(上篇)_客户端_02

(恶意程序捕获情况,来源:国家互联网应急中心)

服务器运维环境安全体系(上篇)_客户端_04

(计算机恶意程序用户感染情况,来源:国家互联网应急中心)

服务器运维环境安全体系(上篇)_客户端_06

(安全漏洞情况,来源:国家互联网应急中心)

服务器运维环境安全体系(上篇)_客户端_08

(DDoS 攻击情况,来源:中国互联网络信息中心)

因为攻击成本低、效果明显,DDoS 攻击是目前互联网用户面临的较常见、影响较严重的网络安全威胁之一。

为降低 DDoS 攻击对我国基础网络和基础设施的威胁,国家互联网应急中心持续对境内目标遭大流量攻击情况做监测跟踪,针对所发现的被用于进行 DDoS 攻击的网络资源重点开展治理。

境内目标遭大流量 DDoS 攻击情况:

2020 年在监测发现的境内目标遭峰值流量超过 1 Gbit/s 的大流量攻击事件中,攻击方式为 TCP SYN Flood、UDP Flood、NTP Amplifi cation、DNS Amplifi cation、SSDP Amplification 的占比达 91.6%;

攻击目标主要位于浙江省、山东省、江苏省、广东省、北京市、上海市、福建省等 7 个地区的事件占比达 81.8%;

12 月是全年攻击最高峰,攻击异常活跃。

经分析发现,攻击时长不超过 30 分钟的攻击占比达 94.4%,表明当前攻击者倾向于综合使用攻击资源,利用大流量攻击瞬时打瘫攻击目标,以对外提供更多服务并非法获利。

被用于进行 DDoS 攻击的网络资源活跃情况:

根据国家互联网应急中心的《我国 DDoS 攻击资源季度分析报告》,与 2019 年相比,境内各类被用于进行 DDoS 攻击的网络资源(简称“攻击资源”)数量持续减少,境内活跃控制端数量同比减少 47.6%,受控端数量同比减少 39.9%,活跃反射服务器同比减少 20.4%,跨域伪造路由器同比减少 59.1%;

与此同时,境外各类攻击资源数量不断增加,境外活跃控制端数量同比增加 27.6%,受控端数量同比增加 37.0%,活跃反射服务器同比增加 0.3%,攻击资源向境外迁移趋势明显。


我们如何应对

安全技术架构​

按照云计算安全架构核心实施过程:入口防护、流量审计、堡垒约束,部署从云网络层、虚拟机层、应用层直至数据层的全面安全防护方案。

服务器运维环境安全体系(上篇)_服务端_10

(全面安全防护架构)

技术栈解析

HTTPS,TLS/SSL

服务连接均采用 HTTPS 安全加密。HTTPS 在 HTTP 下加入 TLS/SSL 层对传输的数据进行加密,保证会话过程中的安全性。

使用 TCP 端口默认为 443

服务器运维环境安全体系(上篇)_客户端_12

(HTTPS 安全加密)

TLS:  (Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。

SSL:  (Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL 通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通信。

SSL 协议既用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL 首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL 对传输内容使用对称加密。

说到这里,我们就不得不说说对称加密、非对称加密、证书机构(CA)、证书、数字签名、私钥、公钥。

指双方持有相同的密钥进行通信,加密速度快,但存在密钥传输的安全问题。

常见的对称加密算法有 DES、3DES、AES 等。

非对称加密

又称为公开密钥加密,由公钥(public key)和私钥(private key)组成。

公钥(public key)是对外开放的,私钥(private key)是自己拥有的。

公钥(public key)加密的数据,只能用私钥(private key)解密。

私钥(private key)加密的数据,只能用公钥(public key)解密。

非对称加密为了解决对称加密中的安全问题而诞生,但加密速度相比对称加密较慢。

信息安全问题

在信息安全性问题中,我们常常要做到三点才能保证信息的安全:保密性、完整性、身份识别。

信息的保密性(加密算法)

通用的方法是使用非对称加密+对称加密来完成信息的保密性。

客户端使用公钥对对称加密的密钥进行加密,然后传递给服务端,服务端使用私钥进行解密确认密钥,开始传输数据。

服务器运维环境安全体系(上篇)_客户端_13

(非对称加密+对称加密确保信息保密性)

信息的完整性(数字签名)

信息在传输过程中,很有可能被第三方劫持篡改,所以我们需要保证信息的完整性,通用方法是使用散列算法如 SHA1、MD5。

将传输内容 Hash 一次获得 Hash 值,即摘要。

客户端使用服务端的公钥对摘要和信息内容进行加密,传输给服务端;服务端使用私钥进行解密获得原始内容和摘要值;服务端使用相同的 Hash 算法对原始内容进行 Hash,然后与摘要值比对。如果一致,说明信息是完整的。

服务器运维环境安全体系(上篇)_服务端_14

(信息完整性算法流程)

身份识别(数字证书)

传输信息我们通常需要验证信息发送方的身份,转化一下思路即可完成。

发送端使用私钥加密自己的内容然后发送给接收端,接收端只要用发送端的公钥解密,自然就验证了发送端的身份。

服务器运维环境安全体系(上篇)_服务端_15

(身份识别流程)

数字证书

想象一下,如果一开始服务端发送公钥到客户端时,被第三方劫持,然后第三方自己伪造一对密钥,将公钥发送给客户端。

这样,当服务器发送数据给客户端时,中间人用一开始劫持的公钥解密信息后,使用自己的私钥将数据加密发送给客户端,而客户端收到后使用公钥解密。整个过程中间人是透明的,但信息泄露却不得而知。

服务器运维环境安全体系(上篇)_服务端_16

(公钥被篡改可能导致信息泄露)

为了防止这种情况,数字证书就出现了,原理就是基于上面所说的私钥加密数据,公钥解密来验证其身份。

数字证书由权威的 CA(Certificate Authority)机构给服务端进行颁发,CA 机构通过服务端提供的相关信息生成证书,证书内容包含了持有人的相关信息,服务器的公钥,签署者签名信息(数字签名)等,最重要的是公钥在数字证书中

数字证书如何保证公钥来自请求的服务器呢?

数字证书上有持有人的相关信息,通过这点可以确定其不是一个中间人。

但是,证书也可以伪造,如何保证证书为真呢?

一个证书中含有三个部分:证书内容、散列算法、加密密文,证书内容会被散列算法 Hash 计算出 Hash 值,然后使用 CA 机构提供的私钥进行 RSA 加密。

服务器运维环境安全体系(上篇)_客户端_17

(数字证书如何保真)

当客户端发起请求时,服务器将该数字证书发送给客户端,客户端通过 CA 机构提供的公钥对加密密文进行解密获得散列值(数字签名),同时将证书内容使用相同的散列算法进行 Hash 得到另一个散列值,比对两个散列值,如果两者相等则说明证书没问题。

服务器运维环境安全体系(上篇)_服务端_18

(身份验证流程)

一些常见的证书文件类型如下:

X.509#DER 二进制格式证书,常用后缀.cer/.crt

X.509#PEM 文本格式证书,常用后缀.pem

有的证书内容是只包含公钥(服务器的公钥),如.cer/.crt/.pem

有的证书既包含公钥又包含私钥(服务器的私钥),如.pfx、.p12

HTTPS 单向认证

HTTPS 在建立 Socket 连接之前,需要进行握手,具体过程如下:

服务器运维环境安全体系(上篇)_客户端_20

(单向认证)

①客户端向服务端发送 SSL 协议版本号、加密算法种类、随机数等信息。

②服务端给客户端返回 SSL 协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书。

③客户端使用服务端返回的信息验证服务器的合法性,包括:

• 证书是否过期;

• 发行服务器证书的 CA 是否可靠(通过查询浏览器或本机内的 CA 证书获知);

• 返回的公钥是否能正确解开返回证书中的数字签名(通过使用本机或浏览器内置的 CA 公钥进行解密);

• 服务器证书上的域名是否和服务器的实际域名相匹配;

• 验证通过后继续进行通信,否则终止通信。

④客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择。

⑤服务器端在客户端提供的加密方案中选择加密程度最高的加密方式。

⑥服务器将选择好的加密方案通过明文方式返回给客户端。

⑦客户端接收到服务端返回的加密方式后,使用该加密方式生成产生随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送至服务器。

⑧服务器收到客户端返回的加密信息后,使用自己的私钥进行解密,获取对称加密密钥。

⑨在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。

HTTPS 双向认证

双向认证和单向认证类似,但额外增加了服务端对客户端的认证。

服务器运维环境安全体系(上篇)_客户端_22

(双向认证)

①客户端向服务端发送 SSL 协议版本号、加密算法种类、随机数等信息。

②服务端给客户端返回 SSL 协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书。

③客户端使用服务端返回的信息验证服务器的合法性,包括:

• 证书是否过期;

• 发行服务器证书的 CA 是否可靠(通过查询浏览器或本机内的 CA 证书获知);

• 返回的公钥是否能正确解开返回证书中的数字签名(通过使用本机或浏览器内置的CA公钥进行解密);

• 服务器证书上的域名是否和服务器的实际域名相匹配;

• 验证通过后继续进行通信,否则终止通信;

④服务端要求客户端发送客户端的证书即客户端证书公钥,客户端会将自己的证书发送至服务端。

⑤验证客户端的证书,通过验证后,会获得客户端的公钥。

⑥客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择。

⑦服务器端在客户端提供的加密方案中选择加密程度最高的加密方式。

⑧将加密方案通过使用之前获取到的公钥进行加密,返回给客户端。

⑨客户端收到服务端返回的加密方案密文后,使用自己的私钥进行解密,获取具体加密方式,而后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端。

⑩服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。


至此,本文分享了目前我们面对的主要网络安全问题,及在此情况下的安全技术架构和相关技术栈解析。下周,我们将分享应对之策的核心——落地实践方案和防护策略,敬请期待。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK