안녕하세요! 지난 1편에서는 OWASP Top 10의 6위부터 10위까지를 다루며, 보안 취약점과 실전 대응 방안을 살펴봤습니다. 😊 이번 2편에서는 더욱 중요한 1위부터 5위 항목을 심층적으로 분석해보겠습니다. 특히, 이 상위 항목들은 대부분의 해킹 사고에서 주요 원인으로 꼽히는 만큼, 모든 개발자와 보안 담당자들이 반드시 숙지해야 할 핵심입니다. 💡
Security Misconfiguration은 2017년 OWASP Top 10에서 6위에서 5위로 상승한 항목으로, 잘못된 보안 설정이나 기본값 사용으로 인해 시스템이 외부 공격에 노출되는 경우를 포함합니다. 소프트웨어 업데이트 지연, 불필요한 서비스 활성화, 기본 계정 사용, 과도한 기능 노출 등이 대표적인 사례입니다.
소프트웨어 업데이트 지연
최신 패치를 적용하지 않아 1day 취약점이 방치된 경우.
불필요한 서비스 및 계정 활성화
기본 관리자 계정(admin/admin) 등이 비활성화되지 않은 상태.
과도한 기능 노출
시스템에서 필요하지 않은 기능이나 디버깅 모드가 활성화되어, 공격 벡터가 증가.
보안 설정 검토 부족
필요하지 않은 포트, 서비스, API가 열려 있는 상태.
접근 제어 실패
NASA 정보 유출 사건
결과: 사용자 정보 및 프로젝트 관련 민감 정보가 유출.
미군 특수작전사령부 이메일 유출 사건
결과: 민감한 군사 이메일과 데이터가 누구에게나 노출.
Security Misconfiguration 사례
소프트웨어 및 구성요소 업데이트
자동 업데이트 기능 활성화 또는 주기적인 패치 관리 수행.
불필요한 서비스 및 계정 비활성화
기본 계정(admin/admin 등)을 비활성화하거나 강력한 비밀번호로 변경.
보안 설정 검토
웹 애플리케이션 방화벽(WAF)을 구성하여 외부 접근을 제한.
기능 노출 최소화
API, 관리 페이지 등 민감한 기능은 IP 화이트리스트, 인증 등을 통해 접근 통제.
접근 제어 강화
기본적으로 모든 외부 요청을 차단하고, 필요한 서비스만 허용(Whitelist 방식).
정기적인 취약점 스캐닝
클라우드 서비스(AWS, Azure, GCP) 보안 구성 점검 도구 활용.
로그와 모니터링 활성화
Security Misconfiguration은 잘못된 설정으로 인한 심각한 보안 문제를 초래할 수 있습니다.
이를 예방하기 위해 정기적인 점검과 업데이트, 기능 최소화, 접근 제어 강화 등 기본적인 보안 원칙을 철저히 준수해야 합니다.
Insecure Design은 2021년 OWASP Top 10에 새롭게 추가된 항목으로, 설계와 아키텍처 단계에서의 취약점으로 인해 발생하는 보안 문제를 다룹니다. 이는 단순한 구현 실수나 버그를 넘어, 제품의 설계 자체가 보안 사고에 취약하도록 만들어진 경우를 포함합니다.
보안 정책 부족
보안에 대한 우선순위가 낮거나, 비즈니스 요구사항만을 강조한 설계.
방어 및 제한 조건 부족
예) 매크로 방지, 1인 최대 구매 제한 등의 방어 기제 미흡.
취약한 아키텍처
예) 기본적으로 허용된 권한 설정, 민감 데이터의 평문 저장.
모니터링 및 대응 계획 부재
Equifax - 1억 5천만건 개인정보 유출 사건
결과: 대규모 개인정보 유출로 FTC로부터 7억 달러에 달하는 벌금을 부과받음.
Ashley Madison 개인정보 유출 사건
결과: 사용자 비밀번호가 대규모로 유출되고, 해시가 빠르게 크랙되어 사용자 정보의 민감성이 높은 서비스 특성상, 브랜드 신뢰도에 심각한 타격.
매크로 및 재고 싹쓸이 문제
위협 모델링 및 보안 설계
보안 우선 설계를 통해, 비즈니스 요구와 보안을 균형 있게 맞춤.
제약 조건 설계
예) 매크로 방지, 구매량 제한, CAPTCHA 적용 등.
강력한 인증 및 암호화
인증 및 권한 부여 체계를 역할 기반 접근 제어(RBAC)로 강화.
패치 및 취약점 관리 체계 도입
최신 취약점 데이터베이스(CVE)를 참고하여 사용 중인 구성요소를 점검.
모니터링 및 실시간 대응
공격 탐지 및 로그 관리를 위한 SIEM(Security Information and Event Management) 도구 사용.
보안 코드 리뷰 및 테스트
Insecure Design은 기본 설계부터 보안을 고려하지 않으면 심각한 사고로 이어질 수 있음을 경고합니다.
보안 설계, 위협 모델링, 정기적인 패치 관리 등을 통해 아키텍처와 설계에서부터 안전한 시스템을 구축해야 합니다.
Injection은 2017년 OWASP Top 10에서 1위였다가 2021년 3위로 내려온 항목으로, SQL Injection, XSS, Command Injection 등 사용자가 입력한 데이터를 적절히 처리하지 않아 발생하는 보안 취약점을 포함합니다.
이는 사용자의 악의적인 입력값이 코드, 명령어, 쿼리로 실행되는 경우 발생하며, 시스템의 데이터를 탈취하거나 조작하는 데 악용될 수 있습니다. Injection은 여전히 심각한 취약점으로, 검증 및 필터링 미비가 가장 큰 원인입니다.
사용자 입력 검증 부족
사용자가 입력한 데이터를 신뢰하고 검증 없이 바로 쿼리, 명령어, 코드로 실행.
파라미터라이제이션 미사용
데이터베이스 쿼리를 구성할 때 파라미터라이제이션(Prepared Statements)을 사용하지 않음.
인코딩 및 필터링 미흡
HTML, JavaScript, SQL 등에서 사용자 입력값을 적절히 인코딩하거나 Sanitization하지 않음.
취약한 파일 경로 및 이름 처리
사용자 입력을 통해 파일 경로, 파일 이름을 결정하거나 이를 직접 실행.
보안 기본 설정 부재
뽐뿌 개인정보 유출 사건 (2015년)
결과: 비밀번호 해시와 같은 민감한 사용자 데이터 266만 건 유출.
여기어때 개인정보 유출 사건
결과: 997만 명의 민감 정보(이름, 연락처 등) 탈취됨.
밀리의 서재 정보 유출 사건
파라미터라이제이션 사용
예: SELECT * FROM users WHERE id = ?
형태로 쿼리를 구성.
입력값 검증 및 필터링
입력값에서 위험한 문자를 제거하거나, 적절히 이스케이프 처리.
출력 인코딩
예: HTML에는 HTML 인코딩, JavaScript에는 JavaScript 인코딩 사용.
파일 경로 및 이름 검증
필요한 경우 입력값을 검증하고, 고정된 디렉토리 내에서만 파일 작업 수행.
정기적인 보안 테스트
취약점 스캐너로 SQL Injection, XSS, Command Injection 등 주요 취약점을 탐지.
보안 라이브러리 및 프레임워크 사용
보안 기능이 강화된 라이브러리(예: OWASP ESAPI)와 프레임워크를 활용.
에러 메시지 제한
Injection은 여전히 빈번하고 심각한 보안 취약점 중 하나로,
올바른 검증, 필터링, 파라미터라이제이션을 통해 쉽게 예방할 수 있습니다.
개발 단계부터 보안 조치를 철저히 적용하여 공격 벡터를 최소화하는 것이 중요합니다.
Cryptographic Failures는 2021년 OWASP Top 10에서 2위로 오른 항목으로, 기존에는 Sensitive Data Exposure라는 이름으로 불리며, 민감한 데이터를 안전하게 처리하지 못하는 문제를 다뤘습니다. 단순히 암호화를 적용했는지 여부를 넘어, 적절한 암호화 기법과 설정이 이루어지지 않을 경우 해당됩니다.
이 취약점은 하드코딩된 비밀번호, 불완전한 암호화 설정, 안전하지 않은 알고리즘 사용 등 다양한 문제를 포함하며, 민감한 데이터가 평문으로 노출되거나 암호화가 무효화될 가능성을 초래합니다.
하드코딩된 비밀번호 (CWE-259)
소스 코드나 설정 파일에 비밀번호, 키 등의 민감한 정보를 하드코딩.
취약하거나 노후화된 암호화 알고리즘 사용 (CWE-327)
DES, MD5, SHA-1과 같이 이미 깨지거나 안전하지 않은 알고리즘 사용.
충분하지 않은 엔트로피 (CWE-331)
암호화 키 생성 과정에서 예측 가능한 난수를 사용하여 취약점을 발생.
평문 데이터 전송
민감한 데이터를 HTTP, FTP, SMTP 등 암호화되지 않은 프로토콜로 전송.
암호화 강제 설정 부재
HSTS(HTTP Strict Transport Security) 헤더 미적용, HTTPS 미사용 등.
인증 및 키 관리 오류
페이스북 - 비밀번호 평문 저장
결과: 비밀번호 데이터가 공격에 취약하며, 유출 시 심각한 피해 초래.
Downgrade Attack (HTTPS 공격)
결과: 평문 데이터가 공격자에게 노출될 가능성 증가.
SHA-1 알고리즘 취약성
강력한 암호화 알고리즘 사용
암호화 키는 충분한 길이와 엔트로피를 보장하여 생성.
하드코딩된 비밀번호 제거
예: HashiCorp Vault, AWS Secrets Manager.
데이터 전송 암호화
HSTS 헤더를 적용해 HTTPS가 강제로 사용되도록 설정.
키 관리 강화
키 교환 시 안전한 프로토콜(TLS 1.2/1.3) 사용.
정기적인 보안 점검
최신 보안 표준과 가이드라인(예: NIST)을 따라 암호화 체계를 주기적으로 개선.
암호화 설정 강제
클라이언트와 서버 간 TLS 1.2/1.3 사용을 의무화.
취약점 대응 속도 개선
Cryptographic Failures는 암호화를 단순히 적용하는 것만으로 해결되지 않습니다.
안전한 알고리즘과 설정, 키 관리 등 체계적인 접근이 필요하며, 평문 데이터 노출을 방지하기 위한 종합적인 대처가 중요합니다.
Broken Access Control은 2017년 OWASP Top 10에서 5위에서 2021년 1위로 상승한 항목으로, 부적절한 접근 통제 또는 권한 검증 미흡으로 인해 발생하는 보안 취약점입니다. 이 취약점은 접근 권한이 없는 사용자가 데이터를 조회, 수정, 삭제하거나, 관리자 수준의 작업을 수행할 수 있도록 허용되는 경우를 포함합니다.
Broken Access Control은 웹 애플리케이션과 API에서 빈번히 발생하며, 공격자는 URL, API 요청 등을 조작하여 권한을 우회하거나 민감 데이터에 접근할 수 있습니다.
권한 검증 미흡
URL, 쿼리 파라미터, 쿠키 등을 조작하여 권한 검증 없이 요청을 처리.
IDOR (Insecure Direct Object Reference)
특정 사용자의 리소스(예: 게시글 ID, 파일 이름 등)에 대한 접근을 제한하지 않아, 다른 사용자가 식별자를 조작해 리소스에 접근.
API 접근 통제 부재
POST, PUT, DELETE 요청 처리 시 권한 확인 없이 요청을 처리.
기본 접근 허용
접근 제어를 기본적으로 허용(Allow All) 상태로 설정.
권한 상승 공격
IDOR로 인해 데이터 노출
예: /user/1000
→ /user/2000
으로 변경 시, 다른 사용자의 정보에 접근 가능.
관리자 기능 접근
/admin/dashboard
같은 URL에 직접 접근하여 관리자 페이지 표시.API 요청에서도 관리자가 수행해야 할 작업(예: 계정 삭제)이 일반 사용자에게 허용.
GitLab 권한 검증 결함 사례
최소 권한 원칙 (Least Privilege Principle)
기본적으로 접근 차단 상태로 설정하고, 명시적으로 허용된 경우에만 접근 가능.
권한 검증
사용자 및 역할(Role)에 따라 접근 가능한 리소스를 명확히 제한.
IDOR 방지
서버에서 요청마다 권한 검증 로직을 포함
보안 헤더 및 인증
권한 없는 접근 시 적절한 401/403 에러 반환.
API 보안 강화
API 요청에 대해 Rate Limiting 적용 및 비정상적 요청 모니터링.
감지 및 로깅
비정상적인 접근 시도(예: 반복된 실패, IDOR 시도 등)를 실시간 감지.
보안 테스트
Broken Access Control은 권한 관리와 검증 로직에서 발생하는 치명적인 취약점입니다.
이를 방지하려면 설계 단계에서부터 권한 모델을 명확히 정의하고, 모든 요청에 대해 철저한 검증과 로그 모니터링을 통해
이상 징후를 감지하는 체계를 구축해야 합니다.
OWASP Top 10은 몇 년 간격으로 갱신되며, 이를 통해 변화하는 보안 트렌드를 확인할 수 있습니다. 특히 2021년에는 API 보안 및 클라우드 환경에서의 보안 이슈가 더욱 중요해졌습니다.
현대의 애플리케이션은 API 기반으로 동작하는 경우가 많으며, 클라우드 환경에서 운영되는 경우도 늘어나고 있습니다. 이에 따라 API 취약점과 클라우드 구성 오류가 주요 보안 위협으로 떠오르고 있습니다.
기술적 조치뿐만 아니라, 애플리케이션 설계 단계에서부터 보안을 고려해야 한다는 흐름이 점점 강해지고 있습니다.
OWASP Top 10은 웹 보안의 핵심을 다루는 가이드로, 모든 개발자와 보안 전문가가 숙지해야 할 내용입니다. 하지만 이를 단순히 참고하는 데 그치지 않고, 실제 프로젝트에 적극 반영하여 실질적인 보안 강화를 이루는 것이 중요합니다.
보안은 한 번의 작업으로 끝나지 않습니다. 끊임없이 변화하는 위협에 맞서 지속적으로 업데이트하고 개선하는 과정이 필요합니다.
A. 전 세계 보안 전문가와 조직이 참여하여 데이터를 수집하고, OWASP 재단이 이를 종합하여 발표합니다.
A. 약 3~4년마다 업데이트되며, 최신 보안 위협과 기술 트렌드를 반영합니다.
A. 프로젝트의 성격에 따라 다르지만, 가능한 한 모든 항목을 점검하고 적용하는 것이 추천됩니다.
상담만 받아보셔도 좋습니다 긱다이브의 상담으로 업체 비교를 시작해보세요