Im Kurztest: Gron 0.2, I3lock 2.9, FSQL 0.2.0, Rm-Protection 0.1.3, Yara 3.6.1
Zeitbasiertes Ausführen von Programmen übernimmt auf Linux-Systemen in der Regel Cron. Wer nach einer Alternative sucht, kann Gron ausprobieren. Das noch sehr junge Tool ist in Go implementiert. Es läuft nicht als Daemon, sondern Anwender starten es selbst.
Sie steuern Gron nicht über Aufrufparameter, sondern über Yaml-Dateien, die sie im Texteditor erstellen und beim Aufruf angeben. In den Files stecken eine oder mehrere Jobbeschreibungen. Jede beginnt mit dem Schlüsselwort »description«. Hinter »command« folgt der Befehl. Operatoren, Verkettungen und andere Bash-Tricks funktionieren, denn Gron greift im Hintergrund auf »/bin/sh« zurück.
Über die Schlüsselwörter »weekday«, »day«, »hour« und »minute« legen Nutzer das Zeitintervall fest. Gron hat ein paar pfiffige Extras zu bieten: Definieren Anwender für einen Job »lock: yes«, dann startet dieser nicht erneut, falls der vorhergehende Job noch aktiv ist. Alternativ bestimmt »timeout«, wie lange ein Prozess maximal laufen darf, bevor Gron diesen terminiert.
Auch wenn eine Manpage fehlt und es auch keine Aufrufparameter oder eine Konfigurationsdatei gibt, lohnt sich der Blick auf Gron. Den Testern gefiel vor allem die Einrichtung in der eingängigen Yaml-Syntax mit gut zu merkenden Schlüsselwörtern.
I3lock 2.9
Einfache Bildschirmsperre
Quelle: https://github.com/chrjguill/i3lock-color
Lizenz: BSD
Alternativen: Xscreensaver
I3lock schützt in gängigen Desktopumgebungen die Bildschirme der Anwender vor unbefugtem Zugriff. Ohne weitere Parameter aufgerufen zeigt das Tool einen weißen Hintergrund. Benutzer erhalten wieder Zugang zum Desktop, wenn sie ihr Kennwort eingeben. Da I3lock die Kontrolle an PAM delegiert, kommt das Tool auch mit via LDAP verwalteten Accounts zurecht.
Wem der schlichte weiße Hintergrund zu spartanisch ist, der gibt hinter »-i« eine PNG-Datei an. Alternativ taucht »-c« den Bildschirm in Farbe. Hinter dem Schalter definieren Anwender die Nuance als RGB-Farbcode. Auch den Sperrhinweis mit dem Kreis, dem Datum und der Uhrzeit können Nutzer optisch anpassen. Die Manpage listet alle Parameter zum Ändern der Nuancen, des Zeit- und Datumsformats auf.
Laut Aussage der Entwickler eignet sich das Tool sehr gut für das Zusammenspiel mit Suspend to RAM. Die Empfehlung lautet, einen Alias der Form »i3lock && echo mem > /sys/power/state« zu erstellen, damit der Bildschirm nach dem Aufwachen des Rechners gesperrt ist.
I3lock erfordert für den schnellen Einsatz keine aufwändige Konfiguration, ist aber beliebig anpassbar für alle, die es gern bunt mögen. Das gute Teamwork mit Suspend to RAM macht das Tool zum idealen Begleiter auf Laptops.
FSQL 0.2.0
SQL-Abfragen im Dateisystem
Quelle: https://github.com/kshvmdn/fsql
Lizenz: MIT
Alternativen: Termsql
Wer SQL spricht und mit seinem Dateisystem wie mit einer Datenbank kommunizieren möchte, der sollte FSQL als Dolmetscher engagieren. Das Go-Programm durchsucht den Verzeichnisbaum mit Hilfe von SQL-Statements.
Der Befehl »fsql« nimmt beim Start eine Abfrage entgegen. Um etwa den Inhalt des aktuellen Verzeichnisses aufzulisten, rufen Nutzer »select all from .« auf. Mit »where«-Klauseln filtern sie die Ausgabe; Verknüpfungen wie »and« und »or«, Negationen oder Vergleichsoperationen versteht das Tool. Es interpretiert jedes Verzeichnis als Tabelle mit den Spalten »name«, »size«, »time« und »file«, wobei Letzteres eine Datei oder ein Verzeichnis sein kann. So listet »select all from . where file is dir« nur die Unterverzeichnisse des aktuellen Ordners auf.
Auf der Projektseite gibt es eine gut verständliche Anleitung mit vielen Beispielen, die auch komplexere »where«-Abfragen zeigen. In der Voreinstellung arbeitet FSQL rekursiv und berücksichtigt daher eventuelle Unterverzeichnisse. Wer die Abfrage eingrenzen und nur einzelne Ordner befragen möchte, gibt diese durch Kommata getrennt an.
Für SQL-affine Benutzer wird mit dem Tool das Suchen im Dateisystem zum Kinderspiel. Den noch unvollständigen interaktiven Modus verzeiht man dem relativ jungen FSQL gerne.
Bacon 0.3.0
Datei-Änderungen im Blick
Quelle: https://github.com/troykinsella/bacon
Lizenz: MIT
Alternativen: Inotify
Bacon fängt vielleicht keine Mäuse, aber potenzielle Angreifer. Um Fallen aufzustellen, beobachtet das Go-Programm den Inhalt von Dateien und führt vom Admin vorgegebene Aktionen aus, wenn sich dieser ändert. Dabei geht es strikt um den Inhalt – neue oder gelöschte Files interessieren das Tool nicht.
Anwender übergeben beim Aufruf eine Datei oder ein Verzeichnis; alternativ sorgt »-w« dafür, dass Bacon alle Files im aktuellen Arbeitsverzeichnis überwacht. Als weitere Starthilfe definieren Nutzer hinter »-c« das Programm, welches das Tool im Fall der Fälle aufruft. Dabei ist zu beachten, dass Bacon den vollen Pfad wissen möchte. Der mehrfache Einsatz von »-w« und »-c« ist möglich.
Soll Bacon einzelne Dateien oder Verzeichnisse links liegen lassen, dann schreiben Benutzer deren Namen hinter »-e«. Wer dabei Wildcards einsetzt, kann vorher mit dem Befehl »list« die Trefferquote der Muster überprüfen. Bacon gibt in diesem Modus nur eine Liste aller überwachten und ignorierten Dateien aus.
Wenn Benutzer die Option »command« anhängen, dann reagiert das Tool auf eine Änderung nur ein einziges Mal und stellt dann den Dienst ein. Darüber hinaus geht es auch auf Ergebnisse der über »-c« ausgeführten Programme ein. Über »-p« führt Bacon weitere Aktionen aus, wenn ein Programm ohne Fehler durchgelaufen ist. Eine Aktion im Fehlerfall nimmt »-f« entgegen.
Bacon taugt hauptsächlich für kleinere Umgebungen mit wenigen Systemen. In großen Infrastrukturen ist eine Lösung mit einer zentralen Verwaltungsstelle besser geeignet.
Rm-Protection 0.1.3
Cleverer Schutz für »rm«
Quelle: https://github.com/alanzchen/rm-protection
Lizenz: MIT
Alternativen: Rm
Wer hat nicht schon versehentlich etwas gelöscht, weil die Finger schneller waren als die Augen? Selbst ein Alias der Form »rm -i« bietet nur bedingt Abhilfe, wenn es mit der Konzentration hapert. Abhilfe in Form einer zusätzlichen Sicherheitsfrage bietet Rm-Protection. Der »rm«-Wrapper kommt sowohl mit Python 2.x als auch mit 3.x zurecht und benötigt sonst nur »find«.
Nach dem Installieren stehen die beiden Kommandos »rm-p« und »protect« in den Startlöchern. Mit »protect« errichten Benutzer einen neuen Schutzwall für eine Datei. Das Tool erzeugt dann eine versteckte Datei, die genauso heißt wie die zu schützende und ».protection« als Datei-Endung trägt. Diese Textdatei enthält eine Frage und die dazu passende Antwort. Beides geben Anwender auf Aufforderung selbst ein und »protect« schreibt es in die Textdatei.
Wenn dann »rm-p« zum Löschen antritt, sucht das Tool zuerst nach einer versteckten Datei mit dem passenden Namen. Wird es fündig, präsentiert es dem Anwender die Kontrollfrage. Nur wenn er die richtige Antwort eintippt, entfernt »rm-p« die Datei. Dabei ist die exakte Schreibweise (Groß- und Kleinbuchstaben, eventuelle Satzzeichen) wichtig, sonst gilt die Frage als falsch beantwortet und das Tool quittiert den Dienst. Es schreibt dann zunächst seine eigene Fehlermeldung nach Stdout und danach die von »rm« (»No such file or directory«), was etwas irritierend ist.
Rm-Protection bietet einen einfachen Schutz, allerdings nur wenn Anwender »rm-p« zum Löschen verwenden – auf das Standard-»rm« hat das Tool keinen Einfluss. Eine Manpage fehlt, ist aber auch nicht nötig.
Yara 3.6.1
Zeichenketten in Dateien suchen
Quelle: http://virustotal.github.io/yara
Lizenz: BSD 3-Clause
Alternativen: Grep
Als Schweizer Messer für Malware-Forscher bewerben die Yara-Entwickler ihre Anwendung auf der Projektseite; der Code kommt unter anderem in Schutzprogrammen von Kaspersky, Symantec oder Trend Micro zum Einsatz. Das C-Programm sucht nach vorgegebenen Mustern in Dateien und arbeitet sich auch durch ganze Verzeichnisstrukturen. Es forscht sogar im Code laufender Prozesse, wenn Anwender die PID beim Start angeben.
Die Suchmuster definieren Anwender in einer Regeldatei, die sie dann beim Aufruf benennen. Jedes Muster beginnt mit dem Schlüsselwort »rule«, gefolgt von einem eindeutigen Namen. Es folgen Codeblöcke »strings« und »condition« für die gesuchten Zeichenfolgen und die Auswertungslogik. Hier legen Benutzer beispielsweise fest, dass Yara etwas erst dann als Treffer wertet, wenn ein Suchmuster mehrmals vorkommt. Auch logische Verknüpfungen sind möglich. Die Github-Seite verlinkt zu einer ausführlichen Dokumentation.
Regeldateien können Benutzer in Objektcode umwandeln, was die Verarbeitungsgeschwindigkeit erhöht. Beim Durchstöbern großer Verzeichnisse legen Anwender über »-p« die Anzahl der Yara-Threads fest. In der Voreinstellung durchkämmt Yara jede Datei vollständig, es ist aber mit »-f« auch möglich, nach dem ersten Treffer direkt zur nächsten Datei zu wechseln.
Yara ist ein flexibles und leistungsfähiges Tool, das dank Threading und Objektcode performant läuft. Die Dokumentation sollten Anwender gründlich lesen, um eigene Regeln aufzustellen.












