【Web安全笔记】之【7.0 防御技术】_前端 实现 att&ck matrix for enterprise-程序员宅基地

技术标签: Web安全笔记  

文章目录

7.0 防御技术

7.1 团队建设

7.1.1 人员分工

1. 部门负责人
  • 负责组织整体的信息安全规划
  • 负责向高层沟通申请资源
  • 负责与组织其他部门的协调沟通
  • 共同推进信息安全工作
  • 负责信息安全团队建设
  • 负责安全事件应急工作处置
  • 负责推动组织安全规划的落实
2. 合规管理员
  • 负责安全相关管理制度、管理流程的制定,监督实施情况,修改和改进相关的制度和流程
  • 负责合规性迎检准备工作,包括联络、迎检工作推动,迎检结果汇报等所有相关工作
  • 负责与外部安全相关单位联络
  • 负责安全意识培训、宣传和推广
3. 安全技术负责人
  • 业务安全防护整体技术规划和计划
  • 了解组织安全技术缺陷,并能找到方法进行防御
  • 安全设备运维
  • 服务器与网络基础设备的安全加固推进工作
  • 安全事件排查与分析,配合定期编写安全分析报告
  • 关注注业内安全事件, 跟踪最新漏洞信息,进行业务产品的安全检查
  • 负责漏洞修复工作推进,跟踪解决情况,问题收集
  • 了解最新安全技术趋势
4. 渗透/代码审计人员
  • 对组织业务网站、业务系统进行安全评估测试
  • 对漏洞结果提供解决方案和修复建议
5. 安全设备运维人员
  • 负责设备配置和策略的修改
  • 负责协助其他部门的变更导致的安全策略修改的实现
6. 安全开发
  • 根据组织安全的需要开发安全辅助工具或平台
  • 参与安全系统的需求分析、设计、编码等开发工作
  • 维护公司现有的安全程序与系统

7.1.2 参考链接

7.2 红蓝对抗

7.2.1 概念

红蓝对抗的概念最早来源于20世纪60年代的美国演习,演习是专指军队进行大规模的实兵演习,演习中通常分为红军、蓝军,其中蓝军通常是指在部队模拟对抗演习专门扮演假想敌的部队,与红军(代表我方正面部队)进行针对性的训练,这种方式也被称作Red Teaming。

网络安全红蓝对抗的概念就源自于此。红军作为企业防守方,通过安全加固、攻击监测、应急处置等手段来保障企业安全。而蓝军作为攻击方,以发现安全漏洞,获取业务权限或数据为目标,利用各种攻击手段,试图绕过红军层层防护,达成既定目标。可能会造成混淆的是,在欧美一般采用红队代表攻击方,蓝队代表防守方,颜色代表正好相反。

7.2.3 网络攻防演习

比较有影响力的演习有“锁盾”(Locked Shields)、“网络风暴”等。其中“锁盾”由北约卓越网络防御合作中心(CCDCOE,Cooperative Cyber Defence Centre of Excellence)每年举办一次。“网络风暴”由美国国土安全部(DHS)主导,2006年开始,每两年举行一次。

和APT攻击相比,攻防演习相对时长较短,只有1~4周,有个防守目标。而APT攻击目标唯一,时长可达数月至数年,更有隐蔽性。

7.2.4 侧重

企业网络蓝军工作内容主要包括渗透测试和红蓝对抗,这两种方式所使用的技术基本相同,但是侧重点不同。

渗透测试侧重用较短的时间去挖掘更多的安全漏洞,一般不太关注攻击行为是否被监测发现,目的是帮助业务系统暴露和收敛更多风险。

红蓝对抗更接近真实场景,偏向于实战,面对的场景复杂、技术繁多。侧重绕过防御体系,毫无声息达成获取业务权限或数据的目标。不求发现全部风险点,因为攻击动作越多被发现的概率越大,一旦被发现,红军就会把蓝军踢出战场。红蓝对抗的目的是检验在真实攻击中纵深防御能力、告警运营质量、应急处置能力。

7.2.5 目标

  • 评估现有防御能力的有效性、识别防御体系的弱点并提出具体的应对方案
  • 利用真实有效的模拟攻击来评估因为安全问题所造成的潜在的业务影响,为安全管理提供有效的数据来量化安全投入的ROI
  • 提高公司安全成熟度及其检测和响应攻击的能力

