Difference between revisions of "Integrity Check"

From Contao Community Documentation

(Created page with 'Integrity check for some files from Contao (Detection of hacked Contao installations.) {{ExtInfo | Dev=Glen Langer (BugBuster) | DevSite=http://www.contao.gle…')
 
m
Line 24: Line 24:
 
A directory should have been created "/system/modules/integrity_check".<br />
 
A directory should have been created "/system/modules/integrity_check".<br />
 
Then call /contao/install.php  - Perform Update Database. <br />
 
Then call /contao/install.php  - Perform Update Database. <br />
 +
 +
=Example of an Infection=
 +
How now looks like such a hack?<br />
 +
The attachment to the file index.php looked like this (shortened):<br />
 +
<source lang="php">
 +
#c3284d#
 +
echo(gzinflate(base64_decode("ZZBNisMwDIX.......T7oD")));
 +
#/c3284d#
 +
</source>
 +
 +
=Function of the module=
 +
In the current version 0.2.0, the three most important PHP files are checked for modifications.<br />
 +
This files will be checked:
 +
* index.php
 +
* contao/index.php
 +
* contao/main.php
 +
 +
==Time of verification==
 +
This test is performed automatically every day. (Contao-Cron)
 +
 +
==Detection==
 +
The check is identical to the official Contao check tool, that means via MD5 checksums. Checksums are available for comparison for Contao from 2.10.0.
 +
 +
==Information==
 +
Im Backend kann unter System - System-Log nach dem Ergebnis geschaut werden. Normalerweise, wenn alles OK ist, taucht dort nur eine Meldung auf:
 +
* Integritäts-Überprüfung der Dateien abgeschlossen.
 +
Wenn Veränderungen entdeckt werden, dann erfolgt eine entsprechende Meldung je Datei die es betrifft:
 +
* Integritäts-Status für Datei index.php ist: beschädigt
 +
Eine Information per Mail ist möglich, siehe dazu den Punkt [[Integrity_Check#Mail_zum_Admin|Mail_zum_Admin]].
 +
 +
=Feinheiten=
 +
==Prüfzeitpunkt==
 +
Der Prüfzeitpunkt kann über die localconfig.php geändert werden, z.B. können Contao 2.11 Nutzer hier auf stündliche Prüfung umschalten. Dazu wird in der localconfig.php folgende Zeile am Ende der Datei eingetragen:
 +
<source lang="php">
 +
$GLOBALS['TL_CRON']['hourly'][] = array('Integrity_Check', 'checkFiles');
 +
</source>
 +
 +
==Mail zum Admin==
 +
Eine Information per Mail an den Admin der Installation ist möglich. Dazu muss, derzeit noch per Hand, in die localconfig.php eine Zeile am Ende der Datei eingetragen werden:
 +
<source lang="php">
 +
$GLOBALS['TL_CONFIG']['mod_integrity_check']['send_email_to_admin'] = true;
 +
</source>
 +
 +
==Debug Modus==
 +
Normalerweise gibt das Modul nur eine "fertig" Meldung aus im System-Log. Will man sehen welche Dateien geprüft wurden und somit ob überhaupt, kann der moduleigene Debug Modus eingeschaltet werden. Dazu muss, derzeit noch per Hand, in die localconfig.php eine Zeile am Ende der Datei eingetragen werden:
 +
<source lang="php">
 +
$GLOBALS['TL_CONFIG']['mod_integrity_check']['debug'] = true;
 +
</source>
 +
 +
==Schutz gegen Infektion==
 +
Nun, ein genereller Schutz ist wohl nicht möglich. Wenn die Infektion z.B. dadurch passierte, dass jemand an die FTP Daten kam, kann er alles was der Eingentümer auch kann. <br />
 +
Es gibt aber eine Möglichkeit, dass der angehangene Code nicht zur Ausführung kommt. Ein Ticket dazu gibt es bereits auf GitHub, hier mal kurz die Info.<br />
 +
Editiert die index.php und geht in die letzte Zeile der Methode run, müsste die Zeile 269 sein. (2.11.5) Schreibt davor einfach ein exit; rein, oder fügt eine Zeile dafür ein. Hier mal ab Zeile 268 als Beispiel:
 +
<source lang="php">
 +
        }
 +
    } 
 +
</source>
 +
wird zu:
 +
<source lang="php">
 +
        }
 +
        exit;
 +
    } 
 +
</source>
 +
Damit wird die Abarbeitung des Scripte beendet, was auch OK ist, da davor die Seite bereits zum Browser gesendet wurde.
 +
