[정보 보안] 실기 문제 풀이 - 5

Cookie·2024년 9월 27일
0

정보보안

목록 보기
7/40
post-thumbnail

시스템

단답형


097 ⭐️

syslog는 기밀성, 무결성, 가용성 등 정보보호 특성을 고려하지 않고 개발되었다. 따라서 UDP를 통해 로그를 전송할 때 공격자가 syslog 메시지를 모니터링하여 중요 정보를 알아낼 수 있다. 이 때문에 RFC 3195(Reliable Delivery for syslog)에서는 다음과 같은 몇가지 보안 기능을 제공하도록 권고하고 있다.

  1. 로그 전송의 신뢰성을 보장하기 위해 연결 지향 프로토콜인 ( A )을/를 이용하도록 권고한다.
  2. syslog 메시지 전송 시 기밀성 보장을 위해 syslog 서버와 로그 수집 대상 서버의 IP를 제외한 페이로드를 보호할 수 있는 ( B )을/를 이용하도록 권고한다.
  • 정답
    A : TCP
    B : BEEP

  • BEEP
    : the Bolcks Extensible Exchange Protocol 은 연결 지향적이고, 비동기적인 연결을 위한 응용 프로그램 프로토콜로 프레임워크 내부적으로 인증, 프라이버시, 재전송을 통한 신뢰성 등을 보장하고 있음

099

리눅스 서버에서 생성된 로그파일은 시간이 오래 지나면, 그 파일의 크기가 계속 커지게 되어 파일 시스템의 제한을 벗어나게 된다. 따라서 이를 효율적으로 관리하지 위하여 ( A )라는 응용 프로그램을 사용한다. ( A )은/는 시스템에 있는 모든 록 파일들을 관리할 수 있으며 이들 로그 파일들을 적당한 크기로 보관하고, 삭제하고, 압축하고, 메일로 보내주는 등의 작업을 할 수 있게 한다. ( A )는 ( B ) 데몬을 이용하여 주기적으로 작업을 수행할 수 있다.

  • 정답
    A : logrotate
    B : cron

  • 해설
    : logrotate는 cron 서비스를 통해 주기적으로 실행된다. logrotate를 설치하면 기본적으로 /etc/cron.daily 디렉터리에 logrotate 스크립트 파일이 생성되어 데몬을 통해 매일 동작하게된다.
    logrotate를 적용할 프로세스의 개별 설정 파일은 /etc/logrotate.d

102 ⭐️

리눅스 시스템에서 웹서버의 로그를 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 : 순환 후 스크립트 파일 실행


103

다음은 리눅스 시스템에서 로그파일을 관리하기 위한 logrotate 설정 파일/etc/logrotate.conf에 대란 설명이다.

( A ) : 주 단위로 로그파일을 순환한다.
( size 1MB ) : 로그파일이 1MB가 되면 순환한다.
( B ) : 오래된 로그부터 순한후 새롭게 로그파일을 생성한다.
( C ) : 로그를 압축하여 저장한다.

  • 정답
    A : weekly
    B : create
    C : compress

105

일반적인 보안 취약점 점검 가이드 라인에 의하면, Unix시스템에서 root 사용자의 원격접속은 보안상 문제가 될 수 있으므로 root로 원격 로그인이 가능하지 않도록 설정하는 것을 권고하고 있다. 다음은 root 계정의 원격 로그인을 차단하기 위해 Unix 운영 체제별로 로그인 설정 파일을 수정하는 화면이다. 다음에 들어갈 파일 이름을 쓰시오

  • 정답
    A : login
    B : user
    C : securetty

  • 해설
    1. SunOS
      : CONSOLE라인을 통해 root 원격접속 제한, 주석처리시 외부에서 root계정으로 접근 가능하다.
    2. AIX
      : rlogin의 true 또는 false로 root 원격접속을 제한할 수 있다.
    3. Linux
      : 로그인 서비스에 pam_securetty.so PAM모듈을 추가한 후 /etc/securetty 파일에 'pts/~'터미널을 모두 제거 또는 주석처리하여 원격접속을 제한할 수 있다.
      • pts(pseudo-terminal)은 Telnet, SSH등 원격으로 접속하는 가상터미널을 의미한다.

107 ⭐️

  1. telnet 접속 시 root 계정 접근 제한을 위한 설정 파일은 무엇인가?
  2. ssh 접속 시 root 계정 접근 제한을 위한 설정 파일은 무엇인가?
  3. 실패한 로그인 시도에 대한 기록을 담고 있는 파일은 무엇인가?
  4. 최근 성공한 로그인 기록을 확인하기 위한 last 명령어의 출력 필드를 4가지 이상 쓰시오.
  • 정답
    1 : securetty
    2 : sshd
    3 : btmp
    4 : 접속계정, 터미널 타입, 접속주소, 로그인 시간, 로그아웃 시간 등

  • sshd
    : sshd.conf 파일에서 ssh의 root 계정 원격접속을 차단하기 위해서는 PermitRootLogin 옵션을 no로 설정해야한다.

108 ⭐️

Red Hat 리눅스 시스템에서 다음과 같은 비밀번호 복잡성 설정을 적용하고자 한다. PAM 모듈 또는 설정파일에서 사용하는 변수명 및 값을 쓰시오.

  1. 영문 대문자 최소 1자 이상 설정
  2. 특수 문자 최소 1자 이상 설정
  3. 비밀번호 최소 10자 이상 설정
  • 정답
    1 : ucredit=-1
    2 : ocreidt=-1
    3 : minlen=10

  • 사용하는 변수




서술형


112 ⭐️

