j

资产梳理

为什么要进行资产梳理

资产梳理的目的

  • 主机漏洞、弱口令、Web应用漏洞、基线配置的目标

  • 排查“三无七边〞资产

  • 排查开放端口服务,作为关闭非必要端口及加强端口访问策略的依据

  • 梳理重点资产,作为有限防护资源分配重点参考

要做到

  • 确保检查无遗漏
  • 处理无主资产
  • 标记重点防护资产
  • 为后续防护决策等提供部分基础信息

资产为什么如此重要?

我们所有做的工作是不是全部都在为资产进行防护,如果没有资产,我们安全工作的意义又在哪里,所以资产管理就变的尤为重要。现在资产有企业内部梳理好的,也有需要乙方人员使用工具进行梳理的

首先做资产的分类

  • 内网/互联网资产
  • 接口清单
  • 服务器
  • 网络设备
  • 安全设备

然后做条目的细分

  • 收集明确归属的系统资产信息:系统归属、责任人归属
  • 发现未明确(末知)资产,并明确其归属
  • 梳理资产对应的开放端口/服务,并明确其用途
  • 梳理与攻击目标相连接口/资产
  • 梳理存在用户数据的资产
  • 梳理防护资源等

列出一个类似下面的表格进行整理

image-20231010150819877

资产梳理的流程

1. 现有的资产表收集

  • 首先向管理员收集

    • 原始资产表,主要包括已知系统、资产的常规信息
    • 通过基本调研补充扩展信息
  • 其次安全管理平台、SOC导入的资产信息作为补充。通过导出如SOC平台等安全管理平台中的资产信息,收集初步资产表

2. 信息补充

在此网段资产存活探测

  • 在此网段资产存活探测
  • 资产开放端口服务探测
  • 监控设备/平台目标补充
  • 站点探测补充

目的是为了梳理末知资产、梳理开放的端口、服务

扫描完成后:

  • 存活列表与资产列表进行对比,筛选无归属资产 ,与管理员确认资产用途
  • 将开放端口/服务信息与资产匹配,重点筛选标记http、https、FTP、SMTP、POP3、RADIUS、RDP、NTP、数据库端口,与管理员确认端口用途
  • 开放Web相关端口的资产,向管理员进行站点确认,补充Web资产信息

3. 完善信息

