승인되지 않은 시스템 침투나 익스플로잇 코드는 다루지 않습니다. 대신 실제 개발자와 일반 사용자가 오늘 당장 적용해서 돈을 지키고, 계정을 지키고, 커리어를 만들 수 있는 합법적 보안 지식만 엄선했습니다. 기초 이론부터 실행 가능한 명령어·코드까지 단계별로 정리했습니다.
"해킹"이라는 단어는 침입 기술이 아니라 시스템이 어떻게 뚫리는지 이해하고, 그 이해로 스스로를 지키는 기술을 뜻합니다. 이 백서는 다음 4가지 원칙 위에서만 작동합니다.
본인 소유이거나 서면으로 테스트 승인을 받은 시스템에만 실습 명령어를 실행합니다. 타인의 계정·서버·네트워크에 대한 무단 접근은 형법 및 정보통신망법 위반입니다.
익스플로잇, 페이로드 생성기, 멀웨어 샘플은 포함하지 않습니다. 표준 오픈소스 도구의 "정상 사용법"만 다룹니다.
추상적 이론이 아니라 실제 피해 예방액, 채용/수익 경로와 연결된 지식만 다룹니다.
모든 코드 블록은 그대로 복사해 실행 가능하도록 검증했습니다. 예제는 표준 라이브러리/공식 CLI 기준입니다.
모든 방어 기술은 이 3가지 기초 위에 있습니다. 개념을 정확히 알아야 뒤에 나오는 도구 사용법이 "왜 그렇게 하는지" 이해됩니다.
모든 네트워크 공격/방어는 결국 "어떤 포트가 열려 있고, 무슨 서비스가 응답하는가"에서 시작합니다. 자신의 PC/서버에 불필요하게 열린 포트가 곧 공격 표면(attack surface)입니다.
# Windows (PowerShell) netstat -ano | findstr LISTENING # macOS / Linux lsof -i -P -n | grep LISTEN # 결과에서 낯선 포트가 LISTENING 상태면 # 해당 PID를 작업관리자/ps에서 역추적해 프로세스를 확인한다
HTTPS, SSH, 비밀번호 관리자, 전자서명 전부 이 두 개념의 조합입니다. 대칭키(AES)는 빠르지만 키 교환이 문제이고, 비대칭키(RSA/ECC)는 느리지만 키 교환 없이 신원 증명이 가능합니다.
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
다운로드한 파일이 변조되지 않았는지 확인하는 가장 기본적인 방어 기술입니다. 소프트웨어 배포처가 공개한 SHA-256 값과 직접 계산한 값을 비교합니다.
# macOS / Linux shasum -a 256 downloaded-installer.dmg # Windows (PowerShell) Get-FileHash .\installer.exe -Algorithm SHA256 # 공식 홈페이지에 게시된 해시값과 한 글자라도 다르면 # 실행하지 말고 즉시 삭제
일상 계정을 관리자 권한으로 쓰지 않는 것만으로 랜섬웨어·악성코드 피해 범위가 크게 줄어듭니다. 개발 환경도 동일합니다.
계정 탈취는 개인이 겪는 사이버 피해의 절대다수를 차지합니다. 아래 4가지만 제대로 해도 계정 탈취 확률이 급격히 낮아집니다.
같은 비밀번호 재사용이 계정 탈취의 1위 원인입니다. 비밀번호 관리자(Bitwarden, 1Password 등)로 사이트마다 다른 고엔트로피 비밀번호를 자동 생성·저장합니다.
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
Have I Been Pwned은 실제 유출 데이터베이스를 k-anonymity 방식(해시 앞 5자리만 서버로 전송)으로 안전하게 조회할 수 있는 공개 API입니다. 비밀번호 원문은 절대 서버로 전송되지 않습니다.
# 1) 비밀번호를 SHA-1 해시로 변환 echo -n "내비밀번호" | shasum -a 1 # → 예: 5BAA6...1A2B3C (40자) # 2) 앞 5자리만 API에 전송 (원문/전체해시 전송 안 함) curl https://api.pwnedpasswords.com/range/5BAA6 # 3) 응답 목록에서 나머지 35자리가 일치하면 유출된 것 → 즉시 변경
구글 OTP/Authy 같은 앱은 "공유 비밀키 + 현재 시각"을 HMAC-SHA1로 조합해 30초마다 바뀌는 6자리 숫자를 만듭니다. SMS 인증보다 심(SIM) 스와핑에 안전합니다.
이메일 주소로 가입된 서비스가 통제 밖에서 늘어날수록 공격 표면이 커집니다. 정기적으로 사용 안 하는 계정을 정리합니다.
// Gmail 검색창에 입력 subject:(welcome OR "가입을 환영" OR verify) older_than:1y // 결과로 나온 오래된 미사용 서비스는 탈퇴 후 // 개인정보보호위원회 '개인정보 파기요청' 절차로 삭제 요청 가능
국내 사이버 금융범죄 피해의 대다수는 첨단 해킹이 아니라 사회공학(Social Engineering)으로 발생합니다. 기술보다 판단 절차가 더 중요합니다.
"지금 당장 송금/설치/인증번호 불러달라"는 요청은 100% 스캠 패턴입니다. 검찰·경찰·금융감독원·은행은 절대 전화로 계좌 이체나 앱 설치를 요구하지 않습니다. 일단 끊고, 대표번호로 직접 재확인하세요.
사람 눈으로는 속기 쉬운 유사 도메인(예: paypaI.com — L 대신 대문자 I)을 코드로 자동 점검할 수 있습니다.
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")
은행/쇼핑몰 사칭 사이트인지 브라우저 클릭 몇 번으로 확인 가능합니다. 정식 기관은 EV/OV 인증서를 정상 발급받습니다.
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곳.
#!/bin/bash # 로컬 → 외장 드라이브, 변경분만 증분 백업 rsync -avh --delete \ --backup --backup-dir="/Volumes/Backup/versions/$(date +%F)" \ ~/Documents/ /Volumes/Backup/current/ # 랜섬웨어가 마운트된 드라이브까지 암호화할 수 있으므로 # 백업 후 외장 드라이브는 반드시 물리적으로 분리(unmount) 보관
중고거래·해외직구 스캠은 "안전결제 링크"를 사칭한 피싱이 가장 흔합니다.
월 1회, 위 점검(유출 비밀번호 조회 + 미사용 계정 정리 + 백업 상태 확인)을 15분만 투자하면 평균적인 피싱/랜섬웨어 피해액(수십~수백만 원)을 원천 차단할 수 있습니다. 아래 SEC-06 커리어 섹션은 같은 지식으로 수익을 만드는 경로입니다.
아래 도구는 전부 자기 소유 장비/네트워크, 또는 서면 승인을 받은 대상에만 사용합니다. 업계 표준 오픈소스 도구의 정상적인 진단 목적 사용법만 다룹니다.
IoT 기기, 스마트TV, 카메라 등 방치된 취약 장비를 파악하는 자산 인벤토리 목적입니다.
# 자신의 공유기 하위 대역만 스캔 (예: 192.168.0.0/24) nmap -sn 192.168.0.0/24 # 발견된 기기 중 낯선 IP는 공유기 관리 페이지에서 # MAC 주소 대조 후 차단 리스트에 등록
악성코드 감염 시 나타나는 C2(명령제어) 서버 통신 패턴을 자신의 트래픽에서 직접 확인합니다.
// Wireshark 필터 창에 입력 ip.addr != 192.168.0.0/16 && tcp.flags.syn == 1 && tcp.flags.ack == 0 // 브라우저를 모두 끈 상태에서도 지속적으로 // 외부로 SYN 패킷이 나가면 백그라운드 프로세스 점검 필요
개발자에게 가장 흔한 금전 사고: AWS/API 키가 공개 레포에 커밋되어 도용되는 경우입니다. 커밋 전 자동 검사로 막습니다.
# 설치 (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 시 시크릿 패턴 발견되면 커밋이 자동 차단됨
CSP, HSTS 같은 헤더 누락은 XSS·클릭재킹 위험을 키웁니다. 자신이 운영/관리하는 서비스에 적용합니다.
curl -sI https://내가운영하는사이트.com | \ grep -Ei 'strict-transport|content-security|x-frame|x-content-type' # 비어있으면 서버(Nginx/Express 등) 설정에 헤더 추가 필요 # 무료 진단: securityheaders.com (본인 소유 도메인만 조회)
실전 침투 기법을 배우고 싶다면 승인된 대상이 아니라 합법 실습 플랫폼에서 연습해야 합니다. 전부 의도적으로 취약하게 설계된 합법 훈련 환경입니다.
| 플랫폼 | 성격 | 추천 대상 |
|---|---|---|
| TryHackMe | 가이드형 학습 경로, 초보자 친화 | 보안 입문자 |
| Hack The Box | 실전형 취약 머신, 커뮤니티 랭킹 | 중급 이상 실무 지향 |
| picoCTF | CMU 주관, 문제풀이형 CTF | 학생·개발자 입문 |
| PortSwigger Web Security Academy | 웹 취약점(OWASP) 무료 실습 랩 | 웹 개발자 |
| OverTheWire (Bandit) | 리눅스/SSH 기초 워게임 | 서버 운영 입문 |
같은 지식으로 실제 수익을 창출하는 3가지 공식 경로입니다. 전부 계약/서면 승인 기반의 합법 활동입니다.
기업이 공식적으로 승인한 범위(Scope) 내에서 취약점을 찾아 신고하고 보상을 받는 합법 프로그램입니다.
보안 실무직 채용 시 요구되는 표준 자격증입니다. 투자 대비 실무 인정도를 기준으로 정리했습니다.
| 자격증 | 난이도 | 특징 |
|---|---|---|
| Security+ | 입문 | 보안 개념 전반, IT 커리어 시작점 |
| eJPT | 초·중급 | 실습 기반, 저비용으로 실무 감각 습득 |
| OSCP | 중·상급 | 실습형 침투테스트 표준, 채용시장 신뢰도 높음 |
| CISSP | 상급 | 보안관리자/컨설턴트급, 경력 요건 필요 |
스타트업 대상 보안 점검을 프리랜스로 수행할 수 있습니다. 반드시 아래 서류 없이는 진행하지 않습니다.
중소기업 대상 "보안 자가진단 체크리스트", 직원 대상 피싱 훈련 콘텐츠 제작도 실제 수요가 있는 합법 수익 모델입니다.
기술보다 먼저 알아야 하는 것은 "선"입니다. 대한민국 기준 핵심 조항을 요약합니다. (실제 사안은 반드시 변호사 자문 필요 — 본 요약은 법률 자문이 아닙니다.)
| 행위 | 관련 법 | 비고 |
|---|---|---|
| 승인 없는 정보통신망 침입 | 정보통신망법 제48조 | 단순 접속 시도만으로도 처벌 대상 가능 |
| 타인 데이터 무단 열람·유출 | 개인정보보호법 | 과징금 및 형사처벌 병과 가능 |
| 악성프로그램 제작·유포 | 정보통신망법 제48조의2 | "연구 목적"도 유포 시 처벌 대상 |
| 서비스 거부 공격(DDoS) 등 업무방해 | 형법 제314조 | 업무방해죄 별도 성립 |
"기술적으로 가능한가"가 아니라 "소유자 또는 관리자에게 서면 승인을 받았는가"가 유일한 판단 기준입니다. 승인이 없다면 자기 소유 자산에서만 연습하세요.