제 2 장 현황조사 및 분석 - suwon.go.krž¥-현황조사및분석.pdf · 제 2 장 현황조사 및 분석 3 제 2 장 현황조사 및 분석 제 1 절지역여건 분석
침해사고 Web Log 분석
description
Transcript of 침해사고 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 기반의 로그분석
유틸리티Þ 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)
1. 로그 분석 준비▶ 로그 분석 도구 2
- Log parser Studio(LPS)Þ 마이크로소프트에서 제공하는 GUI 기반의 Log parser
SQL query 관리 프로그램Þ .Net Framework 3.5 이상 필요함
1. 로그 분석 준비▶ Log parser Studio
1. 로그 분석 준비▶ Log parser Studio
1. 로그 분석 준비▶ Log parser Studio 환경설정
- 로그 query 결과 저장Þ Option > Preferences > Default Output Path
▶ Log parser Studio 환경설정- 분석할 로그 파일 위치
Þ Log File Manager 실행
1. 로그 분석 준비
2. 로그 Format 분석▶IISW3C(W3C 확장 로깅 )
- Microsoft Internet Information Server (IIS) 4.0, 5.0, 6.0 and 7.0
- 대부분의 IIS 에서 사용하는 로그 포맷
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) 사용자가 방문한 이전사이트
3. 로그 분석 실습▶ 천안시립예술단 홈페이지 악성파일 삽입 침해사고
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
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
3. 로그 분석 실습
3. 로그 분석 실습▶ HTTP Method 분석
- .CSV 결과를 필터설정 후 cs-method 에서 해킹시도로 의심되는 메소드를 확인 .
- PUT 메소드 취약점을 이용해 웹쉘 업로드를 확인- 2012-2-28 21:49(UTC+9) 해킹 성공을 알 수 있음
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
3. 로그 분석 실습▶ 해킹 관련 IP 가 접근한 모든 리소스 쿼리 결과
3. 로그 분석 실습▶ 웹쉘 행위 분석 1
- URI 필드에서 /POWER.asp;.jpg 필터 적용
3. 로그 분석 실습▶ 웹쉘 행위 분석 2
- URI 필드에서 /Umer.asp;.jpg 필터 적용
3. 로그 분석 실습▶ 웹쉘 행위 분석 3
- URI 필드에서 /shell.asp;jack.asp;.jpg 필터 적용
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
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 에 대한 지속적인 요 청 횟수로 공격 추측
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