本书通过剖析黑客攻击技术,介绍了网络攻击和防御中所采取的策略。本书从黑客攻击/安全防御两个方面分析了不同的主题,详细给出了黑客攻击的动机和防御的方法。本书根据特定的技术领域和管理任务来组织章节,为网络防御者提供了理论知识,因为入侵者使用不断变化的、主动的工具和技术。
本书每个章节都提供了访问攻击或保护性Web站点和其他资源的“路径”,以便对已有内容进行补充。参考这些补充的和不断升级的资源可以确保本书的时效性和长期有效性。通过告诉IT专业人员如何模拟黑客的思维,为打赢保护数字资产的“战争”提供了非常有价值的武器。
本书具有以下特点:
●集中于Unix和微软的Windows NT/2000平台。
●根据合理的安全架构,利用图表方式对攻击和对抗两个方面进行了比较分析。
●为下列内容提供技术基础:程序设计和代码利用的方法,协议及其基本脆弱性,数据库及其弱点和防御措施。
●分析入侵者在深入网络内部过程中所使用的策略和工具。
●揭示了调查取证的有关工作。
无
致谢
正如人们所说的,每一本书都有一个故事。本书的历史非常悠久,而且充满很多变数。在本书的撰写过程中,很多人都花费了大量的时间、精力和智慧,或者给予了精神上的支持。
作者对下面这些为本书做出贡献和给予支持的人员致以诚挚的感谢:
●Rich OHanley和Auerbach出版社生产部的全体员工,感谢他们对本书的不知疲倦的支持,不管本书的历史有多长(甚至有些令人讨厌)。
●我们所有的作者——Felix Lindner、Jim Barrett、Scott Brown和John Zuena,他们花费了大量的时间和精力撰写了其中非常精彩的几章,涉及黑客社区、恶意软件、目录服务以及网络硬件,这些章节中都包含了非常独特的见解和很有意思的内容。
●我们的技术审阅人,包括Jim Tiller、Anton Chuvakin、Sean Cemm、Ben Rothke和Ted Shagory,感谢他们卓越的见识,他们花费了大量的时间和精力来帮助完成本书。我们相信此审阅过程将一直持续到本书正式出版为止,同时我们也感谢本书的读者和审阅人对本书质量的关注。
此外,Dave Aitel还要感谢Justine Bone的支持和鼓励,Susan Young也要感谢下列人员:Darklord(Thomas McGinn),尽管几个月以来他牺牲了大量周末休息时间,而且极度疲劳,但他还是一直信守承诺,对本书给予了大力支持;感谢Trevor Young为本书付出了自己的才能、热情、时间和关注,他绘制了本书所有的图表;感谢Gemma Young和她的父母——Sylvia和Neil,感谢他们在长达两年的长途电话交流中所给予的关心、支持和建议;此外,还要感谢国际网络服务公司(特别是Steven Marandola、Bob Breingan和Shaun Meaney等人)在为本书的最终完稿上所提供的时间和支持。
Susan Young, Dave Aitel:Susan Young: Susan Young 过去七年一直在安全领域工作,其中四年致力于安全咨询工作,帮助客户设计和实现安全的网络,进行安全技术培训,并对客户的系统进行安全评估和穿透性测试,或者进行网络防御。她目前是国际网络服务公司(INS)波士顿区安全培训部的高级安全咨询师。
Dave Aitel: Dave Aitel 是Immunity公司(www.immunitysec.com)的创始人,他在保密行业安全咨询公司和国家安全局积累了丰富的信息安全方面的经验,他所开发的工具SPIKE和SPIKE代理,被广泛认为是目前最好的黑盒应用评估工具。
吴世忠 郭涛 李斌 宋晓龙 等:暂无简介
作为人类智慧的结晶,计算机和网络在本质上具有程序性和严谨性。但是,人类是网络世界的主宰,人类思维不会受到这些程序的束缚,具有无限的创造性,这就是信息安全日益成为当今社会的重大问题之一的根本原因所在。所谓道高一尺,魔高一丈,攻与防永远是信息安全领域中恒久不变的主题。因此,能够深入了解黑客如何展开攻击行动,对于更好地实施信息安全保障具有很好的借鉴意义,而本书正是这个方面的一本不可多得的教材。
作为译者,我们得以先睹为快。反复推敲之余,我们感到本书具有以下几个显著特点:一是本书将信息安全的攻与防比喻成国际象棋的博弈,并且把这个思想贯穿于本书始终,国际象棋的本质也是一种思维的艺术,信息安全与国际象棋之间存在很多相似之处,比喻不但非常贴切,而且使本书的行文更加幽默和生动;二是本书从攻和防两个视角来看待信息安全,知己知彼,百战不殆,信息安全工作人员只有更好地了解黑客攻击的动机和行为,才能更好地进行防范;三是本书通过生动翔实的案例来对沉闷乏味的黑客行为进行描述,能够吸引读者的注意力;四是本书在各章中都给出了大量的代码和操作结果,具有很强的实用性和可操作性。
本书分为三个部分:第一部分给出了实施黑客攻击所必需具备的基础知识,包括程序设计、协议以及黑客攻击工具等;第二部分从网络协议、服务、数据库入侵和恶意代码等方面,阐述了黑客是如何对系统和网络进行渗透的;最后一部分详细介绍了黑客在成功破解系统或网络后,通常会如何去扩大“战果”。
值得注意的是,在本书的第18章给出了一个黑客入侵的完整案例,但作者的初衷并不是想要教人们如何去进行攻击和破坏,而是希望人们通过认识黑客攻击的过程来更好地进行防御。
总而言之,本书是一本深入浅出的网络安全技术宝典,具有很强的实用性和可操作性,能够为广大信息安全爱好者起到很好的指导作用。本书不仅适合于信息安全领域的广大科研人员,也可作为信息安全从业人员的参考手册。古人云,开卷有益,我们希望本书对所有读者都有所裨益。
本书由吴世忠、郭涛、李斌、宋晓龙主持翻译,其他参与翻译人员还有吴迪、张动、李淼、张彬彬、易郡、徐惠林、陈庆锋等,田惠文、肖珏、向继志、童俊等同志在文字校对上也付出了辛勤的劳动,在此一并表示感谢。
由于水平所限,不妥或错误之处在所难免,敬请广大读者批评指正。
译者
2005年10月
译者简介
吴世忠:博士、研究员,中国信息安全产品测评认证中心主任。现为全国信息安全标准化技术委员会副主任,中国信息产业商会信息安全产业分会理事长,《信息安全与通信保密》杂志主编。已公开出版文章百余篇,著有《信息系统的互连与互通》、《C3I系统的安全与保密》、《关贸总协定:中国准备好了吗?》、《首都信息化标准指南·信息安全与保密标准化体系》等专著五部和《应用密码学》、《密码编码和密码分析原理和方法》、《网络世界信息安全的真相》、《密码学的理论和实践》、《中文Windows 2000的安全性》、《密码学导引》、《ICSA密码学指南》等译著七部,同时还主持起草了防火墙、应用网关安全技术要求以及信息技术安全性评估准则等七项国家标准,并主笔撰写了与信息安全战略与技术发展有关的多篇专题报告。
郭涛:1974年9月出生,湖北宜昌人。华中科技大学计算机系统结构专业博士毕业。中国信息安全产品测评认证中心副总工程师,参加多项国家重大科研项目。主要研究方向为信息安全、密码理论、安全测试技术、安全电子支付技术等;曾在《通信学报》、《高技术通讯》等刊物发表论文十几篇,译著有《密码学导引》和《ICSA密码学指南》。
李斌:1971年11月出生。北京大学信息科学技术学院博士生。中国信息安全产品测评认证中心副总工程师,参加多项国家重大科研项目,包括国家863项目、国信办项目、国家发改委项目等。曾经在ACM等学术期刊上发表论文多篇。
宋晓龙:1970年9月出生。毕业于中国人民解放军信息工程大学,获理学硕士学位;主要研究兴趣为密码算法与理论、密码分析和密码产品测试技术;曾在《通信学报》、《信息安全与通信保密》等刊物发表论文多篇,译著有《密码编码与密码分析原理和方法》、《密码学导引》和《ICSA密码学指南》。
第1章导论:国际象棋游戏
第一部分基础材料
第2章案例研究
21Dalmedica
22困境
23调查
第3章了解对手
31术语
311脚本小子
312骇客
313白帽子黑客
314黑帽子黑客
315黑客激进主义
316专业攻击者
32历史
321计算机产业和大学
322系统管理
323家用计算机
324家用计算机:商业软件
325家用计算机:BBS
326电话系统
33道德规范和完全公开
34内部对手
341内部攻击者
342企业策略
小结
第4章攻击剖析
41概览
42探测
43社会工程和场所探测
44因特网探测
441因特网搜索引擎和Usenet工具
442财务搜索工具、目录、黄页和其他资源
45IP和网络探测
451域名注册商和whois搜索
452网络域名注册商搜索(ARIN)
46DNS探测
47映射目标
48网络映射(ICMP)
481ICMP查询
482TCP ping:ICMP的替代
483traceroute
484其他网络映射工具
49端口扫描
491TCP和UDP扫描
492标志获取
493包分片选项
494欺骗扫描能力
495标识扫描
496FTP反弹扫描
497源端口扫描
498栈指纹识别技术
410漏洞扫描(网络操作系统及应用问询)
411漏洞的研究和探测
412系统/网络穿透
4121账号(口令)破解
4122应用程序攻击
4123缓存利用
4124文件系统攻击
4125恶意和自我复制代码
4126编程策略
4127进程操纵
4128shell 攻击
4129会话劫持
41210哄骗
41211基于状态的攻击
41212流量捕获(嗅探)
41213可信关系滥用
413拒绝服务攻击
414巩固
415安全
参考文献
第5章防御武器库
51防御武器库
511访问控制
512系统访问控制
52鉴别
521IP鉴别
522口令鉴别
523窃听攻击
524口令猜测攻击
525基于令牌的鉴别
526会话鉴别
527客户端会话/ID窃取
528密码(基于密钥的)鉴别
529密钥传输和密钥管理漏洞
5210密钥绑定和假冒漏洞
5211针对弱密钥的字典攻击和蛮力攻击
5212集中式鉴别服务器
5213人体特征鉴别(生物测定学)
53资源控制
54抗抵赖性
55私密性
551虚拟专用网
552会话和协议加密
553文件系统加密
56入侵检测
561NIDS和HIDS
562基于异常(基于行为)的IDS
563基于特征(基于知识)的IDS
564针对IDS的攻击
565文件系统完整性检查器
566安全信息管理
57数据完整性
参考文献
第6章程序设计
61语言
62速度和安全的折衷
621本地的编译代码:C/C++/汇编语言
622字节码/JIT编译代码(“受控"代码):C#/Java
623解释语言(通常在运行时编译成字节码):Perl、Python(脚本语言)PHP、VB、ASP、Lisp、JSP(Web语言)
63具体语言的缺陷和防止受到这些缺陷影响的策略方法
64缓冲区溢出和其他内存分配错误的基础知识
65历史
651基本的栈溢出
652栈溢出后黑客的选择
653什么是栈canary
654堆溢出
655格式字符串缺陷
656整数溢出
657UNIX上的信号竞争
658什么是shellcode
66解释器缺陷
67文件名规范化
68逻辑错误问题
69特定平台的编程安全问题
610应用的类型
611跨站脚本漏洞
612Java J2EE
613传统的ASP
614Net
615LAMP
616创建一个RPC程序
617特殊情况
6171UNIX上的setuid应用
6172DCOM服务
618审查技术
6181协助代码审查的工具
6182反向工程可用的工具
6183fuzzing审查工具
6184Web安全性审查工具
6185一般的安全工具
619加密和鉴别
620分级防御
621特定平台的防御
6211非执行栈
6212使用不同的平台
6213文件系统用户访问控制
6214进程日志
622内部的问题、后门和逻辑炸弹
623购买应用评估服务
小结
参考文献
第7章IP和第2层协议
71第2层协议
711地址解析协议
712反向地址解析协议
72第3层协议
参考文献
第8章协议
81第3层协议
82第4层协议
821传输控制协议
822用户数据报协议
参考文献
第二部分系统和网络渗透
第9章域名服务器
91DNS协议
911DNS协议和包结构(包数据攻击)
912DNS漏洞
92DNS的利用和DNS攻击
921基于协议的攻击
922基于应用的攻击
923缓存中毒攻击
924DNS劫持
93DNS的安全和控制
931漏洞利用对应的防御方法
932防御策略
933Microsoft Windows 2000 DNS日志控制
934分层DNS拓扑结构(和DNS代理)
参考文献
第10章目录服务
101什么是目录服务
102目录的构成
1021架构
1022叶对象
1023容器对象
1024命名空间
1025目录信息树
1026目录信息库
103目录的特点
1031目录安全
1032单点登录
104目录系统的使用
1041使用目录的网络
1042连接准备
1043全球目录
1044公钥基础设施
105目录模型
1051物理与逻辑
1052扁平的与分等级的
106X500目录
1061X500架构
1062X500分区
1063X500对象和命名
1064关于别名
1065X500后端处理
1066X500目录访问
1067X500安全
1068访问控制
1069权限
10610小结
107轻量级目录访问协议
1071LDAP架构
1072LDAP分割
1073LDAP对象和命名
1074LDAP查询
1075LDAP数据相互交换格式
1076LDAP安全
1077小结
108活动目录
1081Windows NT
1082Windows 2000架构
1083Windows 2000分区
1084Windows 2000对象和命名
1085Windows 2000的命名标准和解析
1086活动目录的后端处理过程
1087Windows 2000安全
109利用LDAP
1091Sun ONE目录服务器51
1092微软活动目录
1010小结
1011未来发展方向
1012深入读物
第11章简单邮件传输协议
111SMTP协议
1111SMTP协议和包结构(包数据攻击)
1112SMTP漏洞
1113SMTP协议命令和协议扩展
112SMTP漏洞利用和SMTP攻击
1121SMTP协议攻击
1122ESMTP和命令集的漏洞
1123蠕虫和自动攻击工具
1124基于应用的拒绝服务
1125对邮件信任模型的攻击
1126数据完整性的攻击
1127投递状态通知的操纵
113SMTP安全性和控制
1131漏洞利用与防御
1132防御策略
参考文献
第12章超文本传输协议
121HTTP协议
1211HTTP协议与数据包的构造(包数据攻击)
1212HTTP漏洞
1213HTTP协议的方法(以及相关漏洞)
122HTTP漏洞利用和HTTP攻击
1221HTTP协议攻击
1222缓存技术漏洞利用
1223基于应用的攻击
1224对HTTP信任模型的攻击
123HTTP安全和控制
1231漏洞利用与防御的对应
1232防御策略
参考文献
第13章数据库入侵和安全
131简介
132弱点列举
133SQL注入
1331简介
1332SQL注入的阶段
134攻击微软SQL Server
1341微软SQL Server中的溢出
1342微软SQL Server鉴别后漏洞
1343微软SQL Server的SQL注入漏洞
1344攻击Cold Fusion Web 应用程序的一个注释
1345默认的账号和配置
135攻击Oracle
1351Oracle Server中的缓冲区溢出
1352Oracle中的SQL注入漏洞
1353默认的用户账号
1354Oracle评估的工具和服务
136其他数据库
137向后连接
138证明和例子
1381阶段1:发现
1382阶段2:有漏洞的应用程序的逆向工程
1383阶段3:得到任意查询的结果
139小结
第14章恶意软件和病毒
141再论道德
142目标平台
143脚本恶意软件
144从Anna Kournikova中学习脚本病毒的基础知识
145二进制病毒
1451二进制文件病毒
1452二进制引导型病毒
1453混合型病毒
1454二进制蠕虫
146祸不单行
147广告软件感染
148小结
第15章网络硬件
151概述
152网络基础设施
1521路由器
1522交换机
1523负载均衡设备
1524远程访问设备
1525无线技术
153网络基础设施漏洞利用与攻击
1531设备策略攻击
1532拒绝服务
1533网络映射
1534信息窃取
1535哄骗
1536口令或配置漏洞利用
1537日志攻击
1538网络端口和协议的漏洞利用与攻击
1539设备管理攻击
15310管理协议
15311设备配置安全攻击
15312特定路由器漏洞利用
15313访问控制列表攻击
15314特定交换机漏洞利用
15315MAC地址漏洞利用
15316负载均衡设备——特定漏洞利用
15317远程访问设备——特定漏洞利用
15318家庭用户系统漏洞利用
15319无线技术——特定漏洞利用
154网络基础设施安全和控制
1541防御策略
1542路由协议安全选项
1543管理安全选项
1544操作系统加固选项
1545配置审计和验证工具
1546无线网络控制
参考文献
第三部分攻 击 防 范
第16章了解攻击者的巩固策略
161概述
162巩固(操作系统和网络设施)
1621账户和权限管理工具
1622文件系统和I/O资源
1623文件系统(操作系统)攻击
1624基于应用程序的文件系统攻击
1625服务和进程管理工具
1626进程、服务和权限标识
1627缓冲区溢出、格式化字符串和其他应用程序攻击
1628进程调试和内存操纵
1629设备和设备管理工具
16210库和共享库
16211shell访问和命令行工具
16212注册表工具(NT/2000)
16213客户端软件
16214监听器和网络服务
16215网络信息服务探测
16216SNMP探测
16217网络信任关系
16218应用/可执行环境
163巩固(外来代码)
1631特洛伊木马
1632后门(和特洛伊后门)
1633后门程序
1634rootkit
1635内核级rootkit
164安全性
165漏洞利用与防御的对应
参考文献
第17章取证调查中的问题
171日志、审计和IDS逃避
1711日志和审计逃避
1712IDS逃避
172取证逃避
1721环境清理
1722文件隐藏和文件系统操纵
1723隐蔽的网络活动
173调查、取证和安全控制
参考文献
第18章结论
181结论:案例研究
1811Dalmedica的观点
1812接入点
1813堡垒主机
1814探测活动
1815目标系统
182小结(最后的看法)
参考文献