오류를 검출한 뒤 틀린 비트의 위치까지 찾아 바로잡을 수 있는 것은 해밍(Hamming) 코드이다.
해밍 코드는 여러 개의 패리티 비트를 데이터 비트 사이 특정 위치에 넣어, 수신 측에서 어느 비트가 뒤집혔는지 위치를 계산해 단일 비트 오류를 정정할 수 있다.
- 10진수를 4비트로 표현하는 부호화 방식은 오류 제어 기능 자체가 없다.
- 단일 패리티 비트는 1비트가 추가될 뿐이어서 홀수 개 오류의 검출만 가능하고 정정은 못 한다.
- 데이터의 합을 이용하는 검사 값은 오류 검출용일 뿐 정정 기능이 없다.
탐지에 그치지 않고 유해 트래픽을 실시간으로 차단까지 하는 침입방지시스템(IPS)에 대한 설명이다.
침입탐지시스템이 탐지와 경보에 머무는 데 비해, IPS는 트래픽 경로상에 인라인으로 놓여 공격을 탐지하면 방화벽처럼 해당 트래픽을 즉시 차단한다.
- 공격자를 유인해 행위를 관찰하는 미끼 시스템은 능동 차단 장비가 아니다.
- 단말의 네트워크 접속을 통제하는 방식은 트래픽 내용 차단이 목적이 아니다.
- 신뢰 수준이 다른 구간을 분리해 공개 서버를 두는 영역은 보안 장비가 아니라 망 구조 개념이다.
메시지의 무결성과 기밀성을 제공하기 위하여, 클라이언트와 서버 간 약속된 절차에 따라 메시지에 대한 단편화, 압축, 메시지 인증 코드 생성 및 암호화 과정 등을 수행한다.
단편화·압축·메시지 인증 코드 생성·암호화를 수행해 상위 데이터를 안전하게 운반하는 계층은 레코드 프로토콜(Record Protocol)이다.
레코드 프로토콜은 상위에서 내려온 메시지를 블록으로 나누고(단편화) 선택적으로 압축한 뒤, MAC을 붙여 무결성을, 암호화로 기밀성을 제공한다.
- 오류·종료 상황을 알리는 경고 전달용 프로토콜은 데이터 보호 기능이 아니다.
- 세션 파라미터 합의와 인증을 담당하는 프로토콜은 실제 데이터 암호화를 수행하지 않는다.
- 협상된 암호 방식을 이후 레코드부터 적용하라고 알리는 신호용 프로토콜은 단일 메시지일 뿐이다.
IPsec의 보안 연관(SA)을 자동으로 협상·생성하는 키 관리 프로토콜은 IKE(Internet Key Exchange)이다.
IKE는 Diffie-Hellman 키 교환과 피어 인증을 통해 암호 알고리즘·키 등 SA 파라미터를 합의하여, AH·ESP가 사용할 보안 연관을 설정한다.
- 유선랜·무선랜에서 802.1X 인증 정보를 실어 나르는 프로토콜은 IPsec 키 관리와 무관하다.
- 링크 상태를 교환하는 라우팅 프로토콜은 키 관리 기능이 없다.
- 전자우편 발신 도메인을 서명·검증하는 기술은 IPsec과 관계가 없다.
- ㄱ. /26에서의 26은 prefix의 길이를 의미한다.
- ㄴ. 네트워크 내의 주소 개수는 128개이다.
- ㄷ. 네트워크 마스크는 255.255.255.128이다.
- ㄹ. 네트워크에는 주소 163.152.175.15/26이 포함된다.
prefix 길이 26과 163.152.175.15/26 포함 여부를 따지면 두 설명이 옳다.
/26은 프리픽스가 26비트라는 의미이고, 블록 크기가 이므로 163.152.175.0~63이 한 네트워크가 되어 호스트 부분이 15인 주소도 이 범위에 포함된다.
- 네트워크 내 주소 개수는 64개이므로 128개라는 설명은 틀리다.
- /26의 네트워크 마스크는 255.255.255.192이므로 255.255.255.128이라는 설명은 틀리다.
- ㄱ. Client_Key_Exchange
- ㄴ. Certificate
- ㄷ. Change_Cipher_Spec
SSL/TLS 핸드셰이크에서 이 세 메시지는 Certificate → Client Key Exchange → Change Cipher Spec 순으로 발생한다.
서버가 자신의 인증서(Certificate)를 먼저 보내고, 클라이언트는 그 공개키로 사전 비밀키를 전달하는 Client Key Exchange를 보낸 뒤, 협상된 암호 방식을 적용하겠다는 Change Cipher Spec으로 전환한다.
즉 인증서 전달이 가장 앞서고, 키 교환을 거쳐 암호 사양 변경 신호가 마지막에 오는 순서가 규격에 맞는다.
AAAK라고도 불리는 MSK는 IEEE 802.1X 프로토콜에 의해 인증 단계에서 생성된다. 인증의 마지막 과정이 끝나고 나면 AP(Access Point)와 STA(클라이언트 스테이션)는 (가)를 공유하게 된다. (가)로부터 AP와 STA 간의 통신에 사용할 (나)가 만들어지는데, (나)의 일부인 (다)가 사용자의 무선 데이터 패킷의 암호화에 사용된다.
인증 뒤 AP와 STA가 공유하는 (가)는 PMK, 그로부터 생성되는 (나)는 PTK, PTK의 일부로 데이터 암호화에 쓰이는 (다)는 TK이다.
802.1X 인증으로 만들어진 MSK에서 쌍방향 마스터 키인 PMK가 유도되고, 4-way handshake를 거쳐 PMK로부터 PTK가 만들어지며, 이 PTK 안에 포함된 TK가 실제 무선 데이터 패킷 암호화에 사용된다.
따라서 (가)·(나)·(다)는 마스터 키에서 트랜션트 키, 다시 암호화용 임시 키로 이어지는 계층 순서로 연결된다.
응용 레벨 게이트웨이는 응용 계층에서 동작하는 프록시로서, 응용 트래픽을 상세히 기록·감시하고 사용자 인증 같은 부가 서비스를 제공할 수 있다는 설명이 옳다.
클라이언트와 서버가 직접 연결되지 않고 프록시가 중계하므로 응용 수준의 로깅과 접근 통제가 용이하다.
- 외부와 내부가 직접 패킷을 주고받게 하는 것은 프록시가 중계하는 응용 게이트웨이의 동작과 반대이며 단순 패킷 필터의 특징이다.
- 응용 게이트웨이는 서비스마다 전용 프록시가 필요하여 하나의 프록시로 모든 서비스를 처리하지 않는다.
- 패킷 필터링에 상태(세션) 정보 관리를 더한 것은 상태 검사 방화벽에 대한 설명이다.
객체 이름 부여·유형 정의·부호화 규칙을 정하는 것은 MIB가 아니라 SMI(관리 정보 구조)의 역할이므로, MIB가 그 규칙을 정의한다는 설명이 옳지 않다.
MIB는 관리 대상이 되는 객체들을 모아 놓은 데이터베이스이고, 그 객체를 어떻게 이름 짓고 표현할지에 대한 일반 규칙은 SMI가 담당한다.
- 관리자가 GetRequest로 에이전트의 정보를 요청한다는 설명은 옳다.
- 에이전트가 Trap으로 이상 상황을 관리자에게 알린다는 설명은 옳다.
- SNMP가 UDP 포트 161과 162를 사용한다는 설명은 옳다.
패킷이 거칠 수 있는 라우터(홉) 수를 제한하는 IPv4 헤더 필드는 Time To Live(TTL)이다.
라우터를 하나 지날 때마다 TTL 값이 1씩 줄어들고 0이 되면 패킷이 폐기되므로, 무한 루프를 도는 패킷이 네트워크에 영원히 남는 것을 막는다.
- 단편화된 조각이 원래 데이터의 어디에 위치하는지 나타내는 필드는 홉 수 제한과 무관하다.
- 헤더의 오류를 검사하는 필드는 라우터 수 제한 기능이 아니다.
- 단편화 여부와 추가 조각 유무를 나타내는 제어 필드는 홉 수와 관계가 없다.
포트 143을 사용하며 서버에 폴더를 만들어 메시지를 관리하는 메일 접속 프로토콜은 IMAP이다.
IMAP은 메일을 서버에 둔 채 여러 폴더로 분류·검색하고 여러 단말에서 동일하게 접근할 수 있게 하여, 메일을 내려받아 삭제하는 방식과 구별된다.
- 웹 문서 전송용 프로토콜은 메일 수신 접속 프로토콜이 아니다.
- 메일을 보내거나 서버 간 전달에 쓰는 프로토콜은 사용자의 메일 수신 접속용이 아니다.
- 메일을 단말로 내려받아 서버에서 지우는 방식의 수신 프로토콜은 서버 측 폴더 관리 기능을 기본으로 제공하지 않는다.
ICMP Echo Request를 브로드캐스트 주소로 보내 다수 호스트의 응답이 피해자에게 쏟아지게 하는 공격은 Smurf 공격이다.
출발지 주소를 피해자로 위조한 뒤 브로드캐스트로 Echo Request를 뿌리면, 서브넷의 모든 호스트가 피해자에게 Echo Reply를 보내 증폭된 트래픽으로 서비스를 마비시킨다.
- 규격을 넘는 큰 ICMP 패킷을 보내 시스템을 다운시키는 공격은 브로드캐스트 증폭 방식이 아니다.
- TCP 연결 요청만 다량으로 보내 연결 자원을 고갈시키는 공격은 ICMP를 이용하지 않는다.
- 출발지와 목적지 주소를 동일하게 위조해 보내는 공격은 브로드캐스트 증폭과 다르다.
터널 모드는 IPv4든 IPv6든 원래 패킷 전체를 캡슐화하면서 항상 새 IP 헤더를 덧붙이므로, IPv6에서는 본래 헤더를 그대로 쓴다는 설명이 옳지 않다.
터널 모드에서는 원본 IP 패킷 전체가 페이로드가 되고 그 앞에 새로운 IP 헤더가 추가되어, 보안 게이트웨이 사이를 이동한다.
- 공중망을 이용해 사설망과 같은 효과를 얻는다는 것은 VPN의 기본 개념으로 옳다.
- 내부 호스트가 보안 게이트웨이를 거쳐 본래 IP 주소를 숨긴다는 설명은 터널 모드의 특징으로 옳다.
- 내부 IPv4 패킷 전체를 암호화하고 선택적으로 인증할 수 있다는 설명은 ESP 터널 모드로 옳다.
클라이언트가 티켓발행서버에 보내는 요청에는 인증서버에서 받은 티켓, 원하는 서버의 식별자, 세션키로 암호화한 인증자가 들어가지만, 클라이언트와 서버가 쓸 공유비밀키는 포함되지 않는다.
그 세션키는 클라이언트가 보내는 것이 아니라 티켓발행서버가 생성해 서비스 티켓과 함께 돌려주는 값이므로, 요청 단계에서 클라이언트가 제시할 수 없다.
- 인증서버로부터 받은 티켓(TGT)은 요청에 함께 제시하므로 포함된다.
- 이용하려는 서버의 식별자는 어떤 서비스의 티켓을 원하는지 알리므로 포함된다.
- 클라이언트와 티켓발행서버의 세션키로 암호화한 타임스탬프(인증자)는 포함된다.
NAT는 내부의 사설 주소를 외부에서 보이지 않게 가리므로, 외부 인터넷에서 사설 주소를 쓰는 내부 호스트를 식별할 수 있다는 설명이 옳지 않다.
NAT의 목적 자체가 내부 호스트를 소수의 전역 주소 뒤에 은닉하는 것이어서, 외부에서는 변환된 전역 주소만 보일 뿐 개별 내부 호스트를 구별하지 못한다.
- 사설 주소는 내부 통신에, 전역 주소는 외부 통신에 쓰도록 해 준다는 설명은 옳다.
- 변환 테이블로 내보내는 패킷의 발신지 주소를 전역 주소로 바꾼다는 설명은 옳다.
- 포트 번호까지 테이블에 담아 다대다 매핑을 지원한다는 설명은 옳다.
ARP 캐시 테이블은 필요에 따라 알아낸 주소만 임시로 담으므로, 서브넷의 모든 호스트와 라우터 엔트리를 항상 가지고 있어야 한다는 설명이 옳지 않다.
ARP는 필요할 때마다 요청을 보내 IP-MAC 매핑을 알아내 캐시에 일정 시간 보관할 뿐, 전체 장비의 목록을 미리 채워 두지 않는다.
- 호스트와 라우터가 IP와 MAC 매핑을 캐시 테이블에 둔다는 설명은 옳다.
- 캐시를 공격자 MAC으로 갱신시키는 ARP 스푸핑으로 스니핑이 가능하다는 설명은 옳다.
- ARP 요청은 브로드캐스트, 응답은 유니캐스트라는 설명은 옳다.
연결을 시작하는 클라이언트는 CLOSED → SYN_SENT → ESTABLISHED 순으로 상태가 바뀐다.
클라이언트가 SYN을 보내면 SYN_SENT가 되고, 서버의 SYN+ACK를 받아 ACK를 보내는 순간 ESTABLISHED가 되어 연결이 완성된다.
- CLOSED→SYN_RCVD→ESTABLISHED는 SYN을 보낸 적 없이 상대의 SYN을 받은 상태를 거치므로 연결을 시작하는 클라이언트의 천이가 아니다.
- LISTEN→SYN_RCVD→ESTABLISHED는 연결을 기다리다 SYN을 받아 응답하는 서버(수동 개방) 측의 천이이다.
- LISTEN→SYN_SENT→ESTABLISHED는 서버의 대기 상태에서 출발하므로 능동적으로 연결하는 클라이언트의 천이와 맞지 않는다.
오용 탐지는 이미 알려진 공격 패턴(시그니처)과 일치하는지를 검사해 침입을 찾아내는 기법이라는 설명이 옳다.
알려진 공격을 정확히 잡아 오탐이 적은 대신 새로운(미지의) 공격은 탐지하지 못하는 것이 오용 탐지의 한계이다.
- 오탐률이 높지만 새로운 공격까지 넓게 탐지한다는 것은 이상 탐지의 특징이다.
- 정상 범주를 벗어난 급격한 변화나 확률이 낮은 사건으로 탐지한다는 것은 이상 탐지의 설명이다.
- 데이터 마이닝으로 많은 학습 시간이 든다는 것도 이상(통계 기반) 탐지에 해당한다.
IPsec ESP에서 재전송 공격을 막기 위해 패킷마다 증가시키며 중복을 걸러내는 필드는 순서 번호(Sequence Number)이다.
수신 측은 윈도를 두고 이미 수신한 번호의 패킷이 다시 오면 재전송으로 간주해 폐기하므로, 가로챈 패킷을 되쏘는 공격을 방어한다.
- 보안 연관을 식별하는 색인 값은 재전송 방지가 목적이 아니다.
- 무결성 검사 값은 변조 여부를 확인할 뿐 재전송 자체를 막지는 않는다.
- 다음 헤더 필드는 뒤따르는 데이터의 유형을 알리는 값이다.