赞
踩
红蓝对抗的概念最早来源于20世纪60年代的美国演习,演习是专指军队进行大规模的实兵演习,演习中通常分为红军、蓝军,其中蓝军通常是指在部队模拟对抗演习专门扮演假想敌的部队,与红军(代表我方正面部队)进行针对性的训练,这种方式也被称作Red Teaming。
网络安全红蓝对抗的概念就源自于此。红军作为企业防守方,通过安全加固、攻击监测、应急处置等手段来保障企业安全。而蓝军作为攻击方,以发现安全漏洞,获取业务权限或数据为目标,利用各种攻击手段,试图绕过红军层层防护,达成既定目标。可能会造成混淆的是,在欧美一般采用红队代表攻击方,蓝队代表防守方,颜色代表正好相反。
比较有影响力的演习有“锁盾”(Locked Shields)、“网络风暴”等。其中“锁盾”由北约卓越网络防御合作中心(CCDCOE,Cooperative Cyber Defence Centre of Excellence)每年举办一次。“网络风暴”由美国国土安全部(DHS)主导,2006年开始,每两年举行一次。
和APT攻击相比,攻防演习相对时长较短,只有1~4周,有个防守目标。而APT攻击目标唯一,时长可达数月至数年,更有隐蔽性。
企业网络蓝军工作内容主要包括渗透测试和红蓝对抗,这两种方式所使用的技术基本相同,但是侧重点不同。
渗透测试侧重用较短的时间去挖掘更多的安全漏洞,一般不太关注攻击行为是否被监测发现,目的是帮助业务系统暴露和收敛更多风险。
红蓝对抗更接近真实场景,偏向于实战,面对的场景复杂、技术繁多。侧重绕过防御体系,毫无声息达成获取业务权限或数据的目标。不求发现全部风险点,因为攻击动作越多被发现的概率越大,一旦被发现,红军就会把蓝军踢出战场。红蓝对抗的目的是检验在真实攻击中纵深防御能力、告警运营质量、应急处置能力。
安全开发生命周期(Security Development Lifecycle,SDL)是微软提出的从安全的角度来指导软件开发过程的管理模式。用于帮助开发人员构建更安全的软件、解决安全合规要求,并降低开发成本。
开发团队的所有成员都必须接受适当的安全培训,了解相关的安全知识。培训对象包括开发人员、测试人员、项目经理、产品经理等。
在项目确立之前,需要提前确定安全方面的需求,确定项目的计划时间,尽可能避免安全引起的需求变更。
在设计阶段确定安全的最低可接受级别。考虑项目涉及到哪些攻击面、是否能减小攻击面。
对项目进行威胁建模,明确可能来自的攻击有哪些方面,并考虑项目哪些部分需要进行渗透测试。
实现阶段主要涉及到工具、不安全的函数、静态分析等方面。
工具方面主要考虑到开发团队使用的编辑器、链接器等相关工具可能会涉及一些安全相关的问题,因此在使用工具的版本上,需要提前与安全团队进行沟通。
函数方面主要考虑到许多常用函数可能存在安全隐患,应当禁用不安全的函数和API,使用安全团队推荐的函数。
代码静态分析可以由相关工具辅助完成,其结果与人工分析相结合。
验证阶段涉及到动态程序分析和攻击面再审计。动态分析对静态分析进行补充,常用的方式是模糊测试、渗透测试。模糊测试通过向应用程序引入特定格式或随机数据查找程序可能的问题。
考虑到项目经常会因为需求变更等情况使得最终产品和初期目标不一致,因此需要在项目后期再次对威胁模型和攻击面进行分析和考虑,如果出现问题则进行纠正。
在程序发布后,需要对安全事件进行响应,需要预设好遇到安全问题时的处理方式。
另外如果产品中包含第三方的代码,也需要考虑如何响应因为第三方依赖引入的问题。
新一代的攻击者常常向企业和组织发起针对性的网络攻击,这种针对性强的攻击,一般经过了精心的策划,攻击方法、途径复杂,后果严重。在面对这种攻击时,攻防存在着严重的不对等,为了尽可能消除这种不对等,威胁情报 (Threat Intelligence) 应运而生。
威胁情报(Threat Intelligence),也被称作安全情报(Security Intelligence)、安全威胁情报(Security Threat Intelligence)。
关于威胁情报的定义有很多,一般是指从安全数据中提炼的,与网络空间威胁相关的信息,包括威胁来源、攻击意图、攻击手法、攻击目标信息,以及可用于解决威胁或应对危害的知识。广义的威胁情报也包括情报的加工生产、分析应用及协同共享机制。相关的概念有资产、威胁、脆弱性等,具体定义如下。
一般威胁情报需要包含威胁源、攻击目的、攻击对象、攻击手法、漏洞、攻击特征、防御措施等。威胁情报在事前可以起到预警的作用,在威胁发生时可以协助进行检测和响应,在事后可以用于分析和溯源。
常见的网络威胁情报服务有黑客或欺诈团体分析、社会媒体和开源信息监控、定向漏洞研究、定制的人工分析、实时事件通知、凭据恢复、事故调查、伪造域名检测等。
在威胁情报方面,比较有代表性的厂商有BAE Systems Applied Intelligence、Booz Allen、RSA、IBM、McAfee、赛门铁克、FireEye等。
对组织具有价值的信息或资源,属于内部情报,通过资产测绘等方式发现。
能够通过未授权访问、毁坏、揭露、数据修改和或拒绝服务对系统造成潜在危害的起因,威胁可由威胁的主体(威胁源)、能力、资源、动机、途径、可能性和后果等多种属性来刻画。
可能被威胁如攻击者利用的资产或若干资产薄弱环节。
漏洞存在多个周期,最开始由安全研究员或者攻击者发现,而后出现在社区公告/官方邮件/博客中。随着信息的不断地传递,漏洞情报出现在开源社区等地方,并带有PoC和漏洞细节分析。再之后出现自动化工具开始大规模传播,部分漏洞会造成社会影响并被媒体报道,最后漏洞基本修复。
威胁利用资产或一组资产的脆弱性对组织机构造成伤害的潜在可能。
威胁利用资产的脆弱性后实际产生危害的情景。
为了实现情报的同步和交换,各组织都制定了相应的标准和规范。主要有国标,美国联邦政府标准等。
除了国家外,企业也有各自的情报来源,例如厂商、CERT、开发者社区、安全媒体、漏洞作者或团队、公众号、个人博客、代码仓库等。
比较有影响力的威胁框架主要有洛克希德-马丁的杀伤链框架(Cyber Kill Chain Framework)、MITRE的ATT&CK框架(Common Knowledge base of Adversary Tactics and Techniques)、ODNI的CCTF框架(Common Cyber Threat Framework,公共网空威胁框架),以及NSA的TCTF框架(Technical Cyber Threat Framework,技术性网空威胁框架)。
MITRE是美国政府资助的一家研究机构,该公司于1958年从MIT分离出来,并参与了许多商业和最高机密项目。其中包括开发FAA空中交通管制系统和AWACS机载雷达系统。MITRE在美国国家标准技术研究所(NIST)的资助下从事了大量的网络安全实践。
MITRE在2013年推出了ATT&CK™ 模型,它的全称是 Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK),它是一个站在攻击者的视角来描述攻击中各阶段用到的技术的模型。将已知攻击者行为转换为结构化列表,将这些已知的行为汇总成战术和技术,并通过几个矩阵以及结构化威胁信息表达式(STIX)、指标信息的可信自动化交换(TAXII)来表示。由于此列表相当全面地呈现了攻击者在攻击网络时所采用的行为,因此对于各种进攻性和防御性度量、表示和其他机制都非常有用。多用于模拟攻击、评估和提高防御能力、威胁情报提取和建模、威胁评估和分析。
官方对 ATT&CK的描述是:
MITRE’s Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK) is a curated knowledge base and model for cyber adversary behavior, reflecting the various phases of an adversary’s attack lifecycle and the platforms they are known to target.
和Kill Chain等模型相比,ATT&CK的抽象程度会低一些,但是又比普通的利用和漏洞数据库更高。MITRE公司认为,Kill Chain在高维度理解攻击过程有帮助,但是无法有效描述对手在单个漏洞的行为。
目前ATT&CK模型分为三部分,分别是PRE-ATT&CK,ATT&CK for Enterprise(包括Linux、macOS、Windows)和ATT&CK for Mobile(包括iOS、Android),其中PRE-ATT&CK覆盖攻击链模型的前两个阶段(侦察跟踪、武器构建),ATT&CK for Enterprise覆盖攻击链的后五个阶段(载荷传递、漏洞利用、安装植入、命令与控制、目标达成),ATT&CK Matrix for Mobile主要针对移动平台。
PRE-ATT&CK包括的战术有优先级定义、选择目标、信息收集、发现脆弱点、攻击性利用开发平台、建立和维护基础设施、人员的开发、建立能力、测试能力、分段能力。
ATT&CK for Enterprise包括的战术有访问初始化、执行、常驻、提权、防御规避、访问凭证、发现、横向移动、收集、数据获取、命令和控制。
MITRE在定义ATT&CK时,定义了一些关键对象:组织 (Groups)、软件 (Software)、技术 (Techniques)、战术 (Tactics)。
其中组织使用战术和软件,软件实现技术,技术实现战术。例如APT28(组织)使用Mimikatz(软件)达到了获得登录凭证的效果(技术)实现了以用户权限登录的目的(战术)。整个攻击行为又被称为TTP,是战术、技术、过程的集合。
根据纵深,防御可以分为物理层、数据层、终端层、系统层、网络层、应用层几层。这几层纵深存在层层递进相互依赖的关系。
物理层实际应用中接触较少,但仍是非常重要的位置。如果物理层设计不当,很容易被攻击者通过物理手段绕过上层防御。
数据处于防御纵深较底层的位置,攻击的目标往往也是为了拿到数据,很多防御也是围绕数据不被破坏、窃取等展开的。
终端包括PC、手机、IoT以及其他的智能设备,连入网络的终端是否可信是需要解决的问题。
操作系统运行在终端上,可能会存在提权、非授权访问等问题。
网络层使用通信线路将多台计算机相互连接起来,依照商定的协议进行通信。网络层存在MITM、DDoS等攻击。
应用层是最上层,主要涉及到Web应用程序的各种攻击。
Web应用需要限制用户对应用程序的数据和功能的访问,以防止用户未经授权访问。访问控制的过程可以分为验证、会话管理和访问控制三个地方。
验证机制在一个应用程序的用户访问处理中是一个最基本的部分,验证就是确定该用户的有效性。大多数的web应用都采用使用的验证模型,即用户提交一个用户名和密码,应用检查它的有效性。在银行等安全性很重要的应用程序中,基本的验证模型通常需要增加额外的证书和多级登录过程,比如客户端证书、硬件等。
为了实施有效的访问控制,应用程序需要一个方法来识别和处理这一系列来自每个不同用户的请求。大部分程序会为每个会话创建一个唯一性的token来识别。
对攻击者来说,会话管理机制高度地依赖于token的安全性。在部分情况下,一个攻击者可以伪装成受害的授权用户来使用Web应用程序。这种情况可能有几种原因,其一是token生成的算法的缺陷,使得攻击者能够猜测到其他用户的token;其二是token后续处理的方法的缺陷,使得攻击者能够获得其他用户的token。
处理用户访问的最后一步是正确决定对于每个独立的请求是允许还是拒绝。如果前面的机制都工作正常,那么应用程序就知道每个被接受到的请求所来自的用户的id,并据此决定用户对所请求要执行的动作或要访问的数据是否得到了授权。
由于访问控制本身的复杂性,这使得它成为攻击者的常用目标。开发者经常对用户会如何与应用程序交互作出有缺陷的假设,也经常省略了对某些应用程序功能的访问控制检查。
很多对Web应用的攻击都涉及到提交未预期的输入,它导致了该应用程序设计者没有料到的行为。因此,对于应用程序安全性防护的一个关键的要求是它必须以一个安全的方式处理用户的输入。
基于输入的漏洞可能出现在一个应用程序的功能的任何地方,并与其使用的技术类型相关。对于这种攻击,输入验证是常用的必要防护。常用的防护机制有如下几种:黑名单、白名单、过滤、处理。
黑名单包含已知的被用在攻击方面的一套字面上的字符串或模式,验证机制阻挡任何匹配黑名单的数据。
一般来说,这种方式是被认为是输入效果较差的一种方式。主要有两个原因,其一Web应用中的一个典型的漏洞可以使用很多种不同的输入来被利用,输入可以是被加密的或以各种不同的方法表示。
其二,漏洞利用的技术是在不断地改进的,有关利用已存在的漏洞类型的新的方法不可能被当前黑名单阻挡。
白名单包含一系列的字符串、模式或一套标准来匹配符合要求的输入。这种检查机制允许匹配白名单的数据,阻止之外的任何数据。这种方式相对比较有效,但需要比较好的设计。
过滤会删除潜在的恶意字符并留下安全的字符,基于数据过滤的方式通常是有效的,并且在许多情形中,可作为处理恶意输入的通用解决方案。
非常多的web应用程序漏洞的出现是因为用户提供的数据是以不安全的方法被处理的。在一些情况下,存在安全的编程方法能够避免通常的问题。例如,SQL注入攻击能够通过预编译的方式组织,XSS在大部分情况下能够被转义所防御。
server-status
IDS与IPS是常见的防护设备,IPS相对IDS的不同点在于,IPS通常具有阻断能力。
ps
lsof
将主机系统安全日志/操作日志、网络设备流量日志、Web应用访问日志、SQL应用访问日志等日志集中到一个统一的后台,在后台中对各类日志进行综合的分析。
蜜罐是对攻击者的欺骗技术,用以监视、检测、分析和溯源攻击行为,其没有业务上的用途,所有流入/流出蜜罐的流量都预示着扫描或者攻击行为,因此可以比较好的聚焦于攻击流量。
蜜罐可以实现对攻击者的主动诱捕,能够详细地记录攻击者攻击过程中的许多痕迹,可以收集到大量有价值的数据,如病毒或蠕虫的源码、黑客的操作等,从而便于提供丰富的溯源数据。另外蜜罐也可以消耗攻击者的时间,基于JSONP等方式来获取攻击者的画像。
但是蜜罐存在安全隐患,如果没有做好隔离,可能成为新的攻击源。
按用途分类,蜜罐可以分为研究型蜜罐和产品型蜜罐。研究型蜜罐一般是用于研究各类网络威胁,寻找应对的方式,不增加特定组织的安全性。产品型蜜罐主要是用于防护的商业产品。
按交互方式分类,蜜罐可以分为低交互蜜罐和高交互蜜罐。低交互蜜罐模拟网络服务响应和攻击者交互,容易部署和控制攻击,但是模拟能力会相对较弱,对攻击的捕获能力不强。高交互蜜罐不是简单模拟协议或服务,而是提供真实的系统,使得被发现的概率大幅度降低。但是高交互蜜罐部署不当时存在被攻击者利用的可能性。
蜜罐主要涉及到的是伪装技术,主要涉及到进程隐藏、服务伪装等技术。
蜜罐之间的隐藏,要求蜜罐之间相互隐蔽。进程隐藏,蜜罐需要隐藏监控、信息收集等进程。伪服务和命令技术,需要对部分服务进行伪装,防止攻击者获取敏感信息或者入侵控制内核。数据文件伪装,需要生成合理的虚假数据的文件。
攻击者也会尝试对蜜罐进行识别。比较容易的识别的是低交互的蜜罐,尝试一些比较复杂且少见的操作能比较容易的识别低交互的蜜罐。相对困难的是高交互蜜罐的识别,因为高交互蜜罐通常以真实系统为基础来构建,和真实系统比较近似。对这种情况,通常会基于虚拟文件系统和注册表的信息、内存分配特征、硬件特征、特殊指令等来识别。
RASP(Runtime Application Self-Protection)由Gartner在2014年引入,是一种应用层的安全保护技术。
运维监控人员、客服审核人员等发现问题,向上通报。
收集事件信息、分析网络活动相关程序,日志和数据,判断事件的严重性,评估出问题的严重等级,是否向上进行汇报等。
各部门通力合作,处理安全问题,具体解决问题,避免存在漏洞未修补、后门未清除等残留问题。
处理完事件之后,需要关闭事件,并写出安全应急处理分析报告,完成整个应急过程。
awvs / burpsuite / w3af / nessus / openvas
select/alert/eval
md5sum
检查常用命令二进制文件的哈希,检查是否被植入rootkitfind / -ctime -2
C:\Documents and Settings\Administrator\Recent
C:\Documents and Settings\Default User\Recent
%UserProfile%\Recent
/var/log/wtmp
登录进入,退出,数据交换、关机和重启纪录/var/run/utmp
有关当前登录用户的信息记录/var/log/lastlog
文件记录用户最后登录的信息,可用 lastlog 命令来查看。/var/log/secure
记录登入系统存取数据的文件,例如 pop3/ssh/telnet/ftp 等都会被记录。/var/log/cron
与定时任务相关的日志信息/var/log/message
系统启动后的信息和错误日志/var/log/apache2/access.log
apache access log/etc/passwd
用户列表/etc/init.d/
开机启动项/etc/cron*
定时任务/tmp
临时目录~/.ssh
/etc/shadow
密码登陆相关信息uptime
查看用户登陆时间/etc/sudoers
sudo用户列表netstat -ano
查看是否打开了可疑端口w
命令,查看用户及其进程/etc/init.d
~/.bashrc
crontab -l
netstat -an
/ lsof
查看进程端口占用C:\Documents and Settings\Administrator\Recent
C:\Documents and Settings\Default User\Recent
%UserProfile%\Recent
eventvwr.msc
lusrmgr.msc
查看账户变化net user
列出当前登录账户wmic UserAccount get
列出当前系统所有账户netstat -ano
查看是否打开了可疑端口tasklist
查看是否有可疑进程HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
(ProfilePath)\Start Menu\Programs\Startup
启动项msconfig
启动选项卡gpedit.msc
组策略编辑器C:\Windows\System32\Tasks\
C:\Windows\SysWOW64\Tasks\
C:\Windows\tasks\
schtasks
taskschd.msc
compmgmt.msc
services.msc
eventvwr.msc
使用路由器、主机等设备记录网络传输的数据流中的关键信息(时间、源地址、目的地址),追踪时基于日志查询做反向追踪。
这种方式的优点在于兼容性强、支持事后追溯、网络开销较小。但是同时该方法也受性能、空间和隐私保护等的限制,考虑到以上的因素,可以限制记录的数据特征和数据数量。另外可以使用流量镜像等技术来减小对网络性能的影响。
在攻击持续发送数据,且特性较为稳定的场景下,可以使用路由器的输入调试技术,在匹配到攻击流量时动态的向上追踪。这种方式在DDoS攻击追溯中比较有效,且网络开销较小。
追踪时向潜在的上游路由器进行洪泛攻击,如果发现收到的攻击流量变少则攻击流量会流经相应的路由。这种方式的优点在于不需要预先部署,对协同的需求比较少。但是这种方式本身是一种攻击,会对网络有所影响。
这种溯源方式直接对数据包进行修改,加入编码或者标记信息,在接收端对传输路径进行重构。这种方式人力投入较少,支持事后分析,但是对某些协议的支持性不太好。
基于这种方式衍生出了随机标记技术,各路由以一定概率对数据包进行标识,接收端收集到多个包后进行重构。
杀伤链这个概念源自军事领域,它是一个描述攻击环节的模型。一般杀伤链有认为侦查跟踪(Reconnaissance)、武器构建(Weaponization)、载荷投递(Delivery)、漏洞利用(Exploitation)、安装植入(Installation)、通信控制(Command&Control)、达成目标(Actions on Objective)等几个阶段。
在越早的杀伤链环节阻止攻击,防护效果就越好,因此杀伤链的概念也可以用来反制攻击。
在跟踪阶段,攻击者通常会采用扫描和搜索等方式来寻找可能的目标信息并评估攻击成本。在这个阶段可以通过日志分析、邮件分析等方式来发现,这阶段也可以采用威胁情报等方式来获取攻击信息。
武器构建阶段攻击者通常已经准备好了攻击工具,并进行尝试性的攻击,在这个阶段IDS中可能有攻击记录,外网应用、邮箱等帐号可能有密码爆破的记录。有一些攻击者会使用公开攻击工具,会带有一定的已知特征。
载荷投递阶段攻击者通常会采用网络漏洞、鱼叉、水坑、网络劫持、U盘等方式投送恶意代码。此阶段已经有人员在对应的途径收到了攻击载荷,对人员进行充分的安全培训可以做到一定程度的防御。
突防利用阶段攻击者会执行恶意代码来获取系统控制权限,此时木马程序已经执行,此阶段可以依靠杀毒软件、异常行为告警等方式来找到相应的攻击。
安装植入阶段攻击者通常会在web服务器上安装Webshell或植入后门、rootkit等来实现对服务器的持久化控制。可以通过对样本进行逆向工程来找到这些植入。
通信控制阶段攻击者已经实现了远程通信控制,木马会通过Web三方网站、DNS隧道、邮件等方式和控制服务器进行通信。此时可以通过对日志进行分析来找到木马的痕迹。
达成目标阶段时,攻击者开始完成自己的目的,可能是破坏系统正常运行、窃取目标数据、敲诈勒索、横向移动等。此时受控机器中可能已经有攻击者的上传的攻击利用工具,此阶段可以使用蜜罐等方式来发现。
钻石模型由网络情报分析与威胁研究中心(The Center for Cyber Intelligence Anaysis and Threat Research,CCIATR)机构的Sergio Catagirone等人在2013年提出。
该模型把所有的安全事件(Event)分为四个核心元素,即敌手(Adversary),能力(Capability),基础设施(Infrastructure)和受害者(Victim),以菱形连线代表它们之间的关系,因而命名为“钻石模型”。
杀伤链模型的特点是可说明攻击线路和攻击的进程,而钻石模型的特点是可说明攻击者在单个事件中的攻击目的和所使用攻击手法。
在使用钻石模型分析时,通常使用支点分析的方式。支点(Pivoting)指提取一个元素,并利用该元素与数据源相结合以发现相关元素的分析技术。分析中可以随时变换支点,四个核心特征以及两个扩展特征(社会政治、技术)都可能成为当时的分析支点。
关联分析用于把多个不同的攻击样本结合起来。
kill
不会存储set +o history
不写入历史记录unset HISTFILE
清除历史记录的环境变量Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。