注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关C和C++安全编码

C和C++安全编码

C和C++安全编码

定 价:¥45.00

作 者: (美)西科德 著,荣耀 等译
出版社: 机械工业出版社
丛编项: C++设计新思维
标 签: VC++

购买这本书可以去


ISBN: 9787111261483 出版时间: 2010-01-01 包装: 平装
开本: 16开 页数: 227 字数:  

内容简介

  本书是关于C和C++安全编码的著作。本书介绍了C和C++程序中已经导致危险的、破坏性的基本编程错误,包括在字符串、指针、动态内存管理、整数、格式化输出、文件I/O等中的漏洞或缺陷。本书还提供了对这些编程错误的深入剖析,并给出缓解策略,以减少或消除恶意利用漏洞的风险。本书适合C/C++程序员、软件安全工程师参考。洞悉软件漏洞的成因,熟知规避之道通常而言,可利用的软件漏洞都由本可避免的软件缺陷所导致。在分析了过去10年中近18000份漏洞报告后,CERT/CC发现少量的根本原因导致了这些漏洞的产生。本书识别并解释了这些原因,而且展示了预防利用漏洞的步骤。此外,本书还鼓励程序员采用最佳安全实践,并培养安全的开发理念,这不但有助于保护软件免遭当前的攻击,更可使它们免遭将来可能发生的攻击。基于CERT/CC的报告和总结,Robert Seacord系统地揭示了最可能导致安全缺陷的编程错误,展示了这些缺陷的利用方式,介绍了可能导致的后果,并提供了安全的替代做法。本书特别讨论了如下技术细节:改善任何C/C++应用程序的整体安全性。抵御利用不安全的字符串操作逻辑的缓冲区溢出和栈粉碎攻击。避免因对动态内存管理函数的不当使用而导致的漏洞和安全缺陷。消除与整数相关的问题,包括整数溢出、符号错误以及截断错误等。正确地使用格式化输出函数,避免引入格式字符串漏洞。避免I/O漏洞,包括竞争条件等。本书提供了许多针对Windows和Linux的安全代码、不安全代码以及利用程序的例子。如果你负责创建安全的C或C++软件,或者需要保持这类软件的安全性,本书为你提供了详尽的专家级协助。在这方面,其他任何书籍都望尘莫及。

作者简介

  Robert C.Seaco rd是宾夕法尼亚州匹兹堡市SEI(SoftwareEngineering Institute,软件工程研究院)的CERT/CC(CERT/Coordination Center,CERT协调中心)高级漏洞分析师。CERT/CC定期对软件漏洞报告进行分析,并且评估互联网及其他关键的基础设施可能遭受的风险,此外还从事其他一些与安全有关的研究活动。作为一名涉猎广泛的技术专家,Robert还是《Building Sy stems from Commercial Components》(Addison—Wesley,2002)和《Modernizing Legacy Systems》(Addison—Wesley,2003)的合著者,并发表T40多篇论文,领域涉及软件安全、基于组件的软件工程、基于Web的系统设计、遗留系统的现代化改造、组件仓库与搜索引擎以及用户界面设计与开发等。Robert于1982年起在IBM开始职业编程生涯,从事通信和操作系统软件研发、处理器开发以及软件工程。Robert还为x协会(X Consortium)工作,为CDE(Common DesktopEnvironment,公共桌面环境)和x Window系统开发和维护代码。他还积极参与JTCl/SC22/WGl4的C语言国际标准化工作组工作。

图书目录

译者序
序言
前言
作译者简介
第1章 夹缝求生
1.1 衡量危险
  1.1.1 损失的现状
 1.1.2 威胁的来源
  1.1.3 软件安全
 1.2 安全概念
 1.2.1 安全策略
  1.2.2 安全缺陷
  1.2.3 漏洞
  1.2.4 利用
  1.2.5 缓解措施
1.3 C和C++
1.3.1 C和C++简史
1.3.2 C存在的问题
1.3.3 遗留代码
1.3.4 其他语言
1.4 开发平台
 1.4.1 操作系统
  1.4.2 编译器
1.5 本章小结
1.6 阅读材料
第2章 字符串
2.1 字符串特征
2.2 常见的字符串操作错误
 2.2.1 无界字符串复制
  2.2.2 差一错误
  2.2.3 空结尾错误
  2.2.4 字符串截断
 2.2.5 与函数无关的字符串错误
 2.3 字符串漏洞
 2.3.1 安全缺陷
  2.3.2 缓冲区溢出
 2.4 进程内存组织
 2.5 栈粉碎
 2.6 代码注入
 2.7 弧注入
 2.8 缓解策略
  2.8.1 预防
  2.8.2 字符串流
  2.8.3 检测和恢复
 2.9 著名的漏洞
  2.9.1 远程登录
  2.9.2 Kerberos
  2.9.3 Metamail
 2.10 本章小结
 2.11 阅读材料
第3章 指针诡计
 3.1 数据位置
 3.2 函数指针
 3.3 数据指针
 3.4 修改指令指针
 3.5 全局偏移表
 3.6 dtors区
 3.7 虚指针
 3.8 atexit()和on exit()函数
 3.9 longjmp()函数
 3.10 异常处理
  3.10.1 结构化异常处理
  3.10.2 系统默认异常处理
 3.11 缓解策略
……
第4章 动态内存管理
第5章 整数安全
第6章 格式化输出 
第7章 文件I/O
第8章 推荐的实践
参考文献
缩略语

本目录推荐