#2 Open Source Threat Intelligence
앞에서 TI에는 어떤 데이터가 있고 어떠한 요소가 구축에 필요한지를 살펴 보았다면 이제는 실제로 Open Source를 이용하여 직접 TI를 한번 구축해 볼수는 없을까? 라는 고민을 해보고자 합니다. 실제로 Git이나 여러곳에서 소스나 데이터를 얻을수 있으며 많은 문서를 참고할수 있으며 이를 통해서 손쉽게 TI를 공유 하는 환경을 구축하는것이 가능합니다.
다만 앞에서 살펴본 STIX에서 정의하는 모든 항목을 제공하는 경우는 여기서 다루지 않기 때문에 이에 대해서는 추가적인 학습을 하는것이 필요해 보입니다.
미국 국토안보부인 MITRE를 통해서 13년 4월 사이버 위협 정보 전송 규격인 TAXII(Trusted Automated Exchange of Indicator Information) 공식 버전을 10월에는 사이버 위협 표현 규격인 STIX (Structured Threat Information Expression)를 발표 하였으며 STIX는 사이버 위협 정보를 교환하는데 사용되는 언어와 직렬화 형식이고 TAXII는 이러한 사이버 위협 정보를 간단하게 확장가능한 방식으로 통신하도록 해주는 프로토콜입니다.
TAXII는 STIX에 명시된 CTI(Cyber Threat Intelligence)를 공유 하기 위해서 반드시 필수적인 요소입니다. 물론 STIX는 TAXII를 제외한 다른 형식으로 데이터를 공유 할수도 있습니다. TAXII의 데이터 공유 모델은 아래와 같은 형식으로 데이터를 주고 받을수 있습니다.
: hub-and-spoke, peer-to-peer, source-subscriber.
STIX와 TAXII는 정보를 공유하기 위한 기반만을 제공하며 이를 통한 정보의 공유는 다양한 회사에서 제공하거나 오픈소스를 통해서 제공됩니다. 물론 위에서 서술된 TIP, TIS등에서도 당연히 이를 지원하는 곳이 많이 있습니다. 일반적으로 독자적인 데이터 공유 모델을 보유하고 이를 제공하는 곳도 있으나 많은 곳에서는 표준적인 모델인 STIX와 TAXII를 지원합니다.
STIX (Structured Threat Information Expression)
그러면 STIX 에서 어떠한 데이터를 주고 받을수 있고 어떤 방식이 사용되는지 알아봅시다. 우선 STIX는 그래프 기반 모델로 노드와 에지가 연결된 그래프 입니다. STIX Domain Objects (SDO)를 정의하고 STIX의 관계는 에지를 정의합니다.
SDO는 첫장에서 알아보았던 12가지의 공격 패턴, 보고서, IP정보, 도구 및 취약점등을 의미합니다. 즉 일반적으로 TI에서 사용되는 개념들로서 SDO를 생성함으로서 STIX는 유연하게 구조화되고 일관되게 데이터를 공유 할수 있게 됩니다.
SDO에 대한 자세한 정보는 아래의 링크를 통해서 알수 있으며 이를 통해서 어떠한 데이터가 정의 될 수 있고 공유 될수 있는지에 대해서 알수 있습니다.
그리고 STIX의 Object가 연결되는 방식을 설명하는 관계가 있습니다. 일반적으로 관계 객체는 STIX Relationship Objects (SROs)를 사용하게 되며 그 이외에 특수한 관계는 ID 참조로서 표시하게 됩니다.
TAXII (Trusted Automated Exchange of Indicator Information)
지금까지 STIX와 TAXII를 통해서 TI를 통한 정보 공유를 위해 어떠한 요소가 있는지 그리고 어떠한 방법이 있는지를 알아 보았다. 그렇다면 실제로 본인의 집이나 서버에 이를 구축해 볼수 없을까 라는 의문이 들것이다. STIX와 TAXII는 프로토콜과 구현체가 이미 많이 공유 되고 있으므로 이를 이용한 다양한 정보 공유 사이트 (Feed)들을 찾을수 있고 이를 통해서 정보를 주고 받으면서 자체적으로 TI를 구축할 수 있다.
물론 Open Source로 공유된 TAXII Client를 이용하여 직접 구축하여 정보를 저장하여 이를 다양한 부분에 응용할 수 있지만 이번 글에서는 기 구축된 TAXII Client를 이용해 보는것을 목표로 해 보겠다.
구축을 하고자 할 경우 일단 STXI/TAXII Client 혹은 Platform이 필요할것이고 여기에 정보를 제공해주는 TAXII Feed들이 필요할 것이다. 이 두가지 모두 구글링을 해보면 다양한 Platform과 Feed들이 있으므로 이를 구축해 보는것을 해보도록 하겠다.
그럼 우선 TAXII 피드를 통해서 무료로 TI정보를 제공해 주고 있는 사이트들에 대해서 알아 보도록 하겠다.
악성 코드용의 TAXII 피드 사이트로 보이나 현재 아래의 URL상에서 Discovery가 정상적으로 되지 않고 사이트가 닫혀 있는것으로 보이며 실질적으로 써볼수 없었기 떄문에 설명은 제외합니다.
접속 정보
Site Description : MalWerewolf
Login : guest/guest
Discovery URL : https://intelfeed.malwerewolf.com/taxii-discovery-service
제공 사이트
https://malwerewolf.com/2016/04/intel-feed-introduction/
ANOMALI 에서 제공하는 TAXII 피드
접속 정보
Discovery URL:
1. TAXII client :https://limo.anomali.com/api/v1/taxii/taxii-discovery-service/
2. STIX/TAXII 2.0 clients: https://limo.anomali.com/taxii
Login : guest/guest
제공 사이트
https://www.anomali.com/platform/limo
Open Source CTI 피드로 STIX 포멧으로 제공 된다. 2018년 3월 25일 시점에서 1,049,132개의 Indicator들을 보유하고 있고 어뷰징, 사이버 범죄 등 다양한 정보를 제공해 주고 있습니다. TAXII의 1.0과 1.1 버전을 통해서 정보가 제공되고 있으며 익명 접속을 제공하므로 별도의 로그인 정보를 넣지 않아도 됩니다.
접속 정보
Login : Anonymous 허용 (별도의 계정 정보 불필요, 만약 입력이 필수인 경우 guest/guest 입력)
Discovery URL : http://hailataxii.com/taxii-discovery-service
제공 사이트
접속 정보
Discovery URL https://otx.alienvault.com/taxii/discovery
Username:(Your API key)
Password: 공백 혹은 아무런 문자 입력
- 위의 Username에는 AlientValut에 로그인 하면 알려주는 API Key를 입력하면 되며 Password는 공백으로 두거나 아무 문자나 입력하면 정상적으로 TAXII를 이용할 수 있다.
이상까지 오픈소스 TI인 STIX와 TAXII에 대해서 알아 보았고 다음번에는 직접 이를 이용해서 정보를 수집하는 방법에 대해서 알아 보고자 합니다. 최종적으로는 수집된 데이터들을 어떠한 방식으로 사용해 볼까 하는 고민을 직접 구현하는것 까지.. 적어 보고자 합니다.
다음글
https://brunch.co.kr/@sokoban/12
https://oasis-open.github.io/cti-documentation/
택시 커뮤니티
https://taxiiproject.github.io/community/
MISP
도커 이미지
https://github.com/xme/misp-docker
설치
https://github.com/harvard-itsecurity/docker-misp
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cti
https://github.com/EclecticIQ/OpenTAXII
https://github.com/yeti-platform/yetihttp://yeti-platform.readthedocs.io/en/latest/installation.html#install-systemd-services
STIX 스펙 정리 문서
TAXII 스펙 정리 문서
https://docs.google.com/document/d/1Jv9ICjUNZrOnwUXtenB1QcnBLO35RnjQcJLsa1mGSkI/edit
https://taxiiproject.github.io/releases/1.0-draft1/TAXII_SampleUsage_November_2012.pdf