OWASP란 무엇인가요? OWASP 상위 10개 취약점 및 위험 소개

OWASP는 소프트웨어 보안을 향상하기 위해 노력하는 비영리 재단입니다.

OWASP (Open Worldwide Application Security Project)는 조직이 신뢰할 수 있는 안전한 애플리케이션을 위한 소프트웨어를 설계, 개발, 획득, 운영 및 유지관리할 수 있도록 하는 데 전념하는 개방형 커뮤니티입니다. 이 프로그램에는 커뮤니티 주도의 오픈소스 소프트웨어 프로젝트와 전 세계적으로 수백 개의 지부와 수만 명의 회원이 참여하는 지역적, 글로벌 컨퍼런스가 포함됩니다.

OWASP가 중요한 이유는?

OWASP는 웹 애플리케이션 보안 위험에 대한 인식을 높이는 데 중요한 역할을 하며, 웹 애플리케이션 보안의 증가하는 과제를 해결하기 위한 귀중한 리소스, 도구, 문서 및 모범 사례를 제공합니다. OWASP는 개발자, 보안 전문가 및 조직이 잠재적 위협을 이해하고 보안 모범 사례를 채택하도록 돕습니다.  

OWASP는 가장 심각한 웹 애플리케이션 보안 위험 10가지 와 이를 완화하기 위한 효과적인 프로세스, 절차 및 통제 수단 목록을 유지 관리합니다. OWASP는 또한 API 개발 및 유지 관리에 참여하는 사람들을 교육하고 일반적인 API 보안 취약점에 대한 인식을 높이기 위해 상위 10가지 API 보안 위험 목록을 제공합니다.

OWASP 커뮤니티는 개인과 조직이 프로젝트와 리소스에 기여하도록 장려합니다. 이러한 협력적이고 설문 조사 중심의 접근 방식을 통해 커뮤니티는 구성원의 집단적 지식과 전문성을 활용하여 포괄적이고 최신 리소스를 확보할 수 있습니다.

보안 솔루션을 구현할 때 고려해야 할 점은 앱과 API 모두에 공통적인 보안 위험이 있다는 것입니다 . 예를 들어: 

  • 취약한 인증/권한 부여 제어 
  • 잘못된 구성 
  • 비즈니스 로직 남용(자격 증명 채우기, 계정 인수)  
  • 서버 측 요청 위조(SSRF).

 

OWASP 상위 10개 애플리케이션 보안 위험

OWASP Top 10은 가장 심각한 웹 애플리케이션 보안 위험을 나열한 널리 알려진 목록입니다. 이 목록은 개발자, 보안 전문가 및 조직이 중요한 웹 애플리케이션 보안 위험을 식별하고 완화하기 위해 노력의 우선 순위를 정하는 데 도움이 되는 가이드입니다. 

OWASP 상위 10대 위험 목록 에 포함되어 있다고 해서 반드시 모든 웹 애플리케이션에 널리 퍼져 있거나 심각하다는 것을 나타내는 것은 아니며, 상위 10대 위험은 특정 순서나 우선 순위에 따라 순위가 매겨지지 않았습니다.  