7.2.6 前期准备

  • 组织结构图
  • 全网拓扑图
  • 各系统逻辑结构图
  • 各系统之间的调用关系
  • 数据流关系
  • 资产梳理
    • 核心资产清单
    • 业务系统资产
    • 设备资产
    • 外包/第三方服务资产
    • 历史遗留资产
  • 业务资产信息
    • 业务系统名称
    • 业务系统类型
    • 服务器类型
    • 域名/IP地址
    • 服务端口
    • 版本
    • 系统部署位置
    • 开发框架
    • 中间件
    • 数据库
    • 责任人
    • 维护人员
  • 设备资产信息
    • 设备名称
    • 设备版本号
    • 固件版本号
    • IP地址
    • 部署位置
    • 责任人
    • 维护人员
  • 外包/第三方服务资产信息
    • 厂商联系方式
    • 系统名称
    • 系统类型
    • IP/URL地址
    • 部署位置
    • 责任人
    • 维护人员
    • 厂商联系方式
    • 第三方值班人员
  • 风险梳理
    • 基础设施风险
    • 帐号权限梳理
    • 互联网风险排查
    • 收敛攻击面
  • 应急响应计划
  • 业务连续性计划
  • 灾难恢复计划

7.2.7 行动流程

  • 攻击准备
    • 明确授权范围、测试目标、限制条件等
    • 报备与授权流程
    • 行动成本与预算
  • 攻击执行
    • 备案的时间区间内
    • 备案的目标范围内
    • 备案的攻击IP与网络环境
  • 攻击完成
    • 恢复所有修改
    • 移除所有持久化控制
    • 提交攻击报告与改进建议

7.2.8 注意事项

  • 测试前进行报备
  • 有可能会影响到业务的操作时候提前沟通
  • 漏洞和业务沟通确认后再发工单修复
  • 漏洞闭环

7.2.9 参考链接

7.3 安全开发

7.3.1 简介

安全开发生命周期(Security Development Lifecycle,SDL)是微软提出的从安全的角度来指导软件开发过程的管理模式。用于帮助开发人员构建更安全的软件、解决安全合规要求,并降低开发成本。

7.3.2 步骤

1) 阶段1:培训

开发团队的所有成员都必须接受适当的安全培训,了解相关的安全知识。培训对象包括开发人员、测试人员、项目经理、产品经理等。

2) 阶段2:确定安全需求

在项目确立之前,需要提前确定安全方面的需求,确定项目的计划时间,尽可能避免安全引起的需求变更。

3) 阶段3:设计

在设计阶段确定安全的最低可接受级别。考虑项目涉及到哪些攻击面、是否能减小攻击面。

对项目进行威胁建模,明确可能来自的攻击有哪些方面,并考虑项目哪些部分需要进行渗透测试。

4) 阶段4:实现

实现阶段主要涉及到工具、不安全的函数、静态分析等方面。

工具方面主要考虑到开发团队使用的编辑器、链接器等相关工具可能会涉及一些安全相关的问题,因此在使用工具的版本上,需要提前与安全团队进行沟通。

函数方面主要考虑到许多常用函数可能存在安全隐患,应当禁用不安全的函数和API,使用安全团队推荐的函数。

代码静态分析可以由相关工具辅助完成,其结果与人工分析相结合。

5) 阶段5:验证

验证阶段涉及到动态程序分析和攻击面再审计。动态分析对静态分析进行补充,常用的方式是模糊测试、渗透测试。模糊测试通过向应用程序引入特定格式或随机数据查找程序可能的问题。

考虑到项目经常会因为需求变更等情况使得最终产品和初期目标不一致,因此需要在项目后期再次对威胁模型和攻击面进行分析和考虑,如果出现问题则进行纠正。

6) 阶段6:发布

在程序发布后,需要对安全事件进行响应,需要预设好遇到安全问题时的处理方式。

另外如果产品中包含第三方的代码,也需要考虑如何响应因为第三方依赖引入的问题。

7.3.3 参考链接

7.4 安全运营

参考链接

7.5 威胁情报

7.5.1 简介

1. 产生原因

新一代的攻击者常常向企业和组织发起针对性的网络攻击,这种针对性强的攻击,一般经过了精心的策划,攻击方法、途径复杂,后果严重。在面对这种攻击时,攻防存在着严重的不对等,为了尽可能消除这种不对等,威胁情报 (Threat Intelligence) 应运而生。

2. 定义

威胁情报(Threat Intelligence),也被称作安全情报(Security Intelligence)、安全威胁情报(Security Threat Intelligence)。

关于威胁情报的定义有很多,一般是指从安全数据中提炼的,与网络空间威胁相关的信息,包括威胁来源、攻击意图、攻击手法、攻击目标信息,以及可用于解决威胁或应对危害的知识。广义的威胁情报也包括情报的加工生产、分析应用及协同共享机制。相关的概念有资产、威胁、脆弱性等,具体定义如下。

一般威胁情报需要包含威胁源、攻击目的、攻击对象、攻击手法、漏洞、攻击特征、防御措施等。威胁情报在事前可以起到预警的作用,在威胁发生时可以协助进行检测和响应,在事后可以用于分析和溯源。

常见的网络威胁情报服务有黑客或欺诈团体分析、社会媒体和开源信息监控、定向漏洞研究、定制的人工分析、实时事件通知、凭据恢复、事故调查、伪造域名检测等。

