coursera上的软件安全课程的课后阅读补充
在coursera选修了一门软件安全的课程。下面是教授列出来的阅读:
Week 1
Readings
Required reading
The only required reading this week is the following:
- Common vulnerabilities guide for C programmers. Take note of the unsafe C library functions listed here, and how they are the source of buffer overflow vulnerabilities. This list will be relevant for the project and this week's quiz.
- (Reference) Memory layout. Explains a C program's memory layout, replicating the discussion in the second lecture.
Supplemental readings
The following readings are optional: They are meant to supplement the material you are getting in the videos. Check them out if you are interested in learning more, or if you just want to see it all explained in a different way.
- (Reference/refresher) PC Assembly Language, by Paul Carter. This free book introduces x86 assembly, and should complement ideas seen in the lectures.
- Smashing the Stack for Fun and Profit - original article on the topic by Aleph One, in 1996
- Exploiting Format String Vulnerabilities - report describing these format string attacks when they were first recognized
- Basic Integer Overflows - discussion of how overflowing integers can be a vector of attack
WEEK2
Required Readings
The following two blog posts cover the topics of memory safety and type safety in somewhat greater depth
- What is memory safety?
- What is type safety?
Supplemental readings and links
The following readings are optional: Check them out if you are interested in learning more about material we've covered in lecture (many were explicitly linked in the lecture slides).
Attacks and modern defenses, generally
- On the effectiveness of Address Space Randomization, by Shacham, Page, Pfaff, Goh, Modadugu, and Boneh - showed how ASLR implementations on 32-bit systems can be defeated relatively easily
- Smashing the Stack in 2011 - Paul Makowski revisits the 1996 Aleph One article (on the supplemental reading list from last week), considering modern defenses
- Low-level software security by example, by Erlingsson, Younan, Piessens, describes several low-level attacks and modern defenses.
Return-oriented Programming (ROP)
- Geometry of Innocent Flesh on the Bone: Return to libc without Function Calls (on the x86), by Hovav Shacham - introduced the idea, and the term, return oriented programming
- Q: Exploit Hardening Made Easy, by Schwartz, Avgerinos, and Brumley - explains how to automatically generate ROP exploits
- Blind ROP - return-oriented programming without source code, automatically
Control-flow integrity (CFI)
- Control Flow Integrity, by Abadi, Budiu, Erlingsson, and Ligatti - paper that introduced CFI
- Enforcing Forward-Edge Control Flow Integrity, by Tice, Roeder, Collingbourne, Checkoway, Erlingsson, Lozano, and Pike, describing a partial CFI implementation now available in LLVM and gcc
- MoCFI, by Niu and Tan - modular CFI that has low overhead
- See also the paper Low-level software security by example, above
Secure coding
These are a few references linked in the lecture slides. We will cover secure coding and design in more depth during week 4.
- CERT C coding standard
- Secure Programming HOWTO by David Wheeler
- Robust Programming by Matt Bishop
- DieHard project - drop-in replacement for
mallocthat uses randomization to defend against heap-based exploits
coursera上的软件安全课程的课后阅读补充的更多相关文章
- Andrew Ng在coursera上的ML课程_知识点笔记_(1)
1.Feature Scaling(特征缩放): 如上图所示,x1是房屋面积,x2是房间个数,若不进行特征缩放,则代价函数J的曲线近似为一个瘦长的椭圆(我暂时这么理解,θ1和θ2分别是x1和x2的权值 ...
- 关于Coursera上的斯坦福机器学习课程的编程作业提交问题
学习Coursera上的斯坦福机器学习课程的时候,需要向其服务器提交编程作业,我遇到如下问题: 'Submission failed: unexpected error: urlread: Peer ...
- 对于coursera上三门北大网课的评测
今年暑假开始就选了coursera上三门北大的网课——C++程序设计.算法基础.数据结构基础,它们属于一个项目的,上的话每个月249块钱,项目里包括这三门一共有七门课.因为一开始是三门课同时上的,数据 ...
- Coursera台大机器学习课程笔记5 -- Theory of Generalization
本章思路: 根据之前的总结,如果M很大,那么无论假设泛化能力差的概率多小,都无法忽略,所以问题转化为证明M不大,然后上章将其转化为证明成长函数:mh(N)为多项式级别.直接证明似乎很困难,本章继续利用 ...
- Coursera上的machine learning学完啦
Coursera上的第一门公开课最终要结束啦-- 全部的代码http://download.csdn.net/detail/abcd1992719g/7306053 老师的Octave代码很赞.框架打 ...
- 范仁义html+css课程---11、html补充知识
范仁义html+css课程---11.html补充知识 一.总结 一句话总结: 小于号(<):< 大于号(>):> 空格: 二.html 字符实体 1.小于号(<)和大 ...
- 一些我推荐的和想上的网络课程(Coursera, edX, Udacity)
从面向找工作的角度出发,我觉得以下课程有很大帮助: 首推Robert Sedgewick,也是我觉得对我帮助最大的老师,讲课特点是能把复杂的算法讲解清楚(典型例子:红黑树,KMP算法) 他在Cours ...
- 在coursera上有哪些值得推荐的课程
来自知乎 https://www.zhihu.com/question/22436320/answer/224996328
- 无责任共享 Coursera、Udacity 等课程视频
本文转载自网络,原作者不详. (本文是用 markdown 写的,访问 https://www.zybuluo.com/illuz/note/71868 获得更佳体验) 程序语言 interactiv ...
随机推荐
- HDOJ(HDU) 1570 A C
Problem Description Are you excited when you see the title "AC" ? If the answer is YES , A ...
- 51nod-正整数分组问题(基础方程DP-01背包)
正整数分组 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 思路: 这题的实质其实也是0-1背包问 ...
- jquery 让指定导航隐藏
$(function(){ var aLink=$('.nav-content .nav li a'); // 选中所有a var aText=['星网服务','在线搭配','星网学院','推客联盟' ...
- centos虚拟机NAT静态IP设置
宿主机为Centos6.3 64位,三台虚拟机为为Centos6.3 64位.虚拟机的网络连接方式为默认的NAT方式.虚拟机默认为DHCP方式动态获取IP.为了在三台虚拟机上搭建hadoop,需要将这 ...
- 添加链接服务器 SQL SERVER
使用sql语句: exec sp_addlinkedserver @server='serverontest',@provider='sqloledb',@srvproduct='',@datasrc ...
- 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
一 QT的内存管理 1 QT中的内存管理是QObject来管理的 2 QT中的内存管理没有cocos2dx中的引用计数 3 组件能够指定父对象 QTimer *timer = QTime ...
- POJ 2175 Evacuation Plan (费用流,负环,消圈法,SPFA)
http://poj.org/problem?id=2175 Evacuation Plan Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- 笔记本分享无线Wifi
两种方法: 一.使用软件分享,如Wifi共享精灵,设置非常简单. 二.开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费 ...
- 前端笔试题目总结——应用JavaScript函数递归打印数组到HTML页面上
数组如下: var item=[{ name:'Tom', age:70, child:[{ name:'Jerry', age:50, child:[{ name:'William', age:20 ...
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
http://blog.csdn.net/luck901229/article/details/8261640