Amazon CodeGuru Reviewer

Amazon CodeGuru Reviewer rileva i problemi presenti nel codice Java e Python e fornisce suggerimenti su come migliorare il codice. Ad esempio, CodeGuru Reviewer rileva vulnerabilità di sicurezza, segreti, perdite di risorse, problemi di concorrenza, la convalida degli input errati e la mancata conformità alle best practice per l'utilizzo delle API e dei kit SDK di AWS. Per iniziare la revisione del codice, puoi associare i repository di codice esistenti su GitHub, GitHub Enterprise, Bitbucket o AWS CodeCommit con CodeGuru.

Rilevamento della sicurezza

CodeGuru Reviewer ti aiuta ad aumentare la sicurezza del codice e fornisce suggerimenti basati sulle vulnerabilità comuni (OWASP Top 10) e sulle best practice di AWS sulla sicurezza interna. Utilizza il ragionamento automatizzato per analizzare il flusso di dati dall'origine al sink e tra più funzioni, al fine di rilevare vulnerabilità di sicurezza difficili da individuare. CodeGuru Reviewer Security Detector supporta da Java 8 fino a Java 11 e Python 3 e successivi. Puoi utilizzarlo per rilevare problemi di sicurezza nel codice come, per esempio:

  1. OWASP Top 10: controlla i principali rischi per la sicurezza delle applicazioni web, come le interruzioni del controllo degli accessi, l'inserimento e gli errori di integrità dei dati
  2. Best practice di sicurezza delle API AWS: verifica la sicurezza API di Amazon Elastic Compute Cloud e AWS Key Management Service
  3. Best practice di sicurezza AWS (la crittografia AWS è implementata negli standard Amazon): applica l'esperienza di sicurezza interna di Amazon al tuo codice
  4.  Best practice di Java Crypto Library: verifica se Javax.Crypto.Cipher viene inizializzato e richiamato correttamente
  5. Best practice di Python Crypto Library: verifica che siano utilizzate le versioni corrette degli algoritmi di hashing e crittografia di Python
  6. Applicazioni Web sicure: verifica i problemi di sicurezza relativi alle app, come gli inserimenti LDAP
  7. Divulgazione di informazioni sensibili: verifica l'eventuale divulgazione di informazioni sensibili (ad esempio, registrazione dei credenziali di account AWS in formato testo semplice)
  8. Convalida di input: verifica la presenza di dati malformati o maligni provenienti da fonti non attendibili
  9. Log injection: protegge dalle vulnerabilità di tipo Log4j controllando che il codice impedisca correttamente le voci di log falsificate o l'iniezione di contenuti dannosi nei log

Puoi andare nella console di Amazon CodeGuru e richiamare un'analisi di sicurezza sulla tua repository o integrarla a CI/CD tramite le Operazioni GitHub.

Image under Security detection

Rilevamento dei segreti

CodeGuru Reviewer Secrets Detector applica l'analisi basata sul machine learning per aiutarti a rilevare segreti scritti nel codice presenti nel tuo repository o nei file di configurazione, comprese password, chiavi API, chiavi SSH, token di accesso, stringhe di connessione del database e token web JSON. Parte del CodeGuru Reviewer, Secrets Detector è un meccanismo automatizzato che verifica la presenza di segreti nel codice e fornisce fasi applicabili con la semplicità di un clic per metterli al sicuro tramite AWS Secrets Manager. Può anche identificare chiavi specifiche generate di provider di API più comuni, come AWS, Atlassian, GitHub, Salesforce, HubSpot e Stripe. Per un elenco dei segreti, consulta la documentazione.

Rilevamento dei segreti

Qualità del codice

CodeGuru Reviewer identifica problemi di qualità del codice e consente al tuo team di sviluppo di mantenere un livello alto negli standard di codificazione nel processo di sviluppo del software:

  • Best practice di AWS: l'utilizzo corretto delle API di AWS (ad esempio, polling, impaginazione)
  • Best practice di Java e Python: l'utilizzo corretto del linguaggio Java e Python comune e le caratteristiche delle librerie
  • Concorrenza: rileva le sincronizzazioni mancanti che determinano funzionalità errate o una sincronizzazione eccessiva che causa problemi di prestazioni
  • Incoerenza: analizza le sequenze del codice all'interno di una repository e aiuta a rilevare la presenza di anomalie che deviano dalla sequenza standard.
  • Manutenibilità del codice: identifica le complessità del codice o eventuali caratteristiche del codice sorgente che rendono difficile la manutenzione del codice nel tempo
  • Perdita di risorse: gestione corretta delle risorse (ad esempio, rilasciare connessioni di database)
  • Best practice di codifica del codice: controlla i parametri e cerca linee di codice che potrebbero creare bug (ad esempio, dimenticare di controllare che un oggetto sia nullo prima di impostarlo, riassegnare un oggetto sincronizzato o dimenticare di inizializzare una variabile su un percorso di eccezione)
  • Clonazione del codice: identifica il codice duplicato che potrebbe essere consolidato per una migliore manutenibilità del codice
