About neohope

一直在努力,还没想过要放弃...

记一次存储Inode数量引发的生产故障

前一段时间,突然收到了系统报警,某上传服务异常。

经过排查,上传服务正常,但存储无法正常写入,一直写入失败,表现为:
1、一块新盘,32T,已使用2T,可用30T,控制台和命令行操作结果一直
2、服务写入时,一直报“no space left on device”
3、没有收到任何存储报警

立刻找了云服务厂商的老师,解决了问题:
1、除了限制写入文件总量的大小、并发写入的速度,同时还限制了inode数量
2、上传服务,写入了大量小文件,耗尽了inode数量
3、上传服务,再次写入后,inode申请失败,导致写入失败
4、存储组的老师,紧急扩展了inode数量,解决了问题

经排查,云服务商反馈:
1、为了控制成本,我们之前买了一块较小的硬盘,然后进行了扩容
2、而存储的底层协议为FlexGroup
3、而FlexGroup的普通卷,在扩容的时候,只要超过了1T,默认的Inode数量就一直为21251126,不再提升
4、而我们的上传服务,一个小文件只有几百k,很快就把Inode数量耗尽了
5、对于Inode数量限制,云服务商没有提供任何监控

虽然FlexGroup的超大卷默认会提升Inode数量,但我们一开始购买的服务确是普通卷,然后进行扩容,扩容后仍是普通卷,就触发了Inode数量不会自动增加这个问题。

后续,我们做了两个约定:
1、尽量采购超大卷
2、如果要采购普通卷,同时提单,增加Inode数量
3、云服务商同步进行产品更新,后续产品迭代时,从根源上解决这个问题

PS:
最近发现,他们居然做了一个inode扩容的功能,默认是最小值,可以手工扩展,也能设置为自动扩展。
不知道是谁定的需求,默认选项不应该是自动扩展吗?

什么是APT攻击,如何防护APT攻击

一、什么是高级持续性威胁(APT)?
高级持续性威胁(Advanced Persistent Threat,APT),又叫高级长期威胁,是一种复杂的、持续的网络攻击,包含三个要素:高级、长期、威胁。高级是指执行APT攻击需要比传统攻击更高的定制程度和复杂程度,需要花费大量时间和资源来研究确定系统内部的漏洞;长期是为了达到特定目的,过程中“放长线”,持续监控目标,对目标保有长期的访问权;威胁强调的是人为参与策划的攻击,攻击目标是高价值的组织,攻击一旦得手,往往会给攻击目标造成巨大的经济损失或政治影响,乃至于毁灭性打击。
用一句话总结一下:不怕贼偷,就怕贼惦记,特别怕专业的贼长期惦记。

二、高级持续性威胁(APT)的攻击阶段
APT攻击者通常是一个组织,从瞄准目标到大功告成,要经历多个阶段,在安全领域这个过程叫做攻击链。每个厂家对于攻击链的步骤定义略有差异,但本质上相差不大。
阶段1、信息收集
攻击者选定目标后,首先要做的就是收集所有跟目标有关的情报信息。这些情报可能是目标的组织架构、办公地点、产品及服务、员工通信录、管理层邮箱地址、高层领导会议日程、门户网站目录结构、内部网络架构、已部署的网络安全设备、对外开放端口、企业员工使用的办公OS和邮件系统、公司web服务器的使用的系统和版本等等。
阶段2、外部渗透
2.1、信息收集完成后,就要考虑如何渗透到组织内部。从钓鱼邮件、web服务器还是U盘入手?如果是钓鱼邮件,利用哪种客户端软件的零日漏洞?如果是web服务器,目标用户最常去的网站有哪些?
2.2、渗透手段确定后,下一步则需要制作特定的恶意软件。通常,攻击者所在组织会有专门的一拨人从事零日漏洞的挖掘和利用,他们也会密切关注一些漏洞报告平台上的最新公告,利用这种公开或半公开披露的漏洞原理以及可能的POC代码来进一步制作自己的趁手武器,例如带有恶意代码的pdf文件或office文件。这种恶意代码被称作shellcode,往往短小精悍,采用代码混淆、加壳、加密等反侦测手段,并在投递之前用各种最新的防病毒软件检测一遍,以期在投递到目标网络之后尽可能不被发现。
2.3、恶意软件制作好,下一步是把它投递到目标网络内。常用的手法包括邮件的附件、网站(挂马)、U盘等。
a、对于钓鱼邮件攻击,黑客务必要精心构造一封足以乱真的邮件内容,邮件标题、邮件内容、附件的名称和类型,都要让收件者放松警惕,产生兴趣,最终打开邮件附件或邮件正文中的URL链接。例如2020 年结合疫情热点发送钓鱼邮件或制作诱饵文件,成为了全球高级持续性威胁的普遍趋势。
b、对于网站(挂马),要根据攻击目标的兴趣爱好,选择一个合适的网站下手,这个网站必须存在可被利用的零日漏洞,然后对网站展开渗透和攻击,攻破后放上一个能自动在后台进行下载的脚本,让访问该网页的目标用户在不知不觉中就把含有恶意软件下载到本地,同时利用浏览器漏洞来安装执行。
c、而使用U盘载体来投递恶意软件的攻击行为,一般需要近距离的接触。当攻击目标不在internet上,不连接外网时,是一种手段。
阶段3、命令控制
当目标用户使用含有漏洞的客户端程序或浏览器打开带有恶意代码的文件时,就会被恶意代码击中漏洞,下载并安装恶意软件,恶意软件通常是一个体积很小的远程控制工具,业内简称为RAT(即Remote Administration Tool,或Remote Access Trojan),用于与控制服务器建立C&C信道。恶意程序一般还会提升权限或添加管理员用户,把自己设置为开机启动,甚至在后台悄悄关闭或修改主机防火墙设置,以让自己尽可能不被发现。
阶段4、内部扩散
同一个组织机构内部的办公主机往往都是相同的系统、类似的应用软件环境,因此很大程度上具备相同的漏洞,攻陷一台内网主机后,恶意程序会横向扩散到子网内其他主机或纵向扩散到企业内部服务器。由于RAT具备键盘记录和屏幕录像功能,因此很容易获取用户的域密码、邮箱密码及各类服务器密码。
阶段5、数据泄露
聪明的黑客在攻击的每一步过程中都通过匿名网络、加密通信、清除痕迹等手段来自我保护,在机密信息外发的过程中,也会采用各种技术手段来避免被网络安全设备发现。一方面化整为零,将机密信息打散、加密或混淆,避免DLP设备通过关键字扫描发现泄密;另一方面会限制发送的速率,以尽量不超过各类安全设备的检测阈值。

