Amazon CodeGuru Reviewer

Amazon CodeGuru Reviewer findet in Ihrem Java und Python enthaltene Probleme und macht Vorschläge zur Verbesserung Ihres Codes. CodeGuru Reviewer erkennt beispielsweise Sicherheitsschwachstellen, Geheimnisse, Ressourcenlecks, Gleichzeitigkeitsprobleme, falsche Eingabevalidierung und Abweichungen von den bewährten Methoden für die Verwendung von AWS-APIs und -SDKs. Sie können Ihre vorhandenen Code-Repositorys in GitHub, GitHub Enterprise, Bitbucket oder AWS CodeCommit mit CodeGuru verknüpfen, um mit der Überprüfung des Codes zu beginnen.

Sicherheitserkennung

CodeGuru Reviewer hilft Ihnen, Ihre Code-Sicherheit zu verbessern und gibt Empfehlungen, basierend auf allgemeinen Schwachstellen (OWASP Top 10) und AWS bewährten internen Sicherheits-Methoden. Mithilfe automatisierter Logik wird der Datenfluss von der Quelle zur Senke und über mehrere Funktionen hinweg analysiert, um schwer zu findende Sicherheitsschwachstellen zu erkennen. CodeGuru Reviewer Security Detector unterstützt Java 8 bis Java 11 und Python 3 und neuere Versionen. Sie können es für die Erkennung von Code-Sicherheitsproblemen wie folgt verweden:

  1. OWASP Top 10: prüft Sicherheitsrisiken für Top-Webanwendung, wie zerstörte Zugriffskontrolle, Injektion und Datenintegritätsfehler
  2. Bewährte AWS API Sicherheitsmethoden: Prüfen der API-Sicherheit für Amazon Elastic Compute Cloud und AWS Key Management Service
  3. Bewährte AWS API Sicherheitsmethoden (AWS-Verschlüsselung ist in den Amazon Standards implementiert): Anwenden der internen Sicherheits-Knowhow von Amazon an Ihren Code.
  4.  Bewährte Methode für die Java Crypto-Bibliothek: Überprüfen Sie, ob Javax.Crypto.Cipher initialisiert und korrekt aufgerufen wurde
  5. Bewährte Methoden der Python Crypto Library: Überprüfen Sie, ob die korrekten Versionen der Python-Hashing- und Kryptographie-Algorithmen verwendet werden
  6. Sichere Webanwendungen: Überprüfen Sie Sicherheitsprobleme im Zusammenhang mit Webanwendungen, z. B. LDAP-Injektionen
  7. • Leck sensibler Informationen: Überprüfen Sie Lecks von persönlichen oder sensiblen Informationen (Beispiel: AWS-Kontoanmeldeinformationen in Klartext festhalten)
  8. Eingabevalidierung: Überprüft auf fehlerhafte oder bösartige Daten aus nicht vertrauenswürdigen Quellen
  9. Log Injection: Schützt vor Log4j-artigen Schwachstellen, indem überprüft wird, ob der Code gefälschte Protokolleinträge oder die Einspeisung bösartiger Inhalte in die Protokolle verhindert.

Sie können auf die Amazon-CodeGuru-Konsole gehen und eine Sicherheitsanalyse auf Ihrer kompletten Repository aufrufen oder mit CI/CD über GitHub-Aktionen inegrieren.

Image under Security detection

Geheimnis-Erkennung

Codeguru Secrets Detector verwendet auf Machine Learning basierte Analysen, um Ihnen bei der Erkennung von Hardcoded Geheimnissen zu helfen und in Ihrer Repository oder Konfigurationsdatein, einschließliche Passwort, API-Schlüssel, SSH-Schlüssel, Zugriffs-Token, Datenbank-Verbindungen und JSOn-Web-Token. Ein Teil des CodeGuru Reviewer, Secrets Detector ist ein automatisierter Mechanismus, der Codes auf diese Geheimnisse prüft und Point-und-Klick-Schritte bereitstellt, um diese mithilfe von AWS Secrets Manager zu sichern. Es kann auch spezielle Schlüssel identifizieren, die von den meisten API-Providern generiert werden, einschließlich AWS, Atlassian, GitHub, Salesforce, HubSpot und Stripe. Für eine Liste der Geheimnisse, gehen Sie zuDokumentation.

Geheimnis-Erkennung

