
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 — это инструмент для выполнения произвольных команд на ваших экземплярах AWS EC2. Вы можете запускать его как для отдельного экземпляра, так и для целого региона. Изначально Suture был написан для проверки, не использует ли какой-либо из запущенных экземпляров EC2 версию OpenSSL, уязвимую для Heartbleed.
Проверка Suture подключается по SSH к каждому вашему экземпляру EC2 и выполняет заданную команду. Вывод команды сравнивается с предоставленной строкой или регулярным выражением для проверки.
По умолчанию Suture выполняет openssl version -v для проверки версии OpenSSL. Если вывод команды соответствует 1.0.(1[a-f]|2-beta1), то сборка не содержит уязвимости Heartbleed. Отчёт покажет результат сравнения.
Если вы не используете это для проверки уязвимости OpenSSL, просто передайте собственную команду проверки через --check-command и желаемый результат через --check-result. Для определения результата будет выполнено сопоставление с регулярным выражением.
Если вы предпочитаете проверить только один экземпляр, передайте флаг --instance-id с соответствующим идентификатором экземпляра. Это сократит запрос до одного экземпляра.
Если вы проверяете регион, отличный от us-east-1, укажите нужный регион с помощью флага --region.
Вам нужно начать с предоставления Suture ваших учётных данных AWS. Вы можете экспортировать учётные данные AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY:
$ export AWS_ACCESS_KEY_ID='your-access-key'
$ export AWS_SECRET_ACCESS_KEY='your-secret-key'
Альтернативно, вы можете использовать флаги командной строки --aws-access-key и --aws-secret-access-key для аутентификации.
По умолчанию Suture использует пользователя ubuntu для подключения к экземпляру. Это можно изменить с помощью флага --ssh-user. Путь к закрытому ключу по умолчанию — ~/.ec2. Вы можете переопределить этот путь с помощью флага --identity-file-path.
Наконец, выполните команду check, чтобы просмотреть статус ваших экземпляров:
$ bundle install
$ bundle exec ./bin/suture [<options>] check
Для получения дополнительных параметров команды: ./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
Значения конфигурации по умолчанию находятся в хэше options. Вы должны переопределить эти значения с помощью приведённых выше флагов командной строки.
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)Это приложение распространяется на условиях Apache License, Version 2.0.