보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

효과적인 웹 해킹 탐지와 Access log 빅데이터 분석 2부

2018.09.05

6,413

 


 

기술지원센터 분석기술팀 이세호


SPiDER TM V5.0은 이글루시큐리티 보안관제 경험과 빅테이터 활용역량이 집약된 통합보안관리솔루션으로 최초탐지부터 로그/네트워크 패킷 분석까지 일원화 된 관제환경구성을 통해 관제업무의 기민성과 효율성을 높이는 동시에 인프라 전반에 대한 가시성을 확보할 수 있다.   


1. 개요

최근 웹사이트 침해사고가 끊이지 않고 발생하고 있다. 이러한 웹사이트 침해사고는 크게 3가지가 있는데 WebDAV 취약점이나 파일 업로드 취약점을 이용해 공격하는 홈페이지 변조, 불특정 다수를 대상으로 무분별하게 공격하는 악성코드 유포, 그리고 마지막으로 디도스 공격이 있다. 또한 최근 암호화폐 거래소 해킹사고에서는 내부 서버 등에서 웹쉘(Webshell)이 여러 개 발견된 것으로 알려졌다. 특히, 일부 웹쉘은 공격일 이전에 심어진 것으로 드러나 실제 해킹 공격은 공지일 보다 이전에 발생했을 가능성이 제기되고 있다. 이번 호에서는 끊이지 않고 발생하는 웹 해킹 공격에 대응하고자 다양한 공격을 실시간으로 탐지하는 방법(룰 설정)과 탐지 이후 로그를 분석하는 방법에 대해 알아 보겠다.


2. 웹 해킹 탐지 룰 생성부터 Access log 빅데이터 분석까지 

먼저 룰 생성 과정 전체를 단일 룰 등록부터 오브젝트 설정까지 간단하게 살펴본 후, OWASP ZAP 취약점 SACN 공격 사례를 재구성해 분석해 보도록 하겠다. 그리고 발생 경보를 중심으로 손 쉬운 빅데이터 로그 분석을 진행해 보겠다. 과정 별 상세 설정 설명은 뒤쪽에서 다루도록 하겠다.

1) 룰 설정과 오브젝트(탐지 패턴) 등록

단일경보관리에서 룰 등록 후 탐지하고자 하는 패턴 선정 후 해당 로그가 수집되는 필드에 대해 오브젝트를 생성하면 된다. 이미 알려진 웹 해킹 탐지 패턴에 대해서는 오브젝트로 SIEM에 등록되어 있다.

 


 [그림 1] 룰 설정과 오브젝트 등록​

 

 

2) 실시간 탐지 결과 모니터링 및 경보 분석

 

보안관제 상관분석 메뉴를 통해 SIEM에서 실시간 탐지되는 현황을 볼 수 있다. 분석 룰 셋명에서 우 클릭하여 상세 분석 창으로 이동하면 해당 경보가 얼마나 지속되고 있는지와 일별 탐지 추이를 파악할 수 있다. 그리고, 전일 대비 새로운 공격/자산IP로 공격이 발생하는지 탐지 결과에 대한 상세 정보를 볼 수가 있다. 또한 룰 설정 화면을 바로 확인 가능하며, 무엇보다 왜 탐지가 되었는지 근거 로그를 바로 확인 할 수가 있다. [그림 4-2]을 보면 13시부터 14시까지 전체 공격은 지속되고 있으나, 탐지 경보 화면에서 보면 해당 경보는 5분47초 동안 지속되면서 19,851건의 패턴을 탐지하였다. 공격자 IP는 전일 대비 새로운 172.16.1.99 IP가 192.168.1.103 웹 서버로 접근함을 알 수가 있으며 탐지 오브젝트 필드인 URI 필드에 “?query=query+UNION+ALL+select+NULL+--+” 공격 로그에 의해 탐지됨을 알 수가 있다. 

 

 

 

 

[그림 2] 웹 해킹 탐지 경보 화면

 

 

3) Access log 빅데이터 분석


공격이 발생하면 공격의 성공여부와 시점을 파악하기 위해 로그를 분석한다. 또한 다른 시스템으로 확산은 안 되었는지 등을 파악하기 위해 전수 조사를 하게 된다. 이러한 조사를 위해 장기간 쌓여진 로그를 분석하는 빅데이터 분석이 필요하다. 상관분석 경보화면의 출발지 IP에서 우 클릭하여 “이 정보로 검색” 창으로 이동하면 공격 IP에 대한 하루 활동 로그를 검색하여 보여 준다. 

 

