目录
UNIX/Linux系统的安全分析与防护
unix和linux操作系统分成三层,分别是硬件层,系统内核层以及应用层。Windows系统也是分成三层,硬件抽象层、内核层,还有服务模块。
unix和Linux系统都是多用户、多任务的操作系统,双多操作系统。多用户,可以多个用户登录,同时使用后台操作系统,因为这两个系统基本上是用于服务器,是供我们多人使用的,所以要供多个用户同时使用。这里需要注意,多用户不是指操作系统能开出多个用户,任何操作系统基本上都可以有张三用户、李四用户,不是有多个用户名字叫多用户,而是这些用户,他能够同时的去使用我们操作系统的资源。
像早期的微软系统,XP这种,它其实就是单用户的,它虽然操作系统里面可能有张三、李四,但是同时只能有一个用户去登录使用资源,这就叫单用户
微软个人操作系统,早期是单用户的,像现在的WIN 7、win 10,也都成了多用户,可以同时去使用。像微软服务器操作系统,都是多用户的、多任务,同时可以处理多个任务,比如说,你既登QQ又登微信,这就叫多任务。
时间往前面去推移,最早的比如说DOS操作系统,他就是单任务的,同时只能干一个事情
unix和linux具备一些安全机制,第一个认证机制,第二个审计机制,第三个是访问控制机制。认证机制,有四种认证方式,第一个基于口令认证,输密码很好理解。第二个终端认证,在unix或者Linux系统当中,还提供一个限制超级用户从远程登录的认证,就是比如说在linux当中,有一个用户叫超级用户,可以限制他只能从某一个IP地址,某一个终端来登录,而不能从互联网或者其他任意的终端来登录这台服务器。这样的话就能够最大限度的保证网络安全,即使用户名密码泄密了,对方也登录不了,因为你不一定知道我必须要从哪个IP登录。
第三种叫主机信任机制,不同的主机之间,可以相互信任,让他们无需认证就可以直接登录,我们双方认证,双方信任就不需要做认证
第四是第三方认证,关于认证机制,第一个单项认证,第二个双向认证,第三种是基于第三方认证,一次一密口令认证S/Key,Kerberos认证系统,插入式身份认证PAM
审计机制,无论是linux还是Windows系统都是带审计机制的。审计日志文件最早是放在/usr/adm,较新的系统是放在/var/adm。Solaris、Linux、unix和bsd系统,是放在/var/log文件。
访问控制机制,通过十比特来进行文件权限的访问控制,其实,文件权限本来是九比特,只是如果是十比特的话,第一位是文件类型,如果是d,就表示目录,如果是横杠,表示是普通文件,所以十位第一位是表示文件类型,后面九位是表示用户权限
用户权限是三个一组,第一组表示用户权限,第二组是表示跟我这个用户相同组用户的权限,相当于是我们的同族,第三组表示其他用户权限,就是你既不是我这个用户,又不是我的同族,这是其他用户。
UNIX/Linux系统安全增强技术
操作系统安全增强技术,任何系统其实都差不多,安卓基本上也是一样的,WINDOWS、linux、安卓、苹果iOS一样的打补丁
打补丁需要检查补丁的完整性,用一个哈希工具算哈希值,把补丁下载下来之后算一下哈希值,然后跟官网的哈希值对比一下,看是不是一样的,如果是一样的,证明你是完整的,没有被篡改,如果不一样,这个补丁包我们就不能用,我们要重新去下过,这是通过哈希来检查文件的完整性。第二个要安装最小化的系统网络服务,对一些不用的服务,要把它给关闭掉,注销掉,这些服务软件要把它卸载掉,一些不必要的通信端口也是要封闭掉,在操作系统层面可以封,在网络层面也可以封。
文件权限,我们要把它设置好,比如说网络配置文件,一般的权限,我们要设置成六零零,服务文件,设置成六四四。两个文件的属主,都要把它设置成root,像我们系统服务文件,还有网络配置文件,这就是最小化系统网络服务
设置开机保护口令。其实开机保护口令有两重,第一重是我们的,比如说linux,要设置系统密码,第二重是密码,防止我们通过PE,绕过操作系统的认证去读取硬盘里面的数据
黑客,想访问硬盘里面的数据,但是又不知道操作系统密码,第一种方式暴力破解或者猜,但是这种效率很低,有可能猜个一年两年都猜不出来,这就不太现实了。如果我能接触到这台电脑,我可以在上面安装一个PE系统,就可以不通过你这里进来访问硬盘内容
通过PE小系统进来访问,就绕过了操作系统验证,就能够读取硬盘里边的数据了,但是我在底下的层再设一个密码,就是安装PE系统可以,但是你要输入密码,你才能安装PE系统。你不知道我的密码,你安不了PE系统,你就必须要通过我原来的操作系统来访问我里边的硬盘,这样就绕不过密码的认证,这就是密码的设置。
弱口令检查,禁用默认账号,比如说像一些root账号,访客账号,不用的账号把它禁用掉。用ssh来增强网络安全服务。安全登录,它是加密的,而传统的ftp这些都不加密,我们要用加密的通道。
tcp_wrapper,相当于是WINDOWS里边的端口过滤器,可以设置那些IP或者那些端口能够访问那些,其他的就把它给封闭掉,是来做服务的监控和过滤
构建unix和linux的防火墙软件,其实我们实际用的比较多的是iptables。它就跟我们交换机上写的包功率防火墙acl差不多,permit、delay、源端口、目的端口、IP地址
使用Tripwrie和MD5Sum工具软件来检测完整性,主要检测哈希值,发现有没有被篡改,还可以看里面的文件,有没有被篡改
检测LKM后门,这是可加载的内核模块,可以通过KLM模块去扩展内核功能,但是它也比较危险,直接生物内核,内核就是心脏,如果这块存在一些危害软件,很有可能直接导致系统崩溃,所以我们要对这一类的模块,进行检查,有一系列的检查工具,比如说Kstat、Chkrootkit、Rookit Hunter
系统安全监控或者叫监测,监测有利于及时的发现一些安全问题,WINDOWS里边同样有系统监测工具,比如说任务管理器,可以看CPU内存利用率,那些程序占用的各项资源比较高,这就需要引起我们的注意了,我们要考虑这个程序是不是木马或者病毒,它常见的工具有查看网络状态的,还有snort软件入侵检测工具,其他的禁止重要文件访问,我们重要的一些文件,你要修改它的权限,比如说像我们的这个叫网络配置的文件,它把权限修改为六零零。
chatrr +i /etc/inetd.conf表示保证文件的属主是root,并且将其设置为不能改变,这样的话,只有root才能修改这个文件了,这是禁止访问重要文件
禁止不必要的suid程序,suid可以使普通用户以root权限去执行某个程序,这个程序挺危险的,能够把普通用户提权成超级管理员用户,所以我们要严格的控制这类程序,控制不好,容易造成越权访问。
设置口令最小长度和最短使用时间,你看这里面参数有个叫PASS_MIN_LEN和 PASS_MIN_DAYS表示密码最小长度,密码最短使用时间。
限制远程访问,不是所有的主机都能够访问我的,我可以在两个文件里面去做设置,/etc/hosts.allow和/etc/hosts.deny。表示这两个文件你写在这里面的,表示只有这里面的IP地址才能访问我的主机。前面一个是白名单,后面一个是黑名单。
用户超时注销,可以设置,比如说在/etc/skel/.bash_logout文件里面,有一行叫timeout=600,表示十分钟不操作的话就自动注销,需要重新输入密码,才能访问,然后注销的时候要删除我们历史记录,历史记录在history文件里边。
UNIX/Linux安全模块应用参考
LSM就是Linux安全模块,它是为Linux内核提供一个轻量级通用的访问控制框架,使得很多访问控制功能都可以作为模块来实现,LSM采用了在内核源代码中放钩子的方法,放钩子说白了就是一个扩展,对内核的一些功能进行控制。
因为内核一般是不需要经常去变动的,如果你要增加功能,你去变动内核,造成的影响可能很大,所以我们就加了一个放钩子的方法,就是你要扩展什么功能,我们通过这样的一个钩子,去做扩展就行了。
安全功能扩展的两个模块,第一个是身份验证模块框架(PAM),第二个是SELinux。
PAM是通过插件的方式来增加linux身份验证服务,比如说你最早使用用户名密码服务,后来你想使用人脸识别,虹膜指纹等等,可以直接去开发Linux系统,在系统上去支持,这是可以的,但是不方便,而且可能会影响linux的安全性,所以通过其他的扩展模块去做,如果你要加入其他的认证方式,刚刚提的人脸、指纹,通过模块去实现,不需要动linux底层的一些东西,这就是PAM的工作机制。
而SELinux也是一个插件,增强linux安全性的插件。它由策略和实施两部分组成,策略封装在安全服务器当中实施,由对象管理器具体执行。然后SELinux可以实现两种访问控制,基于决策的访问控制和强访问控制,这也叫强制访问控制。
国产操作系统安全分析与防护
国产操作系统包括中科方德,中标麒麟,北京凝思科技、普华、深度Linux,华为鸿蒙操作系统,阿里飞天云操作系统、统信UOS。
国产操作系统它存在的安全风险,第一个Linux内核安全风险。因为国产操作系统都是基于开源的linux去做的深度定制和开发,所以linux有的问题它都有,缓冲区溢出、边界错误、访问验证等等
第二个自主研发系统组件的安全,因为是基于linux去定制的,上面有各种各样的组件,组件就是是软件,肯定有漏洞,WINDOWS的补丁更新了这么多年,还在持续的更新。
第三个是依赖第三方系统组件的安全,比如说有些时候我们在操作系统里面会用pgp做安全组件,如果它有漏洞,会影响系统的安全性
第四个是系统安全配置问题,就人为操作,比如说你的密码是一二三,肯定不安全
第五个硬件安全,国产操作系统受限于硬件而产生的一些安全问题,其实不仅国产操作系统,任何一个操作系统,如果底层硬件不安全,那肯定上层操作系统做的再安全也没辙,CPU都坏了,你的操作系统、应用肯定跑不起来,所以硬件还是挺重要的
国产操作系统的安全增强措施,国产操作系统在自主可控,安全可信方面,对开源的Linux系统进行安全增强,这里面需要注意,都是基于linux去开发的
UOS是我们国家桌面操作系统,是基于linux开发的,它可以从多个方面对linux操作系统提供安全保障,包含管理员分权,操作员,审计员,安全管理员,三权分离
最小特权结合角色的基于类型访问控制,说白了基于角色的访问控制,细颗粒度的自主访问控制,多级安全等等,这一系列的功能从内核到应用,做到全方面的防护Linux内核。从目前来看,应该是比较安全的,因为是开源的,有很多早期的漏洞
开源社区不停的在更新,所以内核漏洞是比较少的,应用层面现在我们都在推国产化,比如说office,现在我们都用WPS了,然后一些系统业务软件基本上都是由国内的公司去开发的,这是关于国产操作系统的安全分析与防护