[9급 국가직 네트워크보안] 24년 1회차
9급 국가직 네트워크보안 기출문제

24년 1회차

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

1 / 1
A4정답 포함
9급 국가직 네트워크보안 기출문제모두CBT · moducbt.com

24년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
공격자가 ARP 스푸핑 공격으로 위조하려는 것은?
1Port 번호
2ICMP 에코 요청 패킷
3MAC 주소
4DNS 응답 메시지
정답 및 해설

ARP 스푸핑은 ARP Reply를 위조해 상대 호스트의 ARP 캐시에 IP 주소와 엉뚱한 MAC 주소의 대응 관계를 심는 공격으로, 위조 대상은 MAC 주소이다.

주로 게이트웨이 IP에 공격자의 MAC 주소를 대응시켜 트래픽을 자신에게 오게 한 뒤 스니핑한다.

  • Port 번호: ARP는 2계층 주소 해석 프로토콜이라 포트 번호를 다루지 않는다.
  • ICMP 에코 요청 패킷: 스머프 등 ICMP 기반 공격에서 위조하는 대상이다.
  • DNS 응답 메시지: DNS 스푸핑에서 위조하는 대상이다.
문제 2
route 명령으로 얻은 라우팅 테이블 정보와 같은 결과물을 출력할 수 있는 것은?
1traceroute
2tcpdump
3netstat
4ping
정답 및 해설

netstat는 -r 옵션으로 route 명령과 같은 라우팅 테이블을 출력할 수 있다.

netstat는 이 밖에도 연결 상태, 대기 포트, 인터페이스·프로토콜 통계를 보여 준다.

  • traceroute: 목적지까지 거치는 라우터 경로를 추적한다.
  • tcpdump: 네트워크 패킷을 캡처해 출력한다.
  • ping: ICMP Echo로 대상 호스트의 도달 여부를 확인한다.
문제 3
다음에서 설명하는 것은?
  • 외부 방화벽과 내부 방화벽 사이에 존재한다.
  • 외부에서 접속할 수 있어야 하며 보호되어야 하는 시스템(예: 회사의 웹사이트, 이메일 서버 등)을 여기에 배치한다.
1NAT(Network Address Translation)
2DMZ(Demilitarized Zone)
3VPN(Virtual Private Network)
4PAN(Personal Area Network)
정답 및 해설

외부 방화벽과 내부 방화벽 사이에 두고 웹·메일 서버처럼 외부 공개가 필요한 시스템을 배치하는 구역은 DMZ이다.

공개 서버가 침해되어도 내부망과는 방화벽으로 한 번 더 분리되어 피해가 내부로 번지는 것을 막는다.

  • NAT: 사설 IP 주소를 공인 IP 주소로 변환하는 기술이다.
  • VPN: 공중망 위에 암호화된 가상 전용 통신로를 만드는 기술이다.
  • PAN: 개인 주변 기기를 잇는 근거리 개인 통신망이다.
문제 4
접근 제어 방식에 대한 다음 설명의 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

(가) 는 사용자 ID가 아닌 시스템에서 정의한 사용자의 역할을 바탕으로 접근 권한을 정의한다. 각 사용자는 (나) 정적 또는 동적으로 할당될 수 있다.

(가)(나)
①DAC하나의 역할에만
②DAC여러 개의 역할에
③RBAC하나의 역할에만
④RBAC여러 개의 역할에
1①
2②
3③
4④
정답 및 해설

(가)는 역할을 바탕으로 권한을 주는 RBAC이고, (나)는 각 사용자가 여러 개의 역할에 할당될 수 있다는 내용이다.

RBAC에서 사용자와 역할, 역할과 권한은 다대다 관계이므로 한 사용자가 여러 역할을 가질 수 있다.

  • DAC: 사용자 ID와 소유자의 재량에 따라 권한을 주는 방식이라 역할 기반 설명과 맞지 않는다.
  • 하나의 역할에만: RBAC의 사용자-역할 관계는 일대일로 제한되지 않는다.
문제 5
HTTP 버전 1.1에서 정의된 메소드의 설명으로 옳지 않은 것은?
1POST는 서버가 클라이언트에게 문서를 전달하는 데 사용한다.
2GET은 클라이언트가 서버에게 문서를 요청할 때 사용한다.
3HEAD는 클라이언트가 문서 자체가 아니라 문서에 대한 정보를 원할 때 사용한다.
4TRACE는 클라이언트가 검사 목적으로 서버에게 정보 반환을 요청하는 데 사용한다.
정답 및 해설

POST는 서버가 클라이언트에게 문서를 전달하는 것이 아니라, 클라이언트가 서버로 데이터를 보낼 때 쓰는 메소드이다.

폼 입력값 전송처럼 요청 본문에 데이터를 실어 서버에 제출한다.

  • GET: 클라이언트가 서버에 문서(자원)를 요청한다.
  • HEAD: 본문 없이 문서에 대한 정보(헤더)만 요청한다.
  • TRACE: 검사(루프백 진단) 목적으로 서버가 받은 요청을 그대로 되돌려 주도록 요청한다.
문제 6
DNS 스푸핑 공격의 순서를 바르게 나열한 것은?

(가) 클라이언트는 공격자가 전송한 DNS Response를 올바른 메시지로 인식한다.
(나) 로컬에 존재하며 DNS 서버보다 클라이언트와 가까이 위치한 공격자는 위조된 DNS Response를 클라이언트에게 전송한다.
(다) 공격자는 스니핑 공격을 통해 클라이언트가 DNS 서버로 DNS Query를 전송하는 것을 확인한다.

1(가)→(나)→(다)
2(나)→(가)→(다)
3(나)→(다)→(가)
4(다)→(나)→(가)
정답 및 해설

DNS 스푸핑은 질의 스니핑 → 위조 응답 전송 → 위조 응답 수용 순서로 진행되므로 (다)→(나)→(가)이다.

