서버 보안 관리 – 2

IIS 웹 서버 로그

IIS 웹 서버에서 로그는 표준 W3C 형식으로 설정됩니다. NCSA 일반 로그 파일 형식과 MS IIS 로그 파일 형식도 사용할 수 있습니다.

가장 널리 사용되는 기본 IIS 웹 서버 로그 형식은 W3C 확장 로그 파일 형식입니다.

– W3C 키-로그 필드

필드 설명
날짜 사용자가 페이지에 액세스한 날짜를 저장합니다.
시간 사용자가 페이지에 액세스하는 시간을 시:분:초(GMT 표준 시간)로 표시합니다.
c-ip 웹 사이트에 액세스하는 사용자 정보. 보안상의 이유로 공격자의 IP입니다.
CS 사용자 이름 웹 사이트에 액세스한 사용자 계정을 저장합니다.
컴퓨터 이름 웹 서버 이름을 저장합니다.
꿀꺽 웹 서버 IP를 저장합니다.
스포츠 웹 서버 포트를 저장합니다.
CS 방법 HTTP 메서드를 의미합니다.
cs-uri 변형 요청측을 의미합니다.
cs-uri 쿼리 요청 파라미터를 의미하며 대부분의 공격이 이 필드에 투입됩니다.
sc 상태 이것은 응답 코드(HTTP 상태)이며 사용자 요청이 올바른지 여부를 나타냅니다.
CS(참고) 웹 사이트에 액세스하기 전에 방문한 웹 사이트에 대한 정보가 포함되어 있습니다.
C’s(쿠키) 사용자의 쿠키 정보를 기록합니다.

Apache 웹 서버 로그

클라이언트의 요청에 대한 웹 서버의 응답은 접속 로그 파일에 기록되며, 클라이언트의 요청으로 인해 웹 서버에 오류가 발생하면 오류 로그 파일에 기록된다.

Apache 웹 서버는 httpd.conf 파일에서 로그 형식을 확인할 수 있습니다.

LogFormat “%h %l %u %t “%r” %>s %b” 보통

→ 빈번함: 가장 빈번한 로그 항목입니다.

· LogFormat “{Referer}i → %U” 리퍼러

→ 참조자: 현재 아파치 서버에 접속하기 전에 사용했던 URL을 적습니다.

· LogFormat “%{User-agent}i” 에이전트

→ 에이전트: 방문자의 웹 브라우저 유형을 캡처합니다.

LogFormat “%h %l %u %t “%r” %>s %b” %{Referer}i” “%{User-Agent}i”” 결합

→ 결합: 위에서 언급한 세 가지 프로토콜 형식이 모두 결합됩니다.

– LogFormat에 설정된 조합 형식의 각 요소 내용

요인 세부 사항
%ㅏ 클라이언트 IP 주소
%비 헤더 정보가 없는 전송 데이터의 크기입니다. – 데이터 크기가 0인 경우
%씨 응답 완료 시 연결 상태
X: 응답이 완료되기 전에 연결이 끊어짐
· + : 답장을 보낸 후에도 연결이 유지됩니다.
· – : 응답 전송 후 연결 해제
%{headers}e 환경 변수 헤더의 내용
%에프 요청된 파일 이름
%시간 클라이언트의 도메인 또는 IP 주소
%시간 요청 로그 유형
%엘 inetd를 사용할 때 클라이언트의 로그인 이름(100% 신뢰할 수 없음)
%중 요청 방법
%피 서버가 요청을 수락하는 포트 번호
%피 요청을 처리하는 자식 프로세스의 ID
%큐 쿼리에 사용된 문자
%아르 자형 HTTP 액세스 방법 및 액세스 URL
%에스 HTTP 실행 결과 코드
%{형식}t 웹 서버가 작업을 요청한 시간
%{참조자}i 요청된 URL이 가리키거나 링크되는 URL
%{사용자 에이전트}i 연결된 클라이언트의 운영 체제 및 브라우저 버전을 표시합니다.
%티 웹 서버가 요청을 처리하는 데 걸리는 시간(초)
% & 클라이언트 사용자(100% 신뢰할 수 없음)
%유 요청된 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바이트

