IIS 웹 서버 로그
IIS 웹 서버에서 로그는 기본 W3C 형식으로 남도록 설정되어 있다. NCSA 공통 로그 파일 방식, MS IIS 로그 파일 형식 등도 사용 가능하다.
IIS 웹 서버의 기본 설정이면서 가장 널리 이용되는 로그 형식은 W3C 확장 로그파일 형식이다.
- W3C 주요 로그 필드
필드 | 설명 |
date | 사용자가 페이지에 접속한 날짜를 저장한다. |
time | 사용자가 페이지에 접속한 시간을 시:분:초 단위로 표기하나 GMT 표준시로 표기한다. |
c-ip | 웹 페에지에 접속한 사용자 정보. 보안 측면에서는 공격자 IP다. |
cs-username | 웹 페이지에 접속한 사용자 계정을 저장한다. |
s-computername | 웹 서버 이름을 저장한다. |
s-ip | 웹 서버 IP를 저장한다. |
s-port | 웹 서버 포트를 저장한다. |
cs-method | HTTP 메소드를 의미한다. |
cs-uri-stem | 요청 페이지를 의미한다. |
cs-uri-query | 요청 파라미터를 의미하며 대부분의 공격이 해당 필드에 삽입된다. |
sc-status | 응답 코드(HTTP status)이며 사용자 요청이 정상인지 아닌지 제공한다. |
Cs(Referer) | 사이트 접속 전에 어느 사이트를 거쳤는지에 대한 정보를 제공한다. |
Cs(cookie) | 사용자의 쿠키 정보를 기록한다. |
Apache 웹 서버 로그
클라이언트의 요청에 의해 웹 서버가 응답한 내용은 Access log 파일에 기록되고, 클라이언트 요청에 의해 웹 서버에 오류가 발생했을 경우 Error log 파일에 기록된다.
아파치 웹 서버는 httpd.conf 파일에서 LogFormat을 확인할 수 있다.
· LogFormat "%h %l %u %t "%r" %>s %b" common
→ common : 가장 일반적인 로그 기록이다.
· LogFormat "{Referer}i → %U" referer
→ referer : 현재 아파치 서버에 접속하기 전에 머물렀던 URL을 기록한다.
· LogFormat "%{User-agent}i" agent
→ agent : 접속자의 웹 브라우저 종류를 기록한다.
· LogFormat "%h %l %u %t "%r" %>s %b" %{Referer}i" "%{User-Agent}i"" combined
→ combined : 위 3가지 로그 포맷을 모두 조합한 것이다.
- LogFormat에서 설정된 Combined 형식의 각 항목의 내용
인자 | 내용 |
%a | 클라이언트 IP 주소 |
%b | 헤더 정보를 제외하고서 전송된 데이터의 크기. 데이터의 크기가 0일 때 - 로 표시 |
%c | 응답이 완료되었을 때 연결 상태 · × : 응답이 완료되기 전에 연결이 끊김 · + : 응답을 보낸 뒤에도 연결이 지속됨 · - : 응답을 보낸 뒤 연결이 끊김 |
%{Header}e | 환경 변수 헤더의 내용 |
%f | 요청된 파일 이름 |
%h | 클라이언트의 도메인 또는 IP 주소 |
%H | 요청 프로토콜의 종류 |
%l | inetd를 사용하고 있을 때 클라이언트의 로그인명(100% 신뢰할 수 없음) |
%m | 요청 방식 |
%p | 서버가 요청을 받아들이는 포트 번호 |
%P | 요청을 처리하는 자식 프로세스의 ID |
%q | 질의에 사용된 문자 |
%r | HTTP 접근 방법과 접근 URL |
%s | HTTP 실행 결과 코드 |
%{format}t | 웹 서버에 작업을 요구한 시간 |
%{Referer}i | 요청된 URL이 참조되거나 링크된 URL |
%{User-Agent}i | 접속한 클라이언트의 OS 및 브라우저 버전 등을 나타냄 |
%T | 웹 서버가 요청을 처리하는데 소요된 시간(초) |
%u | 클라이언트의 사용자(100% 신뢰할 수 없음) |
%U | 요청된 URL 경로 |
%v | 요청을 처리하는 서버의 이름 |
%V | 클라이언트의 웹 브라우저 |
- /etc/httpd/logs/access_log 예시
192.168.137.1 - - [06/JUN/2015:05:48:28 +0900] "GET /HTTP/1.1" 403 4609 "-" "Mozila/5.0 (~~~~~)"
1. 클라이언트 IP (%h) : 192.168.137.1
2. 클라이언트 로그인명 (%l) : -
3. 클라이언트 사용자명 (%u) : -
4. 날짜와 시간 (%t) : [06/JUN/2015:05:48:28 +0900]
5. HTTP 접근 방법과 접근 URL (%r) : GET /HTTP/1.1
6. 실행 결과 코드 (%s) : 403
7. 서버에서 클라이언트로 전송한 데이터 크기 (%b) : 4609 bytes
8. 클라이언트의 웹 브라우저 (%i) : Mozila~
크래킹
크래킹은 악의적인 목적을 가지고 시스템에 침입하는 행위를 말하며, 다른 의미로 shareware 프로그램을 정식버전으로 변환하는 행위를 의미하기도 한다.
- 크래킹 S/W 사례
· John the Ripper : 패스워드 점검도구로 가장 잘 알려진 프로그램
· pwdump : 윈도우에서 패스워드를 덤프할 수 있는 도구이다.
· L0phtCrack : 패스워드 취약점 점검도구로 원격 및 로컬 서버나 PC에 대하여 패스워드를 점검하는데 유용하다.
· ipccrack : 사용자 계정 패스워드를 원격지에서 추측하여 취약점을 점검하는 도구이다.
· chntpw : 물리적 접근이 가능한 시스템에서 패스워드를 리셋시키는 프로그램이다.
· ERD Commander : 윈도우 시스템에서 패스워드를 복구해야 하는 경우에 사용한다.
키로그
키로그 프로그램은 설치된 컴퓨터에서 키보드로 입력한 정보를 로그로 남기는 프로그램이다. 기능이 업데이트된 키로그 프로그램은 키보드 입력뿐 아니라 윈도우를 이요한 프로그램 사용, 인터넷접속 정보 등도 로그로 남긴다.
또한 로그파일을 실시간으로 공격자에게 전송하거나, 설정된 메일 및 메신저로 지정된 시간에 로그파일을 자동 전송하는 기능도 있다.
- 키보드 해킹방지 프로그램
사용자의 키보드 입력 자체를 보호하여 사용자가 입력하는 정보를 제3자가 알아볼 수 없도록 해주는 프로그램이다.
취약점 분석
취약점 분석은 일정한 보안 수준을 유지하기 위해서 정기적으로 수행해야 하며, 새로운 소프트웨어나 서비스가 추가되는 경우 혹은 새로운 장비를 구입하여 네트워크를 확장했을 경우에도 취약점 분석을 실시하여야 한다.
- 취약점 분석 도구
· SATAN(Security Analysis Tool for Auditing Networks)
해커와 똑같은 방식으로 시스템에 침입하여 보안상의 약점을 찾아 보완할 수 있는 네트워크 분석용 보안 관리 도구이다.
· SARA
SARA는 SATAN이 업데이트가 되지 않는 상황에서 SATAN을 기반으로 개발된 취약점 분석도구로 네트워크 기반의 컴퓨터, 서버, 라우터 IDS에 대한 취약점 분석, 유닉스 플랫폼에서의 동작, HTML 형식의 보고서 기능이 있다.
· SAINT
유닉스 플랫폼에서 동작하는 네트워크 취약점 분석도구로서 HTML 형식의 보고서 기능이 있다.
원격에서 취약점을 점검하는 기능이 있다.
· COPS
유닉스 플랫폼에서 동작하며 시스템 내부에 존재하는 취약점을 점검하는 도구로서 취약한 패스워드를 체크한다.
· Nessus
클라이언트-서버 구조로 클라이언트의 취약점을 점검하는 기능이 있다. 서버에 nessus 데몬과 각종 취약점 점검 플러그인 등이 설치되며 취약점을 점검하고 결과를 조회할 수 있는 인터페이스를 제공한다. 클라이언트는 nessus 데몬에 접속하여 대상 시스템에 대한 취약점 점검을 실시한다.
클라이언트는 GUI 형태로 취약점 점검 설정 및 결과를 확인할 수 있어 사용하기 쉽고 취약점이 공개되면 빠르게 취약점 DB가 업데이트된다.
리눅스뿐만 아니라 유닉스, 윈도우 등 모든 OS 및 장비에 대한 취약점 정보를 제공하고 취약점 점검 결과는 TXT, HTML, PDF 등 다양한 포맷으로 저장할 수 있다.
· nmap
포트스캐닝 도구로 TCP connect 방식뿐만 아니라 stealth 모드로 포트 스캐닝하는 기능을 포함한다.
무결성 점검
- 파일 무결성 점검(tripwire)
파일 무결성 점검도구는 정상적인 상태의 디렉터리 및 파일 정보를 백업하고 있다가 점검 수행 시점에서 정보와 백업한 정보를 비교하여 변경된 사항을 점검하는 도구이다.
tripwire는 유닉스/리눅스 환경에서 파일시스템 무결성을 점검하는 대표적인 도구로 MD5, SHA, CRC-32 등의 다양한 해시 함수를 지원하고 파일에 대한 데이터베이스를 만들어 이를 통해 공격자들에 의한 파일들의 변조여부를 확인한다.
- 특징
파일의 시그니처 역시 공격 대상이 된다. 공격자는 종종 컴퓨터 상의 시그니처 베이스를 찾아서 파괴하려고 하기 때문에 반드시 보호되어야 한다. 이를 위해서 다른 장치에 시그니처 베이스를 저장하거나 복사본을 둘 수 있다.
다만 데이터 파일의 보호에는 적절하지 않다. 데이터 파일은 자주 변경되기에 데이터 파일의 시그니처는 자주 재계산되어야 한다. 이러면 어떤 파일 변환이 정상적인 것이고 어떤 것이 공격에 의한 것인지 구분이 모호해지게 된다.
- 동작 방식
최초 설정파일에 등록된 파일 및 디렉터리의 해시값을 생성하여 데이터베이스에 저장한다.
주기적으로 트립와이어가 동작하면서 기존 데이터베이스에 저장된 해시값과 현재 각 파일 및 디렉터리의 해시값을 비교한다.
비교 결과값이 다를 경우 변경 내역을 출력하여 관리자가 확인한다.
스캔 탐지 도구
- mscan
메인 전체를 스캔하여 그 도메인 내에 있는 wingate, test-cgi, statd, named 등 최근 많이 이용되는 주요 취약점을 한 번에 스캔할 수 있는 해킹 도구이다.
- sscan
mscan을 업데이트하여 개발한 유닉스/윈도우 시스템에 대해 네트워크를 통하여 취약점 점검을 수행할 수 있는 도구이다.
- portsentry
실시간으로 포트 스캔을 탐지하고 대응하기 위한 프로그램으로 정상적인 스캔과 stealth 스캔을 탐지할 수 있으며, 스캔로그 남기기, 공격호스트를 /etc/hosts.deny 파일에 기록하여 자동 방어, 공격 호스트를 경유하여 오는 모든 트래픽을 자동 재구성하는 기능이 있다.
네트워크 모니터링 및 침입탐지 도구
- Snort
실시간 트래픽분석과 IP 네트워크에서의 패킷 처리를 담당하는 공개 소스 네트워크 침입탐지시스템(IDS)이다.
프로토콜 분석, 콘텐츠 검색 및 조합 작업을 할 수 있으며, BOF, Stealth port scanning, CGI 공격, SMG 프로브, OS 핑거프린팅 시도와 같은 다양한 공격을 감지할 수 있다.
방화벽
· TCP-Wrapper
TCP-Wrapper는 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링할 수 있는 UNIX 기반의 방화벽 툴이다.
임의의 호스트가 서비스를 요청해 오면 실제 데몬을 구동하기 전에 접속을 허용한 시스템인지 여부를 확인하여 호스트명 및 서비스명을 로그에 남긴 다음, 허가된 시스템에는 서비스를 제공하고 허가되지 않은 경우에는 접속을 차단해 주는 도구이다.
· IPchain / IPtable
IPtable은 패킷 필터링 방화벽으로, 패킷 필터란 네트워크를 통과하는 모든 것이 패킷의 형태를 가지며, 패킷의 앞부분에는 패킷이 어디로 왔는지 어디로 향하는지 어떤 프로토콜을 이용하는지 등과 같은 정보를 가지고 있다.
'정보보안기사' 카테고리의 다른 글
각종 시스템 보안위협 및 대응책 - 2 (0) | 2023.03.31 |
---|---|
각종 시스템 보안위협 및 대응책 (0) | 2023.03.30 |
서버 보안 관리 - 1 (0) | 2023.03.26 |
유닉스 / 리눅스 서버 보안 - 2 (0) | 2023.03.24 |
유닉스 / 리눅스 서버 보안 - 1 (0) | 2023.03.23 |