공격자가 실제 DNS 서버보다 가까워 먼저 도착한 응답을 클라이언트가 받아들이는 점을 이용한다.

  • (다): 공격자가 스니핑으로 클라이언트의 DNS Query를 확인한다.
  • (나): 공격자가 위조한 DNS Response를 정상 응답보다 먼저 클라이언트에 보낸다.
  • (가): 클라이언트는 먼저 받은 위조 응답을 올바른 메시지로 인식하고, 늦게 온 정상 응답은 버린다.
문제 7
서버가 클라이언트로부터 받은 비밀키에 대하여 여러 번 해시 함수를 적용하여 얻은 해시 체인으로 일회용 비밀번호(OTP)를 생성하는 것은?
1S/KEY 방식
2시간 동기화 방식
3이벤트 동기화 방식
4챌린지-응답 방식
정답 및 해설

비밀값에 해시 함수를 여러 번 적용한 해시 체인을 거꾸로 하나씩 써서 일회용 비밀번호를 만드는 방식은 S/KEY 방식이다.

서버는 직전에 받은 값만 저장해 두고, 새로 받은 OTP를 한 번 해시한 값이 저장값과 같은지로 검증한다.

  • 시간 동기화 방식: 클라이언트와 서버가 공유한 현재 시각을 입력으로 OTP를 만든다.
  • 이벤트 동기화 방식: 양쪽이 동기화한 카운터 값을 입력으로 OTP를 만든다.
  • 챌린지-응답 방식: 서버가 보낸 난수(챌린지)에 비밀키를 적용한 응답을 OTP로 쓴다.
문제 8
WPA(Wi-Fi Protected Access)에 대한 설명으로 옳지 않은 것은?
1WPA는 WEP의 보안 취약점을 보완하기 위해 제안되었다.
2WPA의 TKIP는 암호 알고리즘으로 AES를 사용한다.
3WPA-EAP는 인증을 위해서 RADIUS 서버를 이용할 수 있다.
4WPA-PSK는 사전에 공유된 비밀키를 사용한다.
정답 및 해설

WPA의 TKIP는 WEP 하드웨어를 그대로 쓰기 위해 RC4 암호를 유지한 방식이며, AES를 쓰는 것은 WPA2의 CCMP이다.

TKIP는 패킷마다 키를 바꾸고 MIC(Michael)로 무결성을 보강해 WEP의 약점을 보완했다.

  • WPA는 WEP의 보안 취약점을 보완하기 위해 제안되었다.
  • WPA-EAP(Enterprise)는 802.1X 인증에 RADIUS 서버를 이용할 수 있다.
  • WPA-PSK(Personal)는 사전에 공유된 비밀키(패스프레이즈)를 사용한다.
문제 9
DoS 공격 방식에 대한 설명으로 옳지 않은 것은?
1스머프(Smurf) 공격은 발신지 주소가 거짓으로 조작된 ICMP 패킷을 받은 네트워크의 많은 컴퓨터들이 발신지 주소로 응답을 보내게 하여 트래픽 범람을 일으키는 것이다.
2티어드롭(Teardrop) 공격은 IP 패킷 헤더 정보를 조작해서 패킷 조각(fragment)이 중첩되도록 보내어 이를 전달받은 시스템의 IP 패킷 재조합 과정에서 오류를 발생시킨다.
3슬로로리스(Slowloris) 공격은 HTTP 메시지 헤더의 Content-Length 필드에 임의의 큰 값을 설정하여 웹 서버가 클라이언트에서 해당 크기의 메시지를 전송할 때까지 연결을 유지하게 함으로써 정상적인 사용자의 접속을 받아들일 수 없게 하는 것이다.
4HTTP GET 플러딩 공격은 정상적인 TCP 세션과 함께 정상적으로 보이는 과도한 HTTP GET을 요청받은 웹 서버에 과부하가 걸리게 한다.
정답 및 해설

Content-Length에 큰 값을 넣고 본문을 천천히 보내 연결을 붙잡아 두는 것은 RUDY(Slow HTTP POST) 공격이며, 슬로로리스는 HTTP 헤더의 끝을 알리는 빈 줄을 보내지 않아 헤더가 끝나지 않은 것처럼 연결을 유지하는 공격이다.

두 공격 모두 적은 트래픽으로 웹 서버의 동시 연결 자원을 고갈시킨다.

  • 스머프: 출발지를 피해자로 위조한 ICMP 패킷을 브로드캐스트해 응답이 피해자에게 몰리게 한다.
  • 티어드롭: 단편의 오프셋을 겹치게 조작해 재조합 과정에서 오류를 일으킨다.
  • HTTP GET 플러딩: 정상 TCP 세션 위에서 정상처럼 보이는 GET 요청을 대량으로 보내 서버에 과부하를 건다.
문제 10
(가)와 (나)에 들어갈 내용을 바르게 연결한 것은?
  • (가) 은/는 네트워크 레벨에서 패킷에 대한 보안을 제공하기 위해 설계된 프로토콜의 모음이다.
  • (가) 이/가 지원하는 (나) 에서는 새로운 IP 헤더가 추가된다.
(가)(나)
①IPSec전송모드
②IPSec터널모드
③TLS전송모드
④TLS터널모드
1①
2②
3③
4④
정답 및 해설

(가)는 네트워크 계층에서 패킷을 보호하는 프로토콜 모음인 IPSec이고, (나)는 새 IP 헤더를 덧붙이는 터널모드이다.

터널모드는 원래 IP 패킷 전체를 보호한 뒤 새 IP 헤더를 붙이고, 전송모드는 원래 IP 헤더를 그대로 두고 페이로드만 보호한다.

  • TLS: 네트워크 계층이 아니라 전송 계층 위에서 동작하는 보안 프로토콜이다.
  • 전송모드: 새 IP 헤더를 추가하지 않는다.
문제 11
무선 랜의 MAC 프레임에 대한 다음 설명의 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

