관리 메뉴

yubyeong

OWASP TOP 10 -A08 (Software and Data Integrity Failures :소프트웨어 및 데이터 무결성 오류) 본문

Web Hacking/OWASP TOP 10

OWASP TOP 10 -A08 (Software and Data Integrity Failures :소프트웨어 및 데이터 무결성 오류)

yubyeong 2025. 5. 7. 19:35
A01 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: 신뢰할 수 없는 데이터의 역직렬화.

설명

  • 소프트웨어 및 데이터 무결성 오류는 무결성 위반으로부터 보호하지 못하는 코드 및 인프라와 관련.
    • 애플리케이션이 신뢰할 수 없는 출처, 저장소 및 콘텐츠 전송 네트워크(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-426 Untrusted Search Path

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대-취약점

https://oobwrite.com/entry/OWASP-TOP10-2023-소개-및-정리

https://blog.alyac.co.kr/4135

https://perconsi.tistory.com/32