在威胁情报方面,比较有代表性的厂商有BAE Systems Applied Intelligence、Booz Allen、RSA、IBM、McAfee、赛门铁克、FireEye等。

7.5.2 相关概念

1. 资产(Asset)

对组织具有价值的信息或资源,属于内部情报,通过资产测绘等方式发现。

2. 威胁(Threat)

能够通过未授权访问、毁坏、揭露、数据修改和或拒绝服务对系统造成潜在危害的起因,威胁可由威胁的主体(威胁源)、能力、资源、动机、途径、可能性和后果等多种属性来刻画。

3. 脆弱性 / 漏洞(Vulnerability)

可能被威胁如攻击者利用的资产或若干资产薄弱环节。

漏洞存在多个周期,最开始由安全研究员或者攻击者发现,而后出现在社区公告/官方邮件/博客中。随着信息的不断地传递,漏洞情报出现在开源社区等地方,并带有PoC和漏洞细节分析。再之后出现自动化工具开始大规模传播,部分漏洞会造成社会影响并被媒体报道,最后漏洞基本修复。

4. 风险(Risk)

威胁利用资产或一组资产的脆弱性对组织机构造成伤害的潜在可能。

5. 安全事件(Event)

威胁利用资产的脆弱性后实际产生危害的情景。

7.5.3 情报来源

为了实现情报的同步和交换,各组织都制定了相应的标准和规范。主要有国标,美国联邦政府标准等。

除了国家外,企业也有各自的情报来源,例如厂商、CERT、开发者社区、安全媒体、漏洞作者或团队、公众号、个人博客、代码仓库等。

7.5.4 威胁框架

比较有影响力的威胁框架主要有洛克希德-马丁的杀伤链框架(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,技术性网空威胁框架)。

7.5.5 参考链接

7.6 ATT&CK

7.6.1 简介

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包括的战术有访问初始化、执行、常驻、提权、防御规避、访问凭证、发现、横向移动、收集、数据获取、命令和控制。

7.6.2 TTP

MITRE在定义ATT&CK时,定义了一些关键对象:组织 (Groups)、软件 (Software)、技术 (Techniques)、战术 (Tactics)。

其中组织使用战术和软件,软件实现技术,技术实现战术。例如APT28(组织)使用Mimikatz(软件)达到了获得登录凭证的效果(技术)实现了以用户权限登录的目的(战术)。整个攻击行为又被称为TTP,是战术、技术、过程的集合。

7.6.3 参考链接

7.7 风险控制

7.7.1 常见风险

1. 会员
  • 撞库盗号
  • 账号分享
  • 批量注册
2. 视频
  • 盗播盗看
  • 广告屏蔽
  • 刷量作弊
3. 活动
  • 恶意刷
  • 薅羊毛
4. 直播
  • 挂站人气
  • 恶意图文
5. 电商
  • 恶意下单
  • 订单欺诈
6. 支付
  • 盗号盗卡
  • 洗钱
  • 恶意下单
  • 恶意提现
7. 其他
  • 钓鱼邮件
  • 恶意爆破
  • 短信轰炸

7.7.2 防御策略

  • 核身策略
    • 同一收货手机号
    • 同一收货地址
    • 同一历史行为
    • 同一IP
    • 同一设备
    • 同一支付ID
    • LBS

7.7.3 异常特征

  • APP用户异常特征
    • IP
    • 设备为特定型号
    • 本地APP列表中有沙盒APP
    • Root用户
    • 同设备登录过多个账号

7.7.4 参考链接

7.8 防御框架

7.8.1 防御纵深

根据纵深,防御可以分为物理层、数据层、终端层、系统层、网络层、应用层几层。这几层纵深存在层层递进相互依赖的关系。

1. 物理层

物理层实际应用中接触较少,但仍是非常重要的位置。如果物理层设计不当,很容易被攻击者通过物理手段绕过上层防御。

2. 数据层

数据处于防御纵深较底层的位置,攻击的目标往往也是为了拿到数据,很多防御也是围绕数据不被破坏、窃取等展开的。

3. 终端层

终端包括PC、手机、IoT以及其他的智能设备,连入网络的终端是否可信是需要解决的问题。

4. 系统层

操作系统运行在终端上,可能会存在提权、非授权访问等问题。

5. 网络层

网络层使用通信线路将多台计算机相互连接起来,依照商定的协议进行通信。网络层存在MITM、DDoS等攻击。

6. 应用层

应用层是最上层,主要涉及到Web应用程序的各种攻击。

7. 访问控制

Web应用需要限制用户对应用程序的数据和功能的访问,以防止用户未经授权访问。访问控制的过程可以分为验证、会话管理和访问控制三个地方。

8. 验证机制

验证机制在一个应用程序的用户访问处理中是一个最基本的部分,验证就是确定该用户的有效性。大多数的web应用都采用使用的验证模型,即用户提交一个用户名和密码,应用检查它的有效性。在银行等安全性很重要的应用程序中,基本的验证模型通常需要增加额外的证书和多级登录过程,比如客户端证书、硬件等。