关于通过其他手段做信息补充

  • 记录数据相关接口
  • 记录与集因/地市分公司连通的资产IP和端口
  • 上述接口资产进行重点标记
  • 确认发现的未知资产归属
  • 调研完善其他信息(可访问位置及授权、防护手段及口互联情況等

4. 输出资产表

如何做资产梳理和管理

1. 新增资产记录

利用Excel记录表,有新增的资产表和部门要同时进行记录表更新和删除操作。

2. 其它部门配合

其它部门有更新资产一定要正式发邮件通知进行更新,最好发式是管理防火墙,没有记录是无法对外进行提供 的

3. 上线前必须过安全

所有资产进行正式对外访问时候,一定要经过严格测试,一但发现漏洞要重新整改,因为这个漏洞会影响整个内网环境

4. 资产收集工具

除了平时防火墙管理和部门邮件通过,本身还可以通过工具进行公网资产收集,进行实时更新系统,是否有遗漏部分。

资产搜集与漏洞自查

通过应用系统名称可以确定系统的重要性,根据软件版本号可以识别版本是否有漏洞,尤其是最新漏洞出现以后,可以快速进行漏洞查找,比如Weblogic版本漏洞。开放端口也是确定某些资产是否重要进行关闭不必要端口,防止黑客入侵等

资产搜集的工具

安全自查-漏洞扫描

计划准备

  • 技术交流

    • 技术原理沟通

      • 沟通扫描原理
      • 确定扫描方式
      • 确定扫描类型(按系统扫漏洞、按网段探测主机存活、全端口扫描确认服务)
    • 风险的提示和告知

      • 占用的带宽大小
      • 安全设备的告警
      • 业务风险
      • 对网络的影响
    • 沟通漏洞扫描的条件

      • 网络环境
      • 接入点
      • 配合人员
    • 沟通交付的结果

      • 报告的要求等
  • 确认扫描范围

    • 明确扫描范围

      • 按已知系统的漏洞扫描:IP地址、应用服务、网络拓扑
      • 按网段扫描:事先了解涉及的网段
      • 按端口和服务扫描:涉及的资产信息和端口清单
    • 安全设备情况

      • 当前使用的防火墙、安全设备的情况,设置的策略等,防止误阻断
    • 以往的漏洞扫描情况

      • 是否进行过漏扫,是否因为扫描造成设备异常
    • 其他

      • 业务的重要程度、业务的繁忙时期和网段是否允许长期挂扫
  • 确认扫描工具和环境的准备

    扫描设备准备

    • 确定漏扫工具
    • 漏洞库升级到最新、证书都有效

    确定目标网络接入环境

    • 确定网络接入的方式和位置以及电源
    • 提供目标网段的空闲ip、掩码和网关
    • 了解安全设备的部署情况和安全策略配置

    扫描时间、地点和人员

    • 扫描时间(是否指定时间、是否可长时间挂扫)
    • 进入机房的流程安排
    • 机房配合人员等
  • 确认扫描方案

    • 确定扫描方案:同护网方案相结合,提前完成沟通
  • 申请实施授权

    • 时间和授权:在漏洞扫描前,特别是按网段扫描前,需要指定单向扫描计划,通过邮件与安全接口人和系统负责人确定扫描时间,并获取相关的审批。

    • 一定要避免口头和电话沟通!

扫描实施

  • 环境与网络配置

    现场环境

    • 扫描其间,维护人员全程配合观察业务系统运行状态;
    • 涉及机房操作的,针对网线插拔、开关机柜等操作,由配合人员完成;
    • 遵守客户场地要求:如机房严谨吸烟、吃东西、需要穿戴鞋套等要求;
    • 佩戴通行证,不要出入非授权场所。

    网络配置

    • 扫描器接入前需确认扫描口IP地址配置,避免发生IP地址冲突问题;
    • 如网络不通,需要进行扫描设备故障排查、和网络环境故障排查(配合人员负责网络故障的排查)。
  • 扫描策略确认和任务下发

    事先确认服务器性能,业务重要性、扫描类型等,根据不同情况调整扫描策略:

    • 现网业务生产环境,未获取用户文件或邮件授权,禁止弱口令扫描;

    • 如果没有指定要求,尽量避免登录扫描

    • 对于末进行过漏洞扫描的设备或重要系统,可采取以下方式降低扫描风险:

      1、单个IP逐个扫描

      2、主备机分开扫描

      3、同一设备不同IP地址(如浮动地址)分开扫描

    • 根据前期收集到信息,排除因扫描出现异常的设备,以及扫描存在较高风险的设备(如老旧设备、负荷较高设备,以及其他特殊情况)

  • 扫描期间业务检查

  • 具体任务实施

    • 任务开始前,可通过扫1-2个地址,进行网络承载、路由通路等测试;
    • 每个扫描任务地址不应太多,IP及网段较多的,建议分批扫描(防止设备卡死、扫描中断等意外情况);
    • 扫描的资产应以业务系统为单位,当无法确认业务系统时,应以部门单位进行扫描,方便历史数据统计分析;
    • 若涉及某部门按网段进行扫描,应将网段拆分为多个子任务进行
    • 扫描任务命名时明确部门、系统等关键信息,例如【部门名称+系统名称+任务类型+其他】,能够有效的区分不同的扫描任务。
    • 扫描其间,配合人员需要全程关注业务运行情况,观察是否出现异常;
    • 在扫描其间一旦出现系统瘫痪、宕机等情况,根据提前准备的应急预案,立即配合进行处置和恢复。并根据现场情况決定业务恢复后是否还继续进行扫描任务。

收尾阶段

  • 异常任务处理

    • 观察异常现象:

      • 扫描任务失败
      • 扫描结果无任何漏洞
      • 扫描资产减少
      • 扫描进度0%
    • 寻找原因

      • 网络不可达或网络波动
      • 有安全防护设备或配置了安全策略
      • 扫描工具故障
    • 处置措施

      • 排查扫描工具的故障
      • 排查网路环境故障
      • 确定目标资产防护情况
      • 重新配置扫描任务
  • 扫描报告导出

  • 交付和汇报成果

    • 配合人员对系统运行状态、业务运行状态进行确认,如有异常按照应急措施进行处置
    • 扫描人员并关闭扫描器,断开网线,恢复扫描前状态
    • 经确认无误后扫描人员离场

报告分析

  • 关键信息提取

    • 扫描目标存活数量

      • 同资产表对比,是否疏漏
      • 检查疏漏原因并补充扫描
    • 目标主机漏洞的分布情况

      • 各风险等级漏洞在整体资产中的分布
      • 哪些资产漏洞数量最多、风险等级较高
    • 漏洞类型

      • 存在漏洞的主要是哪些系统、应用
      • 哪些扫描原理类型发现的、存在误报的可能性
    • 漏洞信息

      • 漏洞名、漏洞描述、编号、受影响系统/版本/组件、风险等级
      • 漏洞分析和加固建议
  • 漏洞信息检索

    • 基本漏洞信息-漏洞共享平台

      • 方法:根据各类漏洞编号(CVE、CNVD、CNNVD等)在对应漏洞共享平台检索
      • 需要的信息:漏洞名称、描述、受影响通用应用版本范围、风险等级、部分官方补丁下载链接等
    • 漏洞加固信息检索-操作系统/应用官方网站

      • 在各类操作系统、应用软件官方网站通过漏洞编号检索官方漏洞公告、补丁编号
      • 当前操作系统的哪些版本受影响,是否已有加固方案,具体加固方法及补丁下载链接
    • Poc一互联网

      • 通过CVE编号,查找”CVE-xxxx-xxxxPOC”或”CVE-xxxx-xxxxexploit”
      • 验证有风险,需评估漏洞及验证风险,获取授权后开展
      • 可能存在误报情况,所以需要poc验证

确定基本的加固方案

后面会讲到

1. 了解漏洞信息

  • 漏洞描述
  • 漏洞影响范围
  • 漏洞风险等级

2. 漏洞加固方案

  • 扫描报告中的方案
  • 漏洞检索信息中的方案
  • 通用的临时加固方案

3. 加固方案选择

  • 网络环境
  • 业务/运维情况
  • 加固办法可行性

安全自查-模拟渗透

模拟渗透呢,主要针对以下几种情况:

  • 在没有发生安全事件之前,企业内部渗透测试

  • 发生安全事件之后,日志被删或日志没利用价值,无法定位如何入侵的。这种没有思路的情况下,可以进行分析且可以采用模拟渗透

系统漏洞自查

主要工具为WindowsvulnScan、linux-exploit-suggester,也可以辅以Nessus扫系统漏洞

1. windows自查

功能:

  • 查找主机上具有的CVE
  • 查找具有公开EXP的CVE
  • 主要就是自查Windows的漏洞,具体用法看GitHub

如果出现报错,将KB.json切换为utf-8模式

查出漏洞之后,可以根据给出的漏洞补丁去Google对应的漏洞,查看本机是否符合该漏洞的条件,并且打补丁

D:\Myproject\venv\Scripts\python.exe cve-check.py -C -f KB.json

2. linux自查

LES工具旨在帮助检测给定的基于Linux内核/基于Linux的计算机的安全缺陷。

./linux-exploit-suggester.sh

服务漏洞自查

非系统的漏洞

先收集信息康康有哪些服务,然后配合工具searchsploit,进行漏洞自查

如果测出漏洞,hacker十有八九就是从这些地方进入的了~~

1. Windows

查看系统的服务或者软件等等

Get-WmiObject -class Win32_Product
image-20221022064922484

2. Linux 地址

GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks

脚本化本地 Linux 枚举和权限提升检查

./LinEnum.sh

3. 根据检索出来的服务进行漏洞扫描 主要使用searchsploit,比如weblogic

offensive-security/exploitdb: The official Exploit Database repository (github.com)

msf上面也有这个漏洞库,会更新最新的漏洞库

前面查找出服务和版本信息后,在这个里面search 服务的名字,然后根据版本判断是否存在漏洞

改根据会给出漏洞的poc或者exp

拿到poc后再去测试即可

#到项目目录
./searchsploit weblogic

其中查询的漏洞exploitdb下面的目录分别为dos、local(本地提权)、remote(代码执行)、webapps,目录分类也是有讲究的

检查弱口令

安全设备、弱口令扫描工具、问客户都可以得知弱口令情况

扫端口

查看对应端口的服务和版本。

若非必须开放的端口,可以关闭,具体关于端口怎么处理,看下面的安全加固部分

基线排查

安全基线主要对系统和应用的一种检查手段和机制,提前对系统和应用的风险进行控制,防患于未然。目前主要从操作系统、数据库、网络设备、中间件等操作,目前分为脚本制和手工排查两种方式

安全基线管理做些什么

  • 系统加固
  • 资产版本梳理
  • 密码策略加强
  • 脆弱性管理

本地有checklist:

G:\DEFEND\基线核查脚本
G:\DEFEND\基线核查脚本\linux基线配置文档2.2.docx
G:\DEFEND\基线核查脚本\windows基线配置文档2.1.docx

安全加固

加固前确认事项

  • 目标:明确安全加固支持项目的客户信息、服务范围、工作计划等

  • 确定范围:针对安全加固项目范围的系统资产进行总体的了解;确认工作计划、实施环境客户接口人、流程要求和项目交付物等

  • 输出

    • 项目信息调研表
    • 加固资产清单
    • 安全加固古持服务实施计划
  • 要点:确保加固资产无遗漏

安全加固方案

  • 目标:依据前期调研信息,确认安全加固优先级,选择恰当的安全加固方法,形成安全加固实施方案

  • 原则:优先解决业务系统的高风险漏洞,其次解决中风险漏洞、低风险漏洞

  • 输出:

    • 安全加固实施方案
    • 安全加固清单
    • 安全加固操作
  • 质量控制:项目经理对方案进行审核,确保实施质量

安全加固的原则和具体的可行措施

1. 版本升级

对于系统和应用在使用过程中暴露的安全缺陷,系统或应用厂商会及时发布解决问题的升级补丁包。升级系统或应用版本,可有效解决旧版本存在的安全风险。

关于版本升级

  • 一般不进行大版本升级。没有特殊情况,一般不进行大版本升级。比如从mysql5.7升级到8.0

  • 打补丁前必须做好原应用的备份工作。数据文件、配置文件甚至程序文件等。备份操作一般由系统管理员或者系统厂商完成。

  • 升级和打补丁时注意版本号和操作系统的匹配

    • 升级包和补丁包通常有32位(i686、x86)和64位(x64)之分,需根据操作系统的版本号来确定要下载的版本;另外,对于Linux系统,部分安装包还跟Linux的发行版本有关
    • 应用升级前建议将旧版本以重命名的方式放在以前目录。
    • Red Hat Linux的程序包可能无法在Debian上运行),需要找对发行版本

