Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ibmsecurity — IBM Security Appliance REST API용 멱등 함수. 현재 ISAM 및 ISDS 어플라이언스를 지원합니다. | Kitploit
도구/GitHubGitHub/ibm-security/ibmsecurity
Scripting & AutomationConfiguration AuditingNetwork SecurityDevSecOpsIdentity & Access Management (IAM)API Security
GitHubibm-security/ibmsecurity

ibmsecurity

IBM Security Appliance REST API용 멱등 함수. 현재 ISAM 및 ISDS 어플라이언스를 지원합니다.

저장소 보기
517651개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

IBM 샘플 코드

이 저장소에는 각각의 REST API를 사용하여 IBM Security Appliances를 관리하는 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"

패키지가 릴리스된 날짜이며, 하루에 여러 번 릴리스되는 경우를 처리하기 위해 끝에 시퀀스 번호가 붙습니다 (드문 경우로 예상됨).

기능

이 Python 패키지는 다음 기능을 제공합니다:

  1. 사용하기 쉬움 - REST 호출 세부 사항은 어플라이언스 클래스 내에서 처리됨
  2. 코드 패키지의 직관적인 레이아웃 및 명명은 어플라이언스의 GUI 인터페이스에 매핑됨
  3. 멱등성 - 업데이트를 수행하는 함수는 실제 변경을 수행하기 전에 주어진 데이터를 비교하여 변경이 필요한지 확인하기 위해 어플라이언스를 조회함
  4. 커밋 및 배포 단계는 호출의 유연성을 위해 별도로 제공됨
  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>
}

참고: 0이 아닌 rc를 반환하는 것보다 경고를 반환하는 것이 권장됩니다.

코드 구성

어플라이언스 클래스

추상 ibmappliance 클래스는 여기서 지원되는 각 어플라이언스에 대한 클래스를 생성하도록 확장됩니다. 현재는 ISAM 및 ISDS 어플라이언스입니다.

사용자 클래스

추상 User는 필요한 각 사용자 유형에 대해 확장됩니다. ISAM의 경우 어플라이언스 액세스를 위한 사용자와 웹 런타임(정책 서버)에 인증하기 위한 사용자가 있습니다.

ISAM 패키지 레이아웃

4개의 기본 ISAM 패키지가 있습니다 - base, web, aac 및 fed. web에는 임베디드 LDAP, 런타임 및 wga 모듈의 일부로 활성화되는 기능을 포함하여 웹 기능 설정에 필요한 모든 구성 요소가 포함됩니다. aac에는 mga 모듈의 일부로 활성화되는 기능이 포함되고 fed에는 페더레이션 기능이 포함됩니다. base에는 다른 모든 것이 포함됩니다 - aac 및 fed runtime 및 감사 구성 포함 (이들은 aac 및 fed에 공통이므로 base에 있음).

패키지 및 파일 이름

패키지 및 파일 이름은 다음 의도로 생성되었습니다:

  1. GUI 인터페이스(ISAM 어플라이언스의 LMI)에 있는 것과 일치하는 이름을 유지.
  2. 각 파일에는 각 함수 유형이 하나만 포함되어야 함 (아래 목록 참조) - 즉 add() 하나만.
  3. 관련 함수를 그룹화 - 각 유형 중 하나 - 파일에.
  4. 파일과 함께 REST API 호출의 URI는 동일하며 어플라이언스의 "기능"을 관리합니다.

유틸리티

모든 IBM 어플라이언스와 독립적인 일반 함수를 포함합니다 (예: json_compare()).

함수 유형

get_all()

이 함수는 일반적으로 해당 기능과 관련된 모든 객체를 반환합니다.

get()

이 함수는 특정 객체 하나의 세부 정보를 반환합니다.

set()

이 함수는 조작할 객체가 존재하는지 확인하고, 존재하지 않으면 add()를 호출하고 그렇지 않으면 update()를 호출합니다. update()가 없는 경우 어플라이언스의 기존 값과 함수를 통해 설정하려는 값 사이에 차이가 있는지 비교하고, 다르면 add()를 호출하기 전에 해당 객체를 delete()합니다.

add()

객체가 이미 존재하는지 확인하고, 존재하면 건너뛰고 그렇지 않으면 추가합니다.

update()

객체가 이미 존재하는지 확인하고, 존재하면 변경하기 전에 업데이트가 필요한지 확인하고, 그렇지 않으면 아무것도 하지 않습니다.

delete()

객체가 이미 존재하는지 확인하고, 존재하면 삭제하고 그렇지 않으면 아무것도 하지 않습니다.

import_<>()

"import"는 예약어이므로 무엇을 가져올지 나타내는 접미사가 있습니다 (예: file 또는 key). 가져오기 전에 객체가 존재하는지 확인합니다.

export_<>()

내보내기는 내보내기 전에 존재하는지 확인합니다 - 파일로 내보낼 때 파일이 이미 존재하면 다시 내보내지 않습니다. 내보내기

compare()

compare()는 get_all() 함수의 JSON 출력을 가져와 비교합니다. 각 어플라이언스에 고유한 JSON 데이터(예: UUID 값)를 제거합니다. 반환되는 deleted_keys 값은 비교 전에 삭제된 JSON 키를 나열합니다.

함수 매개변수

어플라이언스 객체

어플라이언스 객체를 생성하여 함수에 전달합니다. 어플라이언스와 필요한 User 객체는 사용자 이름/비밀번호 대신 인증서를 사용한 인증과 같은 향후 확장을 허용하는 클래스입니다.

check_mode

기본값은 False이며, True를 전달하면 변경하지 않고 반환합니다. 변경 사항이 감지되면 "changed" 플래그가 True로 설정됩니다.

force

기본값은 False이며, True를 전달하면 멱등성 로직을 재정의합니다.

기타 매개변수

다른 매개변수는 REST API 문서와 동일합니다. REST API 문서를 참조하고 반복하지 않기 위한 의도였습니다. 자세한 내용은 REST API 문서를 참조하십시오.

추가 및 변경

버그가 발견되거나 이 패키지에서 다루지 않는 REST API가 있는 경우 github에 이슈를 등록하십시오. 버그를 보고할 때 추적 로그와 함께 자세한 메모를 제공하십시오.

라이선스

이 저장소의 내용은 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.
도구 다운로드