* 참조 사항
- 이전 글 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는 데모 페이지를 지원하기 때문에 한번 사용해보면 어떤 서비스인지 충분히 알 수 있다 (강추)
OpenCTI - Cyber Threat Intelligence Platform
demo.opencti.io
- OpenCTI
- TI(Threat Inteligence) 중 하나로, 전 세계적으로 공유되는 위협 정보들에 대한 공유 시스템
- MISP 같은 기능이지만 부가 정보가 더 많고 시각적으로 볼수있는게 많음
- 악성코드 정보, IOCs, TTPs 다수 공유
- 분석 보고서 혹은 분석을 했던 외부 링크 공유
- 타 시스템 (ELK, MISP, MITRE 등)과 Connector 기반 연동 가능
- 외부와 데이터 Import, Export 유연하게 수행
- MISP 같은 기능이지만 부가 정보가 더 많고 시각적으로 볼수있는게 많음
- TI(Threat Inteligence) 중 하나로, 전 세계적으로 공유되는 위협 정보들에 대한 공유 시스템
* OpenCTI 설치
- Portainer 사용이 가능한 상태에서 Stacks → Web editor에 OpenCTI에서 제공하는 docker-compose.yml 파일에 대한 내용을 수정해서 기입해야 build가 가능
- https://github.com/OpenCTI-Platform/docker/blob/master/docker-compose.yml
- https://github.com/OpenCTI-Platform/docker/blob/master/.env.sample
- UUID (universally unique identifier) : 네트워크 상에서 고유성이 보장되는 ID를 생성하는 표준 규약
- docker-compose 파일과 해당 내용안에 사용자가 지정해야될 변수값의 예시 정보
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 생성
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
3) 환경 변수 설정
- Stack에서 Add an environment variable로 필요 값 할당
4) Stack 배포
5) OpenCTI 정상 설치 확인
- http://설정했던 서버IP:8080
* 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/
- TAXII (Trusted Automated eXchange of Indicator Information) : 사이버 위협 정보를 공유하기 위한 방안
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 |
---|