SEC-FIELD/ 합법적 보안 실무 백서
DEFENSIVE SECURITY FIELD MANUAL — REV. 2026.07

공격 코드가 아니라, 방어 능력을 백서로 만들었다.

승인되지 않은 시스템 침투나 익스플로잇 코드는 다루지 않습니다. 대신 실제 개발자와 일반 사용자가 오늘 당장 적용해서 돈을 지키고, 계정을 지키고, 커리어를 만들 수 있는 합법적 보안 지식만 엄선했습니다. 기초 이론부터 실행 가능한 명령어·코드까지 단계별로 정리했습니다.

범위 7개 도메인
난이도 기초 → 실무
코드 예제 전부 복사 가능
법적 검토 국내 정보통신망법 기준
self-check.sh — 내 계정/기기 상태 점검

    
SEC-00

이 백서의 원칙

"해킹"이라는 단어는 침입 기술이 아니라 시스템이 어떻게 뚫리는지 이해하고, 그 이해로 스스로를 지키는 기술을 뜻합니다. 이 백서는 다음 4가지 원칙 위에서만 작동합니다.

RULE

승인(Authorization) 없는 대상은 다루지 않는다

본인 소유이거나 서면으로 테스트 승인을 받은 시스템에만 실습 명령어를 실행합니다. 타인의 계정·서버·네트워크에 대한 무단 접근은 형법 및 정보통신망법 위반입니다.

RULE

공격 코드가 아니라 진단·방어 코드만 싣는다

익스플로잇, 페이로드 생성기, 멀웨어 샘플은 포함하지 않습니다. 표준 오픈소스 도구의 "정상 사용법"만 다룹니다.

RULE

모든 기법에 "왜 돈이 되거나 절약되는지" 명시

추상적 이론이 아니라 실제 피해 예방액, 채용/수익 경로와 연결된 지식만 다룹니다.

RULE

재현 가능한 코드만 싣는다

모든 코드 블록은 그대로 복사해 실행 가능하도록 검증했습니다. 예제는 표준 라이브러리/공식 CLI 기준입니다.

SEC-01

보안 기초 — 네트워크·암호화·OS

모든 방어 기술은 이 3가지 기초 위에 있습니다. 개념을 정확히 알아야 뒤에 나오는 도구 사용법이 "왜 그렇게 하는지" 이해됩니다.

① TCP/IP·포트의 의미

모든 네트워크 공격/방어는 결국 "어떤 포트가 열려 있고, 무슨 서비스가 응답하는가"에서 시작합니다. 자신의 PC/서버에 불필요하게 열린 포트가 곧 공격 표면(attack surface)입니다.

내 PC의 열린 포트 확인 (Windows/macOS/Linux)
# Windows (PowerShell)
netstat -ano | findstr LISTENING

# macOS / Linux
lsof -i -P -n | grep LISTEN

# 결과에서 낯선 포트가 LISTENING 상태면
# 해당 PID를 작업관리자/ps에서 역추적해 프로세스를 확인한다

② 대칭키 vs 비대칭키 암호화

HTTPS, SSH, 비밀번호 관리자, 전자서명 전부 이 두 개념의 조합입니다. 대칭키(AES)는 빠르지만 키 교환이 문제이고, 비대칭키(RSA/ECC)는 느리지만 키 교환 없이 신원 증명이 가능합니다.

SSH 키 페어 생성 (비대칭키 실습)
ssh-keygen -t ed25519 -C "my-secure-key" -f ~/.ssh/id_ed25519

# 개인키(id_ed25519)는 절대 공유 금지
# 공개키(id_ed25519.pub)만 서버 ~/.ssh/authorized_keys 에 등록
cat ~/.ssh/id_ed25519.pub

③ 해시(Hash)와 무결성 검증

다운로드한 파일이 변조되지 않았는지 확인하는 가장 기본적인 방어 기술입니다. 소프트웨어 배포처가 공개한 SHA-256 값과 직접 계산한 값을 비교합니다.

파일 무결성 검증
# macOS / Linux
shasum -a 256 downloaded-installer.dmg

# Windows (PowerShell)
Get-FileHash .\installer.exe -Algorithm SHA256

# 공식 홈페이지에 게시된 해시값과 한 글자라도 다르면
# 실행하지 말고 즉시 삭제

④ 최소 권한 원칙 (Least Privilege)