다음은 리눅스 시스템에서 w명령어를 실행했을 때의 결과이다. 설정상 어떠한 취약점이 있는지 두 가지를 서술하시오.

  • 정답
    1. root 계정의 TTY값이 pts타입이라면 원격터미널을 통한 root 계정으로 직접 접속하고있는 취약점을 보여주고 있음
    2. IDEL 컬럼을 보면 세션 타임아웃 설정이 부적절하여 유효시간이 장시간 유지되는 (50분 59초) 취약점을 보여주고 있음

115 ⭐️

다음은 리눅스 시스템의 로그파일에 관한 내용이다. 각 질문에 답하시오.

  1. 아이디, 터미널, 원격 호스트 명등 동일한 레코드 형식을 사용하는 로그파일로 utmp, wtmp가 있다. 해당 로그파일 내용의 차이점 3가지를 서술하시오.
  2. 1)번 로그파일과 동인한 레코드 형식을 사용하는 로그파일로 btmp가 있다. btmp 로그파일의 내용은 무엇이며 이를 확인하기 위한 명령어를 쓰시오.
  3. 리눅스 명령어 lastcomm의 기능은 무엇이며 해당 명령어가 참조하는 로그파일을 쓰시오.
  • 정답
    1. 차이점
      • utmp는 현재 로그인 사용자 정보만 기록하고, wtmp는 지금까지의 로그인/로그아웃 기록 모두 저장함
      • wtmp는 시스템의 부팅 및 셧다운 정보를 가지고 있음
      • utmp는 재부팅 시 초기화되지만 wtmp는 재부팅 후에도 기록 유지
    2. btmp는 실패한 로그인 시도에 대한 기록을 담고 있는 로그파일로,
      명령어는 lastb
    3. lastcomm 명령어는 시스템에 로그인한 사용자가 실행한 명령어 관련 정보를 보여주는 명령어로 acct 또는 pacct 로그파일을 참조함

118

다음은 리눅스 시스템의 파일 접근권한 정보이다. setuid, setgid, sticky bit에 대해 아래 파일 및 디렉터리에 관라여 소유자(소유그룹)와 접근권한 관계를 각각 설명하시오. (단, 세 번째 /tmp 디렉터리 내의 파일은 root가 아닌 사용자 권한으로 설명하시오)

  • 정답
    1. user 접근권한의 execute 항목이 s로 설정되어있음
      • 이는 passwd 실행파일에 setuid가 설정되어있음을 의미하며 setuid가 설정되면 해당 프로세스가 실행 중인 동안에 실행시킨 사용자가 아닌 실행 파일 소유자의 접근권한으로 동작하게된다. 따라서 root 권한으로 자원에 접근할 수 있게됨
    2. group 접근권한의 execute 항목이 s로 설정되어있음
      • 이는 mail 실행파일에 setgid가 설정되어있음을 의미하며 setgid가 설정되면 해당 프로세스가 실행 중인 동안에 실행시킨 사용자의 기본그룹 권한이 아닌 실행 파일 소유그룹의 접근권한으로 동작하게된다. 따라서 mail 권한으로 자원에 접근할 수 있게 됨
    3. others 접근 권한의 execute 항목이 t로 설정되어있음
      • 이는 tmp 디렉터이에 sticky bit가 설정되어있음을 의미하며, sticky bit가 설정된 디렉터리는 모든 사용자가 파일 생성은 가능하지만, 삭제 및 변경은 파일 소유자와 root 만 가능하다.

122

주요 메모리 해킹기법 중 하나인 버퍼 오버플로우의 예방책을 서술하시오.

  • 정답
    1. 스택가드
      : 메모리상에서 프로그램의 복귀주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우로 가정하여 프로그램이 중단됨
    2. 스택쉴드
      : 함수 시작 시 리턴 주소를 Global RET이라는 특수 스택에 저장해 두었다가 함수 종료 시 저장된 값과 스택의 RET값을 비교하여 다를 경우 프로그램이 중단됨
    3. ASLR
      : 메모리 공격을 방어하기 위해 주소 공간 배피를 난수화하는 기법, 실행할때 마다 메모리 주소를 변경시켜 악성코드에 의한 특정주소 호출을 방지

123

다음은 버퍼 오버플로우 대응 기술에 대한 설명이다. 각 질문에 답하시오

  1. 카나리 단어 기법의 동작 방식을 간단히 설명하시오.
  2. 카나리 단어 기법의 공격 차단 원리를 설명하시오.
  3. ASLR 기법의 동작 방식을 간단히 설명하시오.
  4. ASLR 기법의 공격 차단 원리를 설명하시오.
  • 정답
    1 : 메모리상에서 프로그램의 복귀주소와 변수사이에 특정 값을 저장해두는 기법
    2 : 특정 값의 변조가 발생하면 오버플로우라 가장하여 이를 탐지하여 차단
    3 : 메모리 공격을 방어하기 위해 주소 공간 버퍼를 난수화 하는 기법
    4 : 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플루우를 통한 특정 주소 호출 차단

124

다음 리눅스 명령의 기능과 그 이유를 서술하시오.

echo 2 > /proc/sys/kernel/randomize_va_space
  • 정답
    리눅스 커널에서 ASLR을 설정하는 것으로 버퍼 오버플로우의 예방책중 하나
    • randomize_va_space 커널 파라미터를 0으로 설정하면 사용하지 않는 다는 의미이고, 1은 입 이외는 모두 랜덤하게, 2는 모두 랜덤하게 설정한다는 의미
profile
나만의 공부 일지... [임시 休]

0개의 댓글