▶ 빅데이터 Time Line 분석

 

[그림 3]의 Time line 분석을 통해 새벽 1시부터 접근하여 공격을 시도한 정황을 파악 할 수 있다. 하루 종일 공격이 이어 졌으며, 시간당 30만 번 정도의 공격 시도했음을 그래프를 통해 쉽게 추이 분석을 할 수가 있다. 로그 분석을 통해 웹 해킹 룰에 의해 탐지되었던 URI 필드에서 “?query=query+UNION+ALL+select+NULL+--+” 로그를 발견할 수 있다.

 

 

 

 

[그림 3] 룰 설정과 오브젝트 등록

 

 

최초 공격 시점을 분석하기 위해 장기간 Time Line 분석을 해 보면 [그림 4]처럼 일주일 이상의 기간동안 접근 조차 모를 정도로 소량으로 지속 접속하여 홈페이지 구조 등 정보를 수집하고 있는 걸 알 수 있다. 공격에 앞서 퍼징툴 등을 이용하여 디렉토리 구조 파악 등 공격대상에 대한 정보를 수집한 것으로 보인다.

 

 

 

 

[그림 4] Time Line 분석

 

 

4) 빅데이터 통계분석 - Web Access

 

공격 IP가 웹 서버에 접속한 하루 웹 로그 건수만 보더라도 140만 건에 달한다. 한 줄 한 줄 분석한다는 건 현실적으로 불가능하다. 그래서 검색 결과 이후 “통계 TopN” 기능을 통해 필드 별 통계 분석을 쉽게 할 수 있다. 검색 결과 화면에 보이는 필드 중 분석에 필요한 필드만 선택하여 상위10~1000개까지 통계 값을 구해 준다. [그림4-5]처럼 140만 건 로그의 통계 분석 결과 응답(Sent_bytes)과 요청(Rcvd_bytes) 데이터 크기, 요청 건수를 통해 툴에 의한 기계적인 반복 접속에 의해 HTTP-상태코드는 대부분 없는 페이지 접근으로 404, 403이 발생했다. 또한 URI필드에 정상적이지 않은 Post Method 공격이 발생하였고, 공격자 OS는 WIN8.1이며, 브라우저는 모질라 파이어폭스를 사용했다. 이처럼 수백만 건의 로그라도 통계분석을 통해 전체 현황을 분석한 후 다시 해당 필드의 로그를 정밀 분석하기 위해 우 클릭 메뉴인 이벤트 추이 검색으로 드릴다운 분석을 하면 된다.

 

 

 

 

[그림 5] 웹 Access log 필드별 통계TopN 분석

 

 

5) 빅데이터 통계분석 - 인프라 전체 장비

 

인프라의 다른 시스템 공격 여부 파악을 위해 모든를 장비 대상으로 분석 범위를 확대하여 공격자 IP를 통계 분석한 결과 FW, IPS, WF, DNS등 접근 이력과 비인가 행위로 인한 IPS탐지 이력도 발견 할 수 있다. IPS에서도 웹 로그 분석과 동일하게 대부분 웹 해킹 대표 공격의 하나인 SQL Injection 공격으로 탐지 되었다. 방화벽의 세션 연결 시간은 정상 접속보다 짧으며, 단순 요청에 의한 통신이다 보니 500byte 이하의 작은 패킷들이 대부분이다. 아무리 많은 로그 건수라도 모든 보안 장비를 대상으로 통계분석을 선행 진행하면 전체적인 공격의 윤곽은 파악 할 수 있을 것이다.

 

 

[그림 6] 인프라 로그 전체 필드별 통계TopN 결과

 

 

6) 가시성 확보를 위한 로그 추적 분석 

 

통계 분석을 통해 전체적인 공격의 윤곽을 파악했더라도 로그 추적 분석을 통해 공격 IP의 침투 경로와 공격 확산을 한 눈에 다 같이 볼 수 있는 가시성을 확보 할 수 있다. 공격자는 웹 서버 공격으로 IPS등 탐지 장비에서 많은 경보를 발생 시켰음을 토폴로지 맵의 에이전트 아이콘의 색의 상태와 건수로 파악 할 수 있다.  본사 웹 서버 공격 후 지사 웹 서버까지 접근 하였음을 한눈에 분석 할 수 있다. 해당 에이전트 아이콘에서 탐지 된 로그 검색을 원할 경우 우 클릭 "상세분석"을 하면 로그를 바로 분석할 수 있다.

 

 

