In security-critical software applications, confidential information must be prevented from leaking to unauthorized sinks. Static analysis techniques are widespread to enforce a secure information flow by checking a program after construction. A drawback of these systems is that incomplete programs during construction cannot be checked properly. The user is not guided to a secure program by most systems. We introduce IFbCOO, an approach that guides users incrementally to a secure implementation by using refinement rules. In each refinement step, confidentiality or integrity (or both) is guaranteed alongside the functional correctness of the program, such that insecure programs are declined by construction. In this work, we formalize IFbCOO and prove soundness of the refinement rules. We implement IFbCOO in the tool CorC and conduct a feasibility study by successfully implementing case studies.
翻译:在安全关键软件应用程序中,必须防止机密信息泄漏到未经授权的汇。 静态分析技术很普遍,通过在施工后检查程序来实施安全信息流动。 这些系统的缺点是施工期间的不完整程序无法进行适当检查。 用户没有遵循大多数系统的安全程序。 我们引入了IFBCOO, 这种方法通过使用完善规则来引导用户逐步实现安全实施。 在每一步改进、保密或完整性(或两者)中,都保证了程序的运作正确性,因此不可靠的程序因施工而减少。 在这项工作中,我们正式确定IFBCOO, 并证明完善规则是健全的。 我们在CorC工具中实施IFBCOO, 并通过成功实施案例研究进行可行性研究。