×

网络协议实现的基于规则的静态分析。 (英语) Zbl 1146.68346号

概述:当今的软件系统使用经过严格审查的标准协议在互联网上进行通信,从而确保了对恶意攻击的抵抗能力和总体健壮性。然而,实现这些协议的软件可能仍然包含错误,不正确的实现可能会导致漏洞,即使在最容易理解的协议中也是如此。这项工作的目标是通过引入一种新技术来检查协议的C实现是否与RFC或类似标准文档中的描述相匹配,从而缩小这一差距。我们提供了一个名为Pistachio的静态(编译时)源代码分析工具,它根据基于规则的行为规范检查C代码。规则描述了在每一轮通信中应该发生的事情,并可用于对操作顺序和数据值实施约束。由于我们的分析采用了一些启发式近似,因此不能保证分析是正确的,但与已知的错误报告相比,实际中的误报率较低。我们将开心果应用于SSH2的两种不同实现和RCP的一种实现。Pistachio发现了许多错误,包括安全漏洞,我们手动确认了这些错误,并对照每个项目的错误数据库进行了检查。

MSC公司:

68个M12 网络协议
68M10个 计算机系统中的网络设计和通信
PDF格式BibTeX公司 XML格式引用
全文: DOI程序

参考文献:

[1] M.Musuvathi,D.Y.W.Park,A.Chou,D.R.Engler,D.L.Dill,CMC:模型检查实际代码的实用方法,摘自:操作系统设计与实现(OSDI)研讨会,2002年,第75-88页。;M.Musuvathi,D.Y.W.Park,A.Chou,D.R.Engler,D.L.Dill,CMC:模型检查实际代码的实用方法,摘自:操作系统设计与实现(OSDI)研讨会,2002年,第75-88页。
[2] Holzmann,G.J.,模型检查器SPIN,软件工程,23,5,279-295(1997)
[3] J.Bengtsson,K.G.Larsen,F.Larsson,P.Pettersson,W.Yi,UPPAAL-实时系统自动验证的工具套件,见《混合系统》,1995年,第232-243页。;J.Bengtsson,K.G.Larsen,F.Larsson,P.Pettersson,W.Yi,UPPAAL-实时系统自动验证的工具套件,见:混合系统,1995年,第232-243页。
[4] N.Feamster,H.Balakrishnan,用静态分析检测BGP配置故障,摘自:网络系统设计与实现(NSDI)研讨会,2005年。;N.Feamster,H.Balakrishnan,用静态分析检测BGP配置故障,收录于:网络系统设计与实现(NSDI)研讨会,2005年。
[5] G.N.Naumovich,L.A.Clarke,L.J.Osterweil,使用数据流分析验证通信协议,摘自:软件工程基础研讨会,1996年,第93-105页。;G.N.Naumovich,L.A.Clarke,L.J.Osterweil,使用数据流分析验证通信协议,摘自:软件工程基础研讨会,1996年,第93-105页。
[6] T.Ylonen,C.Lonvick,《安全外壳(SSH)连接协议》,RFC 4254(拟议标准),2006年1月,可从以下网站获得:<http://www.ietf.org/rfc/rfc4254.txt/>; T.Ylonen,C.Lonvick,《安全外壳(SSH)连接协议》,RFC 4254(拟议标准),2006年1月,可从以下网站获得:<http://www.ietf.org/rfc/rfc4254.txt/>
[7] P.Cousot,R.Coosot,《抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型》,载于:《程序设计语言原理研讨会》,1977年,第238-252页。;P.Cousot,R.Coosot,《抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型》,载于:《程序设计语言原理研讨会》,1977年,第238-252页。
[8] N.Möller,lshd向用户外壳泄漏fd:s,可从以下网站获得:<http://lists.lysator.liu.se/pipermail/lsh-bugs/2006q1/000467.html/>(2006年1月)。;N.Möller,lshd向用户外壳泄漏fd:s,可从以下网站获得:<http://lists.lysator.liu.se/pipermail/lsh-bugs/2006q1/000467.html/>(2006年1月)。
[9] Beizer,B.,《软件测试技术》(1990),Van Nostrand Reinhold Co.:美国纽约州纽约市Van Nostrand Reinhood Co
[10] O.Udrea,C.Lumezanu,J.S.Foster,网络协议实现的基于规则的静态分析,收录于:Usenix安全研讨会,2006年,第193-208页。;O.Udrea,C.Lumezanu,J.S.Foster,网络协议实现的基于规则的静态分析,收录于:Usenix安全研讨会,2006年,第193-208页·Zbl 1146.68346号
[11] Bartlett,K.A。;斯堪的纳维亚省。;Wilkinson,P.T.,《关于半双工链路上可靠的全双工传输的说明》,《ACM通信》,第12、5、260-261页(1969年)
[12] J.Postel,J.Reynolds,《RFC作者须知》,RFC 2223(信息性),1997年10月,可从以下网站获得:<http://www.ietf.org/rfc/rfc2223.txt网站/>.; J.Postel,J.Reynolds,《RFC作者须知》,RFC 2223(信息性),1997年10月,可从以下网站获得:<http://www.ietf.org/rfc/rfc2223.txt网站/>.
[13] 阿霍,A.V。;Sethi,R。;Ullman,J.D.,《编译器:原理、技术和工具》(1988),艾迪森·韦斯利
[14] G.C.Necula,S.McPeak,S.P.Rahul,W.Weimer,CIL:C程序分析和转换的中间语言和工具,收录于:2002年编译器构造国际会议,第213-228页。;G.C.Necula,S.McPeak,S.P.Rahul,W.Weimer,CIL:C程序分析和转换的中间语言和工具,载于:国际编译器建设会议,2002年,第213-228页·Zbl 1051.68756号
[15] P.Baumgartner,A.Fuchs,C.Tinelli,Darwin:模型进化演算的定理证明器,收录于:IJCAR经验成功的一阶推理研讨会,2004年。;P.Baumgartner,A.Fuchs,C.Tinelli,Darwin:模型进化演算的定理证明器,收录于:IJCAR经验成功一阶推理研讨会,2004年。
[16] 安全外壳协议的GNU实现,可从以下网站获得:<http://www.lysator.liu.se/nisse/lsh/>.; 安全外壳协议的GNU实现,可从以下网站获得:<网址:http://www.lysator.liu.se/nise/lsh/>.
[17] OpenSSH,Availabel来自:<网址:http://www.openssh.com/>.; OpenSSH,Availabel来自:<网址:http://www.openssh.com/>.
[18] Comer,D.E.,使用TCP/IP进行互联。《TCP/IP网络互连》,第1卷:原理、协议和架构(2000),普伦蒂斯·霍尔PTR
[19] P.Godefroid,《使用Verisoft对编程语言进行模型检查》,载于:《编程语言原理研讨会》(POPL),1997年,第174-186页。;P.Godefroid,《使用Verisoft对编程语言进行模型检查》,载于:《编程语言原理研讨会》(POPL),1997年,第174-186页。
[20] M.Musuvathi,D.R.Engler,模型检查大型网络协议实现,收录于:网络系统设计与实现(NSDI)研讨会,2004年,第155-168页。;M.Musuvathi,D.R.Engler,模型检查大型网络协议实现,载于:网络系统设计与实现研讨会(NSDI),2004年,第155-168页。
[21] S.Chaki,E.Clarke,A.Groce,S.Jha,H.Veith,《C语言中软件组件的模块化验证》,载《软件工程国际会议》,2003年,第385-395页。;S.Chaki,E.Clarke,A.Groce,S.Jha,H.Veith,C语言中软件组件的模块化验证,收录于:软件工程国际会议,2003年,第385-395页。
[22] R.Alur,B.-Y.Wang,通过符号求精检查验证网络协议实现,收录于:计算机辅助验证国际会议,2001年,第169-181页。;R.Alur,B.-Y.Wang,通过符号细化检查验证网络协议实现,收录于:计算机辅助验证国际会议,2001年,第169-181页·Zbl 0991.68546号
[23] K.Barghavan,C.Fournet,A.D.Gordon,S.Tse,安全协议的可互操作验证实现,收录于:计算机安全基础研讨会,2006年。;K.Barghavan,C.Fournet,A.D.Gordon,S.Tse,安全协议的可互操作验证实现,收录于:计算机安全基础研讨会,2006年·Zbl 1137.68323号
[24] B.Blanchet,基于序言规则的高效密码协议验证器,收录于:计算机安全基础研讨会,2001年。;B.Blanchet,基于序言规则的高效密码协议验证器,收录于:计算机安全基础研讨会,2001年。
[25] D.Lie,A.Chou,D.Engler,D.L.Dill,《提取协议代码模型的简单方法》,载:《计算机体系结构国际研讨会》,2001年,第192-203页。;D.Lie,A.Chou,D.Engler,D.L.Dill,《提取协议代码模型的简单方法》,载于:《计算机体系结构国际研讨会》,2001年,第192-203页。
[26] S.Yang,J.S.Baras,《特设路由协议脆弱性建模》,载于:ACM特设和传感器网络安全研讨会,2003年,第12-20页。;S.Yang,J.S.Baras,《特设路由协议脆弱性建模》,载于:ACM特设和传感器网络安全研讨会,2003年,第12-20页。
[27] G.Diaz,F.Cuartero,V.Valero,F.Pelayo,TLS握手协议的自动验证,载于:ACM应用计算研讨会,2004年,第789-794页。;G.Diaz,F.Cuartero,V.Valero,F.Pelayo,TLS握手协议的自动验证,载于:ACM应用计算研讨会,2004年,第789-794页。
[28] R.Corin,S.Etalle,P.H.Hartel,A.Mader,《安全协议的时间模型检查》,载于:ACM安全工程形式化方法研讨会,2004年,第23-32页。;R.Corin,S.Etalle,P.H.Hartel,A.Mader,《安全协议的时间模型检查》,载于:ACM安全工程形式化方法研讨会,2004年,第23-32页。
[29] 巴特勒,F。;塞尔维萨托,I。;贾加德,A.D。;斯克洛夫,A。;Walstad,C.,kerberos的形式分析5,理论计算机科学,367,1,57-87(2006)·Zbl 1153.94448号
[30] I.Cervesato,A.D.Jaggard,A.Scedrov,J.-K.Tsay,C.Walstad,破解和修复公钥kerberos,摘自:2006年亚洲计算科学会议。;I.Cervesato,A.D.Jaggard,A.Scedrov,J.-K.Tsay,C.Walstad,破解和修复公钥kerberos,摘自:2006年亚洲计算科学会议·Zbl 1147.68393号
[31] I.Cervesato,《打字msr:语法和示例》,收录于:MMM-ACNS’01,计算机网络信息保障国际研讨会,2001年。;I.Cervesato,《打字msr:语法和示例》,收录于:MMM-ACNS’01,计算机网络信息保障国际研讨会,2001年·兹伯利0986.68510
[32] 北卡罗来纳州杜尔金。;林肯,P。;J.米切尔。;Scedrov,A.,多集重写和有界安全协议的复杂性,《计算机安全杂志》,12,2,247-311(2004)
[33] Meadows,C.,《NRL协议分析器:概述》,《逻辑编程杂志》,26,2,113-131(1996)·Zbl 0871.68052号
[34] C.Meadows,使用nrl协议分析仪分析互联网密钥交换协议,收录于:IEEE安全与隐私,1999年。;C.Meadows,《使用nrl协议分析仪分析互联网密钥交换协议》,载于:IEEE安全与隐私,1999年。
[35] T.Ball,S.K.Rajamani,《SLAM项目:通过静态分析调试系统软件》,摘自:《编程语言原理研讨会》,2002年,第1-3页。;T.Ball,S.K.Rajamani,《SLAM项目:通过静态分析调试系统软件》,载于:《编程语言原理研讨会》,2002年,第1-3页。
[36] 亨辛格,T.A。;贾拉(Jhala,R.)。;马朱姆达尔,R。;Sutre,G.,用BLAST进行软件验证,计算机科学课堂讲稿,2648235-239(2003)·Zbl 1023.68532号
[37] H.Chen,D.Wagner,《MOPS:检查软件安全属性的基础设施》,载于:ACM计算机和通信安全会议,2002年,第235-244页。;H.Chen,D.Wagner,《MOPS:检查软件安全属性的基础设施》,载于:ACM计算机和通信安全会议,2002年,第235-244页。
[38] D.Engler,D.Y.Chen,S.Hallem,A.Chou,B.Chelf,《错误作为异常行为:推断系统代码错误的一般方法》,载于:ACM操作系统原理研讨会,2001年,第57-72页。;D.Engler,D.Y.Chen,S.Hallem,A.Chou,B.Chelf,《错误作为异常行为:推断系统代码错误的一般方法》,载于:ACM操作系统原理研讨会,2001年,第57-72页。
[39] M.Das,S.Lerner,M.Seigle,《ESP:多项式时间内的路径敏感程序验证》,载于:ACM编程语言设计与实现会议(PLDI),2002年,第57-68页。;M.Das,S.Lerner,M.Seigle,《ESP:多项式时间内的路径敏感程序验证》,载于:ACM编程语言设计与实现会议(PLDI),2002年,第57-68页。
[40] 福斯特,J.S。;约翰逊,R。;Kodumal,J。;Aiken,A.,流敏感类型限定符,ACM编程语言和系统事务,28,6,1035-1087(2006)
[41] J.S.Foster,T.Terauchi,A.Aiken,流敏感类型限定符,摘自:《2002年ACM SIGPLAN编程语言设计与实现会议论文集》,德国柏林,2002年,第1-12页。;J.S.Foster,T.Terauchi,A.Aiken,流敏感类型限定符,摘自《2002年ACM SIGPLAN编程语言设计与实现会议论文集》,德国柏林,2002年,第1-12页。
[42] R.Johnson,D.Wagner,通过类型推断发现用户/内核错误,摘自:第13届Usenix安全研讨会论文集,加利福尼亚州圣地亚哥,2004年。;R.Johnson,D.Wagner,《通过类型推断发现用户/内核错误》,载于:《第13届Usenix安全研讨会论文集》,加利福尼亚州圣地亚哥,2004年。
[43] R.Gopalakrishna,E.H.Spafford,J.Vitek,使用自动内联进行高效入侵检测,收录于:IEEE安全与隐私研讨会,2005年,第18-31页。;R.Gopalakrishna,E.H.Spafford,J.Vitek,使用自动内联进行高效入侵检测,收录于:IEEE安全与隐私研讨会,2005年,第18-31页。
[44] Oehlert,P.,模糊违反假设,IEEE安全与隐私杂志,3,58-62(2005)
[45] G.T.Leavens,K.R.M.Leino,E.Poll,C.Ruby,B.Jacobs,JML:支持Java详细设计的符号和工具,收录于:面向对象编程、系统、语言和应用(OOPSLA)协会国际会议,2000年,第105-106页。;G.T.Leavens,K.R.M.Leino,E.Poll,C.Ruby,B.Jacobs,JML:支持Java详细设计的符号和工具,收录于:面向对象编程、系统、语言和应用(OOPSLA)协会国际会议,2000年,第105-106页。
[46] D.Blei,C.Harrelson,R.Jhala,R.Majumdar,D.C.Necula,S.P.Rahul,W.Weimer,D.Weitz,Vampyre版本1.0,可从以下网站获得:<http://www.cs.ucla.edu/rupak/Vampyre/>(2000年)。;D.Blei,C.Harrelson,R.Jhala,R.Majumdar,D.C.Necula,S.P.Rahul,W.Weimer,D.Weitz,Vampyre版本1.0,可从以下网站获得:<http://www.cs.ucla.edu/rupak/Vampyre网站/> (2000).
[47] 第四洞,Hol.sourceforge.net。;第四洞,Hol.sourceforge.net·Zbl 1465.68290号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。