[그림 7] 침투 경로를 파악 할 수 있는 로그 추적 분석​ 

 

 

3. 웹 해킹 탐지를 위한 단일 경보 룰 등록 절차

 

웹 해킹 탐지 룰 설정 > 탐지 > 빅데이터 분석까지 전체 과정을 간단하게 살펴 보았다. 그러나 모든 Alert 마다 이러한 분석 과정을 진행한다는 건 현실적으로 한정된 인력으로는 불가능하다. 그래서 무엇보다 오탐을 최소화 하고 정탐률을 높이기 위해 정확한 룰 설정이 무엇보다 중요하다. 정밀 탐지를 위한 세부 설정에 대해 알아보겠다. 실시간 탐지 엔진 기준에서 웹 해킹 공격을 좀 더 분류다면 시그니처 기반 탐지(Signature Base Detection), 임계치 기반 탐지, 분포 기반 탐지, 그리고, 평판 탐지로 나눌 수 있다. 가장 대표적인 시그니처 기반 탐지 기법은 이미 알려진 공격 패턴을 미리 등록해 놓고, 입력된 패턴에 해당하는 문자열이 웹 로그 필드에서 매칭되면 이를 탐지하여 알려주는 방식이다. 즉, 모니터링하고 있는 웹 로그에서 알려진 침해 행위의 특징과 일치하면 이를 공격으로 탐지하여 알려주는 것이다. 특정 소프트웨어의 공개된 취약점들과 공격자가 자주 사용하는 공격들을 전부 탐지 할 수 있다는 장점이 있는 반면 알려지지 않거나 입력되어 있지 않은 새로운 패턴에 대해서는 탐지 할 수 없다는 단점이 있다.

 

▶ 단일 경보 설정 절차


① 룰 이름 항목 : SIEM 기본룰 명은 [S6_WEB] 탐지명이나 기관별 명명 규칙에 따라 작성하면 된다.

② 신뢰도 항목 : 해당 룰의 정오탐 혹은 중요도에 따라 1부터 10까지 설정할 수 있다.

③ 발생주기 항목 : 공격이 이루어 지는 시간을 고려하여 설정하면 된다. 즉, 시그니처 기반 탐지는 공격 시도 즉시 탐지해야 하지만, GET Flooding과 Scan 공격은 최소 1분 정도 트래픽이 지속되어야 공격을 판단 할 수 있기에 공격 유형에 따라 1초에서 월단위까지 탐지 시간을 설정하면 된다.

④ 발생건수 항목 : 발생 주기와 동일하게 시그니처 공격은 한번에 탐지해야하지만, GET Flooding 이나 Scan 공격 같은 임계치 기반의 공격은 일정 건수 이상의 트래픽이 발생할 경우 탐지하면 된다.이렇듯 공격 유형과 해당 기관의 트래픽을 고려하여 발생 건수를 설정하면 된다.

⑤ 로그소스 항목 : 탐지 대상을 뜻하며, 로그유형에서 “WebServer”를 선택하면 모든 웹 서버를 선택한 것과 동일하다. 특정 웹 서버만 선택하고자 한다면 로그소스 목록에서 해당 웹 서버를 선택하면 된다. 간혹 로그 소스 별 선택을 한 경우 에이전트 추가/변경 시 로그 소스 선택에서 빠지게 되어 미탐되는 경우가 종종 발생을 한다. 이런 경우는 로그유형을 선택하였다면 별도 설정 없이 지속 운영이 가능하다. 

⑥ 조건정의 항목 : 탐지 조건을 설정하는 필드로 선택한 로그 소스에서 발생하는 로그 중 탐지하고자 하는 필드에서 원하는 시그니처와 임계치를 다양한 연산자를 통해 탐지를 설정 할 수 있다. 

⑦ 동일조건 항목 : 탐지 기준으로 공격자 IP별 혹은 보안장비(origin)별로 구분하여 탐지를 할 수 있다. 즉, 동일 조건에 필드 명이 추가 될 수록 좀 더 정밀한 탐지를 할 수 있다.

