
OpenSSL Heartbleed (CVE-2014-0160) Sicherheitslücken-Scanner.
$ git clone [email protected]:pblittle/suture.git
$ cd suture
$ bundle install
$ bundle exec ./bin/suture --help
$ bundle exec ./bin/suture <options> check
Suture ist ein Tool zum Ausführen beliebiger Befehle auf Ihren AWS EC2-Instanzen. Sie können es gegen eine einzelne Instanz oder eine gesamte Region ausführen. Suture wurde ursprünglich entwickelt, um festzustellen, ob eine unserer laufenden EC2-Instanzen eine Version von OpenSSL verwendet, die anfällig für die Heartbleed-Sicherheitslücke ist.
Ein Suture-Check wird per SSH in jede Ihrer EC2-Instanzen einsteigen und einen angegebenen Befehl ausführen. Die Ausgabe des Befehls wird mit einer bereitgestellten Zeichenkette oder einem regulären Ausdruck zur Validierung verglichen.
Standardmäßig führt Suture openssl version -v aus, um die OpenSSL-Version zu überprüfen. Wenn die Ausgabe des Befehls mit 1.0.(1[a-f]|2-beta1) übereinstimmt, wissen wir, dass der Build die Heartbleed-Sicherheitslücke nicht enthält. Ein Bericht zeigt das Vergleichsergebnis an.
Wenn Sie dies nicht für die OpenSSL-Sicherheitslückenprüfung verwenden, übergeben Sie einfach einen benutzerdefinierten Prüfbefehl mit --check-command und das gewünschte Ergebnis mit --check-result. Es wird ein Regex-Abgleich durchgeführt, um das Ergebnis zu bestimmen.
Wenn Sie nur eine Instanz überprüfen möchten, übergeben Sie das --instance-id-Flag mit der betreffenden Instanz-ID. Dadurch wird die Abfrage auf eine Instanz reduziert.
Wenn Sie eine andere Region als us-east-1 überprüfen, geben Sie die gewünschte Region mit dem --region-Flag an.
Sie müssen zunächst suture Ihre AWS-Anmeldeinformationen geben. Sie können entweder die Umgebungsvariablen AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY exportieren:
$ export AWS_ACCESS_KEY_ID='your-access-key'
$ export AWS_SECRET_ACCESS_KEY='your-secret-key'
Alternativ können Sie die Befehlszeilenflags --aws-access-key und --aws-secret-access-key zur Authentifizierung verwenden.
Standardmäßig verwendet suture den Benutzer ubuntu, um eine Verbindung zur Instanz herzustellen. Dies kann mit dem --ssh-user-Flag geändert werden. Der Standard-Pfad für den privaten Schlüssel ist ~/.ec2. Sie können diesen Pfad mit dem --identity-file-path-Flag überschreiben.
Führen Sie abschließend den Befehl check aus, um den Status Ihrer Instanzen anzuzeigen:
$ bundle install
$ bundle exec ./bin/suture [<options>] check
Für zusätzliche Befehlsoptionen: ./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
Sie finden die Standardkonfigurationswerte im Options-Hash. Sie sollten diese Werte mit den obigen Befehlszeilenflags überschreiben.
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)Diese Anwendung wird unter der Apache License, Version 2.0 vertrieben.