利用端口扫描进行终端合规性检查的一个示例
利用端口扫描进行终端合规性检查的一个示例
摘要:大型的办公网络内往往运行着数量众多的终端,这些终端的安全又是网络管理员重点关注的问题,如何对使用人员开展信息安全教育以及采取哪种技术防御措施是很多文章研究的内容,但是这些防御措施是否有效?员工是否按规定使用终端呢?本文利用端口扫描技术,针对终端应用程序检查提供了一个示例,为网络管理员对终端进行合规性检查提供了一个思路。
关键字:端口扫描;Nmap;终端合规性
1、背景
现代大型公司往往都有自己的内部办公网络,根据公司业务的规模及分布,有的办公网络集中于某个地区,有的则跨省跨国。使用计算机网络的地方就必须考虑安全问题,这是计算机网络发展多年以来大家早已达成的共识。面对公司规模庞大、主机众多的网络,我们怎么能够快速检查,找到那些存在安全隐患的主机?这是网络管理员躲避不了的问题。目前人们对于内网安全的研究比较广泛,总结起来大致是三个方面:1)加强员工安全意识教育;2)提高终端安全管理水平;3)完善终端安全防护措施。【1】笔者认为除了正面防御之外,还应考虑检查手段,不然无法验证我们的防御手段是否有效。考虑到完整的***测试未必适用于每个公司,因此本文提出利用端口扫描进行终端合规性检查的办法,并举例说明。希望以点带面、抛砖引玉,促进网络管理人员对内网安全的思考。
2、端口及端口扫描
端口只是一种软件中的抽象概念,用于区分通信信道。 这与IP地址用于识别网络上的计算机的方式类似,端口用来标识在单个计算机上使用的特定应用程序。例如,你的Web浏览器将默认连接到HTTP URLs中的TCP端口80。 如果您指定安全的HTTPS协议,浏览器将默认尝试端口443。
端口扫描是远程测试多个端口以确定它们处于什么状态的行为。通常我们最感兴趣的状态是open,这意味着应用程序正在侦听并接受端口上的连接。 虽然许多端口扫描程序传统上将所有端口都集中到open或closed状态,但我们将要使用的工具Nmap更加精细,它将端口划分为六个状态。 这些状态不是端口本身的固有属性,而是描述Nmap如何看待它们。例如,来自与目标相同的网络的Nmap扫描可能会将端口135/tcp显示为open,而同时使用来自Internet的相同选项的扫描可能会将该端口显示为filtered。
3、问题
在真实环境中有时我们会需要从一个网络中快速找出某个TCP端口开放的主机。【2】例如:在Microsoft IIS的漏洞曝光后,我们很想知道网络中的这些主机上哪一台的TCP 80端口是打开的,并且还在运行着该服务;或者,当你发现一台被攻陷的主机上***留下的后门在端口31337上运行,你会希望快速扫描网络,找到其它被攻陷的主机,等等。
4、解决办法
要解决上面的问题,最直接的办法就是运行下面的命令:
#nmap -Pn -p<portnumber> -oG <logfilename.gnmap> <target network>
这是一个搜索4096个IP的Web服务器(端口80打开)的具体示例:
#nmap -Pn -p80 -oG logs/pb-port80scan-%D.gnmap 216.163.128.0/20
文件名中的“%D”将替换为扫描运行的数字日期(例如,2007年9月1日为“ 090107”)。尽管此扫描命令有效,但做一些选项上的优化会大大减少扫描时间。
#nmap -T4 -Pn -p80 - -max-rtt-timeout 200ms - -initial-rtt-timeout 150ms - -min-hostgroup 512 -oG logs/pb-port80scan-%D.gnmap 216.163.128.0/20
我们发现大部分时间都花在了反向DNS解析上。通过在上面的命令行中添加-n来禁止DNS解析,可以大大减少等待的时间。
上面的命令将grepable格式结果存储在指定的文件中。 然后,我们再用一个简单的egrep命令将找到端口80打开的机器:
egrep ‘[^0-9]80/open’ logs/pb-port80scan-%D.gnmap
egrep模式前面带有[^ 0-9],以避免虚假匹配端口(例如3180)。由于我们仅扫描端口80,因此当然不可能发生,但是这在进行多端口扫描时是一种好习惯。 如果只需要IP地址,则使用egrep awk'{print $ 2}’。
5、实例演示
有时,故事是理解决策的最佳方法,在实际例子中我们才能更好的理解如何决定在解决方案中使用哪些命令行。例如,在一家公司里,有大约4096台终端,这些终端上能够使用的应用程序公司有明确的要求,其中有一条“用户终端不得提供web服务”,但面对数量如此庞大的终端数,网络管理员不可能进行普查,即便逐台检查过,你也无法保证之后会不会有人违规。运行web服务器的主机通常会开放TCP 80端口,尽管理论上此类服务器可以侦听任何端口,但可能性最大的还是80端口。因此,我们可以通过找到网络中80端口开放的终端来确定那些违反公司规定的员工。
为了优化扫描的效果,我们先对网络延迟进行了测量,平均延迟60毫秒。考虑平均延迟影响之后,我们使用如下选项:- -max-rtt-timeout 200ms - -initial-rtt-timeout 150ms。然后再使用一个更加积极的时间模版-T4。
由于我们重视最小化整个扫描的完成时间,而不是最小化返回第一批主机结果之前的时间,因此,可以指定了较大的扫描组大小,选项- -min-hostgroup 512设定每次并行扫描512台主机。使用精确的子地址块能够避免出现低效的扫描子块,就像本例中的4096台主机如果用- -min-hostgroup 500,最后就会出现96台主机的扫描子块。
由于一次ping需要花费的时间与单端口扫描本身消耗的时间相同,因此无需在先前的ping阶段浪费时间。 因此,指定了-Pn以禁用该阶段。通过使用-n参数跳过反向DNS解析,可以节省大量时间。否则,在禁用ping扫描的情况下,Nmap会尝试查找所有4096个IP。由于我们是要寻找web服务器,所以将端口设定为80。当然,这样的设置会错过在非标准端口(例如81或8080)上运行的所有HTTP服务器。也不会找到使用443端口的SSL服务器。你也可以把这些端口加到选项-p之后,但是即使是多加一个端口也会让扫描时间翻倍,这大致与扫描的端口数成正比。
最后一个选项是-oG,后跟要存储grepable结果的文件名。Gordon将目标网络添加到命令的最后,然后按下enter键开始扫描。如例6所示:
例6: 开始扫描
Nmap会在大约三分钟内扫描所有4096个IP。 正常输出显示一堆处于过滤状态的端口。这些IP中的大多数可能不是活动主机(端口仅显示为已过滤),因为Nmap没有收到对其SYN探针的响应。我们使用egrep命令,从输出文件中获得web服务器的列表。如例7所示:
例7: egrep命令查询开放80端口的主机
在经过所有努力之后,发现了在4096个IP中有两台主机的80端口开放。上述例子描述的情况可能已经有很多网络管理员遇到过,比起一台主机一台主机的排查,使用端口扫描的效率明显更高。当然,如果出现了极端的用户,例如:故意躲避扫描;修改web服务端口;设置本地防火墙策略等,我们目前使用的办法效果就会大打折扣,不过有这种技术的用户本身在公司里应该就很显眼吧。
6、总结
终端合规性检查这个话题的范围其实挺大,并不仅仅只有应用程序检查这一个方面。本文以检查终端TCP 80端口开放的终端为例,介绍了端口扫描技术在此方面的应用。当然,没有一种技术能够单独解决终端合规性检查的问题,我们还需要综合利用其它手段,扩大检查范围,提高检查效率,减轻网络管理人员的工作负担。
参考文献:
[1]罗华屏.大型企业内网计算机终端安全管理探究[J].产业与科技论坛,2020,19(02):36-38.
[2]Gordon Lyon.Nmap Network Scanning[EB/OL].https://nmap.org/book/toc.html,2011.

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
让 Flutter 在鸿蒙系统上跑起来
前言 鸿蒙系统(HarmonyOS)是华为推出的一款面向未来、面向全场景的分布式操作系统。在传统单设备系统能力的基础上,鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念。自 2020 年 9 月 HarmonyOS 2.0 发布以来,华为加快了鸿蒙系统大规模落地的步伐,预计 2021 年底,鸿蒙系统会覆盖包括手机、平板、智能穿戴、智慧屏、车机在内数亿台终端设备。对移动应用而言,新的系统理念、新的交互形式,也意味着新的机遇。如果能够利用好鸿蒙的开发生态及其特性能力,可以让应用覆盖更多的交互场景和设备类型,从而带来新的增长点。 与面临的机遇相比,适配鸿蒙系统带来的挑战同样巨大。当前手机端,尽管鸿蒙系统仍然支持安卓 APK 安装及运行,但长期来看,华为势必会抛弃 AOSP,逐步发展出自己的生态,这意味着现有安卓应用在鸿蒙设备上将会逐渐变成“二等公民”。然而,如果在 iOS 及 Android 之外再重新开发和维护一套鸿蒙应用,在如今业界越来越注重开发迭代效率的环境下,所带来的开发成本也是难以估量的。因此,通过打造一套合适的跨端框架,以相对低的成本移植应用到鸿蒙平台,并利用好该系统的...
- 下一篇
Bwsaas 多租户 SAAS 平台开发框架 V1.1.2 发布,基于 TP6 的公众号,小程序等终端
bwmall商业版增加门店提货及订单核销,会员升级功能(积分和购买升级); 增加 1增加公众号SSR渲染模式的网页授权 2布网云商城bwmall增加核销订单数量统计 3租户后台应用的顶级节点名称改为自定义应用名,安装sql中新增租户设置默认应用节点,bwmall秒杀商品和拼团商品的添加页面样式修改 4bwmall门店接口 5门店核销接口 6配置页面调整,可单独tab页面提交保存配置数据 7变更bwmall安装文件,增加会员配置 8布网商城会员接口 9增加PHP8初步支持【后续升级easywechat5.X后全面支持】 修复 1修复框架安装SQL 2API.php中header头部信息获取异常捕获 3整理代码完善商业应用,规范开发 4公众号临时素材过期导致无法回复 5bwmall后台会员折扣设置 6修复个人资料头像上传bug,修改布网云商城安装文件 7租户后台颜色配置,fix 相关页面样式 8vendor包全面升级 “ bwsaas多租户多应用多终端SAAS平台快速开发框架 ”接入微信开放平台(第三方服务商),微信公众号管理及微信小程序一键授权发布、具备多租户管理、多应用上架购买、多终端...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7设置SWAP分区,小内存服务器的救世主
- Mario游戏-低调大师作品
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 2048小游戏-低调大师作品
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题