三、高级持续性威胁(APT)的特点
1、攻击者组织严密:往往是一个组织发起的攻击,可能具有军事或政治目的,有时会与某个国家关联在一起,而且背后往往有强大的资金支持。
2、针对性强:攻击者不会盲目攻击,一般会很有针对性的选择一个攻击目标,该目标往往具有军事、政治、经济上的较高价值。
3、手段高超:APT攻击的恶意代码变种多且升级频繁,结合尚未发布的零日漏洞,使得基于特征匹配的传统检测防御技术很难有效检测出攻击。
4、隐蔽性强:APT攻击者具有较强的隐蔽能力,不会像DDoS攻击一样构造大量的报文去累垮目标服务器,基于流量的防御手段很难发挥作用;在整个过程中都会使用高级逃逸技术来刻意躲避安全设备的检查,在系统中并无明显异常,基于单点时间或短时间窗口的实时检测技术和会话频繁检测技术也难以成功检测出异常攻击。
5、持续时间长:攻击者一般都很有耐心,渗透过程和数据外泄阶段往往会持续数月乃至数年的时间。

四、高级持续性威胁(APT)的典型案例
1、Google Aurora极光攻击
2010年,Google Aurora极光攻击是由一个有组织的网络犯罪团伙精心策划的有针对性的网络攻击,攻击团队向Google发送了一条带有恶意连接的消息,当Google员工点击了这条恶意连接时,会自动向攻击者的C&C Server(Command and Control Server)发送一个指令,并下载远程控制木马到电脑上,成为“肉鸡”,再利用内网渗透、暴力破解等方式获取服务器的管理员权限,员工电脑被远程控制长达数月之久,其被窃取的资料数不胜数,造成不可估量的损失。

2、震网攻击
2010年,“震网”病毒成功攻击了YL国的西门子离心机的工控软件,仅仅2个月,通过提高离心机转速,报废离心机约1000台,导致该国H计划进度至少推迟两年。据报道,“震网”是由多个国家发起的针对YL国设施的定向网络攻击事件, 但一个编程错误使蠕虫扩散到了其它不支持的操作系统上,才导致其在2010年6月被白俄罗斯安全人员捕获。
“震网”利用了7个漏洞,其中4个是零日漏洞。由于攻击目标不在Internet上,不连接外网,初期“震网”是经由特工之手将U盘插入目标系统或网络的。“震网”还应用了非常多的隐身、伪装、欺骗手法,例如,它的漏洞利用程序瞄准的是系统内核级别,以此逃脱反病毒软件的扫描,实现“隐身”;它会仔细跟踪自身在计算机上占用的处理器资源情况,只有在确定震网所占用资源不会拖慢计算机速度时才会将其释放,以免被发现,它还盗用了两家公司的数字签名,数字签名是程序的合法证明,公司一般会对数字签名进行额外的安全防护。

3、SolarWinds供应链事件
2020年12月网络安全公司 FireEye披露其公司购置的网管软件厂商SolarWinds相关软件中存在后门,该后门通过HTTP与第三方服务器进行通信。SolarWinds对全球客户展开排查,经排查发现,多家大公司均被攻击者通过该软件作为入口而成功渗透。此外,多个政府机构也可能已经沦陷;世界500强企业中,也有超过9成受到影响;全球至少30万家大型政企机构受到影响。

