침해사고 web log 분석

23

Upload: bliss

Post on 24-Feb-2016

128 views

Category:

Documents


1 download

DESCRIPTION

침해사고 Web Log 분석. 교육자료 . ▶ 이글루컨소시엄 (2012) -> 16. 내부교육 -> 0521 Logparser 2.2.msi LPS.zip 천안로그 . zip 침해사고 웹로그 분석 . pptx .net framework 4.0( .net framework 미설치 PC). 1. 로그 분석 준비. ▶ 로그 분석 도구 1 Log parser 2.2 마이크로소프트에서 제공하는 SQL 기반의 로그분석 유틸리티 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 침해사고  Web Log  분석
Page 2: 침해사고  Web Log  분석

교육자료 ▶ 이글루컨소시엄 (2012) -> 16. 내부교육 ->

0521- Logparser 2.2.msi- LPS.zip- 천안로그 .zip- 침해사고 웹로그 분석 .pptx- .net framework 4.0(.net framework 미설치 PC)

Page 3: 침해사고  Web Log  분석

1. 로그 분석 준비▶ 로그 분석 도구 1

- Log parser 2.2Þ 마이크로소프트에서 제공하는 SQL 기반의 로그분석

유틸리티Þ IIS Log File Input Formats( IISW3C, IIS, BIN,

IISODBC, HTTPER, URLSCAN)Þ Generic Text File Input Formats(CSV, TSV, XML,

W3C, NCSA, TEXTLINE, TEXTWORD)Þ System Information Input Formats(EVT, FS, REG,

ADS)Þ Special-pupose Input Formats(NETMON, ETW, COM)

Page 4: 침해사고  Web Log  분석

1. 로그 분석 준비▶ 로그 분석 도구 2

- Log parser Studio(LPS)Þ 마이크로소프트에서 제공하는 GUI 기반의 Log parser

SQL query 관리 프로그램Þ .Net Framework 3.5 이상 필요함

Page 5: 침해사고  Web Log  분석

1. 로그 분석 준비▶ Log parser Studio

Page 6: 침해사고  Web Log  분석

1. 로그 분석 준비▶ Log parser Studio

Page 7: 침해사고  Web Log  분석

1. 로그 분석 준비▶ Log parser Studio 환경설정

- 로그 query 결과 저장Þ Option > Preferences > Default Output Path

Page 8: 침해사고  Web Log  분석

▶ Log parser Studio 환경설정- 분석할 로그 파일 위치

Þ Log File Manager 실행

1. 로그 분석 준비

Page 9: 침해사고  Web Log  분석

2. 로그 Format 분석▶IISW3C(W3C 확장 로깅 )

- Microsoft Internet Information Server (IIS) 4.0, 5.0, 6.0 and 7.0

- 대부분의 IIS 에서 사용하는 로그 포맷

Page 10: 침해사고  Web Log  분석

2. 로그 Format 분석▶IISW3C – Fields

Field Appears As DescriptionDate date 작업이 발생한 날짜Time time 작업이 발생한 시간 (UTC 기본 )Client IP Address c-ip 서버에 액세스한 클라이언트의 IP User Name cs-username 서버에 액세스한 인증된 사용자 이름Service Name s-sitename 클라이언트가 액세스한 인터넷 서비스 및 인스턴스 번호Server Name s-computername 로그 항목을 생성한 서버의 이름Server IP Ad-dress s-ip 로그 항목을 생성한 서버의 IPServer Port s-port 클라이언트가 연결된 포트 번호Method cs-method 클라이언트가 수행하려고 시도한 작업 ( 예 : GET, POST 메소드 )URI Stem cs-uri-stem 클라이언트가 액세스한 리소스 ( 예 : Default.htm)URI Query cs-uri-query 클라이언트가 수행하려고 시도한 쿼리 ( 있는 경우 )Protocol Status sc-status 작업 상태 (HTTP 200, 400 code 등 )Win32® Status sc-win32-status 작업 상태 (Microsoft Windows 에서 사용되는 용어 )Bytes Sent sc-bytes 서버가 보낸 바이트 수Bytes Received cs-bytes 서버가 받은 바이트 수 Time Taken time-taken 작업베 걸린 시간 ( 밀리초 단위 )Protocol Version cs-version 클라이언트가 사용한 프로토콜 버전 (HTTP 1.0, 1.1)Host cs-host 호스트 헤더의 내용 User Agent cs(User-Agent) 클라이언트에서 사용한 브라우저Cookie cs(Cookie) 보내거나 받은 쿠키의 내용Referrer cs(Referer) 사용자가 방문한 이전사이트

Page 11: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 천안시립예술단 홈페이지 악성파일 삽입 침해사고

Page 12: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 로그 확보

- 침해사고 인지 : 2012 년 5 월 2 일- 악성파일 수정 날짜 : 2012 년 2 월 29 일- Zone-h 침해사고 이력 : 2011 년 11 월 7 일- 2011.9.30 ~ 2012.2.22(126 일 )- 2012.2.28 ~ 2012.35(7 일 )- 133 개 파일 505MB

Page 13: 침해사고  Web Log  분석

3. 로그 분석 실습▶ HTTP Status 에러 코드 쿼리 - LPS -> Ctrl + N(새로운 query tab 생성) - HTTP Status Code가 200 ~ 500 중에서 클라이언트가 접근한 리소스중 asp 문자가 포함된 로그

