ㄴ. 무결성(Integrity): 권한이 있는 자는 서비스를 사용하여야 함
ㄷ. 인증(Authentication): 정당한 자임을 상대방에게 입증하여야 함
ㄹ. 부인방지(Nonrepudiation): 거래사실을 부인할 수 없어야 함
ㅁ. 가용성(Availability): 비인가자에게는 메시지를 숨겨야 함
보안서비스의 개념과 설명이 바르게 짝지어진 것은 인증과 부인방지의 조합이다.
인증은 정당한 주체임을 입증하는 것이고, 부인방지는 거래 사실을 나중에 부인하지 못하게 하는 것이므로 ㄷ과 ㄹ만 옳다. 나머지 세 지문은 설명이 서로 뒤바뀌어 있다.
- ㄱ(틀림): 위·변조되지 않아야 한다는 설명은 기밀성이 아니라 무결성에 해당한다.
- ㄴ(틀림): 권한이 있는 자가 서비스를 사용할 수 있어야 한다는 설명은 무결성이 아니라 가용성에 해당한다.
- ㅁ(틀림): 비인가자에게 메시지를 숨겨야 한다는 설명은 가용성이 아니라 기밀성에 해당한다.
13:07:13. 670484 192.168.1.73.2321 > 192.168.1.73.http ...
13:07:13. 685593 192.168.1.73.2321 > 192.168.1.73.http ...
13:07:13. 693481 192.168.1.73.2321 > 192.168.1.73.http ...
13:07:13. 712833 192.168.1.73.2321 > 192.168.1.73.http ...
캡처된 패킷의 공격 유형은 LAND 공격이다.
모든 패킷의 출발지와 목적지 IP가 192.168.1.73으로 동일하다. LAND 공격은 이렇게 출발지 주소를 목적지와 같게 위조해, 서버가 자기 자신에게 응답을 반복하다 자원을 소모하게 만든다.
- Smudge 공격: 터치스크린에 남은 손자국으로 비밀번호나 패턴을 추정하는 공격으로, 네트워크 패킷 캡처와 무관하다.
- Ping of Death 공격: 규정보다 큰 ICMP 패킷을 조각내어 보내는 공격으로, HTTP 포트로 향하는 이 캡처와 맞지 않는다.
- Smurf 공격: 브로드캐스트 주소로 ICMP 요청을 보내 다수의 응답이 희생자에게 몰리게 하는 공격으로, 이 캡처에는 그런 흐름이 없다.
- Port Scan 공격: 여러 목적지 포트를 차례로 탐색하는 행위인데, 이 캡처의 목적지는 http 포트 하나로 고정되어 있다.
옳은 설명은 전자서명은 서명 생성자를 인증하는 기능이 있다는 것이다.
전자서명은 서명자만 가진 개인키로 생성하고 공개키로 검증하므로, 검증에 성공하면 누가 서명했는지 확인할 수 있다.
- 대칭키 사전 교환: 공유 비밀키가 필요한 것은 메시지 인증 코드이고, 전자서명은 공개키 방식이라 필요 없다.
- 둘 다 무결성과 부인방지 제공: 메시지 인증 코드는 양쪽이 같은 키를 공유해 작성자를 특정할 수 없으므로 부인방지를 제공하지 못한다.
- 검증에 공개키 필요: 메시지 인증 코드는 생성과 검증에 같은 비밀키를 쓴다.
- 서명-후-해시 방식: 전자서명은 메시지를 먼저 해시한 뒤 그 값에 서명하는 해시-후-서명 방식이다.