五、如何应对高级持续性威胁(APT)?
1、建立多层防御体系:针对APT攻击的多阶段特点,需要建立多层防御体系,包括网络层、应用层和用户层等。
2、强化安全意识培训:加强对员工的网络安全意识培训,特别是针对钓鱼邮件等APT攻击手段。
3、定期更新和打补丁:定期对设施进行补丁、升级及安全测试,尽可能减少弱点。
4、实施多层次防御:采取多层次的安全措施,包括防火墙、入侵检测系统(IDS)和入侵防御系统(IPS)。
5、纵深防御策略:全面的纵深防御策略对于打击APT攻击至关重要,包括实施多层安全控制,例如强大的周边防御、网络分段、端点保护、入侵检测系统、数据加密等。
6、安全意识培训:提高员工的安全意识培训,尤其是针对Spear Phishing等APT攻击手段。
7、定期更新和及时打补丁:制定周密的补丁管理程序,确保所有软件和系统都保持最新状态,关闭潜在的安全漏洞。
8、分析出站流量:分析出站流量而不是仅仅关注入站流量对于检测和阻止APT攻击至关重要。
9、系统硬化:通过系统硬化、特权提升防护、角色管理以及使用标准化命令等技术可以帮助识别和遏制APT攻击。
10、外部监控:外部监控可以帮助发现隐藏在受损主机上的恶意活动。

参考地址:
什么是高级持续性威胁(APT)?

NEOHOPE大模型发展趋势预测2409

NEOHOPE大模型发展趋势预测2409
1、虽然ChatGPT-4o 和 OpenAI o1都有亮眼表现,但OpenAI仍未能突破瓶颈,GPT5发布遥遥无期
2、小模型化、移动化趋势越来越明显
3、多个领域模型能力组合,将逐步成为趋势
4、国内大模型厂商频频降价,将开始新一轮的清洗,部分厂商将陆续出局
5、开源大模型将会逐步侵占闭源模型市场
6、领域模型采用开源大模型将成为主流
7、逻辑推理能力有大幅加强,效率有待提升
8、美国对外大模型技术封锁会更加严格

一线厂商【主观】:
1、国外闭源:Claude、ChatGPT、Mistral、Gemini
2、国外开源:Llama3
3、国内闭源:月之暗面Kimi、质谱清言ChatGLM、秘塔搜索
4、国内开源:阿里通义千问

如何通俗解释可信纵深防御

一、可信防御
攻击者在何时何地通过何种攻击手法发起攻击是无法预测的,但是信息系统的运行状态可以基于网络流量、应用日志和系统进程等信息有效地分析刻画,因此在防御思路上需要将不确定的攻击威胁,通过已知的业务状态转换为有效的防御策略来应对威胁,有效规避风险事件的发生。
因此,在安全风险控制上,首先应遵循可信计算理念来建立可信根,再基于可信根构建信任链,进而基于基础设施层、应用层、网络层、移动端和终端层等各层建立可信策略控制点,最后形成可信防护策略,仅允许执行预期内信息系统运行所依赖的资源和行为,确保防护强度达到可信级。

二、纵深防御
纵深防御的理念来自战争学,该理念在信息安全领域得到了广泛的使用和推广。该理念即通过建立多层重叠的安全防护系统构成多道防线,使得即使某一防线失效也能被其他防线弥补,也即通过增加系统防御的层数或将各层之间的漏洞错开的方式防范差错发生。为了避免因单点防御措施失效导致风险事件的发生,须采用纵深防御理念进行可信防御体系的建设。
无论是网络层、应用层、容器主机层、基础设施层还是硬件可信芯片层,需要通过各层的可信管控能力实施数据内视和可信管控,最终建立可信纵深防御体系。每增加一层可信防御能力,所建设的防御体系的防御强度都会大幅增强,同时也意味着投入成本的增加。因此,我们应在威胁有效应对和业务的合规要求、安全成本投入、管控效率上取得最佳平衡,做到既能满足监管合规要求,又可以高效应对面临的高级和未知威胁,同时可以将可信纵深防御体系的建设成本和管控效率控制在合理范围,不会因为防御体系建设过重而带来过多成本、性能和效率的损耗。

三、可信纵深防御
可信纵深防御是一种新的安全防御体系架构, 结合了可信防御、纵深防御、零信任、安全平行切面等多种新技术理念,是主动免疫可信计算在实际业务场景的落地实践,可以做到只允许预期内的行为执行即主动免疫,而且能够实现对所有威胁路径的多层覆盖,大幅降低风险事件发生的概率。同时它还建立了完备的信任链,将信任关系逐级规约至硬件芯片可信根,保障防御体系自身的安全。建立的防御措施做到仅允许信息系统在安全可信的环境下运行预期内的资源和行为加载、执行,且确保内容均是经过安全评估为无风险的;同时根据业务面临的威胁状况,可信防御措施需要多层覆盖,最终形成可信纵深防御体系,有效地应对0Day攻击、社会工程学攻击、软硬件供应链攻击等高级和未知威胁。
可信纵深防御体系以可信根为支撑,以可信软件基为核心,以密码学方法为主要手段,通过度量、检测、证明以及管控等手段,构建贯穿硬件、固件、系统软件、应用软件和网络行为的完整信任链,为信息系统的运行提供安全可信的底座。可信防御措施进行多层覆盖,以大幅降低风险事件发生的概率。最终达成事前高效规避已知(含高级)和未知威胁的目标,兼顾业务效率与体验要求。
可信纵深防御体系整体架构包含四个关键部分:硬件可信芯片、可信策略控制点、信任链和可信管控中心,由安全防护部件形成的可信防护体系与由计算部件形成的计算体系形成双体系结构。其中可信管控中心又由可信策略管控系统、可信策略刻画系统、安全保障系统、稳定性保障系统四部分组成。在整体架构设计上以硬件可信芯片为信任根;以可信软件基为核心,它由基础设施层、应用层、网络层及移动端和终端层等各层构建的可信策略控制点组成;基于硬件可信芯片构建的信任链来保障可信策略控制点的安全可信;基于可信策略刻画系统及密码学技术生成的“免疫基因抗体”对信息系统的运行环境、资源加载和交互行为进行可信管控,有效识别“自己”和“非己”成分,破坏与排斥进入信息系统机体的有害物质,为信息系统加持“免疫能力”​,保障信息系统和数字资产的安全性;安全保障和稳定性保障技术为整体可信纵深防御体系的落地提供支撑,防止在可信纵深防御体系建设中产生安全漏洞和稳定性风险事件,导致业务受损。