2021년 OWASP Top 10 웹 애플리케이션 보안 위험은 다음과 같습니다.

  1. 접근 제어가 손상되었습니다. 이러한 취약점은 액세스 제어 및 권한 부여가 제대로 시행되지 않아 공격자가 승인되지 않은 기능이나 데이터에 액세스할 수 있는 경우에 발생합니다. 이는 내부 객체에 대한 직접 참조로 사용되는 사용자 입력을 애플리케이션이 검증하거나 승인하지 못할 때 발생할 수 있는 안전하지 않은 직접 객체 참조(IDOR)로 인해 발생할 수 있습니다. 또한, 애플리케이션이 초기 인증 또는 권한 부여 단계에서만 액세스 제어를 검증하지만 애플리케이션의 기능이나 작업 전반에 걸쳐 해당 제어를 일관되게 시행하지 않는 경우 기능 수준 액세스 제어가 누락되어 발생할 수도 있습니다. 웹 애플리케이션 방화벽(WAF)은 액세스 제어를 모니터링하고 시행하여 중요한 개체나 리소스에 대한 무단 액세스를 방지함으로써 이러한 공격으로부터 보호하는 데 도움이 될 수 있습니다.

  2. 암호화 오류. 이러한 위험은 민감한 데이터가 전송 중이거나 저장 중일 때 이를 제대로 보호하지 못해 발생합니다. 암호화 실패 로 인해 데이터 침해, 기밀 정보에 대한 무단 액세스, EU 일반 데이터 보호 규정(GDPR) 및 PCI 데이터 보안 표준(PCI DSS)과 같은 금융 표준을 준수하지 않는 등의 데이터 개인 정보 보호 규정 위반이 발생할 수 있습니다. 이러한 실패는 안전하지 않은 암호화 저장, 일반 텍스트로 데이터 저장 또는 안전하지 않은 키 관리로 인해 발생할 수 있습니다. 위험은 정보 유출로 인해 발생할 수도 있는데, 정보 유출은 취약한 키 또는 난수 생성 또는 암호화 프로토콜의 결함으로 인해 발생할 수 있습니다. 
  3. 주입 공격. 주입 취약점은 공격자가 신뢰할 수 없거나 적대적인 데이터를 명령 또는 쿼리 언어에 삽입하거나, 사용자가 제공한 데이터가 애플리케이션에서 검증, 필터링 또는 정리되지 않을 때 발생하여 의도치 않게 악성 명령이 실행됩니다. 이 위험 범주에는 NoSQL, OS 명령, LDAP, SQL 주입 공격이 포함되며, 공격자가 다른 사용자가 보는 웹 페이지에 JavaScript와 같은 악성 클라이언트 측 스크립트를 삽입하는 크로스 사이트 스크립팅(XSS) 도 포함됩니다 . 이로 인해 로그인 자격 증명, 개인 데이터, 세션 쿠키와 같은 민감한 정보가 도난당할 수 있습니다. WAF는 반사(비영구적), 저장된(영구적), DOM(문서 개체 모듈) 기반 XSS를 포함한 들어오는 요청을 검사하고 필터링하여 악성 코드 삽입 시도를 탐지하고 차단하고 이러한 요청이 애플리케이션에 도달하는 것을 방지하는 데 도움이 될 수 있습니다.
  4. 안전하지 않은 디자인. 이는 누락되거나 효과적이지 않은 보안 제어 및 구조적 결함으로 표현되는 다양한 약점을 나타내는 광범위한 범주입니다. 이러한 결함은 애플리케이션이 본질적으로 안전하지 않은 프로세스에 의존하도록 설계되었거나, 특정 공격에 대항하기 위한 필요한 보안 제어가 구현되지 않았을 때 발생할 수 있습니다. 이러한 위험은 위협 모델링, 보안 설계 패턴 및 참조 아키텍처를 더 많이 사용하면 완화할 수 있습니다.  
  5. 보안 오류. 웹 애플리케이션 프레임워크, 플랫폼, 서버 또는 보안 제어에서 보안이 강화되지 않으면 무단 액세스, 중요 정보 노출 또는 기타 보안 취약성이 발생할 수 있습니다. 보안 오류로 인한 위험은 클라우드 서비스에 대한 권한이 부적절하게 구성되거나 사용되지 않는 포트, 서비스, 계정, 권한 등 불필요한 기능이 설치되거나 활성화되어 발생할 수도 있습니다. 웹 앱과 API 모두에 대한 잘못된 구성은 주요 클라우드 공급업체가 다양한 기본 보안 태세를 갖추고 있고 아키텍처가 점점 더 분산되고 멀티 클라우드 패브릭 전반에 분산되고 있기 때문에 상당한 위험입니다.    
  6. 취약하고 오래된 구성 요소. 라이브러리, 프레임워크, 플러그인 등 오래되거나 패치가 적용되지 않았거나 취약한 구성 요소를 사용하면 애플리케이션이 알려진 보안 결함에 노출되어 악용 위험이 커집니다. 이러한 위험은 운영 체제(OS), 웹/애플리케이션 서버, 데이터베이스 관리 시스템(DBMS), 애플리케이션, API, 모든 구성 요소, 런타임 환경, 라이브러리를 포함한 지원되지 않거나 오래된 소프트웨어로 인해 발생할 수 있습니다. 이러한 위협은 조직이 시스템의 기본 플랫폼, 프레임워크, 종속성을 수정하거나 업그레이드하기 위한 시기적절하고 위험 기반 대책을 마련하지 않아 시스템이 알려진 위험에 불필요하게 수일 또는 수주 동안 노출될 수 있는 경우 특히 위험합니다. 복잡한 소프트웨어 공급망과 CI/CD 파이프라인을 통한 자동화로 인해 취약한 소프트웨어가 IT 스택에 도입될 위험이 커집니다. WAF는 취약점 악용을 방지하는 중요한 임시방편 역할을 할 수 있습니다.  
  7. 식별 및 인증 실패. 인증, 신원 및 세션 관리의 취약점을 악용하여 공격자는 사용자 계정, 비밀번호, 세션 토큰을 손상시키거나 안전하지 않은 세션 처리를 악용할 수 있습니다. 이러한 영역에서 오류가 발생하면 자격 증명 채우기 와 같은 자동화된 공격이 허용될 수 있습니다. 비밀번호 관련 취약점은 이러한 위험의 가장 흔한 원천인데, 많은 사람들이 비밀번호를 재사용하거나 기본 비밀번호, 취약한 비밀번호 또는 잘 알려진 비밀번호를 사용하기 때문입니다. 세션 관리 문제는 인증 관련 공격으로 이어질 수도 있는데, 특히 로그아웃이나 비활성 기간 동안 사용자 세션이나 인증 토큰이 적절하게 무효화되지 않을 경우 더욱 그렇습니다. OWASP Top 10, API Security Top 10 및 Automated Threats 프로젝트에 자세히 설명된 대로 인증 제어를 우회하는 공격은 웹 앱과 API 모두에 대한 위험이 증가하고 있습니다.  
  8. 소프트웨어 및 데이터 무결성 오류. 이러한 취약점은 데이터 및 소프트웨어 무결성 위반을 방지하지 못하는 애플리케이션 코드와 인프라로 인해 발생합니다. 이는 애플리케이션이 신뢰할 수 없는 출처, 저장소, CDN의 플러그인, 라이브러리 또는 모듈을 사용할 때 발생할 수 있습니다. 또한 소프트웨어 업데이트, 중요한 데이터 수정, 검증되지 않은 CI/CD 파이프라인 변경 중에도 발생할 수 있습니다. 공격자는 잠재적으로 자신의 업데이트를 업로드하여 모든 설치에 배포하고 실행할 수 있습니다. 신뢰할 수 없는 직렬화된 데이터를 가져와서 유효성을 확인하지 않고 사용하는 애플리케이션의 안전하지 않은 역직렬화도 이 위험 범주에 속하며, 원격 코드 실행(RCE) 및 권한 상승과 같은 공격을 허용합니다. 
  9. 보안 로깅 및 모니터링 실패. 부적절한 로깅 및 모니터링은 보안 사고를 적시에 감지하고 대응하는 것을 방해하여 공격이나 무단 활동을 식별하고 완화하기 어렵게 만듭니다. 이는 로그인, 로그인 실패, 고가 거래와 같은 감사 가능한 이벤트가 식별되거나 기록되지 않고, 애플리케이션이 실시간으로 활성 공격을 감지하지 못한다는 것을 의미합니다.  
  10. 서버 측 요청 위조(SSRF). 이러한 취약점은 애플리케이션이 원격 리소스에서 데이터를 가져오기 전에 사용자가 입력한 URL을 검증하거나 삭제하지 않을 때 발생합니다. 공격자는 이러한 결함을 이용해 방화벽이나 다른 방어수단으로 보호하더라도 애플리케이션이 악성 웹 대상에 액세스하도록 강요할 수 있습니다. 이러한 공격은 대상 리소스가 클라우드 메타데이터 서비스나 백엔드 API와 같은 다른 시스템과 신뢰 관계가 있는 경우에도 발생할 수 있으며, 공격자는 이러한 신뢰할 수 있는 서비스에 요청을 보내 민감한 정보를 추출하거나 승인되지 않은 작업을 수행할 수 있습니다. SSRF를 완화하려면 최소 권한 액세스를 위한 시스템을 설계하고 WAF를 사용하여 보안 정책에서 URI(Uniform Resource Identifier) 매개변수를 명시적으로 정의하고 이에 액세스할 수 있는 호스트를 허용/거부합니다.

