728x90
반응형

 앞에서 TI에는 어떤 데이터가 있고 어떠한 요소가 구축에 필요한지를 살펴 보았다면 이제는 실제로 Open Source를 이용하여 직접 TI를 한번 구축해 볼수는 없을까? 라는 고민을 해보고자 합니다. 실제로 Git이나 여러곳에서 소스나 데이터를 얻을수 있으며 많은 문서를 참고할수 있으며 이를 통해서 손쉽게 TI를 공유 하는 환경을 구축하는것이 가능합니다. 

  다만 앞에서 살펴본 STIX에서 정의하는 모든 항목을 제공하는 경우는 여기서 다루지 않기 때문에 이에 대해서는 추가적인 학습을 하는것이 필요해 보입니다.



오픈소스로 제공되는 TI 공유 플랫폼


  미국 국토안보부인 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 

   STIX (Structured Threat Information Expression)

  그러면 STIX 에서 어떠한 데이터를 주고 받을수 있고 어떤 방식이 사용되는지 알아봅시다. 우선 STIX는 그래프 기반 모델로 노드와 에지가 연결된 그래프 입니다. STIX Domain Objects (SDO)를 정의하고 STIX의 관계는 에지를 정의합니다. 

  SDO는 첫장에서 알아보았던 12가지의 공격 패턴, 보고서, IP정보, 도구 및 취약점등을 의미합니다. 즉 일반적으로 TI에서 사용되는 개념들로서 SDO를 생성함으로서 STIX는 유연하게 구조화되고 일관되게 데이터를 공유 할수 있게 됩니다. 

  SDO에 대한 자세한 정보는 아래의 링크를 통해서 알수 있으며 이를 통해서 어떠한 데이터가 정의 될 수 있고 공유 될수 있는지에 대해서 알수 있습니다.

http://docs.oasis-open.org/cti/stix/v2.0/cs01/part2-stix-objects/stix-v2.0-cs01-part2-stix-objects.html


  그리고 STIX의 Object가 연결되는 방식을 설명하는 관계가 있습니다. 일반적으로 관계 객체는 STIX Relationship Objects (SROs)를 사용하게 되며 그 이외에 특수한 관계는 ID 참조로서 표시하게 됩니다. 


TAXII

  TAXII (Trusted Automated Exchange of Indicator Information)




Open Source TI의 구축

   지금까지 STIX와 TAXII를 통해서 TI를 통한 정보 공유를 위해 어떠한 요소가 있는지 그리고 어떠한 방법이 있는지를 알아 보았다. 그렇다면 실제로 본인의 집이나 서버에 이를 구축해 볼수 없을까 라는 의문이 들것이다. STIX와 TAXII는 프로토콜과 구현체가 이미 많이 공유 되고 있으므로 이를 이용한 다양한 정보 공유 사이트 (Feed)들을 찾을수 있고 이를 통해서 정보를 주고 받으면서 자체적으로 TI를 구축할 수 있다. 

  물론 Open Source로 공유된 TAXII Client를 이용하여 직접 구축하여 정보를 저장하여 이를 다양한 부분에 응용할 수 있지만 이번 글에서는 기 구축된 TAXII Client를 이용해 보는것을 목표로 해 보겠다.

  구축을 하고자 할 경우 일단 STXI/TAXII Client 혹은 Platform이 필요할것이고 여기에 정보를 제공해주는 TAXII Feed들이 필요할 것이다. 이 두가지 모두 구글링을 해보면 다양한 Platform과 Feed들이 있으므로 이를 구축해 보는것을 해보도록 하겠다.


 그럼 우선 TAXII 피드를 통해서 무료로 TI정보를 제공해 주고 있는 사이트들에 대해서 알아 보도록 하겠다. 


1. MalwareWolf

  악성 코드용의 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/


.

2. Limo

 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



3. HailaTaxii


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


제공 사이트

http://hailataxii.com/



4. AlienVault

접속 정보

Discovery URL https://otx.alienvault.com/taxii/discovery

Username:(Your API key)