版本升级的操作步骤

  1. 确定应用位置:针对不同系统类型对应用安装位置进行定位

  2. 补丁文件的下载地址在风险评估报告的整改建议内会有体现

  3. 将加固中需要的文件上传至服务器。使用ssh或者ftp

  4. 软件和补丁安装:

    严格按照软件和补丁的安装说明进行软件和补丁的安装工作,同步修改权限与宿主

2. 关闭端口服务

在不影响业务系统正常运行情况下,停止或禁用与承载业务无关的服务和服务端口,可有效避免无关服务造成的安全风险。

管理员需提供系统实际需要的服务及端口列表,将风险评估报告涉及的存在安全风险的服务端口与实际需要的服务及端口列表进行对比

  • 明确用途:存在安全风险的服务端口与业务应用无关,并且为不必要的服务和启动项,应当关闭或者禁用
  • 无法确定用途:不建议采用关闭服务端口的方式进行加固,或者在执行服务端口关闭操作前进行严格的测试

关闭未知端口和不用的端口。

用 NMAP 扫描到未知的端口打开了,你应该怎么办?

  • Windwos severs:
# 查看端口及对应的进程号信息(看主机的端口监听状况)
netstat -ano | findstr "端口号(3306)"

# 杀死进程:需要指定 pid
taskkill /pid "pid(刚刚查询的最后一个数值)" /f