Achtung: Nun wird das Integrity Check Tool wie auch das Contao Check Tool eine Veränderung melden.

Revision as of 12:08, 2 August 2012

Integrity check for some files from Contao (Detection of hacked Contao installations.)


Extension-Overview
Name of the developer Glen Langer (BugBuster)
Developer Website http://www.contao.glen-langer.de
Version of the extension 0.2.0 rc1
Compatibility with Contao Version ab 2.10.0
Link to Extension Repository http://www.contao.org/en/extension-list/view/integrity_check.en.html
Link to Tracker https://github.com/BugBuster1701/integrity_check/issues

In Contao Forum, reports came about changed files, which malicious code was attached.
The problem itself can not be attributed to a vulnerability in Contao, but will be distributed over other ways of the server, eg vulnerable WP plugins, hacked servers, hacked FTP logins, etc.

Forum

Questions about the Bot Detection module will be answered in Forum
Errors and requests can be reported in the Issue Tracker.

Installation

The installation of the module occurs about the extension Repository in back end of Contao.
A manual installation is possible. Download the ZIP file from Extension Repository, unzip and transfer it.
A directory should have been created "/system/modules/integrity_check".
Then call /contao/install.php - Perform Update Database.

Example of an Infection

How now looks like such a hack?
The attachment to the file index.php looked like this (shortened):

#c3284d#
echo(gzinflate(base64_decode("ZZBNisMwDIX.......T7oD")));
#/c3284d#

Function of the module

In the current version 0.2.0, the three most important PHP files are checked for modifications.
This files will be checked:

  • index.php
  • contao/index.php
  • contao/main.php

Time of verification

This test is performed automatically every day. (Contao-Cron)

Detection

The check is identical to the official Contao check tool, that means via MD5 checksums. Checksums are available for comparison for Contao from 2.10.0.

Information

Im Backend kann unter System - System-Log nach dem Ergebnis geschaut werden. Normalerweise, wenn alles OK ist, taucht dort nur eine Meldung auf:

  • Integritäts-Überprüfung der Dateien abgeschlossen.

Wenn Veränderungen entdeckt werden, dann erfolgt eine entsprechende Meldung je Datei die es betrifft:

  • Integritäts-Status für Datei index.php ist: beschädigt

Eine Information per Mail ist möglich, siehe dazu den Punkt Mail_zum_Admin.

Feinheiten

Prüfzeitpunkt

Der Prüfzeitpunkt kann über die localconfig.php geändert werden, z.B. können Contao 2.11 Nutzer hier auf stündliche Prüfung umschalten. Dazu wird in der localconfig.php folgende Zeile am Ende der Datei eingetragen:

$GLOBALS['TL_CRON']['hourly'][] = array('Integrity_Check', 'checkFiles');

Mail zum Admin

Eine Information per Mail an den Admin der Installation ist möglich. Dazu muss, derzeit noch per Hand, in die localconfig.php eine Zeile am Ende der Datei eingetragen werden:

$GLOBALS['TL_CONFIG']['mod_integrity_check']['send_email_to_admin'] = true;

Debug Modus

Normalerweise gibt das Modul nur eine "fertig" Meldung aus im System-Log. Will man sehen welche Dateien geprüft wurden und somit ob überhaupt, kann der moduleigene Debug Modus eingeschaltet werden. Dazu muss, derzeit noch per Hand, in die localconfig.php eine Zeile am Ende der Datei eingetragen werden:

$GLOBALS['TL_CONFIG']['mod_integrity_check']['debug'] = true;

Schutz gegen Infektion

Nun, ein genereller Schutz ist wohl nicht möglich. Wenn die Infektion z.B. dadurch passierte, dass jemand an die FTP Daten kam, kann er alles was der Eingentümer auch kann.
Es gibt aber eine Möglichkeit, dass der angehangene Code nicht zur Ausführung kommt. Ein Ticket dazu gibt es bereits auf GitHub, hier mal kurz die Info.
Editiert die index.php und geht in die letzte Zeile der Methode run, müsste die Zeile 269 sein. (2.11.5) Schreibt davor einfach ein exit; rein, oder fügt eine Zeile dafür ein. Hier mal ab Zeile 268 als Beispiel:

        }
    }

wird zu:

        }
        exit;
    }

Damit wird die Abarbeitung des Scripte beendet, was auch OK ist, da davor die Seite bereits zum Browser gesendet wurde. Achtung: Nun wird das Integrity Check Tool wie auch das Contao Check Tool eine Veränderung melden.

Views
Personal tools

Contao Community Documentation

In other languages
Navigation
Discover
Understand
Enhance
Miscellaneous
Tools