check_img_urls

check_img_urls
check_img_urls
check_img_urls.tar.bz2
Version: 0.0.1
3.3 KiB
363 Downloads
Details

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