Amazon CodeGuru Reviewer is a developer instrument that detects safety vulnerabilities in your code and offers clever suggestions to enhance code high quality. For instance, CodeGuru Reviewer launched Safety Detectors for Java and Python code to establish safety dangers from the high ten Open Net Software Safety Mission (OWASP) classes and observe safety greatest practices for AWS APIs and customary crypto libraries. At re:Invent, CodeGuru Reviewer launched a secrets and techniques detector to establish hardcoded secrets and techniques and counsel remediation steps to safe your secrets and techniques with AWS Secrets and techniques Supervisor. These capabilities show you how to discover and remediate safety points earlier than you deploy.
In the present day, I’m blissful to share two new options of CodeGuru Reviewer:
- A brand new Detector Library describes intimately the detectors that CodeGuru Reviewer makes use of when in search of attainable defects and contains code samples for each Java and Python.
- New safety detectors have been launched for detecting log-injection flaws in Java and Python code, much like what occurred with the latest Apache Log4j vulnerability we described on this weblog publish.
Let’s see these new options in additional element.
Utilizing the Detector Library
That will help you perceive extra clearly which detectors CodeGuru Reviewer makes use of to evaluate your code, we are actually sharing a Detector Library the place you could find detailed data and code samples.
These detectors show you how to construct safe and environment friendly functions on AWS. Within the Detector Library, you could find detailed details about CodeGuru Reviewer’s safety and code high quality detectors, together with descriptions, their severity and potential affect in your software, and extra data that helps you mitigate dangers.
Be aware that every detector seems to be for a variety of code defects. We embody one noncompliant and compliant code instance for every detector. Nonetheless, CodeGuru makes use of machine studying and automatic reasoning to establish attainable points. Because of this, every detector can discover a vary of defects along with the specific code instance proven on the detector’s description web page.
Let’s take a look at a couple of detectors. One detector is in search of insecure cross-origin useful resource sharing (CORS) insurance policies which can be too permissive and should result in loading content material from untrusted or malicious sources.
One other detector checks for improper enter validation that may allow assaults and result in undesirable conduct.
Particular detectors show you how to use the AWS SDK for Java and the AWS SDK for Python (Boto3) in your functions. For instance, there are detectors that may detect hardcoded credentials, resembling passwords and entry keys, or inefficient polling of AWS assets.
New Detectors for Log-Injection Flaws
Following the latest Apache Log4j vulnerability, we launched in CodeGuru Reviewer new detectors that verify when you’re logging something that’s not sanitized and probably executable. These detectors cowl the problem described in CWE-117: Improper Output Neutralization for Logs.
These detectors work with Java and Python code and, for Java, usually are not restricted to the Log4j library. They don’t work by wanting on the model of the libraries you utilize, however verify what you might be really logging. On this means, they’ll defend you if related bugs occur sooner or later.
Following these detectors, user-provided inputs should be sanitized earlier than they’re logged. This avoids having an attacker have the ability to use this enter to interrupt the integrity of your logs, forge log entries, or bypass log displays.
The Detector Library is free to browse as a part of the documentation. For the brand new detectors in search of log-injection flaws, commonplace pricing applies. See the CodeGuru pricing web page for extra data.