해커처럼 생각하고
방어자처럼 행동하라
개발자를 위한 실전 사이버 보안 백서. 침투가 아니라 탐지·방어·복구에 초점을 맞춘 11개 챕터로, 오늘 당장 컴퓨터·계정·자산을 안전하게 만들고, 보안 지식을 실제 수익 경로로 연결하는 방법까지 다룹니다. 모든 명령어와 도구는 본인 소유 자산에 대해서만 사용하십시오.
위협 모델 기초
보안은 "모든 것을 막는다"가 아니라 "무엇을, 누구로부터, 얼마의 비용으로 지킬 것인가"를 정하는 일입니다. CIA 삼요소가 그 기준입니다.
기밀성 · Confidentiality 기초
허가된 사람만 데이터를 볼 수 있어야 합니다.
- 암호화되지 않은 API 키를 코드에 커밋하지 않기
- 클립보드에 비밀번호를 오래 남기지 않기
무결성 · Integrity 기초
데이터가 몰래 바뀌지 않았음을 보장합니다.
- 다운로드한 설치파일의 SHA-256 체크섬 대조
- Git 커밋 서명(GPG signing)
가용성 · Availability 기초
필요할 때 시스템·데이터에 접근할 수 있어야 합니다.
- 3-2-1 백업 규칙
- MFA 복구 코드 별도 보관
나만의 위협 모델 만들기
질문 4가지로 우선순위를 정하세요.
- 내가 지키려는 자산은? (코드, 지갑, 학생 개인정보)
- 공격자는 누구? (피싱 봇, 기회주의적 해커)
- 공격 경로는? (이메일, 공용 Wi-Fi, 재사용 비밀번호)
- 허용 가능한 불편함은?
인증 & 비밀번호
계정 탈취의 80% 이상은 재사용된 약한 비밀번호와 MFA 미사용에서 시작됩니다.
| 도구 | 용도 | 비고 |
|---|---|---|
| Bitwarden / 1Password | 비밀번호 매니저, 계정별 무작위 생성 | 오픈소스(Bitwarden) 선호 |
| Passkey (WebAuthn/FIDO2) | 피싱 불가능한 생체/기기 기반 인증 | Google·GitHub·Apple 지원 |
| Aegis / Google Authenticator | TOTP 기반 2단계 인증 | SMS 인증보다 우선 사용 |
| YubiKey | 하드웨어 보안키, FIDO2/U2F | 고가치 계정(이메일·거래소)에 필수 |
# 내 비밀번호가 유출 DB에 있는지 로컬에서 안전하게 확인 (k-anonymity 방식, HIBP API)
curl -s "https://api.pwnedpasswords.com/range/$(echo -n '내비밀번호' | sha1sum | cut -c1-5 | tr a-z A-Z)"
피싱 & 소셜 엔지니어링 방어
기술적 침투보다 사람을 속이는 쪽이 훨씬 저렴하고 성공률이 높습니다. 패턴을 아는 것만으로 대부분 막을 수 있습니다.
이메일/DM 체크 MID
- 발신 도메인이 진짜인지 문자 하나까지 확인 (예: paypaI.com)
- "긴급", "계정 정지" 등 감정을 자극하는 압박 문구 경계
- 링크는 클릭 전 마우스 오버로 실제 URL 확인
딥페이크/음성 사기 MID
- 급전 요청, 임원 사칭 통화는 별도 채널로 재확인
- 가족/지인 간 "안전 문구(코드워드)" 사전 합의
개발자 특화 위협 HIGH
- 가짜 npm/PyPI 패키지(typosquatting) — 다운로드 수·메인테이너 이력 확인
- 가짜 채용 과제로 위장한 악성 리포지토리 — 격리된 VM/컨테이너에서만 실행
- VS Code 확장 프로그램 출처 확인 (publisher verified 배지)
암호화폐 특화 피싱 HIGH
- 거래소 "고객센터" DM은 100% 사기로 간주
- 지갑 연결 요청(Wallet Connect) 전 dApp 도메인·컨트랙트 주소 검증
- "에어드랍 클레임"은 시드 문구·프라이빗 키 입력 요구 시 즉시 중단
네트워크 & Wi-Fi 보안
공용 Wi-Fi·홈 네트워크는 가장 흔한 침입 경로 중 하나입니다. 아래 도구는 본인 소유 네트워크 진단용입니다.
# 내 홈 네트워크에 연결된 기기 목록 스캔 (자산 파악용, 반드시 자신의 네트워크에서만) nmap -sn 192.168.0.0/24 # 내 라우터/서버에서 열려있는 포트 점검 nmap -sV -T4 본인_공인IP # 방화벽으로 불필요한 인바운드 포트 차단 (Ubuntu 예시) sudo ufw default deny incoming sudo ufw allow 22/tcp # 필요한 포트만 명시적으로 허용 sudo ufw enable
VPN 선택 기준
- 노 로그(No-log) 정책 제3자 감사 여부
- WireGuard 프로토콜 지원(속도·보안 균형)
- 공용 Wi-Fi 사용 시 항시 킬스위치 활성화
라우터 하드닝
- 기본 관리자 비밀번호 즉시 변경
- WPA3 사용, WPS 기능 비활성화
- 펌웨어 자동 업데이트 활성화
암호화 실전
저장 데이터(at rest)와 전송 데이터(in transit)를 나눠서 생각하면 무엇을 암호화할지 명확해집니다.
# 파일 하나를 GPG로 대칭키 암호화 (비밀번호 기반, 공유 전 표준 방식) gpg -c --cipher-algo AES256 secret_report.pdf # → secret_report.pdf.gpg 생성 gpg -d secret_report.pdf.gpg > secret_report.pdf # 복호화 # 다운로드한 설치파일 무결성 검증 (배포처 제공 SHA256 값과 대조) sha256sum ubuntu-24.04-desktop-amd64.iso
디스크 암호화
- macOS: FileVault 활성화
- Windows: BitLocker 활성화
- Linux: 설치 시 LUKS 전체 디스크 암호화
통신 암호화
- 모든 사이트는 HTTPS(TLS 1.2+)만 신뢰
- Signal 등 종단간 암호화(E2EE) 메신저 사용
- 이메일 민감 정보는 GPG/PGP 서명·암호화
OS & 브라우저 하드닝
기본 설정만 바꿔도 공격 표면의 상당 부분을 줄일 수 있습니다.
| 영역 | 조치 | 효과 |
|---|---|---|
| OS 업데이트 | 자동 업데이트 상시 활성화 | 알려진 취약점 패치 |
| 브라우저 확장 | uBlock Origin, 최소 확장만 유지 | 악성 광고·트래커 차단 |
| 권한 관리 | 카메라/마이크/위치 앱별 재검토 | 불필요한 데이터 수집 차단 |
| 샌드박싱 | 낯선 스크립트는 Docker/VM에서 실행 | 호스트 시스템 격리 |
| DNS | DNS-over-HTTPS(예: Cloudflare 1.1.1.1) 사용 | DNS 스푸핑/감청 방지 |
# 낯선 오픈소스 코드를 격리 환경에서 안전하게 실행
docker run --rm -it --network none -v $(pwd):/app python:3.12-slim bash
백업 & 복구
랜섬웨어·하드웨어 고장·실수 삭제 모두 백업 하나로 방어됩니다.
# 매일 자동 증분 백업 (Linux/macOS, rsync 예시)
rsync -avh --delete ~/projects/ /Volumes/BackupDrive/projects_$(date +%F)/
암호화폐 지갑 보안
거래소·선물 트레이딩을 병행한다면 자산 보안이 곧 리스크 관리의 일부입니다.
콜드 스토리지 권장
- 거래용 자금 외 장기 보유분은 하드웨어 지갑(Ledger/Trezor)으로 이동
- 시드 문구는 절대 사진·클라우드·메모앱에 저장 금지, 종이/금속 백업
거래소 계정 MID
- API 키는 출금 권한 없이 조회/거래 권한만 발급
- IP 화이트리스트 설정, 하드웨어 키 기반 2FA
스마트컨트랙트 승인 HIGH
- revoke.cash 등으로 불필요한 토큰 approve 권한 주기적 해제
- 서명 전 트랜잭션 내용을 지갑 UI에서 직접 재확인
운영 습관 MID
- 트레이딩 전용 기기/브라우저 프로필 분리
- 대형 이체 전 소액 테스트 전송 선행
합법적 수익화 & 절약 경로
보안 지식은 "손실 방지"와 "직접 수익" 두 방향 모두로 돈이 됩니다.
| 경로 | 설명 | 시작점 |
|---|---|---|
| 버그 바운티 | 기업이 공식 허가한 범위 내에서 취약점 리포트 후 포상금 수령 | HackerOne, Bugcrowd, Intigriti |
| 보안 자격증 | 커리어·프리랜스 단가 상승으로 이어지는 공인 자격 | Security+, CEH, OSCP |
| 프리랜스 보안 감사 | 중소기업 웹사이트/서버 기본 보안 점검 서비스 | Upwork, 지인 네트워크 |
| 피싱 손실 예방 | 계정 탈취·랜섬웨어 1회만 막아도 수백만 원 손실 방지 | 본 매뉴얼 02~06장 |
| CTF 대회 | 합법적 모의 해킹 훈련장, 상금 및 채용 연계 | picoCTF, HackTheBox(연습 랩) |
리스크 vs 노력 매트릭스
지금 무엇부터 해야 할지 한눈에 — 왼쪽 위(저노력·고효과)부터 처리하세요.
실전 체크리스트
체크박스를 눌러 진행 상황을 표시하세요 (이 페이지 내에서만 유지되며 저장되지 않습니다).
- 모든 계정 비밀번호를 매니저로 이전하고 재사용 비밀번호 제거
- 이메일·거래소·GitHub에 하드웨어 키/앱 기반 2FA 설정
- OS·브라우저 자동 업데이트 활성화 확인
- 3-2-1 백업 파이프라인 1회 실행 및 복구 테스트
- 라우터 기본 비밀번호 변경 + WPA3 적용
- 장기 보유 암호화폐 하드웨어 지갑으로 이전
- 거래소 API 키 출금 권한 비활성화 확인
- 스마트컨트랙트 approve 권한 점검(revoke.cash)
- 낯선 npm/PyPI 패키지 설치 전 메인테이너·다운로드 이력 확인 습관화
- 버그 바운티/CTF 플랫폼 1곳 가입 및 스코프 규정 숙지