8. 클라이언트 웹 브라우저(%i): Mozila~

금이 가다

크래킹은 악의적인 의도를 가지고 시스템에 침입하는 것을 말하며, 다른 의미로는 셰어웨어 프로그램을 정식 버전으로 변환하는 것을 의미하기도 합니다.

– 크래킹 흑백 케이스

John the Ripper: 비밀번호 확인 도구로 가장 잘 알려져 있음

· pwdump: Windows에서 암호를 덤프할 수 있는 도구입니다.

· L0phtCrack: 비밀번호 취약성 검사 도구로 원격 및 로컬 서버나 PC의 비밀번호를 확인하는 데 유용하다.

· ipccrack: 원격으로 사용자 계정 암호를 추측하고 취약점을 검색하는 도구입니다.

· chntpw: 물리적인 접근이 가능한 시스템에서 비밀번호를 재설정해주는 프로그램입니다.

· ERD Commander: Windows 시스템에서 비밀번호 복구가 필요할 때 사용합니다.

키 프로토콜

키로거는 설치된 컴퓨터의 키보드로 입력한 정보를 로그로 기록하는 프로그램입니다. 업데이트된 Key-Log 프로그램은 키 입력뿐만 아니라 Windows를 사용하는 프로그램 사용 및 인터넷 액세스 정보를 기록합니다.

또한 실시간으로 공격자에게 로그 파일을 보내거나 지정된 시간에 지정된 메일이나 메신저로 로그 파일을 자동으로 보내는 기능도 있다.

– 키보드 해킹 방지 프로그램

사용자가 입력한 정보를 제3자가 알 수 없도록 사용자의 키보드 입력 자체를 보호하는 프로그램입니다.

취약점 분석

취약성 평가는 일정 수준의 보안을 유지하기 위해 정기적으로 수행되어야 하며, 새로운 소프트웨어나 서비스가 추가되거나 새로운 장비 구입을 통해 네트워크가 확장되는 경우에도 취약성 평가가 수행되어야 합니다.

– 취약점 분석 도구

· SATAN(네트워크 감사용 보안 분석 도구)

해커처럼 시스템에 침투하여 보안 취약점을 찾아 수정할 수 있는 네트워크 분석 보안 관리 도구입니다.

· 사라

SARA는 SATAN이 업데이트 되지 않은 상황에서 SATAN을 기반으로 개발된 취약점 분석 도구입니다. 네트워크 기반 컴퓨터, 서버 및 라우터 IDS에 대한 취약점 분석, Unix 플랫폼에서의 작동 및 HTML 형식의 보고 기능이 있습니다.

· 거룩한

Unix 플랫폼에서 실행되고 HTML 형식의 보고 기능이 있는 네트워크 취약성 분석 도구입니다.

원격으로 취약점을 확인하는 기능이 있습니다.

· 경찰

Unix 플랫폼에서 실행되는 도구로 시스템에서 취약성과 취약한 암호를 검색합니다.

· 네소스

클라이언트-서버 구조에서 클라이언트의 취약점을 확인하는 기능이 있습니다. Nessus 데몬과 다양한 취약점 스캐닝 플러그인이 서버에 설치되며 취약점을 스캔하고 결과를 검색할 수 있는 인터페이스가 제공됩니다. 클라이언트는 Nessus 데몬에 연결하고 대상 시스템에서 취약성을 스캔합니다.

클라이언트는 GUI 형태로 취약점 스캔 설정 및 결과를 검토할 수 있어 취약점이 발견되면 취약점 데이터베이스를 사용하기 쉽고 빠르게 업데이트할 수 있습니다.