9. 会话管理

为了实施有效的访问控制,应用程序需要一个方法来识别和处理这一系列来自每个不同用户的请求。大部分程序会为每个会话创建一个唯一性的token来识别。

对攻击者来说,会话管理机制高度地依赖于token的安全性。在部分情况下,一个攻击者可以伪装成受害的授权用户来使用Web应用程序。这种情况可能有几种原因,其一是token生成的算法的缺陷,使得攻击者能够猜测到其他用户的token;其二是token后续处理的方法的缺陷,使得攻击者能够获得其他用户的token。

10. 访问控制

处理用户访问的最后一步是正确决定对于每个独立的请求是允许还是拒绝。如果前面的机制都工作正常,那么应用程序就知道每个被接受到的请求所来自的用户的id,并据此决定用户对所请求要执行的动作或要访问的数据是否得到了授权。

由于访问控制本身的复杂性,这使得它成为攻击者的常用目标。开发者经常对用户会如何与应用程序交互作出有缺陷的假设,也经常省略了对某些应用程序功能的访问控制检查。

7.8.2 输入处理

很多对Web应用的攻击都涉及到提交未预期的输入,它导致了该应用程序设计者没有料到的行为。因此,对于应用程序安全性防护的一个关键的要求是它必须以一个安全的方式处理用户的输入。

基于输入的漏洞可能出现在一个应用程序的功能的任何地方,并与其使用的技术类型相关。对于这种攻击,输入验证是常用的必要防护。常用的防护机制有如下几种:黑名单、白名单、过滤、处理。

1. 黑名单

黑名单包含已知的被用在攻击方面的一套字面上的字符串或模式,验证机制阻挡任何匹配黑名单的数据。

一般来说,这种方式是被认为是输入效果较差的一种方式。主要有两个原因,其一Web应用中的一个典型的漏洞可以使用很多种不同的输入来被利用,输入可以是被加密的或以各种不同的方法表示。

其二,漏洞利用的技术是在不断地改进的,有关利用已存在的漏洞类型的新的方法不可能被当前黑名单阻挡。

2. 白名单

白名单包含一系列的字符串、模式或一套标准来匹配符合要求的输入。这种检查机制允许匹配白名单的数据,阻止之外的任何数据。这种方式相对比较有效,但需要比较好的设计。

3. 过滤

过滤会删除潜在的恶意字符并留下安全的字符,基于数据过滤的方式通常是有效的,并且在许多情形中,可作为处理恶意输入的通用解决方案。

4. 安全地处理数据

非常多的web应用程序漏洞的出现是因为用户提供的数据是以不安全的方法被处理的。在一些情况下,存在安全的编程方法能够避免通常的问题。例如,SQL注入攻击能够通过预编译的方式组织,XSS在大部分情况下能够被转义所防御。

7.9 加固检查

7.9.1 网络设备

  • 及时检查系统版本号
  • 敏感服务设置访问IP/MAC白名单
  • 开启权限分级控制
  • 关闭不必要的服务
  • 打开操作日志
  • 配置异常告警
  • 关闭ICMP回应

7.9.2 操作系统

1. Linux
  • 无用用户/用户组检查
  • 空口令帐号检查
  • 用户密码策略
    • /etc/login.defs
    • /etc/pam.d/system-auth
  • 敏感文件权限配置
    • /etc/passwd
    • /etc/shadow
    • ~/.ssh/
    • /var/log/messages
    • /var/log/secure
    • /var/log/maillog
    • /var/log/cron
    • /var/log/spooler
    • /var/log/boot.log
  • 日志是否打开
  • 及时安装补丁
  • 开机自启
    • /etc/init.d
  • 检查系统时钟
2. Windows
  • 异常进程监控
  • 异常启动项监控
  • 异常服务监控
  • 配置系统日志
  • 用户账户
    • 设置口令有效期
    • 设置口令强度限制
    • 设置口令重试次数
  • 安装EMET
  • 启用PowerShell日志
  • 限制以下敏感文件的下载和执行
    • ade, adp, ani, bas, bat, chm, cmd, com, cpl, crt, hlp, ht, hta, inf, ins, isp, job, js, jse, lnk, mda, mdb, mde, mdz, msc, msi, msp, mst, pcd, pif, reg, scr, sct, shs, url, vb, vbe, vbs, wsc, wsf, wsh, exe, pif
  • 限制会调起wscript的后缀
    • bat, js, jse, vbe, vbs, wsf, wsh
    • 限制将计算机加入域的权限
    • 域账户使用最小权限原则
    • 减少非必要高权限账户的数量

7.9.3 应用

1. FTP
  • 禁止匿名登录
  • 修改Banner
2. SSH
  • 是否禁用ROOT登录
  • 是否禁用密码连接
3. MySQL
  • 文件写权限设置
  • 用户授权表管理
  • 日志是否启用
  • 版本是否最新

7.9.4 Web中间件

1. Apache
  • 版本号隐藏
  • 版本是否最新
  • 禁用部分HTTP动词
  • 关闭Trace
  • 禁止 server-status
  • 上传文件大小限制
  • 目录权限设置
  • 是否允许路由重写
  • 是否允许列目录
  • 日志配置
  • 配置超时时间防DoS
  • 非属主用户文件读写限制
    • httpd.conf
    • access.log
    • error.log
2. Nginx
  • 禁用部分HTTP动词
  • 禁用目录遍历
  • 检查重定向配置
  • 配置超时时间防DoS
3. IIS
  • 版本是否最新
  • 日志配置
  • 用户口令配置
  • ASP.NET功能配置
  • 配置超时时间防DoS
4. JBoss
  • jmx console配置
  • web console配置
5. Tomcat
  • 禁用部分HTTP动词
  • 禁止列目录
  • 禁止manager功能
  • 用户密码配置
  • 用户权限配置
  • 配置超时时间防DoS

7.9.5 密码管理策略

  • 长度不少于8个字符
  • 不存在于已有字典之中
  • 不使用基于知识的认证方式

7.9.6 参考链接

7.10 入侵检测

7.10.1 IDS与IPS

IDS与IPS是常见的防护设备,IPS相对IDS的不同点在于,IPS通常具有阻断能力

7.10.2 常见入侵点

  • Web入侵
  • 高危服务入侵

7.10.3 监控实现

1. 客户端监控
  • 监控敏感配置文件
  • 常用命令ELF文件完整性监控
    • ps
    • lsof
  • rootkit监控
  • 资源使用报警
    • 内存使用率
    • CPU使用率
    • IO使用率
    • 网络使用率
  • 新出现进程监控
  • 基于inotify的文件监控
2. 网络检测
  • 基于网络层面的攻击向量做检测,如Snort等。
3. 日志分析

将主机系统安全日志/操作日志、网络设备流量日志、Web应用访问日志、SQL应用访问日志等日志集中到一个统一的后台,在后台中对各类日志进行综合的分析。

7.10.4 参考链接

7.11 零信任安全

参考链接

7.12 蜜罐技术

7.12.1 简介

蜜罐是对攻击者的欺骗技术,用以监视、检测、分析和溯源攻击行为,其没有业务上的用途,所有流入/流出蜜罐的流量都预示着扫描或者攻击行为,因此可以比较好的聚焦于攻击流量。

蜜罐可以实现对攻击者的主动诱捕,能够详细地记录攻击者攻击过程中的许多痕迹,可以收集到大量有价值的数据,如病毒或蠕虫的源码、黑客的操作等,从而便于提供丰富的溯源数据。另外蜜罐也可以消耗攻击者的时间,基于JSONP等方式来获取攻击者的画像。

但是蜜罐存在安全隐患,如果没有做好隔离,可能成为新的攻击源。

7.12.2 分类

按用途分类,蜜罐可以分为研究型蜜罐和产品型蜜罐。研究型蜜罐一般是用于研究各类网络威胁,寻找应对的方式,不增加特定组织的安全性。产品型蜜罐主要是用于防护的商业产品。

按交互方式分类,蜜罐可以分为低交互蜜罐和高交互蜜罐。低交互蜜罐模拟网络服务响应和攻击者交互,容易部署和控制攻击,但是模拟能力会相对较弱,对攻击的捕获能力不强。高交互蜜罐不是简单模拟协议或服务,而是提供真实的系统,使得被发现的概率大幅度降低。但是高交互蜜罐部署不当时存在被攻击者利用的可能性。

7.12.3 隐藏技术

蜜罐主要涉及到的是伪装技术,主要涉及到进程隐藏、服务伪装等技术。

蜜罐之间的隐藏,要求蜜罐之间相互隐蔽。进程隐藏,蜜罐需要隐藏监控、信息收集等进程。伪服务和命令技术,需要对部分服务进行伪装,防止攻击者获取敏感信息或者入侵控制内核。数据文件伪装,需要生成合理的虚假数据的文件。

7.12.4 识别技术

攻击者也会尝试对蜜罐进行识别。比较容易的识别的是低交互的蜜罐,尝试一些比较复杂且少见的操作能比较容易的识别低交互的蜜罐。相对困难的是高交互蜜罐的识别,因为高交互蜜罐通常以真实系统为基础来构建,和真实系统比较近似。对这种情况,通常会基于虚拟文件系统和注册表的信息、内存分配特征、硬件特征、特殊指令等来识别。

7.12.5 参考链接

7.13 RASP

7.13.1 简介

RASP(Runtime Application Self-Protection)由Gartner在2014年引入,是一种应用层的安全保护技术。

7.13.2 参考链接

1. 厂商
2. Blog

7.14 应急响应

