渗透测试和安全编程
本届会议邀请了两位来自不同企业的专家分别就渗透测试和安全编程做了专题演讲。
来自Core安全技术公司(Core Security Technologies)的首席技术官Ivan Arce做了题为“Penetration Testing for Grown Ups”的演讲。渗透测试已经有了近30年的历史,在历史上渗透测试一直被认为是昂贵的,模糊的,只能由专业性队伍手工实施,提供价值有限的信息。直到2000年以后,开始大量出现的商业的渗透测试软件,开源工具以及更为形式化的测试方法,才让业界更广泛地采用这种做法。目前渗透测试的软件和方法以及基本理念都在不断转变以适应业界的安全需求。在演讲中,Ivan Arce对去过去十年渗透测试的演变做了回顾,并指出了目前所面临的挑战和机遇,以及在未来十年安全人员在渗透测试方向上应该进一步探索的领域。
来自Fortify公司的首席科学家Brian Chess做了题为“Secure Programming with Static Analysis”的主题演讲。Brian Chess指出,创造安全的代码,需要的不仅仅是良好的愿望。程序员必须知道如何使自己的代码在近乎无限多的情景和配置下保持安全。静态源代码分析可以让程序员以精细的粒度来审查其代码,从而发现可能的任何错误,这些错误会直接导致应用程序产生漏洞。Brian Chess给出了软件安全问题的框架,以及静态分析如何来解决安全问题。Brian Chess展示了静态分析如何工作,如何将它集成到软件开发过程,以及如何最大限度地利用它在安全代码审查中效果。在展示中,Chess通过取自现实世界的安全事件例子显示的编码错误是如何被攻击者利用,以及静态分析如何能迅速发现类似的错误。
Web安全
文件结构完整性:跨站脚本防御的坚实基础
Prateek Saxena and Dawn Song,加州大学伯克利分校; Yacin Nadji ,伊利诺理工大学
跨站点脚本是目前最主要的安全漏洞之一,在2007年有超过17000次的跨站点脚本攻击发生。这是由于网页标记语言和客户端(浏览器)没有提供正确的机制,以确保在Web应用程序中安全地隔绝用户生成的数据。
作者提出了一种机制,可以在Web应用程序中隔绝用户生成的数据,以确保可信任的Web应用程序代码的完整性。作者对5000多个真实世界中有跨站脚本攻击漏洞的网站执行隔绝用户数据的策略,通过初步评估,该机制可以抵御现有98%的跨站脚本攻击。
防御Web应用攻击的一种高效的黑盒技术
R Sekar Stony,Brook大学
污点跟踪已成为最有前途的技术,它可以防御各种各样的漏洞,如SQL注入、命令注入、跨站点脚本攻击等。但是它需要对应用程序进行细粒度的配置,会产生额外的性能负担(可能会增加原有负载100%的负担),甚至可能会影响应用的鲁棒性。
为了解决污点跟踪技术的不足,作者提出了污点推断技术,该技术可以通过观察Web应用程序的输入和输出推断污点存在。实验表明,它能够准确针对不同编程语言书写的网络应用程序检测上面所提出的功击,同时带来的额外运行负载在原有负载的5%以内。
Noncespaces :采用随机技术增强信息流以跟踪和挫败跨站脚本攻击
Matthew Van Gundy and Hao Chen,美国加州大学戴维斯分校
跨站点脚本攻击(XSS)是目前最常见也是最严重的Web应用程序漏洞。消除跨站脚本攻击是一项具有挑战性的工作,因为很难保证Web应用正确净化了所有可能的用户投入。
作者的解决方案——Noncespaces 是一种通过随机化和XML命名空间来消除XSS攻击的新方法。通过在Web应用程序的可信内容前加入随机化的命名空间前缀,可以让客户端程序找出所有不可信内容。
作者演示了如何对Web应用程序的设计模式在最少修改的情况下应用Noncespace技术。
入侵检测
谱图:一种针对Web流量的混合马尔可夫链模型的异常检测算法
Yingbo Song, Angelos Keromytis and Salvatore Stolfo, 哥伦比亚大学
作者提出的的谱图(Spectrogram),是一种基于机器学习的防御Web代码注入攻击的入侵检测系统。
Spectrogram是一种网络入侵检测系统,通过动态重组报文重建Web请求,来监控网络上的Web流量。与很多现有入侵检测系统不同,Spectrogram不依赖于特征来检测恶意内容。相反,它通过学习合法输入的模式来检测合法请求的模型。
作者描述了一个有效的基于混合马尔可夫链的模型以及相应的训练算法。
发现伪造的TCP RESET封包
Nicholas Weaver, ICSI; Robin Sommer, ICSI and LBNL; Vern Paxson,加州大学伯克利分校和ICSI
许多网络管理工具,包括网络审查、流量管理和入侵检测系统,会通过向那些“不受欢迎”的流注入TCP Reset数据包来终止连接。作者开发了一种高效的网络检测程序,通过条件竞争(race conditions)和一系列的报文指纹来检测这种注入的报文。
基于目前的程序,作者的系统能够探测到P2P中断程序,拦截动态垃圾邮件和恶意代码的程序和中国的网络审查程序发出的TCP Reset报文。
协作式扫描的检测方法
Carrie Gates, CA实验室
协作式攻击将攻击任务分配到参与攻击的不同源地址。作者提出一种新的检测算法,该算法基于信息获取的对手模型,同时使用类似于解决覆盖集问题的启发式方法。
检测算法的实现针对协作式水平和扫描行为进行了测试,实验结果表明系统的误报率在可接受的范围内。作者最后讨论了最大限度地提高检测率的必需条件。
恶意软件
RB-SEEKER:自动检测重定向僵尸网络(RB-Seeker: Auto-detection of Redirection Botnets)
Xin Hu, Matt Knysz and Kang G. Shin,美国密歇根大学
本文介绍了RB-Seeker:重定向僵尸网络检测系统的设计,实现和评估过程。作为一种误导逃逸机制,重定向僵尸网络通过与垃圾邮件和钓鱼攻击结合将被害者导向真正的恶意站点。
作者利用更加全面的数据源(例如NetFlow ,DNS日志,垃圾邮件记录),设计了一个2层检测算法通过超平面决策(hyperplane decision)函数实现更好的检测能力。
可扩展的基于行为的恶意软件聚类分析
Ulrich Bayer, Paolo Milani Comparetti and Clemens Hlauschek, 维也纳技术大学; Kruegel,美国加州大学圣巴巴拉分校; Engin Kirda , Eurecom研究所
反恶意软件公司每天都会收到数以千计的恶意软件样本,这些样本大多数是原有恶意软件的变种(或是自动进化样本)。作者提出的聚类算法基于恶意软件样本行为的准确刻划,算法的性能能够适应实际的恶意软件数据库规模。
作者对高达7.5万个恶意软件样本的数据集进行了实验,实验结果表明作者的方法比以往的技术有更好的精确度。
K-Tracer:系统内核恶意软件行为提取系统
Andrea Lanzi, Monirul Sharif and Wenke Lee 美国佐治亚理工学院
内核Rootkit通过改变操作系统内核的合法行为,向用户级恶意软件程序提供额外功能以隐藏他们的恶意活动。在本文中,作者提出一个方法能够自动发现Rootkit对系统数据的修改行为。
作者已经完成了对几个不同的内核恶意软件样本的实验,结果表明系统能够成功地提取所有的数据恶意操纵行为。
作者还讨论了在新Rootkit技术下现有系统的局限性。
来源:《中国教育网络》2009年8月刊