Code-Qualität

CodeGuru Reviewer identifiziert Code-Qualitätsprobleme und rüstet Ihr Entwicklungsteam für die Einhaltung hoher Codierungsstandards im Softwareentwicklungsprozess:

  • Bewährte AWS-Methoden: Korrekte Verwendung von AWS APIs (z. B. Polling, Paginierung)
  • Bewährte Methoden für Java und Python: Richtige Verwendung der gängigen Sprach- und Bibliotheksfunktionen von Java und Python
  • Nebenläufigkeit: Erkennt fehlende Synchronisierung, die zu falscher Funktionalität oder übermäßiger Synchronisierung und damit zu Leistungsproblemen führt
  • Unbeständigkeit: Analysiert Coding von Mustern mit einer Repository und hilft zu erkennen, wenn es Anomalitäten gibt, die vom Standardmuster abweichen
  • Wartbarkeit des Codes: Identifiziert Codekomplexitäten oder jedes Merkmal im Quellcode, das die Wartung des Codes erschwert
  • Ressourcenlecks: Korrekte Handhabung von Ressourcen (z. B. Freigabe von Datenbankverbindungen)
  • Bewährte Codierungspraktiken: Prüft auf Parameter und sucht nach Codezeilen, die Fehler verursachen könnten (z. B. Vergessen zu prüfen, ob ein Objekt null ist, bevor es gesetzt wird, ein synchronisiertes Objekt neu zuzuweisen oder vergessen, eine Variable entlang eines Ausnahmepfads zu initialisieren)
  • Code-Klonen: Identifiziert duplizierten Code, der für eine bessere Wartbarkeit des Codes konsolidiert werden könnte
Code-Qualität

Automatisierte Empfehlungen

Es gibt zwei unterschiedliche Arten von Codes, die CodeGuru Reviewer für Empfehlungen bereitstellen können - Teileweise und vollständiges Repository Code Reviews 

Inkrementelle Code Reviews 
Inkrementelle Code Reviews weden automatisch erstellt, wenn Sie eine Pull-Anforderung von dazugehörigen Repositories erstellen. Diese Code-Revies scannen den geänderten Coder in einer Pull-Anforderung. CodeguruCodeGuru Reviewer stellt ebenfalls ein Pull-Anforderungs-Dashboard bereit, das alle Informationen auflisted, für alle Code-Reviews (Beispiel: Status des Code-Reviews, Anzahl der Zeilen des analysierten Codes und die Anzahl der Empfehlungen). Der monatliche Standardpreis für Codeguru Reviewer beinhaltet alle inkrementellen Code-Überprüfungsanalysen für eingebundene Repositorys.

Automatisierte Empfehlungen

Code-Prüfungen für volle Repository-Analyse
Mit CodeGuru Reviewer können Sie ML-gestützte Codeprüfungsempfehlungen für alle Codezeilen in den zugehörigen Repositorys (für alle Codezeilen in den zugehörigen Repositorys) unter einem bestimmten Codezweig erhalten. Sie können vollständige Repository-Scans durchführen, um Empfehlungen für Code-Reviews während der Codemigration, der Code-Due-Diligence und regelmäßiger Codewartbarkeitsinitiativen zu erhalten. In der CodeGuru-Konsole können Sie zur Registerkarte "Repository-Analyse" auf der Seite "Codeüberprüfungen" navigieren, um eine neue Analyse für ein volles Repository auszulösen. Zwei vollständige Repository-Scans sind im neuen, auf der Repository-Größe basierenden Preismodell enthalten. Weitere Informationen finden Sie auf der Seite mit den CodeGuru-Preisangaben.

Code-Prüfungen für volle Repository-Analyse
Code Reviews

Sie können alle Codeüberprüfungen auch auf der Konsolenseite "Codeüberprüfungen" (Rezensenten-Abschnitt) einsehen. Auf der Seite werden alle Code-Überprüfungsinformationen aufgeführt. Hierzu zählen unter anderem der Status der Codeüberprüfung, das Repository und die Anzahl von Empfehlungen. Sie können auf eine erfolgreich abgeschlossene Codeüberprüfung klicken, um sich Empfehlungsdetails anzusehen, nach Empfehlungen zu suchen und die Anzahl analysierter Zeilen anzuzeigen. Außerdem können Sie Feedback zu CodeGuru-Empfehlungen geben, indem Sie unterhalb der Empfehlung auf Daumen nach oben oder auf Daumen nach unten klicken.

