diff --git a/tests/test-docker.sh b/tests/test-docker.sh index c50b881..e9ed789 100755 --- a/tests/test-docker.sh +++ b/tests/test-docker.sh @@ -26,27 +26,42 @@ until curl -s "$elasticsearch_url/_cluster/health?pretty" | grep '"status"' | gr yellow "Waiting for Elasticsearch..." sleep 5 done -curl -s "$elasticsearch_url/_cluster/health?pretty" +green "✅ Elasticsearch status is green..." +count=0 until [[ $(curl -s "$logstash_url/_node/stats" | jq '.events.out') == 1236 ]] ; do - yellow "Waiting for Logstash load to finish..." + yellow "Waiting for Logstash load to finish... attempt $count of 30" + ((count++)) && ((count!=30)) && break sleep 10 done -curl -s "$logstash_url/_node/stats" | jq '.events' +green "✅ Logstash load finished..." -if [[ $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count" | jq '.count') == 1232 ]]; then - green "✅ Passed logstash-vulnwhisperer-2019.03 document count == 1232" +count=0 +curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count" | jq '.count' +until [[ $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count" | jq '.count') == 1232 ]] ; do + yellow "Waiting for Elasticsearch index to sync... $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count" | jq '.count') of 1232" + ((count++)) && ((count==30)) && break + sleep 2 +done +if [[ count -le 30 ]]; then + green "✅ logstash-vulnwhisperer-2019.03 document count == 1232" else - red "❌ Failed logstash-vulnwhisperer-2019.03 document count == 1232 was: $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count") instead" - ((return_code = return_code + 1)) + red "❌ TIMED OUT waitin for logstash-vulnwhisperer-2019.03 document count: $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count" | jq) != 1232" fi +# if [[ $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count" | jq '.count') == 1232 ]]; then +# green "✅ Passed: logstash-vulnwhisperer-2019.03 document count == 1232" +# else +# red "❌ Failed: logstash-vulnwhisperer-2019.03 document count == 1232 was: $(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_count") instead" +# ((return_code = return_code + 1)) +# fi + # Test Nessus plugin_name:Backported Security Patch Detection (FTP) nessus_doc=$(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_search?q=plugin_name:%22Backported%20Security%20Patch%20Detection%20(FTP)%22%20AND%20asset:176.28.50.164%20AND%20tags:nessus" | jq '.hits.hits[]._source') if echo $nessus_doc | jq '.risk' | grep -q "None"; then - green "✅ Passed Nessus risk == None" + green "✅ Passed: Nessus risk == None" else - red "❌ Failed Nessus risk == None was: $(echo $nessus_doc | jq '.risk') instead" + red "❌ Failed: Nessus risk == None was: $(echo $nessus_doc | jq '.risk') instead" ((return_code = return_code + 1)) fi @@ -54,17 +69,17 @@ fi tenable_doc=$(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_search?q=plugin_name:%22Backported%20Security%20Patch%20Detection%20(FTP)%22%20AND%20asset:176.28.50.164%20AND%20tags:tenable" | jq '.hits.hits[]._source') # Test asset if echo $tenable_doc | jq .asset | grep -q '176.28.50.164'; then - green "✅ Passed Tenable asset == 2019-03-30T10:17:41.000Z" + green "✅ Passed: Tenable asset == 2019-03-30T10:17:41.000Z" else - red "❌ Failed Tenable asset == 176.28.50.164 was: $(echo $tenable_doc | jq .asset) instead" + red "❌ Failed: Tenable asset == 176.28.50.164 was: $(echo $tenable_doc | jq .asset) instead" ((return_code = return_code + 1)) fi # Test @timestamp if echo $tenable_doc | jq '.["@timestamp"]' | grep -q '2019-03-30T15:45:44.000Z'; then - green "✅ Passed Tenable @timestamp == 2019-03-30T10:17:41.000Z" + green "✅ Passed: Tenable @timestamp == 2019-03-30T10:17:41.000Z" else - red "❌ Failed Tenable @timestamp == 2019-03-30T15:45:44.000Z was: $(echo $tenable_doc | jq '.["@timestamp"]') instead" + red "❌ Failed: Tenable @timestamp == 2019-03-30T15:45:44.000Z was: $(echo $tenable_doc | jq '.["@timestamp"]') instead" ((return_code = return_code + 1)) fi @@ -72,17 +87,17 @@ fi qualys_vuln_doc=$(curl -s "$elasticsearch_url/logstash-vulnwhisperer-2019.03/_search?q=tags:qualys_vuln%20AND%20ip:%22176.28.50.164%22%20AND%20plugin_name:%22OpenSSL%20Multiple%20Remote%20Security%20Vulnerabilities%22%20AND%20port:465" | jq '.hits.hits[]._source') # Test @timestamp if echo $qualys_vuln_doc | jq '.["@timestamp"]' | grep -q '2019-03-30T10:17:41.000Z'; then - green "✅ Passed Qualys VM @timestamp == 2019-03-30T10:17:41.000Z" + green "✅ Passed: Qualys VM @timestamp == 2019-03-30T10:17:41.000Z" else - red "❌ Failed Qualys VM @timestamp == 2019-03-30T10:17:41.000Z was: $(echo $qualys_vuln_doc | jq '.["@timestamp"]') instead" + red "❌ Failed: Qualys VM @timestamp == 2019-03-30T10:17:41.000Z was: $(echo $qualys_vuln_doc | jq '.["@timestamp"]') instead" ((return_code = return_code + 1)) fi # Test @XXXX if echo $qualys_vuln_doc | jq '.cvss' | grep -q '6.8'; then - green "✅ Passed Qualys VM cvss == 6.8" + green "✅ Passed: Qualys VM cvss == 6.8" else - red "❌ Failed Qualys VM cvss == 6.8 was: $(echo $qualys_vuln_doc | jq '.cvss') instead" + red "❌ Failed: Qualys VM cvss == 6.8 was: $(echo $qualys_vuln_doc | jq '.cvss') instead" ((return_code = return_code + 1)) fi diff --git a/tests/test-vuln_whisperer.sh b/tests/test-vuln_whisperer.sh index 77f2e72..22e9edf 100755 --- a/tests/test-vuln_whisperer.sh +++ b/tests/test-vuln_whisperer.sh @@ -44,6 +44,7 @@ yellow "\n*********************************************" yellow "* Test one failed scan *" yellow "*********************************************" rm -rf /opt/VulnWhisperer/* +yellow "Removing ${TEST_PATH}/nessus/GET_scans_exports_164_download" rm -f ${TEST_PATH}/nessus/GET_scans_exports_164_download if vuln_whisperer -F -c configs/test.ini --mock --mock_dir ${TEST_PATH}; [[ $? -eq 1 ]]; then green "\n✅ Passed: Test one failed scan" @@ -56,6 +57,7 @@ yellow "\n*********************************************" yellow "* Test two failed scans *" yellow "*********************************************" rm -rf /opt/VulnWhisperer/* +yellow "Removing ${TEST_PATH}/qualys_vuln/scan_1553941061.87241" rm -f ${TEST_PATH}/qualys_vuln/scan_1553941061.87241 if vuln_whisperer -F -c configs/test.ini --mock --mock_dir ${TEST_PATH}; [[ $? -eq 2 ]]; then green "\n✅ Passed: Test two failed scans" @@ -75,7 +77,6 @@ else ((return_code = return_code + 1)) fi -echo -e "\n\n" yellow "*********************************************" yellow "* Test only Qualys VM with one failed scan *" yellow "*********************************************"