四、关键技术
可信计算:通过主动免疫的方法防御不可预测、不可控的攻击与威胁,基于不可篡改的硬件芯片作为可信根,主动逐层检查系统行为是否可信,建立理论可证完备的信任链。
安全平行切面技术:在业务系统中构建安全防御的平行空间,实现与业务解耦、透视、智能评估、精准管控,兼顾业务效率的同时,高效构建安全纵深防御体系。
零信任防御理念:从不信任,始终验证;不信任网络位置;最小化访问权限;记录和监控所有网络访问流量。
可信芯片:作为信任根,可信芯片负责验证硬件设备的启动参数和程序,确保硬件的安全性和完整性。
信任链构建:通过静态和动态的信任链校验机制,确保从硬件到软件各层级的信任关系。
远程证明:允许系统在远程环境中进行身份验证和状态确认,增强系统的可信赖性。
密钥安全保护:包括密钥的安全存储和使用,确保密钥不被非法获取或篡改。

五、实施可信纵深防御的方法包括
基于硬件可信芯片构建信任根:利用硬件可信芯片和密码学方法对物理机的启动参数和启动程序进行可信管控,确保硬件芯片、启动参数、系统OS等均是安全可信的。
基于安全切面构建可信策略控制点:在数字银行IT架构中分析、选型或设计可信策略控制点,实现对风险场景的数据内视和可信管控。
基于信任链保障可信防御产品或能力的安全可信:利用硬件可信芯片提供的可信存储和密码技术,构建完备的信任链,将信任机制由硬件可信芯片逐层传递至基础设施层、应用层和网络层等各个层面的可信策略控制点,保障可信策略控制点的安全性。
基于可信管控中心实施可信管控:可信管控中心负责可信策略的生成、配置下发、事件上报和行为审计等工作,同时为整个可信纵深防御体系的运行提供安全性和稳定性的保障能力。

参考:
《数字银行安全体系构建》

如何通俗解释安全平行切面

安全平行切面是一种将软件工程中的面向切面编程(AOP)思想应用于安全体系建设的技术体系,其核心目标是构建一个与业务逻辑正交融合的安全空间,使安全能力能够融入企业的技术基础设施中,并与业务代码解耦。

与传统安全方案比,安全平行切面既不像外挂式安全体系,安静旁观,隔靴搔痒;也不像内嵌式安全体系,入侵业务,绑腿走路。而是通过端—管—云各层次的切面,能够在不修改业务逻辑的情况下,将安全可信的管控能力动态部署到目标系统的执行空间内部,从而实现对系统内部数据的自由观测,精确阻断攻击和风险,并进行精细化的数据治理。

安全平行切面的应用场景非常广泛,包括数据保护、身份验证、访问控制和威胁检测等多个领域。通过在业务逻辑和流量关键环节中构建切点组合,可以更快速地发现潜在威胁并实现对异常访问的精准感知和快速阻断。

实施安全平行切面通常涉及以下步骤:
定义安全需求:明确需要通过安全平行切面实现的保护目标和安全需求。
设计切面和切点:根据安全需求,设计切面(Aspect)和切点(Pointcut),确定在业务流程的哪些环节需要插入安全措施。
开发切面逻辑:开发或配置切面逻辑(Advice),这包括定义安全策略、异常检测、访问控制、数据加密等安全功能。
集成和部署:将设计好的切面逻辑集成到业务系统中,并在实际环境中进行部署。
测试和验证:对集成了安全平行切面的系统进行测试,确保安全措施有效且不会影响业务系统的正常运行。
监控和维护:持续监控切面的性能和效果,根据安全威胁的变化进行必要的调整和维护。
培训和文化建设:对团队进行安全平行切面的培训,提高安全意识,建立安全文化。

安全平行切面的核心优势在于它能够提供精准的内视能力和高效的干预能力,使得安全措施更加精细化和动态化。同时,安全平行切面还支持多层级的安全布防,能够实现不同层级间的安全管控,并通过多层级安全切面的联动形成整体的防御体系,达到更好的安全治理、防护和对抗效果。

什么是RASP

Gartner在2012年引入了RASP(Runtime Application Self-Protection,运行时应用程序自我保护),这是一种在应用程序运行时提供安全保护的技术,通过嵌入到应用程序中,实时监控和阻止针对应用程序的攻击,使应用程序具备自我防护能力。其核心思想是将安全防护代码集成到应用程序本身中,实时采集应用的高风险行为,结合特征规则、上下文语义分析及第三方安全产品数据关联分析,实现对应用程序的实时检测和防御,通过实时监控和防御来保护应用程序免受各种网络攻击。