2021 OWASP Top 10에는 이전 2017 OWASP Top 10에 비해 일부 새로운 범주와 이름 변경이 반영되었습니다. 이러한 변경 사항에는 2017년 위험 위협 XML 외부 엔터티(XXE)를 2021년 보안 오류 범주에 통합하고 2017년 교차 사이트 스크립팅(XSS)을 2021년 주입 범주에 추가하는 것이 포함되었습니다. 2017년 위험인 안전하지 않은 역직렬화는 이제 2021년 소프트웨어 및 데이터 무결성 실패 범주에 포함되었습니다.    

기타 OWASP 출판물

OWASP는 현재 다음의 16개 OWASP 플래그십 프로젝트를 포함하여 293개 프로젝트를 후원하고 있으며, 이러한 프로젝트는 OWASP와 애플리케이션 보안 전반에 전략적 가치를 제공합니다.

  1. OWASP Amass 프로젝트는 오픈 소스 정보 수집 및 능동적 정찰 기술을 사용하여 공격 영역에 대한 네트워크 매핑을 수행하고 외부 자산을 검색하는 데 도움이 되는 도구를 정보 보안 전문가가 개발했습니다. 
  2. OWASP 애플리케이션 보안 검증 표준 프로젝트(ASVS)는 웹 애플리케이션 기술적 보안 통제를 테스트하기 위한 기반을 제공하고 개발자에게 안전한 개발을 위한 요구 사항 목록을 제공합니다.  
  3. OWASP 치트시트 시리즈는 애플리케이션 개발자와 보안 담당자를 위한 쉽게 따를 수 있는 일련의 모범 사례 가이드를 제공하기 위해 만들어졌습니다. 많은 개발자와 애플리케이션에 실용적이지 않은 세부적인 모범 사례에 초점을 맞추는 것이 아니라, 이 글은 대다수 개발자가 실제로 구현할 수 있는 모범 사례를 제공하는 것을 목적으로 합니다.  
  4. OWASP CycloneDX 는 사이버 위험 감소를 위한 고급 공급망 기능을 제공하는 풀스택 BOM(자재 목록) 표준입니다.   
  5. OWASP Defectdojo는 템플릿, 보고서 생성, 메트릭 및 기준 셀프 서비스 도구를 제공하여 테스트 프로세스를 간소화하는 오픈소스 취약점 관리 도구입니다. 
  6. OWASP 종속성 검사는 프로젝트의 종속성에 포함된 공개적으로 공개된 취약점을 탐지하기 위한 소프트웨어 구성 분석(SCA) 도구입니다. 이는 주어진 종속성에 대한 공통 플랫폼 열거(CPE) 식별자가 있는지 여부를 확인하여 수행됩니다. 발견되면 연관된 일반적인 취약점 및 노출(CVE) 항목에 대한 링크가 포함된 보고서가 생성됩니다.   
  7. OWASP Dependency-Track은 조직이 소프트웨어 공급망의 위험을 식별하고 줄일 수 있도록 하는 지능형 구성 요소 분석 플랫폼입니다.
  8. OWASP Juice Shop은 보안 교육, 인식 데모, 깃발 뺏기 대회, 보안 도구 실험에 사용되는 가장 현대적이고 정교한 불안전한 웹 애플리케이션일 것입니다. Juice Shop은 실제 애플리케이션에서 발견되는 많은 다른 보안 결함과 함께 OWASP Top Ten 의 전체 취약점을 포괄합니다.   
  9. OWASP 모바일 애플리케이션 보안은 모바일 앱에 대한 보안 표준을 제공하는 OWASP의 대표적인 프로젝트입니다. 또한 모바일 앱 보안 테스트에 사용되는 프로세스, 기술, 도구를 다루는 포괄적인 테스트 가이드는 물론, 테스터가 일관되고 완전한 결과를 제공할 수 있도록 하는 광범위한 테스트 사례 세트도 포함되어 있습니다. 
  10. OWASP ModSecurity 핵심 규칙 세트는 ModSecurity 또는 호환 웹 애플리케이션 방화벽과 함께 사용할 수 있는 일반적인 공격 탐지 규칙 세트입니다. CRS는 최소한의 거짓 경고로 OWASP 상위 10대 공격을 포함한 광범위한 공격으로부터 웹 애플리케이션을 보호하는 것을 목표로 합니다.   
  11. OWASP 프로젝트 OWTF (Offensive Web Testing Framework)는 웹 애플리케이션의 보안을 평가하고 테스트하도록 설계된 오픈소스 웹 애플리케이션 침투 테스트 프레임워크입니다. OWTF의 주요 목표는 보안 전문가와 침투 테스터가 웹 애플리케이션의 취약점을 평가하고 테스트하는 프로세스를 자동화하여 보안 취약점을 보다 효과적으로 식별하고 해결할 수 있도록 돕는 것입니다.
  12. OWASP SAMM (소프트웨어 보증 성숙도 모델), 보안 개발 수명 주기 모델링을 분석하고 개선하는 효과적이고 측정 가능한 방법을 제공합니다 . SAMM은 소프트웨어 수명 주기 전체를 지원하며 기술 및 프로세스에 구애받지 않습니다 .  
  13. OWASP 보안 지식 프레임워크는 여러 프로그래밍 언어로 보안 코딩 원칙을 설명하는 웹 애플리케이션으로, 개발자가 설계상 안전한 애플리케이션을 구축하는 데 도움을 주는 것을 목표로 합니다.  
  14. OWASP Security Shepherd는 다양한 기술 수준을 갖춘 계층을 대상으로 보안 인식을 촉진하고 개선하도록 설계된 웹 및 모바일 애플리케이션 보안 교육 플랫폼입니다. 이 프로젝트의 목적은 AppSec 초보자나 숙련된 엔지니어가 침투 테스트 기술을 보안 전문가 수준으로 향상시키는 것입니다.   
  15. OWASP 웹 보안 테스트 가이드는 웹 애플리케이션과 웹 서비스의 보안을 테스트하는 포괄적인 가이드입니다. 이는 전 세계의 침투 테스터와 조직에서 사용하는 모범 사례 프레임워크를 제공합니다.
  16. OWASP ZAP은 개발 및 테스트 단계에서 보안 전문가와 개발자가 웹 애플리케이션의 보안 취약점을 식별하고 완화하는 데 도움이 되도록 설계된 웹 애플리케이션 보안 테스트 도구입니다.   

