计算机安全
目的:阻止undesired behaviour:机密性 Confidentiality(盗窃信息);完整性 Integrity(修改信息或功能);可用性 availability
破坏breach的第一步是探索漏洞vulnerability(渗透测试).
软件安全:关注软件在设计中和使用中的安全性。
关注于白盒,也就是代码,相反,黑盒关注于操作系统安全、反病毒、防火墙等等,忽视代码。
1.操作系统安全:无法保证特定软件的安全策略,无法提供信息流的安全。
2.防火墙和入侵检测(IDS):不健全的unsound、粗颗粒度的fine-grained,可能会产生误报。
3.反病毒软件anti-virus scanners:经常会漏掉。
举例:心脏滴血漏洞
课程的对象:设计、开发、部署、测试安全软件的人员->secure software development
关注2个方面:
黑帽/白帽
低级漏洞,C和C++编些的应用可能存在一些低级漏洞:
1.缓存溢出(堆、栈、整型、over-writing&over-reading)
2.数据类型转换异常
3.无效指针
并成为memory safety,缓存安全。
LowLevelSecurity
*缓存溢出(Buffer Overflow),低级语言C、C++中,存在显著的安全性威胁。
*正常情况下,缓存溢出会导致应用崩溃。
*黑客可使用此类代码窃取信息、执行自己的代码
它的重要性在于:1.低级语言的普遍使用 2.作为一个问题长年被黑客利用
操作系统核心、高性能服务器(IIS、Apache、Nginx)、数据库(Sql Server、MySQL)、嵌入式系统(星球探测车、工控系统、汽车)等等都是由它编写。