카테고리 보관물: 네트워크 침해분석

네트워크 침해분석

네트워크 정보 수집

방화벽 허용 로그에는 4계층 기반의 통신 정보 활용이 가능 하다. 네트워크 통신을 주고 받은 IP 주소와 서비스 포트, 프로토콜, 통신량(byte) 등 활용이 가능 하다.

앞서 로그와 프로세스 정보 분석을 통해 공격 받은 시스템을 분석하는 방법을 살펴 보았다. 공격이 발생한 시스템이 확인되면 사고가 발생한 시간과 사고 발생 IP 주소를 키워드로 네트워크 통신 내역을 추적한다. 방화벽 허용 로그 검색을 통해서 공격 경로를 분석 한다. 다음은 네트워크 방화벽 허용 로그다.

Sep 25 19:02:42 192.168.0.1 %ASA-6-302015: Built outbound UDP connection 35484054 for outside:10.0.1.127/137 (10.0.1.127/137) to inside:10.0.1.124/137 (10.0.1.124/137)
Sep 25 19:04:45 192.168.0.1 %ASA-6-302016: Teardown UDP connection 35484054 for outside:10.0.1.127/137 to inside:10.0.1.124/137 duration 0:02:02 bytes 150
Sep 25 19:10:20 192.168.0.1 %ASA-6-302015: Built outbound UDP connection 35484817 for outside:10.0.1.127/138 (10.0.1.127/138) to inside:10.0.1.124/138 (10.0.1.124/138)
Sep 25 19:12:22 192.168.0.1 %ASA-6-302016: Teardown UDP connection 35484817 for outside:10.0.1.127/138 to inside:10.0.1.124/138 duration 0:02:01 bytes 201
Sep 25 19:13:02 192.168.0.1 %ASA-6-302013: Built inbound TCP connection 35485033 for outside:192.168.0.118/51879 (192.168.0.118/51879) to inside:10.0.1.124/80 (10.0.1.124/80)
Sep 25 19:13:02 192.168.0.1 %ASA-6-302014: Teardown TCP connection 35485033 for outside:192.168.0.118/51879 to inside:10.0.1.124/80 duration 0:00:00 bytes 0 TCP Reset-I
Sep 25 19:13:02 192.168.0.1 %ASA-6-302013: Built inbound TCP connection 35485035 for outside:192.168.0.118/51879 (192.168.0.118/51879) to inside:10.0.1.124/80 (10.0.1.124/80)
Sep 25 19:13:02 192.168.0.1 %ASA-6-302014: Teardown TCP connection 35485035 for outside:192.168.0.118/51879 to inside:10.0.1.124/80 duration 0:00:00 bytes 0 TCP Reset-I
Sep 25 19:13:03 192.168.0.1 %ASA-6-302013: Built inbound TCP connection 35485036 for outside:192.168.0.118/51879 (192.168.0.118/51879) to inside:10.0.1.124/80 (10.0.1.124/80)

수집한 방화벽 허용 로그에서 공격자 IP정보를 검색 후 접근한 시간과 통신 내역을 확인한다. 방화벽 로그에서 통신에 사용된 포트와 통신 시간, 통신량(byte) 정보를 확인한 수 있다. 이 정보는 공격자가 얼마나 많은 데이터 통신을 했는지 추축하는데 사용된다. 만약 FTP 통신을 통해 대용량의 통신을 주고 받았다면 자료 유출이 발생했을 가능성이 있다.

공격자가 현재 활동을 하고 있다면 방화벽 세션 정보를 확인해서 통신을 시도하고 있는 모든 시스템 IP 주소도 확인해 볼 수 있다. 다음은 시스코 방화벽에서 확인한 현재 접속한 세션 정보다.

TCP out 172.18.0.175:1861 in 10.0.0.34:80 idle 0:00:30 Bytes 815 flags UIOB
TCP out 172.19.0.68:33059 in 10.0.0.48:80 idle 0:17:23 Bytes 238 flags UfIB
TCP out 172.20.0.151:1049 in 10.0.0.48:80 idle 0:20:34 Bytes 206 flags UfIB
TCP out 172.21.0.103:23132 in 10.0.0.48:80 idle 0:02:08 Bytes 238 flags UfIB
TCP out 172.16.0.188:3375 in 10.0.0.22:80 idle 0:01:04 Bytes 4564 flags UIOB
TCP out 172.16.0.188:3374 in 10.0.0.22:80 idle 0:01:04 Bytes 24638 flags UIOB
TCP out 172.16.0.188:3373 in 10.0.0.22:80 idle 0:01:04 Bytes 9557 flags UIOB
TCP out 172.17.0.230:25 in 10.0.0.33:4232 idle 0:00:52 Bytes 0 flags saA
TCP out 172.22.0.47:1080 in 10.0.0.48:80 idle 0:02:38 Bytes 256 flags UfIB
TCP out 172.23.0.36:36474 in 10.0.0.48:80 idle 0:29:44 Bytes 256 flags UfIB

