如果想要对云中的资产进行安全保护,则首先需要看到并了解它的安全风险,因此云上的可见性是所有企业进行安全性判断并实施管理的基础。云安全能力的首要原则就是能够充分地掌握各类资产与流量等指标信息,以确保用户可以及时了解云中正在发生的事情。
为了云上可见,除用户在利用平台原生能力和各类虚拟化工具复制与云下环境中类似的,对系统应用、资源配置等组件和参数的常规监控能力外,还需要解决的挑战之一就是网络连接和流量可见的问题。由于传统的安全监测依赖于抓取流经物理设备的流量及分析设备日志,但云中数据会在实例和应用之间移动,并不会穿过物理线路,因此传统的网络分流器或数据包代理等抓包技术就会失效。同时,当海量的数据在多个数据中心或跨云平台的环境中流动时,掌握企业网络行为和数据流向将有助于企业遵守不同安全政策地区的要求。
云上可见性主要包含系统与应用可见、网络连接与流量可见、资源与配置可见等几部分。
云中的安全可控性是指云中不同责任的主体能并且只能对其当下权限内的数据、资源、行为行使权力并负责的一种属性,它要求主体具有可以通过各种安全控制措施保证客体不因外界影响而变化的控制能力。具体来说,当云上的系统、应用或配置偏离预期状态时,用户需要具备管理或控制此变化的能力,并且这个能力还需要被限制在可定义的权限范围内。当在对云中资源进行系统性管控时,需要确保系统和应用等组件严格以其最初设计和配置的要求来运行。
评价云上安全可控性需要从访问控制、基础设施安全、数据安全、威胁监测、响应与恢复等多个角度去综合评价用户的云上安全管理能力。
云安全的审计是安全管理的重要组成部分,是任何用户进行风险治理、安全管理以及合规工作的必备条件。云上用户应该具备检查各类权限控制、操作行为、资源分配、数据处理等是否符合规范要求的能力,这个能力需要通过收集、整理和分析各类监控和留存的实时和历史日志等信息来实现。安全审计能力评估应从是否能够支持审计人员工作的角度出发,评价是否可以支持针对海量审计数据的快速提取、分析、检索、处理,是否能提供充分的数据来支撑对威胁的发现、追踪、定位源头等。
云中的审计能力包含对访问控制的审计、资源与配置的审计、行为与流量的审计等。
云安全能力需要继承云服务灵活性的优势,能够按需扩展并根据安全策略的变化而实时地进行基础架构和安全能力的调整和部署。这种灵活性需要体现在,当出现安全事件问题时,应快速联动不同的云资源和第三方服务进行响应和恢复、灵活地进行配置,以支持不同场景的分析和审计的工作要求,以及帮助用户最大化地利用资源进行安全建设和运营,实现成本控制。
安全管理能否最大限度地避免人工干预,准确地根据预案快速进行安全处置和响应,并形成自动化安全管理和安全运营闭环是云上安全能力的重要优势。
评估自动化安全能力主要是考虑用户是否能实现云上资产和行为的全面自动化监测、响应,是否可以帮助用户从耗时、耗力的告警分析、安全监测、漏洞修复、应急响应等基础工作中解放出来,是否可以利用云的能力弥补大部分企业缺乏安全管理和运维人员平均能力的不足,在访问控制、资源配置、基础设施与数据安全、日志审计、持续检测与监控、响应恢复等方面自动化遵守云上最佳实践的要求,提升效率、降低风险。
安全能力等级要求可以简单划分为三级,如下表所示。

识别和访问管理是云上安全建设的基础,在云中,必须先建立一个账户并被授予特权,然后才能进行配置或编排资源。典型的自动化架构包括权利映射、授权或审核,秘密资料管理,执行职责分离和最低特权访问,即特权管理,减少对长期凭证的依赖。
识别与访问控制的评估需要从账户策略、账户通知与账单管理、凭证与密码管理、IAM用户管理和客户身份管理等几部分进行。
账户管理是评估云上识别与访问管理能力的核心部分,企业上云的第一步就需要创建一个具有根权限的账户,由于此账户始终具有管理所有资源和服务的权限因而需要尽可能地减少使用。企业还应可以自定义针对不同场景和目的的用户和组,因此,必须为用户和组建立安全和适当的账户结构。在这些用户、组被创建后,也可能需要独立的密码或访问密钥等,这时就需要合理的策略来保护这些访问凭证。许多企业出于安全性或成本等因素的考虑往往使用多个账户,并使每个账户都与其他账户完全隔离。
企业的账户策略可以通过使用账户隔离、VPC等方式来隔离不同职能和项目的云环境。账户策略评估项如下表所示。

