Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ibmsecurity — IBM Security Appliance REST API 向けの冪等関数。現在は ISAM および ISDS Appliance を対象としています。 | Kitploit
ツール/GitHubGitHub/ibm-security/ibmsecurity
スクリプトと自動化構成監査ネットワークセキュリティDevSecOpsアイデンティティ&アクセス管理 (IAM)APIセキュリティ
GitHubibm-security/ibmsecurity

ibmsecurity

IBM Security Appliance REST API 向けの冪等関数。現在は ISAM および ISDS Appliance を対象としています。

リポジトリを見る
51761ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

IBM サンプルコード

このリポジトリには、IBM セキュリティー・アプライアンスをそれぞれの REST API を使用して管理するための Python コードが含まれています。 ISAM アプライアンスのコードが最も成熟しています。

ISDS アプライアンスのコードは開発中です。

ISVG アプライアンスのコードは新しいものです(10.0.1.0 以上でのみテスト済み)。

要件

このパッケージには Python v3.9 以上が必要です。

以下の Python パッケージが必要です:

  1. requests - REST API 呼び出しを行うため
  2. PyYAML - サンプルコードを動作させるため
  3. jmespath - サンプルコードに必要

以下の Python パッケージはオプションです:

  1. cryptography - 証明書に対する操作を実行するため(management_ssl_certificate の冪等性に使用)
  2. python-dateutil - 日付ユーティリティ(management_ssl_certificate の冪等性に使用)

アプライアンスは、その LMI に IP アドレスが定義されている必要があります。これは、アプライアンスがライセンスの承諾を含む初期セットアップを完了していることを意味する場合があります。

TLS 検証の有効化 (v2024.4.5)

これらの変更は後方互換性があります。デフォルトでは検証を行いませんが、常に通知を表示します:

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

この証明書検証の警告を改善するには、以下の手順を検討してください:

正しい使用方法:

証明書がディスク上のどこかにある場合は、ISAMAppliance を次のようにインスタンス化します:

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

これは、以下のようなコマンドを使用してアプライアンスから取得できます:

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

証明書が Python 環境ですでに信頼されている場合は、ISAMAppliance を次のようにインスタンス化します:

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

または、環境変数 IBMSECLIB_VERIFY_CONNECTION=true を設定します。

ホスト名が証明書と一致しないというエラーが発生する場合:

これは次のようになります:

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'

ISAMAppliance のインスタンス化時に使用するホスト名が、証明書の Subject Alternative Name と一致していることを確認してください。

次のコマンドで確認できます:

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

例:

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

…

以下はエラーを生成します:

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

ホストが Subject Alternative Name と一致しないためです。 代わりに、次を使用してください:

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

バージョニング

このパッケージはバージョニングに日付を使用します。例: "2017.03.18.0"

これはパッケージがリリースされた日付で、1 日に複数回リリースがある場合(まれであると想定)に対応するために末尾にシーケンス番号が付きます。

機能

この Python パッケージは以下の機能を提供します:

  1. 使いやすい - REST 呼び出しの詳細はアプライアンスクラス内で処理されます
  2. 直感的なコードパッケージのレイアウトと命名は、アプライアンスの GUI インターフェースに対応
  3. 冪等性 - 更新を行う関数は、実際の変更を行う前に、指定されたデータを比較して変更が必要かどうかを確認するためにアプライアンスに問い合わせます。
  4. Commit と Deploy の手順は別々に提供されており、呼び出しの柔軟性を可能にします
  5. 標準的なロギングが含まれています - ロギングレベルを設定する機能付き。
  6. 関数のパラメーターは、可能な限り標準のデフォルト値を使用します。
  7. 冪等性を上書きするための force オプションが提供されています。
  8. 比較関数が提供されています - JSON 出力を受け取り、意味のある比較を提供します。

関数データ返却形式

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>
}

注:ゼロ以外の rc を返送するよりも、警告を返すことが推奨されます。

コードの構成

アプライアンスクラス

ここでサポートされている各アプライアンスのクラスを作成するために、抽象 ibmappliance クラスが拡張されています。 現在のところ、ISAM と ISDS アプライアンスです。

