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