
最 低 价:¥22.10
| Chris Wysopal,是Veracode公司CTO。曾任@stake公司的研发副总。他领导了无线、架构及应用程序安全工具的开发。他是LophtCrack密码审计攻击的合作开发者。他曾在美国国会进行过安全声明,并曾在Black Hat大会和西点军校讲演。 Lucas Nelson,是Symantec公司的纽约地区技术经理,他领导着Semantec的Application Security Center Of Excellence(卓越应用程序安全中心),该中心主要开发一些应用程序安全实践和指导原则,并对新员工进行应用程序测试方法的培训。 Dino Dai Zovi,是Matasano安全公司的主要成员,为企业和供应商提供软件安全化服务。他是在MacOSX、802.11以及硬件可视化方面受人尊敬的研究人员和权威。Dino经常出席包括Black Hat和Microsoft公司的BlueHat等大会。 Elfriede Dustin,是《Effective Software Testing》一书的作者,也是《Automated Software Testing》和《Quality Web Systems》这两本书的第一作者。他是自动化测试生命周期方法(ATLM)的创始人。 |
| 本书的“美誉” 译者序 序言 前言 致谢 关于作者 第一部分综述 第1章从传统软件测试转变2 1.1安全测试和传统软件测试的对比4 1.2安全测试转变的范式6 1.3高级安全测试策略7 1.4像攻击者一样思考9 1.4.1排定工作的优先级10 1.4.2在侦测工作中使用辅助工具11 1.4.3从漏洞知识中学习12 1.5小结13 第2章漏洞是怎样藏到软件中的15 2.1设计漏洞与实现漏洞16 2.2常见的安全设计问题17 2.2.1密码技术使用的败笔17 2.2.2对用户及其许可权限进行 跟踪19 2.2.3有缺陷的输入验证20 2.2.4薄弱的结构性安全21 2.2.5其他设计缺陷23 2.3编程语言的实现问题24 2.3.1编译型语言:C/C++24 2.3.2解释型语言:Shell脚本 和PHP32 2.3.3虚拟机语言:Java和C#35 2.4平台的实现问题36 2.4.1问题:符号链接37 2.4.2问题:目录遍历37 2.4.3问题:字符转换38 2.5常见的应用程序安全实现问题39 2.5.1SQL注入39 2.5.2跨站点执行脚本40 2.6开发过程中的问题41 2.6.1安全需求和前提条件的文档 记录贫乏41 2.6.2交流和文档的匮乏42 2.6.3在开发过程中缺少安全过程42 2.7部署上的薄弱性43 2.8漏洞根源分类法44 2.9 小结44 第3章安全的软件开发生命周期46 3.1将安全测试融入到软件开发 生命周期中47 3.2阶段1:安全原则、规则 及规章49 3.3阶段2:安全需求:攻击用例51 3.4阶段3:架构和设计评审/威胁建模53 3.5阶段4:安全的编码原则53 ⅩⅩⅣ3.6阶段5:白盒/黑盒/灰盒测试54 3.7阶段6:判定可利用性54 3.8安全地部署应用程序55 3.9补丁管理:对安全漏洞进行管理55 3.10角色和职责56 3.11SSDL与系统开发生命周期的 关系56 3.12小结58 第4章基于风险的安全测试61 4.1信息搜集61 4.1.1与架构师会谈62 4.1.2运行时检查63 4.2Windows平台63 4.3UNIX痕迹检查67 4.4完成信息搜集工作69 4.5建模过程69 4.5.1识别威胁路径70 4.5.2识别威胁73 4.5.3识别漏洞74 4.5.4将与漏洞相关的风险进行 分级75 4.6判定可利用性76 第5章白盒、黑盒和灰盒测试77 5.1白盒测试77 5.2黑盒测试78 5.3灰盒测试78 5.4建立用于测试的实验室79 5.4.1侦探程序80 5.4.2嗅探器80 5.4.3调试器81 5.4.4 硬件81 5.4.5商业的测试设备81 5.4.6网络硬件82 5.5开展应用程序攻击82 5.5.1实验室环境82 5.5.2网络攻击83 第二部分攻击演练 第6章常见的网络故障注入90 6.1网络90 6.2端口发现91 6.2.1netstat和本地工具91 6.2.2端口扫描94 6.3代理95 6.3.1最简单的代理:随机TCP/UDP 故障注入程序96 6.3.2构建故障注入数据集100 6.3.3中间人代理103 6.4结论104 6.5小结104 第7章会话攻击106 7.1将要测试应用程序作为攻击目标106 7.2身份鉴别和授权106 7.3对会话和资源ID进行攻击107 7.4Cookie搜集111 7.5判断SID的长度:阶段步进分析113 7.6跨站执行脚本115 7.7 结论118 7.8小结118 第8章Web应用程序的常见问题119 8.1绕过授权120 8.2SQL注入121 8.2.1SQL注入基础121 8.2.2数据库模式探索126 8.2.3在SQL服务器上执行命令130 8.3上传可执行内容133 8.4文件枚举135 8.5源代码泄露漏洞138 8.6HTTP中的隐藏字段140 8.7结论143 8.8 小结143 第9章使用WebScarab144 9.1WebScarab代理144 9.2结论156 9.3小结156 第10章实现定制的侦探工具158 10.1协议发现158 10.2SOAP和WSDL161 10.3SOAPpy库163 10.4结论170 10.5小结170 第11章本地故障注入171 11.1本地资源和进程间通信171 11.1.1Windows NT对象172 11.1.2UNIX上的setuserid进程 和进程间通信174 11.2对本地应用程序进行威胁建模175 11.2.1列举Windows应用程序资源176 11.2.2列举UNIX应用程序资源176 11.3测试可执行脚本的ActiveX对象接口178 11.4识别可“安全”执行脚本对象179 11.5测试对象接口181 11.5.1手工的接口测试181 11.5.2自动的ActiveX接口测试183 11.5.3 对崩溃进行评估183 11.6对文件格式进行侦探184 11.7文件破坏测试185 11.8文件破坏自动化185 11.9对命令行工具进行侦探186 11.10Immunity公司的ShareFuzz187 11.11暴力的二进制测试程序188 11.12CLI Fuzz188 11.13共享内存192 11.14小结194 第三部分分析 ⅩⅩⅤ第12章判定可利用性198 12.1漏洞分级198 12.1.1时间198 12.1.2可靠性/再现性198 12.1.3访问199 12.1.4定位200 12.2内存侵害和任意代码执行201 12.3计算机体系结构202 12.3.1栈203 12.3.2栈缓存区溢出205 12.3.3堆205 12.4判定可利用性208 12.4.1进程崩溃转储208 12.4.2被控制的内存和寄存器208 12.4.3缓解因素:栈和堆保护212 12.5更多资料213 |
商品评论(0条)