一、操作系统安全概述
1.1 操作系统安全概念与需求
操作系统(operating system),以下都简称OS
- 操作系统负责计算机系统的资源管理,支撑和控制各种应用程序运行,为用户提供计算机系统管理接口。操作系统是构成信息网络系统的核心关键组件,其安全可靠程度决定了计算机系统的安全性和可靠性。
- 一般来说,操作系统安全是指满足安全策略要求,相应的安全机制及安全功能,符合特定的安全标准,在一定约束条件下,能够抵御常见的网络安全威胁,保障自身的安全运行。
- 国家标准《信息安全技术 操作系统安全技术要求(GB/T 20272-2019)》根据安全功能和安全保障要求,将操作分为五个安全等级,即用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级。
- 操作系统的安全可控目标分为两个层面:第一 个层面, 是指给定一个操作系统,用户能够实现对操作系统的可理解、可修改、可检测、可修复、可保护;第二个层面,商业用户能够自己主导操作系统的产品化,不受恶意的商业利益绑架或遭受知识产权专利陷阱,操作系统不能被利用危及国家安全。
- 操作系统的安全需求
(1)标识和鉴别(能够唯一标识系统用户,并能鉴别身份真实性)
(2)访问控制(对os资源进行访问控制)
(3)系统资源安全(保证信息及数据的完整性、保密性、可用性)
(4)网络安全(能进行网络访问控制,保证网络通信数据安全及网络服务的可用性)
(5)抗攻击(具有系统运行监督机制,防御恶意代码攻击)
(6)自身安全(具有自身安全保护机制,确保系统安全和完整性,具有可信恢复能力)
1.2 操作系统的安全机制与安全技术
操作系统的安全保障集成多种安全机制,具体如下:
(1)硬件安全:计算机硬件安全是操作系统那圈的基础保障机制,包括硬件安全可靠性、存储保护、I/O保护、CPU安全、物理环境保护等
(2)标识与鉴别:又称认证机制,用于操作系统的用户及相关活动主体的身份标识,并给用户和相应活动主体分配唯一标识符。
(3)访问控制:用于OS的资源管理控制,防止资源滥用。(一般都是自主访问控制)
(4)最小特权管理:就是OS不分配用户操作执行任务所需权限,防止权限滥用,减少系统的安全风险。
(5)可信路径:指操作系统的本地用户和远程用户进行初始登录或鉴别时,操作系统安全系统与用户之间建立的安全通信路径(可信路径保护通信数据免遭修改、泄露,防止特洛伊木马模仿登陆过程,窃取用户的口令)
(6)安全审计:是OS对系统有关安全活动进行记录、检查及审核,其主要目的就是核实系统安全策略执行的合规性,以追踪违反安全策略的用户及活动主题,确认系统安全故障。
(7)系统安全增强:又称安全加固,通过优化操作系统的配置或增加安全组件,提升OS的抗攻击能力
操作系统是复杂的系统软件,其安全机制的实现综合集成了多种安全技术,主要包括硬件容灾备份技术、可信基数按技术、身份认证技术、访问控制、加密、安全审计等技术,这些技术不同程度地应用在OS的安全机制构建、安全功能实现、安全保障、安全测评以及安全运行等各个方面。
下面的内容都有点过时了(无奈摊手)
二、Windows操作系统安全分析与防护
2.1 windows系统架构
windows系统是微软公司研究开发的操作系统,其发展经历了Winodws3.1、Windows 98、Windows NT、Windows 2000、Windows XP、Windows 7、Windows 10等多个版本。下面以Windows XP为例,它的结构是层次结构和客户机/服务器结构的混合体,其系统结构如图。从图中可以看出,系统划分为三层。其中,最底层是硬件抽象层,它为上面的一层提供硬件结构的接口,有了这一层就可以使系统方便地移植;第二层是内核层,它为低层提供执行、中断、异常处理和同步的支持;第三层是由一系列实现基本系统服务的模块组成的,例如虚拟内存管理、对象管理、进程和线程管理、I/O管理、进程间通信和安全参考监督器。
2.2 Windows安全机制
(1)Windows认证机制。当前windows的认证机制主要有两种,一种是NTLM认证,另一种是Kerberos
(2)Windows访问控制机制。Windows NT/XP的安全性达到了橘皮书C2级,实现了用户级自主访问控制。访问控制机制如图
为了实现进程间的安全访问,WindowsNT/XP中的对象采用了安全性描述符(Security Descriptor)。安全性描述符主要由用户SID (Owner) 、工作组SID(Group)、自由访问控制列表(DACL)和系统访问控制列表(SACL)组成。
(3)Windows审计/日志机制
(4)windows协议过滤和防火墙。windwos上提供了包过滤机制可以限制网络包进入计算机。而且从XP之后都自带防火墙,能够监控和限制用户计算机的网络罗通信。
(5)Windows文件加密系统。为了防范入侵者通过物理途径读取磁盘信息,绕过Windows系统文件访问控制机制。微软公司研究开发了加密的文件系统EFS,文件中的数据利用EFS在磁盘上加密。用户如果访问加密的文件,则必须拥有这个文件的密钥,才能够打开这个文件,并且像普通文档- -样透明地使用它。
(6)抗攻击机制。针对常见的缓冲区溢出、恶意代码等攻击,windows 7、windows 10增加抗攻击安全机制,集成了内存保护机制,主要包括堆栈保护(Stack Protection)、安全结构例外处理SafeSEH(Safe Structured Exception Handling)、数据执行保护DEP(Data Execution Prevention)、地址随机化ASLR(Address Space Layout Randomization)、补丁保护PatchGuadrd、驱动程序签名(Driver Signing)等保护机制。
2.3 Widows系统安全分析
- Windows口令
- Windows恶意代码(相关恶意代码有:“冲击波”网络蠕虫、“永恒之蓝”勒索网络蠕虫)
- Windows应用软件漏洞(例如IE浏览器的安全漏洞导致远程攻击者植入木马,进而危及整个安全系统)
- Windows系统程序漏洞(例如RPC程序的漏洞导致缓冲区溢出攻击)
- Windows注册表安全:通过注册表,用户可以轻易的添加、删除、修改windows系统内的软件配置信息或硬件驱动程序,这虽然方便了用户对系统软硬件的工作状态进行适时的调整,同时注册表也成为入侵者攻击的目标,通过注册表种植木马,修改软件信息、甚至删除、停用或改变硬件的工作状态。
- Windows文件共享安全
- Windows物理临近攻击:指的是对硬件进行攻击,攻击者通过借用安全工具强行进入windows系统。
2.4 Windows系统安全增强技术方法与流程
windows系统安全增强是指通过一些安全措施来提高系统的安全防护能力。目前常见的安全系统增强方法有:
(1)安全漏洞打补丁(Patch)
(2)停止服务和卸载软件
(3)升级或更换程序
(4)修改配置或权限
(5)去除特洛伊等恶意程序
(6)安装专用的安全工具软件
windows系统安全增强是一件繁琐的事情,其基本步骤如下:
(1)确认系统安全增强的安全目标和系统的业务需求
(2)安装最小化操作系统。最小化操作系统的目的是减少系统安全隐患数目,系统越大,可能的安全风险就越大,而且管理上也难以顾及。安装最小化的操作系统要求如下:
- 尽量使用英文版Windows操作系统
- 不要安装不需要的网络协议
- 使用NTPS分区
- 删除不必要的服务和组件
(3)安装最新的系统补丁
(4)配置安装的系统服务
(5)配置安全策略。在windows系统中需要配置安全策略主要有账户策略、审计策略、远程访问、文件共享等。
(6)禁用NetBIOS。NetBIOS提供名称服务和会话服务,这些服务通常会给攻击者提供入侵切入点。为了系统安全,一般建议禁用NetBIOS。
(7)账户安全配置
- 禁用默认账号
- 定期检查,尽早发现可以账户
- 锁定Guest账户
(8)文件系统安全配置
(9)配置TCP/IP筛选和ICF
- 过滤不需要使用的端口
- 过滤不需要的应用层网络服务
- 过滤ICMP数据包
(10)禁用光盘或软盘启动,防止物理临近攻击。
(11)使用屏幕保护口令
(12)设置应用软件安全
(13)安装第三方防护软件
2.5 Windows系统典型安全工具与参考范围
Windows系统是应用非常普遍的操作系统,其受到安全威胁较为频繁。Windows 典型安全工具如下:
- 远程安全登录管理工具OpenSSH (开源) ;
- 系统身份认证增强工具Kerberos (开源)等;
- 恶意代码查杀工具ClamAV (开源)、360杀毒、火絨劍等
- 系统安全检查工具Nmap (开源)、Fport. Sysinternals (工具集成)等;
- 系统安全监测工具Netstat (系统自带)、WinDump (开源)等。
针对Windows 系统进行安全管理问题,国内外安全组织制定了安全标准规范,以作为Windows操作系统配置的安全基线。目前,可供参考的基准线有CIS (Center for Intermet Security)、SANS TOP 20、NIST SP 800-70、《信息安全技术政务计 算机终端核心配置规范》(GB/T 30278- -2013)等。
此外,安全公司为了便于操作系统的安全配置管理,研发了安全配置核查管理系统。
三、UNIX/Linux操作系统安全分析与防护
3.1 UNIX/Linux系统架构
同Windows系统相比较,UNIX 系统的历史更长。经过长期的发展演变,形成了多种具有不同特色的UNIX操作系统。如Solaris AIX、 HP-UNIX、Free BSD等。另外,还有一种开放源代码的Linux操作系统,它类似于UNIX系统,目前广泛应用在互联网上。虽然UNIX有不同的类型,但是在技术原理和系统设计结构上是相同的。一般的UNIX/Linux操作系统分为三层:硬件层、系统内核和应用层,如图19-6所示。
3.2 UNIX/Linux安全机制
UNIX/Linux是一种多用户、多任务的操作系统,因而,UNIX/Linux操作系统基本的安全功能就是不同用户之间避免相互干扰,禁止非授权访问系统资源。
UNIX/Linux主要安全机制:
(1)UNIX/Linux认证
- 基于口令的认证方式
- 终端认证
- 主机信任机制
- 第三方认证(例如一次一密口令认证S/Key、Kerberos认证系统、插入式身份认证PAM
(2)UNIX/Linux访问控制。
普通的UNIX/Linux系统一般通过文件访问控制列表ACL来实现系统资源的控制,也就是常说的通过“9bit”位来实现。例如,某个文件的列表显示信息如下:
-rwxr-xr-- 1 test test 4月9日17:50 sample.txt
可以看出,用户test对文件sample.txt的访问权限有“读、写、执行",而test这个组的其他用户只有“读、执行”权限,除此之外的其他用户只有“读”权限。
(3)UNIX/Linux审计机制
审计机制是UNIX/Linux系统安全的重要组成部分,升级有足浴系统管理员及时发现系统入侵行为或系统安全隐患。不同版本的UNIX/Linux日志文件的目录是不同的。常见的日志文件如下:
- lastlog:记录用户最近成功登录的时间:
- loginlog:不良的登录尝试记录:
- messages:记录输出到系统主控台以及由syslog系统服务程序产生的消息:
- utmp:记录当前登录的每个用户:
- utmpx:扩展的utmp:
- wtmp:记录每一次用户登录和注销的历史信息;
- wtmpx:扩展的wtmp;
- vold.log:记录使用外部介质出现的错误:
- xferkig:记录ftp的存取情况:
- sulog:记录su命令的使用情况:
- acct:记录每个用户使用过的命令。
3.3 UNIX/Linux系统安全分析
(1)UNIX/Linux口令/账号安全
在UNIX/Linux中,口令信息保存在
passwd
和
shadow
文件中,这两个文件所在的目录是
/etc
。入侵者常利用各种方法来获取口令文件。例如,通过WebCGI程序的漏洞来查看口令文件passwd
(2)UNIX/Linux可信主机文件安全
在UNIX/Linux系统环境中,为了便于主机之间的互操作,系统提供两个文件
/$HOME/.rhost
或
/etc/hosts.equiv
来配置实现可信主机的添加。当一台主机A信任另外一台主机B后,主机B的用户无须主机A的认证就可以从主机B登录到主机A。但是,这种简单的信任关系很容易导致假冒,如果可信主机文件配置不当的话,就会难以避免地带来安全隐患。
(3)UNIX/Linux应用软件漏洞
UNIX/Linux平台的应用软件安全隐患日益暴露,特别是常用的应用软件包,例如Sendmail和BIND。这些安全隐患常常导致系统被非授权访问、非法滥用等。早期的“小莫里斯”网络蠕虫就利用了Sendmail漏洞来传播
(4)UNIX/Linux的SUID文件安全
在UNIX/Linux中,SUID文件是指被设置成可以带有文件拥有者的身份和权限被执行的可执行文件。因为许多系统安全漏洞存在于SUId文件中,SUID文件已成为系统安全的重大隐患。例如,Linux就可以通过SUID进行提权操作(关于SUID提权,想了解的可以看一下)
(5)UNIX/Linux的恶意代码
同Windows系统相比较,UNIX系统的计算机病毒危害少一些,但仍然存在。其他针对UNIX系统的网络蠕虫、特洛伊木马、rootkit
也时有报道。例如,最早的网络蠕虫就是在UNIX系统中爆发的。
(6)UNIX/Linux文件系统安全
文件系统是UNIX/Linux系统安全的核心,在UNIX/Linux中,所有的资源都被看作文件。UNIX/Linux文件安全是通过“9
bit"位控制的,每个文件有三组权限,一组是文件的拥有者,一组是文件所属组的成员,一组是其他所有用户。文件的权限有: r
(读)、w(写)、x(执行)。但是,如果这种控制操作设置不当,就会给系统带来危害。例如,假设/etc/shadow
文件允许任何人可读,就会导致口令信息泄露。
(7)UNIX/Linux网络服务安全
UNIX/Linux系统提供了许多网络服务,如finger,R-命令服务等。虽然这些服务能够给工作带来方便。但是也造成系统存在安全隐患。例如,通过figer服务(指令
finger [email protected]
)可以活出远程UNIX/Linux主机的信息
(8)UNIX/Linux系统程序漏洞
入侵者一般通过普通账号进入UNIX/Linux系统,然后再利用系统的程序漏洞进行提权
3.4 UNIX/Linux系统安全增强方法和流程
(1)UNIX/Linux系统安全增强方法。同windows系统的安全增强一样,UNIX/Linux系统的安全增强方法常见的有下面几种
- 给安全漏洞打补丁
- 停止不必要的服务
- 升级或更换软件包
- 修改系统配置
- 安装专用的安全工具软件
(2)UNIX/Linux系统增强基本流程
3.5 UNIX/Linux系统安全增强技术
(1)安装系统补丁软件包
(2)最小化网络服务。最小化配置服务是指在满足业务的前提条件下,尽量关闭不需要的服务和网络端口,以减少系统潜在的安全危害。实现UNX/Linux网络服务的最小化,具体安全要求如下:
- inetd.conf 的文件权限设置为600
- inetd.conf的文件属主为root
- services的文件权限设置为644
- services的文件属主为root
- 在inetd.conf 中,注销不必要的服务,比如finger、echo、 chargen.、rsh、rlogin、tp服务
- 只开放与系统业务运行有关的网络通信端口
(3)设置系统开机保护口令。在UNX/Linux系统中,用户可以通过特殊的组合键而无须提供用户名和口令,就能以单用户身份进入系统。因此,针对这种威胁,一方面要尽量避免入侵者物理临近系统,另一方面要设置系统开机保护口令,阻止入侵者开机,从而达到保护系统的目的。开机保护口令由BIOS程序设置实现,这样当系统启动时,BIOS 程序将提示用户输入密码。
(4)弱口令检查。针对弱口令安全隐患,系统管理员通过口令破解工具来检查系统中的弱口令,常用的口令检查工具是John the Ripper。
(5)禁用默认账号
(6)用SSH增强网络服务安全。目前, 针对Telnet, FTP的安全,采用SSH (Secure Shel)来增强,SSH 提供认证、加密等安全服务,可以在两台或多台主机之间构造一条加密通道, 保证通信安全。
(7)利用tcp_wrapper增强访问控制。通过tcp_wrapper,管理员可以设置对inetd提供的各种服务进行监控和过滤。
(8)构建UNIX/Linux主机防火墙(ipchains、iptables、netfilter)
(9)使用Tripwire或MD5Sum完整性检测工具。当建立新的UNIX/Linux系统后,应记录所有系统文件的硬件和软件信息,并形成一个系统文件基准信息库,以便日后检查系统文件的完整性变化,避免恶意程序的植入和修改。利用Tripwire或MD5Sum软件安全工具可以发现被篡改的文件。
(10)检测LKM后门。UNIX/Linux系统一般都支持LKM (Loadable Kernel Module)功能,但是留下了一个安全隐患,就是入侵者能编写可加载内核模块,例如rookit,从而造成较大的系统危害性。针对LKM后门危害,除了利用完整性检查工具外,还可利用专用安全检查工具,例如Kstat、Chrootkit、Rootkit Hunter。
(11)系统安全监测。UNIX/Linux系统的安全是动态的,对运行的系统进行实时监控有利于及时发现安全问题,做出安全应急响应。针对UNIX/Linux系统的安全监测,常用的安全工具有Netstat. Isof. Snort 等。
3.6 Linux安全增强配置参考
(1)禁止访问重要文件
对于系统中的某些关键文件,如
inetd.conf
、services和lilo。conf等可修改其属性,机制被修改和被普通用户查看
(2)禁止不必要的SUID程序
SUID可以使用普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。找出root所属的带s位的程序:
find / -type f \ (-perm -0400 -o -perm -0200 \) -print|less
禁止其中不必要的程序
chmod a-s program_name
(3)为LILO增加开机口令
在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。
(4)设置口令最小长度和最短使用时间
修改文件
/etc/login. defs
中的参数
PASS MIN_ LEN
和
PASS_ MIN _DAYS
,来设置口令的最小长度以及限制口令使用时间,保证定期更换口令。
a.编辑hosts.deny文件,加入下列行:
#Deny access to everyone
ALL:ALL@ALL
则所有服务对所有外部主机禁止,除非由hosts alw文件指明允许。
b.编辑hosts.allow文件,可加入下列行: .
#Just an example:
ftp:x.x.x.x y.com
则将允许IP地址为x.x.x.x和主机名为y.com的机器作为客户访问FTP服务。
c.设置完成后,可用tcpdchk检查设置是否正确。
(5)限制远程访问
通过
/etc/hosts.allow
和
/etc/hosts.deny
这两个文件允许和禁止远程主机对本地服务的访问
(6)用户超时注销
通过修改
/etc/profile
文件,在
"HISTFILESIZE="
行的下一行增加:
TMOUT=600
则所有用户将在10分钟无操作后自动从系统注销
(7)注销时删除命令记录
编辑
/etc/skel/.bash_logout
文件,增加如下行:
rm -f $HOME/.bash_histroty
3.7 UNIX/Linux系统典型安全工具与参考规范
UNIX/Linux系统常应用于服务器,常见的典型安全工具如下:
- 远程安全登录管理开源工具OpenSSH;
- 系统身份认证增强开源工具Kerberos;
- 系统访问控制增强开源工具SELinux、iptables、 TCP Wrappers等;
- 恶意代码查杀工具ClamAV、Chkrootkit、 Rootkit Hunter等:
- 系统安全检查工具Nmap、John the Ripper、OpenVAS 等;
- 系统安全监测工具lsof、Netstat、 Snort 等。
UNIX/Linux安全基准线参考标准规范有CIS (Center for Intermet Security)、SANS 等。
四、国产操作系统概况与安全分析
- 国产OS一般是指由国家自主研发力量研制的OS,具有较强的可控性和安全性。
- 国内早期的安全操作系统为安胜操作系统,目前新型的国产OS还有华为的鸿蒙、阿里飞天云操作系统
- 国产操作系统基于开源软件Linux进行研制开发,其安全性与Linux紧密相关。同时,由于国产操作系统配套的相关软件包或硬件不可避免地存在安全隐患,这也对国产化操作系统构成了安全威胁。国产操作系统主要面临的安全风险分析如下:
- Linux内核的安全风险。(会遭受到Linux内核漏洞的影响,如输入验证错误、缓冲区一处错误、边界条件错误等漏洞)
- 自主研发系统组件的安全。(由于软件的复杂性,自主研发的系统组件可能存在漏洞)
- 依赖第三方系统组件的安全(第三方组件存在安全漏洞,引发OS系统安全风险问题)
- 系统安全配置的安全(由操作系统的安全配置不当,构成系统安全威胁,如开放过多服务端口、设置弱口令)
- 硬件的安全
版权归原作者 太菜了怎么办? 所有, 如有侵权,请联系我们删除。