7.14.1 响应流程

1. 事件发生

运维监控人员、客服审核人员等发现问题,向上通报。

2. 事件确认

收集事件信息、分析网络活动相关程序,日志和数据,判断事件的严重性,评估出问题的严重等级,是否向上进行汇报等。

3. 事件响应

各部门通力合作,处理安全问题,具体解决问题,避免存在漏洞未修补、后门未清除等残留问题。

4. 事件关闭

处理完事件之后,需要关闭事件,并写出安全应急处理分析报告,完成整个应急过程。

7.14.2 事件分类

  • 病毒、木马、蠕虫事件
  • Web服务器入侵事件
  • 第三方服务入侵事件
  • 系统入侵事件
    • 利用Windows漏洞攻击操作系统
  • 网络攻击事件
    • DDoS / ARP欺骗 / DNS劫持等

7.14.3 分析方向

1. 文件分析
  • 基于变化的分析
    • 日期
    • 文件增改
    • 最近使用文件
  • 源码分析
    • 检查源码改动
    • 查杀WebShell等后门
  • 系统日志分析
  • 应用日志分析
    • 分析User-Agent,e.g. awvs / burpsuite / w3af / nessus / openvas
    • 对每种攻击进行关键字匹配,e.g. select/alert/eval
    • 异常请求,连续的404或者500
  • md5sum 检查常用命令二进制文件的哈希,检查是否被植入rootkit
2. 进程分析
  • 符合以下特征的进程
    • CPU或内存资源占用长时间过高
    • 没有签名验证信息
    • 没有描述信息的进程
    • 进程的路径不合法
  • dump系统内存进行分析
  • 正在运行的进程
  • 正在运行的服务
  • 父进程和子进程
  • 后台可执行文件的完整哈希
  • 已安装的应用程序
  • 运行着密钥或其他正在自动运行的持久化程序
  • 计划任务
3. 身份信息分析
  • 本地以及域账号用户
  • 异常的身份验证
  • 非标准格式的用户名
4. 日志分析
  • 杀软检测记录
5. 网络分析
  • 防火墙配置
  • DNS配置
  • 路由配置
  • 监听端口和相关服务
  • 最近建立的网络连接
  • RDP / VPN / SSH 等会话
6. 配置分析
  • 查看Linux SE等配置
  • 查看环境变量
  • 查看配套的注册表信息检索,SAM文件
  • 内核模块

7.14.4 Linux应急响应

1. 文件分析
  • 最近使用文件
    • find / -ctime -2
    • C:\Documents and Settings\Administrator\Recent
    • C:\Documents and Settings\Default User\Recent
    • %UserProfile%\Recent
  • 系统日志分析
    • /var/log/
  • 重点分析位置
    • /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
2. 用户分析
  • /etc/shadow 密码登陆相关信息
  • uptime 查看用户登陆时间
  • /etc/sudoers sudo用户列表
3. 进程分析
  • netstat -ano 查看是否打开了可疑端口
  • w 命令,查看用户及其进程
  • 分析开机自启程序/脚本
    • /etc/init.d
    • ~/.bashrc
  • 查看计划或定时任务
    • crontab -l
  • netstat -an / lsof 查看进程端口占用

7.14.5 Windows应急响应

1. 文件分析
  • 最近使用文件
    • C:\Documents and Settings\Administrator\Recent
    • C:\Documents and Settings\Default User\Recent
    • %UserProfile%\Recent
  • 系统日志分析
    • 事件查看器 eventvwr.msc
2. 用户分析
  • 查看是否有新增用户
  • 查看服务器是否有弱口令
  • 查看管理员对应键值
  • lusrmgr.msc 查看账户变化
  • net user 列出当前登录账户
  • wmic UserAccount get 列出当前系统所有账户
3. 进程分析
  • 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
4. 日志分析
  • 事件查看
    • eventvwr.msc
其他
  • 查看系统环境变量
参考链接

7.15 溯源分析

7.15.1 攻击机溯源技术

1. 基于日志的溯源

使用路由器、主机等设备记录网络传输的数据流中的关键信息(时间、源地址、目的地址),追踪时基于日志查询做反向追踪。

这种方式的优点在于兼容性强、支持事后追溯、网络开销较小。但是同时该方法也受性能、空间和隐私保护等的限制,考虑到以上的因素,可以限制记录的数据特征和数据数量。另外可以使用流量镜像等技术来减小对网络性能的影响。

2. 路由输入调试技术

在攻击持续发送数据,且特性较为稳定的场景下,可以使用路由器的输入调试技术,在匹配到攻击流量时动态的向上追踪。这种方式在DDoS攻击追溯中比较有效,且网络开销较小。

3. 可控洪泛技术

追踪时向潜在的上游路由器进行洪泛攻击,如果发现收到的攻击流量变少则攻击流量会流经相应的路由。这种方式的优点在于不需要预先部署,对协同的需求比较少。但是这种方式本身是一种攻击,会对网络有所影响。

