News for hackers. Stuff that matters.
Re:Dramatically Reducing Software Vulnerabilities [pdf] by tptacek on Wednesday October 05, 2016 @10:24AM (#12644049)
Take your software.

Rigorously define security goals ("no user can see another user's file; no input can cause this handler to access variables other than this specific list").

Convert all or, more likely, part of your program into a model; for instance, predicate logic.

Run analysis tools to verify that the model achieves the security goals. Once expressed in a mathematical model, "proving" it becomes a search problem, achievable with code. Intuition and cleverness can, if your model is accurate and complete, be eliminated.

It's sort of the software security equivalent of teaching a computer to play chess.

Re:Dramatically Reducing Software Vulnerabilities [pdf] by alaithea on Wednesday October 05, 2016 @11:35AM (#12644729)
This was already started by 18F. If you haven't heard of them, they are the first U.S. federal gov digital consultancy, and the primary force behind a lot of security/certification improvements already.

https://github.com/opencontrol/ https://github.com/opencontrol/compliance-masonry

Re:Dramatically Reducing Software Vulnerabilities [pdf] by tptacek on Wednesday October 05, 2016 @12:44PM (#12645483)
This stuff is neat, but it's more of a formal methods approach to security management than it is to reducing software vulnerabilities.

To apply formal methods to software development, you do one of two things:

* You transform code in conventional programming languages into machine-readable formats understood by model checkers

* You write your code in a language that itself admits to being model checked.

I appreciate this link, though; I was unaware of what 18F was doing here.

Re:Dramatically Reducing Software Vulnerabilities [pdf] by alaithea on Wednesday October 05, 2016 @04:10PM (#12647364)
I'm pretty sure what you're talking about exists in the OpenControl repos somewhere-- I'm just not sure which one (sorry). My former 18F colleague was recently talking about translating controls about password specifications into actual automated tests on the codebase and/or app.

The reason all that "formal methods" stuff is in there as well (and indeed it's what the more prominent repos in there are about) is so that we can eventually connect the dots between effective security practices in code and the management of the security controls on the administrative side, and at least until the former catches up to the software methods, take the manual work of generating the copious documentation regarding all of this out of the developers' hands. Case in point: https://compliance.cloud.gov/ (<- all auto-gen, AFAIK)