Maintaining confidential information control in software is a persistent security problem where failure means secrets can be revealed via program behaviors. Information flow control techniques traditionally have been based on static or symbolic analyses -- limited in scalability and specialized to particular languages. When programs do leak secrets there are no approaches to automatically repair them unless the leak causes a functional test to fail. We present our vision for HyperGI, a genetic improvement framework tha detects, localizes and repairs information leakage. Key elements of HyperGI include (1) the use of two orthogonal test suites, (2) a dynamic leak detection approach which estimates and localizes potential leaks, and (3) a repair component that produces a candidate patch using genetic improvement. We demonstrate the successful use of HyperGI on several programs which have no failing functional tests. We manually examine the resulting patches and identify trade-offs and future directions for fully realizing our vision.
翻译:在软件中,保密信息控制是一个长期存在的安全问题,因为失败意味着秘密可以通过程序行为披露。信息流动控制技术传统上以静态或象征性分析为基础 -- -- 限制可缩放性和特定语言的专门性。当程序泄漏秘密时,没有办法自动修复这些秘密,除非泄漏导致功能测试失败。我们展示了我们对HyperGI的愿景,即基因改良框架检测、本地化和修复信息泄漏。HyperGI的关键内容包括:(1) 使用两个正方位测试套房,(2) 动态漏泄检测方法,该方法估计潜在的漏泄并本地化,(3) 利用基因改良产生候选补丁的修复部件。我们展示了HyperGI在一些没有失败功能测试的程序中的成功使用。我们手动检查了由此产生的补丁,并确定了全面实现我们愿景的取舍和未来方向。