::: 정보보안 :::

CRITs (Collaborative Reseach Into Threats)

곰탱이푸우 2021. 6. 7. 11:49

1. 소개

1.1. 개요

CRITs는 악성코드 기반의 위협 데이터 관리와 공유를 위한 '위협과 관련 된 공동 연구 (Collaborative Reseach Into Threats)' 플랫폼으로 오픈소스이다.

 

STIX, TAXII, ATT&CK을 개발한 MITRE에서 개발한 툴로서, 해당 표준과 가장 잘 호환되는 것으로 알려져 있다.

 

약 2년 전이 가장 최신 릴리즈로 MISP에 비해 릴리즈는 활성화 되어 있지 않은 편이다. 

 

공식 사이트

 

CRITs: Collaborative Research Into Threats

Extend CRITs with Services Develop additional capabilities using the Services Framework to combine CRITs with third-party and home-grown intelligence systems. Get started now!

crits.github.io

GitHub 

 

CRITs

Collaborative Research Into Threats. CRITs has 8 repositories available. Follow their code on GitHub.

github.com

Docker 

 

tmiklas/crits-docker

Docker container builder, fixing issues I found in CRITS repo (Collaborative Research Into Threats - https://crits.github.io) - tmiklas/crits-docker

github.com

 

라이선스는 MIT 이며, MIT 라이선스 명시만 되어 있으면 코드 공개 의무 없이 소스코드 수정 및 서비스 적용이 가능하다. (GPL이나 AGPL이 아니라 그런지 MISP보다 커밋이 적다)

1.2. 특징

기본적인 특징은 다음과 같다.

  • STIX와 TAXII와 연동 가능한 설계 (MITRE 개발)
  • 신뢰성, 심각성 지수 추가 가능
  • CSV, STIX, JSON 포맷 지원

MISP만큼은 아니지만 다양한 OSINT 분석 도구와 연동 가능하다.

 

crits_services

 

crits/crits_services

CRITs Services Collection. Contribute to crits/crits_services development by creating an account on GitHub.

github.com

 

Docker 코드를 확인해보면 내부적으로 다음 도구들을 활용한 것으로 확인된다.

  • MongoDB, Django, Python 
  • OS는 Ubuntu, Debian, Darwin (OSX), FreeBSD, CentOS (RHEL), Fedora 등 지원
  • boto를 통해 Amazon S3와 연동 가능

1.3. 예시

데이터 수집과 활용에 따라 다음과 같은 분석이 가능해진다. (출처 : https://crits.github.io/)

 

2. Docker 셋팅 방법

Production 환경에서는 단계별로 셋팅하거나 Ensible을 활용한 셋팅이 필요하지만, 테스트와 기능 확인이 주 목적이므로 Docker를 이용한 셋팅을 진행한다.

 

https://github.com/crits에 포함 된 DockerFile에는 git clone이 포함되어 있어, 내부망 또는 git clone이 허용되지 않는 환경에서는 MISP와 동일한 문제가 발생한다.

따라서 이러한 경우에는 Docker Hub에서 제공하는 이미 생성 된 Docker 이미지를 사용한다.

 

기본적인 Docker 이미지 실행은 다음 링크를 참고한다. (2021-05-25 현재 3.1 - Stable 4 버전)

 

tmiklas/crits-docker

Docker container builder, fixing issues I found in CRITS repo (Collaborative Research Into Threats - https://crits.github.io) - tmiklas/crits-docker

github.com

 

실행이 완료되면 웹 브라우저를 실행하고 127.0.0.1에 80포트로 접속하면 다음과 같은 로그인 창을 확인할 수 있다.

 

초기 로그인 계정 정보는 admin와 pass1PASS123!이다. (로그인 직후 패스워드 변경을 권장한다.)

 

3. 기능 분석

3.1. 초기 화면

로그인하면 다음과 같은 화면이 출력된다.

좌측 상단의 톱니바퀴를 클릭하면 다양한 메뉴를 확인할 수 있다. MISP보다 가독성이 훨씬 나은 것을 확인할 수 있다.

3.2. 기능 확인

이제 무엇을 해야할지 막막하다면 당연하다. 오픈소스는 일반적으로 다음과 같은 공통 특징이 있다.

  • UI/UX 완전 별로 (빠른 기능 파악은 거의 불가능)
  • 매뉴얼 허접 (삽질 필요)
  • 보안 오픈소스는 생각보다 자료가 많이 없음 (삽질 필요)
  • 한글화는 진즉에 포기 (영어 공부 열심히)

매뉴얼은 다음 페이지를 참고한다. (w. 구글 번역) 

 

crits/crits

CRITs - Collaborative Research Into Threats. Contribute to crits/crits development by creating an account on GitHub.

github.com

 

이제 뭘해야 하지? (I can log into the interface, now what?) 싶을땐 아래 문서를 참고한다. (이 부분은 MISP보다 마음에 든다)

 

crits/crits

CRITs - Collaborative Research Into Threats. Contribute to crits/crits development by creating an account on GitHub.

github.com

4. 결론

MISP는 Docker Hub에 있는 Docker 이미지도 빌드와 초기 설치를 해야 하는데, CRITs는 Docker 이미지가 있어서 생각보다 쉽게 진행할 수 있었다. 

 

CRITs는 MongoDB를 사용하지만 문서에 수십만개가 최적이라고 하니 대량 처리는 좀 아쉬운 부분이 될 것 같다.

  • Good for 10's of thousands of binaries, emails, indicators, and PCAPs (출처 : https://github.com/crits/crits/wiki/Production-grade-CRITs-install)
  • MISP도 MySQL 기반이라 대량의 데이터 처리는 쉽지 않을 것 같다 (MISP는 다수의 MISP를 띄워서 데이터 공유와 용량 한계를 극복하는 것 같다)

CRITs는 MISP와 다르게 장점과 단점이 명확한 편이다. 최종적으로 CRITs 대신 MISP를 사용하기로 했는데, 이유는 다음과 같다.

  • CRITs는 MISP보다 직관성이 좋고 MITRE가 정의한 STIX, MAEC, ATT&CK 등과 가장 잘 호환되는 것이 장점이지만, 그 외에 장점을 찾기는 힘들다.
  • MIT 라이선스라 그런지 커밋이 적은 편이다. 최종 커밋이 약 3~4년전인 것을 보면, 기능 개선이 빠르게 되지 않는 것으로 보인다.
  • 같은 이유인지 모르겠지만 MISP보다 자료도 더 적은 편이다.
  • MISP는 자체 MISP 클러스터 구축이나 TheHive로의 확장이 가능한데, CRITs는 관련 정보를 찾기 어렵다.

 

이러한 이유로 당분간 CRITs보다는 MISP에 집중할 계획이다.