802.11 무선 랜 표준의 매체 접속 프로토콜은 (가) 이고, 무선 MAC 계층 프레임 포맷에는 (나) 개의 주소 필드가 있다.

(가)(나)
①CSMA/CD2
②CSMA/CD4
③CSMA/CA2
④CSMA/CA4
1①
2②
3③
4④
정답 및 해설

802.11 무선 랜의 매체 접속 방식은 CSMA/CA이고, MAC 프레임에는 Address 1~4의 4개 주소 필드가 있다.

무선에서는 송신 중 충돌을 감지하기 어려워 충돌을 미리 회피하는 방식을 쓰며, AP와 배분 시스템을 거치는 경로를 표현하려고 주소 필드를 4개 둔다.

  • CSMA/CD: 충돌을 감지하는 유선 이더넷의 방식이다.
  • 주소 필드 2개: 이더넷 프레임(목적지·출발지)의 구성이며 무선 MAC 프레임과 다르다.
문제 12
SSL/TLS 핸드셰이크 프로토콜에서 클라이언트가 보내는 client_hello 메시지에 포함되지 않는 것은?
1난수
2클라이언트가 지원하는 암호 그룹(Cipher Suite) 목록
3클라이언트가 지원하는 압축 방식 목록
4인증서
정답 및 해설

client_hello는 클라이언트가 처음 보내는 협상 제안 메시지로, 인증서는 포함되지 않는다.

인증서는 서버가 Certificate 메시지로 보내며, 서버가 요청한 경우에만 클라이언트도 별도의 Certificate 메시지로 보낸다.

  • 난수: client_hello에 포함되어 키 생성 재료로 쓰인다.
  • 암호 그룹(Cipher Suite) 목록: 클라이언트가 지원하는 조합을 선호 순으로 담는다.
  • 압축 방식 목록: 클라이언트가 지원하는 압축 방식을 담는다.