일상 계정을 관리자 권한으로 쓰지 않는 것만으로 랜섬웨어·악성코드 피해 범위가 크게 줄어듭니다. 개발 환경도 동일합니다.

  • OS 계정: 평소엔 표준 사용자 계정, 설치 시에만 관리자 승격
  • 클라우드 IAM: 루트 계정 대신 최소 권한 역할(Role) 사용
  • API 키: 읽기 전용 키와 쓰기 키를 분리 발급
SEC-02

계정·개인정보 보호

계정 탈취는 개인이 겪는 사이버 피해의 절대다수를 차지합니다. 아래 4가지만 제대로 해도 계정 탈취 확률이 급격히 낮아집니다.

난이도
효과피해 예방 高

비밀번호 관리자 + 엔트로피

같은 비밀번호 재사용이 계정 탈취의 1위 원인입니다. 비밀번호 관리자(Bitwarden, 1Password 등)로 사이트마다 다른 고엔트로피 비밀번호를 자동 생성·저장합니다.

비밀번호 엔트로피 직접 계산 (JS)
function entropyBits(pw) {
  let pool = 0;
  if (/[a-z]/.test(pw)) pool += 26;
  if (/[A-Z]/.test(pw)) pool += 26;
  if (/[0-9]/.test(pw)) pool += 10;
  if (/[^a-zA-Z0-9]/.test(pw)) pool += 32;
  return Math.round(pw.length * Math.log2(pool));
}
// 60비트 이상 권장, 80비트 이상이면 안전
console.log(entropyBits("Tr0ub4dor&3xample!")); // → 약 105
난이도
효과피해 예방 高

내 비밀번호가 유출됐는지 확인 (합법 API)

Have I Been Pwned은 실제 유출 데이터베이스를 k-anonymity 방식(해시 앞 5자리만 서버로 전송)으로 안전하게 조회할 수 있는 공개 API입니다. 비밀번호 원문은 절대 서버로 전송되지 않습니다.

k-anonymity 방식 유출 확인 (curl)
# 1) 비밀번호를 SHA-1 해시로 변환
echo -n "내비밀번호" | shasum -a 1
# → 예: 5BAA6...1A2B3C (40자)

# 2) 앞 5자리만 API에 전송 (원문/전체해시 전송 안 함)
curl https://api.pwnedpasswords.com/range/5BAA6

# 3) 응답 목록에서 나머지 35자리가 일치하면 유출된 것 → 즉시 변경
난이도
효과계정탈취 방어 高

TOTP 2단계 인증 원리

구글 OTP/Authy 같은 앱은 "공유 비밀키 + 현재 시각"을 HMAC-SHA1로 조합해 30초마다 바뀌는 6자리 숫자를 만듭니다. SMS 인증보다 심(SIM) 스와핑에 안전합니다.

  • 우선순위: 하드웨어 보안키(FIDO2) > TOTP 앱 > SMS
  • 백업 코드는 오프라인(종이/금고)에 별도 보관
  • 이메일·금융·클라우드 콘솔부터 우선 적용
난이도
효과개인정보 노출 축소

내가 어떤 서비스에 노출됐는지 감사(Audit)

이메일 주소로 가입된 서비스가 통제 밖에서 늘어날수록 공격 표면이 커집니다. 정기적으로 사용 안 하는 계정을 정리합니다.

Gmail 기준 가입 서비스 트래킹 (검색 연산자)
// Gmail 검색창에 입력
subject:(welcome OR "가입을 환영" OR verify) older_than:1y

// 결과로 나온 오래된 미사용 서비스는 탈퇴 후
// 개인정보보호위원회 '개인정보 파기요청' 절차로 삭제 요청 가능
SEC-03

금전 피해 방어 — 피싱·보이스피싱·스캠

국내 사이버 금융범죄 피해의 대다수는 첨단 해킹이 아니라 사회공학(Social Engineering)으로 발생합니다. 기술보다 판단 절차가 더 중요합니다.

즉시 적용 규칙

"지금 당장 송금/설치/인증번호 불러달라"는 요청은 100% 스캠 패턴입니다. 검찰·경찰·금융감독원·은행은 절대 전화로 계좌 이체나 앱 설치를 요구하지 않습니다. 일단 끊고, 대표번호로 직접 재확인하세요.

피싱 URL 판별 휴리스틱

사람 눈으로는 속기 쉬운 유사 도메인(예: paypaI.com — L 대신 대문자 I)을 코드로 자동 점검할 수 있습니다.

