📝 인터넷보안전문가 2급 기출문제

문제 1

주어진 Linux 시스템에서 비정상 트래픽이 유발되었다는 신고가 접수되었다. 시스템을 분석하여 root 권한을 획득한 일반 계정명 및 분석 과정을 답안란에 기술하시오.

nano /etc/passwd
- root:x:0:0 (맨 위)
- 계정명:0:0 (새 계정이 추가되면 맨 아래 위치)
- UID, GID = 0
- 계정명 = 일반 계정임에도 root 권한 보유
=> root의 경우 UID와 GID가 모두 0인 것을 확인할 수 있는데 이처럼 UID가 0인 계정을 찾거나 없다면 GID가 0인 일반 계정을 찾으면 된다. GID bit가 0이라는 것은 root 그룹에 속해 있다는 의미이다.

/etc/passwd 기본 구조
사용자 이름:암호:사용자 ID:사용자가 소속된 그룹 ID:추가 정보:홈 디렉터리:기본 셸
※ 참고

/etc/shadow 기본 구조
사용자 이름:암호:사용자 ID:사용자가 소속된 그룹 ID:추가 정보:홈 디렉터리:기본 셸
문제 2

주어진 Linux 시스템에 누군가 허가 없이 4000~5000번 사이의 TCP 포트번호를 열어 LISTEN 하고 있다. 해당 포트 번호를 찾고 분석과정을 답안란에 기술하시오.

netstat -tulpn - 4000~5000번 사이의 포트를 사용하고 있다고 하기 때문에 4444번 포트가 LISTEN 중인 것을 확인 할 수 있다.
- 포트 4444가 사용 중인 파일 확인

※ 참고
top -p 1492: 1492 프로세스의 자원 사용률 모니터링 가능

혹은

netstat –ant | grep LISTEN - 4000~5000번 사이 포트 확인
- 포트 번호: 4444

netstat [옵션]
:네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어

<옵션>
-n : IP, Port 번호 조회
-a : 모든 네트워크 상태
-t : TCP 프로토콜
-p : 프로그램 이름/PID
문제 3

주어진 LINUX 시스템이 다운되어 재부팅한 후 “var/log/secure” 로그 확인 결과, 공격당한 것을 확인하였다. 로그를 확인하여, “공격 IP 주소” 및 “분석과정”을 답안란에 기술하시오.

cat /var/log/secure | more → Failed password for root from XXX.XXX.XXX.XXX ip 확인
시간대를 확인하면 무차별대입공격임을 알 수 있음.

※ 참고
secure 파일이 없는 경우 경로상 있을 법한 파일을 확인한다.
(ex. auth.log, syslog, message, daemon.log, faillog, lastlog, apache2의 access.log, error.log등)
문제 4

주어진 LINUX 시스템의 FTP 서비스가 ANONYMOUS 접근을 허용하고 있어, 불법적인 파일 업로드나 주요 정보 유출 등의 예상치 못한 불법적인 접근으로 인하여 시스템 침해의 위험이 존재한다. FTP 서비스의 ANONYMOUS 접근을 제한하는 과정을 답안에 기술하시오.

nano /etc/vsftpd/vsftpd.conf
→ anonymous_enable = YES
→ NO로 변경

※ 참고
  • write_enable = YES: 활성화하지 않으면 저장 불가
  • xferlog_file = /var/log/vsftpd.log: 활성화하지 않으면 로그 분석 불가
  • chroot_list_file = /etc/vsftpd.chroot_list: 활성화하지 않으면 다른 사용자들이 접속할 수 없음
문제 5

주어진 LINUX 시스템의 SSHD에 대한 보안설정을 하려고 한다. 파일(/etc/ssh/sshd_config)를 이용하여 포트번호를 “222”로 변경하는 과정을 답안란에 기술하시오

nano /etc/ssh/sshd_config → 13번째 줄 #port 22
→ port 222로 변경

