ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Infection Monkey 网络分段测试指南:用跨网段扫描验证网络隔离配置

Infection Monkey 网络分段测试指南:用跨网段扫描验证网络隔离配置 网络安全应用安全【免费下载链接】monkeyInfection Monkey - An open-source adversary emulation platform项目地址https://gitcode.com/gh_mirrors/mo/monkey点击查看免费下载导读本文以 Infection Monkey 官方文档中的网络分段Network Segmentation测试场景为核心完整讲解如何利用其跨网段流量检测特性验证数据中心与云环境中的安全区隔离是否真正生效。读完本文你将掌握网络分段测试的配置方法、纯扫描运行模式、结果评估手段以及底层 Agent 扫描目标生成与安全报告判定跨段通信的源码实现原理。概述为什么需要验证网络分段分段Segmentation是数据中心与云部署中创建安全区secure zones的常见方法通过策略将工作负载彼此隔离、独立加固例如让开发环境与生产环境隔离、让各个应用之间互不可达。一个实用的检验方式是确认网段之间确实被正确隔开——即开发环境无法访问生产环境、应用之间无法横向互通。分段是保护网络的关键手段它能够缩小网络的攻击面并在发生入侵时最小化损害范围。即使攻击者突破了第一道防线只要网段之间无法横向移动lateral movement攻击者的破坏力就会被限制在单一区域内。Infection Monkey 提供了跨网段流量cross-segment traffic检测功能专门用于验证你的网络分段配置是否充分。通过该功能你可以确认即使发生安全事件攻击者也无法在网段之间横向移动。工作原理跨网段测试的底层逻辑要理解如何配置先要清楚 Agent 端是如何执行分段检测的。在源码 scan_target_generator.py 中compile_scan_target_list()负责汇总所有扫描目标其中_get_segmentation_check_targets()专门处理分段检测目标收集 Agent 所在主机的全部本地 IPlocal_ips将你配置的“不可访问子网”inaccessible_subnets转换为范围对象用itertools.product对这些子网做两两笛卡尔积配对对每一对(subnet1, subnet2)调用_is_segmentation_check_required()只有满足**“本机 IP 位于 subnet1 中且不位于 subnet2 中”**这一条件的配对才会触发扫描——也就是说Agent 会从自己所在的网段向另一个本不应可达的网段发起探测探测目标即subnet2中的 IP 列表。这意味着你在配置里列出的子网彼此之间都应当隔离Agent 会站在其中一个网段内尝试访问其他网段一旦成功建立连接就会作为“跨段问题”上报。同时_remove_interface_ips()会把 Agent 自身网卡上的 IP 从目标列表中剔除避免自扫。值得注意的边界行为如果一台机器同时拥有两个网段的 IP例如双网卡主机源码中的_is_segmentation_check_required会认为它同时位于两个网段从而在报告中单独以is_self标记该问题详见后文报告分析。配置定义需要隔离的网段核心配置项Network segmentation testing在 Monkey Island 配置界面中进入Propagation - Network analysis - Network segmentation testing网络分段测试该设置允许你定义彼此之间应当隔离的子网。如果配置的任何网段之间可以互相访问你会在安全报告中看到对应的告警。从源码 agent_sub_configurations.py 可见该配置项对应的字段名为inaccessible_subnets其内置描述给出了标准行为示例假如你配置了三个网段10.0.0.0/24、11.0.0.2/32和12.2.3.0/24那么运行在10.0.0.5上的 Monkey 会尝试访问11.0.0.2/32与12.2.3.0/24中的机器一旦跨段连接成功报告中会显示告警。每个网段可以是IP、子网或主机名支持四种书写格式格式示例含义单 IP192.168.0.1单个 IP 组成一个独立网段IP 范围192.168.0.5-192.168.0.20用连字符连接起止 IPCIDR 掩码192.168.0.5/24用子网掩码划定网段主机名printer.example单个主机作为一个网段这些格式由配置校验器统一把关。在 ip_ranges.py 中validate_subnet_range()依次尝试按 IPv4 地址、IP 范围、IPv4 网络CIDR、主机名四种形态校验任何一项失败都会抛出ValueError: Invalid subnet range ...主机名校验遵循 RFC 1123 规则如末段必须包含字母、不能以连字符开头或结尾。⚠️ 注意本配置项下所列的网段将使用pingICMP 探测进行扫描。对应源码 agent_sub_configurations.py 中的ICMPScanConfiguration定义了 ping 扫描超时timeout默认 1.0 秒即Ping scan timeout。实际扫描器位于 ping_scanner.py。可选纯分段测试模式关闭自动扫描如果你想只测试网络分段、不做任何横向移动可以进入Propagation - Network analysis - Network关闭Scan Agents networks选项其余选项保持默认。该选项对应源码字段scan_my_networks默认值为False。在 scan_target_generator.py 中当它为True时Agent 会在既有目标之外额外扫描自己所属网卡的网络关闭它即可避免 Agent 自动扩散到本机所在网段让模拟范围严格收敛在分段检测目标上。源码还给出了该选项的警告信息如果 Agent 运行在拥有公网接口的机器上开启它会导致扫描和利用组织之外系统的风险。此外Propagation下还有一个maximum_depth最大扫描深度默认 2设置为 0 可完全禁用扫描与利用——如果你希望万无一失可以结合使用。相关源码位置ScanTargetConfiguration含subnets扫描目标列表、blocked_ips阻止列表、inaccessible_subnets分段测试列表运行方式Manual 模式多网段投放建议的运行模式是使用Manual手动运行选项将 Infection Monkey 投放到不同子网中的多台机器上执行。这样Agent 就能以各自所在网段为源分别探测其他配置网段从而获得跨段可达性的完整视图。一个关键前提如果 Agent 无法与 Monkey Island 通信它就无法回传扫描结果。因此在投放前务必确保所有运行 Agent 的机器都能访问到 Monkey Island 服务器否则跨段探测数据会丢失报告将不完整。分段测试配置界面评估结果Infection Map 与 Security Report运行结束后通过以下两个视图评估分段状况Infection Map感染地图检查网络拓扑连线。理想情况下所有被扫描节点应只与 Monkey Island 服务器存在连线边而不应出现与其他 Agent/网段节点之间的连接。Security Report安全报告查看 Segmentation Issues 章节该章节专门汇总网络中发现的跨段问题详见 安全报告文档。分段测试结果地图深入原理报告如何判定跨段通信跨段问题并非仅靠 Agent 回传的扫描结果简单罗列而是在 Island 端由报告服务综合分析得出。核心实现位于 report.py 的get_cross_segment_issues()从事件仓库取出两类扫描事件——PingScanEvent与TCPScanEvent仅保留“成功”的扫描ping 以response_received为成功标志TCP 以has_open_ports为成功标志从当前 Agent 配置中读取inaccessible_subnets作为唯一的子网分组源码注释明确说明“该功能目前限制为 1 个分组”即所有配置网段同属一组两两互相检测在get_cross_segment_issues_per_subnet_group()中对分组内子网做两两配对product(subnet_group, subnet_group)交由get_cross_segment_issues_per_subnet_pair()逐对判定。每对子网的判定逻辑report.py为找出目标 IP 位于目标子网范围内的所有成功扫描事件检查执行扫描的机器是否拥有位于源子网范围内的 IP若是则记录一条跨段问题source源 IP、hostname、target目标 IP、services目标机器的网络服务、types扫描类型如 ICMP/TCP。此外get_cross_segment_issues_of_single_machine()report.py专门检测单台机器同时拥有源/目标两个网段 IP的情况——例如一台双网卡主机横跨了两个应当隔离的网段这本身就是分段失效的标志报告会以is_self: True标记为独立问题。前端渲染层在 CrossSegmentIssue.js 中将每条跨段问题展示为“Communication possible from源子网to目标子网”明细信息分两类单机双网段Machine X has both ips: A and B多机互访IP A (hostname) was able to communicate with IP B using:并列出扫描类型types与目标上开放的服务services。这一实现由单元测试覆盖可参考 test_segmentation_utils.py 与 test_report.py。注意事项与建议扫描手段是 ICMP ping分段测试依赖 ping 探测若目标网段禁 ping防火墙丢弃 ICMP可能产生误报“无法访问”反之即使 TCP 端口可达而 ping 不通也会被判定为不可达。对边界场景可结合报告中的 TCP 扫描类型综合判断。分组限制从源码看inaccessible_subnets目前作为一个整体分组使用所有子网之间两两检测尚不支持多独立分组。安全提示scan_my_networks默认关闭在公网机器上开启它可能导致扫描范围越出组织边界。blocked_ips可用于在扫描目标之外排除特定 IP防止误伤生产主机。规划机器位置为确保覆盖所有网段对建议在每个需要验证的源网段内至少投放一个 Agent并保证其到 Monkey Island 的网络可达。延伸阅读安全报告详解了解 Segmentation Issues 之外的报告章节快速上手Getting StartedAgent 的安装与 Manual 运行方式感染地图说明如何读懂 Infection Map 的节点与连线配置说明Propagation 相关配置项的完整介绍通过上述配置与评估流程你可以用 Infection Monkey 建立一套可重复的网络分段巡检机制把新增的隔离网段持续加入Network segmentation testing列表每次模拟后检查 Security Report 的 Segmentation Issues即可确保网络边界始终符合预期。赞分享网络安全应用安全【免费下载链接】monkeyInfection Monkey - An open-source adversary emulation platform项目地址https://gitcode.com/gh_mirrors/mo/monkey点击查看免费下载相关推荐wx_channels_download v251203 更新解析配置文件查找修复与 Windows 图标嵌入wx_channels_download v251203 更新解析配置文件查找修复与 Windows 图标嵌入 本指南基于 wx_channels_downl网络安全应用安全Infection Monkey 实战场景配置指南凭据泄露、内网失陷与网络隔离测试Infection Monkey 实战场景配置指南凭据泄露、内网失陷与网络隔离测试 本文基于 Infection Monkey开源对手模拟平台官方场景文档网络安全应用安全Multipass网络配置终极指南VLAN隔离与多网段实战Multipass是一款轻量级的虚拟机管理器能够快速启动和管理Ubuntu实例。在复杂的开发环境中掌握Multipass的高级网络配置技巧至关重要。本文将详虚拟化开发工具云原生上一篇CANN/asc-devkitremainderf浮点余数函数下一篇CocosCreatorTutorial核心组件解析ActionEase与动画系统实战教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表