공격자의 침투 경로를 분석하다 보면 방화벽에 남아 있는 정보로는 정보가 부족하다. 예를 들어 앞서 FTP 통신을 통해서 데이터를 보냈다는 사실은 방화벽 로그를 이용해 확인 할 수 있다. 하지만 어떤 파일이 전송되었는지, 공격자가 접속한 계정 정보가 무엇인지, 몇 개의 파일을 가져갔는지 정보는 알 수 없다.

특히 웹 서버처럼 다양한 변수를 사용하는 경우에는 공격 경로 파악하는데 상세 통신 내역이 반드시 필요하다.

분석에 필요한 정보는 웹 어플리케이션 방화벽이나 침입탐지 시스템에서 일부 확인이 가능하지만 전체 통신 내역을 확인하려면 모든 세션 정보를 수집해야 한다. 이 경우 패킷 수집 솔루션을 활용하지만 전체 패킷을 수집하기 때문에 분석할 정보가 상당히 많다.

전체 패킷을 수집하지 않아도 세션 정보로도 공격자의 경로 추적은 가능하다. Bro-IDS 프로그램은 오픈 소스 기반으로 네트워크 통신 분석 프로그램이다. 오픈 소스 프로그램에 대한 설명과 간단한 설치 가이드는 별첨 문서를 참고 하자.

세션[1] 분석 솔루션은 어플리케이션 통신 내역을 모두 수집할 수 있다. 분석가가 공격 경로를 파악하는데 필요한 정보를 제공한다. 다음은 웹 통신 내역을 수집 분석한 로그 샘플이다. URI를 포함해 웹 링크 횟수 및 참조 정보 등 분석에 유용한 다양한 정보를 제공한다.

그림 웹 통신 분석

다음은 웹 통신 내역을 수집한 후 엑셀을 이용해 URL 접근 내역을 통계로 작성한 결과다.

그림 URL 접근 통계

공격자 IP가 식별이 되었다면 공격자 IP를 검색 키워드로 URL 목록을 추출하고 접근한 통신 내역을 확인할 수 있다. 추출한 정보는 시간 순서대로 정리한 후 공격자 동선을 파악하는데 사용한다.

세션 분석 솔루션에서 제공하는 정보 중 통신 내역에 대한 통계 정보도 유용하게 활용된다. 해킹에 의해 비정상적으로 발생되는 어플리케이션이나 IP 주소를 찾아내는데 활용할 수 있다. 다음 그림을 보자.

그림 네트워크 통신 통계

공격자 IP가 식별 되었다면 좀더 쉽게 통신 내역을 분석할 수 있지만 공격자 IP를 식별해야 하는 경우에는 이러한 통계 정보를 활용하면 도움이 된다.

주로 많이 사용되는 통신 포트나 IP 주소를 제외하고 의도하지 않게 사용되고 있는 통신 포트에 주목하자. 악성코드 감염에 의한 현상일 수 있다.

주기적으로 해당 정보를 가공 활용한다면 내부에서 트래픽을 많이 사용하는 IP나 서비스에 대해 식별이 가능하고, 어떤 IP로 사용자 요청이 집중되는지 수치를 통해 확인 가능하다.

용도에 따라 다양하게 활용이 가능하다.

  • 내부 서비스 포트 사용 현황
  • 가장 많이 접근하는 도착지
  • 가장 적게 접근하는 도착지
  • 서비스 통계 현황
  • 프로토콜 비율
  • 패킷 flag별 비율

세션 분석 기반의 솔루션에서 수집할 수 있는 정보를 살펴 봤다. 상세한 통신 정보를 수집하고 공격 경로 분석에 활용하는 것이 핵심이다.

네트워크 기반의 상용 보안 제품도 애플리케이션 분석을 기반으로 이상 행위에 대한 탐지 및 차단 기능을 제공한다.

경우에 따라서 네트워크 상에 주고 받은 모든 패킷을 수집해 위협과 관련된 이상 행위를 찾아내야 할 경우가 있다. 풀 패킷(Full Packet) 파일을 분석하려고 하면 먼저 그 양에 한번 놀라고, 어디서 부터 시작해야 할지에 한번 더 막막함을 느끼게 된다. 이는 어마어마한 양의 네트워크 패킷을 처음부터 끝까지 모두 보려 하기 때문이다. 풀 패킷 분석을 한다고 해서 모든 패킷을 하나하나 다 분석할 필요 없다. 앞서 이벤트 분석 방법론에서 언급했던 것과 마찬가지로 필요한 패킷을 선별적으로 분석하면 된다. 필요한 경우 추가 분석을 진행하면 된다. 모든 패킷을 분석하는 부담감을 버리길 바란다.

선별적으로 이벤트를 분석하기 위해서는 먼저 분석 대상과 분석 범위에 대해서 정의해야 한다. 분석 범위의 기준은 여러가지가 있다. 우리는 이번 장에서 분석 범위의 기준을 비 정상 범위의 대상으로 지정하여 분석하는 방법을 살펴 볼 것이다.


[1] 세션(session)  [IT용어] ① 망 환경에서 사용자 간 또는 컴퓨터 간의 대화를 위한 논리적 연결. (출처 네이버)