关于S3系统是否满足“被动式”系统以及无法运行可执行文件的合规性问题描述

在一些信息系统审计中,可能会被要求提交“S3存储是一个被动式系统”、“S3不会主动向外发起网络连接”、“S3不会执行存储的可执行文件”等证明资料。建议通过S3合规性最佳实践进行系统的解答。

一、整体合规性

S3合规性网址说明:

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/s3-compliance.html

官方文档没有使用“S3是一个被动系统”以及“S3不会运行程序”的文字描述,但官网对S3明确定义是存储系统,并且S3满足如下的西方信息技术体系的认证:

  • 系统和组织控制 (SOC)
  • 支付卡行业数据安全标准 (PCI DSS)
  • 联邦风险与授权管理项目 (FedRAMP)
  • 健康保险流通与责任法案 (HIPAA)

以上报告可以通过AWS Artifact服务下载到报告(带水印):

https://docs.aws.amazon.com/zh_cn/artifact/latest/ug/downloading-documents.html

在这几个认证中都对系统向外部发起连接的场景做了严格的要求。例如上市公司主要审计的在SOC 2中要求security、confidentiality、privacy;在信用卡支付领域权威认证PCI DSS中要求Cardholder Data Environment (CDE)要求必须显式声明、记录、放行向外部的连接,其余一律禁止。在FedRAMP (Federal Risk and Authorization Management Program) 标准中对Cloud Service Providers(CSP)向外部网络连接有明确声明和定义,并满足FIPS 140-2/-3安全加密标准;在HIPPA医疗隐私防护审计中,从当前系统对外发起的连接需要被声明和记录每一个transactions过程。

S3服务通过了多个以上主流认证,确保S3自身不存在对外的恶意请求隐患。

除了S3本身通过的合规认证之外,还可以对S3上存储的文件实施额外的安全管控措施,进一步提升安全级别。

二、关于如何确保S3上的文件不被篡改

1、使用客户端加密

使用客户端加密,由客户自行管理密钥,写入存储后,如果没有密钥,S3服务和其他服务无法读取/修改/删除文件。客户端加密又包括两种方式:

1) 客户端提供密钥的服务端自动加密机制

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html

2) 客户端用SDK加密后写入 

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/UsingClientSideEncryption.html

2、使用文件锁

使用文件锁定Object Lock,一次写入无法修改。

使用对象锁定以锁定对象 可以帮助您满足金融服务监管机构(如SEC、FINRA 和 CFTC)的技术要求,这些监管机构对于某些类型的账簿和记录信息要求编写一次、多次读取 (WORM) 数据存储。

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/object-lock.html

三、限制对S3的访问来源和内网访问

1、配置内网访问端点

S3可被配置为使用VPC内网安全端点并仅接受专线/VPC发来的访问请

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/privatelink-interface-endpoints.html

2、配置S3策略白名单仅允许内网端点访问

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#creating-vpc-endpoint-policy

四、开启访问审计和安全扫描

1、资产清单-确认所有文件都被加密

使用 Amazon S3 清单来帮助管理您的存储。例如,您可以出于业务、合规性和法规需要,使用该清单来审核和报告对象的复制和加密状态。

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/storage-inventory.html

2、扫描恶意访问S3

使用GruadDuty监控对S3的恶意调用。

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/security-best-practices.html#monitoring-data-security

3、开启审计功能

S3的所有操作包括列目录、读取当个文件、写入、策略修改和变更等都有完整交互日志,开启日志并将日志独立保存在单独的AWS账号,可显著提升安全审计能力和水平。

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/cloudtrail-logging.html

4、部署第三方S3存储安全扫描软件

可通过Marketplace部署第三方安全工具对S3上存储文件进行扫描,例如:

https://aws.amazon.com/blogs/apn/integrating-amazon-s3-malware-scanning-into-your-application-workflow-with-cloud-storage-security/

https://aws.amazon.com/marketplace/pp/prodview-q7oc4shdnpc4w

亦可选择其他工具。

五、存储地点本地要求

如果对存储地点有要求,可使用AWS Outpost服务,在指定地点部署S3存储服务器,并通过本地网络进行访问控制。

https://aws.amazon.com/s3/outposts/