×

野生产品程序:改造程序验证器以检查信息流安全性。 (英语) Zbl 1493.68106号

Silva,Alexandra(编辑)等人,《计算机辅助验证》。第33届国际会议,CAV 2021,虚拟活动,2021年7月20日至23日。诉讼程序。第一部分查姆:施普林格。莱克特。注释计算。科学。12759, 718-741 (2021).
摘要:大多数现有的程序验证器检查跟踪属性,如功能正确性,但不支持超属性的验证,特别是信息流安全性。原则上,产品程序允许人们减少对超属性的验证以跟踪属性,从而应用标准验证器进行检查;实际上,产品构造通常只针对没有动态方法绑定或并发等特性的简单编程语言定义,因此不能直接应用于验证成熟语言中的信息流安全性。然而,许多现有的验证器将源语言中的程序编码为简单的中间验证语言,这为在中间语言级别上构建产品程序开辟了可能性,重用现有编码,大大减少开发信息流安全新验证工具所需的工作量。
在本文中,我们从三个方面探讨了这种方法的潜力:(1)健全性:我们表明,单独健全的编码和产品结构的组合仍然可能是不健全的,并确定了确保整体健全性的编码的新条件。(2) 并发性:我们展示了如何使用中间语言级别的序列产品程序来验证并发源程序的信息流安全性。(3) 性能:我们在Nagini中实现了一个产品构造,Nagini是一个基于Viper中间语言构建的Python验证器,并在一些具有挑战性的示例上对其进行了评估。我们表明,生成的工具提供了可接受的性能,同时在语言功能支持和表达能力方面与现有工具相匹配或优于现有工具。
关于整个系列,请参见[Zbl 1489.68029号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: DOI程序

参考文献:

[1] Almeida,J.B.,Barbosa,M.,Barthe,G.,Dupressoir,F.,Emmi,M.:验证恒定时间实现。收录于:USENIX安全研讨会,第53-70页。USENIX协会(2016)
[2] Astrauskas,V.、Müller,P.、Poli,F.、Summers,A.J.:利用锈蚀类型进行模块化规范和验证。程序。ACM计划。语言3(OOPSLA),147:1-147:30(2019)
[3] 巴内特,M。;Chang,B-YE;DeLine,R。;雅各布斯,B。;KRM Leino;de Boer,FS公司;Bonsangue,MM;格拉芙,S。;de Roever,W-P,Boogie:面向对象程序的模块化可重用验证器,组件和对象的形式化方法,364-387(2006),海德堡:施普林格,海德堡·doi:10.1007/11804192_17
[4] Barthe,G。;克雷斯波,JM;Kunz,C。;巴特勒,M。;Schulte,W.,《使用产品程序的关系验证》,FM 2011:形式方法,200-214(2011),海德堡:施普林格·doi:10.1007/978-3642-21437-0_17
[5] Barthe,G。;克雷斯波,JM;Kunz,C。;阿特莫夫,S。;Nerode,A.,《超越2-safety:关系程序验证的非对称产品程序》,《计算机科学逻辑基础》,29-43(2013),海德堡:施普林格·Zbl 1419.68063号 ·doi:10.1007/978-3-642-35722-03
[6] Barthe,G。;D’Argenio,公关;Rezk,T.,《通过自我合成保护信息流》,数学。结构。计算。科学。,21, 6, 1207-1252 (2011) ·Zbl 1252.68072号 ·doi:10.1017/S0960129511000193
[7] Benton,N.:静态分析和程序转换的简单关系正确性证明。收录于:POPL,第14-25页。ACM(2004)·Zbl 1325.68057号
[8] Betts,A.,Chong,N.,Donaldson,A.F.,Qadeer,S.,Thomson,P.:GPU验证:GPU内核的验证程序。收录于:OOPSLA,第113-132页。ACM(2012年)
[9] 布拉特,L。;北科斯马托夫。;勒加尔,P。;普雷沃斯托,V。;Petiot,G。;Dubois,C。;Wolff,B.,自编C代码关系属性的静态和动态验证,《测试与证明》,44-62(2018),查姆:施普林格,查姆·doi:10.1007/978-3-319-92994-13
[10] 布洛姆,S。;Huisman,M。;琼斯,C。;Pihlajasaari,P。;Sun,J.,VerCors并发程序验证工具,FM 2014:Formal Methods,127-131(2014),Cham:Springer,Cham·doi:10.1007/978-3-319-06410-99
[11] Chen,Z.,Chen,L.,Xu,B.:Python字节码的混合信息流分析。收录于:IEEE WISA,第95-100页。IEEE计算机学会(2014)
[12] 克拉克森,MR;施耐德,FB,Hyperproperties,J.Compute。安全。,18, 6, 1157-1210 (2010) ·doi:10.3233/JCS-2009-0393
[13] 科恩,E。;莫斯卡尔,M。;舒尔特,W。;托比,S。;Touili,T.等人。;库克,B。;Jackson,P.,并行程序中全局不变量的局部验证,计算机辅助验证,480-494(2010),海德堡:施普林格·doi:10.1007/978-3-642-14295-642
[14] Kirchner,F。;北科斯马托夫。;普雷沃斯托,V。;Signoles,J。;Yakobowski,B.,Frama-C:软件分析视角,形式方面计算。,27, 3, 573-609 (2015) ·doi:10.1007/s00165-014-0326-7
[15] Detlefs,D。;Nelson,G。;Saxe,JB,Simplify:用于程序检查的定理证明器,J.ACM,52,3,365-473(2005)·Zbl 1323.68462号 ·doi:10.1145/1066100.1066102
[16] Eilers,M.、Meier,S.、Müller,P.:《野生产品程序:改装程序验证程序以检查信息流安全性(工件)》(2021年)。doi:10.5281/zenodo.4724854
[17] 艾尔斯,M。;缪勒,P。;节流阀,H。;Weissenbacher,G.,Nagini:Python的静态验证器,计算机辅助验证,596-603(2018),Cham:Springer,Cham·doi:10.1007/978-3-319-96145-3_33
[18] 艾尔斯,M。;缪勒,P。;希茨,S。;Ahmed,A.,《模块化产品程序、编程语言和系统》,502-529(2018),Cham:Springer,Cham·Zbl 1418.68053号 ·数字对象标识代码:10.1007/978-3-319-89884-118
[19] 恩斯特·G。;Murray,T。;迪利格,I。;Tasiran,S.,SecCSL:安全并发分离逻辑,计算机辅助验证,208-230(2019),Cham:Springer,Cham·兹比尔1533.68153 ·doi:10.1007/978-3-030-25543-5_13
[20] Filliátre,J-C;马奇,C。;Damm,W。;Hermanns,H.,演绎程序验证的Why/Krakatoa/Caduceus平台,计算机辅助验证,173-177(2007),海德堡:斯普林格·doi:10.1007/978-3-540-73368-3_21
[21] Filliâtre,J-C;帕斯凯维奇,A。;Felleisen,M。;Gardner,P.,Why3-程序满足证明者,《编程语言和系统》,125-128(2013),海德堡:施普林格·Zbl 1435.68366号 ·doi:10.1007/978-3-642-37036-68
[22] Giffhorn,D。;Snelting,G.,《低确定性安全的一种新算法》,国际期刊信息安全。,14, 3, 263-287 (2014) ·doi:10.1007/s10207-014-0257-6
[23] Goguen,J.A.,Meseguer,J.:安全政策和安全模型。摘自:IEEE安全与隐私研讨会,第11-20页。IEEE计算机学会(1982)
[24] 爱沙尼亚州古堡。,Ledent,J.,Mimram,S.:超越线性化的并发规范。包含:OPODIS。LIPIcs,第125卷,第28:1-28:16页。达格斯图尔宫(Schloss Dagstuhl)-莱布尼兹·泽特鲁姆(Leibniz-Zentrum für Informatik)(2018年)·Zbl 07561456号
[25] Hawblitzel,C。;川口,M。;拉希里,斯洛伐克;热比洛,H。;Bonacina,MP,《使用自动定理证明程序进行模块化比较》,《自动演绎-CADE-24282-299》(2013),海德堡:斯普林格·Zbl 1381.68054号 ·doi:10.1007/978-3-642-38574-2_20
[26] Jacobs,B.,Piessens,F.,Leino,K.R.M.,Schulte,W.:具有不变量的聚合对象的安全并发。收录于:SEFM,第137-147页。IEEE计算机学会(2005)
[27] 拉希里,斯洛伐克;Hawblitzel,C。;川口,M。;热比洛,H。;Madhusudan,P。;Seshia,SA,SYMDIFF:命令式程序的语言不可知语义差异工具,计算机辅助验证,712-717(2012),海德堡:施普林格,海德堡·doi:10.1007/978-3642-31424-7_54
[28] Lahiri,S.K.,McMillan,K.L.,Sharma,R.,Hawblitzel,C.:差异断言检查。收录于:ESEC/SIGSOFT FSE,第345-355页。ACM(2013)
[29] KRM Leino;EM克拉克;Voronkov,A.,Dafny:功能正确性的自动程序验证器,《编程逻辑、人工智能和推理》,348-370(2010),海德堡:斯普林格·兹比尔1253.68095 ·文件编号:10.1007/978-3-642-17511-4_20
[30] KRM Leino;缪勒,P。;Müller,P.,《使用Spec#语言、方法和工具编写无错误程序》,《软件工程高级讲座》,91-139(2010),海德堡:斯普林格·doi:10.1007/978-3-642-13010-64
[31] KRM Leino;缪勒,P。;Castagna,G.,《验证多线程程序的基础》,《编程语言与系统》,378-393(2009),海德堡:施普林格出版社·Zbl 1234.68078号 ·doi:10.1007/978-3642-00590-9_27
[32] KRM Leino;缪勒,P。;Smans,J。;Aldini,A。;Barthe,G。;Gorrieri,R.,《用Chalice验证并发程序》,《安全分析与设计基础V》,195-222(2009),海德堡:施普林格出版社·doi:10.1007/978-3-642-03829-77
[33] Liskov,B。;Wing,JM,子类型的行为概念,ACM Trans。程序。语言系统。,16, 6, 1811-1841 (1994) ·数字对象标识代码:10.1145/197320.197383
[34] de Moura,L。;比约纳,N。;罗马克里希南,CR;Rehof,J.,Z3:高效SMT求解器,系统构建和分析的工具和算法,337-340(2008),海德堡:施普林格·doi:10.1007/978-3-540-78800-3_24
[35] 缪勒,P。;Schwerhoff,M。;AJ萨默斯;Jobstmann,B。;Leino,KRM,Viper:基于许可的推理、验证、模型检查和抽象解释的验证基础设施,41-62(2016),海德堡:施普林格·Zbl 1475.68191号 ·doi:10.1007/978-3-662-49122-52
[36] Murray,T.C.,Sison,R.,Engelhardt,K.:COVERN:信息流控制的组合验证逻辑。摘自:《欧洲标准普尔》,第16-30页。IEEE(2018)
[37] Myers,A.C.、Zheng,L.、Zdancewic,S.、Chong,S.和Nystrom,N.:Jif:Java信息流。软件版本(2006)。网址:http://www.cs.cornell.edu/jif
[38] O'Hearn,PW,《资源、并发和局部推理》,Theor。计算。科学。,375, 1-3, 271-307 (2007) ·Zbl 1111.68023号 ·doi:10.1016/j.tcs2006.12.035
[39] Pick,L.、Fedyukovich,G.、Gupta,A.:自动化安全信息流的模块化验证。收录于:FMCAD,第158-168页。IEEE(2020)
[40] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。收录于:LICS,第55-74页。IEEE计算机学会(2002)
[41] Scheben,C。;施密特,PH;贝克特,B。;达米亚尼,F。;Gurov,D.,无近似Java程序信息流特性的验证,面向对象软件的形式验证,232-249(2012),海德堡:施普林格,海德堡·doi:10.1007/978-3642-31762-0_15
[42] Schoepe,D.、Murray,T.、Sabelfeld,A.:VERONICA:表达性和精确的并发信息流安全。收录于:CSF,第79-94页。IEEE(2020)
[43] Shemer,R。;Gurfinkel,A。;Shoham,S。;Vizel,Y。;迪利格,I。;Tasiran,S.,《财产导向自我组合》,计算机辅助验证,161-179(2019),查姆:斯普林格,查姆·Zbl 1533.68176号 ·doi:10.1007/978-3-030-25540-49
[44] Smans,J。;雅各布斯,B。;Piessens,F.,隐式动态框架,ACM Trans。程序。语言系统。,34, 1, 2:1-2:58 (2012) ·doi:10.1145/2160910.2160911
[45] Smith,G.:安全信息流分析原理。收录:Christoporescu,M.、Jha,S.、Maughan,D.、Song,D.、Wang,C.(编辑)恶意软件检测。《信息安全进展》,第27卷。斯普林格,波士顿(2007)。数字对象标识代码:10.1007/978-0-387-44599-1_13
[46] Sousa,M.,Dillig,I.:验证k安全属性的笛卡尔灰逻辑。参见:PLDI,第57-69页。ACM(2016)
[47] 斯特里赫曼,O。;维茨曼,M。;菲茨杰拉德,J。;海特迈耶,C。;格内西,S。;Philippou,A.,非平衡递归函数的回归验证,FM 2016:形式方法,645-658(2016),Cham:Springer,Cham·Zbl 1427.68055号 ·doi:10.1007/978-3-319-48989-6_39
[48] Terauchi,T.等人。;艾肯,A。;汉金,C。;Siveroni,I.,《作为安全问题的安全信息流》,《静态分析》,352-367(2005),海德堡:施普林格出版社·Zbl 1141.68380号 ·doi:10.1007/11547662_24
[49] Zdancewic,S.,Myers,A.C.:并发程序安全的观察决定论。在:加拿大食品药品监督管理局,第29页。IEEE计算机学会(2003)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。