CI/CD-Integration mit GitHub-Aktionen

CI/CD-Erfahrung für CodeGuru Reviewer, mit der Sie Codequalitäts- und Sicherheitsanalysen als Schritt innerhalb Ihres CI-Workflows mithilfe von GitHub Actions aufrufen können. Sie können ihn so konfigurieren, dass er ausgeführt wird und Empfehlungen für eine Pull-, Push- oder geplante Ausführung Ihrer Pipeline ausgibt. Nachdem Sie einen CodeGuru-Reviewer-Scan über CI/CD aufgerufen haben, können Sie Ihre Codequalitäts- und Sicherheitsempfehlungen in der CodeGuru-Reviewer-Konsole oder in der GitHub-Benutzeroberfläche anzeigen. Mit CI/CD-Integration können Sie fortlaufend die Qualität und Sicherheit Ihrer Codes überwachen und helfensicherzustellen, das Sie keine Empfehlung verpassen. Sie können die GitHub-Aktion von CodeGuru Reviewer auf demGitHub Marketplace benutzen, um Sicherheitsüberprüfungen durchzuführen und Empfehlungen direkt in der GitHub-Benutzeroberfläche zu erhalten. Sobald Sie an Bord sind, werden die Empfehlungen direkt auf der Registerkarte "Sicherheit" von GitHub angezeigt.

Sicherheitserkennung

Empfehlungen werden auch in der Pull-Anforderung und in der AWS-Konsole bereitgestellt. Wenn Sie in GitHub auf eine Empfehlung klicken, erhalten Sie detailliertere Informationen zu dem Fund, z. B. das Problem, das er in Ihrer Anwendung verursacht, den Pfad zur Lösung, alle damit verbundenen CWEs (Common Weakness Enumerations) und den Schweregrad.

Pull-Anforderungen

Amazon CodeGuru Profiler

CodeGuru Profiler ist stets auf der Suche nach Optimierungen der Anwendungsleistung, der Identifizierung der "teuersten" Codezeilen und der Empfehlung von Möglichkeiten zur Behebung, um die CPU-Auslastung zu verringern, die Rechenkosten zu senken und die Anwendungsleistung zu verbessern. Beispielsweise kann CodeGuru Profiler erkennen, wann Ihre Anwendung übermäßige CPU-Kapazität in einer Protokollierungsroutine beansprucht, anstatt die Kerngeschäftslogik umzusetzen.

Always-On-Profilierung von Anwendungen in der Produktion

CodeGuru Profiler wurde entwickelt, um mit minimalem Aufwand fortwährend in der Produktion zu laufen, d. h. Sie können ihn unter minimaler Leistungsbeeinträchtigung konstant laufen lassen. Sie können Ihre Anwendung anhand realer Kundendatenverkehrsmuster profilieren, Fehler beheben und Leistungsprobleme leicht erkennen. Mit den Profiler-Daten und ML-gestützten Empfehlungen können Sie Leistungsprobleme für Ihre Anwendungen in der Produktion identifizieren und beheben. CodeGuru Profiler bietet auch eine Heap-Zusammenfassung, mit der Sie ermitteln können, welche Objekte zu einem bestimmten Zeitpunkt Speicherplatz beanspruchen.

Verstehen des Laufzeitverhaltens von Anwendungen

CodeGuru Profiler analysiert kontinuierlich die CPU-Auslastung, Heap-Nutzung und Latenzmerkmale der Anwendung, um Ihnen zu zeigen, wo Sie die meisten Zyklen oder die meiste Zeit in Ihrer Anwendung verbringen. Die CPU- und Latenzanalyse wird in einem interaktiven Flammendiagramm angezeigt, das leicht verständlich darstellt, welche Codepfade die meisten Ressourcen verbrauchen, prüft, ob die Anwendung wie erwartet läuft und weitere Optimierungspotenziale sichtbar macht.

Bildverarbeitungsanomalie
 Zum Vergrößern anklicken

