ENGINSIGHT
WebsiteLoginKostenloser Testzugang
Deutsch
Deutsch
  • Überblick
  • Funktionsumfang
  • Bedienung
    • Plattform Übersicht
    • Start Guide
    • Plattform
      • Dashboards
        • Schwachstellenmanagement
        • Operation Centers
        • Meine Dashboards
        • Konfigurationen
      • Issues
      • Hosts (Pulsar-Agent)
        • Pulsar-Agent
        • Hostdetails
        • Policy Manager
        • Softwareinventar
        • Intrusion Detection System
        • File Integrity Monitoring
        • Systemevents
        • Update Manager
        • Plugins
        • Machine Learning
      • Host (Pulsar-Agent) BETA
        • Pulsar-Agent
        • Hostdetails
        • Softwareinventar
        • Policies
        • Plugins
        • Globale Tags
        • Tag Manager
        • Systemevents
        • Schwachstellen Manager
        • Compliance
        • Intrusion Detection System
        • File Integrity Monitoring
        • Advanced Persistent Threats
      • Endpunkte (Observer)
        • Endpunktdetails
        • Domains
        • Zertifikatsmanager
        • Observer
      • Observations
      • Shield
      • Penetrationstests (Hacktor)
        • Pentest durchführen
        • Audits
        • Audit Definitionen
        • Zielsysteme
        • Auth-Providers
        • Hacktor
        • Custom Scripts
      • Discoveries
      • SIEM
        • Data Lake
        • Cockpits
        • Obfuskatoren
        • Workflows
        • Ereignisse
        • Extraktoren
        • Kollektoren
        • Loggernaut
        • Erweiterte Einstellungen
        • KI-Modelle
      • Alarme
      • Einstellungen
      • Organisationen
      • Tags
      • Searchbar
  • On-Premises
    • Anforderungen
    • Installation
      • Automatische Installation
      • Manuelle Installation
      • Load Balancing
      • SIEM
      • Deinstallation
    • Update
    • Konfiguration
      • HTTPS und Zertifikate
      • Lizenzen und Organisationen
      • Mailserver
      • 2-Faktor-Authentifizierung
      • SSO via Office 365
      • Speicherzeiten
      • White Label
      • NGINX Extraktor
      • Field Level Encryption
      • Loggernaut-Konfigurationen
  • Technische Details
    • Systemanforderungen
      • Pulsar: Betriebssysteme
    • Aktuelle Versionsnummern
    • Pentest Vektoren
    • API
  • Partnerbereich
    • Lizenzen und Organisationen
Powered by GitBook
On this page
  • Was sind Plugins?
  • Parallelität bei der Ausführung von Plugins
  • Plugin-Vorlagen
  • Plugins erstellen
  • Autonome Reaktion auf Systemereignis: Mittels Alarm

Was this helpful?

  1. Bedienung
  2. Plattform
  3. Host (Pulsar-Agent) BETA

Plugins

PreviousPoliciesNextGlobale Tags

Last updated 5 days ago

Was this helpful?

Hinter dem Punkt Plugins verbirgt sich ein sehr mächtiges Werkzeug. Hier können Sie eigene Skripte erstellen, die sich dann auf von Ihnen ausgewählten Hosts ausführen lassen. Z. B. können Sie dadurch eine Änderung der Firewall-Einstellungen auf allen Systemen gleichzeitig realisieren. Aktuell unterstützen wir die Laufzeitumgebungen Bash (Linux), Python 3 (Linux) und PowerShell (Windows).

Was sind Plugins?

Mit Plugins bezeichnen wir Skripte, die Sie regelmäßig oder als Reaktion auf ein Systemereignis auf Ihren Systemen ausführen können. Sie können Plugins via Tags auf mehreren Systemen oder auch nur auf einzelnen Systemen ausführen. Die Skripte können Sie selber schreiben, für bestimmte Zwecke gibt es aber auch schon Vorlagen.

Parallelität bei der Ausführung von Plugins

