orcharhino und Sophos – eine Malware Spurensuche
Die Verwendung von Antiviren- und Security-Software ist Voraussetzung in den meisten Infrastruktur-Szenarien. Umso wichtiger ist es, diese auf das jeweilige Verwendungsszenario anzupassen. orcharhino als zentraler Dreh- und Angelpunkt im Rechencluster ist dabei von besonderer Bedeutung.
Nicht nur muss der Rechner selbst unkompromittiert sein, sondern es muss auch gewährleistet werden, dass die synchronisierten Repositories Malware-frei sind. Dieser Artikel beschäftigt sich mit der Anbindung von orcharhino an Sophos Central und Konfiguration von Sophos Antivirus für Linux in Bezug auf orcharhino (getestet in den Versionen orcharhino 5.10 und Sophos Antivirus für Linux 1.0.4.3). Sophos Central stellt die aktuelle Cloudverwaltungsplattform von Sophos dar. Die Anbindung eines orcharhino auf Basis von CentOS 7 erfolgt problemlos über das mitgelieferte Bootstrapskript. In diesem Beispiel wird ein orcharhino Host ‚or30‘ angehängt:
Ein on-demand Scan des Hosts, also ein aktiv ausgelöster Scan, kann direkt über Sophos Central über den ‚Scan‘ Button gestartet werden. Eine entsprechende Ausgabe erfolgt nach Abschluss des Scans. In diesem Beispiel wurden zwei infizierte Dateien entdeckt:
Werfen wir einen genaueren Blick auf die Funde. Beide Funde finden sich unter dem Verzeichnis ‚/var/lib/pulp‘. Damit handelt es sich um Dateien, die in einem orcharhino Repository synchronisiert wurden. Eventuell wurde ein nicht-vertrauenswürdiges Repository am orcharhino synchronisiert. Die Frage ist nun, um welche Dateien es sich genau handelt. Damit lässt sich die Bedrohung bereits deutlich besser einschränken.
Der Pfad ‚/var/lib/pulp/content/units/iso‘ verrät bereits, dass es sich um den Inhalt eines Katello file-Repositories handeln muss. Die Pfade ‚/var/lib/pulp/content/units/rpm‘, ‚/var/lib/pulp/content/units/drpm‘ und ‚/var/lib/pulp/content/units/deb‘ stehen für rpm, drpm und Debian Content. Das zu dem befallenen File assoziierte Katello Repository kann durch eine Datenbankabfrage herausgefunden werden. Zunächst muss ein Datenbanklogin auf dem orcharhino Server erfolgen:
mongo pulp_database
Mit dem Pfad aus der Fundmeldung kann die ID des entsprechenden Files identifiziert werden. In diesem Fall ist dies der Befehl:
> db.units_iso.find({"_storage_path": {$eq:
"/var/lib/pulp/content/units/iso/fc/006e7d7726b9810ac071a3173fbf583c1b0644098f38082cd23e4adcedb7d7"}}).pretty()
Die Ausgabe sieht wie folgt aus:
{
"_id" : "2b5c59e8-367a-4f17-9a6e-09ac5e6b9976",
"pulp_user_metadata" : {
},
"_last_updated" : 1639479305,
"_storage_path" : "/var/lib/pulp/content/units/iso/fc/006e7d7726b9810ac071a3173fbf583c1b0644098f38082cd23e4adcedb7d7",
"downloaded" : true,
"name" : "EICAR.sh",
"checksum" : "131f95c51cc819465fa1797f6ccacf9d494aaaff46fa3eac73ae63ffbdfd8267",
"size" : 69,
"_ns" : "units_iso",
"_content_type_id" : "iso"
}
Handelt es sich um ein rpm oder ein Debian Paket können die analogen Befehle ‚units_rpm‘ und ‚units_deb‘ benutzt werden. In diesem Fall ist bereits der Paketname in Klaransicht im Filenamen enthalten. Ansonsten wird, wie in diesem Fall, der Klarname der entsprechenden Datei zurückgeliefert, hier ‚eicar.sh‘. Mit Hilfe der ID unter Feld ‚ID‘ lässt sich das dazugehörige Repositories identifizieren:
> db.repo_content_units.find({"unit_id": "2b5c59e8-367a-4f17-9a6e-09ac5e6b9976"}).pretty()
bd9c64b2-b753-4ec0-b316-442472bdc2aa
{
"_id" : ObjectId("61b87809345283bc53b2d192"),
"repo_id" : "a7b580a9-0c34-4864-abfc-4c8fb52c8b18",
"unit_id" : "2b5c59e8-367a-4f17-9a6e-09ac5e6b9976",
"unit_type_id" : "iso",
"updated" : "2021-12-14T10:55:05Z",
"created" : "2021-12-14T10:55:05Z"
}
und damit das eigentliche Repository
> db.repos.find({"repo_id" : "a7b580a9-0c34-4864-abfc-4c8fb52c8b18"}).pretty()
{
„_id“ : ObjectId(„61b8632a2c07265c65c9a543“),
„repo_id“ : „a7b580a9-0c34-4864-abfc-4c8fb52c8b18“,
„display_name“ : „Sophos-EICAR“,
„notes“ : {
},
„scratchpad“ : {
},
„_ns“ : „repos“,
„last_unit_added“ : ISODate(„2021-12-14T10:55:05.250Z“),
„last_unit_removed“ : ISODate(„2021-12-14T10:53:39.751Z“),
„content_unit_counts“ : {
„iso“ : 1
}
}
Ein Blick in das entsprechende Repository „Sophos-EICAR“ über die orcharhino GUI zeigt das fragliche File:
Möchte man die Repositories von einem Scan ausnehmen (z.B. wenn die Repository-Inhalte bereits bei Download an einem Proxy überprüft werden), lässt sich das Verzeichnis /var/lib/pulp aus dem Scan über die Policy ausschließen.
Es ist zu beachten, dass bei Veröffentlichung eines Repositories unter einem Content View Softlinks unter var/lib/pulp/published auf die einzelnen Inhalte des Repositories finden. Diesen kann zu den eigentlichen Files gefolgt werden.
Sophos bietet ein weiteres Tool an, dass hilfreich für die Überwachung von orcharhino ist: ‚Live Discovery‘. Das Live Discovery Feature von Sophos Central kann dabei helfen den Zustand des orcharhino Servers zu überprüfen. So lassen sich z.B. die Prozesse mit offenen Ports auflisten um die entsprechenden orcharhino Dienste zu verifizieren:
Bitte beachten Sie:
- Dies sind einige Beispiele wie, man die Überwachung eines orcharhino verbessern kann. Dieser Artikel zielt nicht darauf ab, alle Facetten einer Serverüberwachung zu behandeln. Besonders bei on-access Scans muss bei Verwendung der orcharhino Datenbankdienste auf die Performance und Integrität geachtet werden.
- Mongo wird mit der nächsten major orcharhino Version 6 als backend für pulp abgelöst.
Martin Grundei
Neueste Artikel von Martin Grundei (alle ansehen)
- orcharhino und Sophos – eine Malware Spurensuche - 10. Februar 2022