안녕하세요! 오늘은 소프트웨어 보안에서 가장 중요하고도 기본이 되는 OWASP Top 10에 등록된 취약점들의 항목과 대응 전략을 소개해 드리겠습니다.
OWASP Top 10은 전 세계적으로 가장 많이 참조되는 웹 애플리케이션 보안 가이드라인인데요. 이번 글에서 6위부터 10위까지의 항목에 대해 상세히 알아보고, 이를 실무에서 어떻게 효과적으로 대응할 수 있는지 실질적인 팁을 공유드리겠습니다. 🛠️
웹 애플리케이션 보안은 현대 디지털 환경에서 가장 중요한 이슈 중 하나입니다. 해커들은 끊임없이 새로운 공격 방법을 시도하고 있으며, 이에 맞서 보안을 강화하는 것은 모든 개발자와 보안 전문가들에게 필수적인 과제가 되었습니다.
OWASP(Open Web Application Security Project)는 이러한 보안 문제를 체계적으로 연구하고, 웹 애플리케이션에서 자주 발생하는 취약점을 정리한 OWASP Top 10을 3~4년 주기로 발표하고 있습니다.
아래 이미지는 2017년 발표와 2021년 발표를 비교하며 순위 변동 및 새로 추가된 항목을 보여줍니다.
이번 글에서는 2021년 발표된 OWASP Top 10 목록의 주요 항목을 살펴보고, 보안 트렌드의 변화와 이를 실무에서 어떻게 활용할 수 있는지에 대해 심도 있게 다뤄보겠습니다.
Server-Side Request Forgery(SSRF)는 웹 애플리케이션 취약점 중 하나로, 2017년 OWASP Top 10에 새롭게 추가된 항목입니다. 비록 최근에 등장했지만, 그 영향력은 무시할 수 없습니다.
SSRF는 주로 사용자가 입력한 URL이나 URL과 연결된 데이터를 충분히 검증하지 않았을 때 발생합니다. 이를 통해 애플리케이션이 해당 URL로 직접 요청(Request)을 보내게 되는 상황이 발생하며, 이는 다양한 공격 벡터를 제공합니다.
사용자 입력 검증
외부 요청을 제한하거나 필요한 요청만 허용합니다.
네트워크 분리
내부 네트워크와 외부 네트워크를 철저히 분리해 외부로부터의 접근을 방지합니다\
.
WAF 설정 검증
WAF가 내부 자원으로의 요청을 중계하지 않도록 설정을 점검합니다.
로깅 및 모니터링
Security Logging and Monitoring Failures는 2017년 OWASP Top 10에서 10위에서 9위로 상승한 항목으로, 보안 사고를 탐지하고 대응하는 데 실패하는 상황과 관련됩니다. 공격이 발생하거나 시스템에 문제가 생겨도 이를 즉시 인지하지 못하거나 알지 못하는 경우를 의미합니다.
로그 미수집
로그를 전혀 생성하지 않거나 필수적인 이벤트(예: 로그인 실패, 권한 검증 실패 등)를 로깅하지 않는 경우.
비효율적인 로그 관리
알림 체계의 부재
로그가 제대로 기록되더라도, 적절한 관리자에게 알림이 전달되지 않아 문제가 실시간으로 파악되지 않는 경우.
비정상 행동 모니터링 실패
Citrix 데이터 유출 사건
적절한 로깅
로그 포맷을 표준화하여 읽기 쉽고 분석 가능한 형태로 관리.
중앙 집중형 로그 관리
로컬 로그 저장에 의존하지 않고, 원격 서버에 백업.
실시간 알림 시스템 구축
관리자가 즉각적으로 인지할 수 있는 체계를 마련.
비정상 패턴 탐지 및 모니터링
예) 짧은 시간 동안 동일한 IP에서의 반복적인 로그인 실패 탐지.
정기적 모니터링 및 감사
자동화된 도구와 수동 감사 프로세스를 병행.
Security Logging and Monitoring Failures는 발생한 침해 사실조차 몰랐던 상황을 방지하기 위한 핵심 영역입니다. 체계적인 로깅과 모니터링을 통해 사고를 신속히 탐지하고 대응할 수 있는 환경을 구축하는 것이 중요합니다.
Software and Data Integrity Failures는 소프트웨어 업데이트, 데이터 처리, 또는 CI/CD 자동화 과정에서 적절한 무결성 검사가 이루어지지 않아 발생하는 취약점입니다. 이로 인해 악성 코드가 포함된 업데이트가 배포되거나, 신뢰할 수 없는 디펜던시가 사용되며, 공급망 공격(Supply Chain Attack)에 취약해질 수 있습니다.
무결성 검사 부재
소프트웨어 업데이트나 데이터 처리 과정에서 디지털 서명 또는 무결성 검증을 생략하는 경우.
신뢰할 수 없는 레포지토리 사용
npm, Maven 등 패키지 관리자에서 신뢰할 수 없는 소스를 사용하는 경우.
CI/CD 파이프라인의 보안 결여
빌드 및 배포 자동화 과정에서 검증이 부족하거나, 적절한 액세스 제어가 이루어지지 않는 경우.
취약한 디펜던시 사용
SolarWinds 공격
결과: 광범위한 데이터 유출 및 악성 행위.
CCleaner 공격
결과: 대규모 사용자가 피해를 입음.
NotPetya 랜섬웨어
결과: 글로벌 공급망에 심각한 피해 초래.
신뢰할 수 있는 레포지토리 설정
타사 레포지토리 사용 시 철저한 검증 진행.
취약성 검사 도구 사용
정기적으로 취약점 DB와 비교해 사용 중인 패키지의 최신 보안 상태를 확인.
CI/CD 파이프라인 보안 강화
빌드 도구, 배포 환경의 보안 상태를 정기적으로 검토.
소프트웨어 업데이트 무결성 확인
사용자에게 신뢰할 수 있는 업데이트만 배포.
서플라이 체인 모니터링
Software and Data Integrity Failures는 단순한 취약점 이상의 심각한 영향을 미칠 수 있는 보안 문제입니다. 이를 예방하기 위해 무결성 검증, 공급망 점검, CI/CD 보안 등을 적극적으로 도입해야 합니다.
Broken Authentication은 2017년 OWASP Top 10에서 2위에 오른 취약점으로, 인증 절차에서 발생하는 다양한 보안 문제를 의미합니다. 대표적으로는 약한 비밀번호 사용, 크리덴셜 스터핑 및 브루트포스 공격에 대한 방어 부족, 인증 세션 또는 토큰 관리의 부재 등이 해당됩니다. 이는 인증 시스템이 공격자에게 쉽게 뚫리게 하여 민감 데이터 유출, 계정 탈취 등 심각한 문제를 초래할 수 있습니다.
약한 비밀번호 및 비밀번호 관리 부실
123qwe
, admin/password
).비밀번호를 평문으로 저장하거나, 약한 해싱 알고리즘(MD5 등)을 사용하는 경우.
자동화 공격 방어 부족
크리덴셜 스터핑(공격자가 유출된 사용자 이름/비밀번호 조합을 이용하여 로그인 시도) 및 브루트포스 공격 방어 미흡.
세션 및 토큰 관리 부재
유출된 토큰을 취소하거나 갱신(Refresh)하지 못하는 구조.
다중 인증(MFA) 미적용
계정 탈취 방지를 위한 다중 인증(2FA, MFA) 미적용.
로그인 실패에 대한 비정상 처리
중소기업 NAS 공격
결과: 해커가 공격하여 민감 데이터가 유출되거나 시스템이 암호화되는 피해.
법원 해킹 사건
123qwe
처럼 쉽게 추측 가능한 값.결과: 북한 해커의 공격을 받았으며, 피해가 반년간 은폐됨.
선관위 시스템 비밀번호 사건
12345
로 설정된 관리자 계정.
강력한 비밀번호 정책
자동화 공격 방어
로그인 시도 제한(예: 실패 5회 이후 계정 잠금).
세션 및 토큰 관리 강화
*토큰 리프레시(Refresh)**를 위한 안전한 절차 마련.
다중 인증(MFA) 적용
특히 관리자 계정에는 강제 적용.
비밀번호 재사용 방지
유출된 크리덴셜 DB와 비교하여 비밀번호 설정을 차단.
로그인 실패 모니터링
비정상적인 시도가 감지되면 관리자에게 알림 발송 및 계정 잠금.
Broken Authentication은 인증 시스템의 가장 기본적인 문제로 시작해 심각한 피해를 초래할 수 있습니다. 강력한 비밀번호 정책, 세션 관리, 다중 인증 등을 통해 기본 보안을 탄탄히 하고, 자동화된 공격에 대비한 체계를 마련하는 것이 필수적입니다.
Using Components with Known Vulnerabilities는 2017년 OWASP Top 10에서 9위에서 6위로 상승한 항목으로,
취약점이 이미 알려진 소프트웨어, 프레임워크, 라이브러리 또는 외부 서비스를 사용함으로써 발생하는 보안 문제를 다룹니다.
이는 단순히 소프트웨어 업데이트를 하지 않는 것뿐만 아니라, 사용 중인 구성요소에 대해 인지하지 못하거나 적시에 취약점을 대응하지 못하는 경우도 포함됩니다.
소프트웨어 구성요소 관리 부족
오래된 버전의 소프트웨어 또는 프레임워크를 사용하면서도, 관련 취약점을 인지하지 못함.
취약점 대응 지연
적절한 시간 내에 패치 적용 또는 보안 설정 강화가 이루어지지 않음.
외부 API 및 서비스의 보안 문제
외부 API 또는 서비스를 사용하는 과정에서, 해당 구성요소에 존재하는 취약점에 대해 적절히 검증하지 않음.
IoT 및 업데이트 부실 디바이스
Log4Shell (Log4j 취약점)
문제 발생 원인: Log4j 라이브러리의 취약점(Log4Shell)이 보고된 이후에도, 수많은 기업과 프로젝트에서 적시에 업데이트를 하지 않음.
공격자들이 공개된 페이로드를 그대로 사용해 대규모 스캔을 수행.
Heartbleed (OpenSSL 취약점)
문제 발생 원인: OpenSSL 라이브러리의 취약점이 보고된 이후에도, 주요 웹 서버 및 클라이언트에서 패치를 적용하지 않음.
암호화 키, 사용자 비밀번호 등의 민감한 정보가 대규모로 유출됨.
Mirai 봇넷
문제 발생 원인: IoT 디바이스 제조사가 취약점을 패치하지 않거나, 사용자들이 업데이트를 적용하지 못함.
구성요소 목록 관리 (SBOM)
의존성과 버전을 체계적으로 관리하고, 변경 사항을 지속적으로 추적.
취약점 스캐닝 및 업데이트
최신 취약점 데이터베이스(CVE, NVD)와 비교해 취약한 구성요소를 식별하고 즉시 업데이트 적용.
외부 API 및 서비스 검증
API와의 통신에서 HTTPS 및 기타 암호화 메커니즘을 활용.
IoT 및 소프트웨어 업데이트 체계 강화
사용자들이 쉽게 업데이트를 적용할 수 있도록 프로세스를 간소화.
취약점 대응 시간 단축
취약점 발견 후, 패치 적용 또는 대체 소프트웨어 도입까지의 시간을 최소화.
공급망 보안 모니터링
외부 공급업체가 보안 규정을 준수하고 있는지 확인.
Using Components with Known Vulnerabilities는 공급망 보안과 직결되는 중요한 취약점입니다.
지속적인 관리, 모니터링, 신속한 패치 적용을 통해 취약점의 악용 가능성을 차단하는 것이 핵심입니다.
이번 글에서는 OWASP Top 10 중 10위부터 6위까지를 중점적으로 살펴봤습니다.
2편에서는 상위 항목들을 심층적으로 분석하고, 각 취약점 별 구체적인 대응 전략과 팁을 소개드릴 예정입니다.
상담만 받아보셔도 좋습니다 긱다이브의 상담으로 업체 비교를 시작해보세요