⑧ 저장 및 상세 설정 항목 : 룰 생성을 위한 저장 버튼과 경보 발생 이후 각종 알람 기능, 경보 발생 예외 시간, 침해사고 이관 설정, 룰 가이드 등 다양한 기능들이 포함되어 있다.

 

 

[그림 8] 단일 경보 룰 등록 절차

 

 

 

[그림 9] 8번 룰 상세 설정(옵션) 메뉴​ 

 

 

4. 웹 해킹 탐지를 위한 오브젝트 적용 및 신규 생성 과정

 

우선 탐지하고자 하는 시그니처 등록을 위한 조건 정의 등록 절차에 대해 살펴 보겠다. 이미 만들어진 오브젝트 적용시에는 파란색 번호 순서 절차로 진행하면 된다. 그렇지 않고 신규 오브젝트 생성이 필요하다면 주황색 번호 순서에 맞춰 작업하면 된다. 만약 기존 오브젝트를 수정을 원한다면 파란색 번호 3번 과정에서 오브젝트 추가 후 주황색 번호 2번에서 수정 작업 후 주황색 번호 3번 과정을 통해 수정하면 된다. 다소 복잡해 보일 수도 있으나 오히려 한 화면에서 추가 > 생성 > 수정이 모두 가능하여 룰 생성시 더 효율적이다.

 

▶ 기본 제공(기존) 오브젝트 적용 과정


 

▶ 신규 오브젝트 생성 과정



 

 

[그림 10] 오브젝트 적용/신규 생성​ 

 

 

5. 웹 공격 유형에 맞는 탐지 설정

 

시그니처 기반 탐지(Signature Base Detection) 설정을 위해 지난 호에서 언급한 웹 공격 유형에 맞는 필드별 탐지 전략을 바탕으로 공격에 맞는 오브젝트 필드와 연산자 기능에 대해 알아 보겠다.

 

 

[그림 11] 웹 로그 필드별 공격 탐지 전략

 

 

▶ 오브젝트 필드와 연산자 선택

 



  

  

[그림 12] 시그니처 기반 탐지 패턴 연산자

 

 

이외 오브젝트 등록에 관한 추가 설명이 필요하면 이글루시큐리티 홈페이지 > BLOG > SIEM Guide에 “오브젝트 등록을 통한 룰 정책 설정 가이드”로 등록되어 있으니 같이 참고하기 바란다.

 

다시 한번 정리한다면 오브젝트와 필드간은 AND 관계이며, 필드 속 탐지 패턴 간에는 OR 관계이다. [그림4-13]처럼 오브젝트 이름 항목에 등록된 “WEB-SQL_Injection” 필드와 “WEB_Access”간은 AND 관계이다.

하나의 오브젝트에는 기본 정의 항목에 보이는 것처럼 여러 필드를 등록할 수 있으며, 필드 간의 관계도 AND 관계다. 단, 필드 속에 탐지 패턴들 간에는 OR 관계이다. 

 

 

[그림 13] 오브젝트와 필드간 관계

 

 

오탐 최소화를 위해 탐지하고자 하는 오브젝트(탐지필드)와 웹 로그 범위만 지정해주는 “WEB_Access” 오브젝트도 같이 등록해 주길 권장한다. 

 

 

 

[그림 14] 오탐 최소화 범위 필드 등록

 

 

6. 결론

 

웹 해킹을 탐지하기 위해 보안 장비가 아닌 Web Access log를 분석하여 효과적으로 웹 해킹을 탐지하는 방법에 대해 알아 보았다. 정탐을 위한 룰 설정 방법, 최초 접근과 이력 분석을 위한 Time Lime 분석, 몇 백만 건의 Access log를 통계 분석하여 나무가 아닌 전체 숲을 보는 통계 분석 방법, 그리고 공격 IP의 침투 경로와 공격 확산을 한눈에 볼 수 있는 로그 추적 분석 기능까지 알아 보았다. 이러한 일련의 과정에서 보안 지식은 기본 바탕이 되어야 하지만 무엇보다 중요한 선행 지식은 로그에 대한 이해라고 생각한다. 우리 인프라에서 어떤 장비에서 무슨 로그가 생성되는지 파악하고 잘 관리했으면 하는 바램이다.