
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 जाँच आपके प्रत्येक EC2 इंस्टेंस में ssh करेगी और एक दिए गए कमांड को निष्पादित करेगी। कमांड के आउटपुट की तुलना सत्यापन के लिए प्रदान की गई स्ट्रिंग या रेगुलर एक्सप्रेशन से की जाएगी।
डिफ़ॉल्ट रूप से, Suture OpenSSL संस्करण की जाँच करने के लिए openssl version -v चलाएगा। यदि कमांड का आउटपुट 1.0.(1[a-f]|2-beta1) से मेल खाता है, तो हम जानते हैं कि बिल्ड में Heartbleed भेद्यता शामिल नहीं है। एक रिपोर्ट तुलना परिणाम को इंगित करेगी।
यदि आप इसका उपयोग OpenSSL भेद्यता जाँच के लिए नहीं कर रहे हैं, तो बस --check-command का उपयोग करके एक कस्टम चेक कमांड और --check-result का उपयोग करके वांछित परिणाम पास करें। परिणाम निर्धारित करने के लिए एक regex मिलान किया जाएगा।
यदि आप केवल एक इंस्टेंस की जाँच करना पसंद करते हैं, तो प्रश्न में इंस्टेंस ID के साथ --instance-id फ़्लैग पास करें। इससे क्वेरी एक इंस्टेंस तक कम हो जाएगी।
यदि आप us-east-1 के अलावा किसी अन्य क्षेत्र की जाँच कर रहे हैं, तो --region फ़्लैग का उपयोग करके वांछित क्षेत्र प्रदान करें।
आपको अपने AWS क्रेडेंशियल्स suture को देकर शुरू करना होगा। आप या तो AWS_ACCESS_KEY_ID और AWS_SECRET_ACCESS_KEY क्रेडेंशियल्स को export कर सकते हैं:
$ 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 के अंतर्गत वितरित किया गया है।