Der Agent kann mehrere gleichzeitig geplante Plugins parallel ausführen. Die Standardanzahl parallel ausgeführter Plugins beträgt 10. Diese Einstellung ist konfigurierbar in der Datei config.json im Abschnitt "override" → "plugins", über den Wert "concurrency". Dabei gilt:

  • Wert 0 bedeutet, dass die Standardanzahl von 10 parallel ausgeführten Plugins verwendet wird.

  • Möchten Sie die Anzahl der parallel ausgeführten Plugins anpassen, können Sie hier einen anderen Wert eintragen.

Ein Beispiel für eine entsprechende Konfiguration in der config.json:

{
  "override": {
    "plugins": {
      "disabled": false,
      "concurrency": 0
    }
  }
}

Bitte beachten Sie, dass bei gleichzeitig geplanten Plugins die von jedem Plugin erzeugte Systemlast berücksichtigt werden muss, um eine Überlastung Ihrer Systeme zu vermeiden.

Plugin-Vorlagen

Plugins erstellen

Um ein neues Plugin zu erstellen, klicken Sie auf Plugin hinzufügen.

  1. Geben Sie einen Namen und eine kurze Beschreibung an.

  2. Stellen Sie anschließend die zutreffende Skriptsprache ein. Zur Verfügung stehen Ihnen hier Bash (Shell), Python 3 und PowerShell.

  3. Fügen Sie nun Ihr Skript in der zuvor gewählten Skriptsprache ein.

  4. Nutzen Sie die Möglichkeit Felder zu definieren, welche extrahiert werden sollen, um anschließend in der Plattform visualisiert werden zu können.

  5. Weiterhin können Sie die automatische Ausführung Ihres Skriptes über die entsprechende Einstellung planen.

  6. Fügen Sie abschließend Ihr Plugin über die Schaltfläche hinzu.

Beispiel: Backup der MySQL Datenbanken

Eine beliebte Einsatzmöglichkeit für regelmäßig ausgeführte Plugins ist das Durchführen von Backups, bspw. einer MySQL Datenbank.

1. Legen Sie zunächst wie beschrieben ein neues Plugin an. Nutzen Sie folgedes Bash-Script als Vorlage:

#!/bin/bash
# Shell script to backup MySQL database
#==============================================
# Author       : Name
# Organisation : Unternehmen
# Created      : xx.xx.xxx, xx:xx:xx
#==============================================

# Set these variables
MyUSER=""	# DB_USERNAME
MyPASS=""	# DB_PASSWORD
MyHOST=""	# DB_HOSTNAME

# Backup Dest directory
DEST="" # /home/username/backups/DB

# Email for notifications
EMAIL=""

# How many days old files must be to be removed
DAYS=3

# Linux bin paths
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

# Get date in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y_%s")"

# Create Backup sub-directories
MBD="$DEST/$NOW/mysql"
install -d $MBD

# DB skip list
SKIP="information_schema
another_one_db"

# Get all databases
DBS="$($MYSQL -h $MyHOST -u $MyUSER -p$MyPASS -Bse 'show databases')"

# Archive database dumps
for db in $DBS
do
    skipdb=-1
    if [ "$SKIP" != "" ];
    then
		for i in $SKIP
		do
			[ "$db" == "$i" ] && skipdb=1 || :
		done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
    	FILE="$MBD/$db.sql"
	$MYSQLDUMP -h $MyHOST -u $MyUSER -p$MyPASS $db > $FILE
    fi
done

# Archive the directory, send mail and cleanup
cd $DEST
tar -cf $NOW.tar $NOW
$GZIP -9 $NOW.tar

echo "MySQL backup is completed! Backup name is $NOW.tar.gz" | mail -s "MySQL backup" $EMAIL
rm -rf $NOW

# Remove old files
find $DEST -mtime +$DAYS -exec rm -f {} \;

2. Tragen Sie in das Script Ihren Benutzernamen, Passwort und Hostnamen der MySQL-Datenbank ein. Modifizieren Sie außerdem den Pfad zum Backup-Verzeichnis. Bitte beachten Sie, dass möglicherweise weitere Anpassungen für Ihre Datenbanksysteme notwendig sind.

