当前位置:首页 期刊杂志

一种内网Web应用URL地址自动化检测方法

时间:2024-05-04

朱犇,陈梦娴,孙望舒,戴文博

(国网浙江省电力有限公司温州供电公司,浙江温州 32500)

1 引言

2017年5月12日,WannaCry勒索病毒事件全球爆发,利用了微软公司Windows操作系统的SMB服务漏洞(MS17-010)进行传播感染,两天时间,约2242.3万个IP地址遭受“永恒之蓝”漏洞攻击。2017年12月15日, Oracle WebLogic存在CVE-2017-3506/CVE-2017-10352漏洞,被挖矿程序Watch-smartd所利用。2018年2月28日,知名代码托管网站 GitHub 遭遇了史上最大规模的 DDoS 网络攻击,每秒 1.35 TB 的流量瞬间冲击了这一开发者平台,攻击者利用了基于 Memcached 的超放大攻击。以上所有的这些安全事件受影响的设备基本都是暴露在互联网上的,因此掌握企业资产在全互联网中的暴露情况非常值得关注。

近年来互联网大发展,正逐渐改变企业办公、系统运维的工作方式,同时推动了生产系统的更新换代和生产方式的变革。因企业业务需要I T 业务系统越建越多,资产暴露面越来越大,给别有用心者更多可乘之机,甚至导致灾难性的破坏。

企业信息化工作经过数年发展,业务系统、互联网业务、手机应用已经得到了推广,但随着业务发展系统建设仍在不停发展,未经报备私搭私建的情况仍然存在。这些业务系统未经上线安全评估,存在极大的安全风险。主要表现在两个方面,一是多数应用使用未经安全检测的第三方应用,二是系统开发人员安全意识薄弱,业务安全漏洞层出不穷。

对于日常安全管理来说,基于上述情况,主要要求业务部门做上线前安全评估,通过系统安全检测挖掘安全风险,检测通过方可上线运行,同时发布上线前安全管理办法,从管理维度进行约束。虽然从技术和管理都进行了相应的要求,但仍然无法杜绝私自上线业务系统,破坏安全的行为,给企业安全管理造成不小影响。

综上所述,不管从业务自身安全考虑,还是从企业安全整体考虑。通过建设自动化监测Web应用URL地址工具,来监控网络内私自上线业务系统的行为,势在必行。

图1 勒索病毒

2 资产暴露成因

2.1 监管难度大

现阶段上线前安全评估流程在各大企业是力推的工作,但是一项流程如果通过制度推进,因涉及多个部门等因素通过制度很难推进。如果流程通过线上平台控制,不仅可以减少运营跟进的人工成本,还能使推进工作更加顺畅。资产变更工作,安全部与业务部门对接较多,如图1所示,通过建立资产发现平台与需求申请平台、开发管理平台等对接,可以最大限度地减少沟通成本,提升推进效率。

2.2 安全意识及KPI考核目标不一致

很多业务系统由于用户较多,需求较大,开发团队有时候一周要对一个系统进行多次修改,如果每次修改都需要多个部门介入评审或评估,工作效率极地。同时,大部分企业对信息安全意识宣贯力度不够,开发部门KPI更多的在于业务连续性、功能使用等方面,因此为了便捷及KPI会抛弃安全性。

图2 业务部门分布

2.2 资产风险分析

资产风险主要来源主要包括三个方面:一是未经上线的业务系统(Web系统为主);二是未经加固直接上线的;三是由于后期运维为了便捷而开启的运维端口;四是由于业务需要但未经过评估私自开启的系统互联接口。

Web系统方面主要风险为XSS漏洞、SQL注入漏洞、越权访问、旁注、任意文件上传等高危应用层漏洞。轻则系统遭受非法攻击,重则数据泄露、主机权限丢失等。

未经加固的主机及运维端口开启风险包括:开启不必要的服务、高危端口、弱口令等。可能面临攻击包括拒绝服务攻击、内存溢出、提权等高危风险。

系统互联接口包括系统服务接口、W e b 接口、数据库接口、运维端口等。风险包括账号越权、弱口令、主机提取等。

图3 Web2.0安全研究报告

3 资产暴露风险防范措施

3.1 安全编码规范培训

安全部门提供安全编码规范,开发团队在开发过程中需要上按照编码规范要求。在开发阶段减少安全隐患。规范需要涵盖账号与认证、输入与输出验证、授权管理、数据保护、会话管理、加密管理、日志管理、异常管理等方面,从业务逻辑建议、代码编写建议、管理规范建议等方面提出安全需求。定期对开发部门进行安全编码培训,讲解常见应用漏洞产生原理,提升开发人员安全编码意识和安全开发水平。