具体来说,RASP通过以下几种方式实现自我保护:
1、动态代码注入:RASP通过动态代码注入技术,将自身防御逻辑注入到底层API中,从而实现无须人工干预、无感知的高精准检测和防御外部攻击。
2、API钩子:通过监控应用程序调用的API函数,实现对应用程序行为的监控。
3、上下文感知:RASP能够获取应用运行时的上下文信息,包括代码、框架配置、应用服务器配置、库和框架、运行时数据流、后端连接等,从而提供更精准的威胁检测。
4、安全策略配置:管理员可以通过配置安全策略来适应不同的应用程序需求和威胁模式,定义哪些行为是允许的,哪些是禁止的。
5、规则匹配与行为基线:RASP利用规则匹配、词法分析、行为及运行堆栈检测等方法,识别潜在的安全漏洞并防止攻击。这些功能有助于识别未知漏洞并给出详细的漏洞详情,极大降低误报率。
6、自定义逻辑检查:不依赖请求特征检测攻击,而是在应用执行关键操作时,执行一段自定义的逻辑检查是否存在异常,以应对未知漏洞。
7、实时监测和阻断:RASP在应用程序运行时检测到恶意行为,并立即进行阻止,有效防止了恶意代码的执行。
相较于传统的Web应用安全产品,RASP从海量的攻击中排除掉大量无效攻击,聚焦发现真实的已知和未知安全威胁。

实施RASP时,可以采取以下步骤:
1、明确应用的安全需求和目标:包括识别关键的安全风险点、确定需要防护的攻击类型以及定义安全策略。
2、根据应用的技术栈和具体需求,选择适合的RASP工具。例如,Java应用可以选择OpenRASP等开源框架,或者使用商业解决方案如AWS WAF等。
2、集成RASP探针:在应用中集成RASP探针,这些探针会在应用运行时插入到业务代码中,监控其行为并进行实时检测。探针可以部署在主机或容器环境中,无需修改原有代码。
3、配置RASP规则:定义一套安全规则来指导RASP如何工作。这些规则包括允许和禁止的行为模式,并根据不同的应用场景进行调整。管理员可以通过图形界面或API配置这些规则。
4、测试:在生产环境部署RASP之前,进行彻底的测试,以确保它不会对应用程序的性能产生负面影响,并且能够有效地检测和阻止攻击。
5、部署:将RASP部署到生产环境中,并确保其与应用程序一同启动。
6、培训和维护:对开发和运维团队进行RASP相关的培训,并定期更新RASP规则和签名,以应对新的安全威胁。
7、监控和调整:部署RASP后,需要监控其性能和产生的安全警报,并根据监控结果调整RASP规则,以减少误报和提升防护效果。
8、定期评估:评估RASP性能和效果,根据新的安全威胁和漏洞进行更新和优化。同时,结合IAST(交互式应用程序安全测试)和DAST(静态应用程序安全测试)等工具,进一步提高防护能力。
9、应急机制:建立有效的应急响应机制,以便在发生安全事件时迅速采取措施。同时,合理管理和记录日志信息,便于事后分析和审计。

默认安全体系

默认安全体系(Default Security)是指在系统、网络或应用程序的设计和实施过程中,将安全措施作为标准配置和操作的一部分,以确保即使在未明确配置安全设置的情况下,也能提供一定级别的保护。默认安全使安全性成为组织文化的一部分,减少对用户或管理员进行复杂安全配置的依赖,从而提高整体的安全性和抵御威胁的能力。

默认安全的最终目标是:规避已知安全风险,存量风险治理逐步完成,同时新增业务默认经过安全评估和安全措施覆盖。类似于针对已知疾病的疫苗与抗体,对于已知类型风险,系统应达到投产即安全的状态。

默认安全体系的重要组成部分有:

1、安全默认配置:
确保所有系统、设备和应用程序在初始安装和设置时都具有安全的默认配置,如禁用不必要的服务、关闭未加密的远程访问等。

2、加密和数据保护:
在默认情况下启用数据加密,包括传输中的数据和静态数据,以及敏感信息的加密存储。

3、安全开发生命周期(SDL):
将安全实践集成到软件开发生命周期的每个阶段,确保安全缺陷在早期被发现和修复。

4、安全测试和验证:
对所有系统和应用程序进行定期的安全测试,包括静态和动态代码分析、渗透测试等。

5、访问控制和认证:
实施强大的身份验证机制,如多因素认证,并在默认情况下启用访问控制。

6、最小权限原则:
按照最小权限原则为用户和应用程序分配权限,确保它们仅拥有完成其功能所必需的访问权限。

7、安全审计和监控:
启用日志记录和监控,以便在默认情况下跟踪和审计所有关键操作和事件。

8、安全补丁和更新:
确保系统和应用程序在默认情况下自动接收和应用安全补丁和更新。

9、用户安全意识教育:
教育用户了解默认安全措施的重要性,并鼓励他们采取安全意识行动。

10、应急响应计划:
制定应急响应计划,以便在安全事件发生时迅速采取行动。

11、合规性和政策制定:
确保默认安全措施符合相关的法律、法规和行业标准。

