Trojan Scan

Nieuwste Linux/BSD-versie (1.6.0)
Oudere versies

Lees over Trojan Scan in dit artikel:

CLI Magic: Trojan Scan
Trojan Scan is crafted in the finest Unix tradition […]
www.linux.com

Trojan Scan is een eenvoudig shell script waarmee op een simpele maar relatief effectieve manier kan worden gecontroleerd op trojans, rootkits en andere malware die mogelijk uw server en netwerk gebruiken voor ongewenste (en mogelijk illegale) doeleinden. Aangezien dit script relatief simpel is, moet u niet verwachten dat het ze allemaal vindt, maar het helpt om dergelijke programma’s te vinden op bijvoorbeeld gedeelde servers. Op die machines installeren veel gebruikers allerlei soorten applicaties. Deze applicaties kunnen nieuwe kwetsbaarheden introduceren die anders mogelijk niet zouden worden opgemerkt, behalve door een zeer alerte systeembeheerder.

Het werkt door alle processen die het internet gebruiken op te lijsten met het lsof-commando (met de -Pni vlaggen). Deze lijst wordt vervolgens omgezet in signatures in de vorm van <process_name>:<protocol>:<port_number_in>:<port_number_out>:<user>. Deze signatures worden daarna vergeleken met de toegestane processen die in de configuratie zijn gedefinieerd. Als er signatures van draaiende processen worden gevonden die niet overeenkomen met de toegestane signatures, wordt een e-mailrapport verstuurd inclusief ps, ls, en optioneel lsof output (zie ook: lsof).

Het script is relatief eenvoudig in gebruik:

  1. Installeer in /etc/trojan-scan/trojan-scan.conf en /usr/local/sbin/trojan-scan.sh
    • Gebruik het volgende om een standaardconfiguratie te genereren:
        trojan-scan -C /etc/trojan-scan/trojan-scan.conf
      , of,
    • Configureer e-mailadres (RECIPIENTS), toegestane processen (ALLOWED), optioneel lsof MD5 (LSOF_MD5)
      in trojan-scan.conf, bijvoorbeeld met:
          echo “LSOF_MD5=\”`md5 \`which /usr/sbin/lsof\` | egrep -o -iE \         ‘[0-9a-f]{32}’`\”” >> /etc/trojan-scan/trojan-scan.conf
  2. Controleer, werk bij en test de configuratie (test met de -n vlag om geen e-mails te versturen),
  3. Voeg toe aan crontab, bijvoorbeeld met:
      */5 * * * * /usr/local/sbin/trojan-scan.sh -F
    Dit draait elke 5 minuten en bevat een volledige lsof-listing in het e-mailrapport. (NB: afhankelijk van de belasting van uw server kan het nodig zijn dit interval te vergroten.)

Nu het script ondersteuning heeft voor inbound/outbound configuratie, kan het als te strikt worden ervaren, aangezien het vereist dat u ofwel alle programma’s opgeeft die uitgaande verbindingen gebruiken (zoals DNS-queries, het opvragen van webpagina’s of e-mail), ofwel regels opgeeft die bepaalde aangewezen uitgaande verbindingen altijd toestaan. Om bijvoorbeeld iedere gebruiker en ieder proces toe te staan DNS te gebruiken, kan de volgende regel worden gebruikt:
  ALLOWED=”$ALLOWED !@any@!:UDP:!@any@!:53:!@any@!”
Hiermee wordt echter ook alle malware toegelaten die UDP-poort 53 gebruikt om te communiceren.

Test met:
  /usr/local/sbin/trojan-scan.sh -n

Overige vlaggen:

-d   debugmodus
-F   volledige uitvoer
-n   geen e-mail versturen
-v   uitgebreide modus
-x   shell debug
-C file   genereer standaard configuratiebestand (gebruik voor stdout)
-f config   laad configuratie uit dit bestand

De huidige paden van de gebruikte programma’s (zoals lsof, sed, awk, enz.) kunnen worden overschreven in het configuratiebestand door ze net als in het programmabestand te definiĆ«ren (bijv. SED=/usr/bin/sed).

Laat het ons weten wanneer u dit programma gebruikt op info [replace-at] trojanscan [replace-dot] org.


Copyright (c) 2005,2007,2011,2013,2014 Derks.IT / Jeroen Derks

Gelicentieerd onder de Apache License, versie 2.0 (de “Licentie”);
u mag dit bestand uitsluitend gebruiken in overeenstemming met de Licentie.
Een kopie van de Licentie is verkrijgbaar via

http://www.apache.org/licenses/LICENSE-2.0

Tenzij vereist door toepasselijk recht of schriftelijk overeengekomen, wordt software die onder de Licentie wordt gedistribueerd verspreid op een “AS IS” (ZOALS HET IS) basis, ZONDER GARANTIES OF VOORWAARDEN VAN ENIGE AARD, expliciet noch impliciet. Zie de Licentie voor de specifieke bepalingen die de rechten en beperkingen onder de Licentie regelen.