본문 바로가기
정보 보안 해킹 공부/모의해킹

[OWASP Top 10] 2021 취약점 공부

by 박나무 2022. 2. 15.
반응형

OWASP Top 10에 오신 것을 환영합니다 - 2021

OWASP Top 10 최신판에 오신 것을 환영합니다! OWASP Top 10 2021은 새로운 그래픽 디자인과 인쇄하거나 당사 홈페이지에서 얻을 수 있는 1페이지 인포그래픽으로 완전히 새로워졌습니다.

이 반복을 위해 시간과 데이터를 제공한 모든 사람에게 큰 감사를 드립니다. 당신이 없었다면 이 할부는 일어나지 않았을 것입니다. 감사 해요!

2021년 Top 10에서 변경된 사항

3개의 새로운 범주, 명명 및 범위 변경이 있는 4개의 범주, 2021년 상위 10개에 일부 통합이 있습니다. 증상에 대한 근본 원인에 집중하기 위해 필요한 경우 이름을 변경했습니다.

  • A01:2021-Broken Access Control moves up from the fifth position to the category with the most serious web application security risk; the contributed data indicates that on average, 3.81% of applications tested had one or more Common Weakness Enumerations (CWEs) with more than 318k occurrences of CWEs in this risk category. The 34 CWEs mapped to Broken Access Control had more occurrences in applications than any other category.
  • A02:2021-Cryptographic Failures shifts up one position to #2, previously known as A3:2017-Sensitive Data Exposure, which was broad symptom rather than a root cause. The renewed name focuses on failures related to cryptography as it has been implicitly before. This category often leads to sensitive data exposure or system compromise.
  • A03:2021-Injection slides down to the third position. 94% of the applications were tested for some form of injection with a max incidence rate of 19%, an average incidence rate of 3.37%, and the 33 CWEs mapped into this category have the second most occurrences in applications with 274k occurrences. Cross-site Scripting is now part of this category in this edition.
  • A04:2021-Insecure Design is a new category for 2021, with a focus on risks related to design flaws. If we genuinely want to "move left" as an industry, we need more threat modeling, secure design patterns and principles, and reference architectures. An insecure design cannot be fixed by a perfect implementation as by definition, needed security controls were never created to defend against specific attacks.
  • A05:2021-Security Misconfiguration moves up from #6 in the previous edition; 90% of applications were tested for some form of misconfiguration, with an average incidence rate of 4.5%, and over 208k occurrences of CWEs mapped to this risk category. With more shifts into highly configurable software, it's not surprising to see this category move up. The former category for A4:2017-XML External Entities (XXE) is now part of this risk category.
  • A06:2021-Vulnerable and Outdated Components was previously titled Using Components with Known Vulnerabilities and is #2 in the Top 10 community survey, but also had enough data to make the Top 10 via data analysis. This category moves up from #9 in 2017 and is a known issue that we struggle to test and assess risk. It is the only category not to have any Common Vulnerability and Exposures (CVEs) mapped to the included CWEs, so a default exploit and impact weights of 5.0 are factored into their scores.
  • A07:2021-Identification and Authentication Failures was previously Broken Authentication and is sliding down from the second position, and now includes CWEs that are more related to identification failures. This category is still an integral part of the Top 10, but the increased availability of standardized frameworks seems to be helping.
  • A08:2021-Software and Data Integrity Failures is a new category for 2021, focusing on making assumptions related to software updates, critical data, and CI/CD pipelines without verifying integrity. One of the highest weighted impacts from Common Vulnerability and Exposures/Common Vulnerability Scoring System (CVE/CVSS) data mapped to the 10 CWEs in this category. A8:2017-Insecure Deserialization is now a part of this larger category.
  • A09:2021-Security Logging and Monitoring Failures was previously A10:2017-Insufficient Logging & Monitoring and is added from the Top 10 community survey (#3), moving up from #10 previously. This category is expanded to include more types of failures, is challenging to test for, and isn't well represented in the CVE/CVSS data. However, failures in this category can directly impact visibility, incident alerting, and forensics.
  • A10:2021-Server-Side Request Forgery is added from the Top 10 community survey (#1). The data shows a relatively low incidence rate with above average testing coverage, along with above-average ratings for Exploit and Impact potential. This category represents the scenario where the security community members are telling us this is important, even though it's not illustrated in the data at this time.

--------------------------------------------------구글번역----------------------------------------------------

 

  • A01:2021-Broken Access Control 이 5위에서 웹 애플리케이션 보안 위험이 가장 심각한 카테고리로 올라갔습니다. 제공된 데이터에 따르면 평균적으로 테스트된 애플리케이션의 3.81%가 이 위험 범주에서 318,000건 이상의 CWE 발생과 함께 하나 이상의 CWE(Common Weakness Enumerations)를 갖고 있음을 나타냅니다. Broken Access Control에 매핑된 34개의 CWE는 다른 범주보다 애플리케이션에서 더 많이 발생했습니다.
  • A02:2021-암호화 실패 는 이전에 A3:2017-민감한 데이터 노출 로 알려진 2번으로 한 단계 올라갔습니다. 이는 근본 원인이 아니라 광범위한 증상이었습니다. 새 이름은 이전에 암묵적으로 그랬던 것처럼 암호화와 관련된 실패에 중점을 둡니다. 이 범주는 종종 민감한 데이터 노출 또는 시스템 손상으로 이어집니다.
  • A03:2021-주사 가 세 번째 위치로 미끄러집니다. 응용 프로그램의 94%는 최대 발생률 19%, 평균 발생률 3.37%로 어떤 형태의 주입에 대해 테스트되었으며 이 범주에 매핑된 33개의 CWE는 274k 발생으로 응용 프로그램에서 두 번째로 많이 발생했습니다. 교차 사이트 스크립팅은 이제 이 버전에서 이 범주의 일부입니다.
  • A04:2021-안전하지 않은 디자인 은 2021년의 새로운 카테고리로, 디자인 결함과 관련된 위험에 중점을 둡니다. 업계에서 진정으로 "좌파로 이동"하려면 더 많은 위협 모델링, 보안 설계 패턴 및 원칙, 참조 아키텍처가 필요합니다. 안전하지 않은 설계는 정의상 특정 공격을 방어하기 위해 필요한 보안 제어가 생성되지 않았기 때문에 완벽한 구현으로 수정할 수 없습니다.
  • A05:2021-보안 구성 오류 가 이전 버전의 #6에서 위로 이동합니다. 애플리케이션의 90%가 어떤 형태의 잘못된 구성에 대해 테스트되었으며 평균 발생률은 4.5%이며 이 위험 범주에 매핑된 208,000건 이상의 CWE가 발생했습니다. 고도로 구성 가능한 소프트웨어로 더 많이 이동함에 따라 이 범주가 상승하는 것은 놀라운 일이 아닙니다. A4:2017-XML 외부 엔터티(XXE) 의 이전 범주는 이제 이 위험 범주의 일부입니다.
  • A06:2021-취약점 및 오래된 구성 요소 는 이전에 알려진 취약성이 있는 구성 요소 사용이라는 제목이었으며 상위 10개 커뮤니티 설문 조사에서 2위를 차지했지만 데이터 분석을 통해 상위 10개를 만들기에 충분한 데이터도 있었습니다. 이 범주는 2017년 9위에서 한 단계 올라갔으며 위험을 테스트하고 평가하는 데 어려움을 겪고 있는 알려진 문제입니다. 포함된 CWE에 매핑된 CVE(Common Vulnerability and Exposures)가 없는 유일한 범주이므로 기본 익스플로잇 및 영향 가중치 5.0이 점수에 반영됩니다.
  • A07:2021-식별 및 인증 실패 는 이전에 인증 실패였으며 두 번째 위치에서 아래로 내려가고 있으며 이제 식별 실패와 더 관련이 있는 CWE를 포함합니다. 이 범주는 여전히 Top 10의 필수적인 부분이지만 표준화된 프레임워크의 가용성 증가가 도움이 되는 것 같습니다.
  • A08:2021-소프트웨어 및 데이터 무결성 오류 는 무결성을 확인하지 않고 소프트웨어 업데이트, 중요한 데이터 및 CI/CD 파이프라인과 관련된 가정에 중점을 둔 2021년의 새로운 범주입니다. 이 범주의 10개 CWE에 매핑된 CVE/CVSS(Common Vulnerability and Exposures/Common Vulnerability Scoring System) 데이터에서 가장 가중치가 높은 영향 중 하나입니다. A8:2017-안전하지 않은 역직렬화 는 이제 이 더 큰 범주의 일부입니다.
  • A09:2021-보안 로깅 및 모니터링 실패 는 이전에 A10:2017-충분한 로깅 및 모니터링 이었고 이전의 #10에서 위로 이동한 상위 10개 커뮤니티 설문조사(#3)에서 추가되었습니다. 이 범주는 더 많은 유형의 실패를 포함하도록 확장되고 테스트하기 어렵고 CVE/CVSS 데이터에 잘 표시되지 않습니다. 그러나 이 범주의 오류는 가시성, 사고 경고 및 포렌식에 직접적인 영향을 줄 수 있습니다.
  • A10:2021-서버 측 요청 위조 가 상위 10개 커뮤니티 설문조사(#1)에서 추가되었습니다. 데이터는 평균 이상의 테스트 범위와 함께 상대적으로 낮은 발생률과 익스플로잇 및 영향 가능성에 대한 평균 이상의 등급을 보여줍니다. 이 범주는 현재 데이터에 설명되어 있지 않지만 보안 커뮤니티 구성원이 이것이 중요하다고 말하는 시나리오를 나타냅니다.

방법론

Top 10의 이번 연재는 그 어느 때보다 데이터 중심적이지만 맹목적으로 데이터 중심적이지는 않습니다. 기여 데이터에서 10개 범주 중 8개를 선택하고 상위 10개 커뮤니티 설문조사에서 상위 2개 범주를 상위 수준에서 선택했습니다. 우리는 기여 데이터를 보는 것이 과거를 조사하는 근본적인 이유 때문에 이것을 합니다. AppSec 연구원은 새로운 취약점과 이를 테스트할 새로운 방법을 찾는 데 시간을 할애합니다. 이러한 테스트를 도구와 프로세스에 통합하는 데는 시간이 걸립니다. 취약점을 대규모로 안정적으로 테스트할 수 있을 때쯤이면 몇 년이 지났을 가능성이 큽니다. 이러한 관점의 균형을 맞추기 위해 우리는 커뮤니티 설문조사를 사용하여 최전선에 있는 애플리케이션 보안 및 개발 전문가에게 데이터가 아직 표시하지 않을 수 있는 본질적인 약점을 무엇이라고 생각하는지 묻습니다.

Top 10을 계속 발전시키기 위해 채택한 몇 가지 중요한 변경 사항이 있습니다.

카테고리 구성 방법

OWASP Top Ten의 이전 기사에서 몇 가지 범주가 변경되었습니다. 다음은 카테고리 변경 사항에 대한 높은 수준의 요약입니다.

이전 데이터 수집 노력은 추가 결과를 요구하는 필드가 있는 약 30명의 CWE의 규정된 하위 집합에 중점을 두었습니다. 우리는 조직이 주로 30개의 CWE에만 초점을 맞추고 그들이 본 추가 CWE를 거의 추가하지 않는다는 것을 배웠습니다. 이 반복에서 우리는 그것을 열고 CWE에 대한 제한 없이 데이터를 요청했습니다. 우리는 특정 연도(2017년부터 시작) 동안 테스트된 애플리케이션 수와 테스트에서 발견된 CWE 인스턴스가 하나 이상 있는 애플리케이션 수를 요청했습니다. 이 형식을 통해 각 CWE가 애플리케이션 모집단 내에서 얼마나 널리 퍼져 있는지 추적할 수 있습니다. 우리는 목적을 위해 빈도를 무시합니다. 다른 상황에서는 필요할 수 있지만 응용 프로그램 인구의 실제 보급만 숨깁니다. 애플리케이션에 4개의 CWE 인스턴스가 있는지 아니면 4개인지, 000개의 인스턴스는 상위 10개에 대한 계산의 일부가 아닙니다. 데이터 세트에서 분석하기 위해 약 30개 CWE에서 거의 400개 CWE로 이동했습니다. 향후 보완책으로 추가적인 데이터 분석을 할 계획입니다. CWE 수의 이러한 상당한 증가는 범주가 구조화되는 방식에 대한 변경을 필요로 합니다.

우리는 CWE를 그룹화하고 분류하는 데 몇 달을 보냈고 추가로 몇 달 동안 계속할 수 있었습니다. 우리는 어느 시점에서 멈춰야 했다. CWE에는 근본 원인  증상 유형 이 모두 있으며, 근본 원인 유형은 "민감한 데이터 노출" 및 "서비스 거부"와 같은 증상 유형과 대조되는 "암호화 오류" 및 "잘못된 구성"과 같습니다. 식별 및 수정 지침을 제공하는 것이 더 논리적이므로 가능한 한 근본 원인 에 집중하기로 결정했습니다 . 증상 보다 근본 원인 에 초점을 맞추는 것은 새로운 개념이 아닙니다. 상위 10개는 증상  근본 원인 이 혼합되어 있습니다.. CWE는 또한 증상  근본 원인 이 혼합되어 있습니다 . 우리는 단지 그것에 대해 더 신중하고 그것을 불러냅니다. 이 기사에는 범주당 평균 19.6개의 CWE가 있으며 A10:2021-SSRF(서버 측 요청 위조) 에 대한 하한선은 1CWE이고 A04:2021-Insecure Design의 경우 40개 CWE입니다 . 이 업데이트된 범주 구조는 회사가 언어/프레임워크에 적합한 CWE에 집중할 수 있으므로 추가 교육 이점을 제공합니다.

카테고리 선택에 데이터가 사용되는 방식

2017년에 우리는 발생률에 따라 범주를 선택하여 가능성을 결정한 다음 공격 가능성 , 탐지 가능성 ( 가능성도 포함) 및 기술적 영향 에 대한 수십 년의 경험을 기반으로 팀 토론을 통해 순위를 매겼습니다 . 2021년에는 가능한 한 공격 가능성 및 (기술적) 영향 에 대한 데이터를 사용하려고 합니다.

OWASP Dependency Check를 다운로드하고 CVSS Exploit 및 관련 CWE별로 그룹화된 Impact 점수를 추출했습니다. 모든 CVE에 CVSSv2 점수가 있기 때문에 상당한 연구와 노력이 필요했지만 CVSSv3에서 해결해야 하는 결함이 CVSSv2에 있습니다. 특정 시점이 지나면 모든 CVE에도 CVSSv3 점수가 할당됩니다. 또한 CVSSv2와 CVSSv3 간에 점수 범위와 공식이 업데이트되었습니다.

CVSSv2에서 Exploit  (Technical) Impact 는 모두 최대 10.0일 수 있지만 공식은 Exploit 의 경우 60%, Impact 의 경우 40% 로 낮춥니다 . CVSSv3에서 이론적 최대값은 Exploit 의 경우 6.0, Impact 의 경우 4.0 으로 제한되었습니다 . 가중치를 고려하면 영향 점수가 더 높게 이동하여 CVSSv3에서 평균 거의 1.5점이 되었고 악용 가능성은 평균적으로 거의 0.5포인트 낮아졌습니다.

OWASP 종속성 검사에서 추출한 NVD(National Vulnerability Database) 데이터에는 CWE에 매핑된 CVE의 레코드가 125,000개 있으며 CVE에 매핑된 고유 CWE는 241개입니다. 62,000 CWE 맵에는 데이터 세트에 있는 인구의 약 절반에 해당하는 CVSSv3 점수가 있습니다.

2021년 Top Ten에 대해 다음과 같은 방식으로 평균 익스플로잇  영향 점수를 계산했습니다. CVSS 점수가 있는 모든 CVE를 CWE별로 그룹화하고 CVSSv3 점수가 있는 인구의 비율 + CVSSv2 점수의 나머지 인구를 기준으로 익스플로잇  영향 점수에 가중치를 부여하여 전체 평균을 구했습니다. 이러한 평균을 데이터 세트의 CWE에 매핑 하여 위험 방정식의 나머지 절반에 대한 익스플로잇  (기술적) 영향 점수로 사용했습니다.

순수한 통계 데이터만 있으면 안 되는 이유는 무엇입니까?

데이터의 결과는 주로 자동화된 방식으로 테스트할 수 있는 것으로 제한됩니다. 노련한 AppSec 전문가에게 문의하면 그들이 찾은 항목과 아직 데이터에 없는 경향에 대해 알려줄 것입니다. 사람들이 특정 취약성 유형에 대한 테스트 방법론을 개발하는 데 시간이 걸리고 그런 다음 이러한 테스트가 자동화되고 대규모 애플리케이션에 대해 실행되는 데 더 많은 시간이 걸립니다. 우리가 찾은 모든 것은 과거를 되돌아보고 있으며 데이터에 없는 작년의 추세가 누락되었을 수 있습니다.

따라서 데이터가 불완전하기 때문에 데이터에서 10개 범주 중 8개만 선택합니다. 다른 두 범주는 상위 10개 커뮤니티 설문조사에서 가져온 것입니다. 이를 통해 최전선의 실무자들은 데이터에 없을 수도 있고 데이터에 표현되지 않을 수도 있는 가장 높은 위험으로 간주되는 항목에 투표할 수 있습니다.

빈도가 아닌 발생률을 나타내는 이유는 무엇입니까?

데이터의 기본 소스는 세 가지입니다. 우리는 그것들을 인간 보조 도구(HaT), 도구 보조 인간(TaH) 및 원시 도구로 식별합니다.

Tooling 및 HaT는 고주파수 발견 생성기입니다. 도구는 특정 취약점을 찾고 해당 취약점의 모든 인스턴스를 찾기 위해 끊임없이 시도하며 일부 취약점 유형에 대해 높은 결과 수를 생성합니다. 일반적으로 두 가지 유형 중 하나인 Cross-Site Scripting을 보십시오. 하나는 더 작고 고립된 실수이거나 시스템 문제입니다. 시스템적인 문제인 경우 단일 애플리케이션에 대해 결과 개수가 수천 개에 이를 수 있습니다. 이 높은 빈도는 보고서나 데이터에서 발견되는 대부분의 다른 취약점을 가려냅니다.

반면 TaH는 더 넓은 범위의 취약성 유형을 발견하지만 시간 제약으로 인해 훨씬 ​​더 낮은 빈도로 발견됩니다. 인간이 응용 프로그램을 테스트하고 Cross-Site Scripting과 같은 것을 볼 때 일반적으로 3~4개의 인스턴스를 찾아서 중지합니다. 그들은 체계적인 발견을 결정하고 애플리케이션 전체 규모에서 수정하기 위한 권장 사항과 함께 작성할 수 있습니다. 모든 인스턴스를 찾을 필요(또는 시간)가 없습니다.

이 두 개의 개별 데이터 세트를 가져와 빈도에 따라 병합하려고 한다고 가정합니다. 이 경우 Tooling 및 HaT 데이터는 더 정확한(그러나 광범위한) TaH 데이터를 익사시킬 것이며 영향이 일반적으로 낮거나 보통일 때 Cross-Site Scripting과 같은 항목이 많은 목록에서 높은 순위를 차지한 이유의 좋은 부분입니다. 엄청난 양의 연구 결과 때문입니다. (Cross-Site Scripting은 또한 테스트하기가 상당히 쉽기 때문에 더 많은 테스트가 있습니다.)

2017년에는 데이터를 새롭게 살펴보고 Tooling 및 HaT 데이터를 TaH 데이터와 깔끔하게 병합하기 위해 대신 발생률을 사용하는 방법을 도입했습니다. 발생률은 응용 프로그램 인구의 몇 퍼센트에서 취약점 유형의 인스턴스가 하나 이상 있었는지 묻습니다. 우리는 그것이 일회성이든 전신적이든 상관하지 않습니다. 그것은 우리의 목적과 관련이 없습니다. 빈도가 높은 결과에서 데이터를 익사시키지 않으면서 여러 테스트 유형에 걸친 결과를 테스트에 대한 더 명확한 보기를 제공하는 데 도움이 되는 최소한 하나의 인스턴스가 있는 애플리케이션 수를 알아야 합니다. 이는 공격자가 범주를 통해 애플리케이션을 성공적으로 공격하기 위해 하나의 인스턴스만 필요하기 때문에 위험 관련 관점에 해당합니다.

데이터 수집 및 분석 프로세스는 무엇입니까?

우리는 2017년 Open Security Summit에서 OWASP Top 10 데이터 수집 프로세스를 공식화했습니다. OWASP Top 10 리더와 커뮤니티는 투명한 데이터 수집 프로세스를 공식화하기 위해 이틀을 보냈습니다. 2021년 판은 이 방법론을 사용한 두 번째입니다.

우리는 프로젝트와 OWASP 모두에서 사용할 수 있는 소셜 미디어 채널을 통해 데이터 요청을 게시합니다. OWASP 프로젝트 페이지에서 찾고 있는 데이터 요소와 구조, 제출 방법을 나열합니다. GitHub 프로젝트에는 템플릿 역할을 하는 예제 파일이 있습니다. 우리는 CWE에 대한 구조 및 매핑을 파악하는 데 도움이 되도록 필요에 따라 조직과 협력합니다.

우리는 거래를 통해 공급업체를 테스트하는 조직, 버그 현상금 공급업체 및 내부 테스트 데이터를 제공하는 조직에서 데이터를 얻습니다. 데이터가 있으면 함께 로드하고 CWE가 위험 범주에 매핑하는 기본 분석을 실행합니다. 일부 CWE 간에 중복이 있고 다른 CWE는 매우 밀접하게 관련되어 있습니다(예: 암호화 취약성). 제출된 원시 데이터와 관련된 모든 결정은 문서화되고 공개되어 데이터를 정규화한 방법에 대해 투명하게 공개됩니다.

Top 10에 포함되기 위해 발생률이 가장 높은 8개 범주를 살펴봅니다. 또한 상위 10개 커뮤니티 설문조사 결과를 보고 어떤 항목이 데이터에 이미 존재할 수 있는지 확인합니다. 데이터에 아직 존재하지 않는 상위 2개 투표는 상위 10위의 다른 2개 장소에 대해 선택됩니다. 10개 모두가 선택되면 악용 가능성 및 영향에 대해 일반화된 요소를 적용했습니다. 위험 기반 순서로 Top 10 2021의 순위를 정하는 데 도움이 됩니다.

데이터 요소

상위 10개 범주 각각에 대해 나열된 데이터 요소가 있으며, 그 의미는 다음과 같습니다.

  • 매핑된 CWE: 상위 10개 팀이 범주에 매핑한 CWE의 수입니다.
  • 발생률: 발생률은 해당 조직에서 해당 연도에 테스트한 모집단에서 해당 CWE에 취약한 애플리케이션의 비율입니다.
  • (테스트) 적용 범위: 지정된 CWE에 대해 모든 조직에서 테스트한 애플리케이션의 비율입니다.
  • 가중 악용: CWE에 매핑되고 정규화되고 10pt 척도에 배치된 CVE에 할당된 CVSSv2 및 CVSSv3 점수의 악용 하위 점수.
  • 가중 영향: CVSSv2 및 CVSSv3 점수의 영향 하위 점수는 CWE에 매핑된 CVE에 할당되고 정규화되고 10pt 척도에 배치됩니다.
  • 총 발생 횟수: CWE가 범주에 매핑된 것으로 발견된 총 응용 프로그램 수입니다.
  • Total CVEs: 카테고리에 매핑된 CWE에 매핑된 NVD DB의 총 CVE 수입니다.

데이터 기여자에게 감사드립니다.

다음 조직(일부 익명 기부자와 함께)은 이 가장 크고 포괄적인 애플리케이션 보안 데이터 세트를 만들기 위해 500,000개 이상의 애플리케이션에 대한 데이터를 기부했습니다. 당신이 없었다면 불가능했을 것입니다.

  • 앱섹 랩
  • 코발트.io
  • 대비 보안
  • GitLab
  • 해커원
  • HCL 테크놀로지스
  • 마이크로 포커스
  • PenTest-도구
  • 아마도
  • 스퀘어
  • 베라코드
  • 화이트햇(NTT)

후원자님 감사합니다

OWASP Top 10 2021 팀은 Secure Code Warrior와 Just Eat의 재정 지원에 감사드립니다.

 

반응형

'정보 보안 해킹 공부 > 모의해킹' 카테고리의 다른 글

Kali Linux 2022.1 설치  (0) 2022.04.15
[드림핵] XSS, CSRF 등 공부  (0) 2022.02.21
[Wargames]missions/basic/11/  (0) 2022.01.11
[Wargames]missions/basic/10  (0) 2022.01.09
[Wargames]missions/basic/9  (0) 2022.01.08

댓글