check_img_urls
Dieser Check dient dazu, WebseitenDefacement Angriffe schnellstmöglich aufzudecken. Es darf sich hierbei NICHT um eine sich häufig ändernde Weseite handeln.
Funktion: Es wird ein Image im .png Format und einer Auflösung von 640×480 Punkten erstellt. Diese Initiale Image dient fortan als Referenzbild und wird im Unterordner reference_Picture abgelegt. Jeder weitere Check erzeugt erneut ein Bild in exakt der selben Auflösung und vergleicht dieses auf Pixelebene mit einem Standard Threshold von 97% auf Übereinstimmung. 3%sind Bildrauschen. Stimmt das Referenzbild nun zu 97% mit neuen Überein, so ist der Check OK.
Scriptverzeichnis und Configdateien:
root@monitoring:/opt/scripts/nagios/plugins/# ll total 17 drwxr-xr-x 4 root root 1024 Apr 26 15:11 ./ drwxrwxrwt 18 root root 9216 Apr 26 15:13 ../ -rwxr-xr-x 1 root root 4068 Apr 26 14:35 check_img_urls.sh* drwxrwxr-x+ 2 share adm 1024 Apr 26 14:40 include/ drwxr-xr-x 2 root root 1024 Apr 26 15:04 reference_picture/
Include Dir
ll include/ total 17 drwxrwxr-x+ 2 share adm 1024 Apr 26 14:40 ./ drwxr-xr-x 4 root root 1024 Apr 26 15:11 ../ -rwxrwxr-x+ 1 share adm 1190 Apr 26 14:38 find_url.inc.sh* -rwxrwxr-x+ 1 root root 585 Apr 26 14:39 global_config.inc.sh* -rwxrwxr-x+ 1 share adm 2238 Jan 12 2015 rasterize.js* -rwxrwxr-x+ 1 share adm 602 Apr 26 14:38 test_proxy.inc.sh* -rwxr-xr-x 1 root root 187 Apr 26 14:32 testurls.inc.sh* -rwxrwxr-x+ 1 share adm 762 Apr 26 14:39 usage.inc.sh*
in der global_config.inc.sh sind die Paramter für einen evtl. Proxy einzutragen
#!/bin/bash ############################################################################ ## ## SCRIPT CONTROLES WEBSITES ON DEFACEMENT ATTACKS ## ## VERSION: 0.0.1 ## MAINTAINER: matthias.schweizer ## DATE: 01.10.14 ## LICENSE: GPLv3 ## ############################################################################ ## PROXY CRED USR_PROXY="proxyuser" PWD_PROXY="proxypassword" PROXY="proxy:8080" PROXY_KEYWORD="Authentication Failure" ## REMOVE PROXY FROM SYSTEM [[ "${http_proxy}" ]] && unset http_proxy
in die testurls.inc.sh die zu prüfenden Webseiten:
######################################################## ## URL LISTING NAME;URL ######################################################## 4LORDS;http://4lords.org GOOGLE;http://google.de
Die Datei ist im csv Stil gehalten und ist wie folgt zu verstehen:
EINDEUTIGER_NAME;http://zu_pruefende_websei.te
Initialer Aufruf:
./check_img_urls.sh 4LORDS 2 5 97% FIRST RUN :: SCRIPT WILL BE ACTIVE THE NEXT TIME IT WILL BE EXECUTED [ PLS TEST :: http://4lords.org ]
Hierbei wird folgendes Image erzeugt:
Das imgage findet sich im neu erzeugten Verzeichnis reference_picture/4LORDS.png wieder.
Man kann erahnen dass der URL-Bezeichner der testuresl.inc.sh den Namen des abgelegten Images angibt.
jeder weiter Check prüft nun ein temporäres Image gegen das im referenz_picture abgelgeten file pixelweise, wie eingangs erwähnt, gegen.
./check_img_urls.sh 4LORDS 10 20 97% OK :: [ 4LORDS ] WEBSITE LOOKS GREAT|response_time=3.2111s;5;10 problem=0 'max time'=20
Nagios:
define service{ use generic-service,graph ; Name of service template to use host external service_description check_img_urls 4lords.org check_command check_local!check_img_urls.sh!4LORDS!4!10!97% contact_groups mail notes_url http://faq.4lords.server/doku.php?id=os:linux:monitoring:nagios:plugins:check_img_urls }
Dependencies: findimagedupes; phantomjs