TLS가 1.1버전까지만 발표되었다는 설명이 옳지 않다.
TLS는 1.1 이후에도 개정이 이어져 시험 당시 이미 TLS 1.2가 표준으로 발표되어 있었다. 그림처럼 주소창이 https로 시작하고 자물쇠가 표시되면 TLS로 보호된 연결이다.
- SSL을 기반으로 IETF가 표준화한 인터넷 표준이라는 설명은 옳다.
- 핸드셰이크에서 서버 인증서로 서버를 인증하고 키를 교환한다는 설명은 옳다.
- 교환한 키로 암호화된 채널에서 패스워드가 전송되므로, 패스워드가 암호화된다는 설명은 옳다.
- 주소창의 자물쇠를 클릭하면 서버 인증서 정보를 확인할 수 있다는 설명은 옳다.
옳지 않은 설명은 TPM이 국내 공인인증서의 서명키를 저장하는 표준방식이라는 것이다.
TPM은 플랫폼의 신뢰성을 확보하기 위한 범용 하드웨어 보안 칩으로, 공인인증서 저장 전용 표준이 아니다. 공인인증서 저장 매체로는 하드디스크, 이동식 저장장치, 보안토큰 등이 쓰였다.
- 안전한 저장공간과 실행영역: 하드웨어 기반으로 키와 민감 정보를 보호하는 TPM의 기본 기능이다.
- 난수발생기·암복호화 엔진·RSA 키 생성기: 모두 TPM 칩의 구성 요소이다.
- 최상위 루트 키: 비휘발성 메모리에 루트 키를 보관해 키 계층의 기준으로 삼는다.
- 단계적으로 인증된 부팅: 부팅 단계마다 무결성을 측정·검증해 운영체제가 신뢰된 절차로 시작되도록 돕는다.
NX 비트로 효과적으로 차단할 수 있는 공격은 Buffer Overflow 공격이다.
NX 비트는 스택·힙 같은 데이터 영역을 실행 불가로 표시한다. 따라서 버퍼를 넘치게 해 데이터 영역에 넣은 셸코드로 실행 흐름을 옮겨도 CPU가 실행을 거부한다.
- Cross-Site Scripting 공격: 웹 페이지에 삽입된 스크립트가 브라우저에서 실행되는 공격이므로 CPU의 메모리 실행 제어로 막을 수 없다.
- Denial of Service 공격: 자원 고갈이나 서비스 방해가 목적이어서 메모리 실행 권한과 무관하다.
- ARP Spoofing 공격: 위조된 ARP 응답으로 주소 매핑을 속이는 네트워크 공격이다.
- SQL Injection 공격: 입력값으로 데이터베이스 질의를 조작하는 공격으로, 입력값 검증과 매개변수화로 대응한다.
옳지 않은 설명은 트랜스포트 모드에서 IP헤더도 암호화된다는 것이다.
트랜스포트 모드는 IP 패킷의 페이로드만 암호화하고 원래 IP헤더는 암호화하지 않는다. 원래 IP헤더까지 암호화하는 것은 패킷 전체를 새 IP헤더로 감싸는 터널 모드이다.
- 정책 설정 시 IP주소 입력: 어떤 트래픽에 IPsec을 적용할지 송·수신자 IP주소 등으로 지정한다.
- AH 프로토콜의 무결성: AH는 무결성과 출처 인증을 제공하며, 암호화는 하지 않는다.
- 패킷별 순서번호: 순서번호로 중복 패킷을 가려내 재전송 공격을 막는다.
- IKE 프로토콜: 통신 양측이 보안 연관과 세션키를 협상·교환하는 데 쓴다.
백도어 포트가 열려 있는지 확인하는 프로그램은 nmap이다.
nmap은 대상 호스트의 포트 상태와 서비스를 스캔하는 도구이므로, 예상하지 못한 포트가 열려 있는지 찾아낼 수 있다.
- ps: 실행 중인 프로세스를 보여 주는 명령으로 포트 스캔 기능이 없다.
- nslookup: DNS에 도메인과 IP 정보를 질의하는 도구이다.
- traceroute: 목적지까지 패킷이 거치는 경로를 확인하는 도구이다.
- ping: ICMP로 대상 호스트의 응답 여부만 확인하는 도구이다.
옳지 않은 설명은 난수가 노출되어도 사전공격에 안전하다는 것이다.
난수를 알면 공격자는 사전의 단어마다 그 난수를 붙여 해시한 뒤 전송값과 비교할 수 있다. 난수는 미리 계산한 표의 활용을 어렵게 할 뿐, 약한 패스워드의 추측 자체를 막지는 못한다.
- MD5와 SHA-1: 충돌 공격 등의 취약점이 알려져 사용을 피하는 것이 바람직하다.
- 역상 저항성: 출력값에 대응하는 입력값을 구하기 어려운 것은 해시함수의 기본 성질이다.
- 생일공격: 내부 구조와 무관하게 출력 길이만으로 충돌저항성을 분석하는 일반적 방법이다.
- 비트코인 채굴: 작업증명에서 조건을 만족하는 해시값을 찾는 과정에 해시함수가 쓰인다.
옳은 설명은 긴 메시지 암호화에는 하이브리드 방식이 효율적이다는 것이다.
메시지 본문은 빠른 대칭키 암호로 암호화하고, 그 세션키만 공개키 암호로 전달하면 두 방식의 장점을 함께 얻는다.
- 공개키 교환에 대칭키 암호 이용: 일반적으로는 반대로 공개키 암호를 이용해 대칭키를 교환한다.
- 128비트 RSA와 2048비트 대칭키의 안전도: 키 길이가 뒤바뀌었다. 같은 안전도를 얻으려면 RSA의 키가 대칭키보다 훨씬 길어야 한다.
- 기밀성과 무결성의 동시 보장: 암호화 자체는 기밀성을 위한 것이고, 무결성은 메시지 인증 코드나 전자서명 등으로 따로 보장한다.
- 공개키 암호의 처리속도: 수학 연산의 부담이 커서 대칭키 암호보다 느리다.
옳지 않은 설명은 I-PIN이 일회용 사용자 식별번호라는 것이다.
I-PIN은 인터넷에서 주민등록번호 대신 쓰도록 만든 식별·인증 수단이지만, 발급받은 뒤 반복해서 사용하므로 일회용 번호가 아니다.
- 패스워드 인증: 서버 측 구현이 단순해 구축이 쉬운 것이 장점이다.
- 시각 동기화 OTP: 양측이 미리 공유한 비밀키와 현재 시각으로 같은 값을 계산해 검증한다.
- 전자서명 방식: 서버가 보낸 도전값에 개인키로 서명해 응답함으로써 사용자를 인증한다.
- 생체인증: 인식할 때마다 입력값이 조금씩 달라 오인식과 오거부 같은 에러 처리가 중요하다.
옳지 않은 설명은 DNSSEC가 서비스 거부 공격을 막는다는 것이다.
DNSSEC는 전자서명으로 응답의 출처와 무결성을 검증할 뿐, 기밀성이나 가용성은 보장하지 않는다. 오히려 서명이 붙어 응답이 커지므로 서비스 거부 공격에 대한 대책으로 볼 수 없다.
- Cache Poisoning 공격: DNS 캐시에 위조 정보를 넣어 공격자가 지정한 주소로 유도한다.
- DNS Spoofing: 위조된 IP 주소 응답으로 사용자를 의도하지 않은 주소로 유도한다.
- DNSSEC의 전자서명: 응답에 서명을 부가해 서버 인증과 무결성을 제공한다.
- DNSSEC의 인증체인: 상위 영역이 하위 영역의 키를 보증하는 방식으로 계층적 DNS 구조에 적용된다.
보안 수준이 높은 순서로 바른 것은 Structured Protection, Labeled Security Protection, Controlled Access Protection이다.
TCSEC의 해당 등급을 높은 순으로 나열하면 B2(Structured Protection), B1(Labeled Security Protection), C2(Controlled Access Protection), C1(Discretionary Security Protection), D(Minimal Protection)이다.
- Discretionary Security Protection이 Controlled Access Protection보다 앞선 나열: C1이 C2보다 낮으므로 틀렸다.
- Minimal Protection이 맨 앞인 나열: Minimal Protection은 최하위 등급이므로 틀렸다.
- Discretionary Security Protection이 Labeled Security Protection보다 앞선 나열: C1이 B1보다 낮으므로 틀렸다.
- Structured Protection이 맨 뒤인 나열: B2가 C2·C1보다 높으므로 틀렸다.
옳지 않은 설명은 공개키 전달에 인증기관의 서명이 필요하다는 것이다.
PGP는 중앙 인증기관에 의존하지 않고, 사용자들이 서로의 공개키에 서명해 신뢰를 쌓는 신뢰의 웹(Web of Trust) 방식을 쓴다.
- 이메일 보안과 파일 암호화: PGP의 대표적인 용도이다.
- PGP 인증서: 공개키와 사용자 정보, 이를 보증하는 서명을 담아 공개키 인증에 쓴다.
- 서명 시 패스워드 요구: 암호화되어 보관된 개인키를 풀기 위해 서명자의 패스워드를 입력받는다.
- 플러그인: 이메일 관리 프로그램에 플러그인 형태로 붙여 사용할 수 있다.
강제적 접근제어에 해당하는 것은 자원마다 보안등급이 부여된다는 설명이다.
강제적 접근제어는 주체의 인가 등급과 자원의 보안등급을 비교해 시스템 정책에 따라 접근을 결정하므로, 소유자가 임의로 권한을 바꿀 수 없다.
- 사용자별 접근권리 이전: 권한을 임의로 넘길 수 있는 임의적 접근제어의 특징이다.
- UNIX 운영체제의 기본 방식: 소유자가 파일 권한을 정하는 임의적 접근제어에 해당한다.
- 조직의 역할에 따른 권한 부여: 역할 기반 접근제어의 설명이다.
- 소유자의 접근권한 설정: 임의적 접근제어의 핵심 특징이다.
옳지 않은 설명은 Sandbox를 악성코드가 시스템 자원에 쉽게 접근하도록 만든 백도어라고 한 것이다.
Sandbox는 프로그램을 격리된 환경에서 실행해 시스템 자원 접근을 제한하는 보안 기법으로, 설명과 정반대이다.
- Rootkit: 침입 후 권한 유지와 흔적 은닉 등을 돕는 프로그램 집합이다.
- Obfuscation: 코드를 읽고 분석하기 어렵게 바꾸는 난독화 행위이다.
- Ransomware: 피해자의 데이터를 암호화하고 복호화를 조건으로 금전을 요구한다.
- Cross-Site Scripting: 웹 애플리케이션에 악성 스크립트를 삽입해 이용자 브라우저에서 실행되게 하는 공격이다.
옳지 않은 통제사항은 소스 프로그램을 운영환경에 보관하는 것을 원칙으로 한다는 내용이다.
소스 프로그램은 유출과 무단 변경을 막기 위해 운영환경에 보관하지 않는 것을 원칙으로 하고, 별도 환경에서 인가된 사용자만 접근하도록 관리한다.
- 설계 시 사용자 인증 요구사항 고려: 개발 초기부터 보안 요구사항을 반영하라는 통제사항이다.
- 기술적 보안 취약성 점검: 알려진 취약성의 노출 여부를 점검하고 대책을 세우는 통제사항이다.
- 개발·시험 시스템과 운영시스템의 분리: 운영시스템에 대한 비인가 접근과 변경 위험을 줄이는 통제사항이다.
- 운영환경으로의 통제된 이관: 시험과 사용자 인수를 거친 코드만 절차에 따라 반영하는 통제사항이다.
표준에 나열된 통제사항을 근거로 위험을 분석하는 방법은 기준 접근법(Baseline Approach)이다.
기준 접근법은 표준이나 지침의 보안 통제사항을 기준선으로 삼아 현재 상태와의 차이를 점검한다. 신속하고 비용이 적지만 조직 특성을 세밀하게 반영하기는 어렵다.
- 비정형화된 접근법: 정해진 구조 없이 전문가의 지식과 경험에 의존한다.
- 상세 위험 분석: 자산·위협·취약성을 식별하고 평가해 위험을 정밀하게 산정한다.
- 통합 접근법: 기준 접근법과 상세 위험 분석을 시스템의 중요도에 따라 함께 적용한다.
- 시나리오 접근법: 위협이 현실화되는 상황을 가정해 결과를 추정하는 방식이다.