Qualità del codice

Suggerimenti automatici

Ci sono due revisioni diverse del codice che CodeGuru Reviewer può effettuare per fornire suggerimenti: revisioni incrementali e complete del codice del repository 

Revisioni incrementali del codice 
Le revisioni incrementali del codice vengono create automaticamente quando crei una richiesta pull da una repository associata. Queste revisioni del codice scansionano il codice modificato in una richiesta pull. CodeGuru Reviewer inoltre fornisce un pannello di controllo per le richieste pull che elenca le informazioni necessarie per tutte le revisioni del codice (esempio: stato della revisione del codice, numero di righe di codice analizzate e numero di suggerimenti). Il prezzo mensile standard di CodeGuru Reviewer include tutte le analisi delle valutazioni incrementali del codice per i repository di cui è stato eseguito l'onboarding.

Suggerimenti automatici

Revisioni complete del codice sull'analisi del repository
Con CodeGuru Reviewer, puoi ottenere suggerimenti sulla valutazione del codice basati sul ML per tutte le righe di codice nei repository associati in un ramo del codice specificato. Puoi eseguire scansioni complete del repository per ottenere suggerimenti sulla revisione del codice durante la sua migrazione, la due diligence del codice e le iniziative periodiche di manutenibilità del codice. Nella console CodeGuru, puoi accedere alla scheda "Analisi del repository" nella pagina "Revisioni del codice" per attivare una nuova analisi su un repository completo. Due scansioni complete del repository sono incluse nel nuovo modello di prezzo del repository basato sulle dimensioni. Per ulteriori dettagli, consulta la pagina dei prezzi di CodeGuru.

Revisioni complete del codice sull'analisi del repository
Revisioni del codice

Puoi visualizzare tutte le revisioni del codice nella pagina della console "Revisioni del codice" (sezione del revisore). La pagina elenca tutte le informazioni sulla valutazione del codice come lo stato della valutazione del codice, il repository, il numero di suggerimenti e molto altro. Puoi fare clic su una valutazione di codice completata correttamente per visualizzare i dettagli dei suggerimenti, cercare suggerimenti e visualizzare il numero di righe analizzate. Puoi anche lasciare un feedback sui suggerimenti di CodeGuru facendo clic sulle icone con i pollici al di sotto del suggerimento.

Integrazione CI/CD con Azioni GitHub

CI/CD per CodeGuru Reviewer ti permette di attivare la qualità del codice e l'analisi di sicurezza come un passaggio previsto dal tuo flusso di lavoro CI tramite le Azioni GitHub. Puoi configurarlo per l'esecuzione e fornire suggerimenti su un'esecuzione pull, push o pianificata della tua pipeline. Dopo aver attivato una scansione di CodeGuru Reviewer tramite CI/CD, potrai visualizzare la qualità del codice e i suggerimenti per la sicurezza dalla console CodeGuru Reviewer o all’interno dell’interfaccia utente di GitHub. Con l'integrazione CI/CD puoi monitorare costantemente la qualità e la sicurezza del tuo codice per assicurarti di non perdere neanche un suggerimento. È possibile utilizzare l'azione GitHub di CodeGuru Reviewer su GitHub Marketplace per eseguire revisioni della sicurezza e ricevere suggerimenti direttamente nell'interfaccia utente di GitHub. Una volta all'interno, i suggerimenti verranno visualizzati direttamente nella scheda Sicurezza di GitHub.

Rilevamento della sicurezza

I suggerimenti vengono forniti anche all'interno della richiesta pull e all'interno della Console AWS. Facendo clic su un suggerimento all'interno di GitHub, si ottengono informazioni più dettagliate sul risultato, come il problema che crea all'interno dell'applicazione, il percorso di risoluzione, eventuali CWE (Common Weakness Enumerations) collegati e la relativa gravità.

Richieste pull

Amazon CodeGuru Profiler

Amazon CodeGuru Profiler è sempre alla ricerca di nuovi modi per ottimizzare le prestazioni delle applicazioni, identificando le righe di codice più "costose" e consigliando le opportune correzioni al fine di ridurre l'utilizzo della CPU e dei costi di elaborazione, nonché di migliorare le prestazioni dell'applicazione. Ad esempio, CodeGuru Profiler è in grado di identificare i momenti in cui l'applicazione richiede una capacità di CPU eccessiva tramite una routine di registrazione anziché tramite l'esecuzione della logica di business principale.

Profiling sempre attivo per le applicazioni in produzione

