操作系统 - 保护和安全
因为最近操作系统要考试了,复习一下知识点,然后做一个记录,也好以后看看。
就从最后一章开始吧,最后一章是安全,压轴的那当然一定是重要的嘛,所以我们第一个说。毕竟我也是学安全的。
Ax 安全环境 Secure Environment
a 安全环境三要素
- 数据机密性 Data secrecy
- 数据完整性 Data integrity
- 系统可用性 System availability
b 系统安全的特征
- 多面性
- 动态性
- 层次性
- 适度性
c 计算机安全的分类
“可信任计算机系统系统评价标准”将计算机系统分为四类(ABCD)七等级等级 描述 D1(欠缺安全保护级) 无密码保护的个人计算机系统 C1(提供TCB安全控制 用户和数据分离,文档都具有相同的机密性 C2(受控存取控制级别) 增加一个个体层访问控制,加强了可调的审慎控制 B1(强制性保护功能) 所有的用户都必须与安全等级相关联 B2(自上而下的结构化设计方法) 对设计方法检验,并对隐藏信道进行安全分析 B3(ACL级别) 足够的安全审计和灾难恢复能力 A1(最高级别) 具有强制存取控制和形式化模型技术的应用
Bx 数据加密技术 Data Encryption Technique 暂时略
a 数据加密原理
b 对称加密算法与非对称加密算法
c 数字签名和数字证书
Cx 用户验证 User Authentication 暂时略
a 使用口令验证
b 基于物理标志的验证技术
c 生物识别验证技术
Dx 来自系统内部的攻击 An Attack From An Internal System
a 早期常采用的攻击方式
- 窃取尚未清除的有用信息
- 通过非法的系统调用搅乱系统
- 使系统自己封杀校验口令程序
- 尝试许多在明文规定中不允许做的操作
- 在OS中增添陷阱门
- 骗取口令
b 逻辑炸弹和陷阱门
恶意软件(malware)定义:是指攻击者专门编制的一种程序,用来造成破环。
- 独立运行:它可以通过OS调度如蠕虫、僵尸等。
- 寄生类:不能独立运行,寄生在某个应用程序中,如逻辑炸弹、特洛伊木马、病毒。
☣ 逻辑炸弹 Logic bomb
最初,程序员担心在公司可能被解雇,预先秘密将一个破环程序放入OS中,程序员每天输入口令,就不会发作,得不到这个口令,就会执行破环程序,删除文件,甚至引起系统崩溃。
当然,也有很多种方式,比如时间触发,事件触发,计数器触发。
☣ 陷阱门 Trap door
通常,程序员为了方便调试程序,对程序开放了一个隐藏入口点,得到相应的权限来进行访问程序,但是如果被恶意有人用于未授权的访问,便对系统安全构成严重的威胁。
这是正常的登入程序
while(TRUE)
{
printf("login: ");
get_string(name);
disable_echoing();
printf("password: ");
get_string(password);
enable_validity(name, password);
v = check_validity(name, password);
if(v)break;
}
execute_shell(name);
插入陷阱门后的代码
while(TRUE)
{
printf("login: ");
get_string(name);
disable_echoing();
printf("password: ");
get_string(password);
enable_validity(name, password);
v = check_validity(name, password);
if(v || strcmp(name, "enomothem"))break; # 关键代码
}
execute_shell(name);
当用户名或口令都正确,或者用户名为enomothem时,无论什么口令都可以成功登入。
c 特洛伊木马和登入欺骗
特洛伊木马 Trojan horses
是一个嵌入到其它程序中的、隐蔽的、危害安全的程序。 隐蔽性强、给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。木马本身是一个代理程序,在系统内部间接攻击,对寄生的程序不会产生明显的影响,很难发现其存在。
登入欺骗 login spoofing
写一个模拟登入的程序,让用户输入账号,密码,然后我们进行监听,但用户登入第一次时不会成功,用户当然会以为是自己输入错了。这时我们监听就监听到了。而用户第二次则会自动跳转到真正的登入程序中。
d 缓冲区溢出
C语言对程序员足够信任,所以对数组不检查,例如
int i;
char C[1024];
i = 12000;
C[i] = 0;
这远远超出了数组C所定义的范围,导致溢出。蠕虫病毒就是利用此漏洞。
Ex 来自系统外部的攻击 Attacks From External Systems
a 病毒、蠕虫和移动代码
当前最严重的外来威胁是病毒、蠕虫和移动代码等。
🤔 病毒 Viruses
计算机病毒是一段程序,能附加在其它程序中,自我复制,传播到其它系统中
病毒(Computer Virus)传播性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性
🤔 蠕虫 worms
与病毒类似,也能自我复制和传播,但蠕虫是一个独立的程序,可以作为单独的进程运行。
蠕虫病毒是一种能够利用系统漏洞通过网络进行自我传播的恶意程序。独立存在。蠕虫病毒可以在几个小时内蔓延全球。蠕虫没有病毒传播强,因为需要找到计算机系统OS的漏洞,如果OS缺陷被修复,那么将无从下手。
🤔 移动代码
在因特网上,在远程执行计算机代码称为移动代码。
具体说就是一个程序能在多个系统中来回迁移。比如小应用程序。
防范
沙盒法:使用虚拟地址空间隔离,并分析代码所需的资源。
解释法:结果解释器检查代码是否符合安全要求。
b 计算机病毒特征和类型
1.计算机病毒的特征
寄生。依附在其它程序中
传染。中我复制传播在其它文件夹
隐蔽。避免被发现,规避反病毒软件检测。
- 伪装成正常程序
- 隐藏在正常程序中并存在于不常访问的地方
- 自身不断改变
破坏。占用系统空间和处理机时间,对系统文件进行破环,使其发生异常。
2.计算机病毒的类型
文件型、内存驻留、引导扇区、宏、电子邮件。
c 病毒的隐藏方式
- 伪装:通过压缩、修改日期。
- 隐藏:隐藏在目录和注册表空间中,页内零头中。更改磁盘分配的数据结构,更改坏扇区列表。
- 多形态:插入多余的指令、对病毒程序进行加密。
d 病毒的预防和检测
1.病毒的预防
- 备份!备份!备份!
- 使用高安全性的OS,比如Linux、Unix。
- 使用正版软件。
- 购买比较不错的防病毒软件。
- 来历不明的邮件不要轻易打开。
- 定期检查硬盘和U盘,用反病毒软件清除其中的病毒。
- 打补丁,更新系统。
2.病毒的检测
- 基于病毒库检测
- 完整性检测
Fx 可信系统 Trusted System
a 访问矩阵模型和信息流控制模型
b 可信计算基TCB(Trusted Computing Base)
c 设计安全操作系统的原则
- 微内核原则
- 策略于机制分离原则
- 安全入口原则
- 部分硬件实现原则
- 分层设计原则