통합 보안 제어의 사례

OWASP는 웹 애플리케이션 보안 위험에 대한 인식을 높이고 개발자, 보안 전문가 및 조직 사이에서 모범 사례를 옹호함으로써 소프트웨어 보안을 개선하려는 지속적인 노력에서 중요한 역할을 합니다. 커뮤니티 중심 프로젝트인 OWASP는 전문가와 지지자들을 모아 웹 애플리케이션 보안을 개선하기 위해 협업하고, 안전한 코딩 관행과 안전한 개발 방법론을 장려하는 보안 의식 문화를 구축하는 데 기여합니다.

또한 OWASP는 조직의 보안 태세를 강화하는 데 도움이 되는 풍부한 무료 오픈 소스 도구, 문서, 리소스를 제공합니다. 여기에는 OWASP Top 10, OWASP API Security Top 10, 웹 애플리케이션에 대한 자동화된 위협 프로젝트가 포함됩니다. 기타 OWASP 이니셔티브는 다음과 같습니다.

OWASP 회원이 되거나 지역 지부 회의에 참석하여 참여하세요. 회의는 회원과 비회원 모두 무료로 참여 가능합니다. 또한 OWASP는 매년 12개 정도의 글로벌 및 지역 이벤트를 주최하는데, 이는 경력 기술을 향상시키고, 전문가 네트워크를 구축하고, 업계의 새로운 트렌드에 대해 알아볼 수 있는 좋은 기회입니다.