CodeGuru Profiler è un servizio progettato per essere eseguito sempre in produzione con un sovraccarico minimo, per lasciarlo sempre attivo con un impatto minimo sulle prestazioni dell'applicazione. Ciò ti consente di effettuare il profiling e di risolvere i problemi della tua applicazione utilizzando i modelli di traffico dei clienti reali, nonché di individuare con facilità i problemi relativi alle prestazioni. Con i dati profiler e i suggerimenti basati su machine learning, puoi identificare e risolvere problemi relativi alle prestazioni per le applicazioni in produzione. CodeGuru Profiler fornisce anche un riepilogo dell'heap, in modo che tu possa identificare quali oggetti stanno utilizzando la memoria in un dato momento.

Informazioni sul comportamento del tempo di esecuzione delle applicazioni

CodeGuru Profiler analizza costantemente le caratteristiche di utilizzo della CPU, di utilizzo dell'heap e della latenza, per mostrarti i punti in cui l'applicazione impiega più tempo o il maggior numero di cicli. L'analisi della CPU e della latenza viene presentata in un grafico a fiamma interattivo che ti aiuta a capire facilmente quali percorsi di codice richiedono più risorse, a verificare che l'applicazione funzioni come previsto e a individuare gli aspetti che possono essere ottimizzati ulteriormente.

Anomalia nell'elaborazione delle immagini
 Fai clic per ingrandire

I grafici a fiamma visualizzano le prestazioni dell'applicazione aggregando campioni di tracce dello stack in un determinato periodo di tempo, per produrre un'immagine accurata del comportamento dell'applicazione durante quel periodo. È possibile utilizzare un grafico a fiamma per capire quali percorsi richiedono più risorse, per verificare che l'applicazione funzioni come previsto e per individuare gli aspetti che possono essere ottimizzati ulteriormente. Ad esempio, il metodo UploadGreyImage richiede 134.868 USD all'anno e utilizza il 10,22% del tempo reale. Se non ti aspettavi che richiedesse tanto tempo, avresti potuto effettuare un'analisi.

Riepilogo dell'heap

L'analisi dell'utilizzo dell'heap viene presentata in una visualizzazione di riepilogo, che mostra gli oggetti allocati sull'heap, vale a dire classi di dominio o oggetti di proprietà delle librerie o del JDK.

Scopri le anomalie e i problemi comuni nelle prestazioni della tua applicazione
 Fai clic per ingrandire

Il riepilogo dell'heap visualizza tutti gli oggetti allocati sull'heap in un determinato periodo di tempo, insieme alle dimensioni, al conteggio e alle serie temporali. Ad esempio, nel grafico delle serie temporali, puoi vedere che alle 16:20 ci sono due oggetti che iniziano a crescere in modo significativo (java.util.LinkedHashMap$Entry e java.land.UUID), il che indica una potenziale perdita di memoria. Se questa tendenza di crescita continua e non viene controllata, potrebbe portare a una situazione di perdita di memoria.

Suggerimenti intelligenti

CodeGuru Profiler identifica automaticamente i problemi relativi alle prestazioni nella tua applicazione e fornisce suggerimenti basati su machine learning su come risolverli. Questi suggerimenti ti aiutano a identificare e ottimizzare i metodi più dispendiosi o impegnativi in termini di risorse nel codice senza dover fare affidamento a competenze tecniche specialistiche. Tali ottimizzazioni ti aiutano a ridurre il costo dell'infrastruttura e la latenza, nonché a migliorare l'esperienza complessiva degli utenti finali.

Suggerimenti intelligenti
 Fai clic per ingrandire

Se Amazon CodeGuru Profiler riscontra la possibilità di ottimizzare le prestazioni della tua applicazione, ti spiegherà il motivo per cui ti viene suggerita una data modifica, la causa del problema e la soluzione, nonché i punti del codice in cui il problema influisce negativamente sull'applicazione. Questo suggerimento mostra che questa riga di codice costa 182.160 USD all'anno e ha un impatto del 2,97% sull'utilizzo della CPU. Se segui i passaggi di risoluzione suggeriti, sarai in grado di risparmiare fino a 182.160 USD.

Rilevamento di anomalie

Amazon CodeGuru Profiler analizza di continuo i profili dell'applicazione in tempo reale e rileva anomalie nel comportamento dell'applicazione e dei suoi metodi. Ogni anomalia viene registrata nel report di Suggerimenti della console CodeGuru Profiler e puoi visualizzare serie temporali su come si comporta la latenza del metodo nel tempo con le anomalie chiaramente evidenziate. Se configurata, sarà inoltre inviata al momento del rilevamento di una nuova anomalia una notifica Amazon SNS.

Rilevamento di anomalie
 Fai clic per ingrandire
Prezzi di Amazon CodeGuru
Ulteriori informazioni sui prezzi di Amazon CodeGuru

Visita la pagina dei prezzi di Amazon CodeGuru.

Ulteriori informazioni 
Registrati per creare un account gratuito
Registrati per creare un account gratuito

Ottieni l'accesso immediato al piano gratuito di AWS. 

Registrati 
Inizia a lavorare nella console
Inizia a lavorare nella console

Inizia subito a utilizzare Amazon CodeGuru nella console di gestione AWS.

Accedi