728x90
반응형


다양한 오픈소스 솔루션들 혹은 개발 언어등에 대해서 교육 환경을 제공해 주는 사이트로 katacoda 라는게 있다. 

처음 나오는 복잡한 솔루션에 대한 교육을 엔지니어나 인터넷에 제공해야 하는경우 천천히 따라하면서 할수 있도록 제공해 주는 사이트이다. 가장 좋은 점은 도커 등을 통해서 직접 개발환경이 셋팅된 환경을 제공하면서 교육 자료를 풀어 나갈수 있기 때문에 바로 실습이 가능하면서 교육이 가능한 점이 큰 강점으로 보인다.


솔직히 처음 접속했을때에 어떤 사이트이지 하는 생각만을 가지고 접속을 해 보았는데 상당히 많은 기능을 제공해 주고 있고 또한 내가 직접 교육 자료를 만들수도 있었다. 




접속 사이트

https://www.katacoda.com/




무료로 제공되고 있는 코스들  





본인이 접속한 강의의 진도율 측정 (코스별로 제공)




교육 환경의 구축 


가입을 하게 되면 교육 환경을 본인이 구축할수 있도록 프로그램을 제공한다. 

https://www.katacoda.com/profile/create-first-scenario/cli 에서 프로그램을 다운로드 하면 되며 간단하게 아래의 명령어를 통해서 교육 환경 파일들을 생성 할수 있다.

$katacoda create scenario

위의 명령어를 내리게 되면 아래와 같이 순서로 진행이 이루어 진다.


katacoda create scenario

Creating New Katacoda Scenario. Please complete the following details to generate scenario template.


Friendly URL (katacoda.com/username/friendly-url): katacoda.com/sokoban/docker

-> katacoda 내에서 노출되는 URL을 선택한다. 가입할때 선택한 이름 뒤에 본인이 노출하고자 하는주소를 기입


Scenario Title: docker-compose #1

-> 타이틀명


Description: docker-compose #1

-> 설명


