로깅
1. 이미 발생한 나쁜 일을 알려주기만 하는 반 작용적 제어
2. 효과적인 로깅은 시스템 파괴, 고장시 무슨 일이 있는지 빠르고 정확하게 찾을 수 있도록 알려주고 효과적인 교정과 복구 노력에 집중
서버관리자의 업무
1. 시스템 관리자 계정으로 작업하기
- 시스템 관리자로 작업을 하는 2가지 방법 : 1. root 계정 로그인, 2. su를 이용한 로그인
2. 사용자 계정 관리
1. 만약 사용자마다 계정을 생성 시 /etc/passwd 파일에 계정 및 패스워드, 사용자 및 그룹 ID, 쉘이 정의됨
2. /etc/passwd 파일은 일반 사용자도 접근이 가능 → 안전한 관리를 위해 /etc/shadow 패스워드 시스템 사용
3. 계정 사용 제한
- 원격 접근권한 제거 : /etc/passwd 파일에서 쉘 부분 삭제하기
- 계정 사용기간 설정 : /etc/shadow 파일에서 사용기간 또는 만료일 설정
3. 자원관리
1. 프로세스 관리
- ps, kill, wait, su 등을 이용하여 프로세스를 관리해준다.
- nice : 프로세스의 우선순위를 변경할 수 있는 명령어
2. 메모리 관리
- free : 시스템의 실제 메모리와 스왑 메모리에 대한 사용 현황을 알 수 있음
3. 메일, 디스크 등의 자원 관리
- quota : 디스크 사용량을 사용자 및 그룹별로 설정
- du : 디스크 파일 사용량을 재귀적으로 알려줌
4. 네트워크 관리
1. 네트워크 연결 관리를 위한 명령어
구분 |
설명 |
ifconfig |
통신 디바이스 상태(NIC)를 나타냄 |
netstat -an |
현 시스템에서 사용되는 통신 서비스 상태 |
top |
시스템 자원 현황 |
ps -elf(-aux) |
현 시스템에서 수행중인 프로그램, 데몬상태 |
who, w |
로그인 되어있는 사용자 보여줌 |
snoop |
네트워크에 흐르는 패킷 캡쳐 분석 |
nslookup |
도메인에 관련된 여러 검색이 가능 |
hostname |
현 시스템에 할당된 호스트 이름 알려줌 |
traceroute |
특정 호스트 까지의 네트워크 라우팅 경로 및 경유 IP 알려줌 |
inetd |
inetd 실행 |
로그
- 시스템에서 모든 사용내역을 기록하고 있는 것
- 윈도우는 로그를 중앙 집중화 하여 저장, 유닉스는 로그를 산발적으로 저장
- 윈도우는 로그 관리가 쉽지만 로그에 대한 보안 수준은 낮다.
- 유닉스는 로그 관리가 어렵지만, 공격자도 로그를 찾는 것이 어렵다.
- 현재 로그인 된 사용자 확인하기 : netsession / psloggedon
※ netssesion / delete : 현재 연결된 세션 끊기
윈도우 시스템 이벤트 로그 종류
이벤트 로그 |
설명 |
비고 |
응용 프로그램 로그 |
ㆍ프로그램 개발자에 의해 이벤트 정의, 분류 |
AppEvent.Evt |
보안 로그 |
ㆍ로그인시도, 파일생성, 열람, 삭제 관련 로그 저장 |
SecEvent.Evt |
시스템 로그 |
ㆍ윈도우 시스템에서 사전에 정한 윈도우 윈도우 시스템 구성요소에서 기록한 이벤트 자료 |
SysEvent.Evt |
디렉터리 서비스 로그 |
ㆍ윈도우 디렉터리 서비스에서 발생한 이벤트 기록 |
도메인 컨트롤러 구성 |
파일 복제 서비스 로그 |
ㆍ파일 복제 서비스에서 발생하는 이벤트 기록 | |
DNS 서버 로그 |
ㆍDNS 서비스에서 발생하는 이벤트 기록 |
DNS 서버 구성 |
1. 윈도우 감사정책
- 윈도우 감사정책 : 어떤 로그를 남길지 정의하는 규칙
- 윈도우 감사정책 종류
1. 개체 액세스 검사
2. 계정관리 감사
3. 계정 로그인 이벤트 감사
4. 권한 사용 감사
5. 로그인 이벤트 감사
6. 디렉터리 서비스 엑세스 감사
7. 정책변경 감사
8. 프로세스 추적 감사
9. 시스템 이벤트 감사
2. 로그 정책 설정
- 윈도우 로그정책은 [제어판]-[관리도구]-[로컬 보안 정책]-[로컬정책]-[감사정책]에서 확인 가능
- 윈도우는 유닉스에 비해 로깅하는데 시스템 자원이 많이 필요하므로 정보를 로깅하는 것은 바람직 하지 않다.
3. 이벤트 로그 파일
- 이벤트 로그 파일은 %windows%\system32\config 폴더 아래 .evt 확장자를 가진 파일
- 이벤트 로그파일은 바이너리 형식 → 별도의 프로그램(이벤트 뷰어)를 통해 열어야 함
- [제어판]-[관리도구]-[이벤트뷰어]를 통해 로깅 정보 확인 가능
유닉스 / 리눅스의 로그 분석과 설정
1. 유닉스에는 로그를 집중관리 하는 syslogd가 있지만 로그가 다양한 경로로 남기 때문에 모두 파악하고 관리하기는 어렵다.
2. 이 다양한 로그를 바탕으로 해커 추적이 가능
3. 주요 유닉스 시스템의 로그 디렉터리 위치
경로 |
적용 시스템 |
/usr/adm |
초기 유닉스 계열, BSD 계열 : Sun OS, HP-UX 9.x 이후 |
/var/adm |
최근 유닉스 계열, SVR 계열 : 오라클 솔라리스, HP-UX 10.x 이후 |
/var/log |
일부 BSD 계열 : BSD, 리눅스 |
/var/run |
일부 리눅스 |
4. 주요 로그 파일
1. utmp(x) 로그
- 현재 시스템에 로그인한 사용자의 상태 출력
- 바이너리 형태로 저장 → 특정 명령어 통해 확인 가능(w, who, users, whodo, finger)
2. wtmp(x) 파일
- 전체 사용자의 로그인, 로그아웃, 시스템 재부팅 정보를 담는다.
- 바이너리 형태로저장 → 특정 명령어 통해 확인 가능(last)
3. sulog
- su 명령어(로그인 계정 권한 변경시 사용)에 대한 로그
- /var/adm/sulog 파일에(linux 경우 /var/log/secure)에 텍스트 형식으로 남음
- 권한 = 600 → 관리자만 읽고 쓰기가 가능
- sulog에서 권한 실패시 -로 표시 → 관리자는 이것을 통해 공격시도를 알 수 있음
4. acct/pacct 로그
- 시스템에 로그인한 모든 사용자가 수행한 프로그램에 대한 정보를 저장하는 로그
- pacct는 사용자에 대한 요금 부과하기 위해 사용
- 바이너리 형태로 저장 → 특정 명령어 통해 확인 가능(acctom, lastcomm)
5. .sh_history 또는 .bash_history
- 유닉스에서 실행한 명령에 대한 기록을 각 계정의 홈 디렉터리에 저장
- history 명령을 내리면 실행한 명령이 순서대로 출력
- 텍스트 형식으로 저장 → cat, more 명령어로 확인 가능
- 권한 600 →관리자만 읽고 쓰기 가능
6. loginlog(Unix, sunOS), btmp(Linux)
- Linux : /var/log/btmp에 binary 파일로 저장 → lastb로 확인, 실패한 모든 로그 남김
- Unix : /var/adm/loginlog에 텍스트 파일로 저장 → vi 편집기로 확인, 5회이상 실패시 실패 로그 남김
7. lastlog
- 가장 최근에 성공한 로그인 기록 담고있는 로그 파일
- 바이너리 형태로 저장 → lastog(Linux), finger(Unix)명령 사용
8. xferlog(FTP 파일 전송 로그)
- FTP 로그 파일, proftpd, vsftpd 데몬들의 서비스 내역 기록
- 공격자가 FTP 서비스를 이용해 시스템에서 어떤 파일을 복사했는지, 어떤 파일을 시스템에 복사해두었는지 찾아야 할 때 유용
THU FEB 3 18:43:46 2011 1 192.168.1.1 861486 /tmp/12-67-ftp1.bmp b - o r park ftp 0 * c |
※ 1. 861486 : 전송된 파일 크기(바이트)
2. /tmp/12-67-ftp1.bmp : 파일 이름
3. b : 전송방법(a = 텍스트 파일 ,b = 바이너리 파일)
4. - : 특수동작(c = 파일 압축, u = 파일 압축 해제, T : Tar 이용한 압축, - : 아무동작 x)
5. o : 방향(o = 서버 → 클라이언트로 파일 복사, I = 서버 시스템 → 클라이언트 파일 복사)
6. r park : 접근계정(A = 익명, G = 패스워드 설정 된 게스트, R[사용자계정] = 인증된 사용자)
7. 0 = 인증서버 사용 여부(0 = 인증서버 x, 1 = RFC 931을 이용한 수행)
8. * = 인증 사용자 ID
9. c = 파일 전송 성공 여부(C = 파일 전송 성공, I = 파일 전송 실패)
9. HTTPD log
- 웹 서비스에 의한 로그 기록 남김
- /usr/local/apache/logs 디렉터리에 Access_log, Error_log 등 으로 남김
10. 기타로그
- dmesg : 리눅스가 부팅될 때 출력되는 모든 메시지 기록
- messages : 시스템 운영에 대한 전반적인 메시지 저장
- secure : 원격로그인 정보를 담고있는 로그 파일
유닉스/리눅스 시스템 로그 설정(/etc/syslog.conf)
1. 유닉스에서 syslog를 통해 로그 생성, 관리한다.
2. syslog 이용시 각종 메시지를 체계적으로 관리할 수 있다.
3. syslogd는 운영체제에 의해 자동으로 시작
4. /etc/syslog.conf를 읽어 로그를 어디에 남길지 결정
5. /etc/syslog.conf 구성
facility.priority; facility.priority action(logfile-location) |
- facility : 서비스 이름(메시지 종류)
1. auth : 사용자 권한을 사용하거나 변경
2. lpr : 프린터 시스템에서 오는 msg
3. mark : 로그에 20분마다 단순히 통보하는 msg로 실제 로그는 아님
4. ntp : 시스템 시간을 일정하게 서로 맞춰주는 msg(시간 동기화)
5. syslog : 로그 서비스 자체적으로 남기는 로그
- priority : 메시지 우선순위
priority |
설명 |
우선순위 |
emergency |
ㆍ시스템이 비상적 상태, 모든 터미널 메시지가 깜박임 ㆍ시스템이 멈췄거나 아주 불 안정한 상태 ㆍ전체 공지가 필요한 경우 |
1 |
alert |
ㆍemergency 보다는 안정되나 굉장히 안 좋은 상태 ㆍ시스템을 계속 가동 시킬수 있으나, 즉각 조치가 필요함 |
2 |
critical |
ㆍ하드웨어나 심각한 소프트웨어 문제같은 치명적 오류 ㆍ하드 드라이브에 bad 블록 발생시 생김 |
3 |
error |
ㆍ일반적인 에러/오류 발생 ㆍ고치긴 해야하지만 시스템을 망가뜨리는 수준은 아님 |
4 |
warning |
ㆍ경고 메시지 |
5 |
notice |
ㆍ에러 / 오류는 아니지만 관리자의 조치가 필요한 상황 |
6 |
information |
ㆍ일발적인 시스템 정보 |
7 |
debug |
ㆍ프로그램이 동작하는 원리에 대해 알고자 하는 시스템 관리자가 사용 |
8 |
- action : 로그를 어디에 남길 것인지 결정
6. 로그 관리
- 로그 모니터링
1. /var/log/secure 파일처럼 텍스트 형식의 로그를 실시간으로 계속 모니터링 하려면 tail -f /var/log/messages 명령 이용하면 된다.
※ var/log/messages = 시스템 운영 전반에 대한 msg, 내용 변경시, /etc/syslog.conf에서 한다.
2. utmp, wtmp, lastlog 등 바이러니 형식 로그파일은 별도 파일을 이용해야 한다.
- 로그 순환 : logrotate는 시스템 로그 파일에 대하여 로테이트, 압축, 메일을 발송해주는 리눅스 시스템 로그 파일 관리기이다.
응용 프로그램 로그 관리
IIS
- 마이크로소프트사가 개발한 인트라넷 용 소프웨어로써 복잡한 절차 없이 WWW 서버를 관리 가능
- IIS 웹 서버의 기본설정이면서 가장 널리 이용되는 로그형식은 W3C 확장 로그파일 형식이다.
- W3C 로그 예제
2018-01-29 20:17:13 195.168.137.128 GET /XSS/GetCookie.asp?cookie=ASPSESSIONIDQQCAQDDA 80 - 192.168.137.1 Mozila/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;) 200 0 0 225 |
2018-01-29 20:17:13 = 날짜와 시간 195.168.137.128 = 서버 IP GET /XSS/GetCookie.asp?cookie=ASPSESSIONIDQQCAQDDA = HTTP 접근 방법과 접근 URL 80 : 서버 포트 192.168.137.1 = 클라이언트 IP Mozila/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;) = 클라이언트 웹 브라우저 200 = 상태코드(200 = OK) 0 = 서버에서 클라이언트로 전송한 데이터 크기 0 = 클라이언트에서 서버로 전송한 데이터의 크기 225 = 처리소요시간(ms) |
Appache 웹 서버 로그
- Appache 웹 서버는 클라이언트의 요청에 의해 웹 서버가 응답한 내용은 access 로그 파일에 기록, 클라이언트 요청에 웹 서버가 오류 발생 시 에러로그(error log)에 기록
- Appache 웹 서버는 httpd.conf 파일서 LogFormat을 확인할 수 있다.
- 로그 예시
192.168.137.1 - - [29/jan/2019:20:23:19+0900] "GET /HTTP/1.1" 403 4609 "-" "Mozila/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident//5.0)" |
192.168.137.1 = 클라이언트 IP - : 클라이언트 로그인명 - : 클라이언트 사용자명 [29/jan/2019:20:23:19+0900] : 로그인 시간과 날짜 "GET /HTTP/1.1" : HTTP 접근방법과 접근 URL 403 : 상태코드(403 = Forbbiden) 4609 : 서버에서 클라이언트로 전송한 데이터 크기(byte) "Mozila/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident//5.0)" : 클라이언트의 웹 브라우저 |
공개 해킹도구
1. 크래킹 S/W
- 크래킹 : 해킹과 비교하여 악의적인 목적을 가지고 시스템에 침입하는 행위
- 크래킹 기술로 사용자의 ID, 패스워드를 찾을 수 있다.
- 크래킹 도구 : John the Ripper, pwdump, L0phtCrack, ipcrack, chntpw, ERD Commander
2. 키로그 S/W
- 키보드로 입력한 정보를 로그로 남기는 프로그램
서버 보안용 S/W 설치 및 운영
- 취약점 분석 도구
1. SATAN : 보안상 약점을 찾아 보완할 수 있는 네트워크 분석용 보안관리도구
2. SARA : SATAN 기반으로 개발된 취약점 분석도구, IDS,라우터, 서버에 대한 취약점 분석
3. SAINT : 유닉스 플랫폼에서 동작하는 네트워크 취약점 분석 도구, 원격에서 취약점 점검 가능
4. COPS : 시스템 내부에 존재하는 취약점을 점검하는 도구, 취약 패스워드 체크
5. Nessus : 클라이언트 - 서버 구조, 클라이언트의 취약점 점검 도구, 플러그인 업데이트 쉬움
6. nmap : TCP connect 방식뿐 아니라 stealth 모드로 포트 스캐닝 기능 포함
- 파일 무결성 점검(tripwire)
1. 정상적인 상태의 디렉터리 파일 정보 백업 후 점검 수행시점에서 백업정보와 현재 정보 비교
2. 종류 : tripwire, Fcheck, AIDE, MD5(tripwire은 MD5, SHA, CRC-32 다양한 해시함수 지원)
- 스캔 탐지도구
1. mscan = 메인 전체를 스캔하여 그 도메인 내에 있는 주요 취약점을 한번에 스캔 가능
2. sscan = 유닉스 / 윈도우 시스템에 대해 네트워크를 통하여 취약점 점검을 수행할 수 있는 도구
3. portsentry = 실시간 포트 스캔 탐지 / 대응하기 위한 프로그램, 정상 스캔 / stealth 스캔 탐지 가능, 스캔로그 남기기, 공격 host를 /etc/hosts.deny 파일에 기록 해 자동방어, 공격 호스트 경유해 오는 트래픽 재구성 등이 있다.
- 네트워크 모니터링 및 침입탐지 도구
1. snort
- 실시간 트래픽 분석과 IP 네트워크에서 패킷 처리 담당하는 공개 소스 네트워크 침입탐지 시스템(IDS)
- 프로토콜 분석, SMB 프로브, 은폐형 포트 스캔, OS 핑거프린팅 시도 등 다양한 공격 탐지 가능(※ SMB = 윈도우 환경에서 사용되는 파일 / 프린터 공유 프로토콜)
- 방화벽
1. TCP-Wrapper
- 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링 가능한 UNIX 기반 방화벽 툴
2. IPchain / IPtable
- IPtable은 패킷 필터링 방화벽
- 서버에 들어오고 나가는 IP 트래픽 제어할 수 있음
'보안기사 > 필기' 카테고리의 다른 글
기사 자격증(알기사, 네트워크 개요) (0) | 2019.01.31 |
---|---|
기사 자격증(알기사, 각종 시스템 보안 위협 및 대응책) (0) | 2019.01.30 |
기사 자격증(알기사, 유닉스, 리눅스 서버 보안) (0) | 2019.01.25 |
기사 자격증(알기사, 윈도우 서버 보안) (0) | 2019.01.25 |
기사자격증(알기사, 클라이언트 보안) (0) | 2019.01.23 |