첫번째 CaseStudy 를 소개한다. 어떤 것을 소개할까 하다, 일반 기업에서 발생한 사례 하나를 소개해
보고자 한다. 흔히 요새는 알수없는 트래픽이 급격히 증가하면, 이거 악성코드에 의한 것이 아닐까 하고
생각하는 경우가 많다. 과거와는 달리 악성코드에 의한 트래픽 영향을 겪어 봐서 그런가 이런 의심부터
시작하고 분석을 거기에 초점을 맞추는 경우가 있다.
이번 Case도 누가 해킹하여 발생한 것이 아니냐, 악성코드를 심어 놓은 것이 아니냐 하는 의견이 있었다.
일단 분석대상인 이 패킷에는 다음과 같은 다양한 트래픽이 포함되어 있었다.
- ARP
- NetBIOS
- UDP
- 일반 사용 트래픽 (웹 과 같은)
그중에서도 가장 유독 눈에 띄게 관찰되는 부분이 UDP 였다. 그런데 증상은 항상 지속적으로 나타나지
않는다는 점이며, 일시적으로 나타났다 사라진다고 한다. 사실 지속적 증상없이 이렇게 일시적으로만
나타나는 경우가 분석에 제일 곤란한 부분이다.
패킷파일은 우선 와이어샤크로 분석을 진행했다. Protocol Hierarchy Statistics 로 발생한 트래픽을 살펴보니
UDP 의 사용이 가장 컸고, 그래프를 만들어 살펴봐도 위 그림과 같이 UDP 가 차지하는 비중이 꽤 높게 나타났다. 전체적인 관점에서 보다보면 이 외에도 다른것 까지도 다 의심의 범위에 속하긴 하였지만,
여기서는 일단 범위가 UDP 로 조금은 좁혀진 상태에서 이야기 하도록 한다.
UDP 를 살펴보니 두가지 종류 형태의 UDP가 관찰되었다.
- DATA 가 256 바이트인 UDP 이며 255.255.255.255 로 브로드 캐스트 주소 (목적지)
- Payload 를 1400 바이트로 채운 UDP
패킷파일 화면 일부를 보면 아래와 같이 이상하게 보일만큼 단시간내에 많은 내용이 있었다.
워낙에 많은 데이타 이다 보니 주욱 대충 살펴보면 DATA 상에서는 의심스러운 문자열 같은건 발견하지 못했다.
여러분도 아시겠지만, 데이터가 아주 큰 경우는 세밀하게 분석하자면 한도 끝도 없다. 전체적인 관점에서
먼저 살피는데, 알수없는 문자열들의 조합으로만 이루어져 있어 눈에 잘 들어오지가 않는다. 그런데 필자의
눈에 하나 잡힌 것이 있었다. 바로 아래와 같은 문자열이다.
헤더 첫 부분에서 JFIF 라는 문자열이다. 검색해 보았더니, JPEG File Interchange Format 이란다. 그럼 이미지 형태의 데이터가 아닐까 추측을 해 보았다.
왜 이렇게 더 생각할 수 있었던 이유는 이 패킷을 전달받은 곳이, 하드웨어적인 영상을 찍는 업체였기 때문이다. 그럼 느낌이 오지 않는가 ?
- 일시적으로 UDP 패킷이 크게 증가하는데,
- UDP 페이로드가 JFIF 관련한 것이고
- 패킷덤프를 뜬 곳이 이런 영상 관련 업체라는 점.
일단 UDP Follow Stream 을 통해 연결된 패킷을 모으고, 해당 데이터를 바이너리로 저장해 보았다. 물론, UDP 와 관련한 헤더는 수동으로 제거 시켜버렸다. 그리고 이미지 뷰어를 통해 살펴보니, 아래와 같은 이미지가 나타난다.
아니, 이건 무엇인가? 얼핏봐도 이미지 파일인걸로 추정해 볼 수 있으며, 사무실 형태의 윤곽이 잡힌다. 문제해결에 실마리가 될 결정적 단서가 될수도 있는 것이다. 전달된 UDP 데이터를 완벽하게 복원하지는 않았지만, 대략 복구해 낸 것으로도 이미지임을 알 수 있었다. 이렇게 분석해 낸 정보로 정리했는데, 확인 결과
개발자들의 테스트가 사무용 네트워크에서 일어나며 트래픽이 크게 발생된 것이었다.
즉, 발생된 내부에서는 내부 개발자들에 의한 일시적인 트래픽 증가로 의심하지 않았고,
다른 분석가들에 의해 내부 해킹되어 악성코드가 심어져 있어 통신에 의해 일시적으로 공격명령을 내린다는
형태의 가설이 설정되어 있었던 것이다. 처음 분석 의뢰를 받았을때, 그런 사전 정보를 기준으로 하다보니
혼란스러운 부분이 있었다. 결과의 원인을 해킹/악성코드 이슈로 정의해 놓고 분석을 하다 보니, 모든 관련된
것을 그쪽으로 맞춰 생각하기 쉬어질 수 있다.
실제로 분석을 하다 보면 내부의 원인에 의해 발생되는 문제가 크다. 해당 담당자들이 내부에서 발생되는
트래픽을 정확히 이해하고 있다면 좀더 빠른 접근을 통해 해결될 수 있었을 텐데, 아쉬운 부분이기도 하다.
내부적으로 우선 발생한 것이 아닌지 면밀한 조사가 선행되어야 분석이 빨라지게 된다. 의뢰받아
분석을 하는 분석가 입장에서는 그곳의 네트워크 구성과, 어떤 형태의 트래픽이 발생되는지 등등의 형태를
모르기 때문이다. 그러므로 처음부터 분석해 나가며 하나씩 다 파악해야 하다보니 분석이 더디어 지게 된다.
물론, 특징적인 형태가 한눈에 보인다면 쉽게 해결될 수도 있겠지만, 엄청난 트래픽 데이터와 싸우려면
여간 지치는게 아니다. 하여튼 이번 CaseStudy 사례는 기업에서 급격히 발생한 UDP 트래픽이 있었고,
초기에 다른분석가들에 의해 악성코드에 의한 것으로 좁혀졌지만, 실제 패킷 포렌직을 통해서 확인해 보니
내부 개발자들에 의해 발생된 트래픽으로 확인이 된 것이다.
어떻게 첫번째 CaseStudy 가 여러분들에게 도움이 되었는지 모르겠다.
[참고]
1. JPEG File Interchange Format