F5, OWASP 보안 위험 해결

F5는 OWASP 재단과 소프트웨어 보안 개선, 웹 애플리케이션 보안 위험 및 취약점에 대한 인식 제고에 대한 헌신을 지원합니다. F5 웹 애플리케이션 방화벽 솔루션은 OWASP Top 10 에서 비롯된 광범위한 위험을 차단하고 완화합니다 .

F5 WAF 솔루션은 F5 Labs 의 위협 인텔리전스와 ML 기반 보안을 비롯한 서명 및 행동 보호 기능을 결합하여 새로운 위협에 대응합니다. 클라우드, 온프레미스, 엣지 환경에서 지속적으로 애플리케이션을 보호하는 데 따른 부담과 복잡성을 덜어주는 동시에 중앙 집중식 SaaS 인프라를 통해 관리를 간소화합니다. F5 WAF는 개발 프레임워크와 CI/CD 파이프라인에 보호 기능을 통합하여 핵심 보안 기능, 중앙 집중식 오케스트레이션, 분산 애플리케이션 전반의 앱 성능과 보안 이벤트를 360도로 볼 수 있는 단일 대시보드를 통한 감독을 제공함으로써 앱 보안을 간소화합니다. 

F5는 앱이 발전하고 API 배포가 늘어남에 따라 늘어나는 공격 표면과 새로운 위협을 보호하는 솔루션을 통해 OWASP API 보안 상위 10개 에서 식별된 위험을 해결합니다. F5 웹 애플리케이션 및 API 보호(WAAP) 솔루션은 WAF, API 보안 , L3-L7 DDoS 완화, 자동화된 위협 및 사기에 대한 봇 방어 등의 포괄적인 보호 기능을 통해 최신 앱 공격 표면 전체를 방어합니다. 분산 플랫폼을 사용하면 호스팅되는 위치에 관계없이 앱과 API 전체 에 일관된 정책을 배포하고 보안을 확장하고, 보안을 API 수명 주기 및 더 광범위한 생태계에 통합하는 것이 간편해집니다.