도메인 유사도/IDN 스푸핑 간이 체크 (JS)
function suspiciousDomain(url) {
  const u = new URL(url);
  const flags = [];
  if (/xn--/.test(u.hostname)) flags.push("IDN 퓨니코드 변환 도메인");
  if ((u.hostname.match(/-/g)||[]).length >= 3) flags.push("하이픈 과다");
  if (/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/.test(u.hostname)) flags.push("IP 주소 직접 사용");
  if (u.protocol !== "https:") flags.push("HTTPS 아님");
  return flags;
}
// 사용: suspiciousDomain("https://xn--pypal-4ve.com/login")

SSL 인증서·발급기관 직접 확인

은행/쇼핑몰 사칭 사이트인지 브라우저 클릭 몇 번으로 확인 가능합니다. 정식 기관은 EV/OV 인증서를 정상 발급받습니다.

인증서 발급 정보 조회 (openssl)
echo | openssl s_client -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -issuer -subject -dates

# issuer가 알려진 CA(DigiCert, Let's Encrypt 등)가 아니거나
# 발급일이 1~2일 전이면 급조된 피싱 사이트일 가능성 높음

랜섬웨어 대비 3-2-1 백업

랜섬웨어의 유일한 확실한 대응은 예방(백업)입니다. 몸값을 지불해도 복호화 보장이 없습니다. 3-2-1 규칙: 데이터 3벌, 서로 다른 매체 2종, 오프사이트(원격) 1곳.

자동 증분 백업 스크립트 (rsync)
#!/bin/bash
# 로컬 → 외장 드라이브, 변경분만 증분 백업
rsync -avh --delete \
  --backup --backup-dir="/Volumes/Backup/versions/$(date +%F)" \
  ~/Documents/ /Volumes/Backup/current/

# 랜섬웨어가 마운트된 드라이브까지 암호화할 수 있으므로
# 백업 후 외장 드라이브는 반드시 물리적으로 분리(unmount) 보관

가짜 결제·중고거래 사기 방어

중고거래·해외직구 스캠은 "안전결제 링크"를 사칭한 피싱이 가장 흔합니다.

  • 거래 플랫폼 공식 앱/사이트 내부에서만 결제 진행 (외부 링크 결제 요청 = 사기)
  • 경찰청 사이버캅, 금융감독원 계좌정보 통합관리로 판매자 계좌 사기이력 조회
  • 구매 확정 전 "현금영수증/에스크로 미사용" 요구 시 거래 중단
돈이 되는 습관

월 1회, 위 점검(유출 비밀번호 조회 + 미사용 계정 정리 + 백업 상태 확인)을 15분만 투자하면 평균적인 피싱/랜섬웨어 피해액(수십~수백만 원)을 원천 차단할 수 있습니다. 아래 SEC-06 커리어 섹션은 같은 지식으로 수익을 만드는 경로입니다.

SEC-04

표준 진단 도구 사용법

아래 도구는 전부 자기 소유 장비/네트워크, 또는 서면 승인을 받은 대상에만 사용합니다. 업계 표준 오픈소스 도구의 정상적인 진단 목적 사용법만 다룹니다.

TOOL
Nmap
용도
내 네트워크 자산 파악

내 홈/사무실 네트워크에 뭐가 연결돼 있나

IoT 기기, 스마트TV, 카메라 등 방치된 취약 장비를 파악하는 자산 인벤토리 목적입니다.

자기 소유 로컬 네트워크 스캔
# 자신의 공유기 하위 대역만 스캔 (예: 192.168.0.0/24)
nmap -sn 192.168.0.0/24

# 발견된 기기 중 낯선 IP는 공유기 관리 페이지에서
# MAC 주소 대조 후 차단 리스트에 등록
TOOL
Wireshark
용도
내 트래픽 분석

내 PC가 낯선 서버와 통신하는지 확인

악성코드 감염 시 나타나는 C2(명령제어) 서버 통신 패턴을 자신의 트래픽에서 직접 확인합니다.

비정상 아웃바운드 트래픽 필터
// Wireshark 필터 창에 입력
ip.addr != 192.168.0.0/16 && tcp.flags.syn == 1 && tcp.flags.ack == 0

// 브라우저를 모두 끈 상태에서도 지속적으로
// 외부로 SYN 패킷이 나가면 백그라운드 프로세스 점검 필요
TOOL
gitleaks
용도
시크릿 유출 방지

실수로 API 키를 깃허브에 올리는 사고 예방

개발자에게 가장 흔한 금전 사고: AWS/API 키가 공개 레포에 커밋되어 도용되는 경우입니다. 커밋 전 자동 검사로 막습니다.