Linux, Unix, Windows 등 모든 운영체제 및 기기에 대한 취약점 정보를 제공하며, 취약점 스캔 결과는 TXT, HTML, PDF 등 다양한 형식으로 저장할 수 있습니다.

· nmap

포트 스캐닝 도구로서 스텔스 모드에서의 포트 스캐닝 기능과 TCP 연결 방식을 포함합니다.

무결성 검사

– 파일 무결성 검사(Tripwire)

파일 무결성 검사 도구는 디렉터리 및 파일 정보를 정상 상태로 저장하고 검사 시 저장된 정보와 비교하여 변경 사항을 확인하는 도구이다.

트립와이어는 유닉스/리눅스 환경에서 파일 시스템 무결성 검사를 위한 대표적인 도구로 MD5, SHA, CRC-32 등 다양한 해시 기능을 지원하고 파일이 공격자에 의해 변조되었는지 확인하기 위해 파일에 대한 데이터베이스를 생성합니다.

– 특징

파일 서명도 공격 대상입니다. 공격자는 종종 컴퓨터에서 서명 기반을 찾아 파괴하려고 시도하므로 보호가 필요합니다. 이를 위해 서명 기반을 다른 장치에 저장하거나 복사할 수 있습니다.

그러나 데이터 파일 보호에는 적합하지 않습니다. 데이터 파일이 자주 변경되기 때문에 데이터 파일의 서명을 자주 다시 계산해야 합니다. 이 경우 정상적인 파일 변환과 공격에 의한 파일 변환의 구분이 모호해집니다.

– 작동 원리

초기 설정 파일에 등록된 파일 및 디렉토리의 해시를 생성하여 데이터베이스에 저장합니다.

Tripwire는 정기적으로 운영되므로 기존 데이터베이스에 저장된 해시 값과 각 파일 및 디렉토리의 현재 해시 값을 비교합니다.

비교 결과 값이 다를 경우 변경 이력을 출력하여 관리자가 확인합니다.

스캔 감지 도구

-mscan

메인 도메인 전체를 스캔하여 최근에 널리 사용되고 있는 Wingate, Test-CGI, Statd, Named 등의 중요 취약점을 한번에 스캔하는 해킹툴입니다.

-주사

mscan을 업데이트하여 개발된 Unix/Windows 시스템의 네트워크를 통해 취약점을 검사할 수 있는 도구입니다.

– 징후

포트스캔을 실시간으로 탐지하고 대응하는 프로그램으로 일반스캔과 스텔스스캔 탐지, 스캔 로그 남기기, /etc/hosts.deny 파일에 공격호스트 기록 자동방어 등 모든 것을 자동으로 재구성 트래픽.

네트워크 모니터링 및 침입 탐지 도구

-흡입

IP 네트워크에서 실시간 트래픽 분석 및 패킷 처리를 담당하는 오픈 소스 네트워크 침입 탐지 시스템(IDS)입니다.

로그 분석, 콘텐츠 검색 및 결합 작업을 수행할 수 있으며 BOF, 스텔스 포트 스캐닝, CGI 공격, SMG 프로브 및 OS 핑거프린팅 시도와 같은 다양한 공격을 탐지할 수 있습니다.

방화벽

· TCP 래퍼

TCP 래퍼는 네트워크 서비스와 관련된 트래픽을 제어하고 모니터링할 수 있는 UNIX 기반 방화벽 도구입니다.

어떤 호스트가 서비스를 요청하면 실제 데몬을 실행하기 전에 시스템이 접근을 허용하는지 확인하고, 호스트 이름과 서비스 이름을 로그에 남기고, 허용된 시스템에 서비스를 제공하고, 허용되지 않으면 시스템에 접근하는 것이 도구이다. 차단

· IP체인/IP테이블

IPtable은 패킷 필터 방화벽입니다. 패킷 필터는 네트워크를 통과하는 모든 것이 패킷의 형태라는 것을 의미합니다.