Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ibmsecurity — Idempotente Funktionen für IBM Security Appliance REST-APIs. Derzeit werden ISAM- und ISDS-Appliances abgedeckt. | Kitploit
Tools/GitHubGitHub/ibm-security/ibmsecurity
Scripting & AutomatisierungKonfigurationsprüfungNetzwerksicherheitDevSecOpsIdentitäts- & Zugriffsmanagement (IAM)API-Sicherheit
GitHubibm-security/ibmsecurity

ibmsecurity

Idempotente Funktionen für IBM Security Appliance REST-APIs. Derzeit werden ISAM- und ISDS-Appliances abgedeckt.

Repository anzeigen
51765vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

IBM-Beispielcode

Dieses Repository enthält Python-Code zur Verwaltung von IBM Security Appliances über ihre jeweiligen REST-APIs. Die ISAM-Appliance hat den ausgereiftesten Code.

Code für die ISDS-Appliance befindet sich in der Entwicklung.

Code für die ISVG-Appliance ist brandneu (nur mit 10.0.1.0 und höher getestet).

Anforderungen

Für dieses Paket ist Python v3.9 und höher erforderlich.

Die folgenden Python-Pakete sind erforderlich:

  1. requests – für REST-API-Aufrufe
  2. PyYAML – damit der Beispielcode funktioniert
  3. jmespath – ist für den Beispielcode erforderlich

Die folgenden Python-Pakete sind optional:

  1. cryptography – zum Ausführen von Aktionen an Zertifikaten (wird für die Idempotenz in management_ssl_certificate verwendet)
  2. python-dateutil – Datumsdienstprogramme (wird für die Idempotenz in management_ssl_certificate verwendet)

Appliances müssen für ihr LMI eine IP-Adresse definiert haben. Dies kann bedeuten, dass Appliances ihre Erstkonfiguration mit Lizenzakzeptanz abgeschlossen haben.

TLS-Verifizierung aktiviert (v2024.4.5)

Diese Änderungen sind abwärtskompatibel. Standardmäßig wird nicht verifiziert, aber es wird immer ein Hinweis angezeigt:

root@kitploit:~
Certificate verification has been disabled. Python is NOT verifying the SSL
certificate of the host appliance and InsecureRequestWarning messages are

being suppressed for the following host:

https://{0}:{1}

To use certificate verification:

1. When the certificate is trusted by your Python environment:
   Instantiate all instances of ISAMAppliance with verify=True or set
   the environment variable IBMSECLIB_VERIFY_CONNECTION=True.
2. When the certificate is not already trusted in your Python environment:
   Instantiate all instances of ISAMAppliance with the verify parameter
   set to the fully qualified path to a CA bundle.

See the following URL for more details:
https://requests.readthedocs.io/en/latest/user/advanced/#ssl-cert-verification

Um diese Zertifikatsvalidierungswarnung zu beheben, beachten Sie die folgenden Anweisungen:

Korrekte Verwendung:

Wenn Sie das Zertifikat irgendwo auf der Festplatte haben, instanziieren Sie die ISAMAppliance mit:

root@kitploit:~
ISAMAppliance(…, verify=<path to cert>)

Sie können dies von der Appliance mit einem Befehl wie dem folgenden abrufen:

root@kitploit:~
openssl s_client -connect ${HOSTNAME}:${PORT} </dev/null 2>/dev/null | openssl x509 -outform pem >  isamAppliance.pem

Wenn das Zertifikat in Ihrer Python-Umgebung bereits vertrauenswürdig ist, instanziieren Sie die ISAMAppliance mit:

root@kitploit:~
ISAMAppliance(…, verify=True)

oder setzen Sie die Umgebungsvariable: IBMSECLIB_VERIFY_CONNECTION=true

Wenn Sie Fehler erhalten, dass der Hostname nicht mit dem Zertifikat übereinstimmt:

Das könnte so aussehen:

root@kitploit:~
<stack trace>

…

    raise CertificateError("hostname %r doesn't match %r" % (hostname, dnsnames[0]))

urllib3.util.ssl_match_hostname.CertificateError: hostname '192.168.42.111' doesn't match 'appliance.ibm.com'