옵션 기본값 / 예시 설명 보안 권장 설정
Port Port 22 SSH 접속 포트 번호 22 → 다른 포트(예: 2222)
PermitRootLogin yes root 계정 SSH 로그인 허용 여부 no (또는 prohibit-password)
PasswordAuthentication yes 비밀번호 인증 허용 여부 no (키 인증만 사용)
PubkeyAuthentication yes 공개키 인증 허용 여부 yes
PermitEmptyPasswords no 비밀번호 없는 계정 로그인 허용 여부 no
ChallengeResponseAuthentication no 챌린지-응답 인증 허용 여부 no
AllowUsers AllowUsers user1 user2 SSH 접속 허용 사용자 지정 필요 시 특정 사용자만 허용
DenyUsers DenyUsers hacker SSH 접속 차단 사용자 지정 악성/불필요 계정 차단
AllowGroups AllowGroups sshusers SSH 접속 허용 그룹 지정 필요 시 그룹 단위 제한
ListenAddress 0.0.0.0 sshd가 바인딩할 IP 지정 특정 IP만 지정 가능
MaxAuthTries 6 인증 실패 허용 횟수 3 정도로 제한
LoginGraceTime 120 (초) 로그인 완료까지 대기 시간 30~60
X11Forwarding yes GUI(X11) 포워딩 허용 여부 no
Banner none 로그인 배너 표시 파일 경로 /etc/issue.net 등 지정
문제 6

현재 사용중인 서버는 메일 서버의 용도로 사용하고 있지는 않지만 Sendmail 서비스는 설치되어 있다. 어느날 갑자기 사용중인 네트워크가 느려진 것같고, 이곳저곳에서 Spam 메일 발송에 대한 항의가 들어오고 있다. 추적한 결과 192.168.212.xxx에서 접속하여 Spam 중계 용도로 사용중이다. 192.168.212.xxx가 Sendmail 설정을 통해 Sendmail 사용을 차단하는 설정과정을 답안란에 기술하시오.

nano /etc/mail/access → 192.168.212 RELAY 삭제

/etc/mail이 생성되었다는 것은 sendmail이 설치되어 있다는 것을 알 수 있음
문제 7

주어진 시스템에 누군가 ICMP 프로토콜을 사용하여 공격을 시도하고 있는데 ICMP 프로토콜은 Dos, Port Scanning, Ping of Death등 많은 해킹 기법에 사용된다. 모든 ICMP 패킷에 대한 Echo를 무시하도록 설정하는 과정을 답안란에 기술하시오.

sysctl -a | grep icmp
sysctl -w net.ipv4.icmp_echo_ignore_all=1

0: 통과, 1: 막기

*sysctl이란?

  • 런타임 중 /proc/sys 하위 디렉토리에 대한 커널 매개변수 값을 변경할 때 사용하는 명령어.
  • 이 명령어를 사용하면 리눅스 커널에 대한 설정값 변경 및 조회가 가능하다.
  • 시스템 관리자라면 sysctl 명령어를 알아둬야 하며 DDoS 방어를 위해서 네트워크 트래픽 관련 커널 매개변수들은 필수로 숙지해야 한다.
  • 특징적이게도 /proc/sys 하위 디렉토리에 존재하는 디렉토리를 구분하는 / 는 sysctl 명령어 이용시 . 로 대체한다.
문제 8

주어진 시스템에서 악의적 사용을 위해 SUID/SGID bit가 설정되어 있는 파일을 검사하여 검색된 파일 3개 및 분석 과정을 답안란에 기술하시오.

find / -type f -perm +6000 -ls → 위 명령어의 결과 권한이 -rwsr-xr-x, -rwxr-sr-x와 같은 형태의 파일을 찾는다.

※ 참고
find / -type f -perm /6000 -ls → +6000 구식 방식, /6000 최신 방식

SUID 설정 파일이 위험한 이유
  • SUID 비트가 설정된 실행 파일을 실행하면, 그 파일은 실행하는 사용자가 아닌 파일의 소유자의 권한으로 실행됩니다.
  • 즉, 사용자가 root 권한을 가진 프로그램을 실행할 경우, 해당 프로그램은 사용자가 아니라 root 권한으로 실행됩니다.
  • SUID가 설정된 파일: rwsr-xr-x 또는 rwsr-xr-x (실행 파일에 s가 표시)
