基于Python的漏洞扫描系统的设计与实现.docx
《基于Python的漏洞扫描系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Python的漏洞扫描系统的设计与实现.docx(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要随着互联网不断发展、贴近生活,电子化的生活安全依赖着网络安全。在漏洞泛滥的今天,网络安全状态不容乐观,许多机构都因没有及时处理漏洞导致被恶意入侵,若网络安全保护不当,将会影响现实安全。中小型网络运维人员常因为外部因素影响难以开展网络安全行动。为了应对这一问题,本文研究尝试用Python语言尝试做一个集成漏洞扫描系统的设计与实现。运用以Python为基础的Django Web框架实现快速的业务开发,运用Docker的轻量级虚拟化集成Nmap安全工具为方案验证手段,构建一个B/S架构模式,面向初级运维人员、初级网络安全研究者的低学习成本漏洞扫描系统平台,方便他们的工作需要。关键词:Pytho
2、n;Django;Docker;漏洞扫描;系统集成;网络安全;轻量级Abstract With the continuous development of the Internet and its closeness to life, the safety of electronic life depends on network security. In todays flood of vulnerabilities, the state of network security is not optimistic. Many organizations have been malicious
3、ly invaded due to failure to deal with vulnerabilities in time. If the network security is not properly protected, it will affect actual security. middle and small network operators often find it difficult to carry out cybersecurity operations due to external factors. In order to deal with this prob
4、lem, this paper attempts to use Python programming language to try to design and implement an integrated vulnerability scanning system. Django is a high-level Python Web framework to rapid development, and use Dockers lightweight virtualization integration Nmap security tool as a means of program ve
5、rification to build a B / S architecture model for junior operations and maintenance personnel, junior network security research The low learning cost vulnerability scanning system platform of the authors is convenient for their work needs.Key words: Python;Django;Docker;Vulnerability Scanning;Syste
6、m Integration;Cybersecurity;Lightweight目 录第一章 绪论11.1 课题背景和意义11.2 程序漏洞11.2.1程序漏洞的定义11.2.2程序漏洞的特点及分类11.3 国内外漏洞危害现状21.3.1 国外危害现状21.3.2 国内危害现状21.4 主要工作31.5 章节安排3第二章 系统实现使用的技术简介52.1 Python52.2 Django52.3 Docker52.4 Nmap52.5 本章小结6第三章 系统的分析与设计73.1 需求分析73.2 系统设计73.2.1 系统总体概述73.3.2 系统逻辑架构83.3 系统功能模块设计93.3.1
7、用户认证模块93.3.2 用户信息管理模块103.3.3 漏洞扫描模块113.3.4 日志文章模块113.3.5 权限管理模块123.4 数据库设计123.4.1 数据表字段123.4.2 数据表与系统的关系123.5 版本使用143.6 本章小结15第四章 系统的具体实现164.1系统开发环境164.2 Django框架初始配置164.3 通用视图174.4 用户认证模块184.5 用户信息管理模块214.6 漏洞扫描模块234.7 日志文章模块254.8 权限管理模块294.9 本章小结29第五章 系统测试305.1 测试环境305.2 测试环境搭建305.3 测试内容和结果315.3.1
8、 用户认证模块测试315.3.2 用户信息管理模块测试315.3.3 漏洞扫描模块测试325.3.4 日志文章模块测试325.3.5 权限管理模块测试335.4 本章小结33第六章 总结与展望346.1 工作总结346.2 展望34参 考 文 献36致 谢37广东东软学院本科生毕业设计(论文)第一章 绪论1.1 课题背景和意义随着互联网高速发展,国内涌现许多互联网企业,这些互联网企业用互联网的相关技术颠覆了许多传统行业,在创造了商业奇迹的同时也改变着人们传统的生活方式,最终我们步入了“互联网时代”。但是在步入“互联网时代”的同时,我们日常生活与互联网的关系就变得更加复杂,耦合程度更加高,因为网
9、络安全可以影响到现实生活的生命安全、主权安全、国家安全,因此国家出台了中华人民共和国网络安全法,和配套相关国家标准,目前最新的标准版本是信息安全技术网络安全等级保护基本要求(GB/T 22239-2019),俗称“等保2.0” 1。为了符合相关法律法规的要求和保护网络设施不受木马病毒的非法入侵,催生了许多检测系统漏洞、弱点的业务需求。轻量级、简单、易上手、扩展性强的漏洞扫描系统能大大提高运维人员和相关行业工作者自测或者服务的工作效率2。1.2 程序漏洞1.2.1 程序漏洞的定义程序漏洞从狭义上来讲是程序编写者在编写代码的时候因为自身技术水平有限、疏忽大意、完成软件工程周期有限需要加班加点赶制等
10、各种人为因素造成的程序本身缺陷。而从广义上来讲,程序漏洞的造成除了是上述软件编写者的责任外,还包括设计规划人员、在研发周期内处理技术架构、业务逻辑上的失误造成的业务逻辑漏洞、底层技术框架漏洞等3。1.2.2 程序漏洞的特点及分类软件漏洞的特点是:“它的个体可以被消灭或者规避,但是他的存在是不可以被消灭。”一般经验丰富的程序员在程序编写时注意编写方法的使用,来规避常见的漏洞触发条件的产生。但是尽管如此,上到应用层的Web软件系统,下到硬件层的CPU指令集,依然存在着各种漏洞。常见的程序漏洞可以分为以下几类:(1)从层次上可分为:硬件漏洞、通信协议漏洞、软件漏洞;(2)从利用位置上可分为:本地漏洞
11、、远程漏洞;(3)从原理上可分为:数据溢出、绕过验证、语法注入、文件包含、业务逻辑设计缺陷;(4)从危害上可分为:硬件损害、越权控制、拒绝服务、非法获取数据、软件功能篡改等4。1.3 国内外漏洞危害现状1.3.1 国外危害现状国外著名半导体CPU制造商英特尔(Intel)旗下的产品在2018年被Google Project Zero团队挖掘出熔断(meltdown)漏洞、幽灵(spectre)漏洞,英特尔自己的研究团队也公布了一个基于推测执行侧信道攻击的变种漏洞,并命名为预兆(LITE,L1 terminal fault),又称 foreshadow,其中熔断漏洞几乎涉及了自1995年以来采用
12、该相关技术的英特尔处理器,之后的幽灵漏洞的影响范围甚至是所有现代CPU,包括英特尔、AMD、ARM5。其中部分漏洞更是无法得到完美修复,打上漏洞补丁后会使得CPU计算性能下降。美国国家安全局(NSA)的黑客武器库被某个黑客集团公布到网上,其中杀伤力巨大的“永恒之蓝(EternalBlue)”漏洞被不法分子利用,制作成了一款名为“Wannacry”的比特币勒索病毒,通过互联网和局域网双重途径极速传播,瞬间该病毒席卷全球,上到各大政府部门机构,下到校园网内的个人电脑,世界各个角落只要有安装了Windows 7及以下的操作系统的电脑都有机会被感染。许多机构不得不支付巨额的赎金解锁文件,直到某位安全研
13、究人员溯源到了病毒服务器的“自爆开关”,最终事件才告一段落。1.3.2 国内危害现状如同一小节所述,“Wannacry”也不可避免在我国互联网环境内肆虐横行。包括各大高校局域网、政府机构、工厂工控系统在内,甚至加油站自动操作终端在内的机器,只要开启了SMB相关端口的机器,都被感染上了病毒。尽管国家互联网应急中心紧急印发了相关的预警文件,各大安全厂商连同客户单位连夜加急排查风险、加固系统,也造成了不少的国民财富损失。根据国家互联网应急中心的2019年上半年的网络安全态势报告显示:就涉及民生重要基础设施的方面而言,水电行业中暴露的139个监控管理系统,医疗健康709个数据管理系统,存在高危漏洞隐患
14、的占比是25%和75%,互联网金融网站存在的高危漏洞仅上半年就有92个 6。我国互联网行业十分发达,在“人人上云”的时代,一般企业服务提供商架设网站的漏洞隐患更是巨大,“上云时代”的数据安全面临的挑战依然严峻。1.4 主要工作在漏洞泛滥的今天,互联网安全倍受挑战。只有合理配置设备,关掉不必要的端口和服务,及时了解最新安全动态,打好漏洞补丁加固系统,才能最大限度的减少因漏洞隐患而造成被黑客非法入侵而造成的不必要损失。本人在论文中主要的研究工作:(1) 收集最近几年的国内外因漏洞引起的重大安全事件,分析漏洞对系统乃至现实生活的危害,对项目的侧重方向做出一个初步方向指定。(2) 以中小型网络运维人员
15、和网络安全研究爱好者为主,结合国内该行业的变化特点,以“易部署、轻量化、低学习成本、可扩展”为特点尝试设计与开发工作。设计包含基础的用户模块、日志问题模块和扫描模块。(3) 采用B/S架构,选用Django作为Web框架载体,实现了快捷开发、数据库持久化处理。(4) 结合网络上一些优秀的开源插件,增强项目的功能便利强度和观感。(5) 对项目进行功能测试,确保实现的功能可实行,项目达到预期效果。1.5 章节安排本文围绕漏洞的危害,说明及时检测并修复的重要性,因而设计与实现出一种基于python的漏洞扫描系统。文章一共分为五个章节,每个章节的主要内容如下:第一章首先介绍了漏洞检测的研究背景和意义,
16、程序漏洞的基本概念、程序漏洞的特点和分类,并分析了国内外漏洞危害的情况,最后给出了文章的章节安排。第二章介绍了实现中使用的一些关键技术,包括Python语言、Django Web框架、Docker技术、Nmap网络扫描器。第三章介绍了系统的需求分析与设计,包括各个模块的功能、业务流程的设计、关键数据库的设计。第四章介绍了系统的实现重点细节,包括各个模块(app)功能的具体实现、使用Docker集成Nmap的方法、Docker容器与前台的通信等;第五章对实现的系统进行测试与验证。简单介绍了测试环境的要求,包括靶机的搭建和配置,以及执行相关模块的功能验证实现功能的程度。第六章对本文的研究内容进行总
17、结,在不足的地方尝试提出一些优化方案对今后的研究工作与方向进行了展望。4第二章 系统实现使用的技术简介2.1 PythonPython是现在十分流行的解释型脚本语言之一。其实Python已经在很早就创立了,但是随着近年机器学习、人工智能等技术的创新突破和飞速发展,还有电子化办公的普及,越来越多人使用Python进行编程作业,Python甚至进入了中小学课堂。所以现在的Python生态异常丰富,加上Python有一个庞大开源库,其中的Hack库更是集合了许多网络安全方面高频率使用、性能优异的代码片段,开发者只需导入即可快速使用,不用重复编写,大大的增加了开发效率,Python底层使用C语言编写,
18、在运行效率和可移植性也有良好保证7。2.2 DjangoDjango是一款优秀的Python Web框架。他采用标准的模型视图控制器(MVC)设计模式,内部集成了大量Web开发人员在开发Web系统时高频次使用的功能模块和对象关系映射(ORM),目标是让使用Django的开发人员能用最少时间做出最好的系统。2.3 DockerDocker是一种较新型的轻量化虚拟引擎,它基于Linux的内核虚拟化技术(LXC),Docker的运行原理可以简单总结为“把应用承载在容器上运行”。开发人员只需把应用和依赖包一起打包成镜像,之后可以分发到远程仓库上,其他安装了Docker服务的机器很容易就能拉取下来并部署
19、使用。这种虚拟化是一种轻量级的虚拟化技术,用作隔离进程和资源。得益于LXC,它相比于常见的基于VMware、Xen、KVM的虚拟化能节省很多硬件资源。 2.4 NmapNmap是一款强大的开源计算机网络安全扫描器。它的功能包括主机探测、端口扫描、服务版本、操作系统版本扫描,能通过构造特定的探针和数据库结合,快速的进行扫描识别,列举指定网络主机存活情况,检测其中运行的服务端口,甚至拥有一定隐蔽特性来尝试躲避防火墙的审计,借此还能用于检测防火墙规则配置的有效性8。2.5 本章小结本章对系统中所涉及的几项重要技术进行了简要概述,包括Python、Django、Docker、Nmap,进而为下文的基于
20、Python的漏洞扫描系统的设计与实现研究做了铺垫。38第三章 系统的分析与设计3.1 需求分析本系统的目标用户是初级运维人员以及网络安全入门研究者。作为一个中小型网络运维人员的工作环境,网络规模较小,维护经费主要花费在硬件的购置、易耗件的补充上,加上国内网络安全观念的缺失,领导给他们配发的首要任务是保证网络能正常访问,网络安全并不在首位。所以并没有太多的经费花费在购置新型安全防护的硬件设备、大型知名安全公司的网络审查平台,但是在利用漏洞弱点进行网络攻击门槛甚低的今天,完全忽略安全问题并不现实,现实强迫运维人员只能手动或者半自动地使用一些网络上流行的、免费的、开源的安全检测软件。而这些软件基本
21、都依赖一定的环境(如Python2.7、某个Linux发行版)和一定的安全知识基础。即他们需要一款集合一下特点的漏洞扫描系统:(1) 学习成本低:不需要填入太多的复杂参数指令,简单几个参数即可运行;(2) 界面友好:支持图形界面,简单交互即可执行;(3) 轻量级:系统占用资源少,没有太多需要掌握高级开发、安全技术才能开发、使用的特性;(4) 易部署:不需要手动编译、安装,最好能一个批处理或者一个命令行指令,即可部署;(5) 可扩展:能跟着运维人员技术的提高,能逐步加入适应个体网络需求的功能。3.2 系统设计3.2.1 系统总体概述系统总体设计按照软件工程的典范设计MVC模式。这样的很大程度降低
22、系统整体的耦合程度。把前后端进行分离开发,后端采用了Django轻量级的Web框架,它完全遵从MVC设计模式(在Django中进行了优化并命名为“MTV”)9,集成了对象关系映射,把业务逻辑层中有关数据代码解离出来,成为一个独立的持久化层,实现了对象模型和关系数据模型之间的映射关系,开发人员在编码过程可以直接进行面向对象编程,而不需要嵌套SQL语句在代码中10。在数据库方面,本文选用了国内环境比较流行的MySQL进行存储。得益于Django框架的灵活便利,即便因为其他原因不能使用MySQL进行部署,需要更换为PostgreSQL等其他数据库,只需要在Django相关配置下更改数据库连接配置,并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 漏洞 扫描 系统 设计 实现
限制150内