Zettelkasten/Literature(리터레처)/브루트포스 공격 - 리터레처.md

브루트포스 공격 - 리터레처

브루트포스 공격이란?

브루트포스(Brute Force) 공격은 가능한 모든 조합을 체계적으로 시도하여 비밀번호나 암호키를 찾아내는 무차별 대입 공격이다.

작동 방식

1단계: 짧은 조합부터 시도
"a", "b", "c", ... "z"
"aa", "ab", "ac", ... "zz"

2단계: 길이 증가
"aaa", "aab", ...

3단계: 문자 종류 확장
소문자 → 대문자 추가 → 숫자 추가 → 특수문자 추가

반복: 올바른 조합을 찾을 때까지

공격 종류

1. 순수 브루트포스

  • 모든 가능한 조합을 순차적으로 시도
  • 가장 느리지만 이론적으로 100% 성공

2. 사전 공격 (Dictionary Attack)

  • 흔한 비밀번호 목록 사용
  • "password", "123456", "admin" 등
  • 훨씬 빠르지만 복잡한 비밀번호는 실패

3. 하이브리드 공격

  • 사전 단어 + 숫자/특수문자 조합
  • "password123", "admin!@#" 등

4. 크리덴셜 스터핑 (Credential Stuffing)

  • 유출된 ID/PW 조합 재사용
  • 다른 서비스에서 같은 비밀번호 사용하는 습관 악용

공격 대상과 동기

왜 관리자 계정이 주요 타겟인가?

공격자의 ROI (투자 대비 수익):

일반 계정 탈취:
- 얻는 것: 제한된 파일 접근, 개인 정보
- 가치: 낮음

관리자 계정 탈취:
- 얻는 것: 시스템 전체 제어, 모든 데이터, 백도어 설치
- 가치: 매우 높음

공격 우선순위:

  1. root / Administrator (최고 권한)
  2. 데이터베이스 관리자
  3. 시스템 관리자
  4. 일반 사용자

실제 통계

  • SSH 브루트포스 시도: 하루 수천~수만 건 (공개 서버 기준)
  • 가장 많이 시도되는 계정명: root, admin, administrator
  • 가장 많이 시도되는 비밀번호: 123456, password, admin

비밀번호 vs 키 기반 인증의 강도 차이

비밀번호의 취약성

엔트로피 계산:

8자리 비밀번호 (소문자만):
26^8 = 약 208억 조합
현대 GPU: 초당 수십억 시도 가능
→ 수 시간 내 해독 가능

12자리 복잡한 비밀번호 (소문자+대문자+숫자+특수문자):
95^12 = 약 5.4 × 10^23 조합
→ 수천 년 소요
하지만 사람들은 복잡한 비밀번호 안 씀

실제 사용자 행태:

  • 짧은 비밀번호 선호 (8자 이하)
  • 사전 단어 사용 ("password123")
  • 패턴 사용 ("qwerty", "123456")
  • 여러 서비스에서 재사용

SSH 키의 강도

RSA-2048 키:

가능한 조합: 2^2048 = 약 10^617
우주의 원자 개수: 약 10^80

현대 슈퍼컴퓨터 전체:
→ 우주 나이보다 훨씬 긴 시간 필요
→ 사실상 브루트포스 불가능

ED25519 (256비트):

가능한 조합: 2^256
여전히 브루트포스 불가능한 수준

핵심 차이:

  • 비밀번호: 인간이 기억 가능한 범위 = 엔트로피 제한
  • SSH 키: 컴퓨터가 생성 = 최대 엔트로피

Windows의 방어 전략

정책: 관리자 계정에 키 인증 강제

sshd_config 구현:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

효과:

  1. 비밀번호 브루트포스 원천 차단

    • 비밀번호 인증 자체를 비활성화
    • 키만 유효한 인증 수단
  2. 공격 표면 축소

    • 관리자 계정 = 가장 가치 높은 타겟
    • 가장 강력한 인증 방식 강제
  3. 자동화된 공격 무력화

    • 대부분의 브루트포스 봇은 비밀번호 시도
    • 키 기반 공격 도구는 드물고 복잡함

Linux와의 차이

Linux/Unix:

# /etc/ssh/sshd_config
PermitRootLogin without-password  # root만 제한
  • 사용자 선택에 맡김
  • root 계정에만 주로 적용
  • 다른 관리자는 비밀번호 허용 가능

Windows:

