Wahr/Falsch
문제
독일어 원문
Wenn eine Firewall alle ausgehenden Ports außer Port 53 blockiert, können nur DNS-Anfragen durchkommen und deshalb keine Daten abfließen.
한국어 해석
Firewall가 outgoing ports 중 Port 53만 허용하면 DNS-Anfragen만 통과하므로 data exfiltration은 불가능하다. Wahr/Falsch?
Wahr/Falsch 즉시 채점
선택 후 즉시 개념 함정을 확인하세요.
단계별 힌트
막혔을 때만 한 단계씩 여세요. 정답을 바로 읽는 것보다 기억을 꺼내는 시간이 중요합니다.
- 첫 힌트: Firewall가 보는 것이 port number뿐이면, payload 안의 의미까지 알 수 있을까?
- 개념 문항이다.
- 판단 순서: allowed port -> allowed protocol label -> payload abuse possibility.
- 함정: Port 53 traffic은 항상 정상 DNS라고 가정하기
- 함정: outgoing-only 정책의 logging/inspection 필요성을 빼먹기
- 후속 점검: DNS query name에 데이터를 넣으면 어떤 형태의 exfiltration이 되는가?
채점 기준으로 내 답안 점검하기
- Falsch로 판단한다.
- port filtering의 한계를 설명한다.
- DNS tunneling 또는 DNS payload exfiltration을 언급한다.
답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.
0/3 slots
정답과 핵심 해설 확인하기
Falsch
DNS tunneling/exfiltration 때문에 Port 53만 허용해도 데이터 유출이 가능할 수 있다.
개념부터 다시 보는 상세 풀이
BEGINNER LESSON
4-(e) Port 53만 열면 DNS 외의 데이터는 절대 못 나갈까?
ZERO-BASE START
정말 아무것도 모른다고 가정하고 시작합니다
전문 용어를 알고 있다고 가정하지 않습니다. 먼저 일상적인 장면을 보고, 그 장면의 사람과 행동에 실제 보안 용어를 하나씩 붙인 뒤, 시스템에서 일어나는 순서를 따라갑니다.
기초 개념 01
네트워크에서 누가 누구에게 무엇을 보내는가
1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다
IP address가 아파트 건물 주소라면 port는 몇 호인지, protocol은 택배 봉투를 어떤 양식으로 쓰는지, router는 다음 물류 센터를 고르는 역할에 가깝다.
지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.
이제 실제 용어를 하나씩 붙여 봅시다
네트워크는 여러 장치가 정해진 protocol에 따라 packet 또는 message를 주고받는 시스템이다. Client는 서비스를 요청하는 쪽, server는 서비스를 제공하는 쪽이다. IP address는 네트워크에서 장치를 찾는 주소이고 port는 한 장치 안에서 어떤 프로그램과 통신할지 구분하는 번호다. Router는 목적지 네트워크를 보고 packet을 다음 경로로 전달한다.
TERMS FROM ZERO
전문 용어를 한 단어씩 풀기
아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.
Packet
네트워크에서 header와 payload를 갖고 전달되는 데이터 단위입니다.
IP address
IP 계층에서 출발지와 목적지 host/interface를 식별하는 주소입니다.
Port
한 host 안에서 어떤 application/service가 데이터를 받을지 구분하는 번호입니다.
Protocol
통신 참여자가 message 형식과 순서를 해석하기로 합의한 규칙입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- 송신자와 수신자를 먼저 적는다.
- 출발지·목적지 IP와 port를 구분한다.
- 중간 장치가 내용을 읽는지 단순히 전달하는지 구분한다.
- 응답이 어느 방향으로 돌아오는지 그린다.
왜 여기서 많이 틀릴까요?
하나의 port 번호가 그 port를 이용하는 데이터의 의미까지 보장하지는 않는다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
기초 개념 02
DNS와 resolver, cache를 처음부터 이해하기
1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다
DNS는 이름으로 전화번호를 찾는 분산 전화번호부다. Resolver는 여러 전화번호부 기관에 대신 문의하는 안내원이고 cache는 최근 찾아본 번호를 메모해 두는 수첩이다.
지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.
이제 실제 용어를 하나씩 붙여 봅시다
사람은 tu-darmstadt.de 같은 domain name을 사용하지만 packet은 IP address로 전달된다. DNS는 이름을 IP와 다른 정보로 바꾸는 분산 데이터베이스다. 사용자의 질문을 대신 처리하는 프로그램이 recursive resolver이고, authoritative nameserver는 특정 zone의 공식 record를 가진다. Resolver는 받은 답을 TTL 동안 cache해 같은 질문을 빠르게 답한다.
TERMS FROM ZERO
전문 용어를 한 단어씩 풀기
아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.
DNS
domain 이름을 IP 주소 등 resource record로 찾아주는 분산 이름 시스템입니다.
Recursive resolver
client 대신 여러 DNS server에 질의해 최종 답을 찾아주는 server입니다.
Cache
이전에 받은 DNS 답을 일정 시간 저장해 재사용하는 공간입니다.
TTL
DNS record를 cache에서 얼마나 오래 재사용할 수 있는지 나타내는 시간값입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- 사용자 stub resolver가 recursive resolver에 이름을 묻는다.
- Cache에 유효한 답이 있으면 즉시 사용한다.
- 없으면 root, TLD, authoritative nameserver 방향으로 위임을 따라간다.
- 받은 record를 TTL 동안 저장한다.
왜 여기서 많이 틀릴까요?
Resolver와 authoritative nameserver를 같은 서버 역할로 쓰지 말고, cache에 오래된 거짓 답이 들어가는 cache poisoning과 전송 암호화를 구분한다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
기초 개념 03
Firewall, port, protocol, data exfiltration
1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다
경비원이 ‘53번 출입문을 쓰는 사람은 모두 전화번호부 업무’라고 믿으면, 공격자는 서류를 전화번호부 상자처럼 꾸며 그 문으로 가져갈 수 있다.
지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.
이제 실제 용어를 하나씩 붙여 봅시다
Firewall은 packet의 source, destination, port, protocol, connection state 같은 규칙을 보고 통과 여부를 결정한다. Port 53은 관례상 DNS가 사용하는 번호지만 숫자 자체가 payload가 정말 정상 DNS 질문인지 증명하지 않는다. Data exfiltration은 공격자가 조직 내부의 비밀 데이터를 외부로 빼내는 행위이며, 허용된 DNS query의 이름 부분에 데이터를 인코딩해 보낼 수 있다.
TERMS FROM ZERO
전문 용어를 한 단어씩 풀기
아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.
Firewall
traffic의 주소·port·protocol·state 같은 규칙을 보고 허용 또는 차단하는 장치나 software입니다.
Ingress / Egress
Ingress는 들어오는 traffic, egress는 밖으로 나가는 traffic입니다.
Data exfiltration
공격자가 조직 밖으로 비밀 데이터를 빼내는 행위입니다.
Stateful filtering
개별 packet뿐 아니라 연결 상태를 기억해 traffic을 판단하는 방식입니다.
프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.
- Firewall가 확인하는 header와 확인하지 않는 payload를 구분한다.
- 공격자가 데이터를 작은 문자열로 인코딩한다.
- 그 문자열을 공격자가 통제하는 domain의 subdomain query에 넣는다.
- 외부 authoritative server의 log에서 데이터를 복원한다.
왜 여기서 많이 틀릴까요?
Port allowlist는 공격 표면을 줄이지만 허용된 protocol을 악용하는 covert channel까지 불가능하게 만들지는 않는다.
조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.
핵심부터 말하면 정답은 Falsch(거짓). Firewall이 port 53 트래픽을 허용해도 공격자는 탈취 데이터를 DNS query의 subdomain label 등에 인코딩해 외부로 보낼 수 있다. 이를 DNS tunneling 또는 DNS exfiltration이라고 한다.
이 글에서 익힐 것
port 번호와 애플리케이션 의미를 구분한다.
firewall의 단순 port filtering 한계를 이해한다.
DNS query 이름에 데이터가 실리는 과정을 설명한다.
attacker-controlled authoritative nameserver가 데이터를 받는 흐름을 그린다.
DNS tunneling 탐지·차단 방법을 이해한다.
개념부터 차근차근
-
Port는 문 번호
IP address가 건물 주소라면 TCP/UDP port는 서비스 문 번호와 비슷하다. DNS는 일반적으로 UDP 53, 큰 응답·zone transfer 등에서는 TCP 53도 쓴다. 그러나 번호 53은 그 안의 데이터가 선량한 DNS 목적이라는 도덕적 보증이 아니다.
-
Firewall port filtering
단순 packet filter는 source/destination IP, protocol, port 등을 보고 허용·차단한다. destination port 53이라는 이유로 통과시킬 수 있지만 DNS 이름의 의미·길이·빈도까지 검사하지 않으면 covert channel을 놓친다.
-
DNS 이름도 attacker-controlled data를 담을 수 있음
질의 qname의 각 label에는 문자들이 들어간다. malware는 비밀 데이터를 Base32/hex처럼 DNS에 사용할 수 있는 문자로 바꾸어 secretchunk.attacker.example 같은 subdomain으로 질의할 수 있다.
단계별로 따라가기
Eve가 attacker.example domain과 그 authoritative nameserver를 통제한다.
내부 감염 PC가 파일의 일부 'TOP SECRET'을 인코딩해 여러 chunk로 나눈다.
malware가 001-<encoded-data>.attacker.example 같은 DNS query를 내부 resolver에 보낸다.
내부 resolver는 답을 찾기 위해 외부 DNS 계층을 거쳐 attacker.example의 authoritative server에 질의를 전달한다.
Eve의 authoritative server log에는 인코딩된 subdomain이 도착한다.
Eve가 순서 번호대로 조각을 합치고 decode해 원래 데이터를 복구한다.
모든 packet이 형식상 DNS이고 port 53을 사용했어도 데이터가 외부로 유출됐다.
Tunneling beyond exfiltration
DNS query로 내부→외부 데이터를 보내는 exfiltration뿐 아니라 DNS response의 TXT/CNAME 등으로 외부→내부 명령을 전달할 수 있다.
이렇게 command-and-control(C2) channel이나 낮은 대역폭의 양방향 tunnel을 만들 수 있다.
DNS는 웹보다 대역폭이 작고 overhead가 크지만 많은 네트워크에서 반드시 허용되어 은닉 통로로 악용된다.
왜 그런지 이해하기
Firewall은 port를 보고 'DNS 형식 트래픽'을 허용했지만 데이터의 의미까지 제한하지 않았다.
프로토콜은 payload 운반 수단이다. 정상 프로토콜 필드 안에도 공격자 데이터가 들어갈 수 있다.
내부 client가 외부 resolver에 직접 질의하지 못해도 내부 resolver를 재귀 중계로 이용해 attacker authoritative server까지 데이터가 도달할 수 있다.
따라서 egress filtering은 필요한 방어지만 port 하나만으로 data-loss prevention이 완성되지 않는다.
어떻게 방어하는가
-
DNS 강제 중앙화
내부 host는 승인된 internal resolver에만 질의하게 하고 외부 port 53 직접 접근을 막는다.
-
DNS logging/analytics
비정상적으로 긴·고엔트로피 subdomain, 많은 unique labels, 일정한 beaconing, 과도한 TXT query를 탐지한다.
-
Domain reputation/RPZ
새롭거나 의심스러운 domain과 알려진 C2 domain을 차단한다.
-
Payload-aware gateway
DNS protocol parsing, rate limit, 허용 record type 정책을 적용한다.
-
Endpoint security
감염 process가 데이터를 읽고 DNS query를 생성하는 근본 행위를 탐지한다.
문장을 하나씩 판별하기
첫 절 'port 53만 통과'는 firewall rule의 설명이다.
둘째 절은 그래서 DNS request만 가능하고 data exfiltration은 불가능하다고 결론 낸다.
하지만 DNS request 자체가 데이터를 실을 수 있으므로 결론이 성립하지 않는다.
반례인 DNS tunneling 하나로 Falsch다.
문제를 푸는 순서
1단계: port와 payload 의미가 동일한지 의심한다.
2단계: DNS qname에 임의 label을 넣을 수 있음을 떠올린다.
3단계: encoded-data.attacker-domain 형태의 질의를 그린다.
4단계: attacker authoritative server가 label을 수신한다고 설명한다.
5단계: data exfiltration 가능이므로 Falsch라고 답한다.
시험장에서는 이렇게 쓰기
최소 답안
Falsch.
Safe german
Falsch. Ein erlaubter Port 53 garantiert nicht, dass DNS nur für legitime Namensauflösung verwendet wird. Malware kann Daten in Subdomain-Labels oder andere DNS-Felder kodieren und über Anfragen an eine vom Angreifer kontrollierte autoritative Domain exfiltrieren; dies nennt man DNS-Tunneling beziehungsweise DNS-Exfiltration.
자주 틀리는 지점
Port 53이면 payload 내용도 운영체제가 정상 DNS로 강제한다고 생각하는 것.
DNS tunneling은 DNS response로만 가능하다고 생각하는 것. query name 자체로 외부 유출이 가능하다.
외부 public resolver 직접 접근을 막으면 완전히 해결된다고 단정하는 것. 내부 resolver가 공격자 authoritative domain으로 질의를 전달할 수 있다.
암호화된 데이터만 exfiltration이라고 생각하는 것. encoding과 encryption은 다르며 둘 다 운반 가능하다.
port 53을 전부 막는 것만 제안하는 것. 조직의 정상 DNS도 필요하므로 중앙 resolver·분석·정책이 현실적이다.
한 줄로 기억하기
문 53에 'DNS 전용'이라고 써 있어도 밀수품을 DNS 상자 안에 넣으면 지나갈 수 있다. Port는 문 번호이지 내용 보증서가 아니다.
스스로 확인하기
-
탈취 데이터가 주로 들어갈 수 있는 DNS query 부분은?
공격자 domain 앞의 subdomain labels/qname.
-
공격자가 왜 authoritative nameserver를 통제하는가?
최종 DNS query의 인코딩된 label을 직접 수신·기록하기 위해서다.
-
port 53 외부 직접 접근을 막고 내부 resolver만 허용하면 충분한가?
위험을 줄이지만 resolver가 공격자 domain으로 재귀 질의를 전달할 수 있어 분석·차단 정책도 필요하다.
설명의 근거
Gedächtnisprotokoll Computersystemsicherheit WS2025_26.md, Networking / Multiple Choice, 4-(e).
Vorlesung 06 Netzwerkgrundlagen — firewall와 port filtering.
Vorlesung 08 Domain Name System — DNS query 구조와 트래픽 특성.
예제로 확인하기
-
네트워크에서 누가 누구에게 무엇을 보내는가을 구체적인 순서로 보기
IP address가 아파트 건물 주소라면 port는 몇 호인지, protocol은 택배 봉투를 어떤 양식으로 쓰는지, router는 다음 물류 센터를 고르는 역할에 가깝다.
송신자와 수신자를 먼저 적는다.
출발지·목적지 IP와 port를 구분한다.
중간 장치가 내용을 읽는지 단순히 전달하는지 구분한다.
응답이 어느 방향으로 돌아오는지 그린다.
각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.
-
DNS와 resolver, cache를 처음부터 이해하기을 구체적인 순서로 보기
DNS는 이름으로 전화번호를 찾는 분산 전화번호부다. Resolver는 여러 전화번호부 기관에 대신 문의하는 안내원이고 cache는 최근 찾아본 번호를 메모해 두는 수첩이다.
사용자 stub resolver가 recursive resolver에 이름을 묻는다.
Cache에 유효한 답이 있으면 즉시 사용한다.
없으면 root, TLD, authoritative nameserver 방향으로 위임을 따라간다.
받은 record를 TTL 동안 저장한다.
각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.
-
Firewall, port, protocol, data exfiltration을 구체적인 순서로 보기
경비원이 ‘53번 출입문을 쓰는 사람은 모두 전화번호부 업무’라고 믿으면, 공격자는 서류를 전화번호부 상자처럼 꾸며 그 문으로 가져갈 수 있다.
Firewall가 확인하는 header와 확인하지 않는 payload를 구분한다.
공격자가 데이터를 작은 문자열로 인코딩한다.
그 문자열을 공격자가 통제하는 domain의 subdomain query에 넣는다.
외부 authoritative server의 log에서 데이터를 복원한다.
각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.
이 문제가 어려운 이유
짧은 문제 문장 ‘Firewall가 outgoing ports 중 Port 53만 허용하면 DNS-Anfragen만 통과하므로 data exfiltration은 불가능하다. Wahr/Falsch?’ 안에 정의, 조건, 처리 순서가 압축되어 있습니다. 아래 예시에서는 이를 한 단계씩 펼쳐 확인합니다.
AI 구두시험용 프롬프트
한 문항만 풀어라. 먼저 정답을 열지 말고 90초 안에 답안을 말한 뒤, css-ws2025-26-network-mc-005의 채점 프레임으로 스스로 채점하라. 문제: Firewall가 outgoing ports 중 Port 53만 허용하면 DNS-Anfragen만 통과하므로 data exfiltration은 불가능하다. Wahr/Falsch?
학습 기록