CodeGuru Security finds security vulnerabilities in your Java, Python, and JavaScript code. It then provides recommendations to improve your code. CodeGuru Security also scans for hardcoded credentials. For example, CodeGuru Security detects Open Worldwide Application Security Project (OWASP) Top Ten issues, Common Weakness Enumeration (CWE) Top 25 issues, log injection, secrets, and secure use of AWS APIs and SDKs. See the Amazon CodeGuru Detector Library for more details on vulnerabilities found by CodeGuru Security.
CodeGuru Security provides a simplified and flexible API that can be used to integrate and detect vulnerabilities at any stage of the development lifecycle, including integrated development environments (IDEs) and continuous integration and delivery (CI/CD).
CodeGuru Security combines machine learning (ML) and automated reasoning to detect bugs with high precision so that you don’t spend time on false positives.
CodeGuru Security uses powerful algorithms to detect when a code is fixed and closes the finding automatically. This simplifies bug tracking and removes the need to manually track bug fixes.
CodeGuru Security uses automated reasoning to provide suggested code fixes for certain vulnerabilities. Use this to quickly apply code fixes and reduce the amount of time it takes to fix an issue.
CodeGuru Profiler is continually searching for application performance optimizations. It identifies your most expensive lines of code and recommending ways to fix them to reduce CPU utilization, cut compute costs, and improve application performance. For example, CodeGuru Profiler can identify when your application is consuming excessive CPU capacity on a logging routine instead of executing on core business logic.
CodeGuru Profiler is designed to continually run on production with minimal overhead. This means that you can leave it on all the time with minimal impact on application performance. It helps you profile and troubleshoot your application using real customer traffic patterns and more easily discover performance issues. With the profiler data and ML-powered recommendations, you can identify and fix performance issues for your applications in production. CodeGuru Profiler also provides a heap summary, so you can identify which objects are using up memory at any given time.
CodeGuru Profiler continually analyzes application CPU utilization, heap usage, and latency characteristics to show you where you are spending the most cycles or time in your application. The CPU and latency analysis is presented in an interactive flame graph that helps you more easily understand which code paths consume the most resources, verify that your application is performing as expected, and uncover areas that can be optimized further.
The heap usage analysis is presented on a heap summary visualization that shows you what objects are allocated on your heap—whether your own domain classes or those owned by libraries or the JDK.
CodeGuru Profiler automatically identifies performance issues in your application and provides ML-powered recommendations on how to remediate them. These recommendations help you identify and optimize the most expensive or resource-intensive methods within your code without requiring performance engineering expertise. These optimizations help you reduce the cost of your infrastructure, reduce latency, and improve your overall end user experience.
CodeGuru Profiler continually analyzes your application profiles in real time and detects anomalies in the behavior of your application and its methods. Each anomaly is tracked in the Recommendation report of the CodeGuru Profiler console, and you can see time series of how the method’s latency behaves over time with anomalies clearly highlighted. If configured, an Amazon Simple Notification Service (Amazon SNS) notification will also be sent when a new anomaly is detected.