Match Group administrators  # 모든 관리자
  • 기본값으로 강제
  • Administrators 그룹 전체 적용
  • "안전한 기본값" 철학

브루트포스 방어 계층

1차 방어: 인증 강화

강력한 인증 메커니즘:

  • 키 기반 인증 (SSH)
  • 다중 인증 (MFA)
  • 인증서 기반 인증
  • 생체 인증

효과: 브루트포스 자체를 불가능하게

2차 방어: 제한 및 차단

Rate Limiting:

# fail2ban 설정 예시
maxretry = 3      # 3회 실패 시
bantime = 3600    # 1시간 차단
findtime = 600    # 10분 내 실패 횟수 기준

Account Lockout:

  • N회 실패 시 계정 잠금
  • 관리자 개입으로만 해제

IP 차단:

  • 의심스러운 IP 자동 차단
  • Geo-blocking (특정 국가 차단)

효과: 공격 속도 제한, 공격 비용 증가

3차 방어: 모니터링 및 탐지

로그 분석:

# 실패한 로그인 시도 패턴
2025-10-10 01:23:45 Failed password for admin from 192.168.1.100
2025-10-10 01:23:46 Failed password for admin from 192.168.1.100
2025-10-10 01:23:47 Failed password for admin from 192.168.1.100

이상 탐지:

  • 비정상적인 로그인 시도 횟수
  • 비정상적인 시간대
  • 비정상적인 위치

알림 시스템:

  • 관리자에게 실시간 알림
  • SIEM 통합
  • 자동 대응 트리거

실제 시나리오

시나리오 1: 비밀번호 기반 SSH

공격자: 공개 IP의 SSH 포트 스캔
     ↓
발견: 22번 포트 열림
     ↓
시도: root / admin / administrator 계정
     ↓
브루트포스: 일반적인 비밀번호 목록 시도
     ↓
성공 가능성: 약한 비밀번호 사용 시 높음

시나리오 2: 키 기반 SSH (Windows 관리자)

공격자: 공개 IP의 SSH 포트 스캔
     ↓
발견: 22번 포트 열림
     ↓
시도: Administrator 계정으로 비밀번호 시도
     ↓
결과: 즉시 거부 (키만 허용)
     ↓
공격자 선택:
  A) 다른 타겟 찾기
  B) 키 파일 훔치기 시도 (훨씬 어려움)

다른 공격 벡터

브루트포스가 막히면 공격자는:

1. 취약점 공격

  • 소프트웨어 버그 악용
  • 제로데이 취약점

2. 사회공학

  • 피싱으로 키 파일 훔치기
  • 내부자 매수

3. 중간자 공격 (MITM)

  • 네트워크 레벨에서 가로채기
  • 하지만 SSH는 암호화되어 있어 어려움

4. 물리적 접근

  • 서버실 침입
  • 키 파일 직접 접근

→ 브루트포스 방어는 전체 보안의 일부일 뿐


핵심 교훈

  1. 공격 가치와 방어 강도는 비례해야 한다

    • 관리자 계정 = 높은 가치 = 강력한 인증
  2. 인증 메커니즘의 선택이 중요하다

    • 비밀번호: 인간의 한계에 묶임
    • 키: 수학적 한계까지 활용
  3. 기본값이 보안을 결정한다

    • Windows의 강제 정책 = 대부분 사용자 보호
    • 사용자 선택에 맡기면 약한 보안 선택 가능
  4. 다층 방어가 필수다

    • 강력한 인증 + Rate limiting + 모니터링
    • 한 층이 뚫려도 다른 층이 방어
  5. 공격자는 가장 쉬운 경로를 선택한다

    • 브루트포스 막으면 다른 방법 시도
    • 하지만 진입 장벽이 높아짐

더 탐구할 주제

  • 브루트포스 vs 다른 공격 방법의 효율성 비교
  • 양자 컴퓨터 시대의 브루트포스 가능성
  • API, 웹 로그인 등 다른 맥락의 브루트포스 방어
  • 비밀번호 없는 인증 (Passwordless) 트렌드
  • 제로 트러스트 아키텍처와의 관계

다음 단계: 이 내용을 바탕으로 Permanent Notes 작성

  • "공격 가치와 방어 강도의 비례 관계"
  • "인증 메커니즘 선택의 보안 영향"
  • "기본값으로 보안 강제하기"

댓글

첫 번째 댓글을 남겨보세요.