[9급 국가직 정보시스템보안] 23년 1회차
9급 국가직 정보시스템보안 기출문제

23년 1회차

총 20문항 · 객관식 · A4 약 1장

1 / 1
A4정답 포함
9급 국가직 정보시스템보안 기출문제모두CBT · moducbt.com

23년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
프로그램이 실행될 때마다 해당 프로그램이 사용하는 메모리 주소를 무작위로 배치하여 공격 대상 프로그램이 사용하는 메모리 주소를 추측하기 어렵게 만드는 리눅스 운영체제의 기능은?
1DLL
2Canary
3ASLR
4Packing
정답 및 해설

실행할 때마다 메모리 주소를 무작위로 배치하는 기능은 ASLR(Address Space Layout Randomization)이다.

ASLR은 스택·힙·공유 라이브러리 등의 적재 주소를 실행 시마다 바꿔, 공격자가 셸코드나 라이브러리 함수의 주소를 예측하기 어렵게 만든다. 리눅스에서는 /proc/sys/kernel/randomize_va_space 값으로 설정한다.

  • DLL: 윈도에서 여러 프로그램이 공유하는 동적 연결 라이브러리이다.
  • Canary: 버퍼와 반환 주소 사이에 넣은 값의 변조 여부로 스택 오버플로를 탐지하는 기법이다.
  • Packing: 실행 파일을 압축·암호화해 분석을 어렵게 하는 기법이다.
문제 2
어떠한 작업을 주기적으로 실행시키기 위한 리눅스 명령어는?
1wc
2ps
3df
4crontab
정답 및 해설

작업을 주기적으로 실행하도록 예약하는 명령어는 crontab이다.

crontab -e로 분·시·일·월·요일과 실행할 명령을 등록하면 cron 데몬이 정해진 주기마다 실행한다.

  • wc: 파일의 줄 수·단어 수·바이트 수를 센다.
  • ps: 현재 실행 중인 프로세스 목록을 보여 준다.
  • df: 파일 시스템별 디스크 사용량을 보여 준다.
문제 3
(가)∼(다)에 들어갈 용어를 바르게 연결한 것은?

리눅스에는 사용자의 비밀번호를 지정하거나 변경할 때 쓰이는 (가) 명령어가 있다. 이 명령어는 사용자의 비밀번호가 저장된 (나) 파일에 접근하여 기존 비밀번호를 새로 입력한 값으로 변경하는 기능을 한다. (가) 명령어를 일반 사용자가 실행하였다고 하더라도, 해당 프로세스가 관리자 계정만 접근권한이 있는 파일에 접근하여 비밀번호를 바꾸는 것이 가능한 이유는 (가) 명령어에 설정된 (다) 때문이다. 일반 사용자가 (다) 가 설정된 (가) 명령어를 실행하면 해당 프로세스는 일시적으로 파일 소유자인 관리자(root)의 권한을 얻게 되어 관리자만 접근할 수 있는 (나) 파일에 접근하여 해당 사용자의 비밀번호를 수정할 수 있다.

(가)(나)(다)
①passwrd/etc/shadowSetUID
②passwrd/etc/passwdSetRID
③passwd/etc/shadowSetUID
④passwd/etc/shadowSetRID
1①
2②
3③
4④
정답 및 해설

(가)는 passwd, (나)는 /etc/shadow, (다)는 SetUID이다.

/etc/shadow는 root만 읽고 쓸 수 있지만, /usr/bin/passwd 파일에는 SetUID가 설정되어 있어 일반 사용자가 실행해도 실행 중에는 파일 소유자인 root 권한으로 동작하므로 자기 비밀번호를 변경할 수 있다.

  • passwrd라는 명령어는 없으며, 비밀번호 변경 명령은 passwd이다.
  • /etc/passwd에는 계정 정보만 있고 실제 패스워드 해시는 /etc/shadow에 저장된다.
  • SetRID라는 특수 권한은 없으며, 특수 권한은 SetUID·SetGID·Sticky Bit이다.
문제 4
다음과 같이 시스템에 설정된 umask 값이 '022'인 경우, 파일(file1)을 생성하였을 때 생성된 파일의 접근권한은?
[root@security ~]# umask
022
[root@security ~]# touch file1
1-rwxr-xr-x
2-r-xrwxrwx
3-rw-r--r--
4-rw-------
정답 및 해설

생성된 file1의 권한은 -rw-r--r--(644)이다.

일반 파일의 기본 권한은 666(rw-rw-rw-)이고, umask에 해당하는 비트를 제거한다.
666 = 110 110 110, umask 022 = 000 010 010
110 110 110 에서 000 010 010을 빼면 110 100 100 = 644

  • -rwxr-xr-x(755)는 디렉터리 기본값 777에 umask 022를 적용한 결과로, 일반 파일에는 실행 권한이 기본 부여되지 않는다.
  • -r-xrwxrwx는 umask로 그룹·기타의 쓰기 비트를 제거한 결과와 맞지 않는다.
  • -rw-------(600)는 umask 077일 때의 결과이다.
문제 5
유닉스/리눅스 시스템의 로그 파일에 대한 설명으로 옳지 않은 것은?
1utmp 로그는 특정 시간에 로그인한 사용자의 정보를 텍스트 형태로 기록한다.
2wtmp 로그는 사용자의 로그인, 로그아웃, 시스템 재부팅 정보를 바이너리 형태로 기록한다.
3su 로그는 su 명령어 수행에 따른 권한 변경 시도 및 변경 정보를 텍스트 형태로 기록한다.
4pacct 로그는 시스템에 로그인한 모든 사용자가 수행한 프로그램의 정보를 바이너리 형태로 기록한다.
정답 및 해설

utmp는 현재 로그인한 사용자 정보를 바이너리 형태로 기록하므로 텍스트 형태라는 설명이 틀렸다.

utmp는 who·w 명령으로, wtmp는 last 명령으로 확인하는 바이너리 로그이며, 일반 편집기로 직접 읽지 않고 전용 명령어로 조회한다.

  • wtmp는 로그인·로그아웃·재부팅 이력을 바이너리로 누적 기록한다.
  • su 로그(sulog)는 su 명령 사용에 따른 권한 변경 시도와 결과를 텍스트로 기록한다.
  • pacct는 사용자가 실행한 프로그램(명령) 정보를 바이너리로 기록하며 lastcomm 등으로 확인한다.
문제 6
동일한 네트워크에 있는 DHCP 서버와 클라이언트 간의 동작 과정을 순서대로 나열한 것은?
  • (가) 서버는 UDP 목적지 포트 번호 68, 발신지 포트 번호 67로 지정한 뒤, 유니캐스트 메시지나 브로드캐스트 메시지를 클라이언트에 전송
  • (나) UDP 사용자 데이터그램(user datagram)으로 캡슐화 이후, IP 데이터그램으로 캡슐화
  • (다) DHCP 서버는 UDP 포트 번호 67에 수동 개방(passive open) 명령을 수행
  • (라) 부팅된 클라이언트는 포트 번호 68에 능동 개방(active open) 명령을 수행
1(다)→(나)→(라)→(가)
2(다)→(라)→(나)→(가)
3(라)→(다)→(가)→(나)
4(라)→(다)→(나)→(가)
정답 및 해설

순서는 (다)→(라)→(나)→(가)이다.

먼저 DHCP 서버가 UDP 포트 67에서 수동 개방으로 요청을 기다리고, 부팅된 클라이언트가 포트 68에서 능동 개방한다. 클라이언트의 요청 메시지는 UDP 사용자 데이터그램, 다시 IP 데이터그램으로 캡슐화되어 전송되고, 마지막으로 서버가 목적지 포트 68·발신지 포트 67로 응답을 보낸다.

  • 클라이언트의 능동 개방이 서버의 수동 개방보다 먼저 올 수는 없다. 서버가 대기 상태여야 요청을 받는다.
  • 서버 응답은 클라이언트 요청이 캡슐화되어 도착한 뒤에 이루어지므로 맨 마지막이다.
문제 7
(가)∼(다)에 들어갈 용어를 바르게 연결한 것은?
  • (가) 은 블루투스 공격 장치의 검색 활동을 뜻한다.
  • (나) 은 블루투스의 취약점을 이용하여 블루투스 기기의 정보에 접근하는 공격이다.
  • (다) 은 블루투스 장비 간의 취약한 연결 관리를 악용한 공격이다.
(가)(나)(다)
①블루재킹(Bluejacking)블루스나핑(Bluesnarfing)블루프린팅(Blueprinting)
②블루프린팅블루스나핑블루재킹
③블루스나핑블루프린팅블루버깅(Bluebugging)
④블루프린팅블루스나핑블루버깅
1①
2②
3③
4④
정답 및 해설

(가)는 블루프린팅, (나)는 블루스나핑, (다)는 블루버깅이다.

블루프린팅은 공격 대상 블루투스 장치를 검색해 종류·서비스를 파악하는 활동이고, 블루스나핑은 취약점(OPP 등)을 이용해 주소록·파일 등 기기 정보에 접근한다. 블루버깅은 장비 간 취약한 연결 관리를 악용해 원격으로 기기를 제어한다.

  • 블루재킹은 근처 기기에 명함 등 익명 메시지를 보내는 행위로, 검색 활동이나 연결 관리 악용과 다르다.
  • 블루스나핑은 정보 접근 공격이지 장치 검색 활동이 아니다.
문제 8
(가)에 들어갈 용어로 옳은 것은?

x86계열 32-bit CPU 환경에서, 구동 중인 프로세스가 사용하는 메모리 영역 중 스택 영역 관리에 사용되는 주요 레지스터는 EIP, (가) , ESP가 있다. 스택 영역에는 함수 호출 시 전달되는 파라미터, 함수 실행 중 할당되는 지역변수, 함수 종료 시 되돌아갈 리턴 주소 등이 저장된다. 파라미터 및 지역변수는 (가) 를 기준으로 오프셋 값을 설정하여 접근할 수 있다.

1ESI
2EAX
3ECX
4EBP
정답 및 해설

(가)는 스택 프레임의 기준점인 EBP(Base Pointer)이다.

함수 프롤로그에서 EBP를 현재 스택 위치로 고정하면, 파라미터는 EBP+오프셋, 지역변수는 EBP−오프셋으로 접근한다. ESP는 스택 꼭대기, EIP는 다음 실행할 명령어 주소를 가리킨다.

  • ESI: 문자열 복사 등에서 원본 주소를 가리키는 범용 레지스터이다.
  • EAX: 산술 연산과 함수 반환값 저장에 쓰이는 누산기 레지스터이다.
  • ECX: 반복 횟수를 세는 카운터 레지스터이다.
문제 9
(가)에 들어갈 용어로 옳은 것은?
  • (가) 은(는) 보안 관리자나 보안 시스템의 탐지를 피하면서 시스템을 제어하기 위해 공격의 의도로 설치되는 악성파일로, 보통 운영체제의 합법적인 명령어처럼 모아 놓은 것을 말한다.
  • (가) 은(는) 공격자의 파일, 디렉터리 및 프로세스를 숨기는 것을 제외하고 합법적인 명령어처럼 동작한다.
1랜섬웨어
2키로거
3웜
4루트킷
정답 및 해설

(가)는 루트킷(rootkit)이다.

루트킷은 ls·ps·netstat 같은 정상 명령어를 변조한 모음으로, 평소에는 원래 명령처럼 동작하면서 공격자의 파일·디렉터리·프로세스만 숨겨 탐지를 피하고 시스템 제어권을 유지한다.

  • 랜섬웨어: 파일을 암호화한 뒤 복구 대가를 요구하는 악성코드이다.
  • 키로거: 키보드 입력을 가로채 기록하는 악성코드이다.
  • 웜: 스스로 복제해 네트워크로 전파되는 악성코드이다.
문제 10
AAA에 대한 설명으로 옳지 않은 것은?
1Authentication은 자신의 신원을 시스템에 증명하는 과정을 의미한다.
2Authorization은 지문 인식 시스템에 손가락을 댈 때 지문 자체를 의미한다.
3Accounting은 시스템에 접근한 사용자 추적에 활용될 수 있다.
4Accounting은 로그인했을 때 시스템이 이에 대한 기록을 남기는 활동을 의미한다.
정답 및 해설

Authorization(인가)을 지문 자체라고 한 설명이 틀렸다. 인가는 인증된 사용자에게 허용할 권한을 결정하는 과정이다.

AAA는 신원을 증명하는 인증(Authentication), 접근 권한을 부여하는 인가(Authorization), 사용 내역을 기록하는 계정 관리(Accounting)로 구성된다. 지문은 인증에 쓰이는 생체 정보일 뿐이다.

  • Authentication은 자신의 신원을 시스템에 증명하는 과정이다.
  • Accounting 기록은 시스템에 접근한 사용자를 추적하는 데 활용된다.
  • Accounting은 로그인 등 사용자 활동에 대해 시스템이 기록을 남기는 활동이다.
문제 11
전자메일 시스템에서 송신 부인방지 기능을 위해 적용하는 기술은?
1전자 서명(digital signature)
2대칭키 암호화(symmetric encryption)
3앨리어스(alias)
4커버로스(Kerberos)
정답 및 해설

송신 부인방지에는 전자 서명을 적용한다.

전자 서명은 송신자만 가진 개인키로 생성되므로, 공개키로 검증되면 송신자가 나중에 보낸 사실을 부인할 수 없다.

  • 대칭키 암호화: 송·수신자가 같은 키를 공유하므로 누가 만들었는지 증명할 수 없어 부인방지가 안 된다.
  • 앨리어스: 메일 주소에 별칭을 붙이는 기능일 뿐 보안 기능이 아니다.
  • 커버로스: 대칭키 기반 인증 프로토콜로, 메일 송신 부인방지용이 아니다.
문제 12
OTP기기는 다음 중 어떤 수단에 해당하는가?
1Something You Know
2Something You Have
3Something You Are
4Something You Do
정답 및 해설

OTP 기기는 사용자가 가지고 있는 것인 소지 기반(Something You Have) 인증 수단이다.

인증 수단은 아는 것(지식), 가진 것(소지), 자신의 특징(생체), 하는 것(행위)으로 나뉘며, OTP 토큰·스마트카드·보안카드는 소지 기반에 속한다.

  • Something You Know: 패스워드·PIN처럼 사용자가 기억하는 정보이다.
  • Something You Are: 지문·홍채 같은 생체 정보이다.
  • Something You Do: 서명 습관·키 입력 패턴 같은 행위 특성이다.
문제 13
2017년에 발표된 OWASP TOP 10의 항목 중 (가)에 해당되는 것은?

(가) 은(는) 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로서, 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 올바른 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다.

1Broken Access Control
2Broken Authentication
3Sensitive Data Exposure
4Injection
정답 및 해설

(가)는 OWASP Top 10 2017의 Injection(A1)이다.

SQL·OS 명령·LDAP 인젝션처럼 검증되지 않은 입력이 명령어나 쿼리의 일부로 인터프리터에 전달되어 의도치 않은 명령 실행이나 무단 데이터 접근이 일어나는 취약점이다.

  • Broken Access Control: 인증된 사용자에 대한 권한 제한이 제대로 적용되지 않는 문제이다.
  • Broken Authentication: 인증·세션 관리 기능이 잘못 구현되어 계정이 탈취되는 문제이다.
  • Sensitive Data Exposure: 민감한 데이터를 암호화 등으로 적절히 보호하지 않는 문제이다.
문제 14
다음 설명에 따라 진행되는 공격 유형은?
  • 공격자는 악의적인 스크립트가 포함된 콘텐츠를 웹 애플리케이션 서버에 업로드한다.
  • 해당 콘텐츠는 웹 애플리케이션 서버에 저장된다.
  • 희생자는 해당 콘텐츠를 웹 애플리케이션 서버에 요청하여 수신한다.
  • 해당 콘텐츠에 포함된 악의적인 스크립트가 희생자의 디바이스에서 실행된다.
1Stored XSS
2Reflected XSS
3Brute Force
4Buffer Overflow
정답 및 해설

악성 스크립트가 서버에 저장된 뒤 희생자가 조회할 때 실행되므로 Stored XSS이다.

게시판 글 등에 심어 둔 스크립트가 서버에 남아 있어, 해당 콘텐츠를 요청하는 모든 사용자의 브라우저에서 반복 실행된다는 점이 특징이다.

  • Reflected XSS: 스크립트가 서버에 저장되지 않고, 조작된 링크의 요청 값이 응답에 즉시 반사되어 실행된다.
  • Brute Force: 가능한 값을 모두 대입해 패스워드 등을 알아내는 공격이다.
  • Buffer Overflow: 버퍼 경계를 넘는 입력으로 메모리를 덮어쓰는 공격이다.
문제 15
CSRF에 대한 설명으로 옳은 것은?
1취약한 컴포넌트를 악용하여 공격하면 데이터 손실이나 서버 장악 문제가 발생할 수 있는 취약점이다.
2조작된 XPath(XML Path Language) 쿼리를 보냄으로써 비정상적인 데이터를 쿼리를 이용해 가져올 수 있는 취약점이다.
3적절히 보호되지 않은 쿠키를 사용하여, 쿠키 값 변조를 통한 다른 사용자로의 위장 및 권한 상승 등이 가능한 취약점이다.
4로그인한 사용자 브라우저로 하여금 사용자의 세션 쿠키와 기타 인증 정보를 포함하는 위조된 HTTP 요청을 전송할 수 있는 취약점이다.
정답 및 해설

CSRF는 로그인한 사용자의 브라우저가 세션 쿠키 등 인증 정보를 담은 위조된 HTTP 요청을 보내게 만드는 취약점이다.

서버는 정상 사용자의 인증 정보가 포함된 요청이므로 그대로 처리하게 되며, 이를 막으려면 CSRF 토큰이나 재인증, Referer 검증 등을 적용한다.

  • 취약한 컴포넌트 악용으로 데이터 손실·서버 장악이 생기는 것은 알려진 취약점이 있는 컴포넌트 사용 문제이다.
  • 조작된 XPath 쿼리로 비정상 데이터를 가져오는 것은 XPath 인젝션이다.
  • 보호되지 않은 쿠키 값을 변조해 위장·권한 상승하는 것은 쿠키 변조이다.
문제 16
다음에서 설명하는 검사 도구는?

어느 한 시점에서 시스템에 존재하는 특정 경로 혹은 모든 파일에 관한 정보를 DB화하여 저장한 후, 수정·삭제·생성된 파일에 관한 정보를 알려주며, 해커들에 의한 파일의 위변조 여부를 판별할 수 있는 기능을 제공해 주는 검사 도구이다.

1Tripwire
2Burp Suite
3Snort
4NESSUS
정답 및 해설

설명된 검사 도구는 파일 무결성 점검 도구인 Tripwire이다.

Tripwire는 기준 시점의 파일 속성과 해시값을 데이터베이스로 만들어 두고, 이후 다시 비교해 수정·삭제·생성된 파일을 보고함으로써 위변조 여부를 판별한다.

  • Burp Suite: 웹 요청·응답을 가로채 분석·변조하는 웹 프록시 점검 도구이다.
  • Snort: 네트워크 패킷을 규칙과 대조하는 침입 탐지 시스템이다.
  • NESSUS: 원격 시스템의 알려진 취약점을 점검하는 취약점 스캐너이다.
문제 17
robots.txt 파일에 대한 설명으로 옳은 것은?
1robots.txt 파일은 웹 루트 디렉터리에 위치한다.
2User-agent는 접근거부 디렉터리를 나타내는 키워드이다.
3Disallow는 검색 엔진 종류를 나타내는 키워드이다.
4User-agent와 Disallow는 동시에 사용할 수 없다.
정답 및 해설

robots.txt 파일은 웹 루트 디렉터리에 위치한다.

검색 엔진 로봇은 사이트 최상위의 /robots.txt를 먼저 읽고, User-agent로 대상 로봇을, Disallow로 수집을 거부할 경로를 지정한 규칙을 따른다.

  • User-agent는 접근 거부 디렉터리가 아니라 규칙을 적용할 검색 로봇(에이전트)을 지정한다.
  • Disallow는 검색 엔진 종류가 아니라 수집을 막을 경로를 지정한다.
  • User-agent와 Disallow는 한 규칙 안에서 함께 사용한다.
문제 18
다음은 Windows 운영체제가 설치된 시스템에서 SID를 출력한 결과이다. (가), (나)에 대한 설명으로 옳지 않은 것은?

S-1-5-21-2823624781-484892517-3265479878-500

  • (가): 21-2823624781-484892517-3265479878
  • (나): 500
1(가)는 시스템 부팅 시마다 새롭게 부여되는 시스템 ID이다.
2(나)는 RID를 나타내며, 500의 경우 Administrator임을 의미한다.
3(나)는 RID를 나타내며, 501의 경우 Guest임을 의미한다.
4(나)는 RID를 나타내며, 일반 사용자에게는 1,000 이상의 숫자가 부여된다.
정답 및 해설

(가)는 시스템(도메인) 고유 식별자로 설치 시 생성되어 고정되므로, 부팅할 때마다 새로 부여된다는 설명이 틀렸다.

SID는 S-1(버전)-5(식별자 기관)-21-…로 이어지는 시스템·도메인 식별자와, 끝의 RID(상대 식별자)로 구성된다. 같은 시스템의 계정은 앞부분이 같고 RID로 구별된다.

  • RID 500은 기본 관리자 계정 Administrator이다.
  • RID 501은 Guest 계정이다.
  • 일반 사용자 계정에는 1000 이상의 RID가 부여된다.
문제 19
디지털 포렌식의 절차에서 사전준비 이후 단계를 순서대로 바르게 나열한 것은?
  • (가) 증거 수집
  • (나) 보관 및 이송
  • (다) 보고서 작성
  • (라) 증거 분석 및 조사
1(가)→(나)→(다)→(라)
2(가)→(나)→(라)→(다)
3(나)→(가)→(다)→(라)
4(나)→(라)→(가)→(다)
정답 및 해설

사전준비 이후 순서는 (가)→(나)→(라)→(다)이다.

디지털 포렌식은 사전준비 → 증거 수집 → 증거 보관 및 이송 → 증거 분석 및 조사 → 보고서 작성 순으로 진행되며, 전 과정에서 증거의 무결성과 연계 보관성(Chain of Custody)을 유지해야 한다.

  • 보관 및 이송은 증거를 수집한 뒤에야 할 수 있으므로 증거 수집보다 앞설 수 없다.
  • 보고서 작성은 분석 결과를 정리하는 단계이므로 분석·조사보다 앞설 수 없다.
문제 20
(가), (나)에 들어갈 용어를 바르게 연결한 것은?
  • CVE(Common Vulnerabilities and Exposure)는 공개적으로 알려진 소프트웨어의 보안취약점을 가리키는 고유 표기를 의미한다.
  • 취약점명은 CVE - (가) - (나) 형식으로 구성되어 있다.
(가)(나)
①일련번호소프트웨어 버전
②연도소프트웨어 버전
③일련번호연도
④연도일련번호
1①
2②
3③
4④
정답 및 해설

(가)는 연도, (나)는 일련번호이다.

CVE 식별자는 CVE-연도-일련번호 형식으로, 예를 들어 Log4Shell 취약점은 CVE-2021-44228로 표기된다. 일련번호는 4자리 이상으로 부여된다.

  • CVE 식별자에는 소프트웨어 버전 정보가 들어가지 않는다.
  • 연도가 일련번호보다 앞에 온다.
9급 국가직 정보시스템보안 기출문제모두CBT · moducbt.com
23년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
프로그램이 실행될 때마다 해당 프로그램이 사용하는 메모리 주소를 무작위로 배치하여 공격 대상 프로그램이 사용하는 메모리 주소를 추측하기 어렵게 만드는 리눅스 운영체제의 기능은?
1DLL
2Canary
3ASLR
4Packing
정답 및 해설

실행할 때마다 메모리 주소를 무작위로 배치하는 기능은 ASLR(Address Space Layout Randomization)이다.

ASLR은 스택·힙·공유 라이브러리 등의 적재 주소를 실행 시마다 바꿔, 공격자가 셸코드나 라이브러리 함수의 주소를 예측하기 어렵게 만든다. 리눅스에서는 /proc/sys/kernel/randomize_va_space 값으로 설정한다.

  • DLL: 윈도에서 여러 프로그램이 공유하는 동적 연결 라이브러리이다.
  • Canary: 버퍼와 반환 주소 사이에 넣은 값의 변조 여부로 스택 오버플로를 탐지하는 기법이다.
  • Packing: 실행 파일을 압축·암호화해 분석을 어렵게 하는 기법이다.
문제 2
어떠한 작업을 주기적으로 실행시키기 위한 리눅스 명령어는?
1wc
2ps
3df
4crontab
정답 및 해설

작업을 주기적으로 실행하도록 예약하는 명령어는 crontab이다.

crontab -e로 분·시·일·월·요일과 실행할 명령을 등록하면 cron 데몬이 정해진 주기마다 실행한다.

  • wc: 파일의 줄 수·단어 수·바이트 수를 센다.
  • ps: 현재 실행 중인 프로세스 목록을 보여 준다.
  • df: 파일 시스템별 디스크 사용량을 보여 준다.
문제 3
(가)∼(다)에 들어갈 용어를 바르게 연결한 것은?

리눅스에는 사용자의 비밀번호를 지정하거나 변경할 때 쓰이는 (가) 명령어가 있다. 이 명령어는 사용자의 비밀번호가 저장된 (나) 파일에 접근하여 기존 비밀번호를 새로 입력한 값으로 변경하는 기능을 한다. (가) 명령어를 일반 사용자가 실행하였다고 하더라도, 해당 프로세스가 관리자 계정만 접근권한이 있는 파일에 접근하여 비밀번호를 바꾸는 것이 가능한 이유는 (가) 명령어에 설정된 (다) 때문이다. 일반 사용자가 (다) 가 설정된 (가) 명령어를 실행하면 해당 프로세스는 일시적으로 파일 소유자인 관리자(root)의 권한을 얻게 되어 관리자만 접근할 수 있는 (나) 파일에 접근하여 해당 사용자의 비밀번호를 수정할 수 있다.

(가)(나)(다)
①passwrd/etc/shadowSetUID
②passwrd/etc/passwdSetRID
③passwd/etc/shadowSetUID
④passwd/etc/shadowSetRID
1①
2②
3③
4④
정답 및 해설

(가)는 passwd, (나)는 /etc/shadow, (다)는 SetUID이다.

/etc/shadow는 root만 읽고 쓸 수 있지만, /usr/bin/passwd 파일에는 SetUID가 설정되어 있어 일반 사용자가 실행해도 실행 중에는 파일 소유자인 root 권한으로 동작하므로 자기 비밀번호를 변경할 수 있다.

  • passwrd라는 명령어는 없으며, 비밀번호 변경 명령은 passwd이다.
  • /etc/passwd에는 계정 정보만 있고 실제 패스워드 해시는 /etc/shadow에 저장된다.
  • SetRID라는 특수 권한은 없으며, 특수 권한은 SetUID·SetGID·Sticky Bit이다.
문제 4
다음과 같이 시스템에 설정된 umask 값이 '022'인 경우, 파일(file1)을 생성하였을 때 생성된 파일의 접근권한은?
[root@security ~]# umask
022
[root@security ~]# touch file1
1-rwxr-xr-x
2-r-xrwxrwx
3-rw-r--r--
4-rw-------
정답 및 해설

생성된 file1의 권한은 -rw-r--r--(644)이다.

일반 파일의 기본 권한은 666(rw-rw-rw-)이고, umask에 해당하는 비트를 제거한다.
666 = 110 110 110, umask 022 = 000 010 010
110 110 110 에서 000 010 010을 빼면 110 100 100 = 644

  • -rwxr-xr-x(755)는 디렉터리 기본값 777에 umask 022를 적용한 결과로, 일반 파일에는 실행 권한이 기본 부여되지 않는다.
  • -r-xrwxrwx는 umask로 그룹·기타의 쓰기 비트를 제거한 결과와 맞지 않는다.
  • -rw-------(600)는 umask 077일 때의 결과이다.
문제 5
유닉스/리눅스 시스템의 로그 파일에 대한 설명으로 옳지 않은 것은?
1utmp 로그는 특정 시간에 로그인한 사용자의 정보를 텍스트 형태로 기록한다.
2wtmp 로그는 사용자의 로그인, 로그아웃, 시스템 재부팅 정보를 바이너리 형태로 기록한다.
3su 로그는 su 명령어 수행에 따른 권한 변경 시도 및 변경 정보를 텍스트 형태로 기록한다.
4pacct 로그는 시스템에 로그인한 모든 사용자가 수행한 프로그램의 정보를 바이너리 형태로 기록한다.
정답 및 해설

utmp는 현재 로그인한 사용자 정보를 바이너리 형태로 기록하므로 텍스트 형태라는 설명이 틀렸다.

utmp는 who·w 명령으로, wtmp는 last 명령으로 확인하는 바이너리 로그이며, 일반 편집기로 직접 읽지 않고 전용 명령어로 조회한다.

  • wtmp는 로그인·로그아웃·재부팅 이력을 바이너리로 누적 기록한다.
  • su 로그(sulog)는 su 명령 사용에 따른 권한 변경 시도와 결과를 텍스트로 기록한다.
  • pacct는 사용자가 실행한 프로그램(명령) 정보를 바이너리로 기록하며 lastcomm 등으로 확인한다.
문제 6
동일한 네트워크에 있는 DHCP 서버와 클라이언트 간의 동작 과정을 순서대로 나열한 것은?
  • (가) 서버는 UDP 목적지 포트 번호 68, 발신지 포트 번호 67로 지정한 뒤, 유니캐스트 메시지나 브로드캐스트 메시지를 클라이언트에 전송
  • (나) UDP 사용자 데이터그램(user datagram)으로 캡슐화 이후, IP 데이터그램으로 캡슐화
  • (다) DHCP 서버는 UDP 포트 번호 67에 수동 개방(passive open) 명령을 수행
  • (라) 부팅된 클라이언트는 포트 번호 68에 능동 개방(active open) 명령을 수행
1(다)→(나)→(라)→(가)
2(다)→(라)→(나)→(가)
3(라)→(다)→(가)→(나)
4(라)→(다)→(나)→(가)
정답 및 해설

순서는 (다)→(라)→(나)→(가)이다.

먼저 DHCP 서버가 UDP 포트 67에서 수동 개방으로 요청을 기다리고, 부팅된 클라이언트가 포트 68에서 능동 개방한다. 클라이언트의 요청 메시지는 UDP 사용자 데이터그램, 다시 IP 데이터그램으로 캡슐화되어 전송되고, 마지막으로 서버가 목적지 포트 68·발신지 포트 67로 응답을 보낸다.

  • 클라이언트의 능동 개방이 서버의 수동 개방보다 먼저 올 수는 없다. 서버가 대기 상태여야 요청을 받는다.
  • 서버 응답은 클라이언트 요청이 캡슐화되어 도착한 뒤에 이루어지므로 맨 마지막이다.
문제 7
(가)∼(다)에 들어갈 용어를 바르게 연결한 것은?
  • (가) 은 블루투스 공격 장치의 검색 활동을 뜻한다.
  • (나) 은 블루투스의 취약점을 이용하여 블루투스 기기의 정보에 접근하는 공격이다.
  • (다) 은 블루투스 장비 간의 취약한 연결 관리를 악용한 공격이다.
(가)(나)(다)
①블루재킹(Bluejacking)블루스나핑(Bluesnarfing)블루프린팅(Blueprinting)
②블루프린팅블루스나핑블루재킹
③블루스나핑블루프린팅블루버깅(Bluebugging)
④블루프린팅블루스나핑블루버깅
1①
2②
3③
4④
정답 및 해설

(가)는 블루프린팅, (나)는 블루스나핑, (다)는 블루버깅이다.

블루프린팅은 공격 대상 블루투스 장치를 검색해 종류·서비스를 파악하는 활동이고, 블루스나핑은 취약점(OPP 등)을 이용해 주소록·파일 등 기기 정보에 접근한다. 블루버깅은 장비 간 취약한 연결 관리를 악용해 원격으로 기기를 제어한다.

  • 블루재킹은 근처 기기에 명함 등 익명 메시지를 보내는 행위로, 검색 활동이나 연결 관리 악용과 다르다.
  • 블루스나핑은 정보 접근 공격이지 장치 검색 활동이 아니다.
문제 8
(가)에 들어갈 용어로 옳은 것은?

x86계열 32-bit CPU 환경에서, 구동 중인 프로세스가 사용하는 메모리 영역 중 스택 영역 관리에 사용되는 주요 레지스터는 EIP, (가) , ESP가 있다. 스택 영역에는 함수 호출 시 전달되는 파라미터, 함수 실행 중 할당되는 지역변수, 함수 종료 시 되돌아갈 리턴 주소 등이 저장된다. 파라미터 및 지역변수는 (가) 를 기준으로 오프셋 값을 설정하여 접근할 수 있다.

1ESI
2EAX
3ECX
4EBP
정답 및 해설

(가)는 스택 프레임의 기준점인 EBP(Base Pointer)이다.

함수 프롤로그에서 EBP를 현재 스택 위치로 고정하면, 파라미터는 EBP+오프셋, 지역변수는 EBP−오프셋으로 접근한다. ESP는 스택 꼭대기, EIP는 다음 실행할 명령어 주소를 가리킨다.

  • ESI: 문자열 복사 등에서 원본 주소를 가리키는 범용 레지스터이다.
  • EAX: 산술 연산과 함수 반환값 저장에 쓰이는 누산기 레지스터이다.
  • ECX: 반복 횟수를 세는 카운터 레지스터이다.
문제 9
(가)에 들어갈 용어로 옳은 것은?
  • (가) 은(는) 보안 관리자나 보안 시스템의 탐지를 피하면서 시스템을 제어하기 위해 공격의 의도로 설치되는 악성파일로, 보통 운영체제의 합법적인 명령어처럼 모아 놓은 것을 말한다.
  • (가) 은(는) 공격자의 파일, 디렉터리 및 프로세스를 숨기는 것을 제외하고 합법적인 명령어처럼 동작한다.
1랜섬웨어
2키로거
3웜
4루트킷
정답 및 해설

(가)는 루트킷(rootkit)이다.

루트킷은 ls·ps·netstat 같은 정상 명령어를 변조한 모음으로, 평소에는 원래 명령처럼 동작하면서 공격자의 파일·디렉터리·프로세스만 숨겨 탐지를 피하고 시스템 제어권을 유지한다.

  • 랜섬웨어: 파일을 암호화한 뒤 복구 대가를 요구하는 악성코드이다.
  • 키로거: 키보드 입력을 가로채 기록하는 악성코드이다.
  • 웜: 스스로 복제해 네트워크로 전파되는 악성코드이다.
문제 10
AAA에 대한 설명으로 옳지 않은 것은?
1Authentication은 자신의 신원을 시스템에 증명하는 과정을 의미한다.
2Authorization은 지문 인식 시스템에 손가락을 댈 때 지문 자체를 의미한다.
3Accounting은 시스템에 접근한 사용자 추적에 활용될 수 있다.
4Accounting은 로그인했을 때 시스템이 이에 대한 기록을 남기는 활동을 의미한다.
정답 및 해설

Authorization(인가)을 지문 자체라고 한 설명이 틀렸다. 인가는 인증된 사용자에게 허용할 권한을 결정하는 과정이다.

AAA는 신원을 증명하는 인증(Authentication), 접근 권한을 부여하는 인가(Authorization), 사용 내역을 기록하는 계정 관리(Accounting)로 구성된다. 지문은 인증에 쓰이는 생체 정보일 뿐이다.

  • Authentication은 자신의 신원을 시스템에 증명하는 과정이다.
  • Accounting 기록은 시스템에 접근한 사용자를 추적하는 데 활용된다.
  • Accounting은 로그인 등 사용자 활동에 대해 시스템이 기록을 남기는 활동이다.
문제 11
전자메일 시스템에서 송신 부인방지 기능을 위해 적용하는 기술은?
1전자 서명(digital signature)
2대칭키 암호화(symmetric encryption)
3앨리어스(alias)
4커버로스(Kerberos)
정답 및 해설

송신 부인방지에는 전자 서명을 적용한다.

전자 서명은 송신자만 가진 개인키로 생성되므로, 공개키로 검증되면 송신자가 나중에 보낸 사실을 부인할 수 없다.

  • 대칭키 암호화: 송·수신자가 같은 키를 공유하므로 누가 만들었는지 증명할 수 없어 부인방지가 안 된다.
  • 앨리어스: 메일 주소에 별칭을 붙이는 기능일 뿐 보안 기능이 아니다.
  • 커버로스: 대칭키 기반 인증 프로토콜로, 메일 송신 부인방지용이 아니다.
문제 12
OTP기기는 다음 중 어떤 수단에 해당하는가?
1Something You Know
2Something You Have
3Something You Are
4Something You Do
정답 및 해설

OTP 기기는 사용자가 가지고 있는 것인 소지 기반(Something You Have) 인증 수단이다.

인증 수단은 아는 것(지식), 가진 것(소지), 자신의 특징(생체), 하는 것(행위)으로 나뉘며, OTP 토큰·스마트카드·보안카드는 소지 기반에 속한다.

  • Something You Know: 패스워드·PIN처럼 사용자가 기억하는 정보이다.
  • Something You Are: 지문·홍채 같은 생체 정보이다.
  • Something You Do: 서명 습관·키 입력 패턴 같은 행위 특성이다.
문제 13
2017년에 발표된 OWASP TOP 10의 항목 중 (가)에 해당되는 것은?

(가) 은(는) 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로서, 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 올바른 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다.

1Broken Access Control
2Broken Authentication
3Sensitive Data Exposure
4Injection
정답 및 해설

(가)는 OWASP Top 10 2017의 Injection(A1)이다.

SQL·OS 명령·LDAP 인젝션처럼 검증되지 않은 입력이 명령어나 쿼리의 일부로 인터프리터에 전달되어 의도치 않은 명령 실행이나 무단 데이터 접근이 일어나는 취약점이다.

  • Broken Access Control: 인증된 사용자에 대한 권한 제한이 제대로 적용되지 않는 문제이다.
  • Broken Authentication: 인증·세션 관리 기능이 잘못 구현되어 계정이 탈취되는 문제이다.
  • Sensitive Data Exposure: 민감한 데이터를 암호화 등으로 적절히 보호하지 않는 문제이다.
문제 14
다음 설명에 따라 진행되는 공격 유형은?
  • 공격자는 악의적인 스크립트가 포함된 콘텐츠를 웹 애플리케이션 서버에 업로드한다.
  • 해당 콘텐츠는 웹 애플리케이션 서버에 저장된다.
  • 희생자는 해당 콘텐츠를 웹 애플리케이션 서버에 요청하여 수신한다.
  • 해당 콘텐츠에 포함된 악의적인 스크립트가 희생자의 디바이스에서 실행된다.
1Stored XSS
2Reflected XSS
3Brute Force
4Buffer Overflow
정답 및 해설

악성 스크립트가 서버에 저장된 뒤 희생자가 조회할 때 실행되므로 Stored XSS이다.

게시판 글 등에 심어 둔 스크립트가 서버에 남아 있어, 해당 콘텐츠를 요청하는 모든 사용자의 브라우저에서 반복 실행된다는 점이 특징이다.

  • Reflected XSS: 스크립트가 서버에 저장되지 않고, 조작된 링크의 요청 값이 응답에 즉시 반사되어 실행된다.
  • Brute Force: 가능한 값을 모두 대입해 패스워드 등을 알아내는 공격이다.
  • Buffer Overflow: 버퍼 경계를 넘는 입력으로 메모리를 덮어쓰는 공격이다.
문제 15
CSRF에 대한 설명으로 옳은 것은?
1취약한 컴포넌트를 악용하여 공격하면 데이터 손실이나 서버 장악 문제가 발생할 수 있는 취약점이다.
2조작된 XPath(XML Path Language) 쿼리를 보냄으로써 비정상적인 데이터를 쿼리를 이용해 가져올 수 있는 취약점이다.
3적절히 보호되지 않은 쿠키를 사용하여, 쿠키 값 변조를 통한 다른 사용자로의 위장 및 권한 상승 등이 가능한 취약점이다.
4로그인한 사용자 브라우저로 하여금 사용자의 세션 쿠키와 기타 인증 정보를 포함하는 위조된 HTTP 요청을 전송할 수 있는 취약점이다.
정답 및 해설

CSRF는 로그인한 사용자의 브라우저가 세션 쿠키 등 인증 정보를 담은 위조된 HTTP 요청을 보내게 만드는 취약점이다.

서버는 정상 사용자의 인증 정보가 포함된 요청이므로 그대로 처리하게 되며, 이를 막으려면 CSRF 토큰이나 재인증, Referer 검증 등을 적용한다.

  • 취약한 컴포넌트 악용으로 데이터 손실·서버 장악이 생기는 것은 알려진 취약점이 있는 컴포넌트 사용 문제이다.
  • 조작된 XPath 쿼리로 비정상 데이터를 가져오는 것은 XPath 인젝션이다.
  • 보호되지 않은 쿠키 값을 변조해 위장·권한 상승하는 것은 쿠키 변조이다.
문제 16
다음에서 설명하는 검사 도구는?

어느 한 시점에서 시스템에 존재하는 특정 경로 혹은 모든 파일에 관한 정보를 DB화하여 저장한 후, 수정·삭제·생성된 파일에 관한 정보를 알려주며, 해커들에 의한 파일의 위변조 여부를 판별할 수 있는 기능을 제공해 주는 검사 도구이다.

1Tripwire
2Burp Suite
3Snort
4NESSUS
정답 및 해설

설명된 검사 도구는 파일 무결성 점검 도구인 Tripwire이다.

Tripwire는 기준 시점의 파일 속성과 해시값을 데이터베이스로 만들어 두고, 이후 다시 비교해 수정·삭제·생성된 파일을 보고함으로써 위변조 여부를 판별한다.

  • Burp Suite: 웹 요청·응답을 가로채 분석·변조하는 웹 프록시 점검 도구이다.
  • Snort: 네트워크 패킷을 규칙과 대조하는 침입 탐지 시스템이다.
  • NESSUS: 원격 시스템의 알려진 취약점을 점검하는 취약점 스캐너이다.
문제 17
robots.txt 파일에 대한 설명으로 옳은 것은?
1robots.txt 파일은 웹 루트 디렉터리에 위치한다.
2User-agent는 접근거부 디렉터리를 나타내는 키워드이다.
3Disallow는 검색 엔진 종류를 나타내는 키워드이다.
4User-agent와 Disallow는 동시에 사용할 수 없다.
정답 및 해설

robots.txt 파일은 웹 루트 디렉터리에 위치한다.

검색 엔진 로봇은 사이트 최상위의 /robots.txt를 먼저 읽고, User-agent로 대상 로봇을, Disallow로 수집을 거부할 경로를 지정한 규칙을 따른다.

  • User-agent는 접근 거부 디렉터리가 아니라 규칙을 적용할 검색 로봇(에이전트)을 지정한다.
  • Disallow는 검색 엔진 종류가 아니라 수집을 막을 경로를 지정한다.
  • User-agent와 Disallow는 한 규칙 안에서 함께 사용한다.
문제 18
다음은 Windows 운영체제가 설치된 시스템에서 SID를 출력한 결과이다. (가), (나)에 대한 설명으로 옳지 않은 것은?

S-1-5-21-2823624781-484892517-3265479878-500

  • (가): 21-2823624781-484892517-3265479878
  • (나): 500
1(가)는 시스템 부팅 시마다 새롭게 부여되는 시스템 ID이다.
2(나)는 RID를 나타내며, 500의 경우 Administrator임을 의미한다.
3(나)는 RID를 나타내며, 501의 경우 Guest임을 의미한다.
4(나)는 RID를 나타내며, 일반 사용자에게는 1,000 이상의 숫자가 부여된다.
정답 및 해설

(가)는 시스템(도메인) 고유 식별자로 설치 시 생성되어 고정되므로, 부팅할 때마다 새로 부여된다는 설명이 틀렸다.

SID는 S-1(버전)-5(식별자 기관)-21-…로 이어지는 시스템·도메인 식별자와, 끝의 RID(상대 식별자)로 구성된다. 같은 시스템의 계정은 앞부분이 같고 RID로 구별된다.

  • RID 500은 기본 관리자 계정 Administrator이다.
  • RID 501은 Guest 계정이다.
  • 일반 사용자 계정에는 1000 이상의 RID가 부여된다.
문제 19
디지털 포렌식의 절차에서 사전준비 이후 단계를 순서대로 바르게 나열한 것은?
  • (가) 증거 수집
  • (나) 보관 및 이송
  • (다) 보고서 작성
  • (라) 증거 분석 및 조사
1(가)→(나)→(다)→(라)
2(가)→(나)→(라)→(다)
3(나)→(가)→(다)→(라)
4(나)→(라)→(가)→(다)
정답 및 해설

사전준비 이후 순서는 (가)→(나)→(라)→(다)이다.

디지털 포렌식은 사전준비 → 증거 수집 → 증거 보관 및 이송 → 증거 분석 및 조사 → 보고서 작성 순으로 진행되며, 전 과정에서 증거의 무결성과 연계 보관성(Chain of Custody)을 유지해야 한다.

  • 보관 및 이송은 증거를 수집한 뒤에야 할 수 있으므로 증거 수집보다 앞설 수 없다.
  • 보고서 작성은 분석 결과를 정리하는 단계이므로 분석·조사보다 앞설 수 없다.
문제 20
(가), (나)에 들어갈 용어를 바르게 연결한 것은?
  • CVE(Common Vulnerabilities and Exposure)는 공개적으로 알려진 소프트웨어의 보안취약점을 가리키는 고유 표기를 의미한다.
  • 취약점명은 CVE - (가) - (나) 형식으로 구성되어 있다.
(가)(나)
①일련번호소프트웨어 버전
②연도소프트웨어 버전
③일련번호연도
④연도일련번호
1①
2②
3③
4④
정답 및 해설

(가)는 연도, (나)는 일련번호이다.

CVE 식별자는 CVE-연도-일련번호 형식으로, 예를 들어 Log4Shell 취약점은 CVE-2021-44228로 표기된다. 일련번호는 4자리 이상으로 부여된다.

  • CVE 식별자에는 소프트웨어 버전 정보가 들어가지 않는다.
  • 연도가 일련번호보다 앞에 온다.