Environment ImageID (Available environments at https://katacoda.com/docs/scenarios/environments): (docker) docker

-> katacoda의 실습환경에서 제공해주는 도커 이미지 ID를 입력한다. (위의 주소에서 찾을수 있고 아래에 첨부해 두었다.)


Scenario Layout (Available layouts at https://katacoda.com/docs/scenarios/layouts): (terminal) Terminal

-> 실습환경에 대한 레이아웃이다. ( 위의 주소에서 찾을수 있다.)


New Scenario Created: katacodacomsokobandocker

Created index.json, step1.md, step2.md, step3.md, intro.md, finish.md


Complete your content and when ready, push the changes to your configured Git Repository.


  모든 과정이 끝나고 나면 폴더에 교육환경용의 파일들이 step별로 생성된것을 볼수 있을것이고 교육 내용을 해당 파일들에 추가하면 된다.


실제로 반영을 하고 싶다면 git을 이용해서 배포 할수 있다. 우선 관리를 git을 통해서 하겠다고 하면

 git에 자동으로 저장소를 생성해 주게 된다. 모든 교육 환경 파일들은 아래의 git을 통해서 관리 된다.




이제 실제로 교육환경을 반영하고자 한다면 위의 git에 교육 내용을 넣은 다음 자신의 profile에서 적용하기를 눌러 주면 간단하게 적용이 되고 교육 환경이 생성된 것을 볼수 있다.






728x90
반응형
728x90
반응형

 지금까지 간단하게 STIX와 TAXII에 대해서 그리고 이를 제공해 주는 사이트들에 대해서 알아 보았다. 그렇다면 이제는 직접 이러한 피드 사이트들을 이용해서 정보를 수집하고 이를 활용하는 방법에 대해서 간단하게 알아 보겠다. 

  직접 구축하여 정보를 수집하고 이를 가공하고 여러가지를 적용하는게 가장 좋은 방법일수도 있지만 본글에서는 간단하게 솔루션 형태로 사용할 수 있는 솔루션에 대해서 알아보겠다. 나머지는 본인들이 어떻게 구축할 건지를 고민해 보고 본인의 사용환경에 맞도록 구성하기를 바란다.


STAXX

  STAXX는 ANOMALI라는 곳에서 제공하는 무료 STIX, TAXII 플랫폼이다. STAXX는 VM의 형태로 제공되고 있고 구동을 위해서는 VMWare 혹은 Virtual BOX가 필요하다. 자세한 설치는 아래의 링크를 통해서 다운 받고 난 이후 설명서를 따라하면 쉽게 설치가 가능하므로 여기서 더이상 설명하지는 않는다.


https://www.anomali.com/platform/staxx


 

 손쉽게 다운로드 받고자 하는 분들을 위해서 아래에 링크를 첨부하지만 가급적이면 해당 사이트에 등록한 이후에 직접 다운로드 받으시기를 추천합니다.

https://anomali.cdn.rackfoundry.net/files/eng/AnomaliStaxxv3.zip


 VirtualBOX를 이용해서 다운로드 받은 이미지를 마운트 하고 실행하면 아래와 같이 접속을 할수 있다. 기본적으로 anomali 계정을 이용하여 접속하도록 되어 있는 CentOS 7버전이다.


  사용 설명서의 링크는 아래와 같다.

https://update.anomali.com/staxx/docs/Anomali_STAXX_Installation_&_Administration_Guide.pdf



  이미지는 STAXX와 관련된 모든게 시작과 동시에 실행되도록 되어 있으므로 별다른 설정은 할 필요 없이 로그인시에 안내되는 https://<IP Address>:8080으로 접속만 하면 된다. 로그인을 하라는 화면이 노출되고 로그인을 하면 아래와 같은 대시보드를 볼수 있다.


  물론 최초 로그인시에는 위의 화면 보다는 적은 양의 정보만이 노출될것이다. 최초 설치시에 ANOMALI에서 기본적으로 제공해 주고 있는 Free TI Feed인 Limo만이 설정되어 있는 상태이기 떄문이다. 

  그렇다면 이전에서 알아 보았던 Free TI Feed를 추가해 보도록 하겠다. 

  설정창으로 진입하게 되면 SITES를 추가할수 있는 화면을 볼수 있고 여기서 ADD Site를 누르면 아래와 같이 새로운 사이트를 추가할수 있다. 이전에 설명했던 AlienVault와 Hali를 추가해 보자, 설정은 간단하게 설명과 Discovery URL을 넣은 이후 적절한 인증 방식을 적어 주면 된다. AlienVault의 경우 발급받은 API를 ID에 넣어주고 패스워드는 아무문자나 넣어주면 된다.




  아래와 같이 두개의 Free TI Feed가 추가해 보았다.



  이렇게 추가를 하고 나면 각각의 Feed에서 몇일치의 데이터를 가져와서 보관할것인지를 설정할 수 있고 적절하게 이를 설정해 주면 끝이다. 그렇다면 이제 IP라던가 도메인정보를 검색할수 있는 ACTIVITY 화면에 대해서 간단하게 알아 보겠다.


  위의 화면은 STAXX에서 제공해주는 Feed 검색 화면으로 Full Text Search를 지원한다. 찾고자 하는 정보를 입력하는것으로 입력된 IP나 도메인 혹은 제공되는 다양한 정보에 부합하는 결과가 노출될 것이다. 다만 Indicator가 제한적으로 제공되므로 앞선장에서 설명했던 12가지 중에서 주로 IP 정보와 도메인 정보가 많다. 하지만 다양한 정보에 대한 링크들이 제공되므로 이를 잘 활용한다면 다양한 정보를 구할수 있다.


  추가적으로 위의 검색 화면에서 해당 IP정보를 클릭할 경우 아래와 같이 STAXX에서 제공하는 상세한 위협 정보를 검색 할수 있다. 다만 제한된 버전이므로 이를 업그레이드 해야지 더 자세한 정보를 볼수 있게 된다. 


  이제 대략적으로 정보가 수집되었고 이를 통해서 다양한 악성코드의 해시나 유포지의 IP, 피싱 사이트 주소 등을 저장하는 환경이 구축되었다고 할수 있을 것이다. 그럼 이제 이걸 어떻게 활용 할수 있지 ? 라는 의문이 들수 있다. 


  구글을 사용하는 회사에서 구글 피싱 사이트의 접속을 유도하는 메일이 들어온다면 어떻게 대응할 것인가 ? 혹은 구글의 세이프 브라우징에서 노출되는 악성 코드 유포지를 사전에 어떻게 대응할 수 있을까 ? 아마도 이런 질문을 가진 사람들이 많을 것이다. 그럼 이 질문에 대한 답변을 해보고자 한다.

  


  STAXX는 Free라고 되어 있지만 나름대로 STIX와 TAXII에 대한 정보를 잘 수집하여 제공해 주는 플렛폼으로서 REST API를 통한 정보를 받아 볼수 있다. 물론 위의 링크의 설명서에 상세한 사용법이 들어 있고 정보를 추가하는 방법과 외부로 가져오는 방법에 대해서 설명되어 있으나 여기서는 간단하게 어떻게 정보를 가져올수 있는지에 대해서만 알아 보고자 한다.


  우선 해당 이미지가 동작중인 IP에 접속할수 있도록 한 이후에 아래와 같이 API 사용을 위한 로그인 정보를 제공한다. 

curl -kv -H 'Content-Type: application/json' 'https://10.0.1.17:8080/api/v1/login' -d '{"username":"admin", "password":"<password>"}'

  

  위의 명령어를 입력하면 간단하게 접속을 위한 token 정보를 제공해 주고 이를 통해서 접속하여 정보를 조회 할수 있게 된다.


  그렇다면 token을 이용해서 phish url정보중에서 최근 7일치 정보중 가장 위협도가 높은 것들을 대상으로 20개만 가져 오는 질의문을 짜 보도록 한다. 아래의 query는 설명서에서 상세하게 찾을수 있으므로 여기서는 간단하게 예제만을 수록한다.


curl -kv -H 'Content-Type: application/json' 'https://10.0.1.17:8080/api/v1/intelligence' -d '{"token":"1f6c5dbe4e93a571bb9cbab604944dba", "query":"itype=phish_url AND date_last>7d AND severity=very-high", "type":"csv" , "size":20}'


  가져오는 방식을 csv 방식으로 선택하였기 때문에 쉼표로 나누어진 정보를 받아 볼수 있다. 현재 지원하는 정보는 csv와 json형식으로 정보를 가져 올수 있다. 


   간단하게 위와 같은 REST API를 통해서 정보를 가져온 다음 이를 방화벽 혹은 스위치등에 입력하여 자동으로 일별로 혹은 시간별로 차단 할 수 있게 만들수 있을 것이다. 


   그리고 추가적으로 좀더 깊은 사용을 원할 경우에는 STAXX내부에 정보를 저장하는 부분이 PostgreSQL로 개발되어 있으므로 외부에서 직접 여기에 접속한 다음 다양한 쿼리문을 작성한 다음 직접 데이터를 Export할수도 있을 것이다.



  조금이라도 개발을 해본 사람들은 여기까지 설명한 것을 이용해서 다양하게 정보를 가져오고 사용할 수 있을 것이라고 생각한다.


  직접 개발을 하는것은 아니지만 공개되어 있는 TI 플렛폼을 직접 구성해 보고 이를 이용해서 다양한 정보를 가져오고 적용할수 있는 방법에 대해서 알아 보았다. 

  물론 여기에 서술된  Free TI Feeds의 경우 완벽하게 TI 정보를 제공해 준다고 보기엔 힘들수도 있다. 하지만 하지 않는것보다는 하는게 더 낫다고 할 수 있지 않을까... Feed만 추가해 나간다면 위의 정보들은 더욱 더 완벽한 자료를 사용자들에게 제공해 줄수 있고 이를 통해서 본인만의 TI를 구축해 나갈수 있지 않을까라고 생각한다. 이제 직접적인 플렛폼을 구축하는 방법까지 알아 보았고 어떻게 하면 최적으로 기업에 맞게 TI를 적용 할수 있는지에 대해서 마지막으로 알아 본 이후 TI의 구축에 대한 글은 마무리 하고 수집된 정보를 이용하여 다양한 머신러닝 기법을 적용하여 최적화된 활용법에 대해서 고민해 보고자 한다.


% PS. STAXX의 경우 Free라고 명시되어 있으나 어떤 라이센스의 영향에 있는지를 확인하지 못하였다. 만약 기업에서 사용할 경우 이를 꼭 확인하고 사용하시기를 권고 드립니다.

% PS. 최소한 1주일에 한개의 글은 적고자 하고 있습니다만 여유가 되지 않는 경우가 종종 있습니다. 제 글을 읽어 주시는 모든 분들께 감사드리고 이 글을 통해서 하시는 일에 도움이 되셨기를 바라겠습니다. 특히 도움이 되셨다면 꼭 적용해보신 부분에 대해서 피드백을 주신다면 더 큰 힘이 될수 있을것 같습니다.



728x90
반응형
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

+ Recent posts