일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- hacking
- S3
- Lambda
- JavaScript
- 웹 개발
- aws
- 인터랙티브 자바스크립트
- owasp
- VPC
- VUL
- Vulnerability
- cloud
- 클라우드
- EC2
- API Gateway
- web
- Today
- Total
yubyeong
OWASP TOP 10 -A08 (Software and Data Integrity Failures :소프트웨어 및 데이터 무결성 오류) 본문
OWASP TOP 10 -A08 (Software and Data Integrity Failures :소프트웨어 및 데이터 무결성 오류)
yubyeong 2025. 5. 7. 19:35A01 | Broken Access Control (접근 권한 취약점) |
A02 | Cryptographic Failures (암호화 오류) |
A03 | Injection (인젝션) |
A04 | Insecure Design (안전하지 않은 설계) |
A05 | Security Misconfiguration (보안설정오류) |
A06 | Vulnerable and Outdated Components (취약하고 오래된 소스) |
A07 | Identification and Authentication Failures (식별 및 인증 오류) |
A08 | Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 오류) |
A09 | Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패) |
A10 | Server-Side Request Forgery (서버 측 요청 위조) |
A08 : Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 오류)
- A new category for 2021 focuses 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. Notable Common Weakness Enumerations (CWEs) include CWE-829: Inclusion of Functionality from Untrusted Control Sphere, CWE-494: Download of Code Without Integrity Check, and CWE-502: Deserialization of Untrusted Data.
- 2021년 새로 나온 카테고리이며 무결성을 검증하지 않고 소프트웨어 업데이트, 중요 데이터 및 CI/CD 파이프라인과 관련된 가정을 하는데 중점을 둔다. CVE, CVSS 데이터에서 가장 높은 가중치를 가진 이슈이다.
- 주요 공통 취약점 목록(CWE)
- CWE-829: 신뢰할 수 없는 제어 영역의 기능 포함.
- CWE-494: 무결성 검사 없이 코드 다운로드.
- CWE-502: 신뢰할 수 없는 데이터의 역직렬화.
- 주요 공통 취약점 목록(CWE)
설명
- 소프트웨어 및 데이터 무결성 오류는 무결성 위반으로부터 보호하지 못하는 코드 및 인프라와 관련.
- 애플리케이션이 신뢰할 수 없는 출처, 저장소 및 콘텐츠 전송 네트워크(CDN)의 플러그인, 라이브러리 또는 모듈을 사용하는 경우.
- 안전하지 않은 CI/CD 파이프라인은 무단 접근, 악성 코드 또는 시스템 손상의 위험을 초래.
- 자동 업데이트 기능으로 충분한 무결성 검증 없이 업데이트를 다운로드하여 이전에 신뢰했던 애플리케이션에 적용 → 공격자가 자체 업데이트를 업로드하여 모든 설치 환경에서 배포하고 실행 가능.
- 또 다른 예로, 공격자가 보고 수정할 수 있는 구조로 객체 또는 데이터를 인코딩하거나 직렬화[1]하는 경우 안전하지 않은 역직렬화[2]에 취약.(데이터 변조 및 원격 코드 실행 공격 등)
- [1] : 객체를 직렬화하여 전송 가능한 (바이트 스트림: 저장을 하기 위해 객체를 순차적인 데이터로 변환) 형태로 사용.
- [2] : 수신받은 데이터를 다시 원래의 형식으로 복구시키는 과정.
예방법
- 디지털 서명이나 비슷한 메커니즘을 사용하여 소프트웨어나 데이터가 예상한 출처에서 왔고 변경되지 않았는지 확인.
- npm이나 Maven과 같은 라이브러리와 종속성이 신뢰할 수 있는 저장소를 사용하고 있는지 확인. 위험도가 높은 경우, 검증된 내부적으로 알려진 안전한 저장소를 호스팅하는 것을 고려.
- 악성 코드나 구성이 소프트웨어 파이프라인에 유입될 가능성을 최소화하기 위해 코드 및 구성 변경에 대한 검토 프로세스가 있는지 확인.
- 빌드 및 배포 프로세스의 코드 무결성을 보장하기 위해 CI/CD 파이프라인에 적절한 분리, 구성 및 액세스 제어가 있는지 확인.
- 데이터의 변조, 직렬화된 데이터 재생을 감지하여서 무결성 검사, 디지털 서명이 없으면 암호화되지 않은 직렬화된 데이터가 신뢰할 수 없는 클라이언트에게 전송되지 않도록 보장.
공격 시나리오 예시
시나리오 1 서명 없이 업데이트: 많은 가정용 라우터, 셋톱박스, 기기 펌웨어 등이 서명된 펌웨어를 통해 업데이트를 검증하지 않는다. 서명되지 않은 펌웨어는 공격자들의 표적이 되고 있으며, 그 피해는 더욱 심각해질 것으로 예상됩. 이는 향후 버전에서 수정하고 이전 버전의 보안이 만료될 때까지 기다리는 것 외에는 별다른 해결책이 없는 경우가 많기 때문에 심각한 문제이다.
시나리오 2 SolarWinds 악성 업데이트 : 각 국가는 업데이트 메커니즘을 공격하는 것으로 알려져 있으며, 최근 주목할 만한 공격으로는 SolarWinds Orion 공격이 있다. 해당 소프트웨어를 개발하는 회사는 안전한 빌드 및 업데이트 무결성 프로세스를 보유하고 있었다. 그럼에도 불구하고 이러한 프로세스가 무력화되었고, 해당 회사는 몇 달 동안 18,000개 이상의 조직에 매우 표적화된 악성 업데이트를 배포했으며, 그중 약 100개 조직이 영향을 받았다. 이는 가장 광범위하고 중요한 침해 사건 중 하나였다.
시나리오 3 안전하지 않은 역직렬화: React 애플리케이션이 여러 개의 Spring Boot 마이크로서비스 집합을 호출. 개발자들은 코드의 불변성을 유지하려 노력하였다. 그 해결책은 사용자 상태를 직렬화하여 각 요청마다 주고받도록 한 것. 그러나 공격자는 base64 인코딩된 'rO0' 서명을 발견하고, Java Serial Killer 도구를 사용해 애플리케이션 서버에서 원격 코드 실행(RCE)을 발생하도록 하였다.
→ 코드의 불변성을 지키기 위해 Java 객체를 직렬화해서 요청마다 주고받는 방식을 썼지만, 오히려 그 방식이 Java 직렬화 취약점을 노출시켜서 공격자가 이를 이용해 원격 코드(RCE) 실행에 성공했다는 말.
Software and Data Integrity Failures 항목의 CWE 목록
CWE-345 Insufficient Verification of Data Authenticity
CWE-353 Missing Support for Integrity Check
CWE-494 Download of Code Without Integrity Check
CWE-502 Deserialization of Untrusted Data
CWE-565 Reliance on Cookies without Validation and Integrity Checking
CWE-784 Reliance on Cookies without Validation and Integrity Checking in a Security Decision
CWE-829 Inclusion of Functionality from Untrusted Control Sphere
CWE-830 Inclusion of Web Functionality from an Untrusted Source
CWE-915 Improperly Controlled Modification of Dynamically-Determined Object Attributes
참고자료
https://owasp.org/www-project-top-ten/
https://velog.io/@minjeong-dev/2021-OWASP-10대-취약점