注:有的进程关不了,需要用管理员权限

  • linux servers:
#查看主机的端口监听状况
netstat -auntp |grep端口号

#列出指定端口相关信息
lsof -i :22
ps -aux |grep PID /程序名称
systemctl stop mysql #停止端口(服务)

#杀死进程
lsof -i :22
kill -9 2060

#如果杀不死
killall sshd

3. 修改配置项

操作系统(也包括网络设备和安全设备等)、数据库、中间件、第三方应用和业务系统可更改的配置中与安全相关的设置参数等信息,通过修改安全配置检查可以为网络和应用系统提供必要的安全保护。

参照配置核查报告或者各行业安全配置规范进行安全加固操作,一般极限排查的时候,会有很多关于某个应用的配置项加固措施,可以参考

image-20231010172159361

4. 修改代码

修改代码一般由系统开发厂商完成。安全加固支持方仅提供加固建议及加固有效性验证。

5. 主机/网络ACL

主机/网络ACL策略是一类临时安全加固方法

ACL通常应用在系统的出口控制上,可以通过实施ACL,可以有效的部署网络出网策略,控制对网内部资源的访问能力,进而来保障这些资源的安全性

关于ACL策略,以Windows为例

image-20231010172251211

6. 部署安全设备

部署设备防护是一类临时安全加固方法

部署设备防护的安全加固方式一般由设备厂商完成。安全加固方仅提供防护设备策略配置建议及加固有效性验证

主要加固办法

  • 升级应用版本,如openssh
  • 安装安全漏洞补丁,如oracle CPU安全补丁
  • 修改应用配置,如启用认证授权模块
  • 更换更安全的其他应用/协议,如将Telnet更换为ssh
  • 卸载应用,如非必要的运维应用

临时规避办法

  • 官方提供的临时规避办法,如微软官方提供的缓解因素和变通办法
  • 严格的端口访问控制策略,仅允许可信的有限源访问目标IP和端口安全防护设备
  • 编写waf写规则拦截

refer

-

声明:

  1. 若文章存在错误,望诸君不吝指正^

  2. 部分笔记由于年代久远,做的笔记找不到最初是引用谁的,若是不允许引用转载,请联系我