12、技术架构设计:
在设计阶段就考虑安全性,采用安全的网络架构和系统设计原则。

安全架构实践公理

2020年7月,TOG(The Open Group)联合SABSA,正式发布中文版指南《安全架构实践的公理》(其英文版发布于2019年7月),其中20条安全架构实践公理如下:

公理1:业务风险驱动安全
安全架构应通过最大化收益和最小化损失来支持业务目标。
必须牢记的是,组织资产并不是为了被保护而存在,它们的存在是为了创造价值。而利用资产创造价值,通常意味着使该资产面临风险。这正是矛盾之处。
为了提供最优架构,安全架构师不仅要从防止负面结果的角度来看待它们对组织的贡献,还要从促成积极结果的角度来看待它们。
如果安全架构无法支撑组织利用其资产来完成业务工作,则该安全架构可能被边缘化和显得无用。
安全架构应基于业务风险驱动,并且应该是对这些风险进行适当响应。

公理2:场景
不要虚构场景,否则后果自负。专为一种场景而设计的安全系统或解决方案,并不总是可以有效地在另一种场景中工作。
这并不是反对重用,可重用的基于组件的架构有很多好处。但是,如果为了节省时间和精力,将安全系统重用于不同的用例,则需要针对这两个用例之间的差异,进行新的风险分析。
该指南还专门针对系统设计中的一个常见错误——访问控制过程的身份识别、身份验证、授权过程的混淆,进行了澄清。

公理3:范围
明确定义安全架构的范围很重要。在这方面,系统收益(SOI)的概念很有用(如ISO/IEC/IEEE 42010:2011中所定义)。

公理4:情报
安全系统应利用情报来主导响应活动。通过威胁情报,既可以了解对手的意图、能力、攻击方式,也可以了解自身的漏洞情况。
建议对潜在威胁场景进行建模分析,来实现最佳效果。

公理5:信任
安全架构应该保障系统可以准确建模业务实体关系中存在的信任的性质、类型、级别、复杂性。
信任是人际关系的特征。但我们可能要给非人员对象以信任。当这样做时,其实是在说,我们可以信任操作这类对象的人员,或可被操作这类对象的人员所信任。因此,一个可信的系统是指我们信任参与系统生命周期过程的人员。
信任从来都不是二进制,而是一个很长的灰度连续体,很少有黑色或白色。
“信任”和“被信任”不是镜像关系。
即使是最复杂的信任关系,也可以自顶向下分析成一系列简单的单向信任关系。通过严格执行此项分析,可以将任何业务关系分解为简单且独立的单向信任组件。

公理6:整体分析
安全需求应与其它的功能性需求和非功能性需求集成在一起。安全需求通常被描述为非功能需求(NFR),并且不应将其与其他功能需求或非功能需求分离。只有将所有需求都视为SOI(系统收益)整体风险的一部分时,安全架构才能有效工作。
架构通常被视为不同视角的一系列观点。这些观点通常被称为架构域。例如:业务架构域、应用架构域、信息架构域、数据架构域、服务管理架构域、技术架构域。就像看一座被群峰环绕的山谷,远近高低的观点各不同。
而安全架构域是从另一个视角来看的另一种观点,但与其它视角有很大不同,因为它是一个跨领域的域,必须以整体的方式解决所有其它域的安全和风险管理问题。因为风险无法分为孤立的架构域,所以安全架构师必须同时从所有视角看到山谷,即拥有可以随意旋转的全息视图。

公理7:简洁性
系统和服务应在保证功能性的前提下尽可能简洁。
复杂是安全的敌人,必须在保持整体性的同时,将其简化为子结构进行管理。安全架构将会受益于面向服务的架构(SOA)方法,在这种方法中,我们看到了“一切即服务”(EaaS)。服务的性能对于实现顶级业务绩效目标至关重要。
任何架构类型的主要目标之一就是管理复杂性。必须通过自上而下的分解来分解高度复杂的SOI(系统收益),从最高级别的业务目标开始,并创建逐渐简化的SOI层次,并对其逐层解决。
高度复杂的系统,倾向于表现出涌现性。涌现性的示例包括:两个或多个进程争用同一系统资源时发生死锁;网络在超出容量后的流量拥塞。
系统安全漏洞主要来自两个来源:设计错误和涌现性。两者不相同,不应混淆。涌现性是系统工程的一种现象,并非一开始就被设计出来。复杂性本身就是导致出现这一现象的原因。

公理8:重用
在可行的情况下,尽可能重用受信任的系统开发实践和系统组件。
安全架构师不应从零开始,不要重新发明轮子。从通用框架和参考架构开始,并针对特定的场景进行定制,始终是效率更高的方法。
框架示例包括:
NIST网络安全框架(CSF):是150多个RFI响应和许多利益相关方会议的产物。
ISO 27000系列:是用于组织和监控企业安全机制的一组控件和过程。
ISO 31000-2018:定义了一个周期性的风险管理流程。
SABSA平衡风险模型:提供了定义风险相关组件的组织结构。

公理9:弹性
安全系统应在受到胁迫时依然正常运行。
架构的弹性不仅仅是设备,还必须包括人员和流程。
弹性的关键特征是计划内的系统降级——通过控制将系统降级,而非由于无法控制导致故障。
良好的弹性设计的一个例子,是在大容量云服务数据中心中使用混沌工程。混沌工程通过在时间敏感的在线服务中,不断进行故障自动转移测试,来验证系统弹性。

