一、引言
1.1 概览
优秀的安全专业人员拥有两个重要的技能:(1)安全的感知,以及(2)安全原则的知识。我希望完成这门课的学生可以拥有二者。拥有不意味着“知道”;它意味着能够应用这些技能。
1.2 风险和威胁
使用计算机系统时的风险:
你正在公共图书馆中写你的大作业,并且远程登录到了你学院的 UNIX 服务器。你需要离开一分钟,并且有点懒,决定不锁上你笔记本的屏幕。如果恶意人员利用这个机会,最严重的后果是什么?恶意人员需要多少时间来造成最严重的后果?
你来到公共图书馆,打算使用这里的电脑来远程登录到你学院的计算机,或者访问网上银行;你面临什么风险?
你来到了一个不错的小区中的 ATM 机前来取款(即没有抢劫),你的风险是什么?
配置计算机系统时的风险:
你打算在家里访问你公司的电脑,所以你配置了公司的电脑,以便可以访问它的远程桌面,风险是什么?
你在你的屋子里安装了一个无线接入点,来搭建无线网络,风险是什么?
你是系统管理员,将多个程序变为特权程序,所以你就不会被一些任务困扰(用户可以使用这些特权程序来完成这些任务),风险是什么?
开发计算机系统时的风险:
你的程序有一些缓冲区溢出问题,但是你迫于压力要及时发布软件产品,并决定在这个发行版中不修复这些漏洞,风险是什么?
你的公司刚刚赢得了政府的电子投票系统的投标。你的系统可能面临的风险是什么?
你正在为一家商店开发在线商城的 Web 页面,你面临的风险的施恩么?
安全的感知:看到和预测风险的能力。如果你不能系统的枚举上述例子中的风险,你就没有良好的安全感知。我希望在这门课之后,你可以获取良好的风险感知,并且能够在你使用、安装或开发计算机系统时评估你的风险。
上一节课中学到的东西:这门课的学生之前没有足够重视培养安全意识。每个学期的大作业,我看到学生们(不是一小部分,而是大部分)演示它们系统的杰出功能,但是没有展示安全感知。它们将很多时间花在为它们的系统实现实用的功能上,但是没有花费任何时间来思考这些功能的安全后果(例如,我们是否应该访问控制,来防止功能被恶意用户滥用,来获取额外权限?)
1.3 应对策略
方法:有三个预防措施:
预防:这门课的核心
- 预防:使其不可能
- 阻止:使其更困难
- 转移“使其它目标更加有吸引力
检测
- 监控
- 入侵检测
恢复
- 恢复数据
- 识别损失
- 寻找犯人:取证
预防的工作方式
- 策略(IST 课程)
- 密码学
- 密码学不仅仅是加密,它用于完成很多安全相关的目标,例如数字货币,时间戳,安全的分布式计算,电子投票,电子投标,等等。
- 我们在这门课中只会涉及基本的密码学。
- 控制(这门课的核心组件)
- 示例:确保只有在安全区域内的人才能读取文件。
- 硬件控制
- 软件控制
预防如何失效
- 漏洞
- 恶意程序:病毒、后门,等等。
- 控制的不当使用
- 用户的错误
如何进行正确的预防?
- 安全工程原则
- 风险感知
- 安全编程
1.4 计算机安全的意义
当我们讨论“计算机安全”,我们的意思是,我们强调任何计算机相关系统的三个重要的层面:
- 保密性(C)
- 完整性(I)
- 可靠性(A)
这三个词(CIA)的含义十分广泛。对于不同的应用,CIA 的解释也不同。
- 保密性:访问(读取、查看、打印、了解,以及其他)
- 内容:加密(密码学)
- 数据存放:隐写术。例如,股票投资、犯人、间谍、水印
- 资源隐藏:操作系统信息和配置
- 指纹识别
- 身份(匿名)
- 完整性:修改(包含编写、修改、状态修改、删除和创建)
- 数据完整性
- 程序完整性
- 系统完整性
- 身份完整性(不可复制)
- 来源(位置)完整性(例如网络回溯)
- 可靠性
- 拒绝服务(DoS)
- 示例:它们属于什么分类?
- TCP SYN 泛洪
- 嗅探
- 身份伪造
- ATM 机欺骗
- 在纯文本文件中保存密码