ユーザークラス

必要なユーザーの各タイプに対して、抽象 User が拡張されます。ISAM の場合、アプライアンスアクセス用のユーザーと、Web Runtime(ポリシーサーバー)への認証用の別のユーザーです。

ISAM パッケージのレイアウト

ISAM には 4 つの主要なパッケージがあります - base、web、aac、fed。web には、組み込み LDAP、ランタイム、wga モジュールの一部としてアクティブ化される機能など、Web 機能のセットアップに必要なすべてのコンポーネントが含まれています。aac には mga モジュールの一部としてアクティブ化される機能が含まれ、fed には federation の機能が含まれます。base には、aac と fed の runtime と Audit Configuration を含むその他すべてが含まれます(これらは aac と に共通であるため、 にあります)。

パッケージ名とファイル名

パッケージ名とファイル名は以下の意図で作成されました:

  1. GUI インターフェース(ISAM アプライアンスの LMI)にあるものと一致する名前を維持する。
  2. 各ファイルには、各関数タイプ(下記のリストを参照)を 1 つだけ含める - つまり add() を 1 つだけ。
  3. 関連する関数をグループ化する - 各タイプを 1 つずつ - ファイルにまとめる。
  4. ファイル内の REST API 呼び出しの URI は同じで、アプライアンスの「機能」を管理します。

ユーティリティ

任意の IBM アプライアンスに依存しない、汎用的な雑多な関数が含まれています。例:json_compare()。

関数タイプ

get_all()

この関数は通常、その機能に関連するすべてのオブジェクトを返します。

get()

この関数は、特定の 1 つのオブジェクトの詳細を返します。

set()

この関数は、操作対象のオブジェクトが存在するかどうかを判断し、存在しない場合は add() を呼び出し、それ以外の場合は update() を呼び出します。 update() がない場合は、アプライアンス上の既存の値と関数で設定される値に違いがあるかどうかを比較し、異なる場合は add() を呼び出す前にそのオブジェクトを delete() します。

add()

オブジェクトがすでに存在するかどうかを確認し、存在する場合はスキップし、それ以外の場合は追加します。

update()

オブジェクトがすでに存在するかどうかを確認し、存在する場合は変更を行う前に更新が必要かどうかを確認し、それ以外の場合は何もしません。

delete()

オブジェクトがすでに存在するかどうかを確認し、存在する場合は削除し、それ以外の場合は何もしません。

import_<>()

"import" は予約語のため、何をインポートするかを示すサフィックスがあります(例:ファイルまたはキー)。これは、インポートする前にオブジェクトが存在するかどうかを確認します。

export_<>()

エクスポートする前に存在するかどうかを確認します - ファイルにエクスポートする場合、ファイルがすでに存在する場合は再エクスポートしません。 エクスポート

compare()

compare は get_all() 関数からの JSON 出力を受け取り、それを比較します。各アプライアンスに固有のデータ(UUID 値など)を JSON から取り除きます。返される deleted_keys 値は、比較前に削除された JSON キーをリストします。

関数パラメーター

アプライアンスオブジェクト

アプライアンスオブジェクトを作成し、関数に渡します。必要なアプライアンスと User オブジェクトは、ユーザー名/パスワードの代わりに証明書を使用した認証など、将来の拡張を可能にするためのクラスです。

check_mode

デフォルトは False で、True を渡すと変更を行わずに返します。変更が検出された場合、"changed" フラグが True に設定されます。

force

デフォルトは False で、True を渡すと冪等性ロジックを上書きします。

その他のパラメーター

その他のパラメーターは REST API ドキュメントに完全に一致します。意図は REST API ドキュメントを参照することであり、それを繰り返さないことです。詳細については REST API ドキュメントを参照してください。

追加と変更

バグが発見された場合、またはこのパッケージでカバーされていない REST API がある場合は、github で issue を報告してください。 バグを報告する際は、トレースログとともに詳細なメモを提供してください。

ライセンス

このリポジトリの内容は、Apache 2.0 ライセンスの下でオープンソースです。

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.
ツールをダウンロード
fed
base