
OpenSSL Heartbleed (CVE-2014-0160) escáner de vulnerabilidad.
$ git clone [email protected]:pblittle/suture.git
$ cd suture
$ bundle install
$ bundle exec ./bin/suture --help
$ bundle exec ./bin/suture <options> check
Suture es una herramienta para ejecutar comandos arbitrarios en tus instancias de AWS EC2. Puedes ejecutarlo contra una instancia individual o una región completa. Suture fue originalmente escrito para determinar si alguna de nuestras instancias EC2 en ejecución estaba usando una versión de OpenSSL susceptible a la vulnerabilidad Heartbleed.
Una verificación de suture se conectará por SSH a cada una de tus instancias EC2 y ejecutará un comando dado. La salida del comando se comparará con una cadena o expresión regular proporcionada para su validación.
Por defecto, Suture ejecutará openssl version -v para verificar la versión de OpenSSL. Si la salida del comando coincide con 1.0.(1[a-f]|2-beta1), entonces sabemos que la compilación no incluye la vulnerabilidad Heartbleed. Un informe indicará el resultado de la comparación.
Si no estás usando esto para la verificación de vulnerabilidad de OpenSSL, simplemente pasa un comando de verificación personalizado usando --check-command y el resultado deseado usando --check-result. Se realizará una coincidencia de expresiones regulares para determinar el resultado.
Si prefieres verificar solo una instancia, pasa la bandera --instance-id con el ID de la instancia en cuestión. Esto reducirá la consulta a una instancia.
Si estás verificando una región que no sea us-east-1, proporciona la región deseada usando la bandera --region.
Necesitarás comenzar proporcionando a suture tus credenciales de AWS. Puedes exportar las credenciales AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY:
$ export AWS_ACCESS_KEY_ID='your-access-key'
$ export AWS_SECRET_ACCESS_KEY='your-secret-key'
Alternativamente, puedes usar las banderas de línea de comandos --aws-access-key y --aws-secret-access-key para autenticarte.
Por defecto, suture usa el usuario ubuntu para conectarse a la instancia. Esto se puede cambiar usando la bandera --ssh-user. La ruta predeterminada de la clave privada es ~/.ec2. Puedes sobrescribir esta ruta usando la bandera --identity-file-path.
Finalmente, ejecuta el comando check para ver el estado de tus instancias:
$ bundle install
$ bundle exec ./bin/suture [<options>] check
Para opciones adicionales de comandos, ./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
Encontrarás los valores de configuración predeterminados en el hash de opciones. Deberías sobrescribir estos valores usando las banderas de línea de comandos anteriores.
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)Esta aplicación se distribuye bajo la Licencia Apache, Versión 2.0.