Simple but always appearing software flaws can be found using static code analyzers or other code scanning tools. We are limited to freely available code scanners, some examples that need to be verified are
- rats (C, C++, Perl, PHP, Python)
- pylint quality checker (Python)
- PyChecker code checker (Python, last release 2011)
- FindBugs (Java)
- Yasca Meta-tool to leverage existing tools for scanning (also supports Python)
- brakeman Rails security code scanner, good integration in Jenkins (Ruby on Rails)
- more tools are listed at Wikipedia
Jenkins can be used to scan the source code after every code submit or on a regular basis (Zuul to schedule the job) to find simple vulnerabilities. We (SUSE) have very good experiences in using Jenkins and brakeman. Scanning the code is only one step toward a more secure code. The flaws found by the scanner need to be reviewed and fixed, this final steps should involve the developer of the code to help her see potential security problems on her own in the future.
Several security issues could be easily find using security test-suites that run against a deployed version of OpenStack.