Password: 공백 혹은 아무런 문자 입력


 - 위의 Username에는 AlientValut에 로그인 하면 알려주는 API Key를 입력하면 되며 Password는 공백으로 두거나 아무 문자나 입력하면 정상적으로 TAXII를 이용할 수 있다.






결론

  이상까지 오픈소스 TI인 STIX와 TAXII에 대해서 알아 보았고 다음번에는 직접 이를 이용해서 정보를 수집하는 방법에 대해서 알아 보고자 합니다. 최종적으로는 수집된 데이터들을 어떠한 방식으로 사용해 볼까 하는 고민을 직접 구현하는것 까지.. 적어 보고자 합니다.



참고 사이트

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 스펙 정리 문서

https://docs.google.com/document/d/1IvkLxg_tCnICsatu2lyxKmWmh1gY2h8HUNssKIE-UIA/edit#heading=h.axjijf603msy



https://taxiiproject.github.io/releases/1.0-draft1/TAXII_SampleUsage_November_2012.pdf

728x90
반응형

'보안 > Threat Intelligence' 카테고리의 다른 글

Threat Intelligence #1  (0) 2018.06.25
728x90
반응형

Why Threat Intelligence ?

 현대 사회에서 사용자들이 사용하는 네트워크는 점점 더 거대해져 가고 있고 더 복잡해지고 있다. 이전의 세대가 단순히 PC 들을 연결하기 위한 근거리 네트워크 였다면 PC들이 연결된 인터넷으로 발전하였고 이제 인터넷은 전세계를 하나로 묶고 있다. 뿐만 아니라 사용자들은 무선망을 이용하여 언제 어디서나 인터넷에 접속하고 정보를 조회 할수 있다.


   네트워크가 거대해 지는 만큼 여기에 접속되는 시스템들 또한 거대해 지고 복잡해 지고 있다. 그만큼 해커들이 공격할 수 있는 대상이 늘어나고 있고 또한 기회도 많아진다는것을 의미할 수 있겠다.


  위협 인텔리전스는 새롭게 나오는 개념은 아니다. 인터넷 초창기에도 공격자들에 대한 정보를 수집하고 이를 분석하고 의미 있는 데이터를 추출하기 위한 다양한 시도들은 많이 있어 왔다. 비록 공격자들의 정보를 제공하는 단순한 영역에 그치는 경우가 많았지만 2000년대 초반부터 활발하게 진행되어 왔다. 그중 아래의 스팸하우스는 스패머들의 정보를 제공하여 실제 보안장비에서 이를 적용하여 사용할 수 있었다.


메일을 보내면서 경험을 한 경우도 있었겠지만 스팸을 통해서 많은 돈을 벌 수 있었던 탓에 스팸은 광범위하게 사용자들에게 보내어졌다. 이를 막기위한 효과적인 수단중 하나로 지금의 IP Reputation 정보에 해당하는 스패머의 정보를 스팸 필터 장비에 추가하여 많은 효과를 거둘수 있었다.

  물론 여기에 그치지 않고 최근에는 스팸하우스에서도 Threat Intelligence 성격의 서비스를 제공하고 있고 이를 통해서 다양한 위협 정보를 제공 받을 수 있다.


Threat Intelligence를 통해서 얻을수 있는것들

  막연하게 위협이 존재하고 이러한 위협 정보를 수집하면 위협 Intelligence에 도달할 수 있을 것인가라고 물어 본다면 이에 대한 답은 Yes도 될 수 있고 No도 될 수 있다. 이는 상황에 따라서 그리고 사용 목적에 따라서 달라질 수 있다는 것을 의미한다. 즉 단순한 평판 DB 수준의 정보만이 필요하며 이를 이용하여 위협을 탐지 하고 제거하고자 한다면 이는 단순한 오픈된 정보를 수집하거나 폐쇄된 정보를 열심히 수집하여 평판 DB만을 구축하는 것으로도 달성 될 수 있다.

  하지만 단지 하나의 요소가 아닌 다양한 요소로 이루어진 서비스에서는 어떻게 적용할 수 있을까 ? 예를 들어 IP 정보를 이용하여 사전 차단이 힘들수도 있는 대단위 서비스 즉 특정 IP의 차단이 불가능한 경우는 얼마든지 있을수 있고 이럴겨우에는 좀 더 상세한 위협 정보를 이용하여 차단을 수행할 필요성이 있다. 


  위협 Intelligence는 이런 경우에 활용 할수 있게 하기 위해서 다양한 정보를 수집하고 이를 복합적으로 제공하는 역활을 해주고 있다고 볼수 있다. 그렇다면 아래에서 위협 Intelligence를 통해서 어떠한 정보를 주로 제공 받을수 있는지 알아 보자..