保持账户联系列表的更新和安全事件的及时通知对于云上租户及时了解安全事件非常重要,而这部分在实操中往往会被企业忽略或由于人员变动而导致更新不及时,从而增加了企业对事件的响应时间。另外,由于账单信息和企业员工信息具有价值性和隐私性的特点,因此访问这些信息的权限也需要被重点考虑。
账户通知与账单管理评估项如下表所示。

由于云账户或IAM用户都具有唯一身份,因此它们有唯一的长期访问凭证,这些访问凭证与身份一一对应,一般包括两种类型:访问管理控制台的用户名与密码和用于调用API的接入ID和密钥。这些用户应定期更改其密码并轮换访问密钥,删除或停用不需要的凭证,对于敏感操作使用多因子验证。
凭证与密码管理评估项如下表所示。

由于IAM访问控制管理为用户和组的资源访问权限提供了机制保证,任何与云中资源交互的用户或应用都需要提供IAM来进行权限分配和管理,因此需要从用户身份全生命周期的角度评估基于IAM身份的用户管理安全性。
IAM用户管理评估项如下表所示。

由于安全的基础架构已成为必须承担基础性安全防御的底座,因此可以从VPC架构、远程网络接入安全性、入侵检测与边界防御、实例级安全控制角度评估基础设施是否暴露了过多的攻击面,以及是否遵从云上纵深防御的结构性安全设计。
VPC虚拟私有网络可以创建跨区域的、安全的、资源隔离的基础架构环境,可以实现账户内不同网络之间的逻辑隔离,同时也可以实现内网与互联网之间的网络层隔离。企业往往会在同一个账户中,通过VPC来实现对具有不同目的的环境的隔离,因此评估VPC模型是进行基础设施安全的第一步。
VPC模型安全评估项如下表所示。

在云租户创建云上逻辑隔离的环境之后便可以启动云上资源,此时有可能需要与本地数据中心进行互联。这就需要有机制来保证云到本地连接的安全性,同时保证所有远程访问行为的被管理和被审计。
远程接入的安全评估项如下表所示。

云中除了利用VPC架构及网络访问控制和实例级安全组等手段,还需要其他的一些组件和手段来构建完整的多层次纵深防御体系,如入侵检测与边界防御。
入侵检测与边界防御安全评估项如下表所示。

云中的实例与物理主机或虚拟主机一样,以相同的方式运行并选择操作系统。根据云的共担责任模型,云上的租户需要具有自己来管理和更新操作系统补丁、确保运行时环境保持更新、配备主机杀毒等端点安全控制能力,因此我们需要对实例级别的安全能力进行评估。
实例安全评估项如下表所示。

云上最重要的环节就是重要信息数据的保护,云服务商应该提供全面的安全能力来保证整个生命周期数据的安全性。云上数据的评估可以根据重要级来进行并对工作负载的保存进行设计和标记,并通过 VPN、TLS/SSL、证书等方式来保证保存和传输中数据的安全性,这也是安全能力评估的重要组成部分。
数据的安全分级与保护就是利用分级、加密、备份等措施,保证云中重要数据免受网络威胁的干扰和破坏、未经授权的访问等。
如今,数据已成为企业最重要的核心资产之一,因此企业应该对重要数据和敏感信息进行分类分级,以业务流程、数据标准为输入,梳理场景数据,识别数据资产分布,明确不同级数据的安全管控策略和措施。
对于云平台来说,数据保护分为两类:静态数据的保护和传输数据的保护。客户可以根据自己的需要来设计存放数据和使用数据的位置,在此评估中,我们主要考虑数据保护的策略,会对存放数据的所有位置进行合规性评估,但不会深入到监管部门的法律法规中。
数据分级与保护策略评估项如下表所示。

静态数据保护的核心是对云上的存储服务、卷级别存储块和操作系统内部等多个存放位置中的数据进行自动化加密并实施访问控制策略来增强安全性。评估静态数据安全的主要内容是判断企业是否有能力利用各类加密技术对在云中所有可能位置的数据进行保护,并可在多个可用区存储多副本或低成本的长期保存,保证数据的高可用性和灵活的存储策略。
静态数据评估项如下表所示。

