互联网安全建设从0到1
上QQ阅读APP看书,第一时间看更新

2.3 上云安全

随着云的普及,“上云”已经是越来越多的公司的选择,虽然云有着比IDC更多的便捷性,但由于云的分散性,许多传统的安全检测方法在云上无法使用,因此对云的安全也有了新的挑战,本节将介绍云上运维的一些安全问题。

2.3.1 流量获取

在第1章中,笔者介绍了如何获取并分析网络流量。传统IDC模式下,可以通过流量镜像的方式获取流量并进行分析。由于云主机的特殊性,几乎无法使用流量镜像方式获取流量,因此想要获取云主机的流量,只能靠在云主机上安装相应的Agent完成。第1章介绍的packetbeat可以相对较好地完成这方面的功能。packetbeat优势如下:

·支持多种常见的协议类型(如:HTTP、MySQL、dns等),动态分析应用程序级协议,并将消息关联到事务中。

·支持自定义协议类型。

·支持多种格式输出,如Elasticsearch、Logstash、Kafka、Redis等。

·支持跨平台部署,部署简单、轻量,配置灵活。

(1)配置packetbeat,将流量发送给Kafka并将状态数据发送至Elasticsearch服务器

在第1章已经介绍过如何用packetbeat抓取HTTP流量,这里配置packetbeat,将流量发送至Kafka中:

同时,也可以将packetbeat运行情况发送至Elasticsearch服务器(要在Kibana/管理中设置beats_system密码),用于监控:

这样,在Kibana中可以看到相应的信息,如图2-7所示。

图2-7 packetbeat运行状态监控

单击名称还能看到更加详尽的信息,如图2-8所示。

图2-8 packetbeat的详细运行状态

另外,在Kibana中创建.monitoring-beats-7-*的索引,可以看到详细数据:

(2)packetbeat监控

虽然packetbeat可以相对较好地完成数据包抓获功能,但packetbeat也有一定的隐患:使用系统资源过高。因此,就需要对packetbeat的使用率进行监控。

经过笔者研究,需要监控的参数有以下几个:

·内存使用率

·系统负载情况

·CPU使用率

·事件速率

其中前两个可以直接通过读取Elasticsearch数据内容获得,如下所示:

CPU使用率则需要通过两次的beats_stats.metrics.beat.cpu.total.value相减后除以100获得。相关代码如下:

对于事件速率,笔者只计算出了近似值,通过相邻beats_stats.metrics.libbeat.output.events.total之差的差值(两次相减)获得(笔者认为不是准确值,但也相对比较精确)。相关代码如下:

当一台4核8GB的服务器事件速率超过2000时,CPU使用率会超过100%,如下所示:

通过这一套方案基本上可以解决云环境中的数据包获取问题,另外,如果使用腾讯云的黑石服务器,或在AWS云上采用vpc-traffic-mirroring技术(https://aws.amazon.com/cn/blogs/aws/new-vpc-traffic-mirroring/),也可以直接获取数据包。有兴趣的读者可以参考官方文档。

2.3.2 边界管理

在传统模式下,企业可以使用专线访问IDC资源,而安全的管控相对容易,一般情况下,只需要开放80、443端口的外部访问权限,其余端口按需开放,因此对外部的监控,主要精力可以放在Web应用上,而对于端口开放的管控情况,也集中在防火墙、交换机、路由器等设备上,管理相对集中。

云服务使得边界越来越模糊,传统的内网访问IDC的模式被打破,大部分企业访问云资源与外部用户几乎相同,以腾讯云MySQL服务为例,开放端口如下所示:

可以看到端口跨度范围非常大,无法有效地对端口进行集中管控,而管控的机制则依托于主机级别的安全组,如图2-9所示。

图2-9 腾讯云安全组

而不同的主机的安全组设置可能不同,无法非常直观地了解网络端口的开放情况和外部访问情况。要解决这个问题,只能通过服务商提供的SDK来进行二次开发。

2.3.3 云存储安全

回顾2019年的信息泄露事件,很多是云存储的权限配置不当导致的,以AWS S3为例,信息泄露事件如下:

·不安全的AWS S3服务器暴露了数千个FedEx客户记录。

·AWS S3错误暴露了GoDaddy的商业机密。

·某公司在暴露的服务器上留下了大量高度敏感的数据,包括“王国钥匙”。

·至少1400万Verizon用户的客户记录(包括电话号码和账户PIN)通过AWS S3 bucket公开。

·Verizon AWS S3 bucket泄露有关公司内部计费系统的100多亿条数据。

·AWS S3数据库泄露暴露了美国成千上万的雇佣军简历。

·AWS S3服务器暴露了1.98亿美国选民的信息。

因此,针对云存储的访问权限管理对于业务数据来说非常重要,例如,针对AWS S3 Everyone权限检查有无列出、读写权限(除非业务需要,否则不应该有相关权限),如图2-10所示。

图2-10 AWS S3权限面板

还有存储桶策略以及IAM对AWS S3的操作权限是否合理,等等。关于AWS S3的最佳安全实践可以参考https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/security-best-practices.html

2.3.4 小结

除上面介绍的安全问题之外,还有其他云安全事项也需要注意:

1)服务商的响应速度:比起国内的云服务商,基于时差的原因,国外的服务商响应的速度会慢一些,因此还需要提前注意这方面的问题,以免在遇到紧急情况时才发现存在这个问题。

2)笔者认为,在云环境下,尤其是业务分散在世界各地的互联网公司,HIDS的作用可能更大于WAF,所以笔者会在后文中介绍HIDS。

3)由于边界淡化,云资产的识别比传统IDC更为重要,关于资产识别,将在第8章介绍。

4)由于云服务器都是批量启动的,因此一个安全的镜像及设置安全基线便十分重要,笔者后续会介绍主机安全加固方面的内容。

5)在云上的业务同传统业务一样,这点没有任何差别,因此应用层防御及身份认证等技术依然是安全人员需要考虑的问题。

不得不承认,云确实给业务带来了便捷性,但是上云后安全问题也是存在的,而且笔者认为一旦上云,很多安全问题就需要依托云供应商解决,因此企业在上云之前应该充分考虑到以上问题。此外,云服务自身的安全,例如虚拟机逃逸、基于底层的攻击,这些将是云服务提供商要考虑的安全问题。