3.2 规范上线前安全流程

新上线系统、修改后的系统上线前,需要经过安全部门检测(包括渗透测试、漏洞扫描、代码设计等评估),对发现高危漏洞的系统,修复后复测,保证没有安全隐患后才允许上线。

3.3 日常安全检测

对正在运行的线上系统,每日由渗透测试团队进行安全检测,包括Web漏洞扫描和人工渗透测试等措施,漏洞扫描使用多款扫描器交叉扫描,人工渗透根据制定的漏洞清单Checklist检测,根据检测结果,建立知识库,统计出一般扫描器能检测哪些漏洞,哪些漏洞扫描器不好发现,如逻辑漏洞、越权漏洞等,只能通过人工渗透方式检测,保证检测的广度和深度,提高检测效率。

3.3 资产整合

(1)测试使用的应用,迁移到内网,不在互联网暴露。

(2) 对访问量较少的应用,建议关闭,访问量数据可以从WAF、防火墙等设备上获取。

(3)部分网站启用了HTTPS后,HTTP网站可以继续访问,建议关闭HTTP网站的访问。

(4) 业务系统有关联或者相似的,通过一个U R L 访问主站,其他业务系统通过二级目录访问。

3.4 建立自动化检测工具,探测未报备资产私自上线

(1)通过自动化扫描全网存活IP、端口等信息,自动化识别U R L 地址,并判断U R L 是否有效,通过指纹特征库识别URL归属。

(2)建立指纹特征库,自动化识别已备案和未备案业务系统,系统应建立指纹算法,根据不同U R L 信息通过算法算出指纹与后台指纹库进行对比,输出结果。

(3)自动化扫描全网IP存活情况、端口开放情况,系统根据用户输入I P 资产信息,允许定期、不定期自动化扫描I P 存活情况,自动化分析开放端口情况。

自动化检测是本文研究重点,通过实时探测分析,可及时发现风险源。

4 Web应用URL地址自动化检测方法

4.1 实现流程

自动化检测最重要的工作是自动化检测资产存活情况,存活情况包括IP存活情况、端口开放情况、系统服务开启情况等。结合业务上线规律,工具应具备几点能力:定时自动扫描能力;自动化收集扫描结果能力;应具备历史经验库收集、白名单、黑名单等能力;应能根据经验库,黑白名单自动判别的能力。

图4 自动化检测流程

4.2 自动化扫描能力

第一种方式:使用Shell脚本检测某个网段内存活的主机,主要原理是使用循环Ping该网段内的每一个地址,根据执行是否成功输出主机是否存活。

第二种方式:使用专业的网络工具Nmap、IPscan等。

4.3 定时扫描能力

应允许用户自定义扫描频率、扫描内容及资产自定义等能力。

4.4 URL自动化识别能力

当工具检测到目标主机开启端口时,工具应自动化判别目标端口是否为Web端口,并对其网站的存活判断,如果目标站点可用,应对其进行自动化识别。识别依据来源历史经验库和黑白名单库,如果识别成功,进行标注,如果识别失败交由人工判断。

4.5 历史经验库及黑白名单

Web资产众多及开发迭代较快,安全部门管理需求包括:一是通过工具识别存量业务;二是通过工具识别新增业务及未报备的业务。基于安全部门需求分析,工具应具备:记录历史Web资产信息的能力;具备记录业务黑白名单的能力。

4.6 自动分析、判别

当工具完成自动化扫描之后,应根据扫描策略完成扫描结果归集,根据分析策略进行及时分析,并根据历史库、黑白名单信息完成结果的梳理。针对分析误报的情况,工具应提供手工修正的能力。

4.7 工具架构

工具采用Java语言开发,采用了B/S架构的模式(表示层-业务层-数据访问层-数据层)四层结构。将各种业务处理、一系列逻辑判断及各种运算置于业务层,将各种复杂的查询、与数据库的交互置于数据访问层,明确各层的业务规则及界限,工具结构图如5所示。

图5 自动化工具架构图

(1)表示层:采用Bootstrap来展示前端数据,jQuery负责处理异常请求及前端业务逻辑判断。

(2)业务层:采用SpringMVC框架实现本系统业务逻辑处理及数据层调度。

(3)数据访问层:主要采用Mybatis框架实现数据交互,包括业务的增、删、改、查、视图查询等。

(4)数据层:以MySQL数据库为承载,存储改系统的所有补丁及经验库。

安全防护层:系统中主要集成了Esapi安全框架负责常见的安全漏洞防护。

6 结束语

Web应用URL地址自动化检测可以有效的监控内网随意开启Web服务的情况,可以有效弥补监管难度大的问题,有助于安全部分开展日常安全工作及降低公司整体安全风险。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!