Windows操作系统安全配置缺陷自动检测技术

一,绪论与背景

1.1,绪论

近年来,随着人类社会的进步和信息技术的发展,人类在能源、环境、交通、居住、安全等领域都面临着严峻的挑战,迫使人们不得不利用大数据、物联网等互联网技术实现更加高效、智能的资源利用和调配模式。
在大数据成为国家战略的今天,企业的组织、生产和经营活动都以数据为基础开展和优化,不仅是信息类产品和服务,在交通、能源电力、市政管理、金融、环境保护、教育、医疗、安防反恐等领域,对互联网的依赖也越来越强。随之而来的数据被泄漏、篡改,网络攻击等问题也越来越严重。
网络安全问题,关乎百姓生活与社会稳定。从大处看,会影响能源、交通等基础设施的正常运行,影响金融、教育、医疗等各行业的秩序,甚至影响地缘政治的稳定;往小处看,每个人的隐私、企业的商业机密泄漏都会带来各种各样的社会问题。
而作为网络空间安全学院学生的我们,也在不断的了解和学习有关安全的知识,这一次的信息安全课程设计,我们选择了题目二——“Windows或Linux操作系统安全配置自动检测技术”。而Windows作为全球应用范围最广,知名度最高的操作系统,在有着强大功能的同时,也隐藏着不少漏洞。安全软件公司 BeyondTrust 近日发布了一份《2021 年度微软漏洞报告》,在 2020 年在微软产品中共发现了 1268 个漏洞,创历史新高,其中 Windows 产品的漏洞达 907 个,且有 132 个为关键性漏洞。更加严重的是,很多Windows用户并没有很强的安全意识,他们对自己的电脑了解不深,对电脑的安全配置也没有一个很好的布置。在互联网技术高度发达、人们的财产和隐私与电脑和网络高度连结的今天,维护互联网、电脑系统的任务迫在眉睫。

1.1.1,项目概述与背景

Windows 系统的“漏洞”就像它的GUI(图形界面)一样“举世闻名”,几乎每个星期都有新的漏洞被发现。这些漏洞常被计算机病毒和黑客们用来非法入侵计算机,进行大肆破坏。虽然微软会及时发布修补程序,但是发布时间是随机的,而且这些漏洞会因Windows软件版本的不同而发生变化,这就使得完全修补所有漏洞成为头号难题。

1.1.2,定义与术语

  • 弱口令:
    没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。

  • Windows power shell :
    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。

  • Telnet :
    Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

  • SSH :
    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

  • KB:
    KB是微软对补丁的命名方式,是Knowledge Base(知识库)的简称。
    其指的是某个补丁对应微软知识库中哪一篇文章。例如KB888111,就是对应 知识库中888111号文章。

  • POC
    POC,Proof of Concept,中文意思是“观点证明”。这个短语会在漏洞 报告中使用,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得 读者能够确认这个漏洞是真实存在的。

  • EXP
    EXP,Exploit,中文意思是“漏洞利用”。意思是一段对漏洞如何利用 的详细说明或者一个演示的漏洞攻击代码,可以使得读者完全了解漏洞的机 理以及利用的方法。

  • CVE漏洞编号
    CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露,例如CVE-2015-0057、CVE-1999-0001等等。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。

二,需求分析

2.1,系统设计概述

本系统是对Windows操作系统安全配置等进行全面扫描,从六个方面排查本机操作系统可能出现的风险与问题,并基于一套详尽的评分体系可以给出各项的评分结果以及总评。

2.1.1,需求分析

操作系统本身设计的安全性可能比较高,但可能由于使用和配置的不当,造成操作系统实际的安全性能降低。通过操作系统安全评估,发现主机和网络设备的漏洞和安全隐患。通过实验,使学生认识操作系统安全评估与检测的重要性,掌握操作系统安全评估与检测的内容和方法。

2.1.2,概要设计