pre-commit 훅으로 시크릿 스캔 자동화
# 설치 (macOS)
brew install gitleaks

# 저장소 루트에 pre-commit 훅 등록
cat > .git/hooks/pre-commit << 'EOF'
#!/bin/sh
gitleaks protect --staged --verbose
EOF
chmod +x .git/hooks/pre-commit

# 이후 git commit 시 시크릿 패턴 발견되면 커밋이 자동 차단됨
TOOL
curl
용도
웹서버 보안 헤더 점검

내가 운영하는 웹사이트 보안 헤더 자가진단

CSP, HSTS 같은 헤더 누락은 XSS·클릭재킹 위험을 키웁니다. 자신이 운영/관리하는 서비스에 적용합니다.

보안 헤더 확인
curl -sI https://내가운영하는사이트.com | \
  grep -Ei 'strict-transport|content-security|x-frame|x-content-type'

# 비어있으면 서버(Nginx/Express 등) 설정에 헤더 추가 필요
# 무료 진단: securityheaders.com (본인 소유 도메인만 조회)
경계선 — 절대 하지 말 것
  • 타인/회사가 소유한 IP·도메인에 서면 승인 없이 스캔/트래픽 분석 금지 (정보통신망법 제48조 위반)
  • 공공 Wi-Fi 등 공유망에서 타인 트래픽을 스니핑하는 행위 금지
  • "교육 목적"이라는 이유가 무단 접근을 정당화하지 않음
SEC-05

합법적으로 "공격 시나리오"를 연습하는 곳

실전 침투 기법을 배우고 싶다면 승인된 대상이 아니라 합법 실습 플랫폼에서 연습해야 합니다. 전부 의도적으로 취약하게 설계된 합법 훈련 환경입니다.

플랫폼성격추천 대상
TryHackMe가이드형 학습 경로, 초보자 친화보안 입문자
Hack The Box실전형 취약 머신, 커뮤니티 랭킹중급 이상 실무 지향
picoCTFCMU 주관, 문제풀이형 CTF학생·개발자 입문
PortSwigger Web Security Academy웹 취약점(OWASP) 무료 실습 랩웹 개발자
OverTheWire (Bandit)리눅스/SSH 기초 워게임서버 운영 입문
SEC-06

합법적으로 수익을 만드는 경로

같은 지식으로 실제 수익을 창출하는 3가지 공식 경로입니다. 전부 계약/서면 승인 기반의 합법 활동입니다.

경로

Bug Bounty — 취약점 신고 보상금

기업이 공식적으로 승인한 범위(Scope) 내에서 취약점을 찾아 신고하고 보상을 받는 합법 프로그램입니다.

시작 체크리스트
  • HackerOne / Bugcrowd 가입 후 초보자 대상(Beginner-friendly) 프로그램부터 선택
  • 반드시 Scope(대상 범위) 문서를 정독 — 범위 밖 테스트는 계약 위반
  • PortSwigger 아카데미로 OWASP Top 10 유형 먼저 연습
  • 신고서(Report)는 재현 절차 + 영향도 + 수정 제안을 명확히 작성
경로

공인 자격증 — 채용/몸값 직결

보안 실무직 채용 시 요구되는 표준 자격증입니다. 투자 대비 실무 인정도를 기준으로 정리했습니다.

자격증난이도특징
Security+입문보안 개념 전반, IT 커리어 시작점
eJPT초·중급실습 기반, 저비용으로 실무 감각 습득
OSCP중·상급실습형 침투테스트 표준, 채용시장 신뢰도 높음
CISSP상급보안관리자/컨설턴트급, 경력 요건 필요
경로

계약 기반 모의해킹(펜테스트) 용역

스타트업 대상 보안 점검을 프리랜스로 수행할 수 있습니다. 반드시 아래 서류 없이는 진행하지 않습니다.

  • 서면 테스트 승인서(RoE, Rules of Engagement) — 대상 범위·기간·금지 행위 명시
  • 비밀유지계약(NDA)
  • 배상책임보험(E&O) 가입 권장 — 의도치 않은 장애 대비
경로

보안 지식 자체를 상품화

중소기업 대상 "보안 자가진단 체크리스트", 직원 대상 피싱 훈련 콘텐츠 제작도 실제 수요가 있는 합법 수익 모델입니다.

  • 기업 대상 모의 피싱 이메일 훈련 서비스 (GoPhish 등 오픈소스 활용, 내부 직원 대상 승인 하에만)
  • 보안 자동화 스크립트(SEC-04 예제류) 패키징 후 SaaS화