
15年网络和信息安全领域从业经验,具有较强的网络安全管理、建设和维护、管理咨询和技术评估实战项目经验,曾就职于联通、绿盟,以及自主创业。现主要担任CISSP(国际注册信息系统安全专家认证)、CISP(国家注册信息安全人员认证)、信息安全管理、渗透测试、等级保护、网络安全防护体系等
内容概述:云安全运行。本模块涵盖评估、选择和管理云计算提供商时的关键注意事项。我们还会讨论服务提供商的安全角色以及对云应急响应的影响。 知识架构图: **云安全运行域包括(源自于:CSA云安全指南-M6):** 一、云提供者需要提供的内容 IaaS (和多数PaaS) 提供者的关键安全能力:API/管理活动日志、弹性和自由伸缩、所有安全特性的API、授权颗粒度、良好的SAML支持、每个客户有多个账户、软件定义网络、区域/位置控制、基础设施模板/自动化配置 二、安全即服务 SecaaS 包括通过云服务方式提供的安全产品或服务,要被视为SecaaS,其服务必须满足域1 中提及的云计算基本特性。 SecaaS潜在的好处包括:云计算优势、人员配置和专业知识、智能共享、部署灵活性、客户无感知、伸缩和成本。 SecaaS潜在的问题包括:能见度不足、监管差异、处理监管的数据、数据泄漏、更换供应商、迁移到SecaaS的困难。 云访问安全代理(CASB,又称云安全网关)拦截直接连接或通过API连接到云服务的通信,以便监视活动、执行策略以及检测和/或防止安全问题。 Web安全包括实时保护,通过软件和/或设备安装提供本地化部署或者通过将Web流量代理或重定向(或两者混合)到云提供商来提供服务。 电子邮件安全应该提供对入站和出站电子邮件的控制,保护组织免受网络钓鱼和恶意附件等风险的影响,并实施可接受的使用和垃圾邮件防范等公司政策,并提供业务连续性选项。 安全评估是通过云方式提供对云服务的第三方或客户驱动的审核或对本地部署系统的评估的解决方案。 基于云的Web 应用程序防火墙(WAF)中,在将流量传递到目标Web 应用程序之前,客户先将流量(使用DNS)重定向到分析和过滤流量的服务。许多云WAF 还包括反DDoS 功能。 云IDS / IPS 可以使用本地化安全的现有硬件、云中的虚拟设备(有关限制请参阅域7)或基于主机的代理。 安全信息和事件管理(SIEM)系统聚合(通过推或拉机制)来自虚拟和物理网络、应用程序和系统的日志和事件数据。然后将该信息去噪并分析,以提供可能需要人工干预或其他类型的响应的信息或事件的实时报告和警报。云SIEM 通过云服务收集这些数据,而不是由客户管理的本地系统。 加密和密钥管理服务提供加密数据和/或加密密钥管理服务。它们可能由云服务提供以支持客户管理的加密和数据安全。 云业务连续性和灾难恢复服务提供商将数据从单个系统、数据中心或云服务备份到云平台,而不是依赖本地存储或运送磁带。 安全服务将传统的安全管理功能(如终端保护、代理管理、网络安全、移动设备管理等)集成到单个云服务中。这减少或消除了对本地管理服务器的需求,并且可能特别适合于分布式组织。 大多数DDoS 保护本质上都是基于云的。它们通过将流量重定向路由到DDoS 服务来实现,以便在影响客户自己的基础架构之前吸收攻击。 **三、事件响应** 在云部署中,事件响应生命周期的每个阶段都会受到不同程度的影响。有些阶段与需要和第三方协调的外包环境中的事件响应类似。其他差异则与云的抽象和自动化特性有关。 SLA 和围绕客户和提供者职责确定期望是基于云资源的事件响应的关键。明确角色/责任的沟通以及实践响应和交接是至关重要的。 云客户必须建立与提供者沟通的适当路径,以便在事件发生时使用。现有的开放标准可以促进事件沟通。 云客户必须了解云提供商所提供的用于分析目的数据的内容和格式,并评估现有的取证数据是否满足司法证据保管链要求。 云客户应该采用持续和无服务器的方式监控云资源,才能比传统的数据中心更早地发现潜在的问题。 基于云的应用程序应利用自动化和业务流程来简化和加速响应,包括遏制和恢复。 对于使用的每个云服务提供商,必须在企业事件响应计划中规划和描述用于检测和处理涉及该供应商托管资源的事件的方法。 每个云服务提供商的SLA 必须保证对事件处理提供支持,以有效地执行企业事件响应计划。这必须涵盖事件处理过程的每个阶段:检测、分析、遏制、根除和恢复。 事件响应计划至少每年或每当应用架构有重大变化时进行测试。客户应尽可能地将其测试程序与供应商(和其他合作伙伴)的测试程序进行最大程度的整合。 测一测,看看您掌握了多少?M6:云安全运行域的相关测试:https://jinshuju.net/f/y8HvTa
内容概述:保护云应用和用户。该模块涵盖了云部署的身份管理和应用程序安全。主题包括结成同盟身份和不同的IAM应用程序、安全开发以及管理云中的应用程序安全。 知识架构图: 保护云应用和用户域包括(源自于:CSA云安全指南-M5): 一、应用安全 云计算主要为应用程序带来安全优势,但与大多数云技术领域一样,带来了机会和挑战。其中机会有:更高的安全基线、响应能力更高、隔离环境、独立的虚拟机、弹性、DevOps、统一接口;其中挑战有:可见性受限、管理平台/元结构直接影响任何应用程序安全性、不断变化的威胁模型、更少的透明度。 安全软件开发生命周期(SSDLC) 描述了在应用程序开发、部署和操作的各个阶段中的一系列安全活动。无论使用哪种特定的SSDLC,云计算都将影响SSDLC的每个阶段。 云计算所支持安全应用程序设计和开发有五个主要阶段:培训、定义、设计、开发和测试。 自动化部署在云环境中往往更加突出,自动化的安全性测试非常频繁的集成到部署管道。 脆弱性评估可以集成到CI/CD管道中,并且相当容易地在云中实现。有两种具体的模式,一种是:针对镜像或容器进行完整的评估;另一种是:通过过使用基础设施作为代码构建一个测试环境来测试整个基础结构。 与脆弱性评估一样,未经云提供商的许可,几乎肯定会有渗透测试的限制。 CI/CD管道通过支持不可变的基础设施(减少对生产环境的手工更改)、自动化安全性测试以及当这些更改通过管道运行时应用程序和基础设施的大量日志记录,可以增强安全性。配置正确后,日志可以跟踪每个代码、基础架构和配置更改,并将它们与提交更改的提交人和批准的人联系起来;它们还将包括任何测试结果。 生产环境可以比非云应用程序部署中通常可能的更紧密,其中大部分基础架构都手动配置为规范。当安全性正常进行时,使用基础设施作为代码和不可变的部署可以显着提高安全性。 云计算本质会在首选应用设计、体系结构和模式中创造了变化。其中一些与安全无直接关系,但以下趋势有助于减少常见安全问题,包括:默认隔离、不可变的基础设施、增加使用微服务、PaaS 和“无服务器”体系结构。 所有服务类型的云提供商需要特别注意其应用服务的某些方面,包括:需要对API和WEB服务进行广泛的强化,并假设来自身份验证和未验证的对手的攻击。这包括使用专门为API设计的行业标准认证;应监测API的滥用和异常活动;服务应经过广泛的设计和测试,以防止攻击或不当/意外的跨租户访问。 SecDevOps/DevSecOps和Rugged DevOps:用来描述将安全活动整合到DevOps的过程。其中,SecDevOps/DevSecOps有时指的是使用DevOps自动化技术来改进安全操作;Rugged DevOps指的是将安全测试整合到应用程序开发过程中,以产生更加坚固、更安全、更具弹性的应用程序。 二、身份、权限和访问管理 云计算的出现,对于内部系统的传统IAM管理引入了许多变化,这并不是说这些都是新问题,但在处理云的IAM管理时是更大的问题。关键的区别是云提供商和云消费者之间的关系,IAM不能仅仅由一方或另一方来管理,因此需要建立信任关系,通过责任指定和技术机制来实现,通常情况下,我们将这种方式归结为联邦。 安全鉴别标记语言SAML 2.0 是联合身份管理的OASIS标准,支持身份验证和授权。它使用XML来在身份提供者和依赖方之间做出鉴别。OAuth是一种非常广泛用于Web服务的IETF授权标准(包括消费者服务),旨在通过HTTP进行工作。OpenID是联邦认证非常广泛支持的Web服务标准,它是基于URLs 的HTTP对身份提供商和用户/身份进行识别。 云提供商需要几乎总是支持直接访问服务的用户的内部身份、标识符和属性,同时还支持联邦,以便组织不必手动配置和管理供应商系统中的每个用户,并颁发每个人的独立凭据。 云消费者需要决定他们希望在哪些地方管理自己的身份,以及他们希望支持哪些架构模型和技术,并与云提供商集成。 云计算对身份验证的最大影响是使用多因素强身份验证,多因素认证为减少账户的恶意利用提供了最好的选择。 云以多种方式影响权限、授权和访问管理,包括:云提供商和平台需要具有一套自身潜在授权机制,云提供商负责强制授权和访问控制,云消费者负责定义权限并在云平台中正确配置它们,ABAC是基于云的访问管理的首选模式。 使用一个更高水平保证措施,如凭证控制,数字证书,物理和逻辑上独立的访问控制点,以及堡垒机等单独严格控制的系统,对特权用户的登录行为进行控制更为有益。 测一测,看看您掌握了多少?M5:保护云应用和用户域的相关测试:https://jinshuju.net/f/zQx1Qp
内容概述:云计算中的数据安全。云安全中最大的问题之一是数据保护。该模块涵盖了云的信息生命周期管理以及如何应用安全控制,重点关注公共云。主题包括数据安全生命周期、云存储模型、不同交付模型的数据安全问题以及管理云中的加密,包括客户托管的密码(BYOK)。 知识架构图: 云计算的数据安全域包括(源自于:CSA云安全指南-M4): **一、云数据存储 & 将数据迁入云中** 由于云存储是虚拟化的,它支持不同于传统存储技术的不同数据存储类型,常见的存储类包括:对象存储、卷存储、数据库、应用程序/平台(如,CDN)检测实际迁移监视云使用情况和任何数据传输,一般用到以下工具:CASB、URL过滤、DLP根据云平台支持的内容,有几种可用于中转加密的选项。一种方法是在发送到云端之前进行加密(客户端加密)。网络加密(TLS / SFTP /等)是另一种选择 二、保护云中数据 云数据访问控制至少可以在三个层面执行:管理平面、公共和内部共享控制、应用程序级别控制。 访问控制选项根据云服务模型和提供商特定功能而有所不同。一般基于平台特定的功能创建一个权限矩阵,这个矩阵记录了用户、组和角色应该访问哪些资源和功能。 加密系统有三个组成部分:数据、加密引擎和密钥管理。数据是您要加密的信息;引擎是加密的数学过程;密钥管理器处理加密密钥。系统的整体设计重点聚焦于每个部件放在哪里。 IaaS加密的方法有:卷存储加密、对象加密和文件存储加密;PaaS加密的方法有:应用层加密、数据库加密、其他加密(如消息队列);SaaS加密的方法有:提供商管理的加密、代理加密。 密钥管理的主要考虑因素是性能、可访问性、延迟和安全性。处理密钥管理有四个潜在的选择:HSM/设备、虚拟设备/软件、云提供商服务、混合。 三、其他数据安全选项 云上应用架构影响数据安全,云提供商提供的功能可以减少攻击面,但确保要求强大的元结构安全性。 云数据监控、审计和告警应该与整体云监控相结合。云平台或提供商可能具有不在本域其他地方覆盖的数据安全控制。 数据丢失防护(DLP)是通过监视本地系统、网络、电子邮件和其他流量来监控和保护员工访问的数据的方法,在云中一般通过以下方法来提供:CASB(云访问和安全代理)、云提供商功能。 完全DRM:这是使用现有工具的传统全数字版权管理。基于提供者的控制:通过使用本地功能,云平台可能能够强制执行与完全DRM相似的控制。 数据屏蔽和测试数据生成是保护在开发和测试环境中使用的数据的技术,或限制对应用程序中数据的实时访问。 四、云信息治理数据治理的定义:确保数据和信息的使用遵循组织的策略、标准和战略- —包括监管、合同和商业目标。 存储在云中的数据在信息和数据治理需求方面遇到的影响来自很多方面,包括:多租户、共享的安全责任、管辖边界和数据主权、适用性规则和隐私政策、销毁和删除数据。 云计算对数据治理域产生影响包括:信息分级、信息管理策略、属地和管辖政策、授权、所有权、保管、隐私、合同控制、安全控制。 生命周期包括从创造到废弃的六个阶段,需要使用数据安全生命周期帮助数据处理和控制进行建模。 在数据迁移到云上时,需要对数据结构和生命周期进行重新思考和重新构建,而不是搁置和平移现有的数据架构。 测一测,看看您掌握了多少?M4:云计算的数据安全域的相关测试:https://jinshuju.net/f/8vzFGH
内容概述: 管理云计算安全性和风险。本模块涵盖了管理云计算安全的重要注意事项。它从风险评估和管理开始,然后涵盖法律和合规问题,例如云中的发现需求。它也涵盖了重要的CSA风险工具,包括CAIQ,CCM和STAR注册表。 知识架构图: 管理云计算的安全性和风险域包括(源自于:CSA云安全指南-M3): 一、云计算安全治理与风险管理 信息安全是信息风险管理的工具,信息风险管理进而是企业风险管理的工具,企业风险管理又是企业治理的工具。 云计算影响治理关系,因为它要么引入对第三方过程管理(在公共云或托管私有云的情况下),或在私有云的情况下可能改变内部的治理结构。 管理云计算时要记住的首要问题是,一个组织永远不能外包治理的责任,即使是使用外部供应商的情况下。 云治理的工具通常包括:合同、供应商(云提供商)评估、合规报告。“云安全联盟STAR注册”可以用来看做是一种保证程序,它提供了一系列文件注册表信息,供云提供商基于CSA的云控制矩阵(CCM)和(CAIQ)开展通用评估的报告。一些云服务提供商还披露额外的认证信息和评估文件(包括自我评估)。 在云环境下,风险管理是基于责任共享模型的(这是我们最经常讨论的参考安全模型)。对某些风险来说,云提供商承担一定的责任,而云客户要承担比这个范围更大的风险责任。在SaaS情况下,云服务提供商承担更多的风险,而在IaaS 情况下,云客户承担更多的风险。 ERM依赖于良好的合同和文件、明确的责任划分以及应对潜在的、未经处理的风险的方式。迁移到云端不会改变你的风险承受能力,它只是改变了管理风险的方式。 不仅需要考虑选择不同的云服务提供商,而且在云服务的交付模式上,也必须注意不同的服务模式和部署模式是如何影响风险的管理、治理和能力的。 云计算在企业风险管理方面有利有弊。在云计算部署中,风险管理的核心方法依然是管理、转移、接受或规避风险。 二、法律问题、合同和电子举证 在许多情况下,根据以下规定,不同国家的法律可能同时适用:云提供商所在的区域;云用户所在的区域;数据主体所在的区域;合同适用的法律管辖区域,可能与某些股东不同;这些不同区域之间的互认条约或其他的法律文书。 当数据被传输到云中后,保护数据以及确保其安全通常是数据收集人或保管人的职责,即使在某些情况下这个责任可能与他人共享。 除了法律、法规、标准以及相关的最佳实践,也要求对数据保管人进行尽职调查(在执行合同前)或安全审计(在合同履行期间),以确保这些责任得到履行。 由于云计算将成为诉讼或调查中所需要的电子化存储信息的仓库,云服务提供商和他们的客户必须仔细规划如何识别案件涉及的所有文档,为了能够满足联邦民事诉讼规则中电子证据发现条款的严格要求,各州也要与这些法律条款相吻合。 三、合规和审计 当组织将其业务从传统数据中心迁移至云计算数据中心之时就将面临新的安全挑战。其中最大的挑战之一即遵从众多监管条例对交付、度量和通信的合规约束。理解云计算与监管环境的相互关系将是任何“云”战略的关键因素。 与安全性一样,合规性在云服务中是一个共享责任模式。这些责任是通过合同、审核/评估和具体的合规性要求的细节来确定的。 云供应商在同时给多个租户提供服务的时候,会(并且通常应该)将部署地点现场审计视为一种安全风险。因此客户与这些供应商的工作将会不得不依赖第三方认证而不是他们自己执行的审计。 四、CSA工具:CCM、CAIQ简介 云安全联盟 (CSA) 维护安全、信任及保证注册项目 (STAR),这是一个可公开访问的免费注册项目,云服务提供商 (CSP) 可在其中发布他们与 CSA 相关的评估。STAR包括三个级别的保证,分别与 CSA云控制矩阵 (CCM)中的控制目标对应。 CMM(云安全控制列表)分为16个域,133个控制项。CCM将云安全控制映射到通用的合规框架、法规和标准,为这些控制构建通用语言。CAIQ(共识评估问卷),云提供者的标准问卷,直接与CCM保持一致。许多提供者在CSA STAR注册表中预先填写并公开。 测一测,看看您掌握了多少?M3:管理云计算的安全性和风险域的相关测试:https://jinshuju.net/f/rr3m9I
内容概述:云计算基础设施安全。本模块深入探讨保护云计算核心基础架构的细节,包括云组件、网络、管理接口和管理员证书。它深入研究了虚拟网络和工作负载安全,包括容器和无服务器的基础知识。 知识架构图: 云计算概念和体系架构域包括(源自于:CSA云安全指南-M2): 一、保护虚拟网络 所有云都利用某种形式的虚拟网络来抽象物理网络并创建网络资源池。目前在云计算中常见的网络虚拟化有两大类:VLAN(虚拟局域网)和 软件定义网络(SDN)。 SDN有多种实现方式,包括基于标准的和专有的选项。根据实现方案的不同,SDN可以提供更高的灵活性和隔离性。 云环境中,由于物理设备不能插入(除云提供商之外),如果仍然需要,则必须用虚拟设备替换它们。 软件定义的网络支持新类型的安全控制,常常使它成为网络安全的整体增益表现在:隔离更容易;SDN防火墙(例如,安全组)可用于比基于硬件的防火墙更灵活标准的资产,因为它们不受物理拓扑的限制。 微分段(有时也被称为hypersegregation)利用虚拟网络拓扑来运行更多、更小,更加孤立的网络,而不用增加额外的硬件成本。 云安全联盟软件定义边界(SDP,Software Defined Perimeter)工作组开发了一种模型和规范,它结合了设备和用户身份验证,动态地提供对资源的网络访问和增强安全性。 如果两个虚拟机位于相同的物理机器上,他们可以直接通讯,在网络上(或附加在路由器/交换机硬件)的监控和过滤工具永远看不到这类流量。另外云平台/提供商可能不支持直接访问网络监控。 云提供商主要负责建立安全的网络基础设施并正确配置。云消费者主要负责合理配置虚拟网络的部署,尤其是虚拟防火墙。 供应商必须维护物理/传统网络的核心安全性,平台在其之上构建。网络上的安全故障可能危及所有客户的安全。对任意通信和多租户来说,这种安全性必须是可被管理的,其中一些必须考虑对抗性。 混合云将企业私有云或数据中心连接到公共云提供商,通常使用专用WAN链路或VPN。一种新兴的混合云连接架构是“堡垒”或“中转”虚拟网络。 二、云计算与负载安全 负载作为一个处理单元,可以在虚拟机、容器或者其他的抽象中,常见的抽象类型包括:虚拟机、容器、基于平台的负载(例如:基于PaaS的任务)、无服务器计算。维持负载的隔离应该是云提供商的首要的责任之一。 动态启用基于镜像创建的实例,部署在容器中,可自动扩展,是最佳的工作状态,这些实例可以在其功能不再需要的时候被关闭,并且不会破坏应用程序栈。这是云环境中弹性计算的核心。 不可变性增加了一些需求:需要一个一致的镜像创建流程和自动化程序来支持部署更新;安全性测试必须集成到镜像创建和部署过程中,包括源代码测试和漏洞评估;镜像配置需要一些机制,在部署镜像并将其应用在生产的虚拟机之前禁用登录和限制其服务;对于某些负载,可能需要一个进程来启用负载的登录功能,当负载在应用程序栈中不可用时可以用来排除故障;如果需要在指定的时间创建几十个甚至数百个镜像,将会增加服务目录管理工作的复杂性。 有些标准负载的控制措施对于云负载来说是不可行的(例如在某些类型的容器中运行防病毒软件)。 安全日志/监控在云计算中更加复杂。 在云计算中实施脆弱性评估需要考虑架构和合同的限制。 三、管理平面安全 管理平面是传统基础架构和云计算之间唯一最重大的安全差异。管理平面控制和配置元结构,也是元结构本身的一部分。 管理平台通常是通过API和Web控制台来实现。在建立和管理安全管理平面上有五方面内 容:边界安全;客户认证;内部认证和凭证传递;授权和权限;日志、监控和告警。 四、业务连续性和容灾 像安全和合规一样,业务连续性和灾难恢复(BC/DR)是双方共担的责任。云提供方应管理其职责内的方面,云客户也应承担云服务如何使用和管理的最终责任。 当部署资产到云上时,您不能假定云将永存或总是以您期望的方式运行,BC/DR 必须考虑整个逻辑栈。 对云提供方的中断进行应对策划通常是很困难,因为一旦选用它就没办法做什么改变。所以,依据供应商的历史绩效及其内部可用性的能力,接受此风险通常是个合法的选择。 私有云和云提供方的业务连续性,这完全在由提供方来承担,业务连续/容灾包括所有物理设施的宕机。 测一测,看看您掌握了多少? M2:云计算基础设施安全域的相关测试:https://jinshuju.net/f/6IiFoI
内容概述:本单元涵盖了云计算的基础知识,包括定义、构架和虚拟化的角色。主要议题包括云计算服务模型,部署模型和基本特征。它还介绍了共享责任模型和接近云安全的框架。 知识架构图: 云计算概念和体系架构域包括(源自于:CSA云安全指南-域1): 一、云计算概述 云计算是一种新的运作模式和一组用于管理计算资源共享池的技术。NIST将云计算定义为:云计算是一个模式,它是一种无处不在的、便捷的、按需的、基于网络访问的、共享使用的、可配置的计算资源(如:网络、服务器、存储、应用和服务),并可以通过最少的管理工作或与服务提供商的互动来快速置备并发布。ISO/IEC的定义非常相似:通过自服务置备和按需管理,实现网络可访问、可扩展的、弹性的共享物理或虚拟资源池的范式。 创建云的关键技术是抽象和调配(编排)。我们从底层的物理基础设施中抽象出资源来创建我们的池,并使用调配(和自动化)来协调从池分割和分发各种资源到用户。 在NIST对云计算的定义中,包括了五个基本特征、三个云服务模型、以及四个云部署模型。五个基本特征包括:资源池化、按需自服务、广泛网络访问、快速弹性、可测量服务。ISO/IEC 17788 列出了六个关键特性,其中前五个特性与NIST 的特征相同。唯一的补充是多租户。三个云服务模型包括:软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)。四个云部署模型包括:公共云、私有云、社区云、混合云。 在较高的层次上,云计算和传统计算都遵循一个逻辑模型,该模型有助于根据功能识别不同的层。这有助于说明不同计算模型本身之间的差异:1. 基础设施,包括计算系统的核心组件:计算机,网络和存储,其他组件设立的基础,移动部件;2. 元结构,提供基础设施层与其他层之间接口的协议和机制,是一种将多种技术紧密联系起来、实现管理与配置的粘合剂;3. 信息结构,数据和信息,如数据库中的内容,文件存储等。4. 应用结构,部署在云端的应用程序和用于构建它们的底层应用程序服务。 云计算与传统计算的关键区别在于元结构。云计算元结构包括了可网络接入且远程访问的管理平台组件。另一个关键的区别在于,在云端,你往往会给每个层次赋予双重的任务。 二、云安全范围、职责和模型 云计算是一种共享技术模式,不同的组织通常会承担实施和管理不同部分的责任。因此,安全职责也由不同的组织分担,所有的组织都包含在其中,这通常被称为共享责任模型。 云安全模型是一个协助指导安全决策的工具。具体包括:1. 概念模型或框架,包括用于解释云安全概念和原理的可视化效果和描述,如CSA 逻辑模型;2. 控制模型或框架,对特定的云安全控制或控制类别进行分类和细化,如CSA CCM;3. 参考架构,是指实现云安全的模板,这个架构通常是具有普遍性的。4. 设计模式,是针对特定问题的可重复使用的解决方案。 一个相对简单的的高级流程来管理云安全:确定必要的安全和合规要求以及任何现有的控制点->选择云提供商、服务和部署模型->定义架构->评估安全控制->确定控制差距->设计和实施控制以弥补差距->持续管理变更。 测一测,看看您掌握了多少? M1:云计算概念和体系架构域的相关测试:https://jinshuju.net/f/GSbJTI
知识域2:资产安全 内容概述 资产安全知识域涵盖信息和信息资产在其生命周期中的安全保护,包括恰当的收集、分类、处置以及控制措施的选择和使用。本知识域的重要概念包括数据的所有权、隐私、数据安全控制和相关密码学的应用。安全和风险管理知识域包含了许多基本的信息安全概念、原则以及信息安全管理相关活动和方法。 资产安全知识域在CISSP CBK中包括(源自于:CBK5): 一、资产安全概念 数据管理必须遵循一套广泛适用于组织的原则和程序。完善的数据策略可以指导组织仅仅收集所需的信息、确保这些信息安全,并且在不需要的时候安全的销毁它们。 在许多大型组织中,数据治理委员会负责监督数据策略,并概述了不同职能利益相关方的角色和职责。组织应确定如何管理重要数据的创建、转换和使用。以上这些描述了数据治理。 数据质量涉及数据的完整性和可靠性。在衡量数据质量时,首要考虑的因素包括准确性、货币性和相关性。 质量保证(QA):使用规定的标准来评估和发现数据中的不一致和其他异常情况,并应用数据净化技术来交付最终产品。QA解决了问题:“数据是否符合目的?” 质量控制(QC):根据内部标准、流程和程序进行数据质量评估,以控制和监视QA所告知的质量。质量控制解决了以下问题:“数据可以使用吗?” 记账错误:数据输入错误或不正确的转录,这类错误应该在数据获取过程中通过QA来减少。 遗漏错误:这些遗漏的数据可能导致不准确的值、数据资产解释或者数据计算,这类错误很难检测。 信息资产生命周期模型描述了:一个实体在其生命周期中,所经历的变化。企业去管理和控制,对他们的信息访问,是非常重要的。 **二、标识和分类信息和资产**了解为什么以及如何对数据进行分类。对数据进行分类是为将安全控制分配过程简化成分配给一组客体而不是单个客体。两个常见的分类方案是政府、军事分类和商业私营部门分类。 了解政府/军事分类方案的五个级别和商业/私营部门分类方案的四个分类级别。 理解解除分类的重要性。一旦资产不再被授权保护其当前指定的分类或敏感级别,就需要解除分类。 **三、确定和维护信息和资产的所有权**了解不同角色之间的差异。数据所有者负责分类、标记和保护数据。系统所有者负责处理数据的系统。业务拥有者负责过程并确保系统为组织提供价值。数据使用者通常是处理数据的第三方实体。管理员根据数据所有者提供的指南授予数据的访问权限。用户在执行任务时访问数据。托管员有责任保护和存储数据。 **四、保护隐私**了解PII和PHI。个人身份信息(PII)是能够识别个人的任何信息。受保护的健康信息(PHI)是特定的人的任何与健康相关的信息。许多法律法规规定了PH和PHI的保护。 了解隐私如何适合于安全领域。了解隐私的多重含义/定义,为什么保护隐私很重要,以及工作环境中与隐私相关的问题。 了解GDPR安全控制。GDPR规定了隐私数据的保护方法。GDPR中提到的两个关键安全控制是加密和假名。假名是用化名替换某些数据元素的过程。这使得识别个人身份更加困难。 **五、确保适当的资产保留**理解记录保存。记录保留策略确保数据在需要时保持可用状态,在不再需要时销毁它。许多法律法规要求在特定时段内保存数据,但在没有正式规定的情况下,组织根据策略确定保留期。审计踪迹数据需要保持足够长的时间以重构过去的事件,但组织必须确定他们要调查多久之前的事。许多组织目前的趋势是通过实现电子邮件短保留策略来减少法律责任。 **六、确定数据的安全控制**了解数据和资产分类的重要性。数据所有者负责维护数据和资产分类,并确保数据和系统被正确标记。此外,数据所有者还提出了在不同的分类信息中保护数据的新要求,比如在静止和传输中加密敏感数据。数据分类通常在安全策略或数据策略中定义。 **七、建立信息和资产处置需求**你需要知道如何管理敏感信息。敏感信息是任何类型的机密信息,适当的管理有助于防止未经授权的泄露导致机密损失。正确的管理包括对敏感信息的标识、处理、存储和销毁。组织经常遗漏的两个方面是充分保护保存敏感信息的备份介质,并在其生命周期结束时对介质或设备进行净化。 了解安全控制基线。安全控制基线提供了组织可作为基线应用的控件列表。并非所有基线都适用于所有组织。然而,组织可应用范围界定和按需定制技术使基线适应自己的需求。 能够解释变更控制和变更管理的概念。安全环境的变更可能引入漏洞、重叠、客体丢失和疏忽,进而导致出现新的脆弱性。面对变更,维护安全的唯一途径就是系统性的变更管理。 测一测,看看您掌握了多少?(建议您将联机复制到PC中测试) D2:资产安全相关测试: 以下源自AIO8:测试题链接(D2):https://jinshuju.net/f/2YexMt 以下源自OSG8:测试题链接(第5章):https://jinshuju.net/f/AGrmrV
知识域1:安全和风险管理 内容概述 安全和风险管理知识域包含了许多基本的信息安全概念、原则以及信息安全管理相关活动和方法。该知识域涵盖了在企业信息安全中相关的基本概念和原则,包括:机密性、完整性和可用性等;还涵盖了信息安全治理的主要概念和方法,包括安全治理的概念、企业中安全相关的组织角色和责任、安全管理计划编制以及安全策略结构;信息安全专业人员需要参与到相关的安全管理活动中,主要包括制定和实施相关的策略来支持风险管理活动,最终符合法律、法规等要求,以及在出现不可预见的灾难情况下确保企业业务的连续运营。 安全和风险管理知识域在CISSP CBK中包括(源自于:CBK5): **一、 理解和应用机密性、完整性和可用性的概念** 理解由保密性、完整性和可用性组成的CIA三元组。保密性原则是指客体不会被泄露给未经授权的主体。完整性原则是指客体保持真实性且只被经过授权的主体进行有目的的修改。可用性原则指被授权的主体能实时和不间断地访问客体。了解这些原则为什么很重要,并了解支持它们的机制,以及针对每种原则的攻击和有效的控制措施。 能够解释身份标识是如何工作的。身份标识是下属部门承认身份和责任的过程。主体必须为系统提供标识,以便启动身份验证、授权和问责制的过程。 理解身份验证过程。身份验证是验证或测试声称的身份是否有效的过程。身份验证需要来自主体的信息,这些信息必须与指示的身份完全一致。 了解授权如何用于安全计划。一旦对主体进行了身份验证,就必须对其访问进行授权。授权过程确保所请求的活动或对象访问是可能的,前提是赋予已验证身份的权利和特权。 **二、评估和应用安全治理原则** 理解安全治理。安全治理是与支持、定义和指导组织安全工作相关的实践集合。能够解释审计过程。审计(或监控追踪和记录)主体的操作,以便在验证过的系统中让主体为其行为负责。审计也对系统中未经授权的或异常的活动进行检测。需要实施审计来检测主体的恶意行为、尝试的入侵和系统故障,以及重构事件、提供起诉证据、生成问题报告和分析结果。 理解问责制的重要性。组织安全策略只有在有问责制的情况下才能得到适当实施。换句话说,只有在主体对他们的行为负责时,才能保持安全性。有效的问责制依赖于检验主体身份及追踪其活动的能力。 能够解释不可否认性。不可否认性确保活动或事件的主体不能否认事件的发生。它防止主体声称没有发送过消息、没有执行过动作或没有导致事件的发生。 了解关键的安全角色。主要的安全角色有高级管理者、组织所有者、上层管理人员、安全专业人员、用户、数据所有者、数据托管员和审计人员。通过创建安全角色的层次结构,可以全面限制风险。 了解分层防御如何简化安全。分层防御使用一系列控制中的多个控制。使用多层防御解决方案允许使用许多不同的控制措施来抵御威胁。 能够解释抽象的概念。抽象用于将相似的元素放入组、类或角色中,作为集合被指派安全控制、限制或许可。抽象增加了安全计划的实施效率。 理解数据隐藏。顾名思义,数据隐藏指将数据存放在主体无法访问或读取的逻辑存储空间以防数据被泄露或访问。数据隐藏通常是安全控制和编程中的关键元素。 理解加密的必要性。加密是对非预期的接收者隐藏通信的真实含义和意图的艺术与科学。加密有多种形式,适用于各种类型的电子通信,包括文本、音频和视频文件及应用程序。加密是安全控制中的重要内容,特别是在系统间传输数据时。 理解如何管理安全功能。为管理安全功能,组织必须实现适当和充分的安全治理。通过风险评估来驱动安全策略的实施是最明显、最直接的管理安全功能的实例。这也与预算、测量、资源、信息安全策略以及评估安全计划的完整性和有效性相关。 **三、明确合规需求** 了解COBIT的基础知识。COBIT是一种安全控制基础架构,用于为企业制定复合的安全解决方案。 解释全面合规程序的重要性。大多数组织都受制于与信息安全相关的各种法律和法规要求。构建合规性程序可确保你能实现并始终遵守这些经常重叠的合规需求。 **四、了解在全球背景下与信息安全相关的法律和监管问题** 了解刑法、民法和行政法的区别。刑法保护社会免受违反我们所信仰的基本原则的行为的侵害。违反刑法的行为将由美国联邦和州政府进行起诉。民法为人与组织之间的商业交易提供了框架。违反民法的行为将通过法庭,由受影响的当事人进行辩论。行政法是政府机构有效地执行日常事务的法律。 了解版权、商标、专利和商业秘密之间的区别。版权保护创作者的原创作品,如书籍、文章、诗歌和歌曲。商标是标识公司、产品或服务的名称、标语和标志。专利为新发明的创造者提供保护。商业秘密法保护企业的经营秘密。 了解不同类型的软件许可协议。合同许可协议是软件供应商和用户之间的书面协议。开封生效协议写在软件包装上,当用户打开包装时生效。单击生效许可协议包含在软件包中,但要求用户在软件安装过程中接受这些条款。 理解美国和欧盟对管理个人信息隐私的主要法律。美国有许多隐私法律会影响政府对信息的使用以及特定行业的信息使用,例如处理敏感信息的金融服务公司和医疗健康组织。欧盟有非常全面的《通用数据保护条例》来管理对个人信息的使用和交换。 了解如何将安全纳入采购和供应商管理流程。许多组织广泛使用云服务,需要在供应商选择过程中以及在持续供应商管理过程中对信息安全控制进行审查。 **五、理解、坚持和促进职业道德**(ISC)2道德规范准则:保护社会、公共利益、必要的公共信任和信心、以及基础设施。行为得体、诚实、公正、负责和遵守法律。为委托人提供尽职的和胜任的服务工作。发展和保护职业声誉。 **六、制定、记录和实施安全策略、标准、程序和指南** 理解安全管理计划。安全管理基于三种类型的计划:战略计划、战术计划和操作计划。战略计划是相对稳定的长期计划,它定义了组织的目的、任务和目标。战术计划是中期计划,为实现战略计划中设定的目标提供更多细节。操作计划是基于战略和战术计划的短期和高度详细的计划。 了解规范化安全策略结构的组成要素。要创建一个全面的安全计划,需要具备以下内容:安全策略、标准基线、指南和程序。这些文件清楚地说明安全要求,并促使责任各方实施尽职审查。 **七、识别、分析和考虑业务连续性优先级** 了解BCP过程的四个步骤。BCP包括四个不同阶段:项目范围和计划,业务影响评估,连续性计划,计划批准和实施。每项任务都有助于确保实现在紧急情况下业务保持持续运营的总体目标。 描述如何执行业务组织分析。在业务组织分析中,负责领导BCP过程的人员确定哪些部门和个人参与业务连续性计划。该分析是选择BCP团队的基础,经BCP团队确认后,用于指导BCP开发的后续阶段. 列出BCP团队的必要成员。BCP团队至少应包括:来自每个运营和支持部门的代表,IT部门的技术专家,具备BCP技能的物理和IT安全人员,熟悉公司法律、监管和合同责任的法律代表,以及高级管理层的代表。其他团队成员取决于组织的结构和性质。 了解BCP人员面临的法律和监管要求。企业领导必须实施尽职审查,以确保在灾难发生时保护股东的利益。某些行业还受制于联邦、州和地方法规对BCP程序的特定要求。许多企业在灾难发生前后都有履行客户合约的义务。 解释业务影响评估过程的步骤。业务影响评估过程的五个步骤是:确定优先级、风险识别、可能性评估、影响评估和资源优先级排序。 描述连续性策略的开发过程。在策略开发阶段,BCP团队确定要减轻哪些风险。在预备和处理阶段,设计可降低风险的机制和程序。然后,该计划必须得到高级管理层的批准并予以实施。人员还必须接受与他们在BCP过程中角色相关的培训。 解释对组织业务连续性计划进行全面文档化的重要性。将计划记录下来,可在灾难发生时给组织提供一个可遵守的书面程序。这可确保在紧急情况下有序实施计划。 **八、树立和实施人员安全策略和程序** 理解雇用新员工对安全的影响。为实施恰当的安全计划,必须为职责描述、职位分类、工作任务、工作职责、防止串通、候选人筛选、背景调查、安全许可、雇佣协议和保密协议等设立标准。通过采用这些机制,可确保新员工了解所需的安全标准,从而保护组织的资产。 能够解释职责分离。职责分离的概念是将关键的、敏感的T作任务划分给多个人员。通过以这种方式划分职责,可确保没有能够危害系统安全的个人。 理解最小特权原则。最小特权原则要求在安全的环境中,用户应获得完成工作任务或工作职责所需的最小访问权限.通过将用户的访问限制在他们完成工作任务所需的资源上,就可以限制敏感信息的脆弱性。 了解岗位轮换和强制休假的必要性。岗位轮换有两个功能。它提供了一种知识备份,岗位轮换还可以降低欺诈、数据修改、盗窃、破坏和信息滥用的风险。 为了审计和核实员工的工作任务和特权,可使用一到两周的强制休假。强制休假能够轻易发现特权滥用、欺诈或疏忽。 能够解释恰当的解雇策略。解雇策略规定解雇员工的程序,应该包括有现场证人、禁用员工的网络访问权限和执行离职面谈等内容。解雇策略还应包括护送被解雇员工离开公司,并要求归还安全令牌、徽章和公司财产。 **九、理解和应用风险管理概念** 能够定义整体的风险管理。风险管理过程包括识别可能造成数据损坏或泄露的因素,根据数据价值和控制措施的成本评估这些因素,并实施具有成本效益的解决方案来减轻风险。通过执行风险管理,为全面降低风险奠定基础。 理解风险分析和相关要素。风险分析是向高层管理人员提供详细信息以决定哪些风险应该缓解,哪些应该转移,哪些应该接受的过程。要全面评估风险并采取适当的预防措施,必须分析以下内容:资产、资产价值、威胁、脆弱性、暴露、风险、已实现风险、防护措施、控制措施、攻击和侵入。 知道如何评估威胁。威胁有许多来源,包括人类和自然。以团队形式评估威胁以便提供最广泛的视角。通过从各个角度全面评估风险可降低系统的脆弱性。 理解定量风险分析。定量风险分析聚焦于货币价值和百分比。全部使用定量分析是不可能的,因为风险的某些方面是无形的。定量风险分析包括资产估值和威胁识别,然后确定威胁的潜在发生频率和造成的损害,结果是防护措施的成本/效益分析。 能够解释暴露因子(EF)概念。暴露因子是定量风险分析的一个元素,表示如果已发生的风险对组织的某个特定资产造成破坏,组织将因此遭受的损失百分比。通过计算风险暴露因子,就能实施良好的风险管理策略。 了解单一损失期望(SLE)的含义和计算方式。SLE是定量风险分析的一个元素,代表已发生的单个风险给特定资产带来的损失。计算公式为:SLE=资产价值(AV)*暴露因子(EF) 。 理解年度发生率((ARO)。ARO是量化风险分析的一个元素,代表特定威胁或风险在一年内发生(或实现)的预期频率。进一步了解可帮助计算风险并采取适当的预防措施。 了解年度损失期望(ALE)的含义和计算方式。ALE是定量风险分析的一个元素,指的是针对特定资产的所有可发生的特定威胁,在年度内可能造成的损失成本。计算公式为:ALE=单一损失期望((SLE)*年度发生率(ARO)。 了解评估防护措施的公式。除了确定防护措施的年度成本外,还需要为资产计算防护措施实施后的ALE。可使用这个计算公式:防护措施实施前的ALE-防护措施实施后的ALE-防护措施的年度成本=防护措施对公司的价值,或(ALE1-ALE2) - ACS。 理解定性风险分析。定性风险分析更多的是基于场景而不是基于计算。这种方式不用货币价值表示可能的损失,而对威胁进行分级,以评估其风险、成本和影响。这种分析方式可帮助那些负责制定适当的风险管理策略的人员。 理解Delphi技术。Delphi技术是一个简单的匿名反馈和响应过程,用来达成共识。这样的共识让各责任方有机会正确评估风险并实施解决方案。 了解处理风险的方法。风险降低(即风险缓解)就是实施防护措施和控制措施。风险转让或风险转移是将风险造成的损失成本转嫁给另一个实体或组织;购买保险是风险转移的一种形式。 风险接受意味着管理层已经对可能的防护措施进行了成本/效益分析,并确定了防护措施的成本远大于风险可能造成的损失成本。这也意味着管理层同意承担风险发生后的结果和损失。 能够解释总风险、残余风险和控制间隙。总风险是指如果不实施防护措施,组织将面临的风险。可用这个公式计算总风险:威胁脆弱性资产价值=总风险。残余风险是管理层选择接受而不再进行减轻的风险。总风险和残余风险之间的差额是控制间隙,即通过实施防护措施而减少的风险。残余风险的计算公式为:总风险一控制间隙=残余风险。 理解控制类型。术语“控制”指广泛控制,执行诸如确保只有授权用户可以登录和防止未授权用户访问资源等任务。控制类型包括预防、检测、纠正、威慑、恢复、指示和补偿控制。控制也可分为管理性、逻辑性或物理性控制。 理解如何管理安全功能。为管理安全功能,组织必须实现适当和充分的安全治理。通过风险评估来驱动安全策略的实施是最明显、最直接的管理安全功能的实例。这也与预算、测量、资源、信息安全策略以及评估安全计划的完整性和有效性相关。 了解风险管理框架的六个步骤。风险管理框架的六个步骤是:安全分类、选择安全控制、实施安全控制、评估安全控制、授权信息系统和监视安全控制。 **十、理解和应用威胁建模概念和方法** 了解威胁建模的基础知识。威胁建模是识别、分类和分析潜在威胁的安全过程。威胁建模可当成设计和开发期间的一种主动措施执行,也可作为产品部署后的一种被动措施执行。关键概念包括资产攻击者/软件、STRIDE、PASTA、Trike、VAST、图表、简化/分解和DREAD。 **十一、将基于风险管理的概念应用于供应链** 理解将基于风险的管理理念应用于供应链的必要性。将基于风险的管理理念应用到供应链中,可确保所有规模的组织都具有更加可靠和成功的安全策略。若收购时未考虑安全因素,这些产品的固有风险在整个部署生命周期中都存在。 理解供应商、顾问和承包商的控制。供应商、顾问和承包商的控制用来确定组织主要的外部实体、人员或组织的绩效水平、期望、薪酬和影响。通常,这些控制条款在SLA文档或策略中规定。 能够讨论第三方安全治理。第三方安全治理是由法律、法规、行业标准、合同义务或许可要求强制规定的监督制度。 **十二、建立并维护安全意识、教育和培训计划** 了解如何实施安全意识培训。在接受真正的培训前,必须让用户树立已认可的安全意识。一旦树立了安全意识,就可以开始培训或教导员工执行他们的工作任务并遵守安全策略。所有新员工都需要一定程度的培训以便他们遵守安全策略中规定的所有标准、指南和程序。教育是一项更详细的工作,学生/用户学习的内容比他们完成工作任务实际需要知道的要多得多。教育通常与用户参加认证或寻求工作晋升关联。 测一测,看看您掌握了多少? D1:安全和风险管理的相关测试: 以下源自AIO8: 测试题链接(D1):https://jinshuju.net/f/AP8apf 以下源自OSG8: 测试题链接(第1章):https://jinshuju.net/f/theEKQ 测试题链接(第2章):https://jinshuju.net/f/X4IqYU 测试题链接(第3章):https://jinshuju.net/f/PmA5JZ 测试题链接(第4章):https://jinshuju.net/f/Eh7hpD
网络安全涉及的范围非常的广泛,涉及了IT领域中操作系统、网络、数据库、应用、开发等众多方面,因此在学习网络安全技术知识前,就需要我们掌握一定的基础IT技术知识。但掌握多少、掌握多深,成为了很多同学的难点。 前面我们给大家对Linux、网络基础技术进行了介绍,接下来是数据库基础技术。 该部分内容包括:一、数据库基本概念和学习方法二、MySQL数据库安装、配置三、MySQL数据库基本操作和应用四、数据库管理 免费视频:MySQL数据库学习方法和概述MySQL对象与应用和运维技术 实验手册:实验七:安装MySQL和使用工具连接实验八:MySQL数据库基本操作和应用 微信群交流,添加“铭学小助手”微信号:istudy1314 入群 更多内容,欢迎大家扫描图中二维码参加:
网络安全涉及的范围非常的广泛,涉及了IT领域中操作系统、网络、数据库、应用、开发等众多方面,因此在学习网络安全技术知识前,就需要我们掌握一定的基础IT技术知识。但掌握多少、掌握多深,成为了很多同学的难点。 前面我们给大家对Linux基础技术进行了介绍,接下来是网络基础技术。 该部分内容包括:一、网络基础内容和学习方法介绍二、TCP|IP技术基础三、局域网相关技术和协议四、网络路由相关技术和协议五、常见网络应用层协议和工具 免费视频:网络基础概念和学习方法介绍IP基础概念和相关交换技术传输层、应用层基础概念和路由技术以及相关网络层工具 实验手册:实验四:网络安全概述实验五:IP基础和交换技术实验六:路由技术和抓包工具 微信群交流,添加“铭学小助手”微信号:istudy1314 入群 更多内容,欢迎大家扫描图中二维码参加:
网络安全涉及的范围非常的广泛,涉及了IT领域中操作系统、网络、数据库、应用、开发等众多方面,因此在学习网络安全技术知识前,就需要我们掌握一定的基础IT技术知识。但掌握多少、掌握多深,成为了很多同学的难点。接下来将由唐老师给大家进行相关的介绍,首先是Linux基础技术。 该部分内容包括:一、Linux系统相关概念和学习方法介绍二、Linux系统概述三、用户管理四、设备和文件管理五、网络和服务管理六、程序管理七、其他常用命令 免费视频:Linux基础内容学习方法和概述用户管理和文件管理网络管理、任务管理和其他常用命令 实验手册:实验一:Linux系统概述 实验二:Linux系统账号和文件管理实验三:Linux系统网络、服务、程序管理和其它常用命令 微信群交流,添加“铭学小助手”微信号:istudy1314 入群 更多内容,欢迎大家扫描图中二维码参加:
网络安全战争和军事战争有很多类似的地方,保障我们企业的网络安全无疑也是一场战争,有入侵方,也有防御方。 在我国军事历史上有一位杰出军事专家林彪,他写过一篇《怎样当好一名师长》,很有借鉴意义。下面我们借鉴他的核心思想和方法,来看看如何当好一名网络安全管理者。纯属个人观点,不喜勿喷。 一、要勤快 不勤快的人办不好事情,不能当好安全管理者。应该自己干的事情一定要亲自过目,亲自动手。比如,应该上去看安全日志和配置策略就要去看,应该了解的情况就要及时了解,应该检查的问题就要严格检查。 不能懒,网络安全管理者切忌懒,因为懒会带来危险,带来失败。比方说,一个安全管理者,到了公司就到办公室,泡好茶,上网看新闻、刷朋友圈、瞎聊天。他对公司有什么业务,多少信息资产,部署了什么应用,应用对外对内是怎么交互的,会面临什么安全威胁,是否有安全防御措施,这些措施是否有效,是否有不足,安全管理策略和流程是否完善合理,公司员工安全意识如何,相关安全技能怎样,是否有对安全事件的应急预案,都不过问,都不知道。这样,如果半夜三更发生了情况,攻击者来个突然袭击,就没有办法了。到那种时候,即使平时能力很强的网络安全管理者,也会束手无策,只好三十六计,跑为上计,结果,变成一个机会主义者。 机会主义和打败仗,常常是因为没有思想准备,没有组织准备,工作没有做到家,懒的结果。因此,不论大小安全管理者都要勤快,要不惜去实际调研,不怕劳累,要多用脑子,要做到心到、眼到、口到、脚到、手到。事情没有做好以前,不能贪闲。贪闲就隐伏着犯错误的根子。什么事都要心中有底," 凡事预则立,不预则废 "。雷打不动的安全管理者,牛皮糖式的安全管理者,不管有多大本事,都不是好安全管理者。 二、要摸清上级的意图 对上级的意图要真正理解,真正融会贯通,真正认识网络安全对整个公司业务在公司战略全局和战术项目中的地位和作用。这样,才能充分发挥自己的主观能动性;才能打破框框,有敢于和善于在新情况中找到新办法的创造性;才能有大勇,才能决心强、决心狠,敢于彻底胜利,有强烈的打败攻击者的企图和雄心。 安全管理者的勇敢集中表现在推进安全项目和保障企业安全的坚定顽强上面。安全管理者的大勇建立在职业的最高自觉性和正确理解上级意图的基础上面。 三、要调查研究 对于安全威胁、技术、业务发展、人员配备和法律法规,要经常做到心中有数。要天天摸,天天琢磨,不能间断。这样做,不能看作是重复,实际上这不是重复,而是不断深化不断提高的过程,是取得正确认识的必不可少的手段。平时积累掌握的情况越多,越系统,在发生安全事件时,特别是在紧张复杂的情况下,就越沉着,越有办法。急中生智的 " 智 ",才有基础。 因此,调查研究工作要贯串在各项工作中,要贯串在每一项目、安全事件的整个过程,反对打莽撞仗、糊涂仗,反对急性病,反对不亲自动手做调查研究的懒汉作风。特别是敌情,必须切实摸透。因为敌情是活的,敌人必然会极力隐蔽、伪装他们的真实企图和行动。要尽一切可能不间断地侦察,查清敌人的部署和动向,看他扮演什么角色?是主角还是配角?能集中多大力量向我们发起攻击,等等。 只要摸清了敌情、我情、地形的底,决心就快,就硬,就坚定。就不会被任何假象所迷惑,就不会被任何困难所吓住。如果情况不清,就会犹豫不决,举棋不定,坐失良机,或者勉强下了决心,一遇风吹草动,听到畏难叫苦和不正确的建议,就容易动摇,可能一念之差,前功尽弃。 四、要有个活地图 网络安全管理者必须熟悉公司安全风险地图,目前的业务、流程、系统和数据有什么安全漏洞,遭受过或可能遭受什么样的风险,要经常地去读。熟读这些可以产生见解,产生智慧,产生办法,产生信心。读的方法就是根据业务的目标和发展,顺着业务流程,结合安全日志或威胁情报等信息,从粗度到细读,逐块逐块地读。 在熟读地图的基础上,要亲自组织有关人员对业务和系统进行实地安全调查,核正风险地图,把战场的地形情况和敌我双方的部署都装至脑子里去,做到闭上眼睛面前就有一幅鲜明的战场图影,离开地图也能指挥作战。这样,在你死我活、瞬息万变的战斗情况下,可以比敌人来得快,争取先机,先敌一着,掌握主动,稳操胜券。 五、要把各方面的问题想够想透 每一次网络安全事件处置的组织,要让大家提出各种可能出现的问题,要让大家来找答案,而且要从最坏的最严重的情况来找答案。把所有提出来的问题都回答了,再没有问题没有回答的了,这样,打起仗来才不会犯大错误,万一犯了错误,也比较容易纠正。没有得到答案的问题,不能因为想了很久想不出来就把它丢开,留下一个疙瘩。如果这样,是很危险的,在紧要关头,这个疙瘩很可能冒出来,就会使你们心中无数,措手不及。 当然,在安全事件发生的环境中,要考虑的问题很多,不可能一次都提完,也不可能一次都回答完,整个实战 的过程,就是不断提出问题和不断回答问题的过程。有时脑子很疲劳,有的问题可能立即回答不了。这时,除了好好地和别人商量以外,就好好地睡一觉,睡好了,睡醒了,头脑清醒了,再躺在床上好好想一想,就可能开窍,可能想通了,回答了,解决了。 总之,对每一个问题不能含糊了事。问题回答完了,网络安全事件处置的组织才算完成。 六、要及时下达决心 在什么样的情况下可以下决心打呢?网络安全管理者必须以最大努力组织网络安全事件处置 的准备工作,力求确有把握才动手,不打无把握之仗。但是任何一次事件处置都不可能完全具备各种条件,不可能有百分之百的把握。一般说有百分之七十左右的把握,就很不错了,就要坚决地打,放手地打。不足的条件,要通过充分发挥人的因素的作用,依靠企业内部和行业其他专业人员的力量,以主观努力来创造条件,化冒险性为创造性,取得胜利。 七、要有一个很好的很团结的班子 领导班子思想认识要一致,行动要协调、合拍,要雷厉风行,要有英雄主义的气概。都要勤快,都千方百计地办好事情,完成任务。不互相扯皮,不互相干扰,不抱旁观者的态度。如果领导班子不好,人多不但无用,反而有害。 八、要有一个很好的战斗作风 有好的战斗作风的团队才能打好仗,打胜仗。好的战斗作风首先是不叫苦,抢着去担负最艰巨的任务;好的战斗作风要靠平时养成,要靠实际锻炼,要在紧张、残酷的战斗中才能锻炼出来。做工作也要有好的作风,说了就要做,说到那里做到那里,要做得干脆利索,要一竿子插到底,一点不含糊,不做好不撒手。
基于SonarQube的自动化代码缺陷检测:WebGoat实战(一) 前面已经利用开源软件搭建,在阿里云环境下搭建一套基于SonarQube的自动化安全代码检测平台,具体可参见:http://www.freebuf.com/articles/security-management/160897.html 接下来,我们可以利用该平台对WebGoat源码进行分析。后续相关操作,包括用户名和密码等配置都使用上一篇文章中的内容。 本次环境我们采用的是最新版本的WebGoat 8,如果对WebGoat不熟悉的同学,可以参考OWASP的官方链接:https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project 由于本次我们主要是做静态代码分析,而不是渗透测试,因此我们只需要将WebGoat 8的源代码下载下来, 并上传到“自动化安全代码检测平台”即可。 一、从GitHub上下载WebGoat 8的源代码 下载链接为:https://github.com/WebGoat/WebGoat/releases,我们直接下载最新的源码压缩包即可: 二、下载后解压,并通过SVN上传至“自动化安全代码检测平台” 1. 清除前期的测试代码如果前搭建环境中(包括我给大家的镜像中)都含有一个HelloWorld的源码库,因此需要删除此源码库。大家也可以重新配置SVN,但为了便于实验的方便,我们直接删除HelloWorld源码库。删除比较简单,直接通过SVN下载本机,然后在本机上删除后再提交即可,具体步骤如下图所示: a. 加载“自动化安全代码检测平台” (如果镜像正常,并未释放,可以跳过此操作)在阿里云上加载镜像,创建的ECS建议大家使用的配置为:2CPU、8G内存、40G硬盘、2M带宽。 小提示:建议大家用“竞价实例”,目前价格比较便宜。 b. 清理SVN中前期的HelloWorld源码在前期本地创建的文件夹上点击右键,然后选择“SVN Update”,然后将同步好的代码全部删除: 再在此文件上点击右键选择“SVN Commit”,选择所有文件,点击“OK”: 这样平台上的“HelloWorld”源码将全部删除。 2. 将我们下载的WebGoat 8源码解压到此文件夹后上传平台 在总文件夹上点击右键选择“SVN Commit”上传: 三、更新和配置SonarQube的检测插件 WebGoat 8是Java编写的,本次实验我们使用Findbugs for Java的插件来进行检测(插件相关说明将会在后续文章中描述,有兴趣的朋友也可以自行在互联网上搜索)。1. 登录SonarQube在Chrome浏览器中打开SonarQube,并登陆:http://ip:9000 2. 选择“配置”—》应用市场,并在搜索中输入“findbug”,如下图: 3. 点击“安装”在这里直接点击安装即可,安装完成后,会提示重启服务器,点击重启等待片刻页面重新能加载即安装完成。注意:由于网络的原因,可能会安装报错,只用重新点击安装按钮即可。 4. 质量配置如下图所示,把Java、JSP相关的配置,把Findbugs设置为“默认”,这样就会使用Findbugs来进行检测: 四、构建检测任务 1. 登录Jenkins,并构建一个Maven的任务由于WebGoat是用Maven来创建并编写的,因此我们也要构建Maven的任务,如下图: 2. 配置任务具体配置项如下内容: General,项目名称可以不用改动: 源码管理,前期我们配置过SVN,直接使用即可: 在Post Step中选择“Execute SonarQube Scanner”,并做如下配置: Analysis properties内容如下: sonar.projectKey=my:WebGoat# this is the name displayed in the SonarQube UIsonar.projectName=webgoatsonar.projectVersion=1.3.12 # Path is relative to the sonar-project.properties file. Replace "" by "/" on Windows.# Since SonarQube 4.2, this property is optional if sonar.modules is set.# If not set, SonarQube starts looking for source code from the directory containing# the sonar-project.properties file. sonar.sources=.sonar.java.binaries=. # Encoding of the source code. Default is default system encoding#sonar.sourceEncoding=UTF-8 点击“保存”后,开始构建: 注意:第一次构建时间较长,可在console界面中查看过程: 完成后,会在console界面中显示“success”的提示 五、在SonarQube中分析检查结果 打开SonarQube中的结果,将会看到相关的缺陷,如下图所示: 后续我们将针对WebGoat这个案例进行源码缺陷分析,可加我的微信(fantastic103)拉入讨论群,持续关注和讨论。需要此案例镜像的同学可发邮件至tangjf10@aliyun.com索要。 致谢:本平台测试和搭建过程中得到了北京理工大学计算机学院计卫星教授、研究生高志伟以及“滇峰技术”团队的大力帮助和支持,在此表示感谢。
一、背景和目的 近年来,随着新业务、新技术的快速发展,应用软件安全缺陷层出不穷。虽然一般情况下,开发者基本都会有单元测试、每日构建、功能测试等环节来保证应用的可用性。但在安全缺陷方面,缺乏安全意识、技能和工具,最终导致了安全缺陷的出现。 对于软件开发安全意识和软件开发安全技能方面本文中不再做详述,软件开发者可通过培训和实践提高自身意识和技能,我主要从代码检测工具方面来做介绍,工具是软件开发者可以直接使用和快速发现软件安全缺陷的高效手段,这类似我们使用汽车来满足出行的需求,只用我们掌握汽车的操作方式即可,不用了解汽车如何制造出来的。 本文目的主要是提供一种思路和方法,让软件开发者像测试软件功能一样,测试软件安全缺陷,并且能够融入到整个的软件开发过程中。 说明:本文暂不介绍软件安全开发的概念、代码审计工具及其使用、安全代码审计技术等内容,后续文章会就这些部分进行介绍,大家可关注。 二、自动化安全代码检测平台概述 2.1. 什么是安全代码审计工具? 代码安全审计工具是以静态的方式在程序中查找可能存在的安全缺陷,如:缓冲区溢出、空指针引用、资源泄露和SQL注入等。安全代码测试工具目前比较多,例如Fortify、FindBugs等,大家感兴趣可以通过互联网搜索到这些工具的一些描述,本文中也不再赘述。 2.2. 软件开发人员是否可以自行直接利用这些安全代码审计工具完成测试? 答案在理论上是可以的,但是在实践中基本是很难落地。原因有如下几点:1)工具众多,很难选择;2)工具误报较高,如何提高准确率,软件开发人员很难处理;3)单一工具如何与开发过程进行结合。4)安全代码审计工作在企业里很有可能是安全专业人员的职责,这样企业里会出现安全和开发隔离的情况。 2.3. 什么是自动化安全代码检测平台 自动化安全代码检测平台应该具有以下的几个功能: 1)能够融入到软件开发的过程中 2)自动、高效、准确的进行检测 3)自动生成检测报告,供项目管理者和开发人员查看 三、在阿里云环境下搭建基于SonarQube的自动化安全代码检测平台搭建实践 3.1. 检测平台概述 首先选择在阿里云上搭建此平台主要的原因是:今后每个开发者可以直接使用我已搭建好的镜像自行来进行安全代码检测,而省去了搭建和维护的时间,并且也不用担心代码泄露的问题(如果使用的是SaaS服务,代码的保密问题将是一个很大的挑战)。 这个平台环境主要是基于Jenkins、SVN、Maven、SonarQube集成搭建的,下面分别大概介绍一下这几个软件: Jenkins(本次环境使用的是:sonarqube-6.7.1)是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。先了解一下持续集成的概念:持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。而Jenkins就是基于Java开发的一种持续集成工具,用于监控持续重复的工作。 SVN(本次环境使用的是:Subversion1.9.7)是Subversion的简称,是一个开放源代码的版本控制系统,用于多个人共同开发同一个项目,共用资源的目的。 Maven(本次环境使用的是:Maven 3.5.2)是通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven主要做了两件事:统一开发规范与工具、统一管理jar包。 SonarQube(本次环境使用的是:6.7.1)是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量通过插件形式,可以支持包括java,C#,C/C++等二十几种编程语言的代码质量管理与检测。 3.2. 自动化安全代码检测平台搭建的核心思路。 在基于SonarQube的平台中,SVN是检测的入口,SonarQube是检测的主要工具和检测报告生成出口,Jenkins作为一个持续集成工具将SVN和SonarQube关联起来,监控SVN的动作并适时触发SonarQube对提交的代码进行检测。SonarQube类似一个路由器,以插件的形式集成了许多缺陷检测工具,由于大多数检测工具要求对输入的项目进行编译并提取相关的信息,因此,在本平台上也安装了Maven。在SonarQube开始检测之前,Jenkins首先调用Maven对代码进行编译,然后将源代码和编译的输出信息送给SonarQube进行检测。 将这些工具集成在一起的好处在于: (1) 在代码审计融入到软件项目的持续开发过程中,自动生成高质量的检测报告,无需人工干预,提高了软件开发效率; (2) SonarQube以插件的形式可以集成众多的检测工具,目前已知可以支持XX种工具。检测工具的更新升级,不会影响到正常的软件开发流程; (3) 以阿里云镜像的方式提供给大家使用,最大限度的保护了个人和公司的知识产权,方便工具的落地使用。 目前,我们的团队还在不断地集成新的工具,以及开发更加高效和精确的检测器,保证了平台的持续更新升级,大家在简单配置之后,能够体检到最好的代码审计服务。 3.3. 搭建方法和步骤 说明:以下环境搭建方法,我已做成镜像,可向大家共享,大家可发邮件索取(tangjf10@aliyun.com)。另外以下配置也可以根据自己的习惯进行修改。 3.3.1. 基础环境准备 首先,在阿里云上购买一台ECS,性能配置为1 CPU、4G内存(最少4G)、1M带宽,操作系统选择ubuntu16.04 64位; 然后,系统启动后,使用root安装jdk1.8和MySQL,并修改环境配置文件,具体操作命令可参考如下: 1) 安装JDK1.8.0_151,操作如下: a. 在官方网站上下载tar包,并上传至目录/usr/bin下,然后是用tar命令解压; b. 添加环境变量配置,命令如下: vi /etc/profile 在该文件的末尾加上以下内容后保存: #JDK JAVA_HOME=/usr/bin/jdk1.8.0_151 JRE_HOME=/usr/bin/jdk1.8.0_151/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH PATH=$JAVA_HOME/bin:$PATH b. 更新生效,并测试,命令如下: . /etc/profile (注意:此命令是 点 空格 /etc/profile) jave -version 如果返回了java的版本信息,即设置成功。 2)安装MySQL 5.7.20,操作如下: apt-get update apt-get install -y mysql-server mysql-client 在安装过程中,会要求设置root密码,此镜像中设置的密码为:123456@a 安装完成后,使用root用户登录MySQL数据库,登陆成功即安装成功,命令为: mysql -u root -p 3.3.2. 新建用户 一般情况下,开发者不能直接使用root用户来管理和使用系统,最好通过一个专有用户来进行操作,因此我们新建一个用户qube,具体命令为: adduser qube 本镜像中,qube用户的密码设置为bit@2017 如果需要给qube用户sudu权限,可修改/etc/sudoers文件,具体操作如下: vi /etc/sudoers 修改文件内容如下: # User privilege specification root ALL=(ALL:ALL) ALL qube ALL=(ALL:ALL) ALL 保存退出,qube用户就拥有了sudo权限 添加好此用户后,我们就使用该用户登录并完成后续的操作。 3.3.3. 安装SVN服务端 1. 安装SVN服务端 sudo apt-get install subversion 2. 配置SVN服务端 mkdir -p /home/qube/svn/repos svnadmin create /home/qube/svn/repos 接下来,进行身份认证、权限等相关配置。配置文件都在/home/qube/svn/repos/目录下,我们主要关心的是conf和db文件,conf文件夹下是存放主配置文件和用户、权限位置,db文件夹是存放svn转储后的数据、在conf目录下authz文件是设置用户权限,passwd文件是存储用户及密码,svnserve.conf是主配置文件,先配置主配置文件: vim svnserve.conf anon-access = none /**匿名用户不可读不可写**/ auth-access = write /**授权用户可写**/ password-db = passwd /**指定账号密码配置文件**/ authz-db = authz /**指定权限配置文件**/ realm = /home/qube/svn/repos **指定版本库所在目录**/ 再配置passwd文件: vim passwd #格式是用户名=密码,采用明文密码。这里设置了一个用户admin,密码为bit@2017 [users] admin = bit@2017 最后配置authz文件 vim authz #增加以下信息,admin拥有根目录所有权限 [/] admin = rw 3. 启动服务 输入命令: svnserve -d -r /home/qube/svn/repos 4. 验证 输入命令: netstat -antp |grep svnserve 出现以下信息,即正常: tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 28967/svnserve 3.3.4. 安装Sonarqube和Sonar-scanner 1. 下载SonarQube和Sonar-scanner 首先,在本机打开网站http://www.sonarqube.org/downloads/, 找到下载地址:https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.1.zip和https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778.zip 然后下载: cd /home/qube wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.1.zip wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778.zip 2. 安装SonarQube和Sonar-scanner 安装比较简单,直接解压即可: sudo apt-get install unzip unzip sonarqube-6.7.1.zip unzip sonar-scanner-cli-3.0.3.778.zip 由于解压以后文件目录名称较长,可以使用mv命令来更改名称,本镜像中,更改为了: /home/qube/sonarqube/和/home/qube/sonar-scanner 3. 配置环境变量 sudo vim /etc/profile 加入以下内容: #SonarQube export SONAR_HOME=/home/qube/sonarqube export SONAR_RUNNER_HOME=/home/qube/sonar-scanner export PATH=$PATH:$SONAR_RUNNER_HOME/bin 保存退出vi后,更新: . /etc/profile 4. 创建数据库sonar 登陆MySQL mysql -u root -p 创建sonar数据库和用户(用户名和密码都为sonar) mysql> CREATE DATABASE sonar DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec) mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar'; Query OK, 0 rows affected (0.10 sec) mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> 5. 配置sonarqube,修改配置文件sonar.properties cd /home/qube/sonarqube/conf vim sonar.properties 修改内容: sonar.jdbc.username=sonar #数据库名 sonar.jdbc.password=sonar #密码 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 6. 配置sonar-scanner,修改配置文件sonar-scanner.properties cd /home/qube/sonar-scanner/conf vim sonar-scanner.properties 修改内容: sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 7. 运行sonarqube cd /home/qube/sonarqube/bin/linux-x86-64 ./sonar.sh start 8. 验证 在本地浏览器输入:http://服务器ip:9000/ 能打开页面即正常。(初次启动时间大概在2分钟左右) 9. 修改管理员密码和安装中文插件 修改密码 点击右上角 login,输入用户名和密码admin admin (第一次登录会有一个配置向导,直接跳过即可)。然后进入后,再点击右上角的图标,选择my account,修改密码(bit@2017) 点击菜单administrator,然后选择marketplant,搜索Chinese,就能看到中文插件,安装并选择重启服务即可。 3.3.5. 安装Maven 1. 下载Maven 首先,在本机打开网站http://maven.apache.org/download.cgi 找到下载地址:http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz 然后下载: cd /home/qube wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz 2. 安装Maven 安装比较简单,直接解压即可: tar zxvf apache-maven-3.5.2-bin.tar.gz 然后为了管理方便mv更改目录名称为maven mv apache-maven-3.5.2 maven 3. 设置环境变量,操作如下: sudo vim /etc/profile 在/etc/profile文件最后加入: #Maven export M2_HOME=/home/qube/maven export CLASSPATH=$CLASSPATH:$M2_HOME/lib export PATH=$PATH:$M2_HOME/bin 保存退出,并加载配置 . /etc/profile 4. 验证 执行mvn –v查看maven版本信息,即正常 3.3.6 安装Tomcat 1. 下载Tomcat-8.5.24 首先,在本机打开网站http://mirrors.shuosc.org/apache/tomcat/ 找到下载地址:http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz 然后下载: cd /home/qube wget http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz 2. 安装Tomcat tar -zxvf apache-tomcat-8.5.24.tar.gz mv apache-tomcat-8.5.24 tomcat cd /home/qube/tomcat/bin/ tar -zxvf commons-daemon-native.tar.gz ./configure make cp jsvc ../../ 3. 启动Tomcat cd /home/qube/tomcat/bin/ ./catalina.sh start 4. 验证 在本机浏览器里输入: http://服务器公网IP:8080 能打开页面即正常。 3.3.7 安装Jenkins 1. 下载Jenkins 首先,在本机打开网站http://mirrors.jenkins-ci.org/war-stable/ 找到下载地址: http://mirrors.jenkins-ci.org/war-stable/2.89.2/jenkins.war 然后下载: cd /home/qube wget http://mirrors.jenkins-ci.org/war-stable/2.89.2/jenkins.war 2. 安装Jenkins Jenkins安装比较简单,直接复制到tomcat的webapps目录下即可,操作如下: mv /home/qube/jenkins.war /home/qube/tomcat/webapps/ 3. 配置Jenkins 在本地浏览器中,输入http://服务器公网IP:8080/jenkins,打开页面后初次登录根据提示需要输入/roocd t/.jcd senkins/secrets/initialAdminPassword文件中的内容后,点击登录。此时还会需要你选择插件的安装,我们选择默认安装“Install suggested plugins”即可(此安装时间根据网络情况大概在10分钟以上)。 插件安装完以后会提示建立身份认证相关的配置,我们直接跳过进入主页中修改即可。本镜像的用户名和密码为admin/bit@2017 3.3.8 自动化安全代码检测环境的集成 安装完这些基础软件以后,需要在Jenkins中进行集成,具体操作如下: 1. 系统设置,将SonarQube Server 和 Jenkins URL设置好,点击系统管理—》系统设置: 注意:使用镜像时,需要把此处进行配置成自己服务器的IP。 2. 全局工具配置中集成jdk、Maven,点击系统管理—》全局工具配置,然后按照页面提示填入相应参数,如下图所示: 3.4. 自动化安全代码检测平台的使用示例 按照我们前面提到的核心思路,我们在Jenkins中创建任务来检测我们的代码(本镜像中,创建了一个helloWorld的工程,大家使用配置可参考)。大概操作如下: 3.4.1. 新建任务,选择构建一个maven项目,点击确定。 3.4.2. 项目配置中,需要配置源码管理、触发器和build任务。 1. 首先,取一个项目名称 2. 配置触发器 3. build任务: 其中Analysis properties的内容可参考如下: sonar.projectKey=my:project # this is the name displayed in the SonarQube UI sonar.projectName=helloWorld sonar.projectVersion=1.3.12 # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. # Since SonarQube 4.2, this property is optional if sonar.modules is set. # If not set, SonarQube starts looking for source code from the directory containing # the sonar-project.properties file. sonar.sources=src sonar.binaries=bin # Encoding of the source code. Default is default system encoding #sonar.sourceEncoding=UTF-8 sonar.java.binaries=/home/qube/ 然后保存即可 3.4.3. 上传项目,并检测 1. 我们在本机上安装svn客户端,我使用的是TortoiseSVN,然后配置连接服务器,上传项目。 2. 在Jenkins刚刚创建的任务中,点击立即“立即构建”,此时我们将在窗口右侧看到构建的进度,如果构建成功后,任务会提示执行成功。 3.4.3 查看项目代码的检测结果 登录Sonarqube,我们将看到执行结果,操作如下: 在本机输入http://服务器ip:9000/,填入用户名admin和密码bit@2017后,我们将看在首页上就能看到检测结果: 致谢: 本平台测试和搭建过程中得到了北京理工大学计算机学院计卫星教授和研究生高志伟的大力帮助和支持,在此表示感谢。
本域为云计算安全指南的其它所有部分介绍一个概念性的框架。它描述和定义了云计算,设置了我们的基本术语,并详细描述了文档其余部分中使用的总体逻辑和架构框架。
今天开始深入学习和理解CSA云安全指南,第一天先把大概架构了解一遍,做了一张思维图:
2020年03月
2020年02月
2019年09月