标题 | 基于Python的网络空间安全扫描系统的设计与实现 |
范文 | 周耀鹏 王晖 陈嘉伦
摘要:本文设计了一种针对企业网络空间安全需求的扫描平台。首先介绍了常见的网络系统安全问题,然后介绍了系统的主要功能,通过7x24小时主动扫描实时分析资产信息,查看端口开放情况、banner等,使得企业网管安全人员能够通过平台快速了解安全情况。实现通过网络扫描的方式来提高对计算机系统的安全防护,是一款适用于局域网的漏洞快速应急、漏洞拦截,SQL注入漏洞扫描,同时对搜索结果进行快速漏洞检测并输出信息报表。平台主体分为端口扫描、SQL注入漏洞扫描、漏洞拦截三部分,端口扫描器采用Python语言开发。最后通过SQLMAP介绍和相关借口列表展示了部分核心代码,并给出了系统成效与后续完善方向。 关键词:网络安全;漏洞扫描;SQL注入测试;SQLMAP 中图分类号: TP311 ? ? ? ?文献标识码:A 文章编号:1009-3044(2020)31-0059-03 Abstract:This paper has designed a scanning platform that addresses the security needs of corporate cyberspace. First introduced the common network system security issues, then introduced the main functions of the system, through 7x24 hours active scanning real-time analysis of asset information, view port opening, banner, etc., so that enterprise network security personnel can quickly understand the security situation through the platform. It realizes the security protection of the computer system through network scanning. It is a rapid emergency response, vulnerability interception, and SQL injection vulnerability scanning for local area network. It also performs rapid vulnerability detection on the search results and outputs information reports. The main body of the platform is divided into three parts: port scanning, SQL injection vulnerability scanning, and vulnerability interception. The port scanner is developed in Python. Finally, part of the core code was displayed through the introduction of SQLMAP and the list of related excuses, and the system effectiveness and subsequent improvement directions were given. Key words: Network security;Vulnerability scanning; SQL injection testing; SQLMAP 在信息化时代计算机网络已全面深层融入社会生活的方方面面,网络安全威胁渗透至各个层面,人们对网络安全的重视程度也在不断提高,然而市面上针对企业内部扫描平台少之又少。[6] 1常见网络系统安全问题 我们根据日志分析对每次黑客攻击事件进行追溯后,往往发现基本是系统、Web、弱口令、配置这四个方面中的其中一个出现的安全问题导致黑客可轻松入侵。原因大致如下: 1)操作系统的版本落后、没及时更新系统补丁,导致安全问题暴露; 2)Web 问题因使用公有代码,代码编写不合规导致的安全问题; 3)系统配置不遵循流程规范导致严重泄露了各类隐私数据。 1.1 系统漏洞 系统漏洞问题导致的安全问题有两种起因:第一种属于未知的,被黑客最新发现的安全漏洞。第二种属于安全漏洞已经被软件厂商进行公布并进行了修复,但漏洞一直存在,并被黑客发现后利用后,窃取重要数据并发生安全事件。 1.2 Web 漏洞 Web 漏洞的范围比较广,主要涉及代码、中间件软件、数据库等软件搭建的网站环境。代码问题主要涉及公有代码和代码编写不规范。中间软件主要是 Apache、Tomcat这类软件。数据库的问题主要是黑客使用 SQL 语句让数据库报错,从而发现安全漏洞。 1.3 弱口令 原因在于几乎所有设备在出厂时,往往默认密码都十分简单或是账户和密码相同。简单的密码使得黑客破解的时间缩短,破解简单。 2系统原理及特点 鉴于上述网络安全问题,我们设想可设计实现一种网络安全掃描系统。从设计原理来讲系统可划分为漏洞扫描器和端口扫描器。扫描后实施拦截,端口与进程一一对应,通过端口扫描器同时监听等待连接的进程,由此可以判断目标服务器有哪些通行进程正在等待连接。系统实现特点如下: 1)用户可基于云端,实时查看网络空间信息,并可以生成可视化图表; 核心交互函数 @get("/option/ @post("/option/ @post("/option/ @post("/scan/ @get("/scan/ @get("/scan/ @get("/scan/ @get("/scan/ @get("/scan/ @get("/download/ sqlmapapi具体的接口用法从源码中的注释中摘录了出来,这些接口方法都在sqlmap/lib/utils/api.py文件中可以查阅,如有兴趣可详细翻阅。 开启 sqlmapapi,我们使用-s(server)参数让sqlmapapi以服务端模式运行。这里我们只使用-s参数,可以发现sqlmapapi默认运行在8775端口,后端使用的bottle框架,bottle是一个python web快速开发框架。Admin ID是用来管理task所用的token值,每次重启sqlmapapi应用都会改变,也可以通过修改其源码的方式将其唯一,或是写入本地文件供第三方程序读取。 4.3 基本用法 这些api的使用方法相对比较简单,注意其中有几个api是post的方法。调用过程大致如下: 1)创建新任务 使用@get("/task/news")接口方法创建一个新的漏扫任务。返回信息中的taskid就是之前创建的漏扫任务的id,是我们后面需要用的id。 2)指定参数 使用@post("/options/ 3)开始扫描 使用@post("/scan/ 4)轮询扫描是否结束 使用@get("/scan/ 5)如果结束则获取结果 使用@get("/scan/ {u'data': [], u'success': True, u'error': []} 5系统成效与后续完善 系统实现了漏洞发现、端口扫描、web安全、SQL注入等实验。实现了nginx负载均衡、多線程并发。针对测试数据进行数据清洗、数据分析,实现后端代码,并测试平台稳定性、安全性。可运用到实际环境中,编写相关使用说明书等,已达到预期效果。 在这次系统设计实现过程后,针对扫描规则将完善常规漏洞检测规则与业务逻辑漏洞模式;针对扫描误报率将发现漏洞进行二次验证,如:awvs+sqlmap验证SQL注入漏洞;针对造成脏数据将使用扫描器时过滤POST提交参数请求;针对造成服务不可用将合理选择扫描策略,避开业务高峰期扫描。 参考文献: [1] 邢立国,刘玉坤.网络安全机制研究与Python实现[J].科学与信息化,2018(27):57-58. [2] 张鑫,张婷,段新东,林玉香.Web应用SQL注入漏洞检测工具的设计与实现[J].信息安全与技术,2014,5(8):45-47,57. [3] 易永红.计算机网络安全中的漏洞扫描技术运用[J].电子技术与软件工程,2017(7):217. [4] 叶磊,文涛,刘立亮,等.基于python的网络及信息系统安全过程管理工具[J].数字技术与应用,2017(10):187-188. [5] 刘健,曹耀钦.网络隐蔽扫描技术研究[J].计算机工程与设计,2004,25(2):239-242,270. [6] 徐贵江,黄媛媛,陈子豪,等.基于Python的Web漏洞扫描器[J].软件工程,2020,23(4):19-21,11. 【通联编辑:唐一东】 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。