4. 基于包数据修改追溯技术

这种溯源方式直接对数据包进行修改,加入编码或者标记信息,在接收端对传输路径进行重构。这种方式人力投入较少,支持事后分析,但是对某些协议的支持性不太好。

基于这种方式衍生出了随机标记技术,各路由以一定概率对数据包进行标识,接收端收集到多个包后进行重构。

7.15.2 分析模型

1. 杀伤链(Kill Kain)模型

杀伤链这个概念源自军事领域,它是一个描述攻击环节的模型。一般杀伤链有认为侦查跟踪(Reconnaissance)、武器构建(Weaponization)、载荷投递(Delivery)、漏洞利用(Exploitation)、安装植入(Installation)、通信控制(Command&Control)、达成目标(Actions on Objective)等几个阶段。

在越早的杀伤链环节阻止攻击,防护效果就越好,因此杀伤链的概念也可以用来反制攻击。

在跟踪阶段,攻击者通常会采用扫描和搜索等方式来寻找可能的目标信息并评估攻击成本。在这个阶段可以通过日志分析、邮件分析等方式来发现,这阶段也可以采用威胁情报等方式来获取攻击信息。

武器构建阶段攻击者通常已经准备好了攻击工具,并进行尝试性的攻击,在这个阶段IDS中可能有攻击记录,外网应用、邮箱等帐号可能有密码爆破的记录。有一些攻击者会使用公开攻击工具,会带有一定的已知特征。

载荷投递阶段攻击者通常会采用网络漏洞、鱼叉、水坑、网络劫持、U盘等方式投送恶意代码。此阶段已经有人员在对应的途径收到了攻击载荷,对人员进行充分的安全培训可以做到一定程度的防御。

突防利用阶段攻击者会执行恶意代码来获取系统控制权限,此时木马程序已经执行,此阶段可以依靠杀毒软件、异常行为告警等方式来找到相应的攻击。

安装植入阶段攻击者通常会在web服务器上安装Webshell或植入后门、rootkit等来实现对服务器的持久化控制。可以通过对样本进行逆向工程来找到这些植入。

通信控制阶段攻击者已经实现了远程通信控制,木马会通过Web三方网站、DNS隧道、邮件等方式和控制服务器进行通信。此时可以通过对日志进行分析来找到木马的痕迹。

达成目标阶段时,攻击者开始完成自己的目的,可能是破坏系统正常运行、窃取目标数据、敲诈勒索、横向移动等。此时受控机器中可能已经有攻击者的上传的攻击利用工具,此阶段可以使用蜜罐等方式来发现。

2. 钻石(Diamond)模型

钻石模型由网络情报分析与威胁研究中心(The Center for Cyber Intelligence Anaysis and Threat Research,CCIATR)机构的Sergio Catagirone等人在2013年提出。

该模型把所有的安全事件(Event)分为四个核心元素,即敌手(Adversary),能力(Capability),基础设施(Infrastructure)和受害者(Victim),以菱形连线代表它们之间的关系,因而命名为“钻石模型”。

杀伤链模型的特点是可说明攻击线路和攻击的进程,而钻石模型的特点是可说明攻击者在单个事件中的攻击目的和所使用攻击手法。

在使用钻石模型分析时,通常使用支点分析的方式。支点(Pivoting)指提取一个元素,并利用该元素与数据源相结合以发现相关元素的分析技术。分析中可以随时变换支点,四个核心特征以及两个扩展特征(社会政治、技术)都可能成为当时的分析支点。

7.15.3 关联分析方法

关联分析用于把多个不同的攻击样本结合起来。

1. 文档类
  • hash
  • ssdeep
  • 版本信息(公司/作者/最后修改作者/创建时间/最后修改时间)
2. 行为分析
  • 基于网络行为
    • 类似的交互方式
3. 可执行文件相似性分析
  • 特殊端口
  • 特殊字符串/密钥
  • PDB文件路径
    • 相似的文件夹
  • 代码复用
    • 相似的代码片段

7.15.4 清除日志方式

  • kill 不会存储
  • set +o history 不写入历史记录
  • unset HISTFILE 清除历史记录的环境变量
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44874645/article/details/111587632

智能推荐

js-选项卡原理_选项卡js原理-程序员宅基地

文章浏览阅读90次。【代码】js-选项卡原理。_选项卡js原理

设计模式-原型模式(Prototype)-程序员宅基地