Stellen Sie sicher, dass der Hostname, der beim Instanziieren Ihrer ISAMAppliance verwendet wird, mit dem Subject Alternative Name des Zertifikats übereinstimmt.

Überprüfen Sie mit:

root@kitploit:~
openssl x509 -in <cert-pem-file> -text

Beispiel:

root@kitploit:~
$ openssl x509 -in /path/to/appliance.pem -text

Certificate:

root@kitploit:~
Data:
    Version: 3 (0x2)
    …
        X509v3 Subject Alternative Name:
            DNS:appliance.ibm.com

…

Das Folgende erzeugt Fehler:

root@kitploit:~
ISAMAppliance(host=”192.168.42.111”, lmi_port=443, verify=/path/to/appliance.pem)

da der Host nicht mit dem Subject Alternative Name übereinstimmt. Verwenden Sie stattdessen:

root@kitploit:~
ISAMAppliance(host=”appliance.ibm.com”, lmi_port=443, verify=/path/to/appliance.pem)

Versionierung

Dieses Paket verwendet ein Datum für die Versionierung. Zum Beispiel: "2017.03.18.0"

Es ist das Datum, an dem das Paket veröffentlicht wird, mit einer Sequenznummer am Ende, um zu behandeln, wenn es mehrere Veröffentlichungen an einem Tag gibt (was voraussichtlich ungewöhnlich ist).

Funktionen

Dieses Python-Paket bietet die folgenden Funktionen:

  1. Einfach zu bedienen – die Einzelheiten eines REST-Aufrufs werden innerhalb einer Appliance-Klasse behandelt
  2. Intuitives Layout des Codepakets und Benennung, die der GUI-Oberfläche der Appliance entspricht
  3. Idempotenz – Funktionen, die Aktualisierungen vornehmen, fragen die Appliance ab, um die angegebenen Daten zu vergleichen und zu sehen, ob eine Änderung erforderlich ist, bevor die eigentliche Änderung vorgenommen wird.
  4. Commit- und Deploy-Schritte werden separat bereitgestellt, um Flexibilität bei deren Aufruf zu ermöglichen
  5. Standardmäßiges Logging ist enthalten – mit der Möglichkeit, Logging-Stufen festzulegen.
  6. Parameter für Funktionen verwenden, wo immer möglich, Standardwerte.
  7. Eine Force-Option wird bereitgestellt, um die Idempotenz zu überschreiben.
  8. Vergleichsfunktionen werden bereitgestellt – sie nehmen JSON-Ausgabe und liefern einen aussagekräftigen Vergleich.

Format der Funktionsdatenrückgabe

root@kitploit:~
{
    rc:       <0 for success, higher for errors>
    changed:  <True or False>
    warnings: <List of strings with warnings - e.g. incompatible version>
    data:     <JSON data returned by appliance REST API that the function called>
}

Hinweis: Es ist bevorzugt, Warnungen zurückzugeben, anstatt einen Nicht-Null-rc zurückzusenden.

Organisation des Codes

Appliance-Klassen

Eine abstrakte ibmappliance-Klasse wird erweitert, um eine Klasse für jede hier unterstützte Appliance zu erstellen. Derzeit sind das ISAM- und ISDS-Appliances.

Benutzerklassen

Ein abstrakter User wird für jede benötigte Benutzerart erweitert. Für ISAM gibt es einen Benutzer für den Appliance-Zugriff und einen anderen für die Authentifizierung bei Web Runtime (Policy Server).

Layout der ISAM-Pakete

Es gibt vier primäre ISAM-Pakete – base, web, aac und fed. web enthält alle Komponenten, die für die Einrichtung der Web-Funktionalität benötigt werden, einschließlich eingebettetem LDAP, Runtime und Funktionen, die als Teil des wga-Moduls aktiviert werden. aac enthält Funktionen, die als Teil des mga-Moduls aktiviert werden, und fed die der federation. base enthält alles andere – einschließlich aac und fed runtime und Audit Configuration (diese sind aac und fed gemeinsam und befinden sich daher in base).

Paket- und Dateinamen

