Continuous compliance

Download: PDF, slides (PDF), scripts and data, KMS checker, crypto checker, bucket checker, no literal checker.

“Continuous compliance” by Martin Kellogg, Martin Schäf, Serdar Tasiran, and Michael D. Ernst. In ASE 2020: Proceedings of the 35th Annual International Conference on Automated Software Engineering, (Melbourne, Australia), Sep. 2020, pp. 511-523.

Abstract

Vendors who wish to provide software or services to large corporations and governments must often obtain numerous certificates of compliance. Each certificate asserts that the software satisfies a compliance regime, like SOC or the PCI DSS, to protect the privacy and security of sensitive data. The industry standard for obtaining a compliance certificate is an auditor manually auditing source code. This approach is expensive, error-prone, partial, and prone to regressions.

We propose continuous compliance to guarantee that the codebase stays compliant on each code change using lightweight verification tools. Continuous compliance increases assurance and reduces costs.

Continuous compliance is applicable to any source-code compliance requirement. To illustrate our approach, we built verification tools for five common audit controls related to data security: cryptographically unsafe algorithms must not be used, keys must be at least 256 bits long, credentials must not be hard-coded into program text, HTTPS must always be used instead of HTTP, and cloud data stores must not be world-readable.

We evaluated our approach in three ways. (1) We applied our tools to over 5 million lines of open-source software. (2) We compared our tools to other publicly-available tools for detecting misuses of encryption on a previously-published benchmark, finding that only ours are suitable for continuous compliance. (3) We deployed a continuous compliance process at AWS, a large cloud-services company: we integrated verification tools into the compliance process (including auditors accepting their output as evidence) and ran them on over 68 million lines of code. Our tools and the data for the former two evaluations are publicly available.

Download: PDF, slides (PDF), scripts and data, KMS checker, crypto checker, bucket checker, no literal checker.

BibTeX entry:

@inproceedings{KelloggSTE2020,
   author = {Martin Kellogg and Martin Sch{\"a}f and Serdar Tasiran and
	Michael D. Ernst},
   title = {Continuous compliance},
   booktitle = {ASE 2020: Proceedings of the 35th Annual International
	Conference on Automated Software Engineering},
   pages = {511-523},
   address = {Melbourne, Australia},
   month = sep,
   year = {2020}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.