数据在流转过程中的安全性包括采取一些必要的安全措施,防止数据被窃取、篡改和伪造,保证通信网络的安全。通过加密技术、数字证书、数字签名、时间戳等技术,以及SSL/TLS等安全通信协议来保证数据的安全性、完整性、可靠性及访问数据身份的真实性等。对传输中数据的安全性评估对于企业云中数据的泄露风险至关重要。
数据传输安全评估项如下表所示。

云服务能够提供各类日志数据,以帮助用户监控与云平台的各种交互。典型的自动化监控与审计包括日志汇总、告警、富化、日志搜索、可视化、工作流程和工单系统等,通过评估审计、监控和日志模型,来评估是否可以形成较系统化的监测与审计闭环。
安全审计管理员在开展审计活动时,需要按照既定的安全策略,利用各类信息和行为记录来检查、审查事件的环境和活动,从而快速发现异常行为、系统漏洞等风险和问题,以改善安全能力,这就要求可见、可控的信息自动化记录内容要全面和丰富。
审计安全评估项如下表所示。

检测和监控的核心是通过持续性检测和不断改进过程来及时告警恶意行为、错误配置和资源滥用等情况,同时通过降低人工参与度来自动处理海量告警的效率和准确性问题。
监控安全能力评估项如下表所示。


事件响应和恢复能力主要是指通过制订应急响应计划快速对威胁程度进行识别、处置和恢复的能力。自动化事件响应流程可以显著提升云上服务的可靠性、响应速度,并为事后审计和分析创建更加方便的环境。评估企业响应和恢复能力主要考虑企业快速应对事件的能力,提供自动化扩展的能力,以及隔离可疑的组件、部署即时调查工具并创建工作流程形成响应和处置闭环的能力。
事件响应是一种有效的策略,使企业能够处理网络安全事件并最大限度地减小其对运营中断的影响。同时,通过回顾还能提升对未来事件的防御水平。
自动化响应能力评估项如下表所示。

云客户的可用性和恢复能力是指应对安全事件的容忍度,以及由安全事件恢复到正常状态的一系列设计、运行、维护和管理的活动和流程,对于云客户而言,大部分的托管服务都由云平台提供,可能已经实现高可用性,但仍然需要对责任共担模型中客户需要承担的部分的合理性和完备性进行评估。
可用性和恢复能力评估项如下表所示。

DevSecOps 要求云上开发从一开始就要考虑应用和基础架构的安全性问题,同时还要让安全实现自动化,而不是成为敏捷开发的主要障碍。成功的DevSecOps模型可以消除企业不同组织间的孤岛,还可以促进安全团队、风险管理团队、数据团队和技术团队之间的协作。因此,必须考虑在DevSecOps中引入安全控制措施以保证安全性和响应能力。
DevSecOps评估项如下表所示。

我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同
我在Ruby程序中有两个URI。一个肯定是绝对URI,另一个可能是绝对URI或相对URI。我想在第一个的上下文中将第二个转换为绝对URI,所以如果第一个是http://pupeno.com/blog第二个是/about,结果应该是http://pupeno.com/about.有什么想法吗? 最佳答案 Ruby的内置URI和Addressablegem,做这个简短的工作。我更喜欢Addressable,因为它功能更全面,但URI是内置的。require'uri'URI.join('http://pupeno.com/blog','/
我有一个Builder类,可让您添加到其中一个实例变量:classBuilderdefinitialize@lines=[]enddeflinesblock_given??yield(self):@linesenddefadd_line(text)@lines现在,我该如何改变它my_builder=Builder.newmy_builder.lines{|b|b.add_line"foo"b.add_line"bar"}pmy_builder.lines#=>["foo","bar"]进入这个?my_builder=Builder.newmy_builder.lines{add_li
在我的代码中,我使用自动加载进行惰性评估,这样我可以更快地加载程序并在需要时加载文件,我没有看到很多人使用它,但在Thin项目中我注意到自动加载已被广泛使用,反正只是想知道使用它是否有任何风险。 最佳答案 autoload是notthreadsafe并将在未来的Ruby版本中弃用。这是proofbyMatz(ruby的创造者)。 关于ruby-使用autoload与ruby中的require进行惰性评估?,我们在StackOverflow上找到一个类似的问题:
我在一个ruby文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我需要实现具有各种灵活需求的密码安全。这些要求基本上取自Sanspasswordpolicy:Strongpasswordshavethefollowingcharacteristics:Containatleastthreeofthe