F5는 또한 OWASP의 웹 애플리케이션에 대한 자동화된 위협 프로젝트에 명시된 위험을 해결하기 위한 솔루션도 제공합니다. F5 Distributed Cloud Bot Defense는 기존 봇 관리 솔루션을 우회할 수 있는 사기와 남용을 방지하고, 사용자에게 불편을 주거나 고객 경험을 방해하지 않으면서 실시간 모니터링과 인텔리전스, ML 기반 회고적 분석을 제공하여 조직을 자동화된 공격으로부터 보호합니다. 분산형 클라우드 봇 방어는 공격자가 어떻게 재편하든, 공격이 웹 앱에서 API로 방향을 바꾸든, 원격 측정 데이터를 스푸핑하거나 인간의 CAPTCHA 솔버를 사용하여 자동화 방지 방어를 우회하려고 시도하든 관계없이 효과를 유지합니다.

F5는 또한 관리형 클라우드 제공 완화 서비스로서 고급 온라인 보안을 위한 다계층 DDoS 보호 기능을 제공하며, 이를 통해 대규모 네트워크, 프로토콜 및 애플리케이션을 표적으로 하는 공격을 실시간으로 탐지하고 완화합니다. 동일한 보호 기능은 온프레미스 하드웨어, 소프트웨어 및 하이브리드 솔루션에서도 제공됩니다. F5 분산 클라우드 DDoS 완화는 볼륨형 및 애플리케이션별 레이어 3-4 공격과 고급 레이어 7 공격이 네트워크 인프라와 애플리케이션에 도달하기 전에 이를 방어합니다.