第十一章 入侵检测与防御技术
11.1 安全操作系统基础
下面我们来学习安全操作系统基础。首先来看操作系统概述,操作系统缩写os是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统主要负责处理管理与配置内存,决定系统资源供需的优先次序,控制输入与输出设备,操作网络与管理文件系统等基本事物。同时操作系统还要提供一个用户与系统交互的操作界面。
操作系统和类型非常多样,不同机器安装的操作系统可以从简单的到复杂的可以从移动电话的嵌入式操作系统叫超级计算机的大型操作系统。常用的分类分为如下两类,针对电脑的有UNIX操作系统,Linux、迈克尔斯windows等等。针对移动设备的有安卓的、iOS等等。
首先我们来看UNIX,UNIX最早由Kenn Simpson和Dennis richer于1969年在美国的ATM替贝尔实验室开发,最早运用于中小型计算机当中,UNIX是一个强大的多用户多任务的分时操作系统,支持多种处理器架构。所谓的分时操作系统就是采用CPU时间轮流分配的方式,给系统的多个任务和多个用户分配CPU时间,从而支持多用户和多任务。UNIX还支持用户之间的数据共享,支持模块安装,用户可以选择安装所需的模块。
我们再来看Linux,Linux是1991年退出的,与UNIX完全兼容的多用户多任务操作系统,它最初是由芬兰赫尔辛基大学计算机系的学生林纳斯基于UNIX开发的一个操作系统的内核程序,为了能在英特尔的处理器上面更有效的使用 UNIX,随后以这个 Gnu通用公共许可证发布,成为了自由软件,源代码公开可自由传播,目前已成为世界上最大的一个自由免费软件。
Linux的发行版可以作为个人计算机操作系统,也可以作为服务器的操作系统。当前在服务器上面已成为主流的操作系统,Linux系统的功能可以与 windows操作系统相媲美,它的用法与UNIX系统相类似,广泛应用于各类的计算机。个人电脑、平板电脑、手机、视频游戏机以及超级计算机。
我们再来看Mac OS 。麦克尔是美国苹果公司开发的,运行于 mik系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统,它基于xnu混合内核,这个 xnu混合内核是苹果开发的操作系统内核,麦克维s后来发展出了针对笔记本电脑的这个 mac o sx版本,最早是在2001年推出,基于bsd UNIX内核,这一部分又称为达尔文,它是部分开源的,这就带来了UNIX风格的内存管理和先占式的多任务处理。在2011年MAC被苹果改名为了osx在2016年改名为了Mac OS与iostvosyos并列。
我们再来看windows。windows大家应该非常熟悉,它是由美国微软公司在给IBM计算机设计的指令操作系统MS DOS的基础上面开发的多任务图形界面操作系统,windows现在可以在32位的64位的英特尔和AMD的处理器上面运行,Window系统可以说是目前世界上使用最广泛的操作系统,目前主要有win XP,win7、win8、win10、win11等版本。iOS是苹果公司于2007年发布的手持设备的操作系统,它以达尔文为基础,
于内UNIX的商业操作系统,最初是设计给iPhone使用的,后来陆续套用到了iPod的iPad的 iPad以及Apple TV等产品上面。我们再来看Android and Android,安卓操作系统是一种基于Linux的自由及开放源代码的操作系统,主要应用于,移动设备,最初由Andy Robin开发,在2005年的时候被谷歌收购并注资。2007年,谷歌与84家的硬件制造商,软件开发商及电信运营商组建了开放手机联盟,共同来研发并改良所有的系统。第一部Android智能手机发布于2008年,随后Android逐渐扩展到了平板电脑及其他领域,比如智能电视、数码相机、游戏机、智能手表等。
11.2 安全操作系统基本概念
接下来我们来学习安全操作系统的基本概念,主要包括主体客体、安全策略、安全模型、访问监视器、安全内核和可信计算机。首先来看主体和客体,主体是一个主动的尸体,包括用户用户组或代表用户的进程,客体是一个被动的实体,可以是存储在介质上的数据,也可以是进程。操作系统中的每一个实体组件都必须是主体或者客体,或既是主体又是客体。
像进程一般有着双重身份,进程通常由用户触发,为用户提供服务,因此进程是用户的客体,但是当进程在访问系统上的资源的时候,进程又是这些被访问资源或数据的主体。
安全策略,安全策略是指有关管理、保护和发布敏感信息的法律规定和实施细则。通常安全策略是由一整套严密的规则组成,这些确定授权存取的规则是决定存取控制的基础。例如将系统中的主体和客体划分成不同的等级,依据等级的高低,决定主体是否有权访问客体,就是一种安全策略。一个操作系统是否安全,要看它是否满足某一给定的安全策略。同样进行安全操作系统的设计和开发时,也要围绕一个给定的安全策略进行。
安全模型与安全策略,是计算机安全理论当中容易相互混淆的两个概念。安全模型是对安全策略所表达的安全需求的简单抽象和无歧义的描述,具体描述安全策略需要用哪些安全机制来满足。
我们再来看访问监控器,访问监控器是访问控制机制的理论基础,是由jpn的身份首次提出的。访问监控器是一个抽象的概念,jpm的sim把访问监控器的具体实现称为引用验证机制是一个硬件和软件的组合。什么是引用验证机制?如下图所示,主体对客体的存取判定是安全策略的一个具体表现,是以访问控制数据库中的授权信息为依据的访问控制器,控制主体到客体的每一次存取,并将重要的安全事件存入到审计文件之中。
在访问监控器思想的基础上,GPS定义了安全内核,安全内核是指系统中与安全性实现有关的部分,包括引用验证机制、访问控制机制、授权机制和授权管理机制等部分。安全内核实质是访问监控器的实现,要求安全内核必须予以适当的保护,不能篡改,绝不能有任何绕过安全内核存取控制检查的存取行为存在。安全内核必须尽可能的小,便于进行正确性验证。
我们再来看可信计算机操作系统的安全依赖于一些具体实施安全策略的可信的软件和硬件。这些软件和硬件和负责系统安全管理的人员一起组成了系统的可信计算机,简称tcb。
具体来说可信计算机由以下7个部分组成,
第一,操作系统的安全内核,
第二,具有特权的程序和命令。
第三,处理敏感信息的程序,如系统管理命令等,如系统管理命令等。
第四,与TCP实施安全策略有关的文件。
第五,其他有关的固件,硬件和设备。
第六,负责系统管理的人员。
第七,保障固件和硬件正确的程序和诊断软件。
11.3 安全操作系统的机制
下面我们来学习安全操作系统的机制,安全操作系统的机制主要包括硬件安全机制,安全标识与鉴别,防控制,最小特权管理,可信通路,安全审计。
首先我们看硬件安全机制,优秀的硬件保护性能是高效可靠的,操作系统的基础。计算机硬件安全的目标是保证其自身的可靠性,和为系统提供基本的安全机制。其中基本的安全机制包括存储保护、运行保护io输入输出保护。我们再来看标识与鉴别,标识就是系统标识用户的身份,通常通过为用户取一个系统可以识别的内部名称,也就是用户标识符来识别用户用户的标识符必须是唯一的,且不能被伪造。鉴别就是验证用户的真实身份与用户标识符是否相符的过程。要求用户具有能够证明他身份的特殊信息,比如通常使用的口令,这个信息是必须要保密的,以防止被别的用户冒充。口令机制是简单易行的鉴别手段,但是通常比较脆弱。目前生物技术是一种比较有前途的鉴别方式,比如基于指纹的,基于视网膜的等等这些鉴别技术。
我们再来看访问控制,在前面的章节专门介绍了访问控制机制,访问控制是操作系统当中的重要的安全机制,它依据授权规则对主体提出的资源访问加以控制,使计算机系统在合法范围内使用。主要防止非法的,用户未授权的使用系统的资源,或者防止合法用户滥用他的权限,滥用资源。
我们再来看最小特权管理,最小特权管理的思想是系统不应给用户超过执行任务所需的特权以外的特权。比如将超级用户的特权划分为一组系力度的特权,分别授予不同的系统操作员或管理员,使各种系统操作员管理员只具有完成其任务所必需的权限,从而减少由于特权用户口令的丢失或者错误软件恶意软件误操作所引起的这个损失。
比如我们可以在系统当中定5个特权的管理职责,任何一个用户都不能够获取足够的权利,破坏系统的安全策略。
我们再来看可信通路,可信通路是指用户能跳过通常不可信的应用层,而直接同可信计算机之间通信的一种机制。通常用户通过应用程序与操作系统接口以及安全内核进行交互。因此当用户在执行系统登录或者注册以及安全属性的定义,文件安全级别的改变等安全敏感操作时,应该保证用户确实是在于安全内核,而非特洛伊木马等程序在打交道。换句话说,系统必须通过提供可信通路机制来防止特洛伊木马程序模仿登陆进程,以窃取用户的口令,并保证特权用户执行特权操作的时候,终端输入的信息的非泄密性和输出信息的正确性。安全审计安全审计就是对系统当中有关安全的活动进行记录检查和审核。安全审计为系统进行事故原因的查询定位,事故发生前的预测报警以及事故发生之后的实时处理,提供详细可靠的依据和支持,以备有违反系统安全规则的事件发生后,能够有效的追查事件发生的地点和过程以及责任人。
11.4 安全模型
下面我们来介绍一下代表性的安全模型,安全模型的目的在于明确的表达系统安全需求,为设计开发安全系统提供方针。
安全模型一般分为两种,形式化的安全模型和非形式化的安全模型,形式化的安全模型,使用数学模型,精确的描述安全性及其在系统当中使用的情况,而非形式化的安全模型。仅模拟系统的安全功能,主要的安全模型包括如下4种,blp,机密性安全模型拉一本完整性安全模型,克拉克威尔森完整性安全模型以及dte安全模型。
首先我们来看blp模型,它的全称是 bell,lamp doo la模型,BMP模型、spell和lapse dw了,在1973年提出的一种适用于军事安全策略的计算机安全密集分类的模型,VIP模型常用于强制安全策略,强制安全策略对所有的主体和客体都分配一个安全级别,也就是给一个标签,通过比较主体和客体的安全级别,控制主体对客体的访问,blp模型通过下读和上写,防止高敏感度的信息写入低敏感度的区域,从而保障系统的机密性。
这里的上读和下写分别代表读写的方向,下读就是当主体的级别高于这个客体的时候,就允许他去读,而上写是指主体的级别低于客体的时候就允许写入。
我们再来看bible模型,Bab模型是Bab等人在1977年的时候提出的是第一个保护信息完整性的安全模型,这个模型也是基于主体客体以及它们的级别的,它通过上读和下写的模式,允许高敏感度的信息写入低敏感度的区域,不允许低级别的用户对高敏感度信息进行修改,从而保证数据的完整性。
我们再来看clark Wilson完整性模型,这个模型是在1987年的时候,由Clark和Wilson他们提出来的。这个模型的核心是为了防止合法用户做非法的操作,clock模型的核心在于以量够事物为基础来实现商务环境中所需的完整性策略。所谓粮购事物是指一个用户不能任意的操作数据,只能用一种能够确保数据完整性的受控方式来操作数据。为了确保数据向仅能被量够事物操作,需确认一个数据项,仅能被一组特定的程序来操纵,这些程序都能被验证,是经过适当构造并且被正确的安装和修改的。
接下来我们来看dte模型,这个模型最初是由boy belt提出的,经修改后在lock系统上面得到了实现,dte模型与其他访问控制机制一样,与其他访问机制一样,dte将系统视为一个主动实体的集合和一个被动实体的集合。每个主体有一个属性叫做域,每个客体有一个属性叫做类型,这样所有的主体被划分到了若干个域,所有的客体被划分到了若干个类型,dte再建一个预定义表,描述各个域对不同类型客体的操作权限,同时建立另外一个域交互表,描述各个域之间的徐克访问模式,比如创建发信号切换等等,使用dt模型系统在运行的时候,依据访问的主体域和客体的类型,查找预定仪表,决定是否允许访问。
11.5 操作系统的安全体系结构
接下来我们来介绍操作系统的安全体系结构,安全体系结构,描述一个系统如何组织成一个整体,以满足既定的安全性要求,建立一个计算机系统,往往需要满足许多要求,比如安全性要求,性能要求、可扩展性要求、容量要求,使用的方便性要求以及成本要求等等。
这些要求往往有冲突,把他们协调的纳入到一个系统当中,并都给予最大可能的满足,通常是困难的,甚至是不可能的。安全体系结构要完成的主要任务是在各种要求之间进行安全性的折中,使系统在实现时各项要求有轻重之分。安全体系结构的含义,一个计算机系统,特别是一个安全的操作系统,它的安全体系结构主要包括4个方面。
第一,详细描述系统当中安全相关的所有方面,包括系统可能提供的所有安全服务及保护系统自身安全的所有安全措施。
第二,在一定的抽象层次上,描述各个安全相关模块之间的关系。
第三,提出指导设计的基本原理,根据系统设计的要求及工程设计的理论和方法,明确系统设计的各方面基本原则。
第四,就是提出开发过程的基本框架,以及对应于该框架体系的层次结构描述确保系统终于安全需求的整个开发过程的所有方面。
我们再来看安全体系结构的类型,美国国防部的目标安全体系,DOS把安全体系划分为了4种类型,
第一.抽象体系,描述安全需求,定义安全功能,以及他们提供的安全服务,确定指导原则和基本概念。
第二,通用体系,定义系统的通用类型及使用标准,规定系统指导原则,在已有的安全功能和安全服务配置上,定义系统分量的类型及相关的安全机制。
第三,逻辑体系满足某个假设的需求集合的一个设计显示,把一个通用体系应用于具体环境时的基本情况。
第四,特殊体系表明如何把所有被选择的信息安全分量和机制结合起来,针对一个特殊系统的安全需求,描述接口、分量、标准、性能、开销以及如何来结合。
下面我们再来看安全体系结构设计的7个基本原则。
第一,从系统设计之初就考虑安全性,如果设计师不考虑,后期添加将会付出巨大的时间,经济成本效果还未必理想。
第二应尽量考虑未来可能面临的安全需求,为将来可能的安全需求预留接口,安全需求指向应当具有方向性,同时又不能太具体,从而丧失系统的灵活性。
第三,隔离安全控制,并使其最小化。
第四,实施特权最小化。
第五,结构化安全相关的功能,具有一个好的体系结构,安全相关的部分能够被确定,总体上能够很快的对系统进行检查,对安全功能有清晰的易于规范的接口。
第六,安全相关界面友好,增强安全性,不要给合法用户带来负担,带来不方便。
第七,不要在安全依赖于一些隐藏的东西,如不能基于以下的假设,用户不能突破系统,是因为用户没有用户的手册或软件的资源列表。
下面我们就来介绍两种典型的安全体系结构。
首先我们看flask安全体系结构,internet是由易购系统互联形成的,普遍存在不同的计算机环境及应用,往往具有不同的安全需求。这就要求系统支持安全策略的可变通性,也就是灵活性。flash体系结构,支持动态安全策略,具体支持包括支持多种安全策略,可实现系力度的反应控制,能够确保访问权限的授予与安全策略保持一致,还能够撤回先前已经授予的访问权限。Flash体系结构将机制与策略相分离,由一个安全服务器和一个围内和及客体对象管理器组成。安全服务器负责制定安全策略,客体对象管理器,负责实施安全策略决策。
我们再来看全能体系结构,全能体系结构是较早用于实现内核的体系结构,尽管存在一些不足,但仍然是实现访问控制的一种通用的,可塑性良好的方法。全能可以看成是对象的保护名,通常具有如下的性质。
第一,全能是客体在系统范围内使用的名字,也就是标识符。
第二,全能必须包含对客体的访问权。
第三,全能只能由系统的底层部分创建,拥有全能的主体,有权对其进行移动、拷贝或者传递。全能一般由客体标志符,全能一般由客体标识符定义客体类型的域及定义访问权的域构成。
11.6 系统安全的配置策略
11.6.1 账户安全相关的配置
下面我们来学习系统安全的配置策略。首先来看账户安全相关的配置,账户安全的配置分为几条,首先第一条就是安全的口令要避免使用姓名、公司名、计算机名等容易猜测到的、字符作为用户名,同时避免使用与用户名雷同,简单的单词或基于自己及亲朋生日等等信息构造的简单口令或不更改系统的初始口令。另外还需要定期的更新口令,第二就是停止guest账号,停止来宾账号,在计算机管理当中的用户里面,guest账号停用,任何使用都不允许guest账号登录系统。第三,需要限制用户的数量,去掉所有的测试账号,共享账号和普通部门账号等等。用户组策略设置相应的权限,并且经常检查系统的账户,删除已经不使用的账户。第四就是要慎用管理员的账号,创建一个一般的用户权限账号,用来处理日常的事务,真正的管理员权限的账户只在需要的时候使用。第五就是管理员账号改名,将管理员administrator账号改名,让攻击者不容易找到管理员账户,以免对管理员账号进行口令猜测。第六就是陷阱账号,我们可以创建一个名为 administrator的陷阱账号,吸引攻击者消耗他们的资源和精力,并且为陷阱账号设置一个比较复杂的口令,比如超过10位,同时将其权限设置为最低,什么事都干不了。第七,就是屏幕保护的密码,设置锁屏或者屏幕保护程序,设置相应的密码,并将这个等待的时间设置为尽可能的短,比如说一秒,以防止内部人员非授权的使用或者破坏系统。
11.6.2 开启本地组策略
接下来我们来开启本地组策略,首先开启审核策略,安全审核是系统提供的一个最基本的入侵检测方法,当有人尝试对系统进行某些疑似入侵的行为时,如尝试用户的密码,改变账户的策略,或未经许可的文件访问等等,都会被安全审核记录下来。这里建议必须开启表中所列的这些策略,其他的可以根据实际的需要进行添加,包括审核系统登录事件,审核账户的管理,审核登录事件,审核对象访问,审核策略更改,审核特权使用,审核系统事件等等。
如何来开启审核策略,这个登录审核策略默认是关闭的,打开方法是首先打开运行,可以按键盘上的win键加上r键,然后在打开的这个输入框当中,输入gpedit.msc命令,然后就可以打开本地组策略编辑器,再将这个打开的本地组策略编辑器依次展开,我们可以看到计算机配置,然后下面的windows设置,然后再到安全设置,再到本地策略,再到审核策略,
然后这里我们就可以看到可以配置的审核策略,然后进行相应的勾选确认,就可以打开相应的审核策略。
接下来我们再来看开启密码策略,密码对系统安全非常的重要,在本地安全设置当中的密码策略默认是关闭的,建议开启密码策略,如表中所示,包括了密码的复杂性,要求密码密码长度的最小值,密码最长的存留期,强制密码历史等等。如何开启密码策略,首先打开本地组策略编辑器,如右图所示,展开到计算机配置、windows设置、安全设置、账户策略,然后再到密码策略,然后就可以选择相应的密码审核策略进行相应的设置。再来看开启账户策略,这个账户策略可以有效的防止字典攻击,建议设置如表中所示,包括复位账户锁定计数器,账户锁定的时间,账户锁定的预值。如何来设置?同样通过本地组策略编辑器,如图所示,同样展开计算机配置、windows设置、安全设置、账户策略,然后账户锁定策略,然后同样选择相应的账户锁定策略进行设置。
11.6.3 其他安全策略
我们来看一些其他的安全策略,首先分区格式的选择,现在的操作系统有几种常见的分区格式,比如说这个 fat fat32以及这个 NTFS,其中 NTFS文件系统它的这个安全性要比3t3t32要安全的多,所以建议把所有的服务器的分区都改成NTFS格式。
防火墙和防病毒是网络安全当中的顶梁柱,它们的作用非常的显著,所以系统也建议开启防火墙和防病毒软件,可以开启系统自带的防火墙,比如window系统当中有windows第三点,除了系统自带的防火墙之外,最好再安装一个第三方的防火墙,以及杀毒软件。备份系统与文件,需要做好系统与数据资料的备份,一旦系统或者数据被攻击者破坏了,可以通过备份进行恢复。另外还需要把备份最好存放到另外的计算机或者存储设备当中,避免系统被入侵者入侵之后,被他们找到,并破坏备份资料,下载安装最新的补丁,很多攻击都是利用漏洞来实施的,所以要及时的检查系统更新或者设置相应的策略,让系统自动的及时的下载安装最新的漏洞补丁,使用文件加密系统,一些操作系统,比如说windows提供了强大的加密系统,能够给磁盘、文件夹、文件加上一层安全保护,这样可以防止别人把你的硬盘挂到别的机器上面,或者驱动器上面,读出里面的数据,现在的windows系统提供了windows这样一个加密驱动器,可以加密windows操作系统卷上存储的所有数据,从而更好的保护计算机上面的数据。
接下来学习关闭不必要的服务,一些网络入侵或者木马会潜入或者伪装成系统服务的流量渗透系统,所以我们需要留意系统当中开启的服务,并且经常检查,并且最好能够关闭不必要的服务。可以通过按下win加r组合键,打开运行,然后运行MS config这个命令,打开系统配置工具,通过这个配置工具,就可以查看并确认系统当中开启的服务组件,然后去筛选那些不必要的服务,把它关闭,把它禁止。
再来看关闭不必要的端口,开放的网络端口是系统与互联网通讯的出入口,也是网络入侵的潜在入口。有些系统默认开放的端口我们很少使用,甚至根本用不到。因此要尽量关闭不必要的端口,可以使用前面介绍过的端口扫描器,扫描系统开放端口的情况,也可以在系统的文件夹下面windows下面的CS32,然后再来service下面的etc文件夹,下面的services文件当中去查看系统开放的知名单口相声无氟无误的对照表,确定了开放的不必要的端口之后,就可以使用系统提供的防火墙,比如说windows的defend或者第三方的防火墙,关闭不必要的端口。
再来看关闭默认共享,windows系统会创建一些隐藏的共享,可以在DOS提示符下面输入命令,net share来查看,如下图所示,也可以在计算机管理共享文件夹,也可以在计算机管理这个工具当中去查看,打开计算机管理,然后找到共享文件夹,在共享下面查看和关闭默认共享。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-19h0Wyqj-1687882434016)(file:///C:/Users/libin/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)]
再来看禁用dump文件,在系统崩溃或者蓝屏的时候, dump文件是一份很有用的资料,可以帮助查看文件,可以帮助查找定位问题,然而也能够给黑客提供一些敏感的信息,比如一些应用程序的密码等等,所以需要把它禁用,如何来禁用,可以打开控制面板,在系统属性里面找高级这个标签,然后找到启动和故障恢复,把写入调试的信息,改成无,这样就可以禁用dump文件。
我们再来看使用数据恢复软件,当数据被病毒或者入侵者破坏后,可以使用数据恢复软件,找回部分被删除的数据。在恢复软件当中,一个著名的软件就是easy recover,这个软件它的功能很强大,可以恢复被误删除的文件,丢失的硬盘分区等等。软件的界面如下图所示,大家在需要的时候可以去下载安装这个软件去恢复数据。