SELECT TO_TIMESTAMP( date, time ) as sTimeStamp, /* date, time 2개의 필드를 하나로 합침 . */ c-ip as Source, /* 클라이언트 IP */ s-ip as Server, /* 서버 IP */ s-port as server_port, /* 서버 port */ cs-method, /* HTTP GET, POST 등의 메소드 */ cs-uri-stem as Uri, /* 클라이언트가 엑세스한 리소스 */ cs-uri-query, /* 클라이언트가 수행하려고 시도한 쿼리 */ sc-status as HttpStatus, /* HTTP Status code */COUNT(*) AS Total INTO '[OUTFILEPATH]\HTTP_Status.csv' /* 쿼리 결과 저장파일 */FROM '[LOGFILEPATH]' /* 분석하고자 하는 로그파일 위치 */WHERE HttpStatus <= 500 /* HTTP code 200 ~ 500까지 */AND (cs-uri-stem LIKE '%asp%') /* asp 문자가 들어가는 리소스 */GROUP BY sTimeStamp, Source, Server, server_port, cs-method, Uri, cs-uri-query, HttpStatus

Page 14: 침해사고  Web Log  분석

3. 로그 분석 실습

Page 15: 침해사고  Web Log  분석

3. 로그 분석 실습▶ HTTP Method 분석

- .CSV 결과를 필터설정 후 cs-method 에서 해킹시도로 의심되는 메소드를 확인 .

- PUT 메소드 취약점을 이용해 웹쉘 업로드를 확인- 2012-2-28 21:49(UTC+9) 해킹 성공을 알 수 있음

Page 16: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 해킹 관련 IP 가 접근한 모든 리소스 쿼리

SELECT cs-uri-stem,COUNT(cs-uri-stem) as requestcountINTO '[OUTFILEPATH]\58.97.176.163.csv'FROM '[LOGFILEPATH]' WHERE c-ip = '58.97.176.163' /* 해킹 관련 IP */GROUP BY cs-uri-stem ORDER BY count(cs-uri-stem) desc

Page 17: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 해킹 관련 IP 가 접근한 모든 리소스 쿼리 결과

Page 18: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 웹쉘 행위 분석 1

- URI 필드에서 /POWER.asp;.jpg 필터 적용

Page 19: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 웹쉘 행위 분석 2

- URI 필드에서 /Umer.asp;.jpg 필터 적용

Page 20: 침해사고  Web Log  분석

3. 로그 분석 실습▶ 웹쉘 행위 분석 3

- URI 필드에서 /shell.asp;jack.asp;.jpg 필터 적용

Page 21: 침해사고  Web Log  분석

3. 로그 분석 실습▶ asp 웹쉘 이외의 웹쉘 쿼리

- .cer, .asa, .cdx, .htaSELECT TO_TIMESTAMP( date, time ) as sTimeStamp, /* date, time 2개의 필드를 하나로 합침 . */ c-ip as Source, /* 클라이언트 IP */ s-ip as Server, /* 서버 IP */ s-port as server_port, /* 서버 port */ cs-method, /* HTTP GET, POST 등의 메소드 */ cs-uri-stem as Uri, /* 클라이언트가 엑세스한 리소스 */ cs-uri-query, /* 클라이언트가 수행하려고 시도한 쿼리 */ sc-status as HttpStatus, /* HTTP Status code */COUNT(*) AS Total INTO '[OUTFILEPATH]\HTTP_Status.csv' /* 쿼리 결과 저장파일 */FROM '[LOGFILEPATH]' /* 분석하고자 하는 로그파일 위치 */WHERE HttpStatus <= 500 /* HTTP code 200 ~ 500까지 */AND (cs-uri-stem LIKE '%.cer%‘ OR cs-uri-stem LIKE '%.asa%‘ OR cs-uri-stem LIKE '%.cdx%‘ OR cs-uri-stem LIKE '%.hta%‘ )

GROUP BY sTimeStamp, Source, Server, server_port, cs-method, Uri, cs-uri-query, HttpStatus

Page 22: 침해사고  Web Log  분석

3. 로그 분석 실습▶ SQL Injection 해킹시도 쿼리 특징 1. GET 메소드 - GET /login.asp?id=admin&pass=1234 - URL 에 데이터를 포함해서 전송 - SQL Injection 관련 문자로 로그 분석 가능

2. POST 메소드 - POST /login.asp - id=admin, pass=1234 데이터가 HTTP body 에 포함되서 전송되어 데이터 부분이 로그에 안남음

- HTTP 500 에러 로그와 특정 URL 에 대한 지속적인 요 청 횟수로 공격 추측

Page 23: 침해사고  Web Log  분석

3. 로그 분석 실습▶ SQL Injection 해킹시도 로그 추출 쿼리 1. GET 메소드 -where cs-uri-query LIKE ‘%SQL Injection%’ 2. POST 메소드 - SELECT DISTINCT date, cs-uri-stem, c-ip, Count(*) AS Hits FROM '[LOGFILEPATH]' WHERE cs-uri-stem LIKE '%asp%' GROUP BY date, c-ip, cs-uri-stem HAVING Hits>50 ORDER BY Hits DESC