Threat Intelligence의 정보 구성

1 공격 패턴

공격 패턴은 전략, 기술, 절차인 TTP의 한가지 유형으로서 공격자가 어떻게 목표물에 대한 공격을 수행하는지에 대한 상세한 정보를 제공합니다. 예를 들어 APT 공격이나 피싱 공격의 경우 공격자는 악성코드를 배포하기 위한 지점을 생성한 이후 대상자들을 속이기 위해 잘 만들어진 메일을 공격 대상에게 보내는 방법에 대한 설명을 제공한다.

2 캠페인

공격 대상들의 집합에 대해서 일정 기간동안 발생하는 악의적인 활동이나 웨이브라고 불리는 공격을 설명하는 공격 행동 그룹입니다. 즉 예를 들어 은행권을 공격하는데 이전에 발생한 캠페인들을 활용하여 이를 대응 할 수 있습니다.

3 행동 강령

공격을 예방하거나 대응하기 위해서 취할수 있는 조치들에 대해서 설명한다. 기술적인 내용이 될수도 있으나 직원 교육이나 정책과 같은 수준의 조치를 설명할 수 있습니다. (간단하게 패치를 하거나 방화벽으로 차단하거나 하는 등의 내용이 될 수 있다.)

4 정체성

위협 정보를 생성한 개인, 조직 또는 그룹뿐만 아니라 개인, 조직 또는 그룹의 클래스가 될수도 있으며 나아가서는 피해 대상자 일수도 있다.

5 지시자

사이버 상에서 행하지는 위협 활동을 탐지하는데 사용될 수 있는 패턴이 들어 있습니다. 예를 들어서 신규 취약점에 대한 탐지룰이라던가 랜섬웨어가 배포되고 있을 경우 이를 차단하기 위한 킬 체인이 제공될 수 있습니다.

6 침입 세트

단일 공격자의 행위에 의해서 생성되어진다고 생각되는 공통의 속성을 가진 위협 요소들이나 위협 행동을 의 모음으로 캠페인에서 수집되어 정재되어 수집될수도 있음

7 악성코드 정보

공격자가 공격 대상을 점령하기 위해서 혹은 시스템의 가용성, 무결성을 파괴하거나 정보를 유출하기 위해서 사용하는 악성코드의 정보 

8 관측 데이터

시스템 또는 네트워크에서 관찰 된 정보 (예 : IP 주소).

9 보고서

위협 정보, 위협 정보, 악성 코드 또는 공격 기법에 대한 설명

10 위협 행위자

악의적인 의도로 운영되는 것으로 생각되는 개인, 그룹 또는 조직.

11 도구

공격자가 공격을 수행하는데 사용할 수 있는 도구들 즉 소프트웨어 패키지나 악성 코드들

12 취약점