公理10:过程驱动
安全开发过程应使用清晰的生命周期,来解决要求的时间跨度,并引入利益相关方。
战略:安全架构的目标是支持组织的长期的业务战略。安全架构本身是一项战略活动,需要长期的投资和管理层的支持。
战术:安全架构是通过一系列步骤开发和实施的:利用变更项目从而使长期愿景变为现实。
运营:安全架构提供技术、工具、流程来确保日常的安全,并对业务运营提供风险管理。

公理11:优化冲突解决
安全应通过平衡业务风险,来优化解决利益相关方的冲突。
利益相关方的关注通常会发生冲突。安全架构的作用之一是以最佳方式解决这些冲突,在功能需求和其他非功能需求与安全需求之间取得平衡。这些利益冲突可能非常复杂,源于安全架构的跨复杂领域的性质。

公理12:清晰的沟通
安全应使用有利于业务和技术利益相关方之间进行有效沟通的通用术语。
安全架构师必须至少会两种“语言”,能熟练使用业务涉众的语言(“业务术语”)和技术人员的知识(“技术术语”)。

公理13:易用性
安全系统应该尽可能对用户透明且易于使用。
不易使用或导致生产受到影响/破坏的安全控制措施,通常会被忽略、禁用、废除,导致资源容易受到攻击,从而失去了控制措施的价值。而被绕过或未被使用的安全系统将毫无价值。
可用性差的经典示例,是密码的使用。另一个示例是Web浏览器使用PKI证书对网站进行验证。

公理14:安全设计
安全性应依赖于经过验证的特定控制措施,而非隐藏。
每本安全书籍都强烈建议不要使用“通过隐藏构建安全性”。其实通常被否定的,是希望安全漏洞不被发现的侥幸心理。
安全不应依赖于暗箱操作或其它晦涩的形式,而应依赖于经过验证的特定控制。就像密码学的安全性,应取决于对加密密钥的保护,而非加密算法。

公理15:优先级
使用较强的保护机制来保护较弱的机制,而非相反。
最重要的事物不应依赖于不重要的事物。

公理16:设备主权
所有设备均应能够在不受信任的网络上保持其安全策略。
保护机制通常位于本地或靠近被保护的资源更有效。这使得防护机制更容易随受保护资源一起迁移。
物联网设备的市场壁垒,使得设备主权原则难以适用。安全架构师必须面对这一挑战。不可能强迫市场将高级安全性集成到IoT设备中,因为这是一种市场驱动的现象,受成本和收益的感知驱动,但是设计整体集成的分层方式将改善一定程度的安全性。

公理17:纵深防御
通过分层防御可以获得更高的安全性。
纵深防御是一种传统方法,它通过在攻击路径上应用多层或多级安全性,来最大程度地保护每个资源。
为了使纵深防御有效,各层之间必须彼此独立,各层应该由不同类型的控制措施组成,而非多层使用同一类型的控制。
当控制措施失效时,选择失效而开放,还是失效而关闭,取决于资源的敏感性和它所支持的服务的需求。在此领域,有限状态机(FSM)建模可用于探索系统可能进入的所有可能状态。

公理18:最小特权
主体(人员、事物、流程等)应仅被授予执行其授权任务所需的权限。
部署最小特权系统和服务的能力,在一定程度上取决于可以执行细粒度访问控制的技术和流程。细粒度的访问控制,要求以一种方式捕获或存储有关资源或资产以及最终用户的元数据,以便访问控制系统可以通过它来做出有关资源的访问决策。
职责分离也是从纵深防御中衍生出来的一种特殊形式的最小特权。

公理19:访问管理
访问控制包括三种不同的操作过程:
识别:识别并区分主体;
认证:验证主体的身份;
授权:授予主体适当的访问权限。

公理20:通信安全
设备和应用程序应使用开放、安全的协议进行通信。
在当今过度连接的世界中,无法假设未加密的传输具有任何级别的安全性。
最重要的一点是,无论加密服务是否已打开并处于最佳运行状态,网络服务都无法向应用服务发出信号。因为网络无法理解应用程序的数据结构。
规则很简单:网络需要网络安全服务来保护。应用程序需要应用安全服务来保护。
通信安全架构是一门复杂的学科。它必须在通信设备之间采用敌对环境,并且必须同时满足应用程序层安全性和网络层安全性。

参考:
《网络安全架构:安全架构实践的公理》
安全内参是个很好的安全类技术网站,大家可以关注一下:安全内参官网

可信计算的核心技术

可信计算(Trusted Computing)是一种增强计算机系统安全性的技术,旨在确保计算机系统和应用的完整性、可靠性和安全性。它通过一系列机制和技术手段,如硬件安全模块、加密技术、安全验证等,来确保系统和应用的可信度,增强信息系统的内生安全能力。

可信计算和等级保护2.0是密不可分的,特别提出了把可信计算技术植入基础软硬件和网络的要求:
1、把可信验证要求植入芯片、CPU、服务器、操作系统、数据库等基础软硬件
2、把可信验证要求植入网络设备、网络安全产品,解决底层安全问题
3、把可信计算技术植入“安全管理中心、安全通信网络、安全区域边界、安全计算环境”网络要素,实现对网络要素全覆盖
4、把可信计算技术植入整机、云计算平台、物联网、工控系统、移动互联网
5、把可信计算技术植入第二级以上网络

