基于Python的漏洞扫描系统的设计与实现.docx
- 文档编号:1147604
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:34
- 大小:960.71KB
基于Python的漏洞扫描系统的设计与实现.docx
《基于Python的漏洞扫描系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Python的漏洞扫描系统的设计与实现.docx(34页珍藏版)》请在冰豆网上搜索。
基于Python的漏洞扫描系统的设计与实现
摘要
随着互联网不断发展、贴近生活,电子化的生活安全依赖着网络安全。
在漏洞泛滥的今天,网络安全状态不容乐观,许多机构都因没有及时处理漏洞导致被恶意入侵,若网络安全保护不当,将会影响现实安全。
中小型网络运维人员常因为外部因素影响难以开展网络安全行动。
为了应对这一问题,本文研究尝试用Python语言尝试做一个集成漏洞扫描系统的设计与实现。
运用以Python为基础的DjangoWeb框架实现快速的业务开发,运用Docker的轻量级虚拟化集成Nmap安全工具为方案验证手段,构建一个B/S架构模式,面向初级运维人员、初级网络安全研究者的低学习成本漏洞扫描系统平台,方便他们的工作需要。
关键词:
Python;Django;Docker;漏洞扫描;系统集成;网络安全;轻量级
Abstract
WiththecontinuousdevelopmentoftheInternetanditsclosenesstolife,thesafetyofelectroniclifedependsonnetworksecurity.Intoday'sfloodofvulnerabilities,thestateofnetworksecurityisnotoptimistic.Manyorganizationshavebeenmaliciouslyinvadedduetofailuretodealwithvulnerabilitiesintime.Ifthenetworksecurityisnotproperlyprotected,itwillaffectactualsecurity.middleandsmallnetworkoperatorsoftenfinditdifficulttocarryoutcybersecurityoperationsduetoexternalfactors.Inordertodealwiththisproblem,thispaperattemptstousePythonprogramminglanguagetotrytodesignandimplementanintegratedvulnerabilityscanningsystem.Djangoisahigh-levelPythonWebframeworktorapiddevelopment,anduseDocker'slightweightvirtualizationintegrationNmapsecuritytoolasameansofprogramverificationtobuildaB/Sarchitecturemodelforjunioroperationsandmaintenancepersonnel,juniornetworksecurityresearchThelowlearningcostvulnerabilityscanningsystemplatformoftheauthorsisconvenientfortheirworkneeds.
Keywords:
Python;Django;Docker;VulnerabilityScanning;SystemIntegration;Cybersecurity;Lightweight
第一章绪论
1.1课题背景和意义
随着互联网高速发展,国内涌现许多互联网企业,这些互联网企业用互联网的相关技术颠覆了许多传统行业,在创造了商业奇迹的同时也改变着人们传统的生活方式,最终我们步入了“互联网时代”。
但是在步入“互联网时代”的同时,我们日常生活与互联网的关系就变得更加复杂,耦合程度更加高,因为网络安全可以影响到现实生活的生命安全、主权安全、国家安全,因此国家出台了《中华人民共和国网络安全法》,和配套相关国家标准,目前最新的标准版本是《信息安全技术网络安全等级保护基本要求》(GB/T22239-2019),俗称“等保2.0”[1]。
为了符合相关法律法规的要求和保护网络设施不受木马病毒的非法入侵,催生了许多检测系统漏洞、弱点的业务需求。
轻量级、简单、易上手、扩展性强的漏洞扫描系统能大大提高运维人员和相关行业工作者自测或者服务的工作效率[2]。
1.2程序漏洞
1.2.1程序漏洞的定义
程序漏洞从狭义上来讲是程序编写者在编写代码的时候因为自身技术水平有限、疏忽大意、完成软件工程周期有限需要加班加点赶制等各种人为因素造成的程序本身缺陷。
而从广义上来讲,程序漏洞的造成除了是上述软件编写者的责任外,还包括设计规划人员、在研发周期内处理技术架构、业务逻辑上的失误造成的业务逻辑漏洞、底层技术框架漏洞等[3]。
1.2.2程序漏洞的特点及分类
软件漏洞的特点是:
“它的个体可以被消灭或者规避,但是他的存在是不可以被消灭。
”一般经验丰富的程序员在程序编写时注意编写方法的使用,来规避常见的漏洞触发条件的产生。
但是尽管如此,上到应用层的Web软件系统,下到硬件层的CPU指令集,依然存在着各种漏洞。
常见的程序漏洞可以分为以下几类:
(1)从层次上可分为:
硬件漏洞、通信协议漏洞、软件漏洞;
(2)从利用位置上可分为:
本地漏洞、远程漏洞;
(3)从原理上可分为:
数据溢出、绕过验证、语法注入、文件包含、业务逻辑设计缺陷;
(4)从危害上可分为:
硬件损害、越权控制、拒绝服务、非法获取数据、软件功能篡改等[4]。
1.3国内外漏洞危害现状
1.3.1国外危害现状
国外著名半导体CPU制造商英特尔(Intel)旗下的产品在2018年被GoogleProjectZero团队挖掘出熔断(meltdown)漏洞、幽灵(spectre)漏洞,英特尔自己的研究团队也公布了一个基于推测执行侧信道攻击的变种漏洞,并命名为预兆(LITE,L1terminalfault),又称foreshadow,其中熔断漏洞几乎涉及了自1995年以来采用该相关技术的英特尔处理器,之后的幽灵漏洞的影响范围甚至是所有现代CPU,包括英特尔、AMD、ARM[5]。
其中部分漏洞更是无法得到完美修复,打上漏洞补丁后会使得CPU计算性能下降。
美国国家安全局(NSA)的黑客武器库被某个黑客集团公布到网上,其中杀伤力巨大的“永恒之蓝(EternalBlue)”漏洞被不法分子利用,制作成了一款名为“Wannacry”的比特币勒索病毒,通过互联网和局域网双重途径极速传播,瞬间该病毒席卷全球,上到各大政府部门机构,下到校园网内的个人电脑,世界各个角落只要有安装了Windows7及以下的操作系统的电脑都有机会被感染。
许多机构不得不支付巨额的赎金解锁文件,直到某位安全研究人员溯源到了病毒服务器的“自爆开关”,最终事件才告一段落。
1.3.2国内危害现状
如同一小节所述,“Wannacry”也不可避免在我国互联网环境内肆虐横行。
包括各大高校局域网、政府机构、工厂工控系统在内,甚至加油站自动操作终端在内的机器,只要开启了SMB相关端口的机器,都被感染上了病毒。
尽管国家互联网应急中心紧急印发了相关的预警文件,各大安全厂商连同客户单位连夜加急排查风险、加固系统,也造成了不少的国民财富损失。
根据国家互联网应急中心的2019年上半年的网络安全态势报告显示:
就涉及民生重要基础设施的方面而言,水电行业中暴露的139个监控管理系统,医疗健康709个数据管理系统,存在高危漏洞隐患的占比是25%和75%,互联网金融网站存在的高危漏洞仅上半年就有92个[6]。
我国互联网行业十分发达,在“人人上云”的时代,一般企业服务提供商架设网站的漏洞隐患更是巨大,“上云时代”的数据安全面临的挑战依然严峻。
1.4主要工作
在漏洞泛滥的今天,互联网安全倍受挑战。
只有合理配置设备,关掉不必要的端口和服务,及时了解最新安全动态,打好漏洞补丁加固系统,才能最大限度的减少因漏洞隐患而造成被黑客非法入侵而造成的不必要损失。
本人在论文中主要的研究工作:
(1)收集最近几年的国内外因漏洞引起的重大安全事件,分析漏洞对系统乃至现实生活的危害,对项目的侧重方向做出一个初步方向指定。
(2)以中小型网络运维人员和网络安全研究爱好者为主,结合国内该行业的变化特点,以“易部署、轻量化、低学习成本、可扩展”为特点尝试设计与开发工作。
设计包含基础的用户模块、日志问题模块和扫描模块。
(3)采用B/S架构,选用Django作为Web框架载体,实现了快捷开发、数据库持久化处理。
(4)结合网络上一些优秀的开源插件,增强项目的功能便利强度和观感。
(5)对项目进行功能测试,确保实现的功能可实行,项目达到预期效果。
1.5章节安排
本文围绕漏洞的危害,说明及时检测并修复的重要性,因而设计与实现出一种基于python的漏洞扫描系统。
文章一共分为五个章节,每个章节的主要内容如下:
第一章首先介绍了漏洞检测的研究背景和意义,程序漏洞的基本概念、程序漏洞的特点和分类,并分析了国内外漏洞危害的情况,最后给出了文章的章节安排。
第二章介绍了实现中使用的一些关键技术,包括Python语言、DjangoWeb框架、Docker技术、Nmap网络扫描器。
第三章介绍了系统的需求分析与设计,包括各个模块的功能、业务流程的设计、关键数据库的设计。
第四章介绍了系统的实现重点细节,包括各个模块(app)功能的具体实现、使用Docker集成Nmap的方法、Docker容器与前台的通信等;
第五章对实现的系统进行测试与验证。
简单介绍了测试环境的要求,包括靶机的搭建和配置,以及执行相关模块的功能验证实现功能的程度。
第六章对本文的研究内容进行总结,在不足的地方尝试提出一些优化方案对今后的研究工作与方向进行了展望。
第二章系统实现使用的技术简介
2.1Python
Python是现在十分流行的解释型脚本语言之一。
其实Python已经在很早就创立了,但是随着近年机器学习、人工智能等技术的创新突破和飞速发展,还有电子化办公的普及,越来越多人使用Python进行编程作业,Python甚至进入了中小学课堂。
所以现在的Python生态异常丰富,加上Python有一个庞大开源库,其中的Hack库更是集合了许多网络安全方面高频率使用、性能优异的代码片段,开发者只需导入即可快速使用,不用重复编写,大大的增加了开发效率,Python底层使用C语言编写,在运行效率和可移植性也有良好保证[7]。
2.2Django
Django是一款优秀的PythonWeb框架。
他采用标准的模型-视图-控制器(MVC)设计模式,内部集成了大量Web开发人员在开发Web系统时高频次使用的功能模块和对象关系映射(ORM),目标是让使用Django的开发人员能用最少时间做出最好的系统。
2.3Docker
Docker是一种较新型的轻量化虚拟引擎,它基于Linux的内核虚拟化技术(LXC),Docker的运行原理可以简单总结为“把应用承载在容器上运行”。
开发人员只需把应用和依赖包一起打包成镜像,之后可以分发到远程仓库上,其他安装了Docker服务的机器很容易就能拉取下来并部署使用。
这种虚拟化是一种轻量级的虚拟化技术,用作隔离进程和资源。
得益于LXC,它相比于常见的基于VMware、Xen、KVM的虚拟化能节省很多硬件资源。
2.4Nmap
Nmap是一款强大的开源计算机网络安全扫描器。
它的功能包括主机探测、端口扫描、服务版本、操作系统版本扫描,能通过构造特定的探针和数据库结合,快速的进行扫描识别,列举指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 漏洞 扫描 系统 设计 实现