3. Gehen Sie nun auf Erweiterte Einstellungen und wählen Sie Geplante Ausführung sowie den entsprechenden Host. Sie können via Tags das Plugin auch auf mehrere Hosts gleichzeitig schalten.

4. Vergeben Sie einen Cron-Ausdruck, um festzulegen, wann das Backup ausgeführt werden soll. Bspw. * 2 * * 3 für jeden Mittwoch um 2 Uhr nachts.

5. Über Plugin hinzufügen legen Sie das neue Plugin an. Wenn Sie möchten, können Sie das Plugin testen. Klicken Sie dazu auf Plugin Testen und wählen einen gewünschten Host.

Autonome Reaktion auf Systemereignis: Mittels Alarm

  1. Erstellen Sie dazu unter Alarme einen neuen Alarm. Wählen Sie unter Referenz denjenigen Host, Endpunkt oder diejenige agentlose Überwachung (Observation), auf dessen Verhalten mit dem Plugin reagiert werden soll.

  2. Legen Sie eine Bedingung für die Ausführung des Plugins fest.

  3. Vergeben Sie eine Beschreibung.

  4. Legen Sie fest, wer über die Ausführung des Plugins benachrichtigt werden soll.

  5. Wählen Sie unter Plugins den Host, auf dem das Plugin ausgeführt werden soll und das von Ihnen erstellte Plugin aus.

  6. Speichern Sie Ihren Alarm, indem Sie auf Alarm hinzufügen klicken.

Beispiel: Restart Apache Webserver

Erstellen Sie wie beschrieben ein neues Plugin. Nutzen Sie das folgende Bash-Script als Vorlage:

#!/bin/bash
#==============================================
# Author       : Name
# Organisation : Unternehmen
# Created      : xx.xx.xxx, xx:xx:xx
#==============================================

ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
        /etc/init.d/apache2 start > /dev/null
fi

Legen Sie nun einen Alarm an. In diesem Fall bieten sich zwei Szenarien an, die das Plugin zur Ausführung triggern können. Einerseits, dass der Prozess des Apache Webservers nicht ausgeführt wird, andererseits, dass die Webseite nicht verfügbar ist.

Prozess wird nicht ausgeführt

1. Wählen Sie die Alarmart Host und als Referenz den entsprechenden Server.

2. Legen Sie die Bedingung 'Prozess wird nicht ausgeführt' fest und wählen Sie aus der sich öffnenden Liste den Prozess des Apaches.

3. Vergeben Sie eine Beschreibung und legen Sie fest, wer benachrichtigt werden soll.

4. Wählen Sie den Host, auf dem das Plugin ausgeführt werden soll, in diesem Fall ist das identisch mit der Referenz.

5. Wählen Sie das erstellte Plugin aus und fügen Sie den Alarm hinzu.

Webseite nicht verfügbar

1. Wählen Sie die Alarmart Endpunkt und als Referenz eine Webseite, die auf dem Apache-Webserver läuft. Sollten Sie mehrere Webseiten auf dem entsprechenden Webserver gehostet haben, ist es sinnig, via Tag den Alarm auf alle diese Webseiten zu schalten.

2. Wählen Sie die Bedingung 'Webseite nicht erreichbar'.

3. Vergeben Sie eine Beschreibung und legen Sie fest, wer benachrichtigt werden soll.

4. Wählen Sie den Host, auf dem das Plugin ausgeführt werden soll, d.h. auf dem sich der Apache befindet.

5. Wählen Sie das erstellte Plugin aus und füge den Alarm hinzu.

Vorschläge und Ideen für Plugin-Vorlagen finden Sie unter .

Ordnen Sie nun Hosts zu. Wählen Sie hierfür entweder entsprechende aus der Liste aus oder aber nutzen Sie das Tagsystem, um die Zuordnung vorzunehmen. Ordnen Sie Ihr Plugin einem Host zu und behalten Sie jederzeit den Überblick in der Übersicht des gewählten Hosts.

https://github.com/enginsight
Custom Metriken