
OpenSSL Heartbleed (CVE-2014-0160) scanner de vulnérabilité.
$ git clone [email protected]:pblittle/suture.git
$ cd suture
$ bundle install
$ bundle exec ./bin/suture --help
$ bundle exec ./bin/suture <options> check
Suture est un outil pour exécuter des commandes arbitraires sur vos instances AWS EC2. Vous pouvez l'exécuter sur une instance individuelle ou sur une région entière. Suture a été initialement écrit pour déterminer si l'une de nos instances EC2 en cours d'exécution utilisait une version d'OpenSSL sensible à la vulnérabilité Heartbleed.
Une vérification suture va se connecter en SSH à chacune de vos instances EC2 et exécuter une commande donnée. La sortie de la commande sera comparée à une chaîne ou une expression régulière fournie pour validation.
Par défaut, Suture exécutera openssl version -v pour vérifier la version d'OpenSSL. Si la sortie de la commande correspond à 1.0.(1[a-f]|2-beta1), alors nous savons que la build n'inclut pas la vulnérabilité Heartbleed. Un rapport indiquera le résultat de la comparaison.
Si vous n'utilisez pas cela pour la vérification de vulnérabilité OpenSSL, passez simplement une commande de vérification personnalisée en utilisant --check-command et le résultat souhaité avec --check-result. Une correspondance regex sera effectuée pour déterminer le résultat.
Si vous préférez vérifier une seule instance, passez le flag --instance-id avec l'ID de l'instance en question. Cela réduira la requête à une instance.
Si vous vérifiez une région autre que us-east-1, fournissez la région désirée en utilisant le flag --region.
Vous devrez commencer par donner vos identifiants AWS à suture. Vous pouvez soit exporter les identifiants AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY :
$ export AWS_ACCESS_KEY_ID='your-access-key'
$ export AWS_SECRET_ACCESS_KEY='your-secret-key'
Alternativement, vous pouvez utiliser les flags de ligne de commande --aws-access-key et --aws-secret-access-key pour vous authentifier.
Par défaut, suture utilise l'utilisateur ubuntu pour se connecter à l'instance. Cela peut être changé en utilisant le flag --ssh-user. Le chemin par défaut de la clé privée est ~/.ec2. Vous pouvez écraser ce chemin en utilisant le flag --identity-file-path.
Enfin, exécutez la commande check pour voir le statut de vos instances :
$ bundle install
$ bundle exec ./bin/suture [<options>] check
Pour des options de commande supplémentaires, ./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
Vous trouverez les valeurs de configuration par défaut dans le hash options. Vous devez écraser ces valeurs en utilisant les flags de ligne de commande ci-dessus.
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 'Ajouter une fonctionnalité')git push origin my-new-feature)Cette application est distribuée sous la Licence Apache, Version 2.0.