syslog는 기밀성, 무결성, 가용성 등 정보보호 특성을 고려하지 않고 개발되었다. 따라서 UDP를 통해 로그를 전송할 때 공격자가 syslog 메시지를 모니터링하여 중요 정보를 알아낼 수 있다. 이 때문에 RFC 3195(Reliable Delivery for syslog)에서는 다음과 같은 몇가지 보안 기능을 제공하도록 권고하고 있다.
- 로그 전송의 신뢰성을 보장하기 위해 연결 지향 프로토콜인 ( A )을/를 이용하도록 권고한다.
- syslog 메시지 전송 시 기밀성 보장을 위해 syslog 서버와 로그 수집 대상 서버의 IP를 제외한 페이로드를 보호할 수 있는 ( B )을/를 이용하도록 권고한다.
리눅스 서버에서 생성된 로그파일은 시간이 오래 지나면, 그 파일의 크기가 계속 커지게 되어 파일 시스템의 제한을 벗어나게 된다. 따라서 이를 효율적으로 관리하지 위하여 ( A )라는 응용 프로그램을 사용한다. ( A )은/는 시스템에 있는 모든 록 파일들을 관리할 수 있으며 이들 로그 파일들을 적당한 크기로 보관하고, 삭제하고, 압축하고, 메일로 보내주는 등의 작업을 할 수 있게 한다. ( A )는 ( B ) 데몬을 이용하여 주기적으로 작업을 수행할 수 있다.
/etc/cron.daily
디렉터리에 logrotate 스크립트 파일이 생성되어 데몬을 통해 매일 동작하게된다./etc/logrotate.d
리눅스 시스템에서 웹서버의 로그를 logrotate를 이용하여 보관하려고 한다. 다음설명에 적절한 옵션을 쓰시오
- ( A ) : 1주일 단위로 로테이션한다.
- ( B ) : 4개의 순환 파일을 사용한다.
- ( C ) : 로그파일을 압축하여 보관한다.
/etc/logrotate.d# cat httpd /var/log/httpd/*log{ ( A ) ( B ) ( C ) missingok notifempty sharedscript postrotate /bin/kill -HUP `cat /var/run/httpd/httpd.pid 2>/dev/null` 2> /dev/null endscript }
정답
A : weekly
B : rotate 4
C : compress
해설
daily
weekly
monthly
yearly
: 매일, 매주, 매달, 매년 단위로 로그파일을 순환
rotate [개수]
: 개수만큼 로그 순환 파일을 사용
compress
nocompress
: 로그파일을 압축/압축없이 보관
missingok
: 로그파일이 없어도 오류발생 X
notifempty
: 'not of empty'의 의미, 로그파일이 비어있는 경우 순환 X
sharedscript
: 로그파일이 여러 개 있어도 스크립트를 공유하여 prerotate, postrotate 스크립트를 한번만 실행
postrotate
endscript
: 순환 후 스크립트 파일 실행
다음은 리눅스 시스템에서 로그파일을 관리하기 위한 logrotate 설정 파일
/etc/logrotate.conf
에 대란 설명이다.( A ) : 주 단위로 로그파일을 순환한다.
( size 1MB ) : 로그파일이 1MB가 되면 순환한다.
( B ) : 오래된 로그부터 순한후 새롭게 로그파일을 생성한다.
( C ) : 로그를 압축하여 저장한다.
일반적인 보안 취약점 점검 가이드 라인에 의하면, Unix시스템에서 root 사용자의 원격접속은 보안상 문제가 될 수 있으므로 root로 원격 로그인이 가능하지 않도록 설정하는 것을 권고하고 있다. 다음은 root 계정의 원격 로그인을 차단하기 위해 Unix 운영 체제별로 로그인 설정 파일을 수정하는 화면이다. 다음에 들어갈 파일 이름을 쓰시오
/etc/securetty
파일에 'pts/~'터미널을 모두 제거 또는 주석처리하여 원격접속을 제한할 수 있다.
- telnet 접속 시 root 계정 접근 제한을 위한 설정 파일은 무엇인가?
- ssh 접속 시 root 계정 접근 제한을 위한 설정 파일은 무엇인가?
- 실패한 로그인 시도에 대한 기록을 담고 있는 파일은 무엇인가?
- 최근 성공한 로그인 기록을 확인하기 위한 last 명령어의 출력 필드를 4가지 이상 쓰시오.
sshd.conf
파일에서 ssh의 root 계정 원격접속을 차단하기 위해서는 PermitRootLogin
옵션을 no로 설정해야한다.Red Hat 리눅스 시스템에서 다음과 같은 비밀번호 복잡성 설정을 적용하고자 한다. PAM 모듈 또는 설정파일에서 사용하는 변수명 및 값을 쓰시오.
- 영문 대문자 최소 1자 이상 설정
- 특수 문자 최소 1자 이상 설정
- 비밀번호 최소 10자 이상 설정
다음은 리눅스 시스템에서
w
명령어를 실행했을 때의 결과이다. 설정상 어떠한 취약점이 있는지 두 가지를 서술하시오.
다음은 리눅스 시스템의 로그파일에 관한 내용이다. 각 질문에 답하시오.
- 아이디, 터미널, 원격 호스트 명등 동일한 레코드 형식을 사용하는 로그파일로 utmp, wtmp가 있다. 해당 로그파일 내용의 차이점 3가지를 서술하시오.
- 1)번 로그파일과 동인한 레코드 형식을 사용하는 로그파일로 btmp가 있다. btmp 로그파일의 내용은 무엇이며 이를 확인하기 위한 명령어를 쓰시오.
- 리눅스 명령어 lastcomm의 기능은 무엇이며 해당 명령어가 참조하는 로그파일을 쓰시오.
utmp
는 현재 로그인 사용자 정보만 기록하고, wtmp
는 지금까지의 로그인/로그아웃 기록 모두 저장함wtmp
는 시스템의 부팅 및 셧다운 정보를 가지고 있음 utmp
는 재부팅 시 초기화되지만 wtmp
는 재부팅 후에도 기록 유지lastb
lastcomm
명령어는 시스템에 로그인한 사용자가 실행한 명령어 관련 정보를 보여주는 명령어로 acct 또는 pacct 로그파일을 참조함다음은 리눅스 시스템의 파일 접근권한 정보이다. setuid, setgid, sticky bit에 대해 아래 파일 및 디렉터리에 관라여 소유자(소유그룹)와 접근권한 관계를 각각 설명하시오. (단, 세 번째 /tmp 디렉터리 내의 파일은 root가 아닌 사용자 권한으로 설명하시오)
주요 메모리 해킹기법 중 하나인 버퍼 오버플로우의 예방책을 서술하시오.
다음은 버퍼 오버플로우 대응 기술에 대한 설명이다. 각 질문에 답하시오
- 카나리 단어 기법의 동작 방식을 간단히 설명하시오.
- 카나리 단어 기법의 공격 차단 원리를 설명하시오.
- ASLR 기법의 동작 방식을 간단히 설명하시오.
- ASLR 기법의 공격 차단 원리를 설명하시오.
다음 리눅스 명령의 기능과 그 이유를 서술하시오.
echo 2 > /proc/sys/kernel/randomize_va_space
randomize_va_space
커널 파라미터를 0으로 설정하면 사용하지 않는 다는 의미이고, 1은 입 이외는 모두 랜덤하게, 2는 모두 랜덤하게 설정한다는 의미