包括两个层面:业务开发和基础运维
业务开发
互联网企业涉及的研发业务主要为Web服务、App移动应用以及PC(个人电脑)端软件等。
业务开发方面的安全问题主要是由于软件开发人员安全编程能力(SDL)差、安全意识薄弱以及配套的企业安全制度规范及流程建设不到位造成的。很多安全事故产生的原因都是研发人员进行开发时编写了有漏洞的代码。
基础运维
业务开发(Dev)完成后,就进入运维(Ops)阶段了,该阶段的资产管理、漏洞与补丁管理、安全配置基线、应急响应等如果没有做好也容易造成各种安全风险。
据统计,70%以上的安全威胁来自企业内部。
隔离安全
隔离包括网络隔离和物理隔离。
网络隔离主要包括网络边界隔离,例如VPN、防火墙、Wi-Fi、部门间的网络隔离等。
物理隔离主要包括门禁系统、摄像监控等方面的隔离。
终端安全
终端主要包括PC、打印机、电话及BYOD(Bring Your Own Device,指携带自己的设备办公,这些设备包括个人电脑、手机、平板等)设备等。
办公系统安全
办公系统主要包括Mail、OA、CRM、ERP、HR、BOSS等方面的系统,还有针对研发的代码管理和测试系统(如SVN、Git、Wiki、Jenkins系统等)。
员工安全
涉及员工安全的问题比较多,比如弱口令、离开工位后电脑不锁屏、外部人员尾随进入、私自接入BYOD设备、安装盗版软件、复制公司产品代码和数据、使用私人邮件处理公司事务、将公司最新产品的未公开信息告诉亲朋好友等。这些问题造成的最大也最普遍的危害就是数据泄露,内部安全做的好不好和是否进行了有效的员工安全意识培训、是否具备完善的安全流程制度及技术管控手段息息相关。
为保障网络空间安全、用户数据隐私安全,一些法律出台。对我国影响较大的法律:
常见的供应链风险通常会发生在基础设施、生产软件和加密算法这三个方面。
基础设施
芯片可能被植入硬件木马。路由器、服务器和其他计算机网络设备可能被安装后门监听工具。
生产软件
开发软件可能被污染、植入后门。
加密算法
加密算法在很多方面都是保障安全的基础。如果加密算法在底层被嵌入后门将非常可怕。
网络安全体系是一项复杂的系统工程,需要把安全组织体系、安全技术体系和安全管理体系等手段进行有机融合,构建一体化的整体安全屏障。下面介绍一些知名的安全架构模型。
P2DR是Policy(安全策略)、Protection(防护)、Detection(检测)和 Response(响应)的缩写。P2DR模型以PDR模型(Protection、Detection、Response)为基础。
(1)Policy(策略):定义系统的监控周期、确立系统恢复机制、制定网络访问控制策略和明确系统的总体安全规划和原则。
(2)Protection(防护):采用一系列手段(识别、认证、授权、访问控制、数据加密)保障数据的保密性、完整性、可用性、可控性和不可否认性等。通常是通过采用一些传统的静态安全技术及方法来实现的,主要有防火墙、加密、认证等方法。
(3)Detection(检测):利用各类工具检查系统可能存在的供黑客攻击、病毒泛滥的脆弱性,即入侵检测、病毒检测等。通过不断地检测和监控网络和系统,来发现新的威胁和弱点,通过循环反馈来及时作出有效的响应。
(4)Response(响应):在检测到安全漏洞和安全事件之后必须及时做出正确的响应,从而把系统调整到安全状态,杜绝危害的进一步蔓延扩大,力求将安全事件的影响降到最低。
P2DR是动态安全理论的主要模型,可以表示为:安全=风险+分析+执行策略+系统实施+漏洞检测+实时响应。
动态安全理论的最基本原理是:安全相关的所有行为(包括攻击 、防护、检测、响应)都需要消耗时间。因此可以用时间来衡量一个体系的安全性和安全能力,即提高系统的防护时间(PT)、降低检测时间(DT)和响应时间(RT)。
(1)PT:攻击成功所需时间被称做安全体系能够提供的防护时间;
(2)DT:在攻击发生的同时,检测系统发挥作用,攻击行为被检测出来需要的时间;
(3)RT:检测到攻击之后,系统会作出应有的响应动作,所需时间被称作响应时间。
要实现安全,必须让防护时间大于检测时间加上响应时间:PT > DT + RT
。为什么?
(1)PT > DT + RT
,系统安全,即在安全机制针对攻击、破坏行为作出了成功的检测和响应时,安全控制措施依然在发挥有效的保护作用,攻击和破坏行为未给信息系统造成损失。
(2)PT < DT + RT
,系统不安全,即信息系统的安全控制措施的有效保护作用,在正确的检测和响应作出之前就已经失效,破坏和攻击行为已经给信息系统造成了实质性破坏和影响。
P2DR模型是在动态安全理论的控制和指导下,在综合运用防护工具(如防火墙、操作系统身份认证、加密等)的同时,利用检测工具(如漏洞评估、入侵检测等)了解和评估系统的安全状态,通过适当的响应将系统调整到“最安全”和“风险最低”的状态。
防护、检测和响应组成了一个完整的、动态的安全循环,在动态安全理论的指导下可以有效地保证信息系统的安全。
IPDRR模型包括识别(Identify)、防护(Protect)、检测(Detect)、响应(Response)和恢复(Recovery)的缩写。
(1)Identify:风险识别(在实践中表现为定义业务的安全需求)。识别网络资产及风险,是指对系统、资产、数据和网络所面临的安全风险的认识及确认。该功能的几个子域包括:资产管理、商业环境、治理、风险评估、风险管理策略、供应链风险管理。
(2)Protect:制定和实施合适的安全保护措施,确保能够提供关键的基础设施服务。在受到攻击时,限制或阻止潜在网络安全事件对系统造成的影响。Protect强调的是,在人为介入之前,能够自动运行的防御机制,如网络安全中的防火墙、waf等。在业务安全中,更倾向于将其定义为产品机制上的安全防御。
(3)Detect:发现攻击。制定并实施适当的方案来识别网络安全事件的发生。检测功能能够及时发现网络安全事件。该功能的几个子域包括:异常和事件、安全持续监控以及检测处理。在攻击产生时即时监测,同时监控业务和保护措施是否正常运行,制定和实施恰当的行动以发现网络安全事件。业务安全中,Detect和Protect的主要区别在于:Detect会基于数据进行分析,然后找出有问题的数据,并进行处理;而Protect并不区分正常和异常数据,只是普适性的提高成本,来加强安全。因此,Detect就是所谓的风控系统。
(4)Respond:响应和处理事件,指对已经发现的网络安全事件采取合适的行动。响应功能可以控制潜在的网络安全事件对系统的影响。具体程序依据事件的影响程度来进行抉择,主要包括:事件调查、评估损害、收集证据、报告事件和恢复系统。严格意义上来说,Detect只负责识别,而具体的处理和响应,要靠Respond。当然,对于异常数据的处理方式,也就常规的几种:稍重一些的直接拦截,稍轻一些的则插入各种验证方法(图片、短信、滑块等)。这里需要额外强调一点的是,在处理异常数据的过程中,一定要考虑到反馈入口的添加。比如拦截时,可能弹出一个操作异常的页面,但在页面中添加一个投诉反馈的入口。对于投诉的信息,不一定要全部处理,但一定要监控其波动水平。比如说:某天投诉的用户量突然上涨了好几倍,那么很可能就是风控出现误伤了,亦或是黑灰产发起了集中的攻击。不论是哪种情况,都需要及时人工介入来进行分析处理。
(5)Recover:恢复系统和修复漏洞。能够及时恢复由于网络安全事件而受损的任何功能或服务。将系统恢复至正常状态,同时找到事件的根本原因,并进行预防和修复。如果被薅羊毛了,就及时冻结资金,避免提现转出;如果被刷了,就撤销行为,还原真实数据;如果实在弥补不回来了,就可以寻求法律援助。
IPDRR的五大能力可以由市面上哪些常见的安全产品来实现?
(1)识别(Identify)提供识别能力的产品包括资产管理平台、资产测绘平台、基线管理平台、漏洞扫描工具等。
(2)保护(Protect)提供保护能力的产品包括主机防御类EDR、VPN、4A、防火墙、IPS、WAF、抗DOS等
(3)检测(Detect) 提供威胁检测能力的产品包括IDS、NTA、蜜罐、恶意代码检测、用户异常行为检测等。
(4)响应(Respond):提供响应能力的产品包括SIEM、安全审计、态势感知、SOAR等
(5)恢复(Recover):提供恢复能力的产品包括NG-SOC,NG-SOC理论上应该是覆盖了IPDRR所有的能力。
信息保障技术框架(Information Assurance Technical Framework,IATF)是由美国国家安全局(NSA)制定并发布的,其前身是网络安全框架(NetworkSecurity Framework,NSF)。自1998年起,NSA就开始着眼于美国信息化现状和信息保障的需求,建立了NSF。1999年,NSA将NSF更名为IATF,并发布IATF 2.0。直到现在,随着美国信息技术的进步和对信息安全认识的逐步加深,IATF仍在不断完善和修订。
如果要用一句话来概括IATF,那就是:一个核心思想、三个核心要素、四个焦点领域。
一个核心思想:纵深防御。
纵深防御也被称为深度防护战略(Defense-in-Depth),是指网络安全需要采用一个多层次、纵深的安全措施来保障信息安全。在一个规范的信息网络中,我们可以看到在网络出口有防火墙,在DMZ区有防火墙,在服务器前端还有防火墙,这就是纵深防御思想的一个体现。需要在多个位置部署安全措施,看似重复,但是因其面对不同的业务、其安全策略有很大的差异。
IATF信息保障的核心思想是纵深防御战略,该战略为信息保障体系提供了全方位、多层次的指导思想,通过采用多层次、在各个技术框架区域中实施保障机制,以最大限度降低风险、防止攻击,保障用户信息及其信息系统的安全。在IATF的纵深防御战略中,人(People)、技术(Technology)和操作(Operation)是主要核心因素,是保障信息及系统安全必不可少的要素。
三个核心要素:人(People)、技术(Technology)、运营(Operation)。
网络安全三分靠技术、七分靠管理,三要素中的 “人” 指的就是加强管理。
(1)人是信息系统的主体,包括信息系统的拥有者、管理者和使用者,是信息安全保障的核心;人是第一要素也是最脆弱的要素,对人采取的措施包括意识培训、组织管理、技术管理、运营管理等。
(2)技术是重要手段,需要通过技术机制来保障各项业务的安全,是一种被动防御;技术是实现信息保障的重要手段,包括安全平台建设、安全工程开发等。
(3)运营也称为运行或运营安全,运营是将各方面技术紧密结合在一起的过程,是一种主动防御的体系和机制,包括风险评估、监控、审计、入侵检测、跟踪告警、响应恢复等。
四个焦点领域,也称为四个信息安全保障区域,这就是安全分区的标准化描述:局域计算环境(Local Computing Environment)、区域边界(Enclave Boundaries)、网络和基础设施(Networks & Infrastructures)、支撑性基础设施(Supporting Infrastructures)。这四个领域构成了完整的信息保障体系,在每个领域范围内,IATF都描述了其特有的安全需求和相应的可供选择的技术措施。IATF提出这四个焦点域的目的是让人们理解网络安全的不同方面,以全面分析信息系统的安全需求,考虑恰当的安全防御机制。
四个焦点域中,局域计算环境包括服务器、客户端及其上所安装的应用程序、操作系统等。区域边界是指通过局域网相互连接、采用单一安全策略且不考虑物理位置的本地计算设备的集合。网络和基础设施提供区域互联,包括操作域网(OAN)、城域网(MAN)、校园域网(CAN)和局域网(LANs),涉及广泛的社会团体和本地用户。支撑性基础设施为网络、区域和计算环境的信息保障机制提供支持基础,包括KMI / PKI(密钥管理架构 / 公钥架构)及检测响应等。
不管网络规模的大小,都可以套用这个标准对网络结构进行安全分区。基于这四个焦点领域,结合IATF纵深防御的思想,就可以进行网络安全防御,从而形成保障框架。
以网络和基础设备的保护为例,常用的保护措施包括但不限于:
(1)合理规划确保骨干网络可用性
(2)使用安全的技术架构,例如在使用WIFI时考虑安全的技术架构
(3)使用冗余设备提高可用性
(4)使用虚拟专网VPN保护通信
基于美国国家安全系统信息保障的最佳实践,NSA于2014年6月发布《美国国家安全体系黄金标准》(Community Gold Standard v2.0,CGS2.0),CGS是社区黄金标准的缩写。
CGS 2.0 标准框架强调了网络空间安全应当具备的四大总体性功能:治理(Govern)、保护(Protect)、检测(Detect)和响应与恢复(Respond & Recover)。这些功能聚焦于提供可信的网络空间所需要的能力和方案。
其中:
(1)治理功能为企业全面了解整个组织的使命与环境、管理档案与资源、确保全体员工参与进来并能够被通知、建立跨组织跨机构的安全韧性提供指南和保障;
(2)保护功能为机构保护物理和逻辑环境、资产和数据提供指南;
(3)检测功能为识别和防御机构的物理及逻辑事务上的漏洞、异常和攻击提供指南;
(4)响应与恢复功能则为建立针对威胁和漏洞的有效响应机制提供指南。
CGS框架的设计使得组织机构能够应对各种不同的挑战,为决策者提供了考量信息安全的全局视角。该框架没有像开处方那样给出单独的一种方法来选择和实施安全措施,而是按照逻辑,将对组织结构的理解和已有的基础设施作为框架基础,并协同防御与检测来保护企业安全。
自适应安全框架(Adaptive Security Architecture, ASA)是 Gartner 于 2014年 提出的面向下一代的安全体系框架,以应对云大物移智时代所面临的安全形势。传统安全体系框架在面对新的威胁和攻击时已经显得落伍,ASA的主要目标是解决越来越具有针对性和技术含量更高的网络安全威胁。
ASA主要由 4 部分组成:阻止(Prevent)、检测(Detect)、响应(Respond)、预测(Predict),该框架可通过持续的安全可视化和评估来动态适应不断变化的网络和威胁环境,并不断调整和优化自身的安全防御机制。
阻止(防御):主要通过加固、隔离、拦截等手段提升攻击门槛,并在受影响前拦截攻击。
检测:用于发现那些逃过防御网络的攻击。主要通过感知探头(Sensor)发现绕过防御措施的攻击,减少攻击所带来的损失。检测能力非常关键,因为企业应该假设自己已处在被攻击状态中。
响应:主要通过漏洞修补、设计和模型策略改进、事件调查分析等措施来恢复业务并避免未来可能发生的事故。
预测:通过防御、检测、响应结果不断优化基线系统,逐渐精准预测未知的、新型的攻击。主动锁定对现有系统和信息具有威胁的新型攻击,并对漏洞划定优先级和定位。该情报将反馈到阻止 和检测功能,从而构成整个处理流程的闭环。
ASA和其他安全架构的不同之处主要体现在 预测 这一部分上。通过对已知的威胁情报、入侵攻击进行分析和学习来自动调整其他3个环节,不断适应环境变化,从而使企业能够应对各种不同的安全挑战。预测新型威胁和自动化响应是自适应安全架构的主要特色。高级分析能力是下一代安全保护的基础,我们可以通过机器学习和人工智能(AI)的相应手段来提高分析能力,比如UEBA(用户实体行为分析)。
安全自动化是安全从业者的梦想。
安全主要解决两方面问题:时间问题(速度越来越快)和空间问题(规模越来越大)。安全归根结底是要在时间和空间这两个维度上,提高自动化防御的有效性。
提高自动化水平:提高整个防御体系的自动化程度进而优化人力成本;提高整个安全防护体系对威胁的响应速度,即发现可疑行为,并快速将防护和响应策略分发到相应的防护设备。这包括两种主流方法:
(1)SOAR(Security Orchestration, Automation and Response,安全编排、自动化和响应):代表性SOAR平台为Phantom(https://www.phantom.us/);
(2)OODA循环(Obeserve-Orient-Decide-Act,观察-调整-决策-行动):代表性OODA框架为IACD(集成自适应网络防御框架)。
SOAR(Security Orchestration, Automation and Response,安全编排、自动化和响应) 作为安全自动化的实现技术,已经广为人知。
如果非要说说 IACD(集成自适应网络防御,Integrated Adaptive Cyber Defense) 与SOAR的区别,笔者认为,SOAR更像一个具体技术平台,而IACD更像一种网络空间防御框架和理念。简言之:SOAR是术,IACD是道。而且,目前的SOAR主要应用于企业级场景,而IACD则一直瞄准跨企业场景的应用。两者更多的是配合关系。
如果仔细思考企业级和跨企业级之间的区别,就会发现协调联动是关键所在。因为企业级安全通常考虑的是企业内部环境,责任主体明确,环境完全可控,不太需要考虑外部安全协作问题;而跨企业级安全则通常考虑的是国家级别或行业级别的整体环境,环境不大可控,必须考虑不同责任主体之间的相互协作关系。
实际上,IACD横跨了企业级、行业级、国家级的网络空间防御。事实上,IACD由DHS(美国国土安全部)、NSA(国家安全局)、约翰·霍普金斯大学应用物理实验室(JHU/APL)联合发起。其中,DHS恰恰就是美国联邦安全的主要负责单位,NSA是最重要的技术情报部门,APL是美国最主要的科研机构之一。三强联手,将网络空间防御框架做到极致,也就不是什么难事了。
但是,如果说IACD和SOAR的技术已经成熟,恐怕还为时尚早。就像人工智能和自动驾驶的成熟度一样,必将是一个不断发展演进的过程。安全不简单,安全无止境。在安全自动化这条路上,尤其如此。
IACD基于OODA(Observe-Orient-Decide-Act,观察-调整-决策-行动)循环:IACD试图将物理世界中传统的控制和决策方法,转换用于网络空间。IACD概念将OODA循环活动转换为感觉-理解-决策-行动,并设想通过一个公共消息系统在这些活动之间共享信息。
IACD框架由传感器组成,传感器引入共享和可信信息,以触发编排服务,来响应网络事件。IACD框架包括以下8个组件:
上图是有内在顺序的,整体上是按照 顺时针 方向进行,即从传感器(S接口)->传感器接口->理解分析框架(SMAF)->决策引擎(DME)->响应行动控制器(RAC)->执行器接口(A接口)->执行器。
还需提醒的是,所谓的编排服务(OS)是图中右边虚线框中的所有五个组件的集合,而不仅仅是其中的编排管理(OM)。
IACD理念认为,如果能够在速度(时间) 和 规模(空间) 两个维度上实施OODA循环,则可以将网络防御时间从几个月缩短到几分钟到几毫秒。所以,IACD的目标是:通过 自动化 来提高网络安全防护的速度和规模;通过集成、自动化、信息共享,来显著改变网络安全防御的及时性和有效性。
IACD利用自动化的优势来提高防护人员的效率,让他们跳出传统的安全响应循环,更多地在 “网络安全防御循环” 中担当响应规划和决策的角色,以此增强网络防御的速度和范围。
网络韧性架构,即CR架构,CR是网络韧性(Cyber Resilience)的缩写。该架构基本上将信息安全、业务连续性和企业人员组织弹性结合在了一起。网络韧性架构的目标是使整个网络始终保持提供预期结果的能力,这意味着即使在常规运行机制失败时,在遭遇安全灾难或受到攻击之后,整个网络依旧可以正常运行。
最新的网络韧性架构的技术框架由NIST于2018年提供,技术点如下:
网络韧性架构基于入侵的不可避免性,从如何在遭遇入侵后依然能够保证不至于受到毁灭性打击的角度来部署网络安全。它一方面强调系统增强自己的 抗打击能力,另一方面强调系统要在遭到破坏后具备 快速的恢复能力,是在原有安全容忍(Fault Tolerance)架构基础上的进一步发展。
安全架构模型和框架为制定 企业安全架构 提供了理论依据。无论是自适应安全架构所强调的安全预测与调整能力,还是网络韧性架构所强调的能够适应不断变化的条件并能够承担风险且迅速从破坏中回复过来的能力,都是业界研究探索的最佳网络安全实践,这些安全架构没有绝对的好坏,安全管理者 可以根据企业发展现状来选择最适合自身的安全架构。
互联网企业的安全风险大多来自 在线业务,同时 企业内部 也随时面临风险。
(1)Web安全风险:Web漏洞、SQL注入、XSS跨站、越权、逻辑漏洞、JSONP注入、SSRF、XML实体注入、Java反序列化。Web框架漏洞、第三方组件漏洞。Web接口。
(2)业务自身的安全风险:账户体系安全、交易体系安全、支付体系安全。
(3)移动应用的安全风险:跨域访问漏洞、远程代码执行漏洞。Android应用上的Log敏感信息泄露、Web HTTPS校验错误忽略漏洞、Provider组件暴露漏洞、Activity安全漏洞、使用不安全的加密模式等40多种漏洞风险。还有iOS应用上存在的未打开安全编译选项、不安全的随机数加密等几十种安全风险。另外,Android和iOS移动应用还存在二次打包、反编译、破解、外挂、数据加密等安全加固问题。
安全负责人的初期工作除了识别常见的风险,还应采取快速有效的针对安全隐患的处置措施,解决主要安全风险。
解决Web安全风险可采取的处理方式:
(1)全站清理Webshell后门,购买或采用开源WAF(Web应用防火墙,如ModSecurity等)快速解决OWASP十大安全问题。
(2)使用DAST(动态应用安全测试)、SAST(静态应用安全测试)、IAST(交互式应用安全测试产品)等对Web业务进行黑盒、白盒扫描和人工测试,解决线上主要漏洞。
(3)部署RASP(运行时应用自保护)时应当使用自保护产品对Web进行自免疫保护。
(4)提供安全代码过滤库和安全编码培训。
解决来自业务的安全风险可采取的处理方式:
(1)针对业务特点选择合适的第三方风控安全产品。
(2)从接入层、处理层和数据层构建自有的安全风控平台。
解决移动应用安全风险可采取的处理方式:
(1)APP漏洞扫描和安全加固。
(2)深入的人工安全测试。
(3)提供基础移动安全组件和安全编码培训、安全编码规范。
解决来自员工的安全风险可采取的处理方式:
(1)部署可以统一管理的EDR安全产品,在生产环境中统一使用堡垒机进行远程审计管理,采用DMS审计进行数据库访问。
(2)安全培训、背景调查、行为规范考试、安全审计。
(3)对重点人员建立隔离受控网络,统一访问互联网的代理服务器,确保包括HTTPS在内的网络流量可审计。
(4)建立基于机器学习的用户异常行为发现系统。
解决口令安全风险可采取的处理方式:
(1)弱口令扫描器。
(2)建设基于OpenLDAP的统一单点登录系统,并使用基于TOTP方案的动态口令双因素认证。
(3)建立更加严格的基于FIDO U2F认证协议的实体安全密钥登陆系统和BeyondCorp账户安全体系.
解决来自钓鱼攻击和社会工程学的安全风险可采取的处理方式:
(1)员工安全意识培训。加强办公场地物理安全管控。避免使用第三方通信软件建立的工作群。
(2)强化对钓鱼攻击和社会工程学攻击的技术监控。沙箱技术进行隔离访问。远程安全浏览产品。
(3)加强BYOD设备的安全管理。
经过第一阶段救火式的快速治理后,企业中存在的大部分安全隐患基本被解除,所以第二阶段刻意系统地完善企业安全架构,将1.3节中所提到的 “将安全融于体系,建立自动化监控与响应系统” 的理念落地。这一阶段的工作归结为如下三个层面。
Information Security Management Systems,ISMS,信息安全管理体系是组织在整体或特定范围内建立信息安全 方针 和 目标 ,以及完成这些目标所用 方法 的体系。它是直接管理活动的结果,表示成方针、原则、目标、方法、过程、核查表(Checklists)等要素的集合。
信息安全管理体系(ISMS)是针对任何类型的组织用于建立、实施、运行、监控、审核、维护和改进信息安全的一个政策、程序、指南以及相关资源的框架。
ISMS已经成为被国际标准化组织认可的国际标准、ISO/ IEC27000系列标准定义了ISMS的要求,奠定了信息安全管理体系的认证基础。标准解释了整体 计划 – 执行 – 检查 – 行动(PDCA) 的方法,并为其实施提供了详细的指导。
ISMS 具体依据 PDCA 循环原则建立。
P即Plan:制定政策、目标、流程和程序。
D即Do:利用ISMS 政策对流程和程序进行控制。
C即Check:评估并交给上层审核。
A即Act:根据审核结果采取纠正和预防措施,不断改进上述系统。
ISMS提供了一个大而全的指导性要求框架,可用于企业建立安全管理体系。
互联网企业业务的基石建立在软件上,而软件开发是一个系统工程,如何构建 软件安全工程 是每个互联网企业都必须考虑的课题。
BSIMM全称是Building Security In Maturity Model,即软件构建安全成熟度模型。是一种软件安全计划,是衡量软件是否安全的标尺。推荐企业选择BSIMM标准来实施自身安全开发建设。通过BSIMM可以很方便地将 “安全融于体系” 的理念落地。
构建安全成熟度模型 (BSIMM) 是一种数据驱动的模型,采用一套面对面访谈技术开展 BSIMM 评估,唯一目标就是观察和报告。企业通过参与 BSIMM 的评估,不仅可以更加具体的了解自身 SSI 的执行情况,还可以从行业视角明确所处的具体位置。
BISMM 模型,是一把衡量企业在 软件开发阶段 构建软件安全能力 的标尺。BISMM 具体由三大部分组成:
BSIMM 软件安全框架(SSF)包含四个领域 — 治理、 情报、 SSDL 触点、部署。这四个领域又包括 12 个实践模块,这 12 个实践模块中又包含 119 项 BSIMM 活动。
Google 云平台的基础安全设计采用了从硬件基础到服务、用户身份、存储、通信和运营的分层纵深防御架构,每层都有严格的访问和权限控制。
重点层次结构:
纵观Google 云平台的安全技术体系,可以看到其设计是基于 纵深防御架构 和 安全融于体系 的理念的。
经过第二阶段的系统安全建设后,企业已经基本形成了完整的安全体系,因此第三阶段的安全体系建设主要集中在 全面完善 和 业界协同 两方面,以实现在1.3节中所提到的 “以安全文化建设为中心,将安全融于体系,建立自动化监控与响应系统,持续进行攻防对抗与安全创新” 的新安全建设理念。这一阶段的工作归结为如下三个方面。
如何在被入侵成功的情况下依然能保障企业正常运转 正是安全韧性架构(Cyber Resiliency)要解决的问题。
大型互联网公司在系统安全体系建设完成后可以考虑进一步向完善安全韧性架构发展,建立适应不断变化的条件,以及能够承受风险并可以迅速从破坏中恢复的能力。
安全韧性架构主要实现4种能力:
网络安全的复杂性和基础设施的相互依赖性使得未来任何一家互联网企业都不可能靠自己解决所有的安全问题。我们的互联网业务相关支撑平台来自不同的公司与组织。因此,安全的未来是由大数据驱动的协同安全时代,需要个人、企业、国家共同参与治理。
协同安全时代需要威胁情报共享,需要共同制定行业安全标准,需要大企业开放自己的安全能力。
基础安全运营平台是集威胁情报、漏洞检测、入侵感知、主动防御、后门查杀、安全基线、安全大脑于一体的综合安全平台,承担着企业抵御各种网络攻击和防范内部风险的重任。
首先通过威胁情报从外部获取最新的攻击数据和趋势,其次通过漏洞检测统计企业资产并周期性巡检、修补安全漏洞,再基于入侵感知发现各种网络、主机、服务的攻击,随后使用主动防御、后门查杀及安全基线实现对入侵攻击免疫和安全加固,最后通过安全大脑统筹分析和自动化响应,一气呵成完成互联网企业的基础安全运营工作。
Gartner:威胁情报是关于现有或即将出现的针对资产有威胁的知识,包括场景、机制、指标、启示和可操作建议等,且这些知识可为主体提供威胁的应对策略
Forrester:威胁情报是针对内部和外部威胁源的动机、意图和能力的详细叙述,可以帮助企业和组织快速了解到敌对方对自己的威胁信息,从而帮助提前威胁防范、攻击检测与响应、事后攻击溯源等能力。
对于互联网企业,掌握威胁情报(TIP)可以帮助公司及时对公网资产面临的安全威胁进行预警、了解最新的威胁动态,实施积极主动的威胁防御和快速响应策略,结合安全数据的深度分析全面掌握安全威胁态势,并准确的利用 SIEM 进行威胁追踪和攻击溯源。
总的来说,威胁情报的作用是:
主要帮助安全管理人员及时了解系统的安全态势,并对威胁动向做出合理的预判。
一个概念:SIEM ( Security Information Event Management,安全信息与事件管理),SIE技术通过对来自各种事件和上下文数据源的安全事件的实时收集和历史分析来支持威胁检测和安全事件响应。它还通过分析来自这些来源的历史数据来支持合规报告和事件调查。SIEM技术的核心功能是广泛的事件收集,以及跨不同来源关联和分析事件的能力。
互联网公司可以建立自己的情报库。
关于情报的收集,一方面可以从 开源情报渠道 抓取(如VirusTotal、Cymon等),另一方面可以从内部安全组件获取(如WAF、NTA),还可以通过批量扫描、DDoS攻击等渠道获取。
也可以使用一些 开源工具 来收集处理威胁情报:
威胁情报收集梳理框架:GOSINT(Go语言写的威胁情报收集处理框架)、Spiderfoot
查询Whois及历史DNS信息比较好的工具有:SecurityTrails
查询综合性威胁情报比较好的工具有:IBM X-Force Exchange、Crymon
在综合性互联网端口查询、服务统计方面做的比较好的工具有:SHODAN、Censys、FOFA
在恶意文件、URL、域名、MD5的分析方面做的比较好的工具有:VirusTotal
很多漏洞发布往往不会第一时间被录入CVE漏洞库,可以通过 CMDB 统计自己生产环境用到的各种组件,再对相应的官网漏洞页面和一些黑客发布漏洞 POC 的论坛或站点进行监控,一旦有新的漏洞出现便通过邮件或短信通知应急响应安全团队处理。
两个概念:
公司对内网管理松散的情况下,经常会有员工将代码上传到GitHub等平台,还有一些黑客拖库后会在暗网上买卖数据,所以需要自建一些漏洞抓取系统及爬虫系统来监控公司的信息泄漏情况。
扫描GitHub信息泄漏的开源工具:Gitrob、小米的x-patrol
对暗网扫描的开源工具有:OnionScan
比较好的综合分析框架有:AIL
在运营阶段,常常会爆发很多新型漏洞或第三方组件漏洞,因此周期性的漏洞巡检必不可少。
按照漏洞检测方式的不同,漏洞大致可以被分为以下三种类型:
比较好的多种漏洞集成扫描平台有 Archerysec。
由于软件或系统没有及时更新而导致的漏洞攻击案例比比皆是,而且还会出现诸多由于运维配置不当而导致的安全问题。为了避免类似的网络漏洞威胁到企业的安全,对网络漏洞进行日常的扫描是必不可少的工作。
常见的网络漏洞扫描软件有:Nessus、OpenVAS(免费开源,只有Scanner部分的代码比较可用)、Core Impact、Nexpose等
另外还有一些专项扫描工具,如:nmap、zmap、masscan
口令暴力破解工具如:medusha、hydra、Ncrack
网络漏洞扫描器:Safe3CVS
很多互联网公司的主机在安装Linux系统后便很少进行升级。
主机漏洞主要是因为机器上安装 Linux / Windows 系统后不升级导致存在大量的可在本地利用的安全漏洞。黑客通过 Web 渗透入侵后比较容易利用这些漏洞获取 root 最高权限。
NIST(美国国家标准与技术研究院)针对主机漏洞提出了SCAP(Security Content Automation Protocol,全内容自动化协议),还建立了信息安全类产品的SCAP兼容性认证机制。SCAP版本1.0包含以下六个SCAP元素:XCCDF、OVAL、CVE、CCE、CPE、CVSS。
安全合规与漏洞评估软件有:OpenSCAP(RedHat公司基于SCAP主导开发)
专门扫描 CVE 漏洞的开源工具有:cvechecker、cve-checker-tool
针对Java组件库进行漏洞检测:OWASP Dependency-Check
针对Javascript和Node.js库进行漏洞检查:Retire.js
针对容器漏洞进行扫描:Clair
网站漏洞(Web漏洞)在所有类型的漏洞中风险最大,常见的有不时爆出的Java框架漏洞,也有与Web Server相关的漏洞,还有程序开发中的安全漏洞(如逻辑漏洞、越权漏洞等)。
常见的网站漏洞扫描器有:Acunetix、AWVS、AppScan、HP WebInspect
常见的网站漏洞扫描器开源的有:Arachni
一款好的网站漏洞扫描产品除了要有比较丰富的漏洞库,还需要有很好的 URL 和参数提取、爬虫及参数去重等能力,这就需要较强的 Web 2.0 交互爬虫技术 的支持,如自动化点击、智能化 Web 表单填写。
当然,现在也有不少被动模式的代理扫描产品,无需较好的爬虫能力就可以提取扫描参数,但此类产品的使用场景有限,不适合扫描第三方网站。
入侵感知技术是一种通过监控一系列与安全相关的异常指标来达到发现入侵目的的手段。
一般可以从 被动 渠道感知入侵:
1、网络异常,如DDoS攻击、异常DNS请求、ARP欺骗
2、主机异常,如暴力破解、反弹shell、系统提权
3、隔离异常,如虚拟机逃逸、容器逃逸
4、应用异常,如命令执行、文件读写、SQL注入
也可以从 主动 渠道来感知入侵:
如蜜罐、诱饵、蜜签等
网络流量分析简称为NTA,主要用来监控网络流量中的安全攻击。
常见的网络流量中的攻击有:
1、由于早期的网络协议考虑不完善而造成的 协议安全隐患 ,如BGP协议攻击、CDP协议攻击、MAC地址欺骗、ARP缓存投毒、DHCP饥饿攻击等;
2、由于恶意并发请求而造成的 拒绝服务攻击(DDoS),如SYN Flood、UDP Flood、NTP反射攻击、SSDP反射攻击、DNS反射攻击等;
3、各种 探测扫描 ,如IP扫描、端口扫描、漏洞扫描、病毒蠕虫传播、挖矿传播、勒索软件传播、暴力破解等;
4、APT和C&C通信,如硬编码IP域名、DGA随机域名、DNS tunnel、加密流量分析等;
5、可解密的应用协议攻击,如HTTP攻击、SMTP攻击、MySQL攻击、SMB攻击等。
除了NTA,还可以结合机器学习与大数据分析发现异常流量,并进行事后流量的调查取证分析等。
NTA安全产品:
主机层可检测的入侵威胁有很多,如系统提权、异常登录、反弹shell、网络嗅探、内存注入、异常进程行为、异常文件读写、异常网络通信、病毒后门、安全漏洞、配置缺陷等。
支持Linux的主机安全检测的开源产品:OSSEC、Osquery、Elastic/beats、sysdig、Capsule8
支持Windows系统的主机安全检测产品:Sysmon(非开源)
以往的很多安全检测技术由于会影响性能和稳定性,因此很难全面部署,即使部署了,误报率也比较高,很难聚焦真正的入侵,加之APT等高级攻击越来越隐蔽,因此诞生了一种新的解决方案——欺骗技术。
欺骗技术的本质就是有针对性地进行网络、主机、应用、终端和数据的伪装,在攻击链的各个环节中布满诱饵蜜签和假目标来扰乱攻击者的视线,将其引入死胡同,大大延缓攻击时间,并准确有效地发现攻击者,可以快速响应。欺骗技术也是安全韧性架构的重要组成技术之一,就像有句老话说的,“所有的战争都基于欺骗”。
欺骗技术在以往蜜罐技术的基础上进行了加强,运用了诱饵、蜜签和自动化蜜网创建等技术。蜜罐又分为高交互蜜罐和低交互蜜罐,为了达到较高的迷惑性,欺骗技术通常以高交互蜜罐为主。
欺骗技术发展到现在越来越 动态化 ,通过 机器学习 学习网络环境动态地创建诱饵、蜜签、蜜罐,使得迷惑性越来越强,并与路由器、防火墙联动形成了欺骗平台。
主动防御技术通常以保护为主。在系统默认安全的基础上加入主动防御技术通常有助于拦截已知或未知的安全威胁。比如,对于主机层 Linux 内核提权漏洞,在内核层再加上一层内核保护技术即可拦截提权进程;在应用层的Struts2、Spring框架基础上加入RASP技术即可拦截绝大部分零日漏洞。通过主动防御来层层设防,如使用HIPS、WAF、RASP、数据库防火墙等,即可实现纵深防御架构,从而保障业务的安全性。
所谓的主机入侵防御就是对主机进行主动加固防护以杜绝各种已知或未知攻击,主要有 内核层 漏洞攻击防御和 应用层 漏洞攻击防御两种。
Linux自带的安全机制:LSM(Linux安全模块,Linux security module)、KSPP(内核自保护项目)
针对内核提权攻击的解决方案:AKO(Additional Kernel Observer)使用动态可加载内核模块(LKM)
开源内核主动防御产品:LKRG(Linux内核运行时保护,Linux Kernel Runtime Guard)使用对内核代码打补丁的加载方式(更加方便,可以实现的功能更丰富)
Web应用防火墙,简称WAF,作为Web安全的主要防护手段,其扮演着重要的作用。很多公司的安全开发流程(SDL)做的不到位甚至没有做,会导致上线的Web业务存在SQL注入、XSS、SSRF、命令执行、反序列化、XML实体注入XXE、越权、逻辑错误等诸多漏洞。由于业务的复杂性和对兼容性、稳定性的要求,业务开发人员要在出现漏洞的第一时间进行漏洞修补,并需要花费时间进行大量质量测试,导致项目往往不能很快上线。这时在WAF上添加一条规则进行漏洞拦截既方便又快捷,可以利用时间差弥补漏洞。
开源WAF产品:ModSecurity(支持Nginx)、OpenStar
基于AI的WAF:Wallarm
开源的反欺诈应用安全产品:Repsheet
运行时应用自保护,简称为RASP,是近几年来新兴的一种Web安全防护技术。
与WAF相比,RASP工作在应用程序内部,可以获取更多的程序运行细节,从而可以解决很多WAF误报的问题;另一方面,通过与应用程序关键函数挂钩观察程序行为,也可以解决基于签名的WAF产生的拦截绕过问题,所以RASP在拦截黑客攻击方面强于WAF。但是,在性能、稳定性、DDoS拦截方面,由于传统WAF是独立部署的,因此更具优势。
同时支持Java和PHP的开源RASP产品:OpenRASP
数据库防火墙(Database Firewall),简称为DBF,是对数据库进行查询过滤和安全审计的安全产品。
通过数据库防火墙可以拦截SQL注入攻击,对敏感数据脱敏,阻止高危数据删除操作,记录并发现违规行为等。相比于WAF和RASP,DBF提供了最后一层对SQL注入的安全防护能力。
数据库防火墙安全模式可分为如下4种:
数据库防火墙是Web安全纵深防御的最后一环。
黑客入侵服务器后为了长期控制或便于操作系统通常会在主机中留下后门。
一般后门大致分为3类:
1、高度隐蔽性后门 Rootkit
2、一般性远程控制后门
3、在web环境下执行的Webshell后门
Rootkit按作用阶段主要分为3种:应用层Rootkit、内核层Rootkit、引导启动型Bootkit(底层的Rootkit后门)。这三种Rootkit的检测难度依次递增。
对于Rootkit的检测问题,现在业界趋向于通过软硬件结合的方式来解决,比如Google的Titan芯片就很好地解决了启动前和启动过程中的系统完整性问题。一般没有维护硬件能力的互联网公司则主要从软件检测和可信供应链两个方面来解决Rootkit问题。
开源工具:
应用层的Rootkit检测:rkhunter、chkrootkit
离线内存Rootkit分析工具:Volatility
Rootkit进程隐藏检测:Linux Process Hunter
全面的Rootkit检测:Tyton、kjackal
主机后门通常为一般性的远程控制应用层后门。这类后门比较多,且往往会和Rootkit技术结合使用。
主机后门为了长期驻留,一般会加入系统启动项。
还有一些后门会替换系统文件或以模块形式加载。
工具:
Linux后门扫描工具:clamav
开源扫描脚本工具:malscan
开源主机后门检测工具:binaryalert
开源分布式扫描工具:klara
开源威胁情报响应和分析工具:rastrea2r
动态分析检测工具:cuckoo、sandbox
恶意软件企业级自动化分析框架:stoQ
另外,现在机器学习在恶意软件分析中的应用也越来越广泛,而且已经取得了一些不错的成果。
大型互联网公司可以建立自己的病毒库和分析中心,如Google建立的virustotal。恶意软件自动化分析平台方面的产品有企业级自动化分析框架stoQ。
webshell即专门的web后门,通常是通过脚本语言编写的,灵活性高且易变形。常见的webshell有PHP、ASP、ASP.NET、JSP、Python、Node.js这些类型的后门。其功能丰富,可导出数据库,对互联网业务危害较大,也是黑客入侵的首选远程控制工具。
工具:
开源的PHP webshell检测工具:php-malware-finder
监控文件变动的工具:masc
开源的使用机器学习检测webshell的工具:MLCheckWebshell
在线webshell检测平台:百度的WEBDIR+
配置安全问题在安全漏洞中占很大比例,涉及的范围包括网络、操作系统、各种应用服务器、数据库系统等。常见的安全基线包含 默认安全配置 和 安全加固 两部分。
工具:
安全基线模板网站:cisecurity(最有价值的地方是提供了各种安全加固模板)
开源的合规软件:Lynis、inSpec
开源的持续审计和配置管理平台:Rudder
安全大脑即安全数据的综合分析与编排自动化响应中心,主要功能包含安全态势感知(SSA)、安全信息和事件管理(SIEM)、安全编排和自动化响应(SOAR)。
前面提到的各种安全技术需要一个集中管理与协同处置的安全中心,这与集成式自适应网络防御框架IACD一致。IACD框架通过SOAR技术将各种安全产品进行整合,从而协同应对安全威胁。
而我们的安全大脑除了可以进行安全编排与自动化响应,还必须具备大数据处理、机器学习智能分析功能,并提供安全态势以便于安全管理者对当前和未来工作做出合理的安全决策与计划。
SSA涉及的主要部分是安全大脑的前端展示。安全涉及的数据比较复杂且关联性很强,需要比较好的 前端展示框架 。
安全大脑需要能够处理涉及 多个实体相互作用 且 关联复杂 的安全事件,为此必须综合运用知识图谱、图计算、数据语义化、机器学习等技术才能产生比较好的效果,另外还需要和外部的各种系统(如身份管理和威胁情报等方面的系统)对接,同时还需要安全团队的不断改进。
参考:
前端展示框架:Sqrrl
素材网站:SecViz
JS框架:D3.js、vis.js、three.js
产品:
SIEM产品:Splunk、QRadar、LogRhythm(新的SIEM产品都具备了UEBA(用户与实体行为分析)和SOAR(安全编排与自动化响应)功能)
大数据存储和处理项目:Hadoop、ClickHouse
日志数据索引和查询项目:Elasticsearch/Elastic Stack、Graylog
安全大脑除了要具备海量安全日志的存储和分析能力,还必须具备智能决策和自动化响应能力。智能决策依靠机器学习和数据流处理能力。
智能决策解决方案:Spark、Flink、Storm
UEBA技术使用机器学习技术,能够在缺少匹配的情况下通过行为异常发现攻击。UEBA技术会用到的机器学习算法如下:
常见的基于时序的异常检测算法有随机森林、独立森林等。
开源的日志安全规则:Sigma
开源的大数据安全解决方案:Elastic、Metron
开源的图数据库项目:HugeGraph(图数据分析的另一个发展方向是图神经网络GNN,用于解决深度学习无法做因果推理的核心问题)
智能决策的下一步便是安全编排与自动化响应(SOAR)。
SOAR的核心部分是剧本(Playbook),这方面需要有较好的前端交互界面和灵活的脚本语言。
大部分SOAR产品选择的脚本语言都是Python。
产品:
开源的SOAR产品:StackStorm、MozDef(Mozilla防御平台旨在实现安全事件处理流程的自动化,并便于实时处理安全事件活动)
开源的安全运营编排产品:PatrOwl
本部分将对基础安全运营平台以外的其他各种安全技术项——展开分析,包括安全开发生命周期、企业办公安全、互联网业务安全、全栈云安全、前沿安全技术。
安全开发生命周期的管理是保障互联网企业业务正常运行的重要举措,直接关系到企业 线上业务运行 的安全性。
企业办公安全涉及的安全隐患则更加复杂多样,各种数据泄露、人员违规、外部入侵、物理安全等问题数不胜数。
同时随着移动互联网技术的蓬勃发展,各种 业务安全对抗攻击 也愈趋激烈,如验证码识别对抗、营销活动薅羊毛对抗、业务欺诈对抗、数据窃取与隐私保护技术对抗等。
加之云化技术的普遍应用, 云上安全风险 也与日俱增,如计算不可信风险、虚拟机逃逸风险、容器逃逸风险、安全隔离风险等。
最后,量子计算、AI技术等前沿科技的兴起也给传统安全带来了新的挑战。
构建安全开发生命周期(SDL)可以帮助开发人员构建更安全的软件、满足安全合规系统的要求、降低开发成本。SDL的核心理念就是将 安全 方面的考虑集成在 软件开发 的每一个阶段:计划、编码、测试和维护各阶段。
互联网公司的 SDL 必须和现有的 CI/CD(持续集成/持续部署)系统(如IDE、Gitlab、Jenkins、JIRA等)集成才能产生较好的效果。SDL的建设必须置于敏捷开发、持续交付、技术运营之中,也就是要符合 安全融于设计 的思想。
SDL在实际落地中大体上可以分为4个阶段:计划阶段、编码阶段、测试阶段、部署阶段。
计划阶段需要做的工作有明确安全需求,进行安全设计、威胁建模、供应商安全评估、安全培训等。
安全需求 需要融入软件需求度量、UML建模、条目化项目管理等工作中。
进行 安全设计 需要从可信性、完整性、可用性这三个方面出发来制定安全设计原则。
安全设计原则包括:
try catch
语句做处理。威胁建模 是设计阶段的一个重要组成部分。
威胁建模工具:
在业务开发中有些组件来自供应商或合作伙伴,这也是设计阶段必须考虑的一块。
第三方安全评估:可以使用 Google 开源的 VSAQ(供应商安全评估调查问卷)安全评估工具。
最后,设计阶段还必须进行安全培训工作。
安全培训是一项长期的工作,从员工入职开始就应该进行。
建立内部安全门户网站,建立安全知识库和安全考试平台。
编码阶段的主要安全工作有:
下面详细介绍上述五个方面。
公开的 安全编码规范 参考对象:OWASP Secure Coding Practice
静态源代码安全分析 :
通过 IDE 结合的代码检测插件解决编码过程中的安全问题:
Java编码规范方面的插件:P3C IDE
Java漏洞检测方面的插件:Findbugs及继任者Spotbugs
.NET漏洞检测方面的插件:Puma Scan
支持C/C++的插件:cppcheck
编码过程中会不可避免地用到很多第三方类库组件,过时的组件库有的会存在安全漏洞,还有的会存在授权协议合规问题,所以需要对其进行安全扫描。
开源 组件安全扫描(OSS) 工具:
OSS方面的商业产品:BlackDuck
开源授权协议合规检查产品:FOSSology
组件漏洞检查方面的开源产品:Dependency-Check(可以结合maven或Jenkins使用)
组件漏洞检测产品:synk(可以扫描node.js、nmp、ruby、java依赖中的漏洞)
依赖方面的安全检查产品功能最为丰富的是SourceClear公司的:EFDA
各种漏洞的修补和过滤 可以通过自研或第三方的 安全过滤库&中间件 来进行。
安全过滤库&中间件:
常见的java安全过滤库:ESAPI
Node.js的web安全过滤库可以参考:egg-security
浏览器端的过滤库有:DOMPurify
安全编译是一个在程序编译过程中可选的安全检查和安全加固的过程。
安全编译检查 :
Visual studio编译选项中的/GS选项检查缓冲区溢出,/guard:cf选项检查控制流安全。
iOS APP安全编译选项有-fobjc-arc、-fstack-protector-all、-pie。
Linux 二进制文件安全编译选项与 iOS 的类似。
测试阶段的安全工作包括自动化安全测试和人工安全测试。
自动化安全测试又包括静态应用安全测试(SAST)、动态应用安全测试(DAST)、交互应用安全测试(IAST)等技术。
是指对源代码进行白盒扫描的安全测试,又称白盒测试。
商业产品有:Fortify、奇安信代码安全卫士
开源 PHP 源代码漏洞扫描产品:RIPS、progpilot
针对 Python、Ruby、Go 语言安全扫描的综合工具:huskyCI(集成产品)
针对 java 的安全扫描综合工具主要有:spotbugs以及相关插件fb-contrib、find-sec-bugs
针对 C/C++ 的安全扫描综合工具:flawfinder
支持多种语言的综合安全扫描工具:Infer
静态应用安全测试的综合平台:SonarQube(支持多达 25 种语言安全检测)
是指运行时安全漏洞测试,通常为黑盒测试。
Web 相关的 DAST 商业产品有:Acunetix、AWVS、AppScan、绿盟漏洞扫描器
开源产品有:Arachni
针对 REST API 自动化测试的产品:Astra
针对 Web Service 进行安全测试的产品:WSSAT
针对Android的开源DAST测试产品:Qark
是指运行时安全漏洞测试,与前两种测试不同,IAST 通常作用于应用的内部。
可以在应用运行时通过插入应用内部的代码自动跟踪输入变量并实时生成安全报告。
IAST 实现的主要思路是在应用内部对所有用户输入的污染源进行 变量跟踪 ,并将其标记为 tainted;如果碰到安全过滤函数处理过的变量,则移除 tainted 标记;最后在 sink 点,也就是漏洞触发点(如数据库查询、命令执行等函数)检测变量是否被污染,如果被污染了就是有漏洞的。
IAST 可以解决其他测试的路径爆炸、路径覆盖不全,以及误报和拖慢 CI/CD 进度等问题。
商业产品有:Synopsys Seeker、Veracode、CxIAST
针对PHP的开源产品有:PHP taint、PHP Aspis
针对Java的开源产品有:security_taint_propagation
人工安全测试是指 有人工参与 的 半自动化 安全测试,主要包含对自动化测试结果的进一步分析,以及不能自动化因而需要人工参与的安全测试工作,如代码审计、模糊测试、Web 安全测试、移动安全测试、二进制安全测试等。
人工安全测试也包括白盒测试和黑盒测试。
白盒测试的主要工作为人工代码安全审计。
人工代码审计:OWASP 代码审计指南
黑盒测试的主要工作为模糊测试。
针对协议的常用模糊测试工具:Peach fuzzer(可以对各种文件和协议进行黑盒测试)
针对二进制漏洞的模糊测试工具有:Asan、Tsan、Msan、UBsan
开源的Fuzz测试平台有:OSS-Fuzz
web安全测试:OWASP安全测试指南
主要使用的工具:BurpSuite、Fiddler
移动安全测试:OWASP移动安全测试指南
移动安全测试综合平台:MobSF
Android人工测试的工具有:Drozer、AppUse、Xposed、Frida
ios的人工测试工具有:needle、iOSSecAudit
现在不少公司除了开发常规的 PC 端软件,还生产手机、IoT相关产品,这就涉及二进制漏洞挖掘。
各种黑客大赛也基本以二进制漏洞挖掘为主。
二进制漏洞挖掘技术中的 动态符号执行 成为主流的漏洞挖掘技术,KLEE是常见的动态符号执行引擎。动态符号执行可以将代码转换为中间语言IR,并对执行路径进行模拟执行,缺点是可能碰到路径爆炸问题。
二进制分析框架:Angr
二进制反编译逆向分析的工具:IDA、Radare2、Binary Ninja等
expoits编写方面的工具:pwntools
部署阶段主要保证开发的产品可以安全发布,相关的工作有:证书密钥管理、安全配置加固、操作审计、渗透测试。
互联网公司应建立安全可控的发布平台,保证配置的自动化,且保证发布是可信和可审计的。
证书密钥管理系统(KMS)主要用来负责 API 私钥、云 IAM/STS 证书、数据库密码、X.509证书、SSH证书、应用签名证书、加密通信密钥等的安全保存、发放和撤销。这些证书密码的泄露直接关系到公司的数据安全。
开源的KMS产品:Vault
主要保证上线的系统默认安全,以及满足 PCI 合规安全需求,相关技术参考第九章“安全基线”相关内容。
主要保证发布过程的可控和可安全审计。与操作审计配套的技术有 DMS 数据库管理系统、堡垒机等。
DMS 数据库管理系统可用来负责互联网企业统一的数据管理、认证授权、安全审计、数据趋势、数据追踪、BI图表和性能优化,解决了以往运维和研发对数据库访问的不可控和不可审计的问题。
阿里云的DMS是商业的数据库管理系统
支持MySQL的开源产品有:Yearning
堡垒机又称跳板机,是运维安全建设的一个必备产品,可以对运维操作进行记录和追踪,并对主机访问提供细粒度和集中的权限控制,同时减少了关键业务主机对外的暴露面。
开源的堡垒机产品有:JumpServer、Guacamole
它是安全开发的最后一关,通过对业务、系统、网络的综合渗透测试来保证业务上线后的安全,这是一个长期持续的过程。
集成各种渗透测试工具的Linux发行系统:Kali Linux、backbox
常见的渗透测试框架:MetaSploit
渗透自动化编排框架:Decker
由于聘请安全人员的成本越来越高,现在也有不少趋向于研究自动化渗透测试的尝试:
如基于机器学习技术来做渗透测试的GyoiThon(朴素贝叶斯算法识别返回网页的类型)
自动化渗透测试产品:Infection Monkey
面对大量业务时,互联网公司应尽量将安全专家的经验固化和自动化,以节约成本。
办公安全历来是信息安全的薄弱环节,常见的威胁有数据泄露、内部恶意人员、APT攻击、病毒蠕虫等。相比线上业务安全,企业内部办公安全更为复杂,如存在移动办公、自带设备BYOD办公等场景。传统以网络边界为防御对象的办公安全架构越来越不适用于新的跨领域、跨场地、跨设备办公场景。
为了适应新时代的互联网企业办公安全需求,由Google率先提出的 零信任网络架构 BeyondCorp 逐渐被各大公司所认可。
人是办公安全中最重要的因素。
在员工入职前,企业就应该对员工进行背景审查、入职后应对其进行安全意识培训,研发等岗位还应该进行专门的安全开发培训,严格一点还应该进行考试。宣扬企业安全文化,定期组织安全周、安全月等活动。应将安全违规的处理和安全审批流程等纳入流程制度,并制定必要的处罚和 KPI 考核制度。此外,还应当对各种办公活动进行安全审计,对企业内部环境和外部业务服务进行合规审查,以满足法律和行业规范的要求。
终端设备的安全直接关系到生产的安全。
企业应该部署集中管理式的 AV 杀毒软件 和 EDR 终端检测与响应产品,以抵御病毒和 APT 攻击:
开源的 EDR 产品: Facebook 的 Osquery 、 Mozilla 的 MIG
综合的安全事件响应平台:TheHive
重要业务部门应该部署 DLP 数据防泄露、DRM 数据版权管理产品,防止企业关键资产(如数据、代码、文档)泄露。另外还可以通过 vDesk 瘦客户机(thin client)建立完全隔离的虚拟桌面云(VDI)网络:Citrix、VMware
现在使用移动终端工作的情况也很普遍,因此,移动办公产品也应当加强管控,常见的 移动终端安全 产品有 MDM 移动设备管理和 MAM 移动应用管理。商业产品有IBM MaaS360、SAP Mobile Secure等,开源产品有flyve-mdm等。
广义的终端设备还包括门禁系统、打印和传真系统、电话会议系统、视频监控系统、Wi-Fi 路由系统等,应当对这些设备也考虑安全方案。
最后,可以通过 SIEM 产品(如Splunk)的 UEBA 用户实体和行为分析发现由用户主动行为或账号被盗、终端被控制引起的异常安全行为攻击。
办公服务是指企业内部的办公支撑服务平台,如企业邮箱、企业网盘、CRM、ERP、OA、HR、BOSS等系统和研发支撑平台。这些平台常成为 APT 攻击的重要目标。
访问权限控制 是办公服务安全的一个重点。传统企业依赖于网络边界防护和VPN加密通信来保证访问安全,这种架构一旦被突破将威胁企业内部的各种服务。于是Google提出了基于 零信任网络架构 的 BeyondCorp,它通过将访问权限控制措施从网络边界转移至 具体的设备 ,让员工可以更安全地在任何地点工作。
使用 欺骗技术 可以很好地在办公网内检测外部 APT 和内部恶意攻击,并得到具体的入侵细节。蜜罐可以模拟真实服务,蜜签可以守株待兔般地等待触发。
云安全访问代理(CASB)与软件定义边界(SDP)适合于企业将办公环境中的各类业务系统(包括企业邮箱、企业网盘、CRM、ERP、OA、HR等)均托管给云服务商的安全场景,如办公Office365、企业网盘Dropbox、邮箱Gmail。CASB 的功能主要有访问控制、权限管理、数据防泄漏、恶意软件检测、安全监控和合规检查等。从功能上看,CASB 是 “4A认证+DLP+UBA+堡垒机” 的集合体。
互联网企业常用的过滤网关有 代理上网的 Web 过滤网关 和 邮件过滤网关 。通过过滤网关,隔离网中的终端只允许通过 HTTP 代理才能访问外网,可以在满足上网需求的同时对员工上网行为进行审计。企业的另一重要保护对象为邮件系统,邮件系统常见的安全问题有垃圾广告邮件、鱼叉式网络钓鱼和电子邮件欺诈、恶意软件和 APT 攻击、外发公司敏感数据、邮箱用户密码被利用等。这些威胁需要通过邮件安全过滤网关来应对。
最后,渗透测试 是检验办公安全环境的有效途径,通过渗透测试可以发现企业办公网络中的各种薄弱点,以便于不断改进和完善自身安全。
实体场地安全即办公场所的物理安全,包括门禁、安检、安保人员、摄像监控、防火防震、灾备等。
随着移动互联网的快速发展,在线交易的安全需求也日益凸显,盗号、欺诈、刷单、薅羊毛等恶意行为给在线业务带来了极大损失。手机应用的普及使得个人敏感数据更容易被非法收集利用,各种数据泄露事件频发,网民的财产安全和个人隐私安全问题突出。
互联网公司必须建立业务风控和数据安全与隐私等 业务安全 体系来解决这些安全问题。
一般互联网企业常见的业务风险:
移动端:
破解外挂
应用仿冒
短信电话钓鱼
流量劫持
数据泄露
账户(注册、登录、找密三个主要入口):
账号撞库攻击
盗号洗号
验证码安全
机器注册
垃圾注册(虚假刷单、发送垃圾消息)
暴力破解
身份伪造
信息重放(短信验证码、邮箱验证码重放)
找密/改密安全(找密逻辑缺陷可修改邮箱,账号检存。改密通过id可修改他人密码,批量重置)
信息泄漏(客户交易的cvv码,用户账号、密码、邮箱)
交易:
恶意抢购、权限绕过(通过id可遍历到末对用户开放或已下线的商品;通过暴力手段用末购买的激活码激活游戏)
薅羊毛
刷排名
欺诈
刷库存
刷单(业务数据造假)
活动作弊(攻击者修改或写js自动点击刷活动、自动化脚本秒杀商品)
营销作弊
恶意贷款
支付:
套现(信用卡套现、抵用券套现、类似“京东”白条类信用产品套现)
高并发缺陷(交易类重放攻击导致购买限制的绕过)
挤兑提现
盗刷
数据篡改(金额任意更改,溢出,负金额)
支付行为可信(支付确认阶段无法确定支付是否发生于账户真实主人)
洗钱
内容:
垃圾广告
淫秽色情
涉暴涉恐
政治敏感
虚假信息
违禁内容
恶意爬虫
针对移动端APP,常见的技术解决方案有:
一般 风控系统 的架构(四个部分):
管理面板:统计分析、数据报告、运营审核、事件处理、模型规则管理
数据处理(包括数据获取和安全验证):设备指纹、智能验证、实人认证(人脸识别、活体检测)、短信语音验证、生物识别
风控引擎(业务风控系统的核心部分,常见的风控引擎由 模型引擎 和 决策引擎 组成):模型引擎(对业务进行安全建模,运用机器学习算法)、安全画像、知识图谱、机器学习、决策引擎(一系列风控规则的集合,实时的事件和事务决策处理,如Drools,n-cube)
技术平台:Spark(离线数据分析)、Flink(实时数据流处理)、Hadoop(离线数据存储)、Tensorflow(机器学习任务),H2O(金融信用卡评分、欺诈检测、异常检测机器学习算法)
将机器学习运用在风控系统中的实践越来越普遍。例如支付宝第五代风控引擎 AlphaRisk(智能风控引擎),其套现风险识别模型采用了基于主动学习与两步正例和无标记学习的半监督学习方法。
互联网公司的很多风控系统采用的都是 Spark MLlib 的机器学习库。
其他风控相关的安全项目有:
利用 PyTorch 框架的 Autoencoder 神经网络检测账户异常的项目
利用机器学习检测信用卡欺诈的项目
利用图可视化分析金钱交易的项目
利用图数据库进行欺诈检测的项目
大数据应用涉及海量数据的分散获取、集中存储和分析处理,更容易造成数据泄露。
移动互联网的发展使得手机上的个人敏感数据增多,不当的数据收集行为更易发生,严重影响个人隐私。
各国相继出台对应的法律法规,在隐私保护方面尤以欧盟的 GDPR 最为严格(通用数据保护法案)。GDPR 强调数据隐私是公民的基本权利,企业有责任部署数据隐私策略以积极确保数据安全,并需在设计之初考虑数据隐私的问题。
数据安全体系的建设可以依照《信息安全技术 数据安全能力成熟度模型》着手进行,其架构如下图:
数据安全技术体系:
应用层:版权保护(数字版权管理 DRM,最常用的技术是数据水印)、隐私保护(对敏感数据进行脱敏,k-匿名、差分隐私)、可信计算(解决数据流通中的安全问题,安全多方计算、同态加密、安全隔离)、数据加密、数据合规(数据血缘关系、数据地图)
平台层:(基于云的数据安全服务)DLP、KMS、IAM、CASB、堡垒机
基础层:物理销毁、HSM、环境安全、网络安全、安全管理
云计算使得基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)成为可能,越来越多的互联网企业将业务向云服务迁移,而各种信息安全问题也随之出现,相应的安全技术也发展了起来,主要包括可信计算、内核热补丁、虚拟化安全、容器安全、安全沙盒。
目的是通过广泛使用基于 硬件安全模块 计算和通信的可信计算平台,来提高系统整体的安全性。
随着可信计算的发展,可信平台模块不一定再是硬件芯片的形式,特别是在资源比较受限的移动和嵌入式环境和云平台中,可信执行环境(TEE) 逐渐发展起来。
可信计算可解决的主要问题有:
公开的可信计算技术分析:
Google 的 Titan 安全芯片(主要用于为云服务器建立硬件的根可信)主要有以下两项安全功能:
云服务通常由成千上万台虚拟机组成,这些虚拟机通常由 Linux 启动。Linux 内核每年都会出现各种漏洞和 bug,这就需要为 Linux 内核打补丁升级。升级意味着要重启服务器、中断业务以及做好繁重的准备工作。能否实现在升级的同时系统不必重启?这就是内核热补丁,它是一种无需重启操作系统便可动态地为内核打补丁的技术。
内核热补丁开源方案:
各种云的建设都基于虚拟化方案,一旦这些虚拟层出现漏洞就会直接影响上层各个租户的主机安全。
为了加强云环境的虚拟化安全性,各个公司都给出了自己的解决方案。
都在 KVM 平台上构建云的虚拟化层:
AWS:轻量级微虚拟机产品 Firecracker
Google:轻量级VMM(虚拟机监控器) —— CrosVM
以容器为基础的微服务架构逐渐发展起来。
容器的轻量化、高性能、高隔离性以及结合 Kubernetes 的编排能力使得自动化部署业务、构建大规模可伸缩弹性架构更加容易。不过,容器在普及的同时也带来了新的安全问题。
容器中常见的安全问题有容器镜像不安全(镜像中的应用存在漏洞或镜像被篡改)、内核等漏洞造成的容器逃逸、容器的网络缺乏微隔离(容器网络隔离有助于限制容器间的横向移动攻击和外部 IP 对内部服务的访问)、运行时安全问题(监控容器内运行进程的异常行为),以及安全合规问题。
Twistlock 是一款商业容器安全产品,它提供了漏洞管理、运行时防御、合规、CI/CD集成、云防火墙功能。
对软件运行环境做隔离限制,通过严格控制执行的程序所访问的资源来达到限制恶意行为的目的。
安全沙盒有用于多用户多进程隔离以确保安全运行的,也有用于恶意软件行为识别的。
主机层沙盒:
Windows:Sandboxie、AppContainer、Hyper-V虚拟化沙盒
Linux:Setuid/Chroot、Cgroup/Namespace、LXC/Docker、Seccomp-BPF
应用层沙盒:Java安全模型、JVM-Sandbox、Cuckoo Sandbox
在 Linux 系统上,用户可以通过 systemd 服务来配置一系列沙盒功能,从而保护由 systemd 启动的服务。systemd 的沙盒功能主要有以下几项:
包括两个方面:AI技术在安全领域中的应用、AI技术自身的安全性
自动化机器学习框架:MLBox、auto_ml、H2O
AI技术在安全领域中的应用
入侵检测:dga_predict、Salad、seq2seq-web-attack-detection、dataShark
恶意软件分析:malware-classification、CuckooML、adagio
漏洞发现和修补:Pulsar、Sapfix
数据挖掘与风控:信用卡欺诈检测项目、机器学习欺诈检测项目
自动化渗透测试:DeepExploit
AI技术自身的安全性
对抗样本攻击:防御方法是使用自动生成对抗样本工具来验证模型的安全性,并提供额外的补充修正样本。开源:CleverHans、AdvBox
机器学习框架及依赖库漏洞(UAF、溢出等):语言性的安全漏洞,需要加强安全开发(代码漏洞扫描、Fuzz测试等)
模型算法被逆向破解:Python等解释型语言的代码逻辑容易被逆向破解,需要代码混淆(针对python:pyminifier、Opy、PyArmor)、加壳等保护措施
机器学习与隐私:用噪声打乱数据,差分隐私库
隔离逃逸风险:需要对代码执行环境做隔离保护,运行不可信的机器学习模型代码需要做沙盒保护(nsjail)
光子计算机、量子计算机的出现给现有密码体系带来了巨大的挑战。
对抗量子计算破解能力的研究主要聚焦在 后量子加密技术 上。