
안녕하세요,, 이제 더이상의 연휴는 없고,, 계속해서 킵 고잉 온입니다...........
그럼 모닝 30 레츠고,,,
1. 왜 이걸 하는지 찾아봅니다
1.1 서버에는 마우스가 없습니다. 보안 담당자는 서버에서 로그 파일을 어떻게 옮기고 백업할까요?
> 파일을 옮기거나 백업하는 명령어
명령어기능사용 목적
| cp | 파일 복사 | 원본을 유지하면서 로그 백업 |
|---|---|---|
| mv | 파일 이동 또는 이름 변경 | 로그 파일 정리 |
| scp | 다른 서버로 안전하게 파일 복사 | 원격 백업 |
| tar | 여러 파일을 하나로 묶어 압축 | 로그 보관 |
① cp — 로그 파일 복사
cp server.log server_backup.log
원본 server.log는 유지되고, server_backup.log라는 복사본이 생성됩니다.
② mv — 로그 파일 이동
mv server.log ./backup/
server.log를 backup 디렉터리로 이동합니다. 이때 backup 디렉터리는 미리 존재해야 합니다.
③ scp — 다른 서버에 백업
scp server.log user@192.168.1.100:/home/user/backup/
SSH를 이용해 로그 파일을 다른 서버로 안전하게 복사합니다.
④ tar — 여러 로그 파일 압축
tar -czf logs_backup.tar.gz *.log
그리구
#하고 싶은 일쓰는 명령나오면 성공
| ① | a.log 를 복사해 b.log 를 만든다 | cp | a.log · b.log 둘 다 보인다 |
|---|---|---|---|
| ② | b.log 의 이름을 c.log 로 바꾼다 | mv | b.log 는 없고 c.log 가 보인다 |
| ③ | backup 폴더를 만들고 c.log 를 그 안으로 옮긴다 | mkdir · mv | ls backup 에 c.log 가 보인다 |
| ④ | backup 폴더를 안의 파일까지 모두 복사해 backup2 를 만든다 | cp + 옵션 하나 | backup2 안에도 c.log 가 있다 |
| ⑤ | a.log 를 backup 안으로 복사하는데, 같은 이름이 있으면 묻게 한다 | cp + 옵션 하나 | 두 번째 실행 때 cp: overwrite 'backup/a.log'? 처럼 덮어쓸지 묻는다 — n 을 치고 Enter |
| ⑥ | cat 으로 backup/a.log 의 내용을 본다 | cat | 로그 한 줄이 보인다 |
| ⑦ | 빈 파일 memo.txt 를 지운다 | rm | memo.txt 가 안 보인다 |
| ⑧ | backup2 폴더를 안의 파일까지 모두 지운다 | rm + 옵션 하나 | backup2 가 안 보인다 |
이 8가지를 해봤는데 리눅스 명령어 재활에도 좋습니다... 생각보다 생각이 안나요..
오늘의 순서
| 교시 | 무엇 |
|---|---|
| 2교시 | DNS 가 필요한 이유 · nslookup 첫 사용 |
| 3교시 | DNS 계층 — 권한 있는 네임서버 |
| 4교시 | DNS 레코드 · TTL · 캐시 |
| 5교시 | 의심 도메인의 특징 |
| 6교시 | 점수 규칙 · 오탐 · 미탐 |
| 7교시 | 3일 차 DNS 분석서 완성 |
2교시 — DNS 가 필요한 이유 · nslookup 첫 사용
왜 필요한가
사람은 naver.com 같은 이름을 기억하지만, 컴퓨터는 IP 주소로만 보낼 수 있습니다. 그 사이를 잇는 것이 DNS 입니다.
악성 코드도 공격자의 서버를 이름으로 찾아갑니다. 그래서 DNS 질의 기록은 관제가 가장 먼저 보는 로그 중 하나입니다.
「인터넷이 안 돼요」의 상당수가 DNS 문제입니다. 12일 4-5 에서 「숫자 주소는 되는데 이름만 안 된다」면 7계층(DNS) 문제라고 했습니다.
2.1 URL 과 DNS 가 묻는 것 · 질문이 오가는 경로
여기 나오는 말
도메인 이름 (domain name) (도메인 네임)
사람이 외우는 인터넷 이름
예: example.com
URL (유알엘)
웹 주소 전체
DNS 는 그 가운데 도메인 이름만 묻는다
예: https://example.com/news
DNS (Domain Name System) (디엔에스)
이름을 IP 주소로 바꿔 주는 체계
재귀 리졸버 (recursive resolver) (리커시브 리졸버)
내 PC 대신 여기저기 물어 답을 찾아 주는 DNS 서버
예: 학원 · 통신사 DNS, 구글 8.8.8.8
nslookup (엔에스룩업)
DNS 서버에 이름을 직접 물어보는 명령
https://example.com/news/today 를 주소창에 치면:
| 부분 | 이름 | DNS 가 묻나 |
|---|---|---|
https:// |
방식(scheme) — 암호화한 웹 | 아니요 |
example.com |
도메인 이름 | 예 — 이것만 묻는다 |
/news/today |
경로(path) — 서버 안의 어느 페이지 | 아니요 — IP 를 알아낸 뒤 웹 서버에 묻는다 |
내 PC ──「example.com 의 IP 는?」──▶ DNS 서버(재귀 리졸버) ──…──▶ 여러 네임서버
◀──「104.20.23.154 입니다」──
내 PC 가 어느 리졸버에 묻는지는 ipconfig //all 의 DNS 서버 줄에 있습니다(Git Bash 에서는 / 를 두 번 칩니다).
회사 DNS 서버는 위험한 도메인에 대한 질의를 막고, 어느 PC 가 어떤 이름을 물었는지 기록을 남깁니다.
PC 는 DNS 서버가 준 IP 로 접속합니다. DNS 서버가 틀린 IP 를 답하면 PC 는 그 틀린 IP 로 접속합니다.
명령 상자 · nslookup 결과 읽기
nslookup example.com
서버: kns.kornet.net
Address: 168.126.63.1
권한 없는 응답:
이름: example.com
Addresses: 2606:4700:10::ac42:93f3
2606:4700:10::6814:179a
172.66.147.243
104.20.23.154
| 줄 | 뜻 |
|---|---|
| 서버 · Address (위 두 줄) | 내가 물어본 DNS 서버(리졸버)의 이름 · 주소 |
| 권한 없는 응답 | 권한 있는 네임서버가 아니라 리졸버가 대신 조회해 받은 답이라는 표시(3교시 3.2) |
| 이름 | 물어본 이름 |
| Addresses | 답. : 가 든 것은 IPv6(새 방식의 긴 주소), 숫자 네 개를 점으로 이은 것이 IPv4 |
⚠ 위 두 줄의 Address 는 물어본 DNS 서버의 주소입니다. example.com 의 주소는 아래 Addresses 입니다. 가장 많이 헷갈리는 곳입니다.
2.2 이름을 못 찾을 때 — NXDOMAIN
여기 나오는 말
NXDOMAIN (엔엑스도메인)
「그런 이름은 없다」는 DNS 의 답
예: 화면에 Non-existent domain (맥북은 NXDOMAIN)
socket (소켓)
파이썬에 들어 있는 네트워크 도구 모음
🐍 문법 상자 · import socket · socket.gethostbyname()
import socket # import 는 파이썬에 들어 있는 도구 모음(모듈)을 불러온다. 네트워크 도구 모음 socket 을 불러온다
ip = socket.gethostbyname("example.com") # 모듈이름.함수이름() 으로 그 모듈 안의 함수를 쓴다. gethostbyname() 은 내 PC 의 DNS 서버에 이름을 묻고 IPv4 주소 하나를 글자로 리턴한다. 그 주소를 ip 에 담는다
print(ip) # 리턴받은 IPv4 주소를 출력한다
print(type(ip)) # type() 은 값의 종류를 리턴한다. ip 가 글자(str)인지 확인해 출력한다
104.20.23.154
<class 'str'>
| 쓰는 것 | 뜻 |
|---|---|
import socket |
파일 맨 위에서 한 번 불러온다. 빠뜨리면 NameError: name 'socket' is not defined |
socket.gethostbyname("이름") |
이름을 DNS 에 묻고 IPv4 하나를 글자로 리턴한다. nslookup 과 달리 PC 의 DNS 캐시를 거친다 |
| 없는 이름을 물으면 | socket.gaierror 에러가 나고 프로그램이 그 줄에서 멈춘다 |
2교시 한눈에
| 하려는 일 | 명령 |
|---|---|
| 이름 → IP | nslookup 이름 — 아래쪽 Addresses |
| 다른 DNS 서버에 묻기 | nslookup 이름 8.8.8.8 |
| 내 PC 의 DNS 서버 | ipconfig //all 의 DNS 서버 |
| 없는 이름 | Non-existent domain (NXDOMAIN) |
3교시 — DNS 계층 · 권한 있는 네임서버
왜 필요한가
세상의 모든 이름을 한 서버가 다 알 수는 없습니다. 도메인 이름은 점으로 나뉜 계층마다 관리하는 네임서버가 따로 있습니다.
리졸버는 상위 계층부터 차례로 물어 권한 있는 네임서버(그 도메인의 레코드를 직접 관리하는 서버)를 찾아갑니다.
공격자가 권한 있는 네임서버 정보를 바꾸면 도메인 전체를 가로챌 수 있습니다. 그래서 NS 레코드를 읽을 줄 알아야 합니다.
3.1 이름은 오른쪽부터 읽는다
여기 나오는 말
루트 (root)
DNS 계층의 최상위
도메인 이름 끝에 생략된 점 .
TLD (Top-Level Domain) (티엘디)
도메인 이름의 마지막 레이블(마지막 점 뒤의 부분)
예: com · kr
레이블 (label) (레이블)
도메인 이름을 점으로 나눈 각 부분
예: www.example.com 의 레이블은 www · example · com
네임서버 (name server)
도메인의 레코드를 저장하고 질의에 답하는 DNS 서버
권한 있는 네임서버 (authoritative) (어소리테이티브)
그 도메인의 레코드를 직접 관리하고 답하는 네임서버
예: hera.ns.cloudflare.com
NS 레코드 (엔에스 레코드)
그 도메인의 권한 있는 네임서버를 적은 레코드
한 도메인에 보통 둘 이상 등록한다
nslookup -type=ns 이름
www.example.com 은 끝의 점이 생략된 www.example.com. 입니다. 오른쪽이 상위 계층입니다.
| 계층 | 이 이름에서 | 관리하는 네임서버 |
|---|---|---|
| 루트 | . (마지막 점) |
루트 네임서버 — 세계에 13개 이름 |
| TLD | com |
.com 을 맡은 네임서버 — .kr · .net 도 각각 |
| 2단계 도메인 | example.com |
권한 있는 네임서버 |
| 호스트 이름 | www.example.com |
위 권한 있는 네임서버가 함께 답한다 |
TLD 의 권한 있는 네임서버도 같은 방법으로 봅니다.
nslookup -type=ns kr.
끝의 점은 루트를 나타냅니다. 점이 있어도 없어도 같은 결과입니다.
.kr 처럼 국가 코드 TLD 는 계층이 하나 더 있습니다. mail.google.co.kr 은 kr → co.kr(회사용) → google.co.kr → mail.google.co.kr 순서입니다.
리졸버의 질문 순서
리졸버 ─ ① 「com 의 네임서버는?」 ─▶ 루트
─▶ 「com 의 네임서버는 ○○」
─ ② 「example.com 의 네임서버는?」 ─▶ com 네임서버
─▶ 「hera.ns.cloudflare.com 이야」
─ ③ 「www.example.com 의 IP 는?」 ─▶ hera.ns.cloudflare.com
─▶ 「104.20.23.154」 ← 권한 있는 응답
🐍 문법 상자 · 끝에서부터 세기 [-1] · 잘라 꺼내기 [-2:]
parts = ["www", "example", "com"]
print(parts[0])
print(parts[-1])
print(parts[-2])
print(parts[-2:])
www
com
example
['example', 'com']
| 쓰는 것 | 뜻 | 결과의 종류 |
|---|---|---|
리스트[-1] |
마지막 요소 하나 — 도메인 이름이면 TLD | 글자 하나 |
리스트[-2] |
끝에서 둘째 칸 하나 | 글자 하나 |
리스트[-2:] |
끝에서 둘째 칸부터 끝까지 | 리스트 |
⚠ [-2] 와 [-2:] 는 콜론 하나 차이입니다. 콜론이 있으면 요소 하나가 아니라 리스트가 나옵니다.
🐍 문법 상자 · ".".join() 으로 다시 잇기 · reversed() 로 뒤집기
parts = ["www", "example", "com"]
print(".".join(parts[-2:]))
print(reversed(parts))
print(list(reversed(parts)))
print(parts)
example.com
<list_reverseiterator object at 0x…>
['com', 'example', 'www']
['www', 'example', 'com']
| 쓰는 것 | 뜻 |
|---|---|
".".join(리스트) |
요소 사이에 점을 넣어 글자 하나로 잇는다. split(".") 의 반대 |
reversed(리스트) |
뒤에서부터 꺼낸다. 내용을 보려면 list() 로 감싼다 |
3.2 권한 있는 응답과 권한 없는 응답
여기 나오는 말
권한 없는 응답 (Non-authoritative answer) (논 어소리테이티브)
리졸버가 권한 있는 네임서버에 대신 조회해 받은 답이라는 표시
평소 nslookup 하면 거의 항상 보인다
| 구분 | 권한 있는 응답 | 권한 없는 응답 |
|---|---|---|
| 누가 답했나 | 권한 있는 네임서버가 직접 | 리졸버가 대신 조회해 받은 답(또는 캐시에 저장해 둔 답) |
| 언제 보나 | 권한 있는 네임서버에 직접 물을 때(3-2) | 평소 nslookup 할 때 거의 항상 |
4교시 — DNS 레코드 · TTL · 캐시
왜 필요한가
DNS 는 IP 만 알려 주지 않습니다. 메일은 어느 서버가 받나 · 이 이름의 정식 이름(canonical name)은 무엇인가 같은 정보도 레코드로 담고 있습니다.
답은 매번 처음부터 찾지 않고 잠시 저장(캐시) 해 두고 씁니다. 얼마나 오래 쓸지는 TTL 이 정합니다.
피싱 · 악성 코드 분석에서 「이 도메인의 메일 서버는? 별칭은? 언제 바뀌었나?」를 묻습니다. 레코드를 읽을 줄 알아야 합니다.
4.1 자주 보는 레코드
여기 나오는 말
레코드 (record)
DNS 서버에 적힌 기록 한 줄
이름 하나에 값 하나
A 레코드 (에이 레코드)
이름 → IPv4 주소
CNAME (canonical name) (씨네임)
별칭(alias) 레코드 — 이 이름의 정식 이름(canonical name)을 가리킨다
MX (mail exchanger) (엠엑스)
그 도메인의 메일을 받을 서버
메일을 주고받는 회사 도메인은 보통 MX 가 있다. 메일을 받지 않는 도메인은 -type=mx 결과에 mail exchanger 줄이 없다.
CDN (Content Delivery Network) (시디엔)
콘텐츠를 여러 지역의 서버에 복제해 두고 사용자와 가까운 서버에서 전송하는 서비스
큰 사이트는 CNAME 레코드로 자기 이름이 CDN 의 이름을 가리키게 설정한다.
| 레코드 | 담는 것 | 예 (실측 10/4) | nslookup 옵션 |
|---|---|---|---|
| A | IPv4 주소 | example.com → 104.20.23.154 |
기본 |
| CNAME | 별칭 — 정식 이름을 가리킴 | www.naver.com → www.naver.com.nheos.com |
-type=cname |
| MX | 메일을 받을 서버의 이름 — 그 IP 는 이름의 A 레코드로 다시 묻는다 | google.com → smtp.google.com (우선순위 10) |
-type=mx |
| NS | 권한 있는 네임서버 | example.com → hera.ns.cloudflare.com |
-type=ns |
이 문제에 나오는 말
MX preference (엠엑스 프리퍼런스)
메일 서버의 우선순위
숫자가 작을수록 먼저 쓴다
Aliases (에일리어시스)
nslookup 결과에서 거친 별칭들
4.2 TTL 과 캐시
여기 나오는 말
캐시 (cache)
받은 답을 정해진 시간 동안 저장해 두고 다시 쓰는 것
TTL (DNS 에서) (티티엘)
답을 캐시에 몇 초 동안 둘지 — 권한 있는 네임서버가 정한다
10/12 ping 의 TTL 과 이름만 같다
| 항목 | 뜻 |
|---|---|
| TTL | 이 답을 몇 초 동안 저장해 써도 되는지. 권한 있는 네임서버가 정한다 |
| 캐시 | 리졸버와 내 PC 가 TTL 동안 답을 저장해 두는 곳 — 빠르고 DNS 서버 부담이 줄어든다 |
| 그래서 생기는 일 | 권한 있는 네임서버에서 IP 를 바꿔도 TTL 이 지날 때까지는 옛 IP 로 간다 |
내 PC 의 캐시는 다음 명령으로 봅니다.
ipconfig //displaydns
다음 명령으로 비웁니다.
ipconfig //flushdns
⚠ nslookup 은 PC 의 캐시를 거치지 않고 DNS 서버에 바로 묻습니다. 그래서 nslookup 으로는 캐시가 채워지지 않습니다.
캐시를 채울 때는 ping · 브라우저처럼 보통 프로그램이 쓰는 방식으로 접속합니다.
🐍 문법 상자 · < 로 만료 시각과 비교하기 — 같을 때를 조심
ttl = 300
saved_at = 0
print(saved_at + ttl)
print(299 < saved_at + ttl)
print(300 < saved_at + ttl)
print(300 <= saved_at + ttl)
300
True
False
True
| 쓰는 것 | 뜻 |
|---|---|
a < b |
a 가 b 보다 작을 때만 True. 같으면 False |
a <= b |
작거나 같으면 True |
| 캐시에서는 | 지금 < 만료 시각 이면 캐시를 쓴다. 만료 시각이 되는 순간 새로 묻는다 |
오늘 쓰는 DNS 로그
| # | 물어본 이름 | 답(rcode) | 실제 |
|---|---|---|---|
| 1 | www.naver.com |
NOERROR | 정상 |
| 2 | mail.google.com |
NOERROR | 정상 |
| 3 | update.microsoft.com |
NOERROR | 정상 |
| 4 | e6030.a.akamaiedge.net |
NOERROR | 정상 — CDN 이름 |
| 5 | cdn.jsdelivr.net |
NOERROR | 정상 |
| 6 | xn--3e0b707e.kr |
NOERROR | 정상 — 한글 도메인을 DNS 용 영문 문자로 바꾼 퓨니코드(Punycode) 이름 |
| 7 | kxq3vz9a.top |
NXDOMAIN | 의심 |
| 8 | p0w8rk2mzq.xyz |
NXDOMAIN | 의심 |
| 9 | qwrtpzkx7v.com |
NOERROR | 의심 |
| 10 | zzx9q2lk.top |
NXDOMAIN | 의심 |
| 11 | bnk-secure-login.xyz |
NOERROR | 의심 — 은행 사칭 |
| 12 | www.example.com |
NOERROR | 정상 |
rcode(알코드 · response code) — DNS 답의 결과 코드.
NOERROR = 답이 있었다NXDOMAIN = 그런 이름이 없다
「실제」 칸은 나중에 규칙이 맞았는지 채점할 때 쓰는 실제 분류입니다. 규칙은 이 칸을 보지 않습니다.
5교시 — 의심 도메인의 특징
왜 필요한가
악성 코드가 고정된 도메인 이름 하나만 쓰면 그 이름을 막으면 끝납니다.
그래서 공격자는 이름을 매일 수백 개씩 자동으로 만들어 그중 하나만 실제로 등록해 둡니다. 이것이 DGA 입니다.
감염된 PC 는 그 이름들을 차례로 물어봅니다. 대부분 등록되지 않은 이름이라 NXDOMAIN 이 많이 나옵니다.
또 하나는 사칭입니다. naver.com 을 nav3r.com 처럼 비슷하게 만들어 사람을 속입니다.
5.1 의심 도메인을 가르는 지표
여기 나오는 말
DGA (Domain Generation Algorithm) (디지에이)
악성 코드가 도메인 이름을 정해진 계산식으로 자동 생성하는 방식
예: kxq3vz9a.top
C2 서버 (Command and Control) (씨투 서버)
공격자가 감염된 PC 에 명령을 보내는 서버
DGA 로 만든 이름 가운데 등록된 하나가 이 서버의 IP 를 가리킨다.
| 특징 | 정상 도메인 | DGA 도메인 | 왜 |
|---|---|---|---|
| 레이블 길이 | 짧고 뜻이 있다 — naver | 길고 뜻이 없다 — p0w8rk2mzq | 계산식이 만든 문자열 |
| 숫자 | 거의 없다 | 여러 개 섞여 있다 | 무작위로 고르므로 숫자도 섞인다 |
| 모음(a · e · i · o · u) | 사람이 읽을 수 있게 섞여 있다 | 거의 없다 — kxq3vz9a | 발음할 수 없는 이름 |
| TLD | .com · .net · .kr |
등록비가 싼 .top · .xyz · .tk 가 많다 |
한꺼번에 싸게 등록 |
| DNS 응답 | NOERROR | NXDOMAIN 이 많다 | 대부분 등록하지 않은 이름 |
어느 레이블을 볼까:
e6030.a.akamaiedge.net 처럼 정상 서비스도 맨 앞 레이블은 무작위로 보입니다.
그래서 오늘은 TLD 바로 앞 레이블(2단계 도메인 · SLD — 회사나 서비스가 등록한 이름 부분 — akamaiedge · naver · kxq3vz9a)을 봅니다.
5.2 사칭 도메인과 NXDOMAIN 이 많은 PC
여기 나오는 말
타이포스쿼팅 (typosquatting) (타이포스쿼팅)
진짜 도메인과 철자가 비슷한 도메인을 등록해 사람을 속이는 사칭
예: nav3r.com (e 를 3 으로), g00gle.com (o 를 0 으로)
피싱 (phishing) (피싱)
가짜 사이트 · 메일로 사람을 속여 계정 · 정보를 빼내는 공격
| 의심 신호 | 무엇을 보나 | 예 |
|---|---|---|
| 사칭 ① 철자 바꾸기 | 진짜 도메인과 한두 글자만 다른가 | nav3r.com · g00gle.com |
| 사칭 ② 낱말 붙이기 | 은행 · 로그인 같은 낱말을 붙여 진짜처럼 보이게 했나 | bnk-secure-login.xyz |
| NXDOMAIN 이 많은 PC | 한 PC 가 짧은 시간에 NXDOMAIN 을 몇 번 받았나 | DGA 이름을 차례로 묻는 감염 PC |
사칭 이름이 DGA 지표에 해당되는지는 6교시에서 점수로 확인합니다.
한 번의 NXDOMAIN 은 사람의 오타일 수 있습니다. 같은 PC 에서 여러 번이 신호입니다.
🐍 문법 상자 · 딕셔너리.get(키, 0) + 1
nx = {}
for pc in ["10.20.0.42", "10.20.0.42", "10.20.0.33"]:
nx[pc] = nx.get(pc, 0) + 1
print(nx)
{'10.20.0.42': 2, '10.20.0.33': 1}
| 쓰는 것 | 뜻 |
|---|---|
nx.get(pc, 0) |
pc 키가 있으면 그 값, 없으면 0 을 리턴한다 — 처음 보는 키도 에러 없이 센다 |
nx[pc] = … + 1 |
그 키의 값을 1 늘려 다시 담는다 |
⚠ nx[pc] + 1 처럼 바로 꺼내면 처음 보는 키에서 KeyError 가 납니다.
6교시 — 점수 규칙 · 오탐 · 미탐
왜 필요한가
지표 하나로 판정하면 틀리기 쉽습니다. 여러 지표에 점수를 주고 합이 기준을 넘으면 의심으로 봅니다.
어떤 규칙도 완벽하지 않습니다.
정상을 의심으로 잘못 고르는 것(오탐)과 의심을 탐지하지 못하는 것(미탐)을 숫자로 재야 합니다.
관제 실무의 탐지 룰도 이렇게 만들고, 재고, 고칩니다.
6.1 점수 규칙
여기 나오는 말
임계값 (threshold) (스레숄드)
점수 합이 이 값 이상이면 의심으로 판정하는 기준
예: 3
오늘은 5.1 표의 지표 가운데 세 가지로 점수를 매깁니다.
| 규칙 | 점수 |
|---|---|
| ① TLD 바로 앞 레이블이 10글자 이상 | +1 |
| ② TLD 가 top · xyz · tk | +1 |
| ③ DNS 응답이 NXDOMAIN | +2 — 점수가 가장 큰 지표 |
합이 임계값 3 이상이면 「의심」
6.2 채점 — 오탐 · 미탐
여기 나오는 말
오탐 (false positive) (폴스 포지티브)
실제로는 정상인데 규칙이 「의심」으로 잘못 고른 것
미탐 (false negative) (폴스 네거티브)
실제로는 의심인데 규칙이 「정상」으로 잘못 판정한 것
예외 목록 (allowlist) (얼라우리스트)
근거가 분명한 정상 도메인을 규칙에서 빼 주는 목록
| 실제 정상 | 실제 의심 | |
|---|---|---|
| 규칙이 「의심」 | 오탐 | 맞힘 |
| 규칙이 「정상」 | 맞음 | 미탐 |
7교시 — 3일 차 DNS 분석서 완성
왜 필요한가
규칙을 만든 사람만 아는 규칙은 쓸 수 없습니다.
무엇을 · 왜 · 얼마나 맞았나를 문서로 남겨야 다른 사람이 쓰고 고칩니다.
강의계획서의 평가 기준이 바로 「합리적 근거」와 「판단 기준 문서화」입니다.
처음 보는 로그와 내가 AI 와 함께 만든 로그에 규칙을 적용해 한계를 확인합니다.
여기 나오는 말
판정표
도메인 이름마다 점수 · 판정 · 실제를 한 줄씩 적은 표
위협 인텔리전스 (threat intelligence) (스레트 인텔리전스)
알려진 악성 도메인 · IP 를 모아 둔 정보와 조회 사이트
.invalid (닷 인밸리드)
존재하지 않도록 예약해 둔 TLD. 시험용으로 쓴다
오늘은 여기까지... 오늘 약속이 있어요 그래서 좀 설레네요
그럼 아됴.
'공부 > SKT ALEPH' 카테고리의 다른 글
| 네트워크·ZT(Zero Trust) 운영 기초 - 2 (0) | 2026.10.13 |
|---|---|
| 네트워크·ZT(Zero Trust) 운영 기초 - 1 (0) | 2026.10.12 |
| AI·자동화 기초(에이전트·API·스크립팅) - 9 (0) | 2026.10.08 |
| AI·자동화 기초(에이전트·API·스크립팅) - 8 (0) | 2026.10.07 |
| AI·자동화 기초(에이전트·API·스크립팅) - 7 (0) | 2026.10.06 |


