OWASP(Open Web Application Security Project)는 웹 애플리케이션 보안을 개선하기 위한 비영리 재단으로, 2001년 설립되었다. 무료 오픈소스 문서, 도구, 표준을 제공하며, 전 세계 250개 이상의 챕터와 수만 명의 커뮤니티가 활동한다. 개발자, 보안 전문가, 아키텍트가 보안 소프트웨어를 설계·개발·테스트하는 데 필요한 지식을 제공하는 것이 목표다.
OWASP Top 10
OWASP Top 10은 웹 애플리케이션의 가장 심각한 보안 위험 10가지를 선정한 인식 문서다. 수년마다 업데이트되며, 전 세계 보안 커뮤니티가 가장 많이 참조하는 보안 표준이다.
OWASP Top 10 2021 (현행)
A01:2021 - 접근 통제 실패 (Broken Access Control)
이전 순위: A05:2017 → A01:2021 (1위로 상승)
인증된 사용자가 권한 없는 기능이나 데이터에 접근 가능한 취약점
예시: URL 파라미터 변조(/user/123 → /user/124), JWT 토큰 조작, CORS 설정 오류, 관리자 페이지 직접 URL 접근
방어: 최소 권한 원칙, 서버 측 접근 통제 검증, CORS 화이트리스트
A02:2021 - 암호화 실패 (Cryptographic Failures)
이전 명칭: A03:2017 민감 데이터 노출
전송 중·저장 중 민감 데이터 보호 실패
예시: HTTP 전송, 약한 암호화(MD5, SHA-1), 하드코딩된 암호키, 불충분한 TLS 설정
방어: TLS 1.2+, AES-256, 강력한 해시(Argon2/bcrypt), HSM 키 관리
A03:2021 - 인젝션 (Injection)
이전 순위: A01:2017 → A03:2021
신뢰할 수 없는 데이터가 인터프리터에 명령으로 전송되는 취약점
SQL 인젝션:
- 입력: ' OR '1'='1 → WHERE 조건 무력화
- 방어: 준비된 구문(Prepared Statement), ORM, 입력 유효성 검사
NoSQL 인젝션: MongoDB 등 NoSQL DB 대상 ({"$ne": null})
OS 명령어 인젝션: cmd.exe /c dir 형태 삽입
LDAP 인젝션, OGNL 인젝션: 미들웨어 대상
A04:2021 - 불안전한 설계 (Insecure Design)
2021년 신규 추가. 아키텍처·설계 단계의 보안 결함
예시: 비즈니스 로직 결함(무제한 예약, 쿠폰 중복 사용), 불충분한 위협 모델링
방어: 위협 모델링(STRIDE), 보안 설계 패턴, 보안 요구사항 정의
A05:2021 - 보안 설정 오류 (Security Misconfiguration)
기본 계정/비밀번호, 불필요한 기능 활성화, 과도한 오류 메시지 노출
예시: S3 버킷 공개 노출, Spring Boot Actuator 무인증 접근, XML 외부 엔티티(XXE)
방어: 하드닝(Hardening) 체크리스트, IaC 보안 스캔, CIS 벤치마크
A06:2021 - 취약하고 오래된 컴포넌트 (Vulnerable and Outdated Components)
이렇게 입력하면 SQL이 WHERE id='admin'--가 돼서 비밀번호 검사를 건너뛰고 로그인되는 거야!
방어법: 입력값을 그대로 SQL에 넣지 않고, "준비된 구문"을 사용
4위: 불안전한 설계
코드 문제가 아니라 처음 설계부터 잘못된 경우.
예시: "비밀번호 찾기"에서 전 직장 이름을 물어보는데, SNS에 다 공개되어 있다면?
5위: 보안 설정 오류
기본 설정을 그대로 두거나 잘못 설정한 경우.
예시: AWS S3 저장소를 실수로 "공개"로 설정해서 수백만 명의 개인정보가 유출된 사건들
6위: 오래된 컴포넌트 사용
2021년 말 Log4Shell 사건이 대표적이야. 자바 로그 라이브러리 Log4j에 취약점이 발견됐는데, 전 세계 수억 개 서버에 이 라이브러리가 깔려 있었어. 엄청난 파장이었지.
7위: 인증 실패
비밀번호를 무제한으로 시도할 수 있거나, 세션이 너무 오래 유지되거나.
8위: 데이터 무결성 실패
소프트웨어 업데이트를 악용한 공격. 합법적인 업데이트인 척 악성코드 설치.
9위: 로깅·모니터링 실패
해킹당해도 모르는 경우야. 로그를 안 기록하면 나중에 피해 원인 파악도 불가능해.
10위: SSRF (서버 측 요청 위조)
서버를 이용해서 내부 네트워크를 공격하는 방법.
XSS (크로스사이트 스크립팅)
Top 10에는 없지만 매우 중요한 취약점이야!
게시판에 글을 올릴 때 악성 스크립트를 넣어두면, 그 글을 읽는 사람들의 계정이 해킹당할 수 있어.
예시: 게시판 글 내용에 삽입
방어법: 게시판에 HTML 태그를 그대로 저장하지 않고 무해하게 변환
OWASP의 유용한 도구
OWASP ZAP: 무료 해킹 시뮬레이션 도구 (내 사이트 취약점 찾기)
Cheat Sheet: 개발자를 위한 보안 코딩 가이드
왜 중요해?
한국 정부(행정안전부, KISA)도 공식 보안 기준으로 OWASP를 참조해. 취업 후 개발자가 된다면 반드시 알아야 할 기준이야!
OWASP - 웹사이트를 안전하게 지키는 조직
OWASP가 뭐예요?
OWASP는 전 세계 개발자들이 모인 보안 단체예요.
"어떻게 하면 해킹 당하지 않는 안전한 웹사이트를 만들 수 있을까?" 라는 질문에 답하기 위해 2001년에 만들어졌어요.
모든 정보를 무료로 공개해서 누구나 안전한 프로그램을 만들 수 있도록 도와줘요.
OWASP Top 10이 뭐예요?
OWASP에서 만든 "가장 위험한 해킹 방법 Top 10" 목록이에요.
개발자들이 이 10가지를 막으면 대부분의 해킹을 막을 수 있어요!
가장 유명한 해킹 방법들
SQL 인젝션 (3위)
웹사이트의 입력창에 특별한 명령어를 입력해서 데이터베이스를 훔치는 방법이에요.
마치 "열려라 참깨!"처럼, 몰래 통하는 마법 주문을 입력하는 거예요.
예시: 로그인 창에 비밀번호 대신 특수한 문자를 입력해서 로그인 통과!
XSS (크로스사이트 스크립팅)
게시판에 악성 코드를 숨겨서 다른 사용자들을 공격하는 방법이에요.
마치 편지 안에 바이러스를 숨기는 것처럼요.
접근 통제 실패 (1위)
허락받지 않은 정보를 훔쳐보는 방법이에요.
예를 들어 내 방 번호가 101호인데, URL을 바꿔서 102호(다른 사람 정보)를 들여다보는 거예요.
개발자들은 어떻게 막아요?
입력값을 믿지 않고 항상 검사해요
중요한 정보는 암호화해서 저장해요
최신 보안 업데이트를 빠르게 적용해요
이상한 활동이 있으면 알림을 받아요
OWASP는 어떤 도구를 만들어요?
ZAP: 내 웹사이트의 취약점을 찾아주는 무료 도구
Cheat Sheet: 안전하게 코딩하는 방법 안내서
왜 중요해요?
OWASP의 기준을 따르면 해킹을 크게 줄일 수 있어요. 한국 정부도 이 기준을 사용해서 공공 웹사이트를 점검해요!
앞으로 개발자가 되고 싶다면 꼭 알아야 할 보안 상식이에요.
OWASP (Open Web Application Security Project)
Overview
OWASP (Open Web Application Security Project) is a non-profit organization founded in 2001 dedicated to enhancing web application security through the provision of free, open-source documentation, tools, and standards. With over 250 chapters globally and a community comprising thousands of professionals, OWASP aims to equip developers, security experts, and architects with the knowledge necessary for designing, developing, and testing secure software.
OWASP Top 10
The OWASP Top 10 identifies the ten most critical security vulnerabilities affecting web applications, regularly updated to reflect current threats. Widely regarded as the foremost security benchmark globally, it guides proactive security measures.
OWASP ZAP: Free, open-source web vulnerability scanner.
OWASP ASVS: Application Security Verification Standard (three levels).
OWASP SAMM: Software Assurance Maturity Model.
OWASP Cheat Sheet Series: Security implementation guides for developers.
OWASP Dependency-Check: Tool for identifying vulnerable components.
OWASP WSTG: Web Security Testing Guide.
Integration into Security Development Lifecycle (SDL)
OWASP recommends integrating security practices throughout the development lifecycle:
Requirements: Security requirements based on OWASP ASVS.
Design: Threat modeling using STRIDE.
Development: Adherence to secure coding standards and Static Application Security Testing (SAST) tools.
Testing: Dynamic Application Security Testing (DAST) with OWASP ZAP, penetration testing, and OWASP WSTG.
Deployment: Security configuration reviews and Infrastructure as Code (IaC) scans.
Operation: Security Information and Event Management (SIEM) systems and vulnerability management practices.
Domestic Application
OWASP serves as the basis for vulnerability assessment guidelines in South Korea's electronic government services by the Ministry of the Interior and Safety (행정안전부) and Korea Internet & Security Agency (KISA).
Financial Security Agency (금융보안원) references OWASP guidelines for vulnerability assessments in the financial sector.
Compliance with OWASP Top 10 is mandated in PCI-DSS and ISO 27001 certification processes internationally.