项目:《企业网络安全架构与实战指南:从蓝队防御到零信任网络部署》
姓名:飞花似梦Flydream
日期:2024年11月21日
目录
[Cyber Hunting(网络狩猎)](#Cyber Hunting(网络狩猎))
[(1) 文件管理概述(Snort规则配置)](#(1) 文件管理概述(Snort规则配置))
[(2) Snort规则配置字段详细描述](#(2) Snort规则配置字段详细描述)
[(3) 本地账号与Snort条件子句概述](#(3) 本地账号与Snort条件子句概述)
[(4) 具体Snort条件子句示例及解释](#(4) 具体Snort条件子句示例及解释)
[(5) 外部规则集](#(5) 外部规则集)
[(6) In Line部署及阻断操作](#(6) In Line部署及阻断操作)
[(7) 总结](#(7) 总结)
蓝队基础
在信息安全领域,红队与蓝队的对抗是提升防御与攻击能力的关键。红队专注于模拟攻击,测试目标系统的安全性,而蓝队则负责防御这些攻击,确保系统免受侵害。双方都需要对彼此的策略和技巧有深入的了解,即所谓的"知己知彼,百战不殆"。蓝队不仅要精通防御技术,还要掌握一定的攻击技巧,以便更好地理解和预测潜在威胁。
企业网络架构
企业技术和信息团队的管理架构因企业规模、行业特性和业务需求而异,但通常遵循一定的框架和原则。
高层管理
- CIO(首席信息官):负责企业信息系统的战略规划、管理和优化,确保信息技术与企业战略保持一致。
- CTO(首席技术官):负责运营技术的整体方向,包括技术创新、研发、技术选型等。
IT管理
- 中央系统:集中管理企业内的所有IT资源,包括软件、硬件和数据。
- 自带设备(BYOD):员工自带移动设备(如手机、平板电脑)接入企业网络,需制定相应的安全策略和管理规定。
- 影子IT:员工在企业内部搭建的小网络或使用的未经授权的IT设备和软件,增加了企业的安全风险,需加以管理和控制。
中央技术团队
- 客户服务团队:提供技术支持和服务,包括工作站、笔记本的维护和服务台支持。
- 基础设施团队:负责网络、服务器机群的规划、部署和维护。
- 数据库管理团队:负责数据库存储、备份和恢复,确保数据的完整性和安全性。
- 技术团队:通常由项目驱动,负责采购系统、维护和建立技术运营团队,根据信息技术基础设施库(ITIL)进行日常操作和管理。
安全部门
- 安全部门:由CISO(首席信息安全官)领导,负责企业整体的信息安全策略、规划和管理。安全部门需向CIO、CTO、CFO(首席财务官)和CRO(首席风险官)报告,确保信息安全与企业战略、财务和风险管理保持一致。
企业管理技术
信息安全管理成熟度模型(ISM3)
描述了企业安全运行和管理流程的成熟度等级,为企业提供了改进信息安全管理的指导。
安全职能
包含战略、战术和运营安全所有方面。由CISO负责管理运营,确保企业信息安全策略的有效实施和持续改进。
安全团队成员
应了解企业文化、组织和关键人员,以及推动业务成功的关键流程。这有助于安全团队在企业内部树立积极形象,提高信息安全意识和管理水平。
典型企业网络分区
企业网络通常划分为不同的安全区域,以控制区域之间的访问权限,防御外部和内部攻击。
- DMZ(非军事区):隔离内部与外部系统,提供安全的访问通道。
- 蜜罐:引诱和分析入侵者,收集攻击信息和行为模式。
- 代理:对外提供有限的服务,保护内部网络免受外部攻击。
- VPN:员工与合作商通过VPN连接内网,确保远程访问的安全性和保密性。
- 核心网络:通常物理分离、冗余设计,确保网络的稳定性和可靠性。
- 内部网络:包括有线、无线和VPN接入方式,提供全面的网络覆盖和接入服务。
- 安管区:管理日志、告警和事件,提供实时的安全监控和响应能力。
模糊的边界
随着云计算和SaaS服务(软件即服务)的普及,传统网络结构逐渐减少,越来越多地在云中部署基础架构或使用SaaS服务。用户从企业工作站登录到云或SaaS服务,需要企业提供身份凭据同步机制甚至SSO(单点登录)解决方案。云服务可能涉及在本地运行的硬件,如Azure AD Connect系统等。数据通过内部和外部服务进行管理,如Oracle数据集成器等。工作负载可以通过Oracle服务总线或戴尔云平台等跨混合环境共享,实现资源的灵活配置和优化利用。
外部攻击面
收集开源情报后,绘制网络范围内全部节点,关闭无用节点,减少攻击面。使用nmap等工具进行网络扫描,如nmap -sn /24
来发现网络中的活跃主机。重点关注开启了SSH服务的未加固设备,及时进行加固和修复。使用nmap等工具进行服务探测和版本识别,如nmap -sT -sV -O -p ip-address
来发现目标主机上开放的服务和版本信息。测试漏洞入口,大型网络主机和应用程序很容易缺少补丁或配置存在漏洞。使用漏扫软件(如Nessus、AWVS等)验证漏洞存在性,并及时进行修复。使用searchsploit等工具搜索相关漏洞利用脚本,如searchsploit
来查找针对特定服务和版本的漏洞利用脚本,有助于安全团队及时了解和应对潜在的威胁和漏洞。
身份管理
身份管理是确保企业信息安全的关键环节,涉及对系统中所有用户、设备和服务身份的识别、验证和管理。
识别Windows典型应用
在Windows环境中,常见应用和服务包括Microsoft Exchange(邮件服务器)、SharePoint(文档协作平台)和Active Directory(目录服务)。识别这些应用和服务,可以使用网络扫描工具,如sudo nmap -sT -sV somesystem.com
,探测目标系统上开放的服务和端口。
识别Linux典型应用
在Linux环境中,OpenSSH(安全壳协议)用于远程登录和管理,Samba用于文件和打印共享。同样,可以使用网络扫描工具来识别这些服务。
识别WEB服务
企业应用或边界设备上的WEB服务也是身份管理的重要部分。可以使用whatweb http://someweb.org
等工具来识别WEB服务的类型、版本和配置信息。
识别客户端设备
在内网环境中,客户端设备的身份管理同样重要。由于管理员的疏忽或配置不当,终端设备可能会暴露在网络中。因此,需要定期扫描和识别内网中的客户端设备,以确保它们符合企业的安全策略。
身份和访问管理
身份以及特权和访问权管理是企业安全的核心。基本工作站和服务器通常维护自己的身份存储,包括用户账号和服务账号。为确保系统的安全性,普通用户不能执行系统级配置管理命令,而需要使用sudo权限或以管理员身份运行。
目录服务
LDAP(轻量级目录访问协议)是一种用于访问目录信息的协议,广泛应用于AD(Active Directory)和OpenLDAP等目录服务中。通过域集中管理,可以实现资源的集中存储和集中管理,包括组策略的应用和更新。
企业数据存储
随着数据分析的兴起和监管要求的加强,企业需要集中存储和管理大量数据。
传统存储形式
- 共享驱动器 :一种常见的资源共享方式,允许用户通过网络协议(如SMB/CIFS)访问远程服务器上的文件和文件夹。使用smbclient命令行工具,可以列出远程服务器上的共享资源,以及从共享资源中下载文件。例如,
smbclient -L server -U user
命令可以列出指定服务器上的共享资源,而smbclient \\someserver\test -U user
则可以连接到名为test的共享资源,并使用get
命令下载文件。 - 默认共享资源:在Windows系统中,存在如C(所有驱动器的默认共享)、ADMIN(管理共享)和IPC$(管道,用于与其他计算机互操作的特殊连接器)等默认共享,通常用于系统管理和维护任务。
虚拟化平台
虚拟化平台是企业数据存储和管理的重要工具之一。常见的虚拟化平台包括VMware的vSphere和vCenter、Proxmox等,可以实现资源的动态分配和优化利用,提高系统的灵活性和可扩展性。
数据湖
数据湖是一个保存大量不同形式数据的大型存储库,结合数据分析可以为企业带来额外价值。Hadoop是企业中常见的数据湖解决方案之一,另一种本地解决方案是DataBricks。此外,还有基于云的大数据解决方案,如Cloudera、Google BigQuery、Oracle BigData、Amazon EMR、Azure Data Lake Storage和Azure HDInsight(基于云的Hadoop)等。围绕数据湖有一个完整的技术生态,提供数据摄取管道和数据分析服务。然而,数据湖也面临着安全风险,如Hadoop的YARN服务配置错误可能导致恶意HTTP请求攻击并获得系统命令行shell,因此需要加强对数据湖的安全管理和监控。
企业数据库
企业数据库是存储和管理业务数据的重要工具。
- SQL数据库:包括Oracle SQL、Microsoft SQL Server和MySQL等。
- 嵌入式SQL数据库:包括MariaDB、PostgreSQL和SQLite等。
- 非SQL数据库:如MongoDB、Redis、Azure CosmosDB和AWS DynamoDB等,提供了不同的数据存储和查询方式以满足企业的多样化需求。
SOC管理流程
SOC(Security Operations Center,安全运营中心)是企业信息安全计划的重要组成部分,负责监控、分析和响应网络中的安全事件。
SOC层级
- L1:提供监视告警、分类和解决小问题。
- L2:提供对日常事件的分析、遏制和解决。
- L3:负责损失控制、深入调查和取证分析等IR(Incident Response,事件响应)事件。
- L4:安全管理,负责日常、非事件相关的程序,如开设账户、访问授权审查、定期安全报告和其他主动安全程序。
网络杀伤链
网络杀伤链模型描述了网络攻击的七个阶段:
- 侦察(Reconnaissance):攻击者对目标进行信息收集和探测,了解目标的网络架构、系统配置、潜在漏洞以及用户活动等相关情况。
- 武器化(Weaponization):根据侦察所获取的信息,攻击者将恶意软件或攻击工具进行定制和包装,使其能够利用目标系统的特定漏洞。
- 投送(Delivery):将经过武器化处理的恶意软件或攻击工具投送到目标系统或网络中,如通过电子邮件附件、恶意链接、受感染的移动存储设备等。
- 利用(Exploitation):一旦投送成功,恶意软件会利用目标系统存在的漏洞来触发并执行恶意代码,获取对目标系统的初步访问权限或控制权。
- 安装(Installation):在成功利用漏洞进入目标系统后,攻击者会进一步在目标系统内安装额外的恶意软件组件,如后门程序、远程控制工具等。
- 指挥与控制(Command & Control):安装在目标系统内的恶意软件会与攻击者所控制的外部服务器建立连接,允许攻击者远程对目标系统下达指令、获取数据以及进行进一步的操控。
- 行动(Action):攻击者通过已经建立的指挥与控制通道,在目标系统上执行预期的恶意活动,如窃取敏感信息、篡改数据、发起拒绝服务攻击等。
日志收集
日志收集是网络安全监控的基础,涉及从各种关键日志来源收集数据,如代理服务器、邮件服务器、Web服务器、数据库、身份认证服务器、防火墙、路由器和交换机,以及应用程序服务器和工作站。
- Windows系统:可以使用事件日志收集和转发机制获取日志数据。
- Linux系统:通常使用syslog收集和聚合日志,并将其转发到指定的日志收集器。
日志搜索与分析
收集到的日志数据需要进行有效的搜索和分析,以便及时发现潜在的安全威胁。Splunk等日志管理工具提供了强大的日志收集、存储、搜索、分析和可视化功能。此外,SIEM系统能够关联日志与活动,识别可疑内容。
监控告警
监控告警是网络安全响应的重要组成部分。告警可以来自SIEM系统,也可以直接来自安装在系统和网络中的传感器实时告警系统,如IDS(入侵检测系统)设备。此外,事后告警系统,如AIDE(监视系统文件的修改)等,也可以提供重要的安全信息。
事件响应
事件响应是网络安全管理的关键环节。L2级分析师在收到L1级的工单后,会进行分析评估,并进行相应的事件响应流程。数字取证分析是网络安全的一个专门领域,通常由L3级分析师处理,他们会对内存、硬盘等存储设备以合法方式进行取证,以保护数据的完整性。
Cyber Hunting(网络狩猎)
网络狩猎是SOC(安全运营中心)L3级分析师的一门新兴学科。它假设网络已被渗透,通过主动寻找恶意软件(或入侵者),争取在攻击造成损失之前发现。网络狩猎需要寻找一系列指标,以还原网络攻击时间线。MITRE ATT&CK框架是网络威胁猎人的一个关键资源,提供了攻击者行为方式及其使用工具的信息,有助于发现攻击痕迹。
威胁情报
威胁情报是网络安全管理的重要组成部分。妥协指标(IOC)是用于识别恶意软件或恶意活动的签名,通常以文件名和哈希值的形式提供。考虑到新威胁信息的规模,自动化威胁管理变得尤为重要。MITRE开发了结构化威胁信息表达(STIX)和可信智能信息自动交换(TAXII)协议,以实现威胁信息的自动提供和摄取。这些协议允许自动获得威胁情报,并将其输入IDS、SIEM等工具,实现威胁情报的近乎实时更新,以击败已知威胁。此外,AlienVault OTX等开放威胁交换服务也提供了手动访问危害指标的功能。
安全管理
安全管理是一组确保公司业务安全的日常流程,涵盖多个方面,包括身份管理(IAM)、访问控制、特权管理(PAM)、媒体消毒、人事安全、证书管理以及远程访问等。
- IAM:任何安全程序的基础,也是黑客攻击的主要目标。
- 访问控制:配置和验证用户访问系统的权限,并制定审计规则。
- PAM系统:使非特权用户能够请求特权访问,以提升权限。
- 媒体消毒:在生命周期结束时对敏感数据进行安全清理和销毁。
- 人事安全:公认的业务安全程序之一。
- 证书管理:维护PKI架构的完整性。
- 远程访问:后疫情时代成为攻击的重点,需加强安全管理。
零信任网络
在2010年谷歌遭受极光行动网络攻击之后,其内部网络管理方式发生了深刻变革,创造了"零信任"一词,用以描述一种始终假设内部网络可能已被破坏的运行方式。零信任架构在NIST特别出版物800-207中得到了正式确立,并已成为所有美国政府机构必须强制实施的安全标准。
零信任架构的核心特征
- 即时访问(Just-In-Time Access, JITA):用户或服务在需要时才被授予访问权限,且权限具有时效性。
- **只需足够的访问权限(Least Privilege Access, LPA 或 JEA, Just Enough Access)**:用户或服务仅被授予完成特定任务所需的最小权限集。
3. 动态访问策略 :访问控制策略根据用户身份、设备状态、位置、时间等多种因素动态调整。
4. 微观分割:将网络划分为多个小型的、相互隔离的安全区域,限制攻击者在网络内的横向移动能力。
安全和基础设施
在构建零信任网络的同时,还需关注以下安全和基础设施方面的要素:
- 数据备份/恢复:作为重要的运营技术,数据备份在发生灾难或攻击事件时,是恢复业务连续性和数据完整性的关键安全资产。
- 变更管理:安全策略需要与系统的变化过程紧密关联,确保在提交变更前已充分评估风险,并制定详细的变更管理计划,包括推出计划、回滚计划、影响评估和依赖关系清单。
- 管理物理环境:数据中心环境的物理和电子安全同样重要,包括物理访问控制、机房环境监控(如功率、温度、气压等)。
事件响应机制
有效的事件响应机制是零信任网络不可或缺的一部分。事件管理生命周期通常包括以下几个阶段:
- 准备:了解系统及现有控制措施,通过培训和演练提高组织的应急响应能力。
- 响应:识别安全事件、进行调查、采取行动以响应事件并恢复业务服务。
- 后续:事后进一步调查、形成报告、总结经验教训,并据此改进安全流程和策略。
SABSA多层控制策略
SABSA(Sherwood Applied Business Security Architecture)多层控制策略提供了一种全面的安全框架,包括威慑、预防、遏制、检测和通知恢复等多个层次的控制措施。
管理事件响应的方法
NIST特别出版物800-61:计算机安全事件处理指南提供了一种标准化的事件响应方法,包括检测和分析、遏制、根除和恢复以及事件后活动等阶段。此外,PDCA(Plan-Do-Check-Act)循环也被广泛应用于事件响应生命周期的优化和持续改进中。
应急响应准备
在构建全面的应急响应体系时,需要从多个维度进行准备:
一、风险评估与威胁分析
- 风险评估:深入了解组织的技术资产、系统和数据,并明确它们对业务的重要性,从而确定关键保护对象。
- 威胁分析:通过策略、技术和实践来识别潜在的风险点,并据此制定和实施相应的控制措施。
二、人员、流程和技术
- 建立团队:组建专业的应急响应团队,明确各成员的角色和责任。
- 配备工具:为团队提供必要的应急响应工具和设备,如日志分析工具、网络扫描器等。
- 制定流程剧本:针对不同类型的安全事件,制定详细的应急响应流程和剧本。
- 演练:定期进行应急响应演练,以提升团队的实战能力和协同效率。
三、控制
- 响应手册:编制应急响应手册,明确在不同安全事件发生时应执行的标准操作程序。
- 事前流程规避:通过制定和执行严格的安全政策和流程,尽可能减少安全事件的发生。
- 事中数据支持:在事件发生时,提供必要的数据支持和分析工具,帮助团队快速定位问题。
- 事后备份恢复:确保有可靠的数据备份和恢复机制,以便在事件发生后能够迅速恢复业务。
四、成熟度评估
- CREST成熟度评估工具:利用CREST提供的成熟度评估工具,对组织的应急响应能力进行持续评估和改进。
- 流程培训+实践技能培训:结合理论培训和实践技能培训,提升团队的整体应急响应水平。
五、应急响应手册概述
该手册详细规定了在不同安全事件发生时应执行的标准操作程序,涵盖了扫描、托管威胁、入侵、可用性、信息、欺诈、恶意内容、恶意软件检测、技术诚信和盗窃等多个安全事件类别。每个类别下都包含了具体的应急处理流程和操作规范。
六、演练与沟通
- 演练:通过红蓝对抗等模拟真实攻击场景的方式,锻炼团队的应急响应能力,并验证应急计划的有效性。
- 沟通:在应急响应过程中,及时、充分、准确的信息沟通至关重要。沟通对象包括内部员工、外部合作伙伴、客户、媒体和政府等。
七、事件检测与响应
- 事件上报:一旦发现安全事件,立即进行上报。
- 系统监控与检查日志告警:利用系统监控工具和日志分析技术,及时发现并响应安全事件。
- 确定事件级别:根据事件的严重程度和影响范围,确定事件的级别。
- 调查事件:对事件进行深入调查,包括溯源取证等。
- 采取遏制措施:根据调查结果,采取必要的遏制措施,防止事件进一步扩大。
八、报告与总结
- 编写应急响应报告:详细记录事件的经过、处理过程和结果,以及后续的调查计划和改进建议。
- 经验总结与改进建议:对事件处理过程中的经验和教训进行总结,并提出针对性的改进建议。
九、入侵检测与防御
- Snort:利用Snort等入侵检测和防御系统,对网络流量进行实时监控和分析,及时发现并阻止网络威胁。
- 流量分析:通过流量分析技术,发现恶意流量,并采取相应的告警和阻止措施。
- IDS与IPS:根据实际需求,选择合适的部署方式(带外监视或串联部署),以实现更高效的入侵检测和防御。
十、安装依赖包与配置Snort
- 安装DAQ数据采集库:为Snort提供必要的数据采集支持。
- 安装内存分配器:确保Snort在运行过程中有足够的内存资源。
- 安装配置Snort3:根据实际需求,安装并配置Snort3,包括自定义规则等。
(1) 文件管理概述(Snort规则配置)
在网络安全监控中,Snort等工具的规则配置是关键。规则定义了如何检测和处理网络流量,并触发相应的告警。这些规则包含多个字段,每个字段都扮演着特定的角色,共同确保网络活动的准确监控。
(2) Snort规则配置字段详细描述
- alert:指示这是一个告警规则。当流量匹配规则时,Snort将生成告警。
-
- 示例:
alert icmp any any -> $HOME_NET any (msg"Test Ping Event"; ...)
- 示例:
- icmp/tcp/udp:指定要监控的协议类型(如ICMP、TCP、UDP)。
-
- 示例:
alert icmp ...
或alert tcp ...
- 示例:
- any:作为源/目标IP或CIDR表示任意IP地址;作为源/目标端口表示任意端口。
-
- 示例:
any any
(任意源IP和端口)
- 示例:
- < >(方向运算符):指示流量的方向。
-
- 示例:
->
表示从源到目标的流量。
- 示例:
- $HOME_NET:在Snort配置中定义的本地网络。
-
- 示例:
$HOME_NET
替代具体的IP范围。
- 示例:
- msg:告警的描述性名称。
-
- 示例:
msg"Test Ping Event"
- 示例:
- sid:规则的唯一签名ID。
-
- 示例:
sid:1000001
- 示例:
- rev:规则的版本号,用于跟踪更新。
-
- 示例:
rev:1
- 示例:
- classtype:告警的分类类型。
-
- 示例:
classtype:icmp-event
- 示例:
- content:在流量中查找的特定内容。
-
- 示例:
content:"Login incorrect"
- 示例:
(3) 本地账号与Snort条件子句概述
Snort可通过设置条件子句来监控本地账号相关活动,如失败的登录尝试。当满足条件时,触发告警或执行其他操作。
(4) 具体Snort条件子句示例及解释
示例:检查失败的telnet登录尝试
alert tcp $HOME_NET 23 -> any any (msg:"Failed login attempt"; content:"Login incorrect"; sid:1000002; rev:1; classtype:attempted-user;)
详细解释:
- 协议及源目标设定:
-
alert tcp
:针对TCP协议的告警。$HOME_NET 23
:源网络为本地网络,端口为23(Telnet)。-> any any
:流量流向任意目标IP和端口。
- 告警信息及分类相关:
-
msg:"Failed login attempt"
:告警名称为"Failed login attempt"。content:"Login incorrect"
:流量中需包含"Login incorrect"字符串。sid:1000002
:规则的唯一签名ID为1000002。rev:1
:规则版本号为1。classtype:attempted-user
:告警分类为"attempted-user"。
(5) 外部规则集
相关网址:
- Proofpoint:可能提供网络安全规则和建议。
- Emerging Threats:提供新兴威胁相关的规则集。
(6) In Line部署及阻断操作
- In Line部署:Snort直接介入网络流量路径,实现实时处理。
- 阻断操作:
-
D drop
:丢弃符合特定条件的流量。sdrop
:类似D drop
,但具体实现可能有所不同。reject
:拒绝流量并发送拒绝响应给源端。
(7) 总结
通过综合运用Snort的规则配置、外部规则集以及In Line部署和阻断操作,可以实现对网络活动的全面、有效监控和安全防护。这要求管理员深入理解Snort的配置字段和条件子句,并能够根据实际情况灵活设置和调整规则,以确保网络的安全性和稳定性。