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

Cookie·2024년 9월 28일
0

정보보안

목록 보기
8/40
post-thumbnail

시스템

서술형


125 - 127

다음 소스코드와 연관된 아래의 문제에 답하시오.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

void main(int argc, char **argv){
	int fd;
    char write_text[] = "# Top Secret Information !!! #\n";
    char *tmp = "/tmp/race.tmp";
    
    fd = open(tmp, O_CREATE | O_TRUNC);
    write(fd, write_text, strlen(write_text));
    close(fd);
    remove(tmp);
}

125

어떤 명령인지 간단히 서술하시오.

[root@localhost tmp]# touch hack.txt
[root@localhost tmp]# ls -al /tmp/hack.txt
-rw-r--r-- l root root 0 2016-03-15 10:34 /tmp/hack.txt
[root@localhost tmp]#
  • 정답
    touch명령으로 크기가 0인 hack.txt파일을 생성하고 ls 명령으로 파일 생성을 확인하고있다.

126

위의 소스코드를 공격하기 위한 프로그램이다. 동작방식을 간단히 설명하시오.

#include <stdio.h>
#include <unistd.h>

void main(int argc, char **argv){
	int i = 0;
    for(i = 0; i < 10; i++){
    	printf("run : %d \n",i+1);
        system("ln -s /tmp/hack.txt /tmp/race.tmp");
    }
}
  • 정답
    미리 생성해둔 /tmp/hack.txt를 원본으로 하는 심볼릭 링크 파일인 /tmp/racr.tmp를 만드는 과정을 10번 반복한다.

127

피해 프로그램과 공격 프로그램을 동시에 여러 번 실행한 결과 hack.txt 파일에 아래와 같은 내용이 기록된 것을 확인할 수 있었다. 소스코드와 공격과정을 참고하여 (1) 공격 명칭과 (2) 대응 방안에 관해 서술하시오.

[root@localhost LEC_RACE_COND2]# cat /tmp/hack.txt
# Top Secret Information !!! #
[root@localhost LEC_RACE_COND2]#
  • 정답
    1. 레이스 컨디션 공격
    2. 대응방안
      - 가능하면 임시파일을 만들지 않는다
      - 파일 생성 시 이미 동일한 파일이 존재하는 경우 파일 생성 또는 쓰기를 금지한다
      - umask를 최하 022로 유지하여 임시로 생성된 파일이 공격자에 의해 악의적으로 사용되지 않도록 한다.

  • 해설
    • 공격이 이루어지는 과정
      : 공격자는 임시파일 hack.txt를 미리 만들어두고 피해 프로그램에서 /tmp/race.tmp를 생성하기 전에 동일한 이름으로 심볼릭 링크를 걸게되면 피해 프로그램은 공격자가 만들어 놓은 파일을 사용하게 되어 링크가 걸린 hack.txt에 내용이 기록되고 race.tmp를 지우더라도 hack.txt의 내용은 남게된다.
      피해 프로그램에서 파일을 먼저 생성하면 공격은 실패한다. 누가 먼저 race.tmp 파일을 생성하느냐에 따라 결과가 달라지므로 공격 프로그램은 먼저 생성하는 시점을 확보하기 위해 링크를 다수 반복하게된다.

129

쇼핑몰 운영 서버 취약점점검 결과 사용자 계정의 패스워드 최소길이가 부적절한 문제점이 발견되었다. 패스워드 최소 길이를 8자리 이상으로 설정하려고 할 때 SunOS, Linux, AIX, HP-UX 운영 체제 별로 설정 방법을 설명하시오.

  • 정답
    • SunOS : /etc/default/passwd 설정 파일에 PASSLENGTH=8로 설정
    • Linux : /etc/login.defs 설정 파일에 PASS_MIN_LEN 8로 설정
    • AIX : /etc/security/user 설정 파일에 minlen=8로 설정
    • HP-UX : /etc/default/security 설장 파일에 MIN_PASSWORD_LENGTH=8로 설정

132 ⭐️

유닉스/리눅스 시스템 관리자는 보안 취약점 점검 과정에서 root 계정의 PATH 환경변수 설정이 아래와 같이 되어있는 것을 확인하였다. PATH 설정의 취약점 및 조치 방안에 관해 서술하시오.

#vi /etc/profile
PATH=.:$PATH:/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
  • 정답
    • 취약점 : PATH 환경변수에 . 현재 디렉터리 지정 설정이 맨앞 또는 중간에 있으면 root 계정으로 접속한 관리자가 현재 디렉터리에 불법적으로 위치한 실행파일에 의해 의도하지 않은 명령이 실행 될 수 있음
    • 조치 방안 : PATH 환경변수의 . 설정을 맨 뒤로 이동시키거나 불필요한 경우 삭제함




실무형

138

다음은 리눅스 시스템에서 /etc/shadow 파일에 저장된 test01 계정의 패스워드 정보이다. 다음 각 질문에 답하시오

      | A |   B   |            C            |
test01:$6$gAWyPqwb$kmjg2WA4E7S2MT/1h ~ 생략 : 18290:1:90:7:::
  1. test01 계정의 두 번째 필드 A, B, C 각 항목의 의미를 쓰시오.
  2. 두 번째 필드의 B 항목을 통해 레인보우 테이블(rainbow table) 공격에 효과적으로 대응할 수 있다. 그 원리가 무엇인지 쓰시오.
  3. 위 파일과 관련하여 pwunconv 명령어의 용도를 쓰시오.
  • 정답
    1. 각 필드의 의미
      • A : 패스워드 암호화에 적용된 일방향 해시 알고리즘 식별ID
      • B : 패스워드 암호화에 적용된 솔트
      • C : 암호화된 패스워드(해시값)
    2. 솔트와 조합된 패스워드 해시값에 대한 평문 패스워드는 실제 패스워드가 아니므로, 레인보우 테이블 공격을 통해 평문으로된 패스워드를 알아낸다고 해도 실제 패스워드와 다르기 때문에 로그인에 실패하게된다.
    3. pwunconv : 사용자 계정의 패스워드 정책을 shadow 패스워드 정책으로 변경(반대는 pwconv)

141

서버 담당자가 서버 점검 중 /etc/apache/conf 내의 파일이 수정된 것을 발견했다. 담당자가 10일 이내에 파일을 수정한 적이 없을 때 무결성을 확인할 수 있는 find 명령어를 한줄로 작성하시오.

  • 정답
    find /etc/apache/conf -mtime -10

143

시스템 전체에서 SUID와 SGID가 설정된 파일을 찾기 위한 방법을 find 유틸리티를 이용하여 검색하는 방법을 서술하시오.

( A ) 전체 디렉터리에서 정규(regular) 파일중 SUID가 설정된 파일을 모두 찾아내시오.
( B ) 전체 디렉터리에서 정규(regular) 파일중 SGID가 설절된 파일을 모두 찾아내시오.

  • 정답
    A : find / -type f -perm -4000
    B : find / -type f -perm -2000

  • 해설
    -perm [-]mode : -가 없으면 정확히 일치하는 파일, -가 있으면 포함하는 파일
profile
나만의 공부 일지... [임시 休]

0개의 댓글