CVE로 많이 표현되는 시스템이나 소프트웨어에 존재하는 잘못 개발되거나 오류를 발생시키는 지점으로 공격자의 주 목표 중 하나


  위의 항목은 다음에 설명할 위협 Intelligence 정보의 공유를 위해 개발된 STIX에서 공유하고자 정의된 항목들의 정보를 알아 보았다. 단순하게 위협 Intelligence는 한개의 정보를 수집하여 제공되는것이 아닌 위협과 관련된 다양한 정보를 수집하여 제공하고 있다는 것을 쉽게 알수 있다.


  이렇게 제공된 정보를 어떻게 활용하고 어떻게 사용하는지는 여러분들에게 달려 있는 문제라고 생각된다. 단순히 한가지 측면에서 이를 사용할 수도 있고 전사에 위협을 대응하는 목적으로도 충분히 사용될수 있다고 보인다.


  실제로 STIX/TAXII라는 미국 국토안보국에서 개발한 위협 Intelligence 공유를 위한 프레임워크를 설명하면서 자세히 알아보고자 한다.

  Threat Intelligence 의 구성

위협 인텔리전스를 구성하기 위해서는 우선 아래와 같은 요소들을 갖추는것이 필수라고 본다.


1 SIEM 및 로그 처리 시스템

 우선 다양한 Threat Intelligence를 적용해 보기 위한 다양한 정보가 수집되어야 하며 이를 조회/분석 할수 있는 환경이 제공되어야 한다. 일반적으로 SIEM이라고 불리는 Splunk나 ArcSight, QRadar 등이 이러한 것을 도울수 있다. 다만 상용 툴의 경우 대용량 로그를 저장하여 분석하기에 부담이 간다면 ElasticSearch를 이용할 수도 있어 보이며 더 대용량의 로그라면 Hadoop과 Spark등을 이용하여 직접적으로 이러한 환경을 구성하는것이 도움이 될 수 있다.


2 로그의 수집

  SIEM이나 대용량 로그 처리 시스템을 구축하였다면 이제는 다양한 요소에서 로그 혹은 기록을 수집할 때이다. 거대 단위의 기업이 될 수도 작은 단위의 기업이 될 수도 있을 것이고 혹은 인터넷 컨텐츠 제공자 일수도 있을 것이다. 우선은 위협이 되는 요소를 정확하게 적용하기 위해서는 그에 맞는 정보를 수집하여야 하며 이를 위해서는 많은 오픈 소스가 있으며 역시 상용 솔루션도 제공되고 있다. Bro는 간단하게 다양한 정보를 수집할 수 있으며 이외에도 Suricata나 PCAP 라이브러리를 활용한 다양한 오픈소스를 적용해 볼수 있을 것이다.

  수집되는 로그는 OSI Layer 7에서 수집될수 있는 HTTP 접속 정보나 FTP, Telnet등의 정보 등이 될수도 있고 암호화 되어 있는 SSH, HTTPS라면 네트워크 상의 트래픽 정보를 수집하여 이를 활용 할수도 있다.


3 Threat Intelligence 정보

  로그나 정보를 수집하기 위한 저장소를 구축하고 여기에 로그나 정보를 수집하였다면 이제는 Threat Intelligence를 적용하기 위한 1차적인 준비가 완료 되었다고 볼 수 있다. 물론 Threat Intelligence를 정확하게 적용해 보기위해서는 더 많은 준비가 필요하지만 간단하게 사용 할 준비는 되었다고 볼수 있다.

 그럼 이제 Threat Intelligence를 제공해 주는 서비스나 플랫폼을 이용해 볼수 있다. 여기서 플랫폼은 한개 혹은 그 이상의 정보 혹은 피드를 이용하여 구축되어진 시스템을 의미한다. 그리고 Threat Intelligence 제공자는 Open된 정보나 폐쇄된 자료들을 제공해 주는 보안 조직이나 회사를 말한다. 즉 플랫폼에 정보를 제공하는 주체를 제공자로 볼수 있다.



Threat Intelligence Platform 의 주요 기능

- 다양한 유형의 피드 데이터의 수집과 통합

- 데이터 피드 처리 자동화를 통한 상관 관계 분석

- 데이터 처리의 최적화를 통한 실시간 알림등의 행위

- SIEM과 대용량 로그 등과의 통합

- 보고서의 산출


728x90
반응형

'보안 > Threat Intelligence' 카테고리의 다른 글

Free Threat Intelligence #2  (0) 2019.02.24

+ Recent posts