
Scanner di vulnerabilità OpenSSL Heartbleed (CVE-2014-0160).
$ git clone [email protected]:pblittle/suture.git
$ cd suture
$ bundle install
$ bundle exec ./bin/suture --help
$ bundle exec ./bin/suture <options> check
Suture è uno strumento per eseguire comandi arbitrari sulle tue istanze AWS EC2. Puoi eseguirlo su una singola istanza o su un'intera regione. Suture è stato originariamente scritto per determinare se una qualsiasi delle nostre istanze EC2 in esecuzione utilizzasse una versione di OpenSSL suscettibile alla vulnerabilità Heartbleed.
Un controllo suture si collegherà via ssh a ciascuna delle tue istanze EC2 ed eseguirà un determinato comando. L'output del comando verrà confrontato con una stringa o un'espressione regolare fornita per la validazione.
Per impostazione predefinita, Suture eseguirà openssl version -v per verificare la versione di OpenSSL. Se l'output del comando corrisponde a 1.0.(1[a-f]|2-beta1), allora sappiamo che la build non include la vulnerabilità Heartbleed. Un report indicherà il risultato del confronto.
Se non stai utilizzando questo strumento per il controllo della vulnerabilità OpenSSL, basta passare un comando di controllo personalizzato usando --check-command e il risultato desiderato usando --check-result. Verrà eseguita una corrispondenza regex per determinare il risultato.
Se preferisci controllare una sola istanza, passa il flag --instance-id con l'ID dell'istanza in questione. Questo ridurrà la query a una singola istanza.
Se stai controllando una regione diversa da us-east-1, fornisci la regione desiderata usando il flag --region.
Dovrai iniziare fornendo a suture le tue credenziali AWS. Puoi esportare le credenziali AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY:
$ export AWS_ACCESS_KEY_ID='your-access-key'
$ export AWS_SECRET_ACCESS_KEY='your-secret-key'
In alternativa, puoi usare i flag della riga di comando --aws-access-key e --aws-secret-access-key per autenticarti.
Per impostazione predefinita, suture usa l'utente ubuntu per connettersi all'istanza. Questo può essere modificato usando il flag --ssh-user. Il percorso predefinito della chiave privata è ~/.ec2. Puoi sovrascrivere questo percorso usando il flag --identity-file-path.
Infine, esegui il comando check per visualizzare lo stato delle tue istanze:
$ bundle install
$ bundle exec ./bin/suture [<options>] check
Per ulteriori opzioni di comando, ./bin/suture --help:
Usage: suture [<options>] check
-A, --aws-access-key-id KEY the access key identifier
-K SECRET, the access key identifier
--aws-secret-access-key
-x, --ssh-user USERNAME the ssh username
-i IDENTITY_FILE_PATH, the SSH identity file used for authentication
--identity-file-path
-I, --instance-id INSTANCE_ID the instance to check
--region REGION your AWS region
-c CHECK_COMMAND, the check command to run
--check-command
-r, --check-result CHECK_RESULT the check result to match
Troverai i valori di configurazione predefiniti nell'hash delle opzioni. Dovresti sovrascrivere questi valori usando i flag della riga di comando sopra indicati.
options = {
:aws => {
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
:ec2 => {
:ssh_user => 'ubuntu',
:instance_id => nil,
:identity_file_path => ::File.join(Dir.home, '.ec2')
},
:region => 'us-east-1'
},
:check_command => 'openssl version -v',
:check_result => 'OpenSSL 1.0.1g 7 Apr 2014'
}
git checkout -b my-new-feature)git commit -am 'Add some feature')git push origin my-new-feature)Questa applicazione è distribuita sotto la Apache License, Version 2.0.