OWASP(Open Web Application Security Project)는 웹 애플리케이션의 보안을 개선하는 것을 사명으로 하는 비영리 조직입니다. OWASP는 개발자에게 취약성 목록, 보안 모범 사례, 웹 애플리케이션 테스트를 연습하기 위한 의도적으로 취약한 시스템 등을 포함한 다양한 보안 리소스에 대한 무료 액세스를 제공함으로써 이러한 사명을 추구합니다. OWASP는 또한 애플리케이션 보안 테스트 도구의 개발을 지원했으며 전 세계에서 여러 연례 컨퍼런스를 주최합니다.
OWASP는 웹 애플리케이션, API, 모바일 디바이스 등을 포함하여 다양한 시스템에 존재하는 가장 일반적인 취약성을 설명하는 여러 리소스를 개발했습니다. 이 중 가장 유명한 것은 OWASP Top Ten으로, 프로덕션 웹 애플리케이션에 나타나는 가장 일반적이고 영향력 있는 10가지 취약점을 설명합니다. 이 목록은 보안 테스트 데이터와 업계 전문가를 대상으로 한 설문 조사를 조합하여 몇 년마다 업데이트됩니다.
OWASP Top 10 목록의 최신 버전은 2021년에 발표되었습니다. 이 리소스에서는 가장 일반적인 취약성, 각 유형의 예, 이러한 취약성을 방지하기 위한 모범 사례 및 취약성을 악용할 수 있는 방법에 대한 설명을 제공합니다. 또한 각 취약성에는 취약성의 특정 인스턴스를 설명하는 관련 CWE(Common Weakness Enumeration) 사양에 대한 참조가 포함되어 있습니다. 예를 들어 하드 코딩된 암호(CWE-259)의 사용은 OWASP 상위 10개 목록 내의 식별 및 인증 실패 취약성에 속합니다.
OWASP Top 10 목록은 사용자 제공 데이터 분석과 업계 전문가를 대상으로 한 설문 조사의 조합을 기반으로 합니다. 커뮤니티에서 제출한 데이터를 기반으로 OWASP 팀은 목록에서 상위 8개 취약점을 결정하여 현재 프로덕션 코드에서 가장 일반적인 취약점에 대한 가시성을 제공합니다. 조직은 테스트에서 확인한 CWE와 하나 이상의 CWE 인스턴스를 포함하는 테스트된 애플리케이션 수를 제출하도록 요청받았습니다. 그 결과 400개의 CWE를 영향과 악용 가능성에 따라 분석하고 상위 10개 범주 중 8개를 생성하도록 분류했습니다.
그러나 2021년 목록 업데이트로 OWASP 팀은 커뮤니티 설문 조사의 입력을 위해 목록의 하단 두 슬롯을 예약했습니다. 이것의 목표는 데이터가 부족하거나 취약성을 테스트할 수 없는 취약성으로 인해 테스트 중에 발견된 취약성에만 의존하는 프로세스에 의해 과소평가될 수 있는 취약성의 최신 및 새로운 추세를 반영하는 것이었습니다.
OWASP Top Ten의 최신 버전에는 이전 버전에서 몇 가지 변경 사항이 포함되어 있습니다. 2021 목록에는 다음과 같은 취약점이 포함되어 있습니다.
이 중 4개의 취약점(4, 8, 10)은 완전히 새로운 취약점이고, 4개는 순위 이외에는 변경되지 않았으며, 나머지는 이전 버전의 목록에서 범주를 통합하거나 이름을 바꿉니다.
액세스 제어 시스템은 합법적인 사용자만 데이터 또는 기능에 액세스할 수 있도록 하기 위한 것입니다. 손상된 액세스 제어 범주의 취약성에는 공격자가 액세스 제어를 우회할 수 있도록 허용하거나 최소 권한 원칙을 구현하지 못하는 모든 문제가 포함됩니다. 예를 들어, 웹 애플리케이션은 사용자가 제공된 URL을 수정하여 다른 사용자의 계정에 액세스하도록 허용할 수 있습니다.
암호화 알고리즘은 데이터 개인 정보 보호 및 보안을 보호하는 데 매우 중요합니다. 그러나 이러한 알고리즘은 구현 또는 구성 오류에 매우 민감할 수 있습니다. 암호화 실패에는 암호화를 전혀 사용하지 못하거나, 암호화 알고리즘의 잘못된 구성, 안전하지 않은 키 관리가 포함됩니다. 예를 들어 조직에서 암호 저장에 안전하지 않은 해시 알고리즘을 사용하거나, 암호를 솔트하지 못하거나, 저장된 모든 사용자 암호에 동일한 솔트를 사용할 수 있습니다.
주입 취약성은 사용자 입력을 처리하기 전에 제대로 삭제하지 못해 발생할 수 있습니다. 이는 데이터와 명령이 혼합되어 악의적으로 잘못된 형식의 사용자 제공 데이터가 명령의 일부로 해석될 수 있는 SQL과 같은 언어에서 특히 문제가 될 수 있습니다. 예를 들어, SQL은 일반적으로 작은따옴표(') 또는 큰따옴표를 사용하여 쿼리 내에서 사용자 데이터를 설명하므로 이러한 문자가 포함된 사용자 입력은 처리 중인 명령을 변경할 수 있습니다.
취약성은 개발 프로세스 중에 몇 가지 다른 방법으로 소프트웨어에 도입될 수 있습니다. OWASP 상위 10개 목록에 있는 많은 취약성은 구현 오류를 처리하지만 이 취약성은 시스템 보안을 약화시키는 설계 오류를 설명합니다. 예를 들어, 민감한 데이터를 저장하고 처리하는 애플리케이션의 설계에 인증 시스템이 포함되어 있지 않은 경우, 설계된 대로 소프트웨어를 완벽하게 구현하더라도 여전히 안전하지 않으며 이 민감한 데이터를 제대로 보호하지 못할 수 있습니다.
설계 및 구현 외에도 애플리케이션의 보안은 구성 방법에 따라 결정됩니다. 소프트웨어 제조업체는 애플리케이션에 대한 기본 구성을 가지고 있으며 사용자는 시스템의 보안을 향상시키거나 손상시킬 수 있는 다양한 설정을 활성화하거나 비활성화할 수도 있습니다. 잘못된 보안 구성의 예로는 불필요한 애플리케이션 또는 포트를 사용하도록 설정하거나, 기본 계정 및 암호를 활성 상태로 유지하고 변경하지 않거나, 사용자에게 너무 많은 정보를 노출하도록 오류 메시지를 구성하는 것이 포함될 수 있습니다.
공급망 취약성은 최근 몇 년 동안 주요 관심사로 떠올랐으며, 특히 위협 행위자가 일반적으로 사용되는 라이브러리 및 타사 종속성에 악의적이거나 취약한 코드를 삽입하려고 시도했습니다. 조직이 중첩된 종속성을 포함하여 애플리케이션 내에서 사용되는 외부 코드에 대한 가시성이 부족하고 종속성을 검색하지 못하는 경우 악용에 취약할 수 있습니다. 또한 이러한 종속성에 보안 업데이트를 즉시 적용하지 않으면 악용 가능한 취약성이 공격에 노출될 수 있습니다. 예를 들어, 애플리케이션은 알려진 악용 가능한 취약성을 포함할 수 있는 자체 종속성이 있는 타사 라이브러리를 가져올 수 있습니다.
많은 애플리케이션 및 시스템에는 TLS 암호화 연결을 설정할 때 사용자에게 ID를 확인하는 디지털 인증서를 제공하는 서버 또는 애플리케이션에 ID를 증명하는 사용자와 같은 특정 형태의 식별 및 인증이 필요합니다. 식별 및 인증 실패는 애플리케이션이 취약한 인증 프로세스에 의존하거나 인증 정보의 유효성을 제대로 검증하지 못할 때 발생합니다. 예를 들어 다중 인증(MFA) 이 없는 애플리케이션은 공격자가 취약하거나, 일반적이거나, 기본이거나, 손상된 자격 증명 목록에서 사용자 이름과 암호 조합을 자동으로 시도하는 자격 증명 스터핑 공격에 취약할 수 있습니다.
OWASP 상위 10개 목록의 소프트웨어 및 데이터 무결성 실패 취약성은 SolarWinds 해킹을 가능하게 한 것과 유사한 조직의 DevOps 파이프라인 및 소프트웨어 업데이트 프로세스의 보안 약점을 해결합니다. 이 취약성 클래스에는 신뢰할 수 없는 소스 또는 리포지토리의 타사 코드에 의존하고, CI/CD 파이프라인에 대한 액세스를 보호하지 못하고, 자동으로 적용된 업데이트의 무결성을 제대로 검증하지 않는 것이 포함됩니다. 예를 들어 공격자가 신뢰할 수 있는 모듈 또는 종속성을 수정된 버전이나 악성 버전으로 바꿀 수 있는 경우 해당 종속성을 사용하여 빌드된 애플리케이션은 악성 코드를 실행하거나 악용에 취약할 수 있습니다.
보안 로깅 및 모니터링 실패는 설문 조사 응답에서 파생된 첫 번째 취약점으로, 이전 목록 반복에서 10위에서 위로 올라갔습니다. 많은 보안 사고는 애플리케이션 애플리케이션이 중요한 보안 이벤트를 기록하지 못하거나 이러한 로그 파일이 제대로 모니터링 및 처리되지 않기 때문에 활성화되거나 악화됩니다. 예를 들어 애플리케이션에서 로그 파일을 생성하지 않거나, 중요한 정보가 없는 보안 로그를 생성하거나, 이러한 로그 파일을 컴퓨터에서 로컬로만 사용할 수 있으므로 인시던트가 검색된 후에만 조사에 유용할 수 있습니다. 이러한 모든 오류는 잠재적인 보안 사고를 신속하게 감지하고 실시간으로 대응하는 조직의 능력을 저하시킵니다.
SSRF(Server-Side Request Forgery)는 일반적인 범주가 아닌 매우 구체적인 취약성 또는 공격을 설명하기 때문에 OWASP 상위 10개 목록에 나열된 취약성 중에서 이례적입니다. SSRF 취약성은 비교적 드뭅니다. 그러나 공격자가 식별하고 악용하는 경우 상당한 영향을 미칩니다. Capital One 해킹은 SSRF 취약점을 악용한 최근의 영향력이 큰 보안 사고의 예입니다.
SSRF 취약성은 웹 애플리케이션이 해당 URL에 있는 원격 리소스를 가져올 때 사용자가 제공한 URL의 유효성을 제대로 검사하지 않는 경우에 존재할 수 있습니다. 이 경우 취약성을 악용하는 공격자는 취약한 웹 애플리케이션을 사용하여 공격자가 만든 요청을 지정된 URL로 보낼 수 있습니다. 이를 통해 공격자는 방화벽과 같은 액세스 제어를 우회할 수 있으며, 방화벽은 공격자에서 대상 URL로의 직접 연결을 차단하지만 취약한 웹 애플리케이션에 대한 액세스를 제공하도록 구성됩니다.
조직의 웹 애플리케이션은 디지털 공격 표면에서 가장 눈에 띄고 악용되기 쉬운 부분 중 일부입니다. 그러나 이러한 애플리케이션에는 일반적으로 악용 가능한 취약성이 포함되어 있으며, 이는 종종 이러한 취약성에 대한 인식과 이를 방지하기 위한 보안 모범 사례로 인해 발생합니다. OWASP 상위 10개 목록은 이러한 취약성에 주의를 기울이고 개발자가 이러한 취약성을 식별, 방지 및 수정하는 데 도움이 되는 리소스를 제공하여 이 문제를 해결하고 웹 애플리케이션 보안 위험을 줄이기 위한 OWASP Foundation의 노력입니다.
OWASP 상위 10개 목록에 설명된 취약성을 검사, 수정 및 보호하는 것은 웹 애플리케이션 DevSecOps를 위한 좋은 출발점입니다. 이러한 취약성은 웹 애플리케이션에서 가장 일반적이고 영향력이 큰 취약성 중 일부이며, 가시성으로 인해 사이버 위협 행위자의 일반적인 대상이 됩니다.
애플리케이션이 점점 더 클라우드로 이동함에 따라 클라우드 워크로드 보호는 OWASP Top 10 및 기타 주요 애플리케이션 보안 위험으로부터 애플리케이션을 보호하는 데 매우 중요합니다. 클라우드 기반 애플리케이션에 대한 보안 위협에 대한 자세한 내용은 이 eBook을 참조하십시오.
체크 포인트 CloudGuard AppSec 은 OWASP Top Ten 및 기타 일반적인 웹 애플리케이션 취약성에 대한 포괄적 인 보호 기능을 제공합니다. 이 백서를 통해 CloudGuard AppSec이 클라우드 애플리케이션을 보호하는 방법에 대해 자세히 알아보십시오. 그런 다음 무료 데모에 등록하여 기능을 직접 확인하십시오.