最开始我们通过查询各种,得知了一个判断漏洞的方法,根据版本号和补丁与最新版本的对比,但是这样的对比只能证明这是一个潜在的漏洞,也就是说系统有潜在的不安全因素,但不能说系统一定不安全。如果还需要进一步的判断系统是否存在该问题,最好还是设计一个脚本攻击一下。但是我们最终版本,只是设计出来检测潜在的不安全因素,并没有具体的去攻击证明漏洞的存在。我们从以下几个方面进行分析,然后给出一个较为全面的判断。
在这里插入图片描述
该安全检测程序主要从图示几个方面进行权衡打分。分别是安全日志、弱口令、网络配置、版本系统日志、本地安全检测、端口扫描。

  • 弱口令:
    从本地安全策略和爆破尝试出发,进一步检查口令强度。这里的弱口令从两个方面出发,一个是管理员口令,和windows登录时的口令。
  • 端口扫描:
    通过系统cmd指令查询开放的端口号和系统进程的检测,把二者形成的表通过PID匹配,形成一个完整的信息表,再通过已有资料判断是否有高危端口被打开,和一些建议关闭非必须打开的端口被打开了来评判。扫描的信息还获取了本地地址和外部地址,以及端口所在状态,可以利于人工进一步分析。
  • 本地安全检测:
    通过调用power shell查询计算机自身状态,和查找windows本地安全策略,通过windows 10专业版自带的系统文件进行一个全面的评价打分,最后查询防火墙状态。
  • 版本系统自查:
    通过查询windows版本号和对应的补丁,判断系统是否已经达到现版本的最 佳状态。
  • 网络配置:
    查找配置文件中是否有非必须开启的服务。
  • 安全日志:
    调取系统安全日志,对安全日志进行分析,判断有无危害系统安全的行为。

2.2,功能设计

在这里插入图片描述
此软件的功能为对计算机的系统安全进行全方面的扫描,共分为六个部分,生成六分小报告,并最终生成一份总体的报告,每一份报告中都会对该项进行打分,满分为一百分。

2.3,功能需求

在这里插入图片描述

三,详细设计

3.1,系统结构设计

在这里插入图片描述
通过六个部分打分评测,并且各自生成一份具体的报告,然后最后再合成一份整体的报告,对系统进行全面的评测。

3.2,模块设计

3.2.1,弱口令检测

本课题中,针对操作系统弱口令的检测,我们从两个方面开展。
一方面,我们通过读取操作系统本地安全策略中对密码的设置、要求来评判。在windows10的操作系统中,可以设置“密码必须符合复杂性要求”,进一步可以规定具体的密码长度,密码由几种字符组成,密码的最短、最长使用期限等。设置复杂性强的密码且养成更换密码的习惯,可以防范密码泄露、社会工程学等隐患。此外,安全策略中还有账户锁定策略,防止恶意脚本攻击或设备被盗取造成个人信息泄露。
有的时候,设备需要面临多用户使用。设置科学的密码策略,有助于提高全体用户的密码鲁棒性,保障整个系统的安全运转。
在这里插入图片描述
另一方面,我们采用不同角度的实践操作来检验弱口令。
针对弱口令检测的工具有很多,我们选用了Ophcrack、Hydra两个工具分别检测。
Ophcrack有独特的彩虹表结构,找到存储对应哈希值的文件,导入软件,可以进行查找和破解;在Hydra的操作中,在kali的Hydra支持下,我们选用了大小为2万的密码本再次进行了检测,依然未能成功。
在这里插入图片描述

随后,我们使用Python编写脚本,直接向cmd发送指令尝试,发现在用户锁定策略的限制下,无法进行有效的尝试就会被账户锁,且账户锁定期间手动也无法获取管理员权限。
因此,在多次尝试弱口令爆破失败之后,我们采用获取本地安全策略的方式,通过允许最小密码长度,密码复杂度等多维度来衡量弱口令安全分数值。

3.2.2,端口扫描检测

定义:
端口扫描是指发送一组扫描消息,了解其提供的计算机网络服务类型(这些网络服务均与特定的端口号绑定),端口扫描是网络安全工作者的必备的利器。
端口扫描定义是客户端向一定范围的服务器端口发送对应请求,以此确认可使用的端口。虽然其本身并不是恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段。端口扫描的主要用途仍然只是确认远程机器某个服务的可用性。
扫描多个主机以获取特定的某个端口被称为端口清(Portsweep),以此获取特定的服务。例如,基于SQL服务的计算机蠕虫就会清扫大量主机的同一端口以在 1433 端口上建立TCP连接。
通过资料查询,我们了解到:Windows10默认开启一些日常用不到的端口,这些端口让黑客有机可乘(黑客会使用工具扫描计算机上的端口,并入侵这些端口),关闭这些高危端口,可使我们的电脑避免遭受攻击。例如关闭445端口等,可有效防止勒索病毒防止互联网上出现针对Windows操作系统的勒索软件的攻击案例。
当然,因为技术问题,我们的端口扫描和市面上的主要软件还是有所差距,我们的端口扫描主要是查询本地计算机开放的端口、状态、外部地址、以及pid对应的进程。
在这里插入图片描述
算法实现:

1. import sys  
2. import os  
3. import re  
4. class Logger(object):  
5.     def __init__(self, filename="Default.log"
  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值