SGID 설정 파일이 위험한 이유
  • SGID 비트가 설정된 실행 파일을 실행하면, 실행하는 사용자가 아니라 파일이 속한 그룹의 권한으로 실행됩니다.
  • 디렉토리에서 SGID 비트가 설정되면, 그 디렉토리 내에서 생성되는 파일들이 디렉토리의 그룹을 상속받습니다.
  • SGID가 설정된 파일: rwxr-sr-x 또는 rwxr-sr-x (실행 파일에 s가 표시)
ex)
  • 4777 rwxrwxrwx > rwsrwxrwx
  • 2777 rwxrwxrwx > rwxrwsrwx
  • 6777 rwxrwxrwx > rwsrwsrwx
  • 문제 9

    주어진 Linux 시스템의 로그 확인 결과 아파치(Apache) 환경 파일이 변경되었음을 알게 되었다." /etc/httpd.conf"와 "/etc/httpd.conf.old"을 비교하여 변경된 줄 번호 및 분석 과정을 작성해라.

    cmp /etc/httpd.conf /etc/httpd.conf.old -> ex) char 10954, line 297
    diff /etc/httpd.conf /etc/httpd.conf.old(내용 확인)

    *Linux 시스템 대신 Ubuntu 시스템일 경우
    diff /etc/apache2.conf /etc/apache2.conf.bak
    ※ 참고

    cmp [옵션] [비교파일1] [비교파일2]
    :compare의 약자로 두 파일 사이의 내용을 비교하는 명령어. diff와는 다르게 두 개의 파일을 단순히 같은가 다른가를 확인할 수 있다.

    diff [옵션] [비교파일1] [비교파일2]
    :differences의 약자로 두 파일 사이의 내용을 비교하는 명령어

    [출력 값]
    <0a1, 2d2, 3c3와 같은 변경 명령>

    • 첫 번째 숫자: 첫 번째 파일의 줄 번호 또는 줄 범위
    • 특수 변경 문자: a=줄 추가, c=라인을 변경, d=줄을 삭제
    • 두 번째 숫자: 두 번째 파일의 줄 번호 또는 줄 범위
    < <, > 와 같은 문자>
    < : 제거
    > : 추가
    문제 10

    주어진 Linux 시스템의 FTP 서버 접근 실패 시 접근을 차단하려고 한다. "/etc/ftpaccess"파일을 이용하여 '3'회 접근 실패 시 차단시키려는 설정과정을 작성해라.

    nano /etc/ftpaccess -> loginfails 5 -> 3으로 수정
    문제 11

    주어진 Linux 시스템의 root 계정에 대한 자동 로그아웃 시간을 "50초"로 설정하려고 한다. 설정과정을 작성해라.

    nano /etc/profile -> 맨 아래 TMOUT=50 입력
    문제 12

    TCP Wrapper는 Localhost로 들어오는 인터넷 서비스에 대한 요청(Request)을 관찰하고 필터링 할 수 있다. 주어진 Linux 시스템을 이용하여 SSH데몬(sshd)으로 접근하는 모든 호스트(Host)에 대해서만 요청을 허락하도록 “/etc/hosts.allow”와 “/etc/hosts.deny” 설정과정을 답안란에 기술하시오.

    nano /etc/hosts.allow -> sshd:ALL
    nano /etc/hosts.deny -> ALL:ALL

    ※ 참고
    service sshd restart까지 해줘야 적용됨(시험에선 적용하면 안되고 과정에 기입)
    문제 13

    외부에서부터의 ICMP 프로토콜을 사용한 악의적인 공격으로부터 현재의 시스템을 보호하고자 한다. iptables를 사용하여 INPUT 패킷에 대한 모든 ICMP 패킷을 차단하는 설정과정을 작성해라.

    iptables –A INPUT –p icmp –j DROP(엔터 후 iptables –L 설정 확인)
    iptables –L(방화벽 설정 옵션) -> ICMP와 관련된 설정 보이지 않음
    iptables –F(iptables의 모든 규칙을 삭제)
    문제 14

    주어진 Linux 시스템의 계정에 대해 확인 결과, 암호화 강도가 낮아서 내부 사용자들에게 패스워드를 변경하도록 하였으나, 제대로 이행되지 않고 있어 강제적으로 패스워드를 변경하려고 한다.
    "패스워드가 변경 된지 30일이 지나면 무조건 새 패스워드로 변경, 패스워드는 최소한 8글자 이상 사용"을 만족시키도록 설정하여라.

    nano /etc/login.defs -> PASS_MAX_DAYS 30, PASS_MIN_LEN 8
    문제 15

    주어진 Linux 시스템은 TFTP를 사용하지 않는다. 해커가 BackDoor를 사용하기 위해 임의로 도용한 "TFTP Port 번호" 및 "분석과정"을 답안란에 기술하시오.

    nano /etc/services → tftp 포트번호 확인 (이전 시험 답: tftp 69번 --> 4444번으로 변경되어 있음)

    혹은

    cat /etc/services | grep tftp → tftp 포트번호 확인
    문제 16

    주어진 Linux 시스템은 Kerberos를 사용하지 않는다. 해커가 BackDoor를 사용하기 위해 임의로 도용한 "Kerberos Port 번호" 및 "분석과정"을 답안란에 기술하시오.

    netstat -natp 명령어를 통해 의심이 되는 포트 번호에 서비스 중인 프로그램을 찾는다.

    ps -ef 의심되는 포트 번호를 찾았다면 명령어로 해당 서비스 파일을 찾을 수 있다.

    ps :현재 실행 중인 프로세스의 목록을 보는 명령어
  • -e : 실행 중인 모든 프로세스의 정보를 출력한다.
  • -f : 프로세스에 대한 자세한 정보를 출력한다.
  • -p pid : pid로 지정한 프로세스의 정보를 출력한다.

  • 혹은

    nano /etc/services → krb524 포트번호 확인 (이전 시험 답: krb524 88번 --> 4444번으로 변경되어 있음)

    혹은

    cat /etc/services | grep krb524 → krb524 포트번호 확인
    문제 17

    현 Linux 시스템은 모든 일반 계정에서 root 권한 변환이 가능하다. 특정 계정(secu10)만 root로 권한을 변경할 수 있도록 하는 설정 과정을 답안란에 기술하시오.

    vi /etc/group 명령어로 wheel 그룹 사용자를 추가하고
    vi /etc/pam.d/su 명령어를 통해 su 명령어를 사용할 수 있는 계정을 설정한다.
    #auth required /lib/security/$ISA/pam_wheel.so use_id 해당 부분의 주석을 해제하여 특정 사용자만 su 명령어를 사용할 수 있도록 한다.
    ll /bin/su 명령어를 통해 해당 명령어에 대한 소유자와 그룹은 둘 다 root로, 일반 사용자의 권한을 확인하면 읽기 가능, 실행 가능으로 되어있다.
    chown root:wheel /bin/su 명령어를 통해 소유자를 root로 그룹을 wheel로 설정한다.
    chmod 4750 /bin/su를 통해 일반 사용자의 권한을 제거한다.
    rws r-x — 47 5 0

    0. 전 과정 root 권한으로 진행한다. (진행 중 일반사용자의 경우 su가 안됨)

    1. su 사용 시 그룹 권한(wheel) 요구하기
    nano /etc/pam.d/su → 1) 사용자 uid를 기준으로 그룹을 제한해야 하는 경우
    #auth required /lib/security/$ISA/pam_wheel.so use_id 주석 해제
    2) 그룹 소속만을 기준으로 그룹을 제한해야 하는 경우
    #auth required pam_wheel.so 주석 해제

    2. secu10 계정을 wheel그룹에 추가
    usermod -G wheel secu10

    혹은

    nano /etc/group → wheel:x:1003:root,master 뒤에 secu10 추가

    2-1. 만약 secu10 계정이 존재하지 않거나 wheel그룹이 없는 경우 생성
    adduser secu10 groupadd wheel

    3. wheel그룹에 secu10계정이 추가되었는지 확인
    grep wheel /etc/group → wheel:x:10:root,secu10 확인
    문제 18

    주어진 시스템에는 인가되지 않은 리모트 백도어 서비스가 존재한다. 이를 찾아 정답란에 기술하시오.

    cd /etc/xinetd.d
    ls
    → xinetd 설치 시 기본 프로그램 외 프로그램 찾아내기
    → 이전 시험 답: venus, black

    *기본 설치되는 프로그램 암기하기
    chargen
    daytime
    discard
    echo
    servers
    time
    chargen-dpd
    daytime-udp
    discard-udp
    echo-udp
    services
    time-udp 등등...

    *리모트 백도어가 될 수 있는 서비스의 예시:
    1. telnet 서비스: 기본적으로 암호화되지 않은 원격 접근을 허용하는 서비스입니다.
    telnet 서비스가 활성화되어 있으면 의심할 필요가 있습니다.

    2. ftp 서비스: 파일 전송 서비스가 설정되어 있으면, 보안상 위험할 수 있습니다.
    특히 로그인 인증이 약한 설정인 경우.

    3. 악성 서비스: 서비스 이름이 backdoor, shell, admin 등과 같이 의심스러운 이름일 경우, 백도어가 설정된 것일 수 있습니다.

    4. 서비스 파일 내용을 확인했을 경우 disable이 no로 되어 있거나, only_from에 제한이 없는 외부 IP가 설정되어 있다면 리모트 접속이 가능할 수 있습니다.

    *리모트 백도어로 의심되는 서비스 비활성화 방법:
    리모트 백도어로 의심되는 서비스가 발견되면, 해당 서비스를 비활성화해야 합니다.
    disable 값을 yes로 변경하거나, 서비스를 삭제하여 비활성화할 수 있습니다.

    sudo nano /etc/xinetd.d/의심되는 서비스 파일 → disable = yes 수정
    sudo systemctl restart xinetd → xinetd 서비스 재시작
    문제 19

    주어진 시스템을 분석하여 인가되지 않은 백도어 포트를 찾아 넘버를 정답란에 기술하시오.

  • netstat -nat 명령어로 포트 상태를 확인해서 인가되지 않은 포트를 알아볼 수 있다.
  • 혹은 lsof | grep LISTEN 으로 열려 있는 파일 정보를 확인하여 열려 있는 포트를 확인할 수 있다.
  • 혹은 .bash_history 파일에서 telnet localhost {port} 명령어를 찾아 포트를 찾는다.

  • netstat [옵션] :네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어

    <옵션>
  • -n : IP, Port 번호 조회
  • -a : 모든 네트워크 상태
  • -t : TCP 프로토콜

  • lsof :list open files의 약자로 시스템에서 열려있는 파일에 대한 정보를 출력하는 명령어

    telnet [IP 또는 도메인] [포트] :원격 호스트와 텍스트 기반으로 통신하기 위한 프로토콜과 도구
    문제 20

    Apache를 사용하는 리눅스 웹서버에서 /home/competition 디렉토리는 웹으로 접속이 가능하며 경쟁 업체의 정보를 담고 있다. 사내에서만 사용하는 PC의 IP Address는 "192.168.123.112"에 한하여 접속되도록 하기 위한 설정 과정을 답안란에 기술하시오.

    nano /etc/httpd/conf/httpd.conf
    < Directory "/home/competition">
    Options Indexes MultiViews /* 디렉터리 리스트 출력 및 다중 뷰 기능 활성화 */
    AllowOverride None /* .htaccess 파일에서 설정을 덮어쓰지 못하도록 제한 */
    Order Deny, Allow /* Deny 우선, Allow 나중(하지만 Allow from이 Deny보다 우선됨) */
    Allow from 192.168.123.112 /* 해당 IP에서만 접근 허용 *
    Deny from all /* 모든 사용자 차단 (하지만 Allow from이 더 우선됨) */
    < /Directory>
    → Apache 웹 서버에서 특정 디렉터리(/home/competition‌)에 대한 접근 권한 설정

    만약 Apache 2.4버전을 사용중이라면

    apachectl -v
    → 아파치 버전 확인

    Require 지시문으로 수정
    < Directory "/home/competition">
    Options Indexes MultiViews
    AllowOverride None
    Require ip 192.168.123.112
    < /Directory>
    문제 21

    현 Linux 시스템 로그인 시 아래와 같은 메세지가 출력 되도록 하는 설정 과정을 답안란에 기술하시오.
    ======================================
    System Check : 2021. 07. 13
    Admin Email : admin@woosuk.izerone.co.kr
    Note : Please Check Your Mail Box
    ======================================

    nano /etc/motd
    *motd
    Message Of The Day
    문제 22

    현 Linux 시스템의 커널 버전을 확인하여 답안란에 기술하시오.

    uname -r → 커널 버전과 릴리즈 넘버 출력

    uname -s → 운영체제 이름 출력

    uname -n → 호스트명 출력
    문제 23

    주어진 Linux 서버가 현재 sniffing 서버로 운영되는 것 같다. Sniffing 서버로 운영되고 있다는 증거를 찾아낸 후, 정상 상태로 돌리기 위한 방법은 무엇인지 답안란에 기술하시오.

    ifconfig → 네트워크 인터페이스의 설정 확인
    → PROMISC가 보이면 혼잡 모드가 활성화되어 있는 것

    ifconfig eth0 -promisc → 혼잡모드 해제

    tcpdump → 네트워크 인터페이스 실시간 패킷 캡처
    문제 24

    주어진 시스템을 분석하여 해킹에 사용된 파일들이 어디에 위치하는지 경로명을 정답란에 기술하시오.

    find / -user nobody 2> /dev/null
    find / -user [찾을 소유자] -print
  • 특정 사용자의 파일을 찾을 때 사용하는 명령어
  • -print : 파일의 절대 경로 표시

  • 2> /dev/null
  • 2> : 표준 에러 재지정
  • 문제 25

    주어진 시스템을 분석하여 침입자가 권한 상승을 위해 사용한 파일을 찾아 경로명을 기술하시오.

    c 침입자가 사용한 파일 중에서 위의 코드를 가진 파일과 이것의 실행 파일을 찾아낸다.

    int setreuid(uid_t ruid, uid_t euid);
  • UID(User Identification, Real UID) : 내가 어떤 사용자로 로그인 했는가
  • EUID(Effective UID) : 현재 내가 누구인가
  • 문제 26

    /etc/service 파일에 계정에 대한 권한을 설정하려고 한다. 현 사용자에는 읽기와 쓰기 권한을, 현 사용자와 동일한 그룹 사용자에게는 쓰기 권한, 그 외의 사용자에게 쓰기 권한을 부여해라.

    chmod 622 /etc/service
    rw- -w- -w-
    6 2 2

    chmod :change mode 파일이나 디렉토리의 권한을 변경하는 명령어

    <8진수 모드>
    chmod [옵션] [소유자권한][그룹권한][그외사용자권한] [파일 또는 디렉토리]

    <문자열 모드>
    chmod [옵션] [레퍼런스][연산자][권한] [파일 또는 디렉토리]

    레퍼런스 종류
  • u - 소유자 : 파일 또는 디렉토리의 소유자
  • g - 그룹 : 파일 또는 디렉토리의 그룹에 포함된 사용자
  • o - 그 외 사용자 : 소유자도 아니고 그룹에 포함되지도 않은 사용자
  • a - 모든 사용자 : 모든 사용자를 뜻하며, ugo와 동일

  • 연산자
  • + : 기존 권한에 권한 추가
  • - : 기존 권한에서 권한 제거
  • = : 지정한 권한으로 변경

  • <옵션>
    -R : 권한을 디렉토리의 하위 경로에도 모두 적용
    문제 27

    FTP 서버에 익명(Anonymous) 권한으로 접근을 해서 Read 권한만 있어도 다른 유저의 설정을 모두 볼 수 있다. 주어진 Linux 시스템을 이용하여 FTP 서버에 익명으로 로그인 할 수 없게 설정하는 방법을 답안란에 기술하시오.

    userdel ftp 명령어로 /etc/passwd 파일에서 ftp 또는 anonymous 계정을 삭제한다.
    문제 28

    Apache + PHP + MySQL를 지원하는 Linux 시스템의 경우, 일반적으로 PHP로 MySQL DB에 접속하는 경우 PHP에서 연결하는 스크립트(Script)를 사용한다. 일반적으로 WEB 상에 공개된 소스에는 파일명이 대부분 “connect.inc”를 사용하는데 이 파일을 웹 브라우저에 불러오게 되면 바로 읽혀져서 MySQL DB 접속 아이디와 패스워드를 알 수 있게 된다. 이를 방지하는 방법을 “/etc/httpd.conf” 파일을 이용하여 답안란에 기술하시오.

    해당 파일에서 웹 사이트의 디렉토리에 대한 구성 변경을 허용하는 메커니즘을 제공하는 Apache 구성 파일인 .htaccess에 대한 설정이 잘못되었기 때문에 Allowoverride 필드 값을 None으로 설정하여 해당 파일을 인식하지 않도록 한다.
    문제 29

    /proc/sys 시스템에서 포트 포워딩을 설정하지 않게 하기 위해서는 “echo “값” > /proc/sys/파일-1/파일-2”와 같은 명령어를 사용하게 된다. 여기서 “값”에 들어가는 적절한 내용을 작성하시오.

    0

    /proc 파일시스템
    리눅스 커널이 메모리에서 사용하고 있는 모든 자원들에 대한 정보들을 보관하고 있는 파일들로 구성되어져있다. 현재 실행중인 프로세스들의 정보를 PID 숫자로 된 디렉토리로 구성되어 있으며 프로세스가 종료되면 PID로 생성된 파일 또는 디렉토리 모두가 삭제된다.
    문제 30

    (로그파일을 보여주며) 아파치 서버에서 발생한 로그이다. 검색 봇에 해당하는 IP 주소를 작성하라. 없으면 없다라고 작성하고 여러개면 콤마로 구분하라.

    robot.txt에 접근하는 IP가 3개 있었는데 그것들이다.
    문제 31

    서버가 이상하게 느려져서 검토해본결과 본 서버가 스니핑에 사용되고 있다는 판단을 하게 되었다. 판단 근거를 찾아서 기술하고, 해결방법을 서술하시오.

    cd /var/log 로 들어가보니 message 파일과 secure 파일이 있었다. cat 명령어로 .message 파일을 확인해본 결과 특정 시점에 root 계정을 이용해서 짧은 시간내에 여러차례 특정 ip에 여러포트로 접근했다가 실패한 흔적이 있었고, secure 파일에도 동일한 흔적이 있었다.
    해당 로그를 판단 근거로 서술하고, 해결법으로는 root 계정이 털린것 같으니 root 계정의 비밀번호를 변경하고 lastlog로 root 계정에 접근한 ip를 확인해서 차단시킨다.

    /var/log/messages :시스템의 표준 메시지 기록. 날짜 및 시간, 메시지가 발생한 호스트명, 메시지를 발생한 내부 시스템이나 응용프로그램의 이름, 발생된 메시지가 ‘:’로 구분되어 기록된다.

    /var/log/secure :인증 기반 접속 관련 기록. 인증과 관련된 로그가 기록된다. 주로 로그인, tcp_wrappers, xinetd 관련 로그가 쌓인다.

    /var/log/lastlog :사용자의 접속 기록. telnet이나 ssh를 통해 들어오는 사용자의 마지막 정보가 기록된다. 바이너리 파일로 기록되어 있어 바로 열람할 수 없다. lastlog 명령어로 확인 가능.
    문제 32

    Null session의 취약점을 한 가지만 나열하고 그 취약점에 대한 해결방안을 정답란에 기술하시오.

    취약점: 널 세션은 임의의 사용자가 네트워크를 통해 별도의 인증 없이 사용자 이름이나 공유 정보 등을 수집할 수 있는 메커니즘으로, 윈도우 탐색기가 원격 서버에 있는 공유 자원들을 열거할 때와 같이 응용프로그램에 의해 사용된다.
    문제는 공격자 역시 이러한 널 세션을 통해 로그인할 수 있다는 것이다. 이를 예방하려면 도메인 환경에서 작업할 경우 레지스트리를 변경하고, 만약 파일이나 프린터 공유가 필요하다면 넷 바이오스를 TCP/IP와 분리해야 한다.

    해결방안: 레지스트리에서 Null session 공유에 대한 허용을 하지 않도록 변경한다.

    Null Session :윈도우 서버에서 IPC$라고 불리는 자유롭게 접근 가능한 네트워크 공유에 대한 익명 접속.
    문제 33

    윈도우 스크립팅 호스트(WSH)로 인하여 발생할 수 있는 문제점을 한 가지만 나열하고 그 대응 방안을 정답란에 기술하시오.

    2000년 봄에 러브 버그와 비주얼 베이직 스트립트 웜이 수백만 달러의 피해를 입힌 적이 있다. 이 웜은 ‘.vbs’ 확장자를 가진 모든 텍스트 파일을 비주얼 베이직 스크립트로 간주해 실행시키는 WSH를 이용했다.

    웜의 전염을 막기 위해서는 윈도우 스크립팅 호스트를 무력화해야 한다. 특히 WSH는 인터넷 익스플로러나 다른 소프트웨어 제품들이 설치되거나 업그레이드될 때 함께 재설치 되는 경우가 많으므로 그럴 때마다 무력화시켜야 한다.

    윈도우 스크립트 호스트(Windows Script Host, WSH) :윈도우 운영 체제의 가상화 기술이며 배치 파일에 견줄만하지만 더 다양한 기능을 지원하는 스크립팅 기능을 제공한다.
    문제 34

    아파치 서버를 운영하는 웹 서버가 해킹을 당해 관리자로부터 아래 <웹 로그>를 받았다. <웹 로그>를 분석하여 어떤 공격인지 답안란에 기술하시오.

    웹 로그

    SQL Injection(/var/log/apache2/access.log)
    news_seq 파라미터 값이 SQL 쿼리에 직접 삽입되며, 입력값 검증 없음
    문제 35

    아래 <설명>을 보고 <네트워크 구성도>의 ‘A’에 해당하는 보안 솔루션(장비)의 명칭을 답안란에 입력하시오.

    • 방화벽과 IDS의 장점을 결합하여 만든 보안 솔루션(장비)
    • 인터넷 웜 등과 같은 악성코드 및 해킹에 기인한 유해 트래픽을 차단
    • 피해를 주기 전에 미리 능동적으로 공격을 차단함으로써 공격 피해를 최소화
    • Application의 취약점을 사전에 보완하고 버퍼 오버플로우 등을 예방

    IPS(Intrusion Protection System | 침입방지시스템)
    문제 36

    아래 <내용>이 설명하고 있는 암호화 알고리즘을 답안란에 입력하시오

    • 자리 수가 많은 양의 정수에 대한 소인수 분해가 어렵다는 것에 착안하여 이를 수학적으로 구현한 비대칭 암호화 알고리즘이다.
    • 미국 MIT의 Rivest, Shamir, Adleman이 발표한 공개키 암호화 방식으로, 공개키 암호화의 개념을 수학적으로 구체화 시킨 알고리즘이다.
    • 안정성이 십여년 이상을 통해 검증이 되었고, 그동안 발표 되어온 공개키 암호화 알고리즘 중에서 이애화 구현이 쉽기 때문에 현재 공개키 암호화에서 가장 널리 쓰이고 있는 알고리즘이다.

    RSA(알고리즘)
    문제 37

    아래 <내용>이 설명하고 있는 침입탐지기법을 답안란에 입력하시오.

    • 컴퓨터 프로그램에 침입한 스팸과 컴퓨터바이러스, 크래커를 탐지하는 하나의 개발 시스템이다.
    • 침입자를 속이는 침입탐지기법으로 마치 실제로 공격을 당하는 것처럼 보이게 하여 크래커를 추적하고 정보를 수집하는 역할을 한다.
    • 침입자를 오래 머물게 하여 추적이 기능하므로 능동적으로 방어할 수 있고, 침입자의 공격을 차단할 수 있따는 장점 때문에 많이 활용되고 있다.

    허니팟(Honey pot)
    문제 38

    웹 상에서 스크립트(<, &, $, >)를 부적절하게 사용하여 악의적인 행동을 발생시키는 취약점에 대해 작성하시오.

    XSS 취약점
    문제 39

    해당 바이러스는 바이러스 발생 시 바이러스 이름에 대한 내용 혹은 파일이 많이 생기며, USB, 네트워크 파일, 공유 파일 등으로 인해 감염되는 바이러스이다. 해당 바이러스의 이름을 작성하시오.

    웜바이러스
    문제 40

    고든 라이온에서 만든 포트 스캔 툴로 자가 광고의 접근도 탐지할 수 있는 툴이다. (해당 툴의 사용 화면을 보여준 뒤) 해당 툴의 이름을 작성하시오.

    NMAP 툴