文章浏览阅读67次。原型模式是一种对象创建型模式,它采用复制原型对象的方法来创建对象的实例。它创建的实例,具有与原型一样的数据结构和值分为深度克隆和浅度克隆。浅度克隆:克隆对象的值类型(基本数据类型),克隆引用类型的地址;深度克隆:克隆对象的值类型,引用类型的对象也复制一份副本。UML图:具体代码:浅度复制:import java.util.List;/*..._prototype 设计模式

个性化政府云的探索-程序员宅基地

文章浏览阅读59次。入选国内首批云计算服务创新发展试点城市的北京、上海、深圳、杭州和无锡起到了很好的示范作用,不仅促进了当地产业的升级换代,而且为国内其他城市发展云计算产业提供了很好的借鉴。据了解,目前国内至少有20个城市确定将云计算作为重点发展的产业。这势必会形成新一轮的云计算基础设施建设的**。由于云计算基础设施建设具有投资规模大,运维成本高,投资回收周期长,地域辐射性强等诸多特点,各地在建...

STM32问题集之BOOT0和BOOT1的作用_stm32boot0和boot1作用-程序员宅基地

文章浏览阅读9.4k次,点赞2次,收藏20次。一、功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。BOOT1=x BOOT0=0 // 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 // 从系统存储器启动,这种模式启动的程序_stm32boot0和boot1作用

C语言函数递归调用-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏22次。C语言函数递归调用_c语言函数递归调用

明日方舟抽卡模拟器wiki_明日方舟bilibili服-明日方舟bilibili服下载-程序员宅基地

文章浏览阅读410次。明日方舟bilibili服是一款天灾驾到战斗热血的创新二次元废土风塔防手游,精妙的二次元纸片人设计,为宅友们源源不断更新超多的纸片人老婆老公们,玩家将扮演废土正义一方“罗德岛”中的指挥官,与你身边的感染者们并肩作战。与同类塔防手游与众不同的几点,首先你可以在这抽卡轻松获得稀有,同时也可以在战斗体系和敌军走位机制看到不同。明日方舟bilibili服设定:1、起因不明并四处肆虐的天灾,席卷过的土地上出..._明日方舟抽卡模拟器

随便推点

Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all-程序员宅基地

文章浏览阅读437次。Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all

斐波那契数列、素数、质数和猴子吃桃问题_斐波那契日-程序员宅基地

文章浏览阅读1.2k次。斐波那契数列(Fibonacci Sequence)是由如下形式的一系列数字组成的:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …上述数字序列中反映出来的规律,就是下一个数字是该数字前面两个紧邻数字的和,具体如下所示:示例:比如上述斐波那契数列中的最后两个数,可以推导出34后面的数为21+34=55下面是一个更长一些的斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,_斐波那契日

PHP必会面试题_//该层循环用来控制每轮 冒出一个数 需要比较的次数-程序员宅基地

文章浏览阅读363次。PHP必会面试题1. 基础篇1. 用 PHP 打印出前一天的时间格式是 2017-12-28 22:21:21? //>>1.当前时间减去一天的时间,然后再格式化echo date('Y-m-d H:i:s',time()-3600*24);//>>2.使用strtotime,可以将任何字符串时间转换成时间戳,仅针对英文echo date('Y-m-d H:i:s',str..._//该层循环用来控制每轮 冒出一个数 需要比较的次数

windows用mingw(g++)编译opencv,opencv_contrib,并install安装_opencv mingw contrib-程序员宅基地

文章浏览阅读1.3k次,点赞26次,收藏26次。windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。打开cmake gui程序,在下面两个框中分别输入opencv的源文件和编译目录,build-mingw为你创建的目录,可自定义命名。1、如果已经安装Qt,则Qt自带mingw编译器,从Qt安装目录找到编译器所在目录即可。1、如果已经安装Qt,则Qt自带cmake,从Qt安装目录找到cmake所在目录即可。2、若未安装Qt,则安装Mingw即可,参考我的另外一篇文章。_opencv mingw contrib

5个高质量简历模板网站,免费、免费、免费_hoso模板官网-程序员宅基地

文章浏览阅读10w+次,点赞42次,收藏309次。今天给大家推荐5个好用且免费的简历模板网站,简洁美观,非常值得收藏!1、菜鸟图库https://www.sucai999.com/search/word/0_242_0.html?v=NTYxMjky网站主要以设计类素材为主,办公类素材也很多,简历模板大部个偏简约风,各种版式都有,而且经常会更新。最重要的是全部都能免费下载。2、个人简历网https://www.gerenjianli.com/moban/这是一个专门提供简历模板的网站,里面有超多模板个类,找起来非常方便,风格也很多样,无须注册就能免费下载,_hoso模板官网

通过 TikTok 联盟提高销售额的 6 个步骤_tiktok联盟-程序员宅基地

文章浏览阅读142次。你听说过吗?该计划可让您以推广您的产品并在成功销售时支付佣金。它提供了新的营销渠道,使您的产品呈现在更广泛的受众面前并提高品牌知名度。此外,TikTok Shop联盟可以是一种经济高效的产品或服务营销方式。您只需在有人购买时付费,因此不存在在无效广告上浪费金钱的风险。这些诱人的好处是否足以让您想要开始您的TikTok Shop联盟活动?如果是这样,本指南适合您。_tiktok联盟