본문 바로가기

Docker & Kubernetes

[Docker] Portainer 기반 OpenCTI 연동

반응형

* 참조 사항
- 이전 글 Portainer 설치를 참조하여 Docker를 사용할 수 있는 환경이 준비되면 설치가 가능하다
- 주의 사항으로, 필자는 AWS EC2에서 Build 하였기 때문에 OpenCTI를 사용하기 위한 보안 설정(Security Group)도 별도로 설정
- https://isc9511.tistory.com/172

  • 필자의 Portainer 및 OpenCTI를 접속하기 위한 AWS Security Group 설정 사항
    • TCP 8080 : OpenCTI 접속 (yml 파일 설정 사항에 따라 변경 가능)
    • TCP 11000 : Portainer 접속 (Docker 설치 과정 및 설정에 따라 변경 가능한 값)
  • OpenCTI는 데모 페이지를 지원하기 때문에 한번 사용해보면 어떤 서비스인지 충분히 알 수 있다 (강추)

https://demo.opencti.io/

 

OpenCTI - Cyber Threat Intelligence Platform

 

demo.opencti.io

 

 

 

OpenCTI 대시보드

  • OpenCTI
    • TI(Threat Inteligence) 중 하나로, 전 세계적으로 공유되는 위협 정보들에 대한 공유 시스템
      • MISP 같은 기능이지만 부가 정보가 더 많고 시각적으로 볼수있는게 많음
        • 악성코드 정보, IOCs, TTPs 다수 공유
        • 분석 보고서 혹은 분석을 했던 외부 링크 공유
        • 타 시스템 (ELK, MISP, MITRE 등)과 Connector 기반 연동 가능
        • 외부와 데이터 Import, Export 유연하게 수행

 

 

 

* OpenCTI 설치

OPENCTI_ADMIN_EMAIL=admin@opencti.io # opencti 로그인 시 사용자 ID
OPENCTI_ADMIN_PASSWORD=changeme # opencti 사용자 PW
OPENCTI_ADMIN_TOKEN=ChangeMe_UUIDv4 # UUID 별도 생성하여 TOKEN으로 사용하는 값
OPENCTI_BASE_URL=http://localhost:8080 # OpenCTI 접속 시, 별도 URL 지정
MINIO_ROOT_USER=d7867c8b-agfe-4nha-9ebc-9dfgh1e70e6 # minio(분산 객체 시스템) 계정(UUIDv4)
MINIO_ROOT_PASSWORD=b91e8b88-0b6b-40e0-b8bd-bdcb6bac0374 # minio(분산 객체 시스템) 비밀번호(UUIDv4)
RABBITMQ_DEFAULT_USER=opencti # rabbitMQ(메세지 브로커) ID
RABBITMQ_DEFAULT_PASS=changeme # rabbitMQ(메세지 브로커) PW
CONNECTOR_EXPORT_FILE_STIX_ID=dd817c8b-abae-460a-9ebc-97b1551e70e6 # connector 별 UUIDv4 별도 지정
CONNECTOR_EXPORT_FILE_CSV_ID=7ba187fb-fde8-4063-92b5-c3da34060dd7
CONNECTOR_EXPORT_FILE_TXT_ID=ca715d9c-bd64-4351-91db-33a8d728a58b
CONNECTOR_IMPORT_FILE_STIX_ID=72327164-0b35-482b-b5d6-a5a3f76b845f
CONNECTOR_IMPORT_DOCUMENT_ID=c3970f8a-ce4b-4497-a381-20b7256f56f0
SMTP_HOSTNAME=localhost # smtp 사용 계정 지정 - 그냥 본인 서버의 ip 넣으면됨 (내부 서버면 localhost / 외부면 공인ip)
ELASTIC_MEMORY_SIZE=4G # Elastic에 지정되는 메모리 사이즈

* 변수값 내 UUID 생성 : https://www.uuidgenerator.net/version4

 

Online UUID Generator Tool

Online UUID Generator Your Version 4 UUID: 9cff4fd3-c30d-4ae4-b651-406ace9891bb Copy Refresh page to generate another.

www.uuidgenerator.net

 

 

 

* OpenCTI 연동 과정
1) Docker Stack 생성

Stacks -> Add stack

2) YAML 내용 입력 (사실은 붙여넣기다)
https://github.com/OpenCTI-Platform/docker/blob/master/docker-compose.yml

 

GitHub - OpenCTI-Platform/docker: OpenCTI Docker deployment helpers

OpenCTI Docker deployment helpers. Contribute to OpenCTI-Platform/docker development by creating an account on GitHub.

github.com

해당 Github에서 제공하는 YAML 코드 -> Web-editor안에 붙여넣기

3) 환경 변수 설정
- Stack에서 Add an environment variable로 필요 값 할당

OpenCTI 5.6.2 버전 기준으로 설정할 변수는 15개 (참고로 저기 나온 공인IP는 EC2를 폭파시켜서 의미 없어서 가리지 않았다)

4) Stack 배포

5) OpenCTI 정상 설치 확인
- http://설정했던 서버IP:8080

위 변수 설정에서 사용한 Root User ID와 Password를 사용하여 로그인
설치되어 깡통인 상태

 

 

 

* OpenCTI DataSet 연동 개념

  • TAXII, STIX, GraphQL 및 이외의 타 OpenTI에서 데이터를 연동, 받아올 수 있음
    • TAXII (Trusted Automated eXchange of Indicator Information) : 사이버 위협 정보를 공유하기 위한 방안
      (STIX 공유 수단)
    • STIX (Structured Threat Information eXpression) : MITRE사에서 공유를 위해 만든 위협 정보에 대한 구조화된 언어로 표준 규격으로 현재 사용
      https://oasis-open.github.io/cti-documentation/
 

Cyber Threat Intelligence Technical Committee

Sharing threat intelligence just got a lot easier!

oasis-open.github.io

 

 

 

 

반응형

'Docker & Kubernetes' 카테고리의 다른 글

[Docker] 개념 및 사용을 위한 Portainer 설치  (0) 2023.04.13