Flammendiagramme visualisieren die Leistung Ihrer Anwendung, indem sie Stapelverfolgungsbeispiele über einen bestimmten Zeitraum aggregieren, um ein genaues Bild des Anwendungsverhaltens während dieser Zeit zu erhalten. Mithilfe eines Flammendiagramms können Sie besser verstehen, welche Pfade die meisten Ressourcen verbrauchen, prüfen, ob die Anwendung wie erwartet läuft und weitere Optimierungspotenziale auffinden. Zum Beispiel werden für die Methode UploadGreyImage 134.868 USD pro Jahr ausgegeben, und dieser Vorgang verbraucht dabei 10,22 % der Zeit. Wenn Sie also nicht erwartet haben, dass sie so viel Zeit in Anspruch nimmt, sollten Sie nachforschen.

Heap-Zusammenfassung

Die Heap-Verwendungsanalyse wird in einer Heap-Zusammenfassungsvisualisierung dargestellt, die Ihnen zeigt, welche Objekte auf Ihrem Heap zugeordnet sind - ob Ihre eigenen Domainklassen oder die von Bibliotheken oder dem JDK.

Entdecken Sie Anomalien und häufige Probleme in Ihrer Anwendungsleistung.
 Zum Vergrößern anklicken

Die Heap-Zusammenfassung visualisiert alle Objekte, die für einen bestimmten Zeitraum auf dem Heap zugewiesen wurden, sowie deren Größe, Anzahl und Zeitreihen. Im Zeitreihendiagramm sehen Sie beispielsweise, dass um 16:20 Uhr zwei Objekte deutlich wachsen (java.util.LinkedHashMap$Entry und java.land.UUID), was ein Hinweis auf einen möglichen Speicherverlust ist. Wenn sich dieser Aufwärtstrend fortsetzt, kann dies unkontrolliert zu einer Situation führen, in der nicht genügend Speicher vorhanden ist.

Intelligente Empfehlungen

CodeGuru Profiler identifiziert Leistungsdefizite Ihrer Anwendung automatisch und gibt ML-gestützte Empfehlungen ab, wie diese zu beheben sind. Dank dieser Empfehlungen können Sie die kosten- bzw. ressourcenintensivsten in Ihrem Code enthaltenen Methoden ermitteln und optimieren – auch wenn Sie kein Experte im Bereich Performance Engineering sind. Mithilfe dieser Optimierungen reduzieren Sie Infrastrukturkosten, reduzieren die Latenz und verbessern das Endnutzererlebnis im Allgemeinen.

Intelligente Empfehlungen
 Zum Vergrößern anklicken

Wenn Amazon CodeGuru Profiler Möglichkeiten zur Optimierung der Anwendungsleistung erkennt, wird erläutert, warum eine Änderung empfohlen wird, was das Problem verursacht, wie es behoben werden kann und wo sich dieses Problem im Code auf Ihre Anwendung auswirkt. Diese Empfehlung zeigt Ihnen, dass diese teure Codezeile Sie 182,160 USD pro Jahr kostet und 2,97 % Ihrer aktiven CPU-Auslastung ausmacht. Wenn Sie die vorgeschlagenen Lösungsschritte befolgen, können Sie bis zu 182,160 USD sparen.

Anomalieerkennung

Amazon CodeGuru Profiler analysiert kontinuierlich Ihre Anwendungsprofile in Echtzeit und erkennt Anomalien im Verhalten Ihrer Anwendung und ihrer Methoden. Jede Anomalie wird im Empfehlungsbericht der CodeGuru-Profiler-Konsole verfolgt, und Sie können Zeitreihen darüber sehen, wie sich die Latenz der Methode im Laufe der Zeit verhält, wobei Anomalien deutlich hervorgehoben werden. Falls konfiguriert, wird bei Entdeckung einer neuen Anomalie auch eine Amazon-SNS-Benachrichtigung gesendet.

Anomalieerkennung
 Zum Vergrößern anklicken
Amazon CodeGuru – Preise
Weitere Informationen zu den Preisen von Amazon CodeGuru

Besuchen Sie die Amazon-CodeGuru-Preisseite.

Weitere Informationen 
Für ein kostenloses Konto registrieren
Für ein kostenloses Konto registrieren

Sie erhalten sofort Zugriff auf das kostenlose AWS-Kontingent. 

Registrieren 
Beginnen Sie mit dem Erstellen in der Konsole
Beginnen Sie mit dem Erstellen in der Konsole

Beginnen Sie mit dem Erstellen mit Amazon CodeGuru in der AWS-Managementkonsole.

Anmelden