Unsicherer Kennwortspeicher in IBM WebSphere

Bei der Arbeit stoße ich häufig auf IBM Produkte: WebSphere Application Server (WAS) und andere darauf basierende Produkte. Und wie jeder vergesse ich manchmal Passwörter, besonders für Testsysteme oder solche, denen Sie nicht genug Aufmerksamkeit schenken.

Wieder einmal, ohne mich an das Passwort zu erinnern, beschloss ich zu sehen, wie unser Anwendungsserver es speichert. Nachdem ich mehrere Konfigurationsdateien wie security.xml, wimconfig.xml und resources.xml analysiert hatte, fand ich alle in der Administrationskonsole jemals eingegebenen Kennwörter, einschließlich des Kennworts des Hauptadministrators. Sie waren auf den ersten Blick völlig ungefährlich gelagert.

serverPassword="{xor}KD4sPjsyNjE="


Xor ist natürlich alarmierend, aber wir kennen den Schlüssel und das Salz nicht, die wir verwenden könnten (aber nicht verwendet haben). Erinnern an das Eigentum von xor aus Studentenjahren, dass:

если a ⊕ b = c, то a ⊕ c = b

... einen Schlüssel für das System gefunden, dessen Passwort bekannt ist:

283E2C3E3B323631 ⊕ 77617361646D696E = 5F(ASCII код _)

Natürlich ist es immer dasselbe, dh das Passwort wird in praktisch offenem Text gespeichert, xor on _ verbirgt es nicht, auch nicht vor Benutzern, die sich mit Verschlüsselung nicht auskennen. Ich möchte Sie daran erinnern, dass alle Kennwörter auf diese Weise gespeichert werden: für Schlüsselspeicher, für den Zugriff auf Active Directory, für den Zugriff auf eine Datenbank, in der aufgrund der Besonderheiten der Verwendung von WAS häufig Informationen gespeichert werden, auf die der Zugriff so weit wie möglich beschränkt werden sollte. Jeder, der Zugriff auf die Konfigurationsdateien hat, wird automatisch zum Administrator des Anwendungsservers und erhält Kennwörter von Datenbanken und anderen Ressourcen.

Die WebSphere-Produktlinie ist recht teuer und für kleine und mittelständische Unternehmen nicht zugänglich. Beispielsweise kostet eine WAS-Lizenz für einen durchschnittlichen x86 2-Socket-Server heute etwa 200.000 US-Dollar. WebSphere Portal ist um ein Vielfaches teurer. Normalerweise ist es nicht auf x86 installiert, für RISC ist die Lizenz sogar noch teurer. Sie werden hauptsächlich in Regierungsbehörden und im Bankensektor verwendet, und in solchen Organisationen sind die Sicherheitsanforderungen besonders, z. B. Rollentrennung (Betriebssystemadministrator, Datenbankadministrator, Anwendungsserver). In einer solchen Situation ist dies technisch nicht machbar.

Schrieb ein kleines Skript, um sich Kennwörter sofort zu merken.

import base64
char = ''
input = raw_input("Enter: ")
data = base64.b64decode(input)
for character in data:
    hex_char = hex(int(character.encode('hex'), 16) ^ int('_'.encode('hex'), 16))[2:]
    char = char + hex_char.decode('hex')
print 'Password:', char

Der Algorithmus bleibt in allen Versionen von WAS, einschließlich der neuesten Version 8.5.5, und in allen darauf basierenden Produkten unverändert: Portal Server, BPM, ESB und andere. Ich hoffe, dass in Version 8.6 oder mindestens 9 Passwörter von AES verschlüsselt werden.

Jetzt auch beliebt: