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

21년 1회차

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

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

21년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
다음에서 설명하는 보안시스템은?
  • 해커를 유인해서 정보를 얻거나 잡으려고 설치하는 시스템이다.
  • 쉽게 해킹이 가능한 것처럼 취약해 보여야 한다.
  • 해커에게 쉽게 노출되어야 한다.
  • 시스템의 모든 구성요소를 갖추고 있어야 한다.
  • 시스템을 통과하는 모든 패킷을 감시해야 한다.
1허니팟(honeypot)
2텔넷(telnet)
3봇넷(botnet)
4샌드박스(sandbox)
정답 및 해설

해커를 일부러 유인하려고 취약한 것처럼 꾸며 공격을 끌어들이고 그 행위를 감시·분석하는 시스템은 허니팟(honeypot)이다.

실제 시스템처럼 모든 구성요소를 갖추되 쉽게 노출·침투되도록 꾸며 공격자를 묶어 두고, 통과하는 패킷을 감시해 공격 기법과 정보를 수집한다는 점이 설명과 정확히 맞는다.

  • 원격 접속을 위한 터미널 프로토콜은 공격자를 유인하는 기만 시스템이 아니다.
  • 감염된 다수의 좀비 PC를 원격 조종하는 네트워크는 공격 인프라이지 유인용 시스템이 아니다.
  • 프로그램을 격리 실행해 피해 확산을 막는 기술은 유인·감시가 목적이 아니다.
문제 2
일반적인 리눅스 또는 유닉스 시스템의 디렉터리(directory)에 대한 설명으로 옳은 것은?
1/dev-프로그램 실행 및 설치할 때 생성되는 임시 파일을 담고 있으며 임의로 삭제될 수 있다.
2/boot-시스템 환경 설정 및 주요 설정 파일들을 담고 있다.
3/usr/include-C 언어에서 사용되는 헤더 파일들을 담고 있다.
4/usr-각 계정으로 로그인할 때 이 디렉터리 밑에 자신의 홈 디렉터리가 작업 디렉터리가 된다.
정답 및 해설

C 언어 컴파일에 쓰이는 헤더 파일(.h)이 모여 있는 디렉터리가 /usr/include라는 설명만 옳다.

나머지는 디렉터리의 용도를 뒤바꿔 놓은 설명이다. 장치 파일, 부팅 관련 파일, 홈 디렉터리의 위치를 혼동하지 않아야 한다.

  • /dev는 디스크·단말 같은 장치를 파일 형태로 제공하는 장치 파일 디렉터리이며, 임시 파일을 담아 삭제될 수 있는 공간은 /tmp이다.
  • /boot는 부팅에 필요한 커널 이미지와 부트로더 파일을 담으며, 시스템 환경·주요 설정 파일은 /etc에 있다.
  • /usr는 공용 프로그램과 라이브러리가 놓이는 곳이고, 각 계정의 홈 디렉터리는 보통 /home 아래에 만들어진다.
문제 3
데이터베이스 보안에서 웹을 이용한 SQL 인젝션 공격 방지를 위한 시큐어 코딩(secure coding) 방법으로 옳지 않은 것은?
1주석문에 시스템 주요 정보를 사용자가 볼 수 있도록 해야 한다.
2애플리케이션에서 데이터베이스 연결을 수행할 때 최소 권한의 계정을 사용해야 한다.
3외부 입력값이 삽입되는 SQL 쿼리문의 구조가 변경되지 않도록 해야 한다.
4외부 입력값이 삽입되는 SQL 쿼리문은 특수문자를 필터링하여 입력값 검증을 수행해야 한다.
정답 및 해설

시스템의 주요 정보를 주석문에 남겨 사용자에게 노출하는 것은 정보 유출로 이어지므로 시큐어 코딩 원칙에 어긋난다.

SQL 인젝션 방지는 외부 입력으로 쿼리 구조가 바뀌지 않게 하고, 입력값을 검증·필터링하며, 최소 권한으로 DB에 접속하는 것이 핵심이다. 주석에 내부 정보를 드러내는 행위는 이와 정반대이다.

  • DB 연결 시 최소 권한 계정을 사용하는 것은 피해 범위를 줄이는 올바른 방법이다.
  • 외부 입력이 들어가도 쿼리문 구조가 바뀌지 않도록 하는 매개변수화는 인젝션을 막는 올바른 방법이다.
  • 특수문자를 필터링해 입력값을 검증하는 것도 올바른 방어 기법이다.
문제 4
중요 데이터에 대한 기밀성 또는 무결성을 제공하는 보안기술 중 복호화를 위한 키가 사용되는 알고리즘은?
1SHA-256
2MD5
3AES
4HAS-160
정답 및 해설

제시된 것 중 복호화를 위한 키가 필요한 암호 알고리즘은 대칭키 블록 암호인 AES이다.

복호화 키가 존재하려면 암호화·복호화가 가능한 양방향 알고리즘이어야 하는데, 나머지는 모두 단방향 해시 함수라서 원문을 되돌리는 키 자체가 없다.

  • 256비트 결과를 내는 해시 함수는 단방향이라 복호화 키가 없다.
  • 128비트 결과를 내는 해시 함수도 단방향 변환이다.
  • 국내에서 개발된 160비트 해시 함수 역시 키로 원문을 되돌릴 수 없다.
문제 5
커버로스(Kerberos)에 대한 설명으로 옳지 않은 것은?
1커버로스의 전반적인 기법은 신뢰하는 제3자 인증 서비스 방안이다.
2커버로스 프로토콜은 인증 서버(authentication server), 티켓 발급 서버(ticket granting server) 및 사용자에게 서비스를 제공하는 다수의 서비스 서버(service server)를 사용한다.
3커버로스를 구성하는 개체 간에 교환되는 대부분의 메시지는 대칭키 암호화 기술로 기밀성이 보장된다.
4커버로스 버전 4에서 암호화된 메시지는 암호 알고리즘 식별자가 덧붙여진다. 이것은 사용자에게 DES가 아닌 다른 알고리즘을 사용할 수 있도록 한다.
정답 및 해설

암호 알고리즘 식별자를 붙여 DES 외의 알고리즘을 쓸 수 있게 한 것은 커버로스 버전 5의 특징이며, 버전 4에 대한 설명으로는 옳지 않다.

버전 4는 DES만 사용하도록 고정되어 알고리즘을 선택할 여지가 없었고, 이 제약을 풀기 위해 버전 5에서 알고리즘 식별자를 도입했다.

  • 신뢰하는 제3자 인증 서비스 방식이라는 설명은 커버로스의 기본 구조로 옳다.
  • 인증 서버, 티켓 발급 서버, 서비스 서버를 사용한다는 설명도 옳다.
  • 개체 간 메시지 대부분이 대칭키 암호로 기밀성을 보장받는다는 설명도 옳다.
문제 6
다음 리눅스 시스템의 /etc/passwd 파일 내용에서 사용자의 권한 수준을 결정하는 항목은?
adm : x : 0 : 1 : administrator : /var/adm : /sbin/nologin
1adm
2x
30
4/sbin/nologin
정답 및 해설

리눅스 /etc/passwd 항목에서 사용자의 권한 수준을 결정하는 것은 세 번째 필드인 사용자 번호(UID)이며, 그 값이 0이다.

UID는 0이면 최고 관리자(root) 권한을 뜻한다. passwd 한 줄은 사용자명, 암호, UID, 그룹 번호, 설명, 홈 디렉터리, 로그인 셸 순으로 구성된다.

  • 맨 앞의 사용자명은 계정 이름일 뿐 권한 크기와는 무관하다.
  • 암호 자리의 x는 실제 암호가 섀도 파일에 있음을 나타내는 표시이다.
  • 마지막의 로그인 셸 경로는 로그인 시 실행 셸을 지정할 뿐 권한 수준을 정하지 않는다.
문제 7
리눅스 배시(bash) 셸에서 셸 변수 또는 환경 변수로 설정된 SHELL에 저장된 값을 출력하는 명령은?
1echo SHELL
2echo '$SHELL'
3echo “$SHELL”
4echo \$SHELL
정답 및 해설

변수에 저장된 값을 출력하려면 큰따옴표로 감싼 변수 표기(달러 기호와 변수명)를 써야 셸이 변수를 확장해 실제 값을 보여 준다.

셸은 큰따옴표 안에서만 변수 치환을 수행하고, 작은따옴표 안이나 역슬래시로 이스케이프한 경우에는 치환하지 않고 글자 그대로 취급한다.

  • 달러 기호 없이 이름만 쓰면 변수가 아니라 글자 그대로의 이름이 출력된다.
  • 작은따옴표로 감싸면 변수가 확장되지 않아 표기 문자열이 그대로 출력된다.
  • 역슬래시로 이스케이프하면 특수 의미가 사라져 표기 문자열이 그대로 출력된다.
문제 8
일반적으로 컴퓨터를 부팅할 때 운영체제를 주기억장치에 적재하는 부트 프로그램이 저장되는 디스크 공간은?
1BIOS(Basic Input Output System)
2POST(Power On Self Test)
3MBR(Master Boot Record)
4CMOS(Complementary Metal Oxide Semiconductor)
정답 및 해설

부팅 시 운영체제를 주기억장치로 불러오는 부트 프로그램(부트로더)이 저장되는 디스크의 첫 번째 섹터가 MBR이다.

MBR은 디스크 맨 앞에 위치해 부트로더와 파티션 정보를 담고 있어, 전원을 켜면 이 영역의 코드가 실행되어 운영체제 적재를 시작한다.

  • 펌웨어로서 하드웨어를 초기화하고 부팅을 시작시키는 기본 입출력 시스템은 ROM에 담겨 있어 디스크 공간이 아니다.
  • 전원을 켤 때 하드웨어를 점검하는 자가 진단 과정은 저장 공간이 아니라 동작 절차이다.
  • BIOS 설정값을 보관하는 반도체 메모리도 부트 프로그램이 저장되는 디스크 영역이 아니다.
문제 9
다음은 보안관리 도구들에 대한 설명이다. ㉠~㉢에 들어갈 용어를 바르게 연결한 것은?
  • ( ㉠ )는(은) 파일이나 디렉터리에 접근 권한을 제어할 수 있도록 한다.
  • ( ㉡ )는(은) 사용자를 인증하고 그 사용자의 서비스에 대한 접근을 제어하는 모듈화된 방법이다.
  • ( ㉢ )는(은) root 권한을 획득한 침입자에게 시스템의 모든 부분이 해킹당할 수 있는 위험을 보완하기 위해 만들어졌다.
㉠㉡㉢
①ACLNMapPAM
②ACLPAMSELinux
③NMapPAMSELinux
④NMapACLPAM
1①
2②
3③
4④
정답 및 해설

파일·디렉터리 접근을 제어하는 것은 접근제어목록(ACL), 사용자 인증과 서비스 접근을 모듈 단위로 처리하는 것은 PAM, root가 탈취돼도 피해를 제한하도록 강제 접근통제를 적용하는 것은 SELinux이다.

ACL은 객체마다 접근 주체와 허용 권한을 지정하고, PAM은 인증 방식을 모듈로 끼워 넣어 서비스 접근을 통제하며, SELinux는 root 권한까지 정책으로 제한해 침해 확산을 막는다.

따라서 세 설명에는 각각 ACL, PAM, SELinux가 차례로 연결된다. 포트 스캔 도구인 NMap은 접근통제 수단이 아니므로 어느 빈칸에도 들어가지 않는다.

문제 10
XSS 취약점 공격에 대비하여 필터링해야 할 특수문자만을 모두 고르면?
  • ㄱ. <
  • ㄴ. &
  • ㄷ. >
  • ㄹ. /
1ㄱ, ㄴ, ㄷ
2ㄱ, ㄷ, ㄹ
3ㄴ, ㄷ, ㄹ
4ㄱ, ㄴ, ㄷ, ㄹ
정답 및 해설

XSS를 막으려면 HTML·스크립트에서 특별한 의미를 갖는 문자를 모두 걸러야 하므로, 제시된 네 문자가 전부 필터링 대상이다.

여는·닫는 꺾쇠 괄호는 태그를 시작·종료해 스크립트를 삽입하는 데 쓰이고, 앰퍼샌드는 HTML 엔티티의 시작 기호이며, 슬래시는 닫는 태그나 주석과 결합해 악성 코드를 끼워 넣는 데 이용될 수 있다.

이처럼 네 문자 모두 입력값에 그대로 통과하면 스크립트 주입에 악용될 수 있어, 엔티티로 치환하거나 제거해 무해화(이스케이프)해야 한다.

문제 11
다음에서 설명하는 악성 프로그램은?
  • 사용자의 동의 없이 설치되어 개인이나 기업의 정보를 몰래 수집하고 제3자 또는 공격자에게 전송하는 것을 목적으로 한다.
  • 해당 악성 프로그램에 감염되면 웹 브라우저 및 시스템 설정의 변경, 정상적인 프로그램의 설치 방해, 컴퓨터 키보드 입력 내용이나 화면 표시 내용을 수집 및 전송하는 등의 증상이 있다.
1랜섬웨어(ransomware)
2스파이웨어(spyware)
3웜(worm)
4봇(bot)
정답 및 해설

사용자 몰래 설치되어 개인·기업 정보와 키보드 입력, 화면 내용을 수집해 외부로 빼내는 악성 프로그램은 스파이웨어(spyware)이다.

동의 없이 잠입해 정보를 염탐·전송하는 것이 핵심 목적이며, 브라우저·시스템 설정 변경이나 정상 프로그램 설치 방해 같은 증상이 설명과 일치한다.

  • 파일을 암호화해 금전을 요구하는 악성코드는 정보 탈취가 아니라 몸값 갈취가 목적이다.
  • 네트워크를 통해 스스로 복제·전파하는 악성코드는 정보 수집이 핵심 목적이 아니다.
  • 공격자의 명령에 따라 원격 조종되는 좀비 프로그램은 감염 PC를 공격 도구로 쓰는 데 초점이 있다.
문제 12
사용자 인증 또는 메시지 인증 프로토콜에서 재전송 공격(replay attack)을 방지하기 위한 정보로 옳지 않은 것은?
1사용자 식별자(user identifier)
2순서 번호(sequence number)
3타임스탬프(timestamp)
4비표(nonce)
정답 및 해설

재전송 공격을 막으려면 메시지가 새로 생성된 것임을 보장하는 신선도 정보가 필요한데, 사용자 식별자는 신선도와 무관해 방지 수단으로 옳지 않다.

순서 번호·타임스탬프·비표는 모두 매번 달라지는 값이어서 가로챈 옛 메시지를 다시 보내도 걸러낼 수 있지만, 사용자 식별자는 같은 사용자라면 늘 동일해 재전송을 구별하지 못한다.

  • 메시지마다 증가하는 순서 번호는 중복된 번호를 탐지해 재전송을 막는다.
  • 타임스탬프는 유효 시간 범위를 벗어난 오래된 메시지를 거부한다.
  • 한 번만 쓰는 임의값인 비표는 이전에 쓰인 값이면 거부해 재전송을 막는다.
문제 13
데이터베이스 명령어는 DDL, DML, DCL 등으로 구분된다. 다음 중 DCL에 해당되는 명령어는?
1DROP
2UPDATE
3SELECT
4GRANT
정답 및 해설

사용자에게 권한을 부여·회수하는 데이터 제어어(DCL)에 해당하는 것은 권한을 부여하는 GRANT이다.

DCL은 접근 권한과 트랜잭션을 통제하는 명령으로 GRANT·REVOKE 등이 속한다. 나머지는 객체를 정의하거나 데이터를 조작하는 다른 범주의 명령이다.

  • 테이블 같은 객체를 삭제하는 명령은 구조를 정의하는 데이터 정의어(DDL)이다.
  • 기존 레코드의 값을 수정하는 명령은 데이터 조작어(DML)이다.
  • 저장된 데이터를 조회하는 명령도 데이터 조작어(DML)에 속한다.
문제 14
FTP 클라이언트에서 사용하는 명령어에 대한 설명으로 옳지 않은 것은?
1lcd-지역 호스트의 작업 디렉터리를 변경한다.
2more-여러 개의 파일들을 원격 호스트에서 지역 호스트로 가져온다.
3hash-파일이 전송되는 진행 상황을 알려주도록 설정한다.
4bin-전송 모드를 바이너리 모드로 설정한다.
정답 및 해설

여러 개의 파일을 원격 호스트에서 지역 호스트로 한꺼번에 가져오는 명령은 more가 아니라 mget이므로, more에 대한 설명으로는 옳지 않다.

FTP에서 more는 파일 내용을 화면에 한 쪽씩 보여 주는 용도에 가깝고, 다수 파일 다운로드는 mget이 담당한다.

  • 지역 호스트의 작업 디렉터리를 바꾸는 lcd 설명은 옳다.
  • 전송 진행 상황을 해시 기호로 표시하도록 설정하는 hash 설명은 옳다.
  • 전송 모드를 바이너리로 바꾸는 bin 설명은 옳다.
문제 15
시스템 관리자가 윈도우즈 시스템에서 동작 중인 프로세스를 인지하고 있으면 웜, 바이러스 등에 대응하는 데 용이하다. 윈도우즈 기본 프로세스에 대한 설명으로 옳지 않은 것은?
1csrss.exe-윈도우즈 콘솔을 관장하고 스레드를 생성 및 삭제하는 기능을 담당한다.
2svchost.exe-시스템 서비스를 제어(시작 및 정지)하고 서비스 간에 상호작용하는 기능을 담당한다.
3lsass.exe-winlogon 서비스에 필요한 인증 기능을 담당한다.
4smss.exe-사용자 세션을 시작하는 기능을 담당한다.
정답 및 해설

시스템 서비스를 시작·정지하며 제어하는 것은 svchost.exe가 아니라 서비스 제어 관리자(services.exe)이므로 그 설명은 옳지 않다.

svchost.exe는 DLL로 구현된 서비스를 대신 실행해 주는 호스트 프로세스로, 서비스 자체를 시작·정지하는 통제 역할은 맡지 않는다.

  • 콘솔을 관장하고 스레드를 생성·삭제하는 프로세스 설명은 옳다.
  • 로그온에 필요한 인증 기능을 담당하는 프로세스 설명은 옳다.
  • 사용자 세션을 시작하는 세션 관리자 프로세스 설명은 옳다.
문제 16
다음에서 설명하는 웹 취약점은?
  • OWASP에서 2017년에 발표한 웹 관련 주요 10대 취약점 중 하나이다.
  • 이 취약점은 인증된 사용자가 수행할 수 있는 것에 대한 제한이 제대로 적용되지 않는다는 것이다.
  • 공격자는 다른 사용자의 계정 접근, 민감한 파일 보기, 다른 사용자의 데이터 수정, 접근 권한 변경 등의 불법 행위가 가능하다.
1Broken Authentication
2Broken Access Control
3Insufficient Logging & Monitoring
4Sensitive Data Exposure
정답 및 해설

인증된 사용자가 할 수 있는 범위에 대한 제한이 제대로 걸리지 않아 다른 사용자의 계정·데이터·권한에까지 손댈 수 있게 되는 취약점은 접근 통제 취약점(Broken Access Control)이다.

OWASP 2017 10대 취약점 중 하나로, 인가(권한 검증)가 미흡해 권한 밖의 자원 열람·수정·권한 변경이 가능하다는 점이 설명과 일치한다.

  • 로그인·세션 관리의 결함으로 신원 자체가 탈취되는 취약점은 인증 과정의 문제로, 권한 범위 초과와는 결이 다르다.
  • 로그·모니터링이 부족해 침해를 탐지·대응하지 못하는 취약점은 사후 감시의 문제이다.
  • 민감 데이터가 암호화 등으로 보호되지 않아 노출되는 취약점은 데이터 보호의 문제이다.
문제 17
S/MIME에서 사용되는 기술만을 모두 고르면?
  • ㄱ. RSA
  • ㄴ. SHA-1
  • ㄷ. DSS
  • ㄹ. EAP
1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄱ, ㄴ, ㄷ
4ㄴ, ㄷ, ㄹ
정답 및 해설

S/MIME에서 쓰이는 기술은 공개키 암호 RSA, 해시 함수 SHA-1, 전자서명 표준 DSS이며, EAP는 포함되지 않는다.

S/MIME은 전자서명과 암호화를 위해 RSA와 DSS 같은 공개키·서명 알고리즘과 SHA-1 같은 해시 함수를 사용한다. 반면 EAP는 네트워크 접속 인증용 프로토콜로 메일 보안인 S/MIME과는 무관하다.

따라서 RSA, SHA-1, DSS 세 가지가 S/MIME에서 사용되는 기술에 해당한다.

문제 18
PGP 시스템에서 제공하는 기능에 대한 구현 기술로 옳지 않은 것은?
1키 교환-HDLC
2전자 서명-RSA
3메시지 암호화-Triple DES
4메시지 압축-ZIP
정답 및 해설

PGP에서 세션키를 주고받는 키 교환은 HDLC가 아니라 RSA 같은 공개키 암호로 구현하므로, 키 교환과 HDLC를 연결한 것은 옳지 않다.

HDLC는 데이터 링크 계층의 전송 프로토콜일 뿐 암호 기능이 없어 PGP의 키 교환과는 무관하다.

  • 전자 서명을 공개키 암호인 RSA로 구현한다는 연결은 옳다.
  • 메시지 암호화를 대칭키 알고리즘인 3중 DES로 구현한다는 연결은 옳다.
  • 메시지 압축을 ZIP으로 구현한다는 연결은 옳다.
문제 19
아파치 웹 서버의 httpd.conf 파일의 주요 설정에 대한 설명으로 옳지 않은 것은?
1ServerTokens-웹 서버, OS, 모듈 등의 정보 레벨을 지정한다.
2User/Group-모듈 활성화 여부를 지정한다.
3DocumentRoot-웹 서버가 공개하는 디렉터리 트리에서 최상위 디렉터리를 지정한다.
4UserDir-일반 사용자의 공개 디렉터리를 지정한다.
정답 및 해설

User/Group 지시어는 모듈 활성화 여부가 아니라 웹 서버 프로세스가 실행될 사용자와 그룹을 지정하므로 그 설명은 옳지 않다.

모듈을 켜고 끄는 것은 LoadModule 지시어의 역할이며, User/Group은 보안을 위해 서버를 낮은 권한 계정으로 돌리는 데 쓰인다.

  • 서버·OS·모듈 등의 정보 노출 수준을 정하는 지시어 설명은 옳다.
  • 서버가 공개하는 디렉터리 트리의 최상위를 지정하는 지시어 설명은 옳다.
  • 일반 사용자의 공개 디렉터리를 지정하는 지시어 설명은 옳다.
문제 20
다음에서 설명하는 무선 랜 보안기술 ㉠, ㉡을 바르게 연결한 것은?
  • ( ㉠ )는(은) 사전에 공유된 비밀키를 사용하며 RC4 스트림 암호화 알고리즘과 24비트 초기화 벡터를 사용한다.
  • ( ㉡ )는(은) 사전에 공유된 비밀키를 사용하거나 별도의 인증 서버를 이용하며 TKIP 기법을 통해 암호화 기능을 제공한다.
㉠㉡
①WAPWPA
②WPAWAP
③WPAWEP
④WEPWPA
1①
2②
3③
4④
정답 및 해설

RC4 스트림 암호와 24비트 초기화 벡터를 쓰는 것은 WEP, TKIP 기법을 쓰고 인증 서버도 활용할 수 있는 것은 WPA이다.

WEP는 고정 비밀키와 짧은 24비트 초기화 벡터를 사용해 키가 쉽게 노출되는 초기 방식이고, WPA는 이를 보완해 키를 주기적으로 바꾸는 TKIP와 사전 공유키 또는 인증 서버 기반 인증을 지원한다.

따라서 첫 번째 설명에는 WEP, 두 번째 설명에는 WPA가 연결된다. 조합에 섞인 WAP는 무선 단말용 응용 프로토콜(Wireless Application Protocol)로 무선랜 암호화 방식이 아니다.

9급 국가직 정보시스템보안 기출문제모두CBT · moducbt.com
21년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
다음에서 설명하는 보안시스템은?
  • 해커를 유인해서 정보를 얻거나 잡으려고 설치하는 시스템이다.
  • 쉽게 해킹이 가능한 것처럼 취약해 보여야 한다.
  • 해커에게 쉽게 노출되어야 한다.
  • 시스템의 모든 구성요소를 갖추고 있어야 한다.
  • 시스템을 통과하는 모든 패킷을 감시해야 한다.
1허니팟(honeypot)
2텔넷(telnet)
3봇넷(botnet)
4샌드박스(sandbox)
정답 및 해설

해커를 일부러 유인하려고 취약한 것처럼 꾸며 공격을 끌어들이고 그 행위를 감시·분석하는 시스템은 허니팟(honeypot)이다.

실제 시스템처럼 모든 구성요소를 갖추되 쉽게 노출·침투되도록 꾸며 공격자를 묶어 두고, 통과하는 패킷을 감시해 공격 기법과 정보를 수집한다는 점이 설명과 정확히 맞는다.

  • 원격 접속을 위한 터미널 프로토콜은 공격자를 유인하는 기만 시스템이 아니다.
  • 감염된 다수의 좀비 PC를 원격 조종하는 네트워크는 공격 인프라이지 유인용 시스템이 아니다.
  • 프로그램을 격리 실행해 피해 확산을 막는 기술은 유인·감시가 목적이 아니다.
문제 2
일반적인 리눅스 또는 유닉스 시스템의 디렉터리(directory)에 대한 설명으로 옳은 것은?
1/dev-프로그램 실행 및 설치할 때 생성되는 임시 파일을 담고 있으며 임의로 삭제될 수 있다.
2/boot-시스템 환경 설정 및 주요 설정 파일들을 담고 있다.
3/usr/include-C 언어에서 사용되는 헤더 파일들을 담고 있다.
4/usr-각 계정으로 로그인할 때 이 디렉터리 밑에 자신의 홈 디렉터리가 작업 디렉터리가 된다.
정답 및 해설

C 언어 컴파일에 쓰이는 헤더 파일(.h)이 모여 있는 디렉터리가 /usr/include라는 설명만 옳다.

나머지는 디렉터리의 용도를 뒤바꿔 놓은 설명이다. 장치 파일, 부팅 관련 파일, 홈 디렉터리의 위치를 혼동하지 않아야 한다.

  • /dev는 디스크·단말 같은 장치를 파일 형태로 제공하는 장치 파일 디렉터리이며, 임시 파일을 담아 삭제될 수 있는 공간은 /tmp이다.
  • /boot는 부팅에 필요한 커널 이미지와 부트로더 파일을 담으며, 시스템 환경·주요 설정 파일은 /etc에 있다.
  • /usr는 공용 프로그램과 라이브러리가 놓이는 곳이고, 각 계정의 홈 디렉터리는 보통 /home 아래에 만들어진다.
문제 3
데이터베이스 보안에서 웹을 이용한 SQL 인젝션 공격 방지를 위한 시큐어 코딩(secure coding) 방법으로 옳지 않은 것은?
1주석문에 시스템 주요 정보를 사용자가 볼 수 있도록 해야 한다.
2애플리케이션에서 데이터베이스 연결을 수행할 때 최소 권한의 계정을 사용해야 한다.
3외부 입력값이 삽입되는 SQL 쿼리문의 구조가 변경되지 않도록 해야 한다.
4외부 입력값이 삽입되는 SQL 쿼리문은 특수문자를 필터링하여 입력값 검증을 수행해야 한다.
정답 및 해설

시스템의 주요 정보를 주석문에 남겨 사용자에게 노출하는 것은 정보 유출로 이어지므로 시큐어 코딩 원칙에 어긋난다.

SQL 인젝션 방지는 외부 입력으로 쿼리 구조가 바뀌지 않게 하고, 입력값을 검증·필터링하며, 최소 권한으로 DB에 접속하는 것이 핵심이다. 주석에 내부 정보를 드러내는 행위는 이와 정반대이다.

  • DB 연결 시 최소 권한 계정을 사용하는 것은 피해 범위를 줄이는 올바른 방법이다.
  • 외부 입력이 들어가도 쿼리문 구조가 바뀌지 않도록 하는 매개변수화는 인젝션을 막는 올바른 방법이다.
  • 특수문자를 필터링해 입력값을 검증하는 것도 올바른 방어 기법이다.
문제 4
중요 데이터에 대한 기밀성 또는 무결성을 제공하는 보안기술 중 복호화를 위한 키가 사용되는 알고리즘은?
1SHA-256
2MD5
3AES
4HAS-160
정답 및 해설

제시된 것 중 복호화를 위한 키가 필요한 암호 알고리즘은 대칭키 블록 암호인 AES이다.

복호화 키가 존재하려면 암호화·복호화가 가능한 양방향 알고리즘이어야 하는데, 나머지는 모두 단방향 해시 함수라서 원문을 되돌리는 키 자체가 없다.

  • 256비트 결과를 내는 해시 함수는 단방향이라 복호화 키가 없다.
  • 128비트 결과를 내는 해시 함수도 단방향 변환이다.
  • 국내에서 개발된 160비트 해시 함수 역시 키로 원문을 되돌릴 수 없다.
문제 5
커버로스(Kerberos)에 대한 설명으로 옳지 않은 것은?
1커버로스의 전반적인 기법은 신뢰하는 제3자 인증 서비스 방안이다.
2커버로스 프로토콜은 인증 서버(authentication server), 티켓 발급 서버(ticket granting server) 및 사용자에게 서비스를 제공하는 다수의 서비스 서버(service server)를 사용한다.
3커버로스를 구성하는 개체 간에 교환되는 대부분의 메시지는 대칭키 암호화 기술로 기밀성이 보장된다.
4커버로스 버전 4에서 암호화된 메시지는 암호 알고리즘 식별자가 덧붙여진다. 이것은 사용자에게 DES가 아닌 다른 알고리즘을 사용할 수 있도록 한다.
정답 및 해설

암호 알고리즘 식별자를 붙여 DES 외의 알고리즘을 쓸 수 있게 한 것은 커버로스 버전 5의 특징이며, 버전 4에 대한 설명으로는 옳지 않다.

버전 4는 DES만 사용하도록 고정되어 알고리즘을 선택할 여지가 없었고, 이 제약을 풀기 위해 버전 5에서 알고리즘 식별자를 도입했다.

  • 신뢰하는 제3자 인증 서비스 방식이라는 설명은 커버로스의 기본 구조로 옳다.
  • 인증 서버, 티켓 발급 서버, 서비스 서버를 사용한다는 설명도 옳다.
  • 개체 간 메시지 대부분이 대칭키 암호로 기밀성을 보장받는다는 설명도 옳다.
문제 6
다음 리눅스 시스템의 /etc/passwd 파일 내용에서 사용자의 권한 수준을 결정하는 항목은?
adm : x : 0 : 1 : administrator : /var/adm : /sbin/nologin
1adm
2x
30
4/sbin/nologin
정답 및 해설

리눅스 /etc/passwd 항목에서 사용자의 권한 수준을 결정하는 것은 세 번째 필드인 사용자 번호(UID)이며, 그 값이 0이다.

UID는 0이면 최고 관리자(root) 권한을 뜻한다. passwd 한 줄은 사용자명, 암호, UID, 그룹 번호, 설명, 홈 디렉터리, 로그인 셸 순으로 구성된다.

  • 맨 앞의 사용자명은 계정 이름일 뿐 권한 크기와는 무관하다.
  • 암호 자리의 x는 실제 암호가 섀도 파일에 있음을 나타내는 표시이다.
  • 마지막의 로그인 셸 경로는 로그인 시 실행 셸을 지정할 뿐 권한 수준을 정하지 않는다.
문제 7
리눅스 배시(bash) 셸에서 셸 변수 또는 환경 변수로 설정된 SHELL에 저장된 값을 출력하는 명령은?
1echo SHELL
2echo '$SHELL'
3echo “$SHELL”
4echo \$SHELL
정답 및 해설

변수에 저장된 값을 출력하려면 큰따옴표로 감싼 변수 표기(달러 기호와 변수명)를 써야 셸이 변수를 확장해 실제 값을 보여 준다.

셸은 큰따옴표 안에서만 변수 치환을 수행하고, 작은따옴표 안이나 역슬래시로 이스케이프한 경우에는 치환하지 않고 글자 그대로 취급한다.

  • 달러 기호 없이 이름만 쓰면 변수가 아니라 글자 그대로의 이름이 출력된다.
  • 작은따옴표로 감싸면 변수가 확장되지 않아 표기 문자열이 그대로 출력된다.
  • 역슬래시로 이스케이프하면 특수 의미가 사라져 표기 문자열이 그대로 출력된다.
문제 8
일반적으로 컴퓨터를 부팅할 때 운영체제를 주기억장치에 적재하는 부트 프로그램이 저장되는 디스크 공간은?
1BIOS(Basic Input Output System)
2POST(Power On Self Test)
3MBR(Master Boot Record)
4CMOS(Complementary Metal Oxide Semiconductor)
정답 및 해설

부팅 시 운영체제를 주기억장치로 불러오는 부트 프로그램(부트로더)이 저장되는 디스크의 첫 번째 섹터가 MBR이다.

MBR은 디스크 맨 앞에 위치해 부트로더와 파티션 정보를 담고 있어, 전원을 켜면 이 영역의 코드가 실행되어 운영체제 적재를 시작한다.

  • 펌웨어로서 하드웨어를 초기화하고 부팅을 시작시키는 기본 입출력 시스템은 ROM에 담겨 있어 디스크 공간이 아니다.
  • 전원을 켤 때 하드웨어를 점검하는 자가 진단 과정은 저장 공간이 아니라 동작 절차이다.
  • BIOS 설정값을 보관하는 반도체 메모리도 부트 프로그램이 저장되는 디스크 영역이 아니다.
문제 9
다음은 보안관리 도구들에 대한 설명이다. ㉠~㉢에 들어갈 용어를 바르게 연결한 것은?
  • ( ㉠ )는(은) 파일이나 디렉터리에 접근 권한을 제어할 수 있도록 한다.
  • ( ㉡ )는(은) 사용자를 인증하고 그 사용자의 서비스에 대한 접근을 제어하는 모듈화된 방법이다.
  • ( ㉢ )는(은) root 권한을 획득한 침입자에게 시스템의 모든 부분이 해킹당할 수 있는 위험을 보완하기 위해 만들어졌다.
㉠㉡㉢
①ACLNMapPAM
②ACLPAMSELinux
③NMapPAMSELinux
④NMapACLPAM
1①
2②
3③
4④
정답 및 해설

파일·디렉터리 접근을 제어하는 것은 접근제어목록(ACL), 사용자 인증과 서비스 접근을 모듈 단위로 처리하는 것은 PAM, root가 탈취돼도 피해를 제한하도록 강제 접근통제를 적용하는 것은 SELinux이다.

ACL은 객체마다 접근 주체와 허용 권한을 지정하고, PAM은 인증 방식을 모듈로 끼워 넣어 서비스 접근을 통제하며, SELinux는 root 권한까지 정책으로 제한해 침해 확산을 막는다.

따라서 세 설명에는 각각 ACL, PAM, SELinux가 차례로 연결된다. 포트 스캔 도구인 NMap은 접근통제 수단이 아니므로 어느 빈칸에도 들어가지 않는다.

문제 10
XSS 취약점 공격에 대비하여 필터링해야 할 특수문자만을 모두 고르면?
  • ㄱ. <
  • ㄴ. &
  • ㄷ. >
  • ㄹ. /
1ㄱ, ㄴ, ㄷ
2ㄱ, ㄷ, ㄹ
3ㄴ, ㄷ, ㄹ
4ㄱ, ㄴ, ㄷ, ㄹ
정답 및 해설

XSS를 막으려면 HTML·스크립트에서 특별한 의미를 갖는 문자를 모두 걸러야 하므로, 제시된 네 문자가 전부 필터링 대상이다.

여는·닫는 꺾쇠 괄호는 태그를 시작·종료해 스크립트를 삽입하는 데 쓰이고, 앰퍼샌드는 HTML 엔티티의 시작 기호이며, 슬래시는 닫는 태그나 주석과 결합해 악성 코드를 끼워 넣는 데 이용될 수 있다.

이처럼 네 문자 모두 입력값에 그대로 통과하면 스크립트 주입에 악용될 수 있어, 엔티티로 치환하거나 제거해 무해화(이스케이프)해야 한다.

문제 11
다음에서 설명하는 악성 프로그램은?
  • 사용자의 동의 없이 설치되어 개인이나 기업의 정보를 몰래 수집하고 제3자 또는 공격자에게 전송하는 것을 목적으로 한다.
  • 해당 악성 프로그램에 감염되면 웹 브라우저 및 시스템 설정의 변경, 정상적인 프로그램의 설치 방해, 컴퓨터 키보드 입력 내용이나 화면 표시 내용을 수집 및 전송하는 등의 증상이 있다.
1랜섬웨어(ransomware)
2스파이웨어(spyware)
3웜(worm)
4봇(bot)
정답 및 해설

사용자 몰래 설치되어 개인·기업 정보와 키보드 입력, 화면 내용을 수집해 외부로 빼내는 악성 프로그램은 스파이웨어(spyware)이다.

동의 없이 잠입해 정보를 염탐·전송하는 것이 핵심 목적이며, 브라우저·시스템 설정 변경이나 정상 프로그램 설치 방해 같은 증상이 설명과 일치한다.

  • 파일을 암호화해 금전을 요구하는 악성코드는 정보 탈취가 아니라 몸값 갈취가 목적이다.
  • 네트워크를 통해 스스로 복제·전파하는 악성코드는 정보 수집이 핵심 목적이 아니다.
  • 공격자의 명령에 따라 원격 조종되는 좀비 프로그램은 감염 PC를 공격 도구로 쓰는 데 초점이 있다.
문제 12
사용자 인증 또는 메시지 인증 프로토콜에서 재전송 공격(replay attack)을 방지하기 위한 정보로 옳지 않은 것은?
1사용자 식별자(user identifier)
2순서 번호(sequence number)
3타임스탬프(timestamp)
4비표(nonce)
정답 및 해설

재전송 공격을 막으려면 메시지가 새로 생성된 것임을 보장하는 신선도 정보가 필요한데, 사용자 식별자는 신선도와 무관해 방지 수단으로 옳지 않다.

순서 번호·타임스탬프·비표는 모두 매번 달라지는 값이어서 가로챈 옛 메시지를 다시 보내도 걸러낼 수 있지만, 사용자 식별자는 같은 사용자라면 늘 동일해 재전송을 구별하지 못한다.

  • 메시지마다 증가하는 순서 번호는 중복된 번호를 탐지해 재전송을 막는다.
  • 타임스탬프는 유효 시간 범위를 벗어난 오래된 메시지를 거부한다.
  • 한 번만 쓰는 임의값인 비표는 이전에 쓰인 값이면 거부해 재전송을 막는다.
문제 13
데이터베이스 명령어는 DDL, DML, DCL 등으로 구분된다. 다음 중 DCL에 해당되는 명령어는?
1DROP
2UPDATE
3SELECT
4GRANT
정답 및 해설

사용자에게 권한을 부여·회수하는 데이터 제어어(DCL)에 해당하는 것은 권한을 부여하는 GRANT이다.

DCL은 접근 권한과 트랜잭션을 통제하는 명령으로 GRANT·REVOKE 등이 속한다. 나머지는 객체를 정의하거나 데이터를 조작하는 다른 범주의 명령이다.

  • 테이블 같은 객체를 삭제하는 명령은 구조를 정의하는 데이터 정의어(DDL)이다.
  • 기존 레코드의 값을 수정하는 명령은 데이터 조작어(DML)이다.
  • 저장된 데이터를 조회하는 명령도 데이터 조작어(DML)에 속한다.
문제 14
FTP 클라이언트에서 사용하는 명령어에 대한 설명으로 옳지 않은 것은?
1lcd-지역 호스트의 작업 디렉터리를 변경한다.
2more-여러 개의 파일들을 원격 호스트에서 지역 호스트로 가져온다.
3hash-파일이 전송되는 진행 상황을 알려주도록 설정한다.
4bin-전송 모드를 바이너리 모드로 설정한다.
정답 및 해설

여러 개의 파일을 원격 호스트에서 지역 호스트로 한꺼번에 가져오는 명령은 more가 아니라 mget이므로, more에 대한 설명으로는 옳지 않다.

FTP에서 more는 파일 내용을 화면에 한 쪽씩 보여 주는 용도에 가깝고, 다수 파일 다운로드는 mget이 담당한다.

  • 지역 호스트의 작업 디렉터리를 바꾸는 lcd 설명은 옳다.
  • 전송 진행 상황을 해시 기호로 표시하도록 설정하는 hash 설명은 옳다.
  • 전송 모드를 바이너리로 바꾸는 bin 설명은 옳다.
문제 15
시스템 관리자가 윈도우즈 시스템에서 동작 중인 프로세스를 인지하고 있으면 웜, 바이러스 등에 대응하는 데 용이하다. 윈도우즈 기본 프로세스에 대한 설명으로 옳지 않은 것은?
1csrss.exe-윈도우즈 콘솔을 관장하고 스레드를 생성 및 삭제하는 기능을 담당한다.
2svchost.exe-시스템 서비스를 제어(시작 및 정지)하고 서비스 간에 상호작용하는 기능을 담당한다.
3lsass.exe-winlogon 서비스에 필요한 인증 기능을 담당한다.
4smss.exe-사용자 세션을 시작하는 기능을 담당한다.
정답 및 해설

시스템 서비스를 시작·정지하며 제어하는 것은 svchost.exe가 아니라 서비스 제어 관리자(services.exe)이므로 그 설명은 옳지 않다.

svchost.exe는 DLL로 구현된 서비스를 대신 실행해 주는 호스트 프로세스로, 서비스 자체를 시작·정지하는 통제 역할은 맡지 않는다.

  • 콘솔을 관장하고 스레드를 생성·삭제하는 프로세스 설명은 옳다.
  • 로그온에 필요한 인증 기능을 담당하는 프로세스 설명은 옳다.
  • 사용자 세션을 시작하는 세션 관리자 프로세스 설명은 옳다.
문제 16
다음에서 설명하는 웹 취약점은?
  • OWASP에서 2017년에 발표한 웹 관련 주요 10대 취약점 중 하나이다.
  • 이 취약점은 인증된 사용자가 수행할 수 있는 것에 대한 제한이 제대로 적용되지 않는다는 것이다.
  • 공격자는 다른 사용자의 계정 접근, 민감한 파일 보기, 다른 사용자의 데이터 수정, 접근 권한 변경 등의 불법 행위가 가능하다.
1Broken Authentication
2Broken Access Control
3Insufficient Logging & Monitoring
4Sensitive Data Exposure
정답 및 해설

인증된 사용자가 할 수 있는 범위에 대한 제한이 제대로 걸리지 않아 다른 사용자의 계정·데이터·권한에까지 손댈 수 있게 되는 취약점은 접근 통제 취약점(Broken Access Control)이다.

OWASP 2017 10대 취약점 중 하나로, 인가(권한 검증)가 미흡해 권한 밖의 자원 열람·수정·권한 변경이 가능하다는 점이 설명과 일치한다.

  • 로그인·세션 관리의 결함으로 신원 자체가 탈취되는 취약점은 인증 과정의 문제로, 권한 범위 초과와는 결이 다르다.
  • 로그·모니터링이 부족해 침해를 탐지·대응하지 못하는 취약점은 사후 감시의 문제이다.
  • 민감 데이터가 암호화 등으로 보호되지 않아 노출되는 취약점은 데이터 보호의 문제이다.
문제 17
S/MIME에서 사용되는 기술만을 모두 고르면?
  • ㄱ. RSA
  • ㄴ. SHA-1
  • ㄷ. DSS
  • ㄹ. EAP
1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄱ, ㄴ, ㄷ
4ㄴ, ㄷ, ㄹ
정답 및 해설

S/MIME에서 쓰이는 기술은 공개키 암호 RSA, 해시 함수 SHA-1, 전자서명 표준 DSS이며, EAP는 포함되지 않는다.

S/MIME은 전자서명과 암호화를 위해 RSA와 DSS 같은 공개키·서명 알고리즘과 SHA-1 같은 해시 함수를 사용한다. 반면 EAP는 네트워크 접속 인증용 프로토콜로 메일 보안인 S/MIME과는 무관하다.

따라서 RSA, SHA-1, DSS 세 가지가 S/MIME에서 사용되는 기술에 해당한다.

문제 18
PGP 시스템에서 제공하는 기능에 대한 구현 기술로 옳지 않은 것은?
1키 교환-HDLC
2전자 서명-RSA
3메시지 암호화-Triple DES
4메시지 압축-ZIP
정답 및 해설

PGP에서 세션키를 주고받는 키 교환은 HDLC가 아니라 RSA 같은 공개키 암호로 구현하므로, 키 교환과 HDLC를 연결한 것은 옳지 않다.

HDLC는 데이터 링크 계층의 전송 프로토콜일 뿐 암호 기능이 없어 PGP의 키 교환과는 무관하다.

  • 전자 서명을 공개키 암호인 RSA로 구현한다는 연결은 옳다.
  • 메시지 암호화를 대칭키 알고리즘인 3중 DES로 구현한다는 연결은 옳다.
  • 메시지 압축을 ZIP으로 구현한다는 연결은 옳다.
문제 19
아파치 웹 서버의 httpd.conf 파일의 주요 설정에 대한 설명으로 옳지 않은 것은?
1ServerTokens-웹 서버, OS, 모듈 등의 정보 레벨을 지정한다.
2User/Group-모듈 활성화 여부를 지정한다.
3DocumentRoot-웹 서버가 공개하는 디렉터리 트리에서 최상위 디렉터리를 지정한다.
4UserDir-일반 사용자의 공개 디렉터리를 지정한다.
정답 및 해설

User/Group 지시어는 모듈 활성화 여부가 아니라 웹 서버 프로세스가 실행될 사용자와 그룹을 지정하므로 그 설명은 옳지 않다.

모듈을 켜고 끄는 것은 LoadModule 지시어의 역할이며, User/Group은 보안을 위해 서버를 낮은 권한 계정으로 돌리는 데 쓰인다.

  • 서버·OS·모듈 등의 정보 노출 수준을 정하는 지시어 설명은 옳다.
  • 서버가 공개하는 디렉터리 트리의 최상위를 지정하는 지시어 설명은 옳다.
  • 일반 사용자의 공개 디렉터리를 지정하는 지시어 설명은 옳다.
문제 20
다음에서 설명하는 무선 랜 보안기술 ㉠, ㉡을 바르게 연결한 것은?
  • ( ㉠ )는(은) 사전에 공유된 비밀키를 사용하며 RC4 스트림 암호화 알고리즘과 24비트 초기화 벡터를 사용한다.
  • ( ㉡ )는(은) 사전에 공유된 비밀키를 사용하거나 별도의 인증 서버를 이용하며 TKIP 기법을 통해 암호화 기능을 제공한다.
㉠㉡
①WAPWPA
②WPAWAP
③WPAWEP
④WEPWPA
1①
2②
3③
4④
정답 및 해설

RC4 스트림 암호와 24비트 초기화 벡터를 쓰는 것은 WEP, TKIP 기법을 쓰고 인증 서버도 활용할 수 있는 것은 WPA이다.

WEP는 고정 비밀키와 짧은 24비트 초기화 벡터를 사용해 키가 쉽게 노출되는 초기 방식이고, WPA는 이를 보완해 키를 주기적으로 바꾸는 TKIP와 사전 공유키 또는 인증 서버 기반 인증을 지원한다.

따라서 첫 번째 설명에는 WEP, 두 번째 설명에는 WPA가 연결된다. 조합에 섞인 WAP는 무선 단말용 응용 프로토콜(Wireless Application Protocol)로 무선랜 암호화 방식이 아니다.