可信计算的关键技术主要包括:
1、硬件层面的可信根(Trusted Root):可信计算通常从硬件层面开始构建,使用如TPM(Trusted Platform Module)等安全芯片作为信任的根基,确保从硬件到软件的整个启动过程是可信的。
2、系统启动的可信验证:在系统启动过程中,利用可信根对系统的引导程序、系统程序等进行可信验证,确保其未被篡改或破坏。包括计算设备固件引导程序和操作系统引导程序,以及计算设备固件程序和操作系统程序 。
3、可信验证(Trusted Verification):基于可信根,构建信任链,一级度量一级,一级信任一级,把信任关系扩大到整个计算节点,从而确保计算节点可信的过程 。
4、动态可信验证(Dynamic Trusted Verification):对验证对象(文件或程序)的静态内容、运行时内存中存储的关键变量及数据、属性等进行实时、周期性的可信判断。
5、可信计算模块(Trusted Computing Module):通常指TPM(Trusted Platform Module),是一种安全芯片,用于存储加密密钥和进行平台的可信度量 。
6、可信软件基(Trusted Software Base):确保操作系统和应用程序的代码在执行时是可信的,没有被恶意修改。
7、可信软件栈:可信软件栈(Trusted Software Stack, TSS)是一组软件组件,可以在操作系统上实现可信计算的功能。它包括了管理TPM(或其替代品)的驱动程序和工具,可以用来提供密钥管理、度量和报告等功能
8、远程证明(Remote Attestation):允许远程验证计算节点的可信性,确保远程通信的安全性。
9、安全审计(Security Audit):通过记录和分析系统活动,确保系统的安全性和合规性。
10、可信网络连接(Trusted Network Connect):确保网络连接的安全性和可信性,防止未授权访问和数据泄露。
11、用户和设备身份认证:通过强身份认证机制确保用户和设备的身份可信,如使用数字证书、生物识别等技术。
12、数据保护:使用加密技术保护数据的机密性和完整性,确保敏感信息不被未授权访问或泄露。
13、安全审计与合规性:实施安全审计,确保可信计算的实施符合相关的法律法规和标准要求。
14、安全管理中心:建立安全管理中心,对可信验证的结果进行集中管理、监控和响应,确保系统的持续安全。

什么是DevSecOps

DevSecOps是一种将安全实践集成到开发和运维(DevOps)过程中的方法论:安全不仅仅是安全团队的责任,而是整个IT部门(包含开发、测试、安全和运维等团队)所有成员的责任,需要贯穿业务生命周期的每个环节。
其核心理念是“安全内建”,即在软件开发的每个阶段都考虑安全性,而不是将其作为事后处理。DevSecOps 旨在通过自动化和协作来提高软件的质量和安全性,同时加快交付速度。

DevSecOps 的关键组成部分:
1、 安全左移(Shift Left Security):将安全活动前移到软件开发生命周期的早期阶段,以便在设计和编码阶段就识别和修复安全漏洞。
2、 自动化:通过自动化工具和流程来执行安全测试、代码审查和合规性检查,以提高效率和一致性。
3、 持续集成/持续部署(CI/CD):在软件开发过程中实现自动化的构建、测试和部署,确保安全措施能够快速响应开发变更。
4、 文化和团队协作:建立一种文化,其中开发、运维和安全团队共同协作,共同对软件的安全性负责。

如何实施 DevSecOps:

1、 建立跨功能团队:
组建包含开发、运维和安全专家的跨功能团队,确保从项目开始就考虑安全性。

2、 安全培训:
对团队成员进行安全意识和最佳实践的培训,确保他们了解安全的重要性和实施方法。

3、 定义安全策略和标准:
制定清晰的安全策略和标准,确保团队成员理解并遵循。

4、 集成安全工具:
选择并集成自动化的安全工具,如静态代码分析器、动态应用安全测试(DAST)工具、容器安全扫描工具等。

5、 实施安全编码实践:
在编码阶段实施安全编码标准和实践,减少安全漏洞。

6、 自动化安全测试:
在CI/CD流程中自动化安全测试,包括代码审查、自动化扫描和渗透测试。

7、 持续监控和响应:
实施实时监控和日志分析,以便快速检测和响应安全事件。

8、 合规性和审计:
确保遵守相关的法律法规和行业标准,定期进行安全审计。

9、 反馈和改进:
建立反馈机制,根据安全测试和监控结果不断改进安全措施。

10、 文档和透明度:
记录安全流程和事件响应计划,确保团队成员和利益相关者之间的透明度。

11、 灾难恢复和业务连续性:
制定和测试灾难恢复计划,确保在安全事件发生后能够快速恢复正常运营。

12、 文化建设:
培养一种安全文化,鼓励团队成员积极报告潜在的安全问题,并参与安全改进。

实施 DevSecOps 需要组织层面的支持和承诺,以及跨部门的协作。通过将安全集成到 DevOps 的每个环节,组织可以更有效地管理风险,同时加快软件交付的速度。