문제 13
(가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

스위치 환경에서 공격자의 스위치 재밍을 통해 스위치의 매핑 테이블의 최대 저장 개수보다 더 많은 정보가 추가되어 스위치가 (가) 모드로 동작하여, 같은 스위치 내에 위치한 공격자는 네트워크 인터페이스 카드를 (나) 모드로 설정하여 스니핑이 가능하다.

(가)(나)
①BroadcastFull-duplex
②BroadcastPromiscuous
③UnicastFull-duplex
④UnicastPromiscuous
1①
2②
3③
4④
정답 및 해설

MAC 테이블이 넘친 스위치는 허브처럼 모든 포트로 프레임을 내보내는 Broadcast 모드로 동작하고, 공격자는 NIC를 Promiscuous(무차별) 모드로 두어 남의 프레임까지 수신한다.

무차별 모드는 목적지 MAC이 자신이 아닌 프레임도 버리지 않고 상위 계층으로 올려 준다.

  • Unicast: 스위치의 정상 동작으로, 이 상태에서는 다른 호스트의 프레임이 공격자 포트로 오지 않는다.
  • Full-duplex: 송수신을 동시에 하는 통신 방식일 뿐 남의 프레임 수신과 무관하다.
문제 14
다음은 TCP 3-Way Handshaking 과정의 예를 나타낸 것이다. (가)~(라)에 들어갈 숫자를 바르게 연결한 것은? (단, C: Client, S: Server, [ ]: 세그먼트 플래그, seq: 순서 번호, ack: 확인응답 번호)

C → S, [SYN] seq = 102
S → C, [SYN-ACK] seq = (가), ack = (나)
C → S, [ACK] seq = (다), ack = (라)

(가)(나)(다)(라)
①213102103214
②102103103214
③103102213214
④330103103331
1①
2②
3③
4④
정답 및 해설

SYN 플래그는 순서 번호 1개를 소비하므로 (가)·(나)·(다)·(라)는 330, 103, 103, 331로 연결된다.

서버 응답의 ack는 클라이언트 seq 102에 1을 더한 103이다. 서버의 seq(가)는 서버가 정한 초기 순서 번호이고, 클라이언트의 마지막 ACK는 seq 103, ack = (가) + 1이 되어야 한다.

  • (가)=213, (나)=102인 조합: ack가 102+1인 103이 아니다.
  • (가)=102, (라)=214인 조합: (라)가 서버 seq 102에 1을 더한 103이 아니다.
  • (가)=103, (나)=102인 조합: (나)가 103이 아니고 (다)도 클라이언트 다음 순서 번호 103이 아니다.
문제 15
암호 알고리즘에 대한 설명으로 옳지 않은 것은?
1SEED는 128비트의 블록 암호 알고리즘이며, SEED 128과 SEED 256의 키 길이는 각각 128비트와 256비트이다.
2HIGHT는 경량 환경 및 하드웨어의 효율성 향상을 위해 개발된 128비트의 블록 암호 알고리즘이다.
3DES는 64비트의 블록 암호 알고리즘으로 16라운드로 구성되어 있다.
4LEA는 국내에서 개발된 128비트의 블록 암호 알고리즘으로 128비트, 192비트, 256비트의 비밀키를 사용할 수 있다.
정답 및 해설

HIGHT는 경량 환경을 위해 국내에서 개발된 블록 암호지만 블록 크기는 128비트가 아니라 64비트(키는 128비트)이므로 옳지 않다.

나머지 알고리즘의 블록·키 구성은 설명과 같다.

  • SEED: 128비트 블록 암호이며 SEED 128과 SEED 256은 각각 128비트, 256비트 키를 쓴다.
  • DES: 64비트 블록에 16라운드 Feistel 구조이다.
  • LEA: 국내 개발 128비트 블록 암호로 128·192·256비트 키를 지원한다.
문제 16
HMAC에 대한 설명으로 옳지 않은 것은?
1IP 보안에서 메시지 인증 목적으로 사용된다.
2MD5, SHA-1, RIPEMD-160과 같은 해시 함수를 내장하고 있다.
3비밀키를 적용한 블록 암호화와 해시 함수를 사용해서 결과를 산출한다.
4IEEE 802.11i의 의사 난수 생성 과정에 사용된다.
정답 및 해설

HMAC은 비밀키와 해시 함수만으로 메시지 인증 코드를 만드는 방식이며 블록 암호화를 사용하지 않는다.

블록 암호를 이용해 MAC을 만드는 것은 CMAC 같은 별도 방식이다.

  • IPSec에서 AH·ESP의 메시지 인증에 쓰인다.
  • MD5, SHA-1, RIPEMD-160 같은 해시 함수를 내장해 교체 가능하게 설계되었다.
  • IEEE 802.11i의 의사 난수 생성(키 유도) 과정에 쓰인다.
문제 17
DNSSEC(DNS Security Extensions)에 대한 설명으로 옳지 않은 것은?
1DNS 응답 메시지에 대한 기밀성을 제공한다.
2DNS 데이터에 공개키 기반 전자서명을 추가하여 데이터의 무결성을 제공한다.
3DNS 응답 수신자(resolver)는 수신한 데이터에 대한 서명을 검증한다.
4DNSSEC는 DNS 캐시 포이즈닝 공격을 방어하도록 설계되었다.
정답 및 해설

DNSSEC는 DNS 데이터에 전자서명을 붙여 출처 인증과 무결성을 제공할 뿐, 응답을 암호화하지 않으므로 기밀성은 제공하지 않는다.

DNS 질의·응답 내용 자체를 숨기려면 DNS over TLS/HTTPS 같은 별도 기술이 필요하다.

  • DNS 데이터에 공개키 기반 전자서명을 추가해 무결성을 제공한다.
  • 응답을 받은 리졸버가 서명을 검증한다.
  • 위조 응답을 걸러 내 DNS 캐시 포이즈닝을 방어하도록 설계되었다.
문제 18
하트블리드(Heartbleed)에 대한 다음 설명의 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

TLS를 구현하기 위한 오픈 소스인 OpenSSL에 내재된 버그로, (가) 프로토콜의 요청을 받은 컴퓨터에서 적절한 (나) 이 이루어지지 않아서 피해자가 의도하지 않은 내용이 응답 패킷의 페이로드에 복사되어 공격자에게 전송될 수 있다.

(가)(나)
①Handshake페이로드 길이 확인
②Handshake사용자 인증
③Heartbeat페이로드 길이 확인
④Heartbeat사용자 인증
1①
2②
3③
4④
정답 및 해설

하트블리드는 OpenSSL의 Heartbeat 확장에서 요청의 페이로드 길이 확인을 하지 않아 생긴 버그이다.

공격자가 실제보다 큰 길이 값을 적어 보내면 서버가 그 길이만큼 메모리를 복사해 응답하므로, 개인키·세션 정보 같은 메모리 내용이 유출될 수 있다.

  • Handshake: 암호 협상·키 교환 프로토콜로, 하트블리드 버그가 있던 곳이 아니다.
  • 사용자 인증: 문제의 원인은 인증 누락이 아니라 길이 값 검증 누락이다.
문제 19
SSH(Secure Shell)에 대한 설명으로 옳지 않은 것은?
1SSH는 안전한 원격 로그온 기능을 제공하기 위해 설계되었다.
2사용자 인증 프로토콜을 통해 사용자가 서버에게 인증받는다.
3포트 전달을 통해 임의의 안전하지 않은 TCP 연결을 안전한 SSH 연결로 변환시킬 수 있다.
4전송 계층 프로토콜은 하나의 SSH 연결을 여러 개의 논리적 통신 채널로 다중화한다.
정답 및 해설

하나의 SSH 연결을 여러 논리 채널로 다중화하는 것은 전송 계층 프로토콜이 아니라 연결 프로토콜(Connection Protocol)의 역할이다.

전송 계층 프로토콜은 서버 인증, 기밀성, 무결성을 제공하는 보안 채널을 만든다.

  • SSH는 안전한 원격 로그온을 위해 설계되었다.
  • 사용자 인증 프로토콜로 클라이언트 사용자가 서버에 인증받는다.
  • 포트 전달(터널링)로 안전하지 않은 TCP 연결을 SSH 연결 안으로 보호할 수 있다.
문제 20
다음은 사용자 A와 B가 Diffie-Hellman 알고리즘에 의한 키 교환을 시도하려는 도중에 발생한 중간자 공격의 개념을 도시한 것이다. 공격자가 A와의 공유비밀키 KA와 B와의 공유비밀키 KB를 산출하는 계산식을 바르게 연결한 것은? (단, p는 소수, g는 p의 원시근, x, y, a, b는 p보다 작은 임의의 양의 정수)
1①
2②
3③
4④
정답 및 해설

공격자는 A와의 키를 KA=R1 b mod pK_A=R_1^{\,b}\bmod p, B와의 키를 KB=R2 a mod pK_B=R_2^{\,a}\bmod p로 계산한다.

그림에서 공격자는 A가 보낸 R1=gx mod pR_1=g^x\bmod p를 받고, A에게는 자신이 만든 R4=gb mod pR_4=g^b\bmod p를 보냈다. 따라서 A는 R4 x=gbx mod pR_4^{\,x}=g^{bx}\bmod p를, 공격자는 R1 b=gxb mod pR_1^{\,b}=g^{xb}\bmod p를 계산해 같은 키를 공유한다.

B 쪽도 같다. 공격자는 B에게 R3=ga mod pR_3=g^a\bmod p를 보내고 B의 R2=gy mod pR_2=g^y\bmod p를 받았으므로, B는 R3 yR_3^{\,y}, 공격자는 R2 aR_2^{\,a}로 같은 gay mod pg^{ay}\bmod p를 얻는다.

  • KAK_{A}에 R2R_{2}를 쓰는 조합: R2R_{2}는 B의 공개값이라 A와의 키 계산에 쓰이지 않는다.
  • KAK_{A}를 R1R_{1}의 a제곱으로 쓰는 조합: a는 B에게 보낸 R3R_{3}의 지수라 A와의 키와 무관하다.
9급 국가직 네트워크보안 기출문제모두CBT · moducbt.com
24년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
공격자가 ARP 스푸핑 공격으로 위조하려는 것은?
1Port 번호
2ICMP 에코 요청 패킷
3MAC 주소
4DNS 응답 메시지
정답 및 해설

ARP 스푸핑은 ARP Reply를 위조해 상대 호스트의 ARP 캐시에 IP 주소와 엉뚱한 MAC 주소의 대응 관계를 심는 공격으로, 위조 대상은 MAC 주소이다.

주로 게이트웨이 IP에 공격자의 MAC 주소를 대응시켜 트래픽을 자신에게 오게 한 뒤 스니핑한다.

  • Port 번호: ARP는 2계층 주소 해석 프로토콜이라 포트 번호를 다루지 않는다.
  • ICMP 에코 요청 패킷: 스머프 등 ICMP 기반 공격에서 위조하는 대상이다.
  • DNS 응답 메시지: DNS 스푸핑에서 위조하는 대상이다.
문제 2
route 명령으로 얻은 라우팅 테이블 정보와 같은 결과물을 출력할 수 있는 것은?
1traceroute
2tcpdump
3netstat
4ping
정답 및 해설

netstat는 -r 옵션으로 route 명령과 같은 라우팅 테이블을 출력할 수 있다.

netstat는 이 밖에도 연결 상태, 대기 포트, 인터페이스·프로토콜 통계를 보여 준다.

  • traceroute: 목적지까지 거치는 라우터 경로를 추적한다.
  • tcpdump: 네트워크 패킷을 캡처해 출력한다.
  • ping: ICMP Echo로 대상 호스트의 도달 여부를 확인한다.
문제 3
다음에서 설명하는 것은?
  • 외부 방화벽과 내부 방화벽 사이에 존재한다.
  • 외부에서 접속할 수 있어야 하며 보호되어야 하는 시스템(예: 회사의 웹사이트, 이메일 서버 등)을 여기에 배치한다.
1NAT(Network Address Translation)
2DMZ(Demilitarized Zone)
3VPN(Virtual Private Network)
4PAN(Personal Area Network)
정답 및 해설

외부 방화벽과 내부 방화벽 사이에 두고 웹·메일 서버처럼 외부 공개가 필요한 시스템을 배치하는 구역은 DMZ이다.

공개 서버가 침해되어도 내부망과는 방화벽으로 한 번 더 분리되어 피해가 내부로 번지는 것을 막는다.

  • NAT: 사설 IP 주소를 공인 IP 주소로 변환하는 기술이다.
  • VPN: 공중망 위에 암호화된 가상 전용 통신로를 만드는 기술이다.
  • PAN: 개인 주변 기기를 잇는 근거리 개인 통신망이다.
문제 4
접근 제어 방식에 대한 다음 설명의 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

(가) 는 사용자 ID가 아닌 시스템에서 정의한 사용자의 역할을 바탕으로 접근 권한을 정의한다. 각 사용자는 (나) 정적 또는 동적으로 할당될 수 있다.

(가)(나)
①DAC하나의 역할에만
②DAC여러 개의 역할에
③RBAC하나의 역할에만
④RBAC여러 개의 역할에
1①
2②
3③
4④
정답 및 해설

(가)는 역할을 바탕으로 권한을 주는 RBAC이고, (나)는 각 사용자가 여러 개의 역할에 할당될 수 있다는 내용이다.

RBAC에서 사용자와 역할, 역할과 권한은 다대다 관계이므로 한 사용자가 여러 역할을 가질 수 있다.

  • DAC: 사용자 ID와 소유자의 재량에 따라 권한을 주는 방식이라 역할 기반 설명과 맞지 않는다.
  • 하나의 역할에만: RBAC의 사용자-역할 관계는 일대일로 제한되지 않는다.
문제 5
HTTP 버전 1.1에서 정의된 메소드의 설명으로 옳지 않은 것은?
1POST는 서버가 클라이언트에게 문서를 전달하는 데 사용한다.
2GET은 클라이언트가 서버에게 문서를 요청할 때 사용한다.
3HEAD는 클라이언트가 문서 자체가 아니라 문서에 대한 정보를 원할 때 사용한다.
4TRACE는 클라이언트가 검사 목적으로 서버에게 정보 반환을 요청하는 데 사용한다.
정답 및 해설

POST는 서버가 클라이언트에게 문서를 전달하는 것이 아니라, 클라이언트가 서버로 데이터를 보낼 때 쓰는 메소드이다.

폼 입력값 전송처럼 요청 본문에 데이터를 실어 서버에 제출한다.

  • GET: 클라이언트가 서버에 문서(자원)를 요청한다.
  • HEAD: 본문 없이 문서에 대한 정보(헤더)만 요청한다.
  • TRACE: 검사(루프백 진단) 목적으로 서버가 받은 요청을 그대로 되돌려 주도록 요청한다.
문제 6
DNS 스푸핑 공격의 순서를 바르게 나열한 것은?

(가) 클라이언트는 공격자가 전송한 DNS Response를 올바른 메시지로 인식한다.
(나) 로컬에 존재하며 DNS 서버보다 클라이언트와 가까이 위치한 공격자는 위조된 DNS Response를 클라이언트에게 전송한다.
(다) 공격자는 스니핑 공격을 통해 클라이언트가 DNS 서버로 DNS Query를 전송하는 것을 확인한다.

1(가)→(나)→(다)
2(나)→(가)→(다)
3(나)→(다)→(가)
4(다)→(나)→(가)
정답 및 해설

DNS 스푸핑은 질의 스니핑 → 위조 응답 전송 → 위조 응답 수용 순서로 진행되므로 (다)→(나)→(가)이다.

공격자가 실제 DNS 서버보다 가까워 먼저 도착한 응답을 클라이언트가 받아들이는 점을 이용한다.

  • (다): 공격자가 스니핑으로 클라이언트의 DNS Query를 확인한다.
  • (나): 공격자가 위조한 DNS Response를 정상 응답보다 먼저 클라이언트에 보낸다.
  • (가): 클라이언트는 먼저 받은 위조 응답을 올바른 메시지로 인식하고, 늦게 온 정상 응답은 버린다.
문제 7
서버가 클라이언트로부터 받은 비밀키에 대하여 여러 번 해시 함수를 적용하여 얻은 해시 체인으로 일회용 비밀번호(OTP)를 생성하는 것은?
1S/KEY 방식
2시간 동기화 방식
3이벤트 동기화 방식
4챌린지-응답 방식
정답 및 해설

비밀값에 해시 함수를 여러 번 적용한 해시 체인을 거꾸로 하나씩 써서 일회용 비밀번호를 만드는 방식은 S/KEY 방식이다.

서버는 직전에 받은 값만 저장해 두고, 새로 받은 OTP를 한 번 해시한 값이 저장값과 같은지로 검증한다.

  • 시간 동기화 방식: 클라이언트와 서버가 공유한 현재 시각을 입력으로 OTP를 만든다.
  • 이벤트 동기화 방식: 양쪽이 동기화한 카운터 값을 입력으로 OTP를 만든다.
  • 챌린지-응답 방식: 서버가 보낸 난수(챌린지)에 비밀키를 적용한 응답을 OTP로 쓴다.
문제 8
WPA(Wi-Fi Protected Access)에 대한 설명으로 옳지 않은 것은?
1WPA는 WEP의 보안 취약점을 보완하기 위해 제안되었다.
2WPA의 TKIP는 암호 알고리즘으로 AES를 사용한다.
3WPA-EAP는 인증을 위해서 RADIUS 서버를 이용할 수 있다.
4WPA-PSK는 사전에 공유된 비밀키를 사용한다.
정답 및 해설

WPA의 TKIP는 WEP 하드웨어를 그대로 쓰기 위해 RC4 암호를 유지한 방식이며, AES를 쓰는 것은 WPA2의 CCMP이다.

TKIP는 패킷마다 키를 바꾸고 MIC(Michael)로 무결성을 보강해 WEP의 약점을 보완했다.

  • WPA는 WEP의 보안 취약점을 보완하기 위해 제안되었다.
  • WPA-EAP(Enterprise)는 802.1X 인증에 RADIUS 서버를 이용할 수 있다.
  • WPA-PSK(Personal)는 사전에 공유된 비밀키(패스프레이즈)를 사용한다.
문제 9
DoS 공격 방식에 대한 설명으로 옳지 않은 것은?
1스머프(Smurf) 공격은 발신지 주소가 거짓으로 조작된 ICMP 패킷을 받은 네트워크의 많은 컴퓨터들이 발신지 주소로 응답을 보내게 하여 트래픽 범람을 일으키는 것이다.
2티어드롭(Teardrop) 공격은 IP 패킷 헤더 정보를 조작해서 패킷 조각(fragment)이 중첩되도록 보내어 이를 전달받은 시스템의 IP 패킷 재조합 과정에서 오류를 발생시킨다.
3슬로로리스(Slowloris) 공격은 HTTP 메시지 헤더의 Content-Length 필드에 임의의 큰 값을 설정하여 웹 서버가 클라이언트에서 해당 크기의 메시지를 전송할 때까지 연결을 유지하게 함으로써 정상적인 사용자의 접속을 받아들일 수 없게 하는 것이다.
4HTTP GET 플러딩 공격은 정상적인 TCP 세션과 함께 정상적으로 보이는 과도한 HTTP GET을 요청받은 웹 서버에 과부하가 걸리게 한다.
정답 및 해설

Content-Length에 큰 값을 넣고 본문을 천천히 보내 연결을 붙잡아 두는 것은 RUDY(Slow HTTP POST) 공격이며, 슬로로리스는 HTTP 헤더의 끝을 알리는 빈 줄을 보내지 않아 헤더가 끝나지 않은 것처럼 연결을 유지하는 공격이다.

두 공격 모두 적은 트래픽으로 웹 서버의 동시 연결 자원을 고갈시킨다.

  • 스머프: 출발지를 피해자로 위조한 ICMP 패킷을 브로드캐스트해 응답이 피해자에게 몰리게 한다.
  • 티어드롭: 단편의 오프셋을 겹치게 조작해 재조합 과정에서 오류를 일으킨다.
  • HTTP GET 플러딩: 정상 TCP 세션 위에서 정상처럼 보이는 GET 요청을 대량으로 보내 서버에 과부하를 건다.
문제 10
(가)와 (나)에 들어갈 내용을 바르게 연결한 것은?
  • (가) 은/는 네트워크 레벨에서 패킷에 대한 보안을 제공하기 위해 설계된 프로토콜의 모음이다.
  • (가) 이/가 지원하는 (나) 에서는 새로운 IP 헤더가 추가된다.
(가)(나)
①IPSec전송모드
②IPSec터널모드
③TLS전송모드
④TLS터널모드
1①
2②
3③
4④
정답 및 해설

(가)는 네트워크 계층에서 패킷을 보호하는 프로토콜 모음인 IPSec이고, (나)는 새 IP 헤더를 덧붙이는 터널모드이다.

터널모드는 원래 IP 패킷 전체를 보호한 뒤 새 IP 헤더를 붙이고, 전송모드는 원래 IP 헤더를 그대로 두고 페이로드만 보호한다.

  • TLS: 네트워크 계층이 아니라 전송 계층 위에서 동작하는 보안 프로토콜이다.
  • 전송모드: 새 IP 헤더를 추가하지 않는다.
문제 11
무선 랜의 MAC 프레임에 대한 다음 설명의 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

802.11 무선 랜 표준의 매체 접속 프로토콜은 (가) 이고, 무선 MAC 계층 프레임 포맷에는 (나) 개의 주소 필드가 있다.

(가)(나)
①CSMA/CD2
②CSMA/CD4
③CSMA/CA2
④CSMA/CA4
1①
2②
3③
4④
정답 및 해설

802.11 무선 랜의 매체 접속 방식은 CSMA/CA이고, MAC 프레임에는 Address 1~4의 4개 주소 필드가 있다.

무선에서는 송신 중 충돌을 감지하기 어려워 충돌을 미리 회피하는 방식을 쓰며, AP와 배분 시스템을 거치는 경로를 표현하려고 주소 필드를 4개 둔다.

  • CSMA/CD: 충돌을 감지하는 유선 이더넷의 방식이다.
  • 주소 필드 2개: 이더넷 프레임(목적지·출발지)의 구성이며 무선 MAC 프레임과 다르다.
문제 12
SSL/TLS 핸드셰이크 프로토콜에서 클라이언트가 보내는 client_hello 메시지에 포함되지 않는 것은?
1난수
2클라이언트가 지원하는 암호 그룹(Cipher Suite) 목록
3클라이언트가 지원하는 압축 방식 목록
4인증서
정답 및 해설

client_hello는 클라이언트가 처음 보내는 협상 제안 메시지로, 인증서는 포함되지 않는다.

인증서는 서버가 Certificate 메시지로 보내며, 서버가 요청한 경우에만 클라이언트도 별도의 Certificate 메시지로 보낸다.

  • 난수: client_hello에 포함되어 키 생성 재료로 쓰인다.
  • 암호 그룹(Cipher Suite) 목록: 클라이언트가 지원하는 조합을 선호 순으로 담는다.
  • 압축 방식 목록: 클라이언트가 지원하는 압축 방식을 담는다.
문제 13
(가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

스위치 환경에서 공격자의 스위치 재밍을 통해 스위치의 매핑 테이블의 최대 저장 개수보다 더 많은 정보가 추가되어 스위치가 (가) 모드로 동작하여, 같은 스위치 내에 위치한 공격자는 네트워크 인터페이스 카드를 (나) 모드로 설정하여 스니핑이 가능하다.

(가)(나)
①BroadcastFull-duplex
②BroadcastPromiscuous
③UnicastFull-duplex
④UnicastPromiscuous
1①
2②
3③
4④
정답 및 해설

MAC 테이블이 넘친 스위치는 허브처럼 모든 포트로 프레임을 내보내는 Broadcast 모드로 동작하고, 공격자는 NIC를 Promiscuous(무차별) 모드로 두어 남의 프레임까지 수신한다.

무차별 모드는 목적지 MAC이 자신이 아닌 프레임도 버리지 않고 상위 계층으로 올려 준다.

  • Unicast: 스위치의 정상 동작으로, 이 상태에서는 다른 호스트의 프레임이 공격자 포트로 오지 않는다.
  • Full-duplex: 송수신을 동시에 하는 통신 방식일 뿐 남의 프레임 수신과 무관하다.
문제 14
다음은 TCP 3-Way Handshaking 과정의 예를 나타낸 것이다. (가)~(라)에 들어갈 숫자를 바르게 연결한 것은? (단, C: Client, S: Server, [ ]: 세그먼트 플래그, seq: 순서 번호, ack: 확인응답 번호)

C → S, [SYN] seq = 102
S → C, [SYN-ACK] seq = (가), ack = (나)
C → S, [ACK] seq = (다), ack = (라)

(가)(나)(다)(라)
①213102103214
②102103103214
③103102213214
④330103103331
1①
2②
3③
4④
정답 및 해설

SYN 플래그는 순서 번호 1개를 소비하므로 (가)·(나)·(다)·(라)는 330, 103, 103, 331로 연결된다.

서버 응답의 ack는 클라이언트 seq 102에 1을 더한 103이다. 서버의 seq(가)는 서버가 정한 초기 순서 번호이고, 클라이언트의 마지막 ACK는 seq 103, ack = (가) + 1이 되어야 한다.

  • (가)=213, (나)=102인 조합: ack가 102+1인 103이 아니다.
  • (가)=102, (라)=214인 조합: (라)가 서버 seq 102에 1을 더한 103이 아니다.
  • (가)=103, (나)=102인 조합: (나)가 103이 아니고 (다)도 클라이언트 다음 순서 번호 103이 아니다.
문제 15
암호 알고리즘에 대한 설명으로 옳지 않은 것은?
1SEED는 128비트의 블록 암호 알고리즘이며, SEED 128과 SEED 256의 키 길이는 각각 128비트와 256비트이다.
2HIGHT는 경량 환경 및 하드웨어의 효율성 향상을 위해 개발된 128비트의 블록 암호 알고리즘이다.
3DES는 64비트의 블록 암호 알고리즘으로 16라운드로 구성되어 있다.
4LEA는 국내에서 개발된 128비트의 블록 암호 알고리즘으로 128비트, 192비트, 256비트의 비밀키를 사용할 수 있다.
정답 및 해설

HIGHT는 경량 환경을 위해 국내에서 개발된 블록 암호지만 블록 크기는 128비트가 아니라 64비트(키는 128비트)이므로 옳지 않다.

나머지 알고리즘의 블록·키 구성은 설명과 같다.

  • SEED: 128비트 블록 암호이며 SEED 128과 SEED 256은 각각 128비트, 256비트 키를 쓴다.
  • DES: 64비트 블록에 16라운드 Feistel 구조이다.
  • LEA: 국내 개발 128비트 블록 암호로 128·192·256비트 키를 지원한다.
문제 16
HMAC에 대한 설명으로 옳지 않은 것은?
1IP 보안에서 메시지 인증 목적으로 사용된다.
2MD5, SHA-1, RIPEMD-160과 같은 해시 함수를 내장하고 있다.
3비밀키를 적용한 블록 암호화와 해시 함수를 사용해서 결과를 산출한다.
4IEEE 802.11i의 의사 난수 생성 과정에 사용된다.
정답 및 해설

HMAC은 비밀키와 해시 함수만으로 메시지 인증 코드를 만드는 방식이며 블록 암호화를 사용하지 않는다.

블록 암호를 이용해 MAC을 만드는 것은 CMAC 같은 별도 방식이다.

  • IPSec에서 AH·ESP의 메시지 인증에 쓰인다.
  • MD5, SHA-1, RIPEMD-160 같은 해시 함수를 내장해 교체 가능하게 설계되었다.
  • IEEE 802.11i의 의사 난수 생성(키 유도) 과정에 쓰인다.
문제 17
DNSSEC(DNS Security Extensions)에 대한 설명으로 옳지 않은 것은?
1DNS 응답 메시지에 대한 기밀성을 제공한다.
2DNS 데이터에 공개키 기반 전자서명을 추가하여 데이터의 무결성을 제공한다.
3DNS 응답 수신자(resolver)는 수신한 데이터에 대한 서명을 검증한다.
4DNSSEC는 DNS 캐시 포이즈닝 공격을 방어하도록 설계되었다.
정답 및 해설

DNSSEC는 DNS 데이터에 전자서명을 붙여 출처 인증과 무결성을 제공할 뿐, 응답을 암호화하지 않으므로 기밀성은 제공하지 않는다.

DNS 질의·응답 내용 자체를 숨기려면 DNS over TLS/HTTPS 같은 별도 기술이 필요하다.

  • DNS 데이터에 공개키 기반 전자서명을 추가해 무결성을 제공한다.
  • 응답을 받은 리졸버가 서명을 검증한다.
  • 위조 응답을 걸러 내 DNS 캐시 포이즈닝을 방어하도록 설계되었다.
문제 18
하트블리드(Heartbleed)에 대한 다음 설명의 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?

TLS를 구현하기 위한 오픈 소스인 OpenSSL에 내재된 버그로, (가) 프로토콜의 요청을 받은 컴퓨터에서 적절한 (나) 이 이루어지지 않아서 피해자가 의도하지 않은 내용이 응답 패킷의 페이로드에 복사되어 공격자에게 전송될 수 있다.

(가)(나)
①Handshake페이로드 길이 확인
②Handshake사용자 인증
③Heartbeat페이로드 길이 확인
④Heartbeat사용자 인증
1①
2②
3③
4④
정답 및 해설

하트블리드는 OpenSSL의 Heartbeat 확장에서 요청의 페이로드 길이 확인을 하지 않아 생긴 버그이다.

공격자가 실제보다 큰 길이 값을 적어 보내면 서버가 그 길이만큼 메모리를 복사해 응답하므로, 개인키·세션 정보 같은 메모리 내용이 유출될 수 있다.

  • Handshake: 암호 협상·키 교환 프로토콜로, 하트블리드 버그가 있던 곳이 아니다.
  • 사용자 인증: 문제의 원인은 인증 누락이 아니라 길이 값 검증 누락이다.
문제 19
SSH(Secure Shell)에 대한 설명으로 옳지 않은 것은?
1SSH는 안전한 원격 로그온 기능을 제공하기 위해 설계되었다.
2사용자 인증 프로토콜을 통해 사용자가 서버에게 인증받는다.
3포트 전달을 통해 임의의 안전하지 않은 TCP 연결을 안전한 SSH 연결로 변환시킬 수 있다.
4전송 계층 프로토콜은 하나의 SSH 연결을 여러 개의 논리적 통신 채널로 다중화한다.
정답 및 해설

하나의 SSH 연결을 여러 논리 채널로 다중화하는 것은 전송 계층 프로토콜이 아니라 연결 프로토콜(Connection Protocol)의 역할이다.

전송 계층 프로토콜은 서버 인증, 기밀성, 무결성을 제공하는 보안 채널을 만든다.

  • SSH는 안전한 원격 로그온을 위해 설계되었다.
  • 사용자 인증 프로토콜로 클라이언트 사용자가 서버에 인증받는다.
  • 포트 전달(터널링)로 안전하지 않은 TCP 연결을 SSH 연결 안으로 보호할 수 있다.
문제 20
다음은 사용자 A와 B가 Diffie-Hellman 알고리즘에 의한 키 교환을 시도하려는 도중에 발생한 중간자 공격의 개념을 도시한 것이다. 공격자가 A와의 공유비밀키 KA와 B와의 공유비밀키 KB를 산출하는 계산식을 바르게 연결한 것은? (단, p는 소수, g는 p의 원시근, x, y, a, b는 p보다 작은 임의의 양의 정수)
1①
2②
3③
4④
정답 및 해설

공격자는 A와의 키를 KA=R1 b mod pK_A=R_1^{\,b}\bmod p, B와의 키를 KB=R2 a mod pK_B=R_2^{\,a}\bmod p로 계산한다.

그림에서 공격자는 A가 보낸 R1=gx mod pR_1=g^x\bmod p를 받고, A에게는 자신이 만든 R4=gb mod pR_4=g^b\bmod p를 보냈다. 따라서 A는 R4 x=gbx mod pR_4^{\,x}=g^{bx}\bmod p를, 공격자는 R1 b=gxb mod pR_1^{\,b}=g^{xb}\bmod p를 계산해 같은 키를 공유한다.

B 쪽도 같다. 공격자는 B에게 R3=ga mod pR_3=g^a\bmod p를 보내고 B의 R2=gy mod pR_2=g^y\bmod p를 받았으므로, B는 R3 yR_3^{\,y}, 공격자는 R2 aR_2^{\,a}로 같은 gay mod pg^{ay}\bmod p를 얻는다.

  • KAK_{A}에 R2R_{2}를 쓰는 조합: R2R_{2}는 B의 공개값이라 A와의 키 계산에 쓰이지 않는다.
  • KAK_{A}를 R1R_{1}의 a제곱으로 쓰는 조합: a는 B에게 보낸 R3R_{3}의 지수라 A와의 키와 무관하다.