서버 관리자의 업무
- 보안 유지 관리
- 개요
- 보안 유지 관리 프로세스
- 로깅 정보 감시 및 분석
- 정기적인 백업
- 정기적인 시스템 보안 테스트
- 보안 유지 관리 프로세스
- 로깅
- 개요
- 서버 관리자의 업무
- 시스템 관리자 계정으로 작업하기
- root 계정으로 로그인 — 프롬프트 모양이 #
- root 계정으로 변경하기 — su
- 사용자 계정 관리
- 계정 사용 제한
- 원격 접근 권한 제거 — /etc/passwd 파일에서 /bin/bash 같은 셸 삭제
- 계정 사용 기간 설정 —
- 계정 사용 제한
- 자원 관리
- 프로세스 관리
- wait: 프로세스가 끝나기를 기다리는 명령어
- nice: 프로세스의 우선순위를 변경할 수 있는 nice 값을 설정하는 명령어
- 메모리 관리
- free: 시스템 실제 메모리와 스왑 메모리에 대한 사용 현황을 확인할 수 있는 명령어
- 메일, 디스크 등의 자원 관리
- 리눅스 시스템의 경우 디스크 사용량을 사용자 및 그룹별로 설정하기 위해 quota 사용
- 전체적인 메일 용량 크기의 제한은 메일 스풀 디렉터리에 별도의 파티션을 주고 그 파티션에 쿼터를 설정함
- du: 디스크의 파일 사용량을 재귀적으로 보여줌
- 네트워크 관리
- ifconfig: 통신 디바이스(NIC) 상태를 보여줌
- netstat -an: 현 시스템에서 사용되는 통신 서비스의 상태를 보여줌
- top: 시스템 자원의 사용 현황을 보여줌
- ps -elf(-aux): 현 시스템에서 수행 중인 프로그램과 데몬 상태를 보여줌
- who, w: 로그인되어 있는 사용자를 보여줌
- snoop: 네트워크를 흐르는 패킷을 캡쳐하여 분석
- nslookup: 도메인에 대한 IP 정보 및 도메인 네임과 관련된 여러 검색 가능
- hostname: 현 시스템에 할당된 호스트 이름을 보여줌
- tracerout: 특정 호스트까지의 네트워크 라우팅 경로 및 경유 IP를 보여줌
- inetd: 네트워크 슈퍼 데몬 inetd 실행
- 프로세스 관리
- 시스템 관리자 계정으로 작업하기
- 보안 유지 관리
로그 설정과 관리
시스템 로그 분석
- 로그에 대한 이해
- 윈도우
- 이벤트라는 중앙 집중화된 로그를 수집하여 저장
- 관리 용이
- 로그 삭제 용이, 보안 수준 낮음
- 유닉스
- 로그를 여러 곳에 산발적으로 저장
- 로그 삭제 어려움
- 윈도우
- 윈도우의 로그 분석과 설정
- 해커에 대한 즉각적인 확인
- net session
- 현재 로그인된 사용자 확인
- 자신의 시스템에 로그인한 시스템의 IP, 로그인한 계정, 클라이언트의 운영체제, 세션의 수, 로그인 후 경과 시간
- net session /delete — 세션 연결 종료
- psloggedon
- 현재 로컬로 로그인한 계정 정보도 함께 보여줌
- 원격의 관리자가 로컬로 로그인한 사용자 정보를 필요로 할 때 유용
- net session
- 윈도우 시스템 이벤트 로그 종류
- 기본
- 응용 프로그램 로그(AppEvent.Evt) — 응용 프로그램이 기록한 다양한 이벤트가 저장되며, 기록되는 이벤트는 소프트웨어 개발자에 의해 결정
- 보안 로그(SecEvent.Evt) — 로그인 시도 및 파일 생성, 열람, 삭제 등의 리소스 사용에 관련된 이벤트 기록
- 시스템 로그(SysEvent.Evt) — Windows 시스템 구성요소가 기록하는 이벤트로 시스템 부팅 시 드라이버가 로드되지 않는 경우와 같은 오류를 이벤트에 기록
- OS 구성에 따라 추가 가능
- 디렉터리 서비스 로그(도메인 컨트롤러 구성) — Windows Active Directory 서비스에 발생하는 이벤트(예: 서버와 글로벌 카탈로그 사이의 연결 문제)
- 파일 복제 서비스 로그(도메인 컨트롤러 구성) — Windows 파일 복제 서비스에서 발생하는 이벤트(예: 도메인 컨트롤러가 시스템 볼륨 변경 정보로 업데이트되고 있는 동안 발생하는 파일 복제 실패)
- DNS 서버 로그(DNS 서버 구성) — Windows DNS 서비스에 발생하는 이벤트
- 기본
- 감사 정책
- 개체 액세스 감사(감사 없음) — 특정 파일이나 디렉터리, 레지스트리 키, 프린터 등과 같은 객체에 대해 접근을 시도하거나 속성 변경 등을 탐지
- 계정 관리 감사(실패) — 신규 사용자, 그룹의 추가, 기존 사용자 그룹의 변경, 사용자의 활성화/비활성화, 계정 패스워드 변경 등을 감사
- 계정 로그인 이벤트 감사(성공, 실패) — 로그인 이벤트 감사와 마찬가지로 계정의 로그인에 대한 사항을 고르고 남기는데, 도메인 계정의 사용으로 생성됨
- 권한 사용 감사(실패) — 권한 설정 변경, 관리자 권한이 필요한 작업 수행 시 로깅
- 로그인 이벤트 감사(성공, 실패) — 로컬 계정의 접근 시 생성되는 이벤트 감사. 계정 로그인 이벤트 감사에 비해 다양한 종류
- 디렉터리 서비스 액세스 감사(실패) — 시스템 액세스 제어 목록(SACL)이 지정되어 있는 액티브 디렉터리(Active Directory) 개체에 접근하는 사용자에 대한 감사 로그 제공
- 정책 변경 감사(성공, 실패) — 사용자 권한 할당 정책, 감사 정책, 신뢰 정책의 변경과 관련된 사항 로깅
- 프로세스 추적 감사(감사 없음) — 프로세스 시작/중지 시 해당 이벤트 발생
- 시스템 이벤트 감사(감사 없음) — 시스템의 시동과 종료, 보안 로그 삭제 등 시스템의 주요한 사항에 대한 이벤트
- 로그 정책 설정
- 윈도우 로그 정책이 대부분 정보를 로깅하지 않게 기본 설정되어 있음
- 로깅에 시스템 자원이 많이 소모됨
- 이벤트 로그 파일
- %Windows%\system32\config 아래 .evt 확장자 파일
- 바이너리 파일
- 제어판-관리도구-이벤트 뷰어
- 이벤트 뷰어 내용
- 종류 — 정보, 경고, 오류, 성공 감사, 실패 감사
- 날짜, 시간
- 원본, 범주 — 로그와 관계 있는 영역
- 이벤트 ID — 로그별 고유한 번호
- 사용자 — 관련 로그를 발생시킨 사용자
- 컴퓨터 — 관련 로그를 발생시킨 시스템
- 해커에 대한 즉각적인 확인
- 유닉스/리눅스의 로그 분석과 설정
- 로그 디렉터리
- syslogd 데몬 — 로그를 중앙 집중적으로 관리
- 로그가 다양한 경로로 남음
- 저장 경로가 시스템마다 다름. 두 개 이상의 경로에 로그를 나누어 저장하기도 함
- 유닉스 시스템의 로그 디렉터리 위치
- /usr/adm — 초기 유닉스, BSD 계열: HP-UX 9.X, SunOS 4.x
- /var/adm — 최근 유닉스, SVR 계열: HP-UX 10.x 이후, IBM AIX
- /var/log — 일부 BSD 계열: BSD, FreeBSD. 오라클 솔라리스, 리눅스
- /var/run — 일부 리눅스
- utmp(x) 로그
- utmp 데몬 — 유닉스의 가장 기본적인 로깅을 제공하는 데몬(/etc/lib/utmpd), 현재 시스템에 로그인한 사용자의 상태 출력
- utmp.h에서 정의된 구조체로 로그인 데이터를 바이너리로 저장
- 출력 명령 — w, who, users, whodo, finger 등
- wtmp(x) 파일
- wtmp 데몬
- /usr/include/utmp.h 파일 구조체를 그대로 사용
- utmp 데몬과 비슷한 역할 — 사용자 로그인, 로그아웃, 시스템 재부팅 정보
- 바이너리 형태
- last
- wtmp 데몬
- sulog(Unix/SunOS)
- 로그인한 계정의 권한 변경 시 사용한 su 명령에 대한 로그
- 출력 형식 — [날짜] [시간] [+ or -] [터미널 종류] [권한 변경 전 계정 - 변경 후 계정]
- Linux — /var/log/secure
- acct/pacct 로그
- 시스템에 로그인한 모든 사용자가 수행한 프로그램에 대한 정보를 저장하는 로그
- 사용자가 로그인 후 로그오프까지 입력한 명령, 연결에 이용한 터미널의 종류와 시간 등
- 대형 시스템을 여러 사용자가 비용을 지불하는 형식으로 공유할 경우, 사용자에게 요금을 부과하기 위해 이용
- 많은 시스템 자원 소모. 기본으로 동작하지 않음
- 바이너리 형태
- acctcom, lastcomm
- .sh_history 또는 .bash_history
- [셸의 종류]_history
- 실행한 명령에 대한 기록
- 각 계정의 홈 디렉터리에 저장
- 텍스트 형식
- 파일 소유자만 읽고 쓸 수 있으나, 공격자에게 많은 정보 제공
- loginlog(Unix/SunOS), btmp(Linux)
- Linux
- /var/log/btmp
- 바이너리 파일
- lastb
- 실패한 모든 로그
- Unix(SunOS)
- /var/adm/loginlog
- 텍스트 파일
- 5회 이상 실패 시 실패한 로그
- Linux
- lastlog
- 가장 최근에 성공한 로그인 기록
- 바이너리 파일
- lastlog(Linux), finger(Linux, Unix/SunOS)
- FTP 파일 전송 로그(xferlog)
- FTP 로그 파일. porftpd 또는 vsftpd 데몬들의 서비스 내역 기록
- 공격자가 FTP 서비스를 이용해 시스템에서 어떤 파일을 복사했는지, 또 어떤 파일을 시스템에 복사해두었는지 찾을 때 유용
- 파일 전송 날짜와 시간, 접근 시스템의 IP, 전송한 파일
- [요일] [월] [일] [시간] [년도] 1 192.168.11 [파일 크기(byte)] [전송된 파일의 이름] [전송 방법] [특수 동작] [방향] [접근 계정] [서비스 이름] [인증 서버 사용 여부] [인증 사용자] [파일 전송 성공 여부] 861486 0
- 전송 방법
- a — 텍스트 파일
- b — 바이너리 파일
- 특수 동작 — 파일 전송 이외에 행한 동작에 대한 정보
- C(Compress) — 파일 압축
- U(Uncompress) — 파일 압축 해제
- T(Tar) — Tar 등을 이용해 파일이 묶임
- _ — 아무 동작 없음
- 방향 — O/I
- 접근 계정
- A — 익명 계정
- G — 패스워드가 설정된 Guest 계정
- R [사용자 계정] — 인증된 사용자. /etc/passwd 파일 내 사용자로 서비스 이용
- 서비스 이름 - FTP
- 인증 서버 사용 여부
- 0 — 인증 서버가 없는 경우
- 1 — RFC 931(Authentication Server)을 이용한 인증 수행
- 인증 사용자 ID
- 인증 방법에 의해 되돌려지는 User ID
- — 인증된 사용자 ID를 사용할 수 없음
- 파일 전송 성공 여부 — C/I
- HTTPD Log(Access_log, Error_log) — 웹서비스에 의한 로그는 /usr/local/apache/logs 디렉터리에 Access_log, Error_log 등과 같은 로그 파일로 남음
- 로그 정리
- dmesg — 리눅스가 부팅될 때 출력되는 모든 메시지 기록. 부팅 시 에러 및 조치사항
- messages
- 시스템의 가장 기본적인 시스템 로그 파일
- 시스템 운영에 대한 전반적인 메시지를 주로 저장
- 주로 시스템 데몬들의 실행 상황 및 내역, 사용자들의 접속 정보, TCPWrapper 접근제어 정보 등
- secure
- 원격 로그인 정보를 기록하고 있는 로그 파일
- tcp_wrapper(xinetd)의 접속 제어에 관한 로그 파일은 언제, 누가, 어디에서, 어떻게 접속했는가에 대한 로그 기록
- 로그 디렉터리
- 유닉스/리눅스 시스템 로그 설정(/etc/syslog.conf)
- 개요
- 유닉스는 표준 인터페이스(API) syslog에 의해 로그를 생성하고 관리
- 각종 메시지 체계적 관리 가능
- 운영체제에 의해 자동으로 시작
- /etc/syslog.conf를 읽어 어떤 로그를 어디에 나길지 결정
- facility(A).priority(B) action(logfile-location)(C) → A 서비스에 대해 B의 경우 C 로그 파일에 기록
- facility: 서비스 이름(메시지 종류)
- *
- auth — login. su처럼 사용자 권한 사용/변경
- authpriv — auth + 선택된 사용자만 읽을 수 있는 파일에 로그 기록
- console — 콘솔에 일반적으로 나타나는 메시지
- cron — 시스템 스케줄러에 보내는 메시지
- daemon — 별도의 핸들러가 없는 모든 시스템 데몬 로그
- ftp
- kern — 커널 메시지
- lpr — 프린터 시스템에서 오는 메시지
- mark — 로그에 20분마다 단순히 통보하는 메시지. 실제 로그 아님
- news — 인터넷 뉴스 데몬에서 보내는 메시지
- ntp — Network Time Protocol이 보내는 메시지
- NTP — 시스템의 시간을 서로 일정하게 맞춤
- security — 각종 보안 시스템이 보내는 메시지
- syslog — 로그 서비스 자체적으로 로그를 남길 수 있음. 로그 시스템에서 보내는 로그는 혼란을 피하기 위해 남기지 않도록 함
- user — 사용자 프로그램에 대한 로깅
- uucp — Unix-to-Unix Copy 프로토콜이 보내는 로그
- UUCP
- 하나의 시스템이 전화선을 통해 다른 시스템과 접속하는 경우가 필요한 초기에 만들어진 유닉스 컴퓨터를 연결하는 국제적인 공동 광역 통신망
- 전자 메일 전송을 위해 사용
- 대규모 국제 네트워크를 칭하는 용어로 사용
- UUCP
- local0~7 — local0 ~ local7 관리자가 사용할 수 있도록 예약된 것
- priority: 메시지 우선순위(또는 로그 레벨)
- Emergency(emerg)
- 시스템이 비정상적인 상태
- 모든 터미널에서 메시지가 깜빡임
- 시스템이 멈췄거나 아주 불안정한 패닉 상태
- 전체 공지가 필요한 상황
- alert(alert)
- 시스템을 가동시킬 수 있지만, 즉각 조치해야 함
- 시스템 데이터베이스 오류 등
- Critical(crit)
- 하드웨어나 심각한 소프트웨어 문제같은 치명적인 오류
- 하드 드라이브에 bad 블록이 생겼을 때 발생. 조치 필요
- Error(err) — 고쳐야 하지만 시스템을 망가뜨릴 정도는 아님
- Warning(warning)
- Notice(notice) — 에러는 아니지만 관리자의 조치 필요
- Information(info)
- 일반적인 시스템 정보
- 의미 있는 정보 관련 메시지
- debug(debug)
- 프로그램 동작 원리를 알고자 하는 시스템 관리자가 사용
- 사용자 프라이버시를 침해할 만한 정보 존재 가능
- Emergency(emerg)
- action
- 로그를 어디에 남길 것인지 결정
- 로그 파일 — 파일명 지정(/var/log/secure 등)
- 콘솔 — /dev/console로 지정 시 콘솔 출력
- 원격 로그 서버: [@호스트 주소]를 통해 지정한 호스트로 로그 전송
- user: 지정된 사용자의 스크린으로 메시지 전송
- *: 현재 로그인되어 있는 모든 사용자의 스크린으로 메시지 전송
- 개요
- 로그 관리
- 로그 모니터링
- 텍스트 형식 로그 실시간 모니터링 — tail -f /var/log/messages
- -f — 실시간 출력
- tail — 대상 파일의 마지막 n 라인 출력
- 로그 순환
- logrotate — 시스템 로그 파일에 대해 로테이트, 압축, 또는 메일을 발송하는 리눅스 시스템 로그 파일 관리기
- 데몬 — /usr/sbin/logrotate — 데몬 위치 및 데몬 프로그램
- 데몬 설정 파일 — /etc/logrotate.conf — 설정 파일
- 설정 디렉터리 — /etc/logrotate.d — logrotate에 적용한 각종 로그 파일을 보관하는 디렉터리
- 상황 파일 — /var/lib/logrotate.status — logrotate 작업 내역을 보관하는 파일
- cron — /etc/cron.daily/logrotate — cron에 의해 일 단위로 실행
- 텍스트 형식 로그 실시간 모니터링 — tail -f /var/log/messages
- 로그 모니터링
- 로그에 대한 이해
응용 프로그램 로그 관리
IIS 웹 서버 로그
- 개요
- IIS — MS가 개발한 인터넷/인트라넷용 서버 소프트웨어
- W3C 형식으로 남도록 기본 설정
- NCSA 공통 고르 파일 형식, Microsoft IIS 로그 파일 형식 등 사용 가능
- W3C 주요 로그 필드
- date
- time — GMT 표준시 + 9시간 → 한국 시간
- c-ip — 웹 페이지에 접속한 사용자 정보(공격자 IP)
- cs-username — 접속 사용자 계정
- s-computername — 웹 서버 이름
- s-port — 웹 서버 포트
- cs-method — HTTP 메소드
- cs-uri-stem
- www.xxx.com/bs/bs.asp?id=123 → GET /bs/bs.asp id=123
- cs-uri-query
- id=123
- sc-status — 응답 코드
- Cs(Referer) — 사이트 접속 전 어느 사이트를 거쳤는지에 대한 정보
- Cs(Cookie)
- 로그 예제
- 날짜와 시간
- 서버 IP
- HTTP 접근 방법과 접근 URL
- 서버 포트
- 클라이언트 IP
- 클라이언트 웹 브라우저
- 실행 결과 코드
- 클라이언트로 전송한 데이터 크기
- 서버로 전송한 데이터 크기
- 처리 소요 시간
- 개요
Apahce 웹 서버 로그
로그 형식
- 클라이언트 요청에 의해 웹 서버가 응답한 내용 — 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” combiend
→ combined: 위의 3가지 로그 포맷을 모두 조합한 것
Combined 형식의 각 항목에 대한 내용
- %a — 클라이언트 IP 주소
- %b — 헤더 정보를 제외하고 전송된 데이터의 크기. 0이면 -
- %c — 응답이 완료되었을 때 연결 상태
- x: 응답이 완료되기 전 연결 끊김
- +: 응답을 보낸 뒤에도 연결이 지속됨
- -: 응답을 보낸 뒤 연결이 끊김
- %{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% 신뢰 불가능)
- %v — 요청을 처리하는 서버의 이름
- %V — 클라이언트의 웹 브라우저
로그 예시
- /etc/httpd/logs/access_log
- 클라이언트 IP
- 클라이언트 로그인명
- 클라이언트 사용자명
- 날짜와 시간
- HTTP 접근 방법과 접근 URL
- 실행 결과 코드
- 서버에서 클라이언트로 전송한 데이터 크기
- 클라이언트의 웹 브라우저
- /etc/httpd/logs/error_log
- 오류 발생 날짜 및 시간
- 오류의 심각성 — debug, info, notice, warn, error, ciritical, alert, emerg 등
- 클라이언트의 접근 IP 주소
- 접근한 웹 경로
- 성공 또는 실패 여부
- 발생한 오류에 대한 설명
- 3~6번 항목은 오류 종류에 따라 다양하게 기술될 수 있음
- /etc/httpd/logs/access_log
공개 해킹 도구에 대한 이해와 대응
- 크래킹 S/W
- 크래킹 개요
- 악의적인 목적을 가지고 시스템에 침입하는 행위
- 쉐어웨어 프로그램을 정식 버전으로 변환하는 행위
- ID, 패스워드를 대입하여 맞는지를 지속적으로 수행
- 크래킹 S/W 사례
- John the Ripper
- 패스워드 점검 도구
- 윈도우, 리눅스, Mac 지원
- pwdump — 윈도우에서 패스워드를 덤프할 수 있는 도구
- L0phtCrack
- 패스워드 취약점 점검 도구
- 원격 및 로컬 서버나 PC에 대해 패스워드를 점검하는 데 유용
- ipccrack — 사용자 계정 패스워드를 원격지에서 추측하여 취약점을 점검하는 도구
- chntpw — 물리적 접근이 가능한 시스템에서 패스워드를 리셋시키는 프로그램
- ERD Commander — 윈도우 시스템에서 패스워드를 복구해야 하는 경우 사용
- John the Ripper
- 크래킹 개요
- 키로그 S/W
- 개요
- 업데이트된 프로그램 — 키보드 입력 + 윈도우를 이용한 프로그램 사용, 인터넷 익스플로러를 이용한 인터넷 접속 정보
- 실시간 전송 or 지정된 시간 전송
- 키보드 해킹 방지 프로그램
- 키보드 입력 자체를 보호하여 사용자 입력 정보를 제3자가 알아볼 수 없도록 하는 프로그램
- 동작 중임을 화면 하단에 나타냄
- 개요
- 크래킹 S/W
서버 보안용 S/W 설치 및 운영
- 취약점 분석 도구
- 취약점 분석 — 정기적, 소프트웨어나 서비스가 추가되는 경우, 새로운 장비를 구입하여 네트워크를 확장했을 경우
- 취약점 분석 도구
- SATAN(Security Analysis Tool for Auditing Networks) — 해커와 똑같은 방식으로 시스템에 침입하여 보안상의 약점을 찾아 보완할 수 있는 네트워크 분석용 보안 관리 도구
- SARA
- SATAN이 업데이트가 되지 않는 상황에서 SATAN을 기반으로 개발된 취약점 분석 도구
- 네트워크 기반 컴퓨터, 서버, 라우터 IDS에 대한 취약점 분석, 유닉스 플랫폼에서의 동작, HTML 형식의 보고서 기능
- SAINT
- 유닉스 플랫폼에서 동작하는 네트워크 취약점 분석 도구
- HTML 형식의 보고서 기능
- 원격에서 취약점을 점검하는 기능
- COPS
- 유닉스 플랫폼에서 동작하며 시스템 내부에 존재하는 취약점을 점검하는 도구
- 취약한 패스워드
- Nessus
- 클라이언트-서버 구조로 클라이언트 취약점 점검
- 취약점을 점검하고 결과를 조회할 수 있는 인터페이스 제공
- nessus 데몬에 접속하여 대상 시스템에 대한 취약점 점검
- 사용이 자유롭고 플러그인 업데이트 등 용이
- 취약점 공개 시 빠르게 취약점 DB 업데이트
- HTML 등 여러 형태로 결과 리포트
- 리눅스 뿐만 아니라 유닉스, 윈도우 등 모든 OS 및 장비에 대한 취약점 정보 제공
- TXT, HTML, PDF 등 다양한 포맷으로 저장
- 클라이언트-서버 구조로 클라이언트 취약점 점검
- nmap — 포트 스캐닝 도구. TCP connect 방식뿐만 아니라 stealth 모드 포트 스캐닝 기능
- 무결성 점검
- 파일 무결성 점검(tripwire)
- 개요
- 파일 무결성 점검 도구 — 정상적인 상태의 디렉터리 및 파일 정보를 백업하고, 수행 시점에서의 정보와 백업한 정보를 비교하여 변경된 사항을 점검하는 도구
- tripwire — 유닉스/리눅스 환경에서 파일시스템 무결성을 점검하는 대표적인 도구로 오픈소스 버전과 상용 버전 존재
- MD5, SHA, CRC-32 등 다양한 해시 함수 지원
- 파일에 대한 데이터베이스를 만들어, 이를 통해 공격자들에 의한 파일 변조 여부 판별
- 특징
- 컴퓨터 상의 시그니처 베이스를 찾아 파괴하려고 함 → 다른 장치에 시그니처 베이스를 저장하거나 복사본 저장
- 데이터 파일은 자주 변경되어 데이터 파일의 시그니처는 자주 재계산되어야 함 → 어떤 파일 변환이 정상인지 모호해짐
- 개요
- 파일 무결성 점검(tripwire)
- 스캔 탐지
- 스캔 탐지 도구
- mscan — 메인 전체를 스캔하여 그 도메인 내에 있는 wingate, test-cgi, NFS exports, statd, named, ipopd 등 많이 이용되는 주요 취약점을 한 번에 스캔할 수 있는 해킹 도구
- sscan — mscan을 업데이트하여 개발한 유닉스/윈도우 시스템에 대해 네트워크를 통해 취약점 점검을 수행할 수 있는 도구. 공격용으로 활용
- portsentry
- 실시간으로 포트 스캔을 탐지하기 대응하기 위한 프로그램
- 정상적인 스캔과 stealth 스캔 탐지, 스캔 로그 남기기, 공격 호스트를 /etc/hosts.deny 파일에 기록하여 자동 방어, 공격 호스트를 경유하여 오는 모든 트래픽을 자동 재구성
- 무결성 점검 도구
- Fcheck — perl 스크립트로 제작
- Samhain — HIDS 기반 동작
- 스캔 탐지 도구
- 침입 탐지 및 방화벽
- 네트워크 모니터링 및 침입 탐지 도구
- Snort
- 실시간 트래픽 분석과 IP 네트워크에서의 패킷 처리를 담당하는 공개 소스 네트워크 IDS
- 프로토콜 분석, 콘텐츠 검색 및 조합 작업
- 버퍼 오버플로우, 은폐형 포트 스캔, CGI 공격, SMB 프로브, OS 핑거프린팅 시도 등 감지
- SMB — 윈도우 환경에서 사용되는 파일/프린터 공유 ㅍ로토콜
- 트래픽을 분석하여 모듈화된 탐지 엔진, 실시간 경고 기능 지원
- Snort
- 방화벽
- TCP-Wrapper
- 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링할 수 있는 UNIX 기반 방화벽 툴
- 데몬을 구동하기 전에 접속을 허용한 시스템인지 여부를 확인하여 호스트명 및 서비스명을 로그에 남기고, 서비스 제공 여부 결정
- IPchain/IPtable — 패킷 필터링 방화벽
- TCP-Wrapper
- ipfwadm — 리눅스 커널에서 IP 방화벽, 통계 분석 규칙을 설정, 유지, 감독하기 위한 도구
- ipchains
- 리눅스 커널 2.2 버전 이상에서 사용하는 방화벽
- 커널에서 들어오고 나가는 패킷을 선택적으로 구별하는 필터링
- 규칙을 정하고 자신만의 규칙에 맞게 조절 가능
- 네트워크 모니터링 및 침입 탐지 도구
- 취약점 분석 도구
- prstat — 사용자가 어떤 프로세스들이 CPU 자원을 소모하는지 파악
'정보보안기사' 카테고리의 다른 글
| [정보보안기사] SECTION 18 최신 보안 주제들 (0) | 2026.01.17 |
|---|---|
| [정보보안기사] SECTION 17 각종 시스템 보안 위협 및 대응책 (1) | 2026.01.16 |
| [정보보안기사] SECTION 15 유닉스/리눅스 서버 보안 (0) | 2026.01.15 |
| [정보보안기사] SECTION 14 윈도우 서버 (0) | 2026.01.13 |
| [정보보안기사] SECTION 13 클라이언트 보안 (1) | 2026.01.12 |