Die Paket- und Dateinamen wurden mit der folgenden Absicht erstellt:

  1. Namen beibehalten, die mit der GUI-Oberfläche übereinstimmen (LMI für die ISAM-Appliance).
  2. Jede Datei sollte nur eine Funktion jedes Typs enthalten (siehe Liste unten) – d. h. nur ein add().
  3. Verwandte Funktionen gruppieren – eine von jedem Typ – in einer Datei.
  4. Der URI für die REST-API-Aufrufe innerhalb einer Datei ist derselbe und verwaltet ein "Feature" der Appliance.

Dienstprogramme

Enthält verschiedene Funktionen, die generisch und unabhängig von einer IBM Appliance sind, z. B. json_compare().

Funktionstypen

get_all()

Diese Funktion gibt typischerweise alle Objekte zurück, die mit diesem Feature zusammenhängen.

get()

Diese Funktion gibt die Details eines bestimmten Objekts zurück.

set()

Diese Funktion ermittelt, ob das zu manipulierende Objekt existiert; wenn nicht, ruft sie add() auf, andernfalls ruft sie update() auf. In Fällen, in denen es kein update() gibt, vergleicht sie, ob es einen Unterschied zwischen dem vorhandenen Wert auf der Appliance und dem Wert, der über die Funktion gesetzt wird, gibt – wenn unterschiedlich, löscht sie das Objekt mit delete(), bevor sie add() aufruft.

add()

Überprüft, ob das Objekt bereits existiert – wenn ja, überspringen, andernfalls hinzufügen.

update()

Überprüft, ob das Objekt bereits existiert – wenn ja, prüfen, ob eine Aktualisierung erforderlich ist, bevor eine Änderung vorgenommen wird, andernfalls nichts tun.

delete()

Überprüft, ob das Objekt bereits existiert – wenn ja, löschen, andernfalls nichts tun.

import_<>()

"import" ist ein reserviertes Wort, daher gibt es ein Suffix, das angibt, was importiert werden soll (z. B. Datei oder Schlüssel). Dies überprüft, ob das Objekt existiert, bevor es importiert wird.

export_<>()

Export prüft, ob das Objekt existiert, bevor es exportiert wird – beim Exportieren in eine Datei wird nicht erneut exportiert, wenn die Datei bereits existiert. Export

compare()

Compare nimmt die JSON-Ausgabe der get_all()-Funktionen und vergleicht sie. Es entfernt Daten aus JSON, die für jede Appliance eindeutig sind (z. B. UUID-Werte). Der zurückgegebene deleted_keys-Wert listet die JSON-Schlüssel auf, die vor dem Vergleich gelöscht wurden.

Funktionsparameter

Appliance-Objekt

Erstellen Sie ein Appliance-Objekt und übergeben Sie es an die Funktion. Appliance und das benötigte User-Objekt sind Klassen, um zukünftige Erweiterungen wie die Authentifizierung mit Zertifikat anstelle von Benutzername/Passwort zu ermöglichen.

check_mode

Der Standardwert ist False; übergeben Sie True, um zurückzukehren und keine Änderung vorzunehmen. Das "changed"-Flag wird auf True gesetzt, wenn Änderungen erkannt werden.

force

Der Standardwert ist False; übergeben Sie True, um die Idempotenzlogik zu überschreiben.

Andere Parameter

Die anderen Parameter entsprechen wörtlich der REST-API-Dokumentation. Die Absicht war, auf die REST-API-Dokumentation zu verweisen und sie nicht zu wiederholen. Bitte lesen Sie die REST-API-Dokumentation für Details.

Hinzufügen und Ändern

Bitte erstellen Sie ein Issue auf GitHub, wenn ein Fehler entdeckt wird oder es REST-APIs gibt, die von diesem Paket nicht abgedeckt werden. Geben Sie detaillierte Notizen zusammen mit Trace-Logs an, wenn ein Fehler gemeldet wird.

Lizenz

Der Inhalt dieses Repositorys ist unter der Apache-2.0-Lizenz Open Source.

root@kitploit:~
Copyright 2017 International Business Machines

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

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

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Tool herunterladen