On Wednesday, Microsoft's GitHub said it has acquired Semmle, a San Francisco-based software analysis platform for finding vulnerabilities in code. No price was disclosed.
GitHub CEO Nat Friedman said Semmle's code analysis engine provides developers with a way to write queries for code patterns and variations, which allows flaws to be identified and fixed.
The gobbled biz's platform, LGTM (short for Looks Good To Me), is used by Google, Mozilla, NASA and Uber, among others. It has helped find more than 100 CVE-listed security holes in open-source projects to date.
LGTM relies on QL queries, and these declarative queries, once written, can be shared, so bad patterns found in one project can be easily spotted elsewhere. Here's QL query NASA's JPL used to find variations on a manually identified bug in the space agency's Curiosity’s entry, descent and landing software:
import cpp from Function f, FunctionCall c, int i, int a, int b where f = c.getTarget() and a = ((ArrayType)c.getArgument(i).getType()).getArraySize() and b = ((ArrayType)f.getParameter(i).getType()).getArraySize() and a < b select c.getArgument(i), "Array of size " + a + " passed to $@, which expects an array of size " + b + ".", f, f.getName()
The ability to share QL queries turns out to be a good fit for GitHub's developer community and for the sort of collaboration that improves security. And in time, it should augment GitHub's automated security fixes.
"Software security is a community effort; no single company can find every vulnerability or secure the open source supply chain behind everyone’s code," said Friedman. "Semmle’s community-driven approach to identifying and preventing security vulnerabilities is the very best way forward."
GitHub's stated goal is to make the entire security process, from vulnerability identification to repair, more like a pull request – simple and potentially automated.
"The combination of GitHub and Semmle is, for lack of a better term, synergistic," said Stephen O'Grady, co-founder of IT consultancy RedMonk, in an email to The Register. "Semmle’s value add has been about reducing the time to discovery of vulnerabilities and increasing the reach of that same discovery. Integrating that into GitHub should result in more secure outputs from GitHub hosted projects."
O'Grady said Semmle should benefit from the deal too, through access to telemetry from GitHub's systems, which he expects will enhance Semmle's code analysis.
GitHub says it's in the early stages of integrating Semmle with its systems. In preparation for expected security enhancements, GitHub has been approved as a CVE Numbering Authority for open source projects. This will allow it to issue CVEs for security advisories opened on GitHub, ensuring greater dissemination of vulnerability information. ®