Stuart
McClure(CNE、CCSE)是一家全球优秀的安全服务和产品公司Cylance的CEO兼董事长,该公司致力于为全球重要的公司解决大多数最困难的安全问题。在就职于Cylance之前,Stuart是McAfeeIntel的全球CTO,主要负责大约30亿美元的消费者和企业安全产品业务。在McAfee任职期间,Stuart
McClure同时兼任McAfeeIntel安全管理业务的总经理,促使所有McAfee企业的安全产品都实现了可操作、可管理和可度量。与此同时,Stuart
McClure在McAfee内管理着一支名为TRACE的精英团队,该团队由优秀的黑客构成,负责发现新的漏洞和出现的攻击。在就职于McAfee之前,Stuart效力于美国最大的卫生保健组织Kaiser
Permanente公司安全服务部。1999年,Stuart还是Foundstone公司的最初创始人之一,该公司是一家全球咨询和产品公司并于2004年被McAfee公司收购。
Joel
Scambray
Joel的个人经历包括执行官、技术咨询专家以及企业家。他是信息安全咨询公司Consciere的创始人之一,该公司于2011年6月被Cigital公司收购。他曾是微软公司的高级主管,为微软的在线服务和Windows部门提供安全方面的指导。Joel也是提供安全软件和服务的Foundstone公司的创始人之一,并且成功地使公司于2004年被McAfee公司收购。此前还担任Ernst
Young咨询公司的经理、微软TechNet的安全专栏作家、InfoWorld杂志的主编以及一家大型商业房地产公司的IT总监。
George
Kurtz
George
Kurtz(CISSP、CISA、CPA)是CrowdStrike公司的创始人之一同时兼任CEO,该公司是一家前沿的大数据安全技术公司,致力于帮助企业和政府保护其大多数敏感知识产权和国家安全信息。George也是国际公认的安全专家、作家、企业家和发言人。他在安全领域拥有超过20年的工作经验并且帮助全世界数以百计的组织和政府机构解决了无数高难度的安全问题。他作为企业家的背景以及将新生技术商业化的能力,赋予了他识别市场趋势并将其同顾客反馈相关联的能力,从而使其自己经营的事业飞速发展。
1996年11月,计算机安全的未来发生了历史性转变。Bugtraq邮件列表的创始人Aleph
One给安全杂志Phrack
Magazine(第49期)写了一篇题目为“Smashing
The Stack For Fun And Profit”的文章。这篇文章对于安全界产生了深远的影响,因为它清楚地阐明了糟糕的编程行为在缓冲区溢出攻击下会如何危及安全。缓冲区溢出攻击可追溯到1988年臭名昭著的Robert
Morris蠕虫事件;然而关于这种攻击的有用信息直到1996年才为人所知。
在某个用户或进程试图往一个缓冲区(即固定长度的数组)中放置比原初分配的空间还要多的数据的时候,就会出现缓冲区溢出条件(buffer overflow
condition)。这种情况与C特有的函数,例如strcpy、strcat、sprintf等有关。正常的缓冲区溢出条件会导致段越界发生。然而精心利用这类情况,可以达到访问目标系统的目的。尽管我们讨论的是远程缓冲区溢出攻击,缓冲区溢出条件在本地系统上也同样发生,在本章稍后会继续谈及。为了理解缓冲区溢出的发生过程,下面举一个非常简化的例子。
我们有一个长度固定为128字节的缓冲区。假设该缓冲区定义成可作为存放sendmail的VRFY命令的输入数据。第3章中我们曾使用VRFY来帮助确认目标系统上的可能存在的用户,方法是验证他们的电子邮件地址。再假设sendmail是将用户ID设(SUID)为root的程序,从而不论谁执行都以root特权运行。这种假设对于现实系统可能成立,也可能不成立。如果攻击者连接到目标系统的sendmail守护进程后,给VRFY命令发送一块由1000个字母“a”构成的数据,而不是一个简短的用户名,情况会是什么样呢?
echo "vrfy
‘perl -e ''print "a" x 1000''’" | nc www.example.com
25
VRFY缓冲区将溢出,因为它只能容纳128个字节。往VRFY缓冲区中填塞1000个字节可能导致拒绝服务和sendmail守护进程的崩溃;然而由此精心设计一下,让目标系统执行攻击者选定的代码将更为危险。这恰好是成功的缓冲区溢出攻击的工作机理。
测试并审核每个程序非常重要。许多时候编程人员并未意识到存在潜在的缓冲区溢出条件,然而,第三方可能不怎么费力就检测出这种缺陷。测试和审核UNIX代码的最佳例子之一是由Theo
de Raadt领导的OpenBSD项目(http:www.openbsd.org)。OpenBSD阵营一直在审核他们的源代码,且已修复了数百个缓冲区溢出条件,更不用提其他类型的安全相关问题了。正是这种彻底审核让OpenBSD赢得了这样的声誉:最安全的免费版本UNIX之一(注:最安全并不等同于无法渗透)。