1. 极安网首页
  2. 网络安全工具

网络访问权限检查工具PropertyScanner

背景介绍

简单介绍下背景,企业内部通常会通过配置 ACL、防火墙等方式对内网主机的可访问范围进行约束。但往往由于网络过于复杂,资产过多且零散导致无法有效验证网络权限控制的落地情况。针对此需求,在 HW 前编写了此工具用于企业内部的访问权限验证。本着功能够用就行的态度,在 HW 结束后,对工具进行了优化和脱敏处理,并尝试在社区分享。实现并不复杂,主要是希望可以和社区大佬们分享交流下经验,有不足之处,还请大家指出。

网络访问权限检查工具PropertyScanner-极安网

应用场景

运行环境:Python 3

该工具用于企业资产网络访问权限检查。工具基于预先设定的各区域访问控制权限要求及运行主机所处网络区域来判断网络权限开放是否合规。

例:运行主机 IP 为 192.168.1.5,在企业网络区域划分中处于办公区。若此时该主机可以访问到位于服务器区的服务器 192.168.0.2 的 22 端口,基于该企业的网络权限管理要求,该服务器区服务器 22 端口只能开放给堡垒机,故此访问异常,属网络管理权限配置存在问题。

设计思路

本工具需要事先规定好每个 IP 所处的区域以及明确资产敏感端口需要开放的区域,程序运行之初首先基于主机 IP 判断出当前所处区域,随后对所有已记录的资产敏感端口进行扫描。得到扫描发现的可访问端口后,则判断当前所处区域是否为该端口的开放区域,若不属于,则可能存在异常访问,扫描结果最终会记录在 Excel 表格中。

程序具体的实现方法将以以下四个部分进行描述。

Step1 : 判断当前 IP 所处位置

当前主机 IP 所处区域是基于项目中 zone.json 文件来判断的。zone.json 文件的格式如下:

  1. {
  2.     "office": {
  3.         "name":"办公区",
  4.         "authIP":[
  5.             "192.168.1.1/24"
  6.         ]
  7.     }
  8. }

通过比对「authIP」 中的字段即可判断当前 IP 所处区域。需要注意的是,考虑到一个 IP 可能具有多个区域的权限,为更贴和实际落地场景,每个 IP 可以具有多个区域标签。

原创文章,作者: Admin ,转载请注明出处:https://secvery.com/2759.html