소프트웨어 및 데이터 무결성 오류(Software and Data Integrity Failures)는 OWASP TOP 10 2017에서는 A08로 소개된 안전하지 않은 역직렬화(Insecure deserialization)를 포함해 2021에서 신설된 항목이다.
애플리케이션이 신뢰할 수 없는 소스, 저장소 및 CDN의 플러그인, 라이브러리 또는 모듈에 의존하는 경우 발생할 수 있다. 충분한 무결성 검증 없이 수행되는 자동 업데이트 기능을 악용해 공격자가 직접 업데이트를 업로드해 조작된 파일을 배포하고 설치, 실행 할 수 있다.
대응 방안으로는 신뢰할 수 있는 라이브러리를 사용하고, 전자서명이나 해시를 통해 무결성을 확인한다. 또한, CI/CD(Continuous Integration/Continuous Deliver_지속적 통합/지속적 제공) 파이프라인의 경우 개발 및 배포 과정에서 변조되면 무결성이 훼손될 가능성이 있으므로, 무결성 검증 과정을 추가해야한다.
취약점 유형
사용중인 라이브러리에 무결성 검증 기능이 없어 변조가 가능한 경우
업데이트에 대한 검증이 없는 경우 - 공급망 공격 가능
CI/CD 파이프라인에 대한 보안성 검토가 부족하거나 없는 경우
직렬화된 데이터에 대한 무결성 검증이 없는 경우
공격 시나리오
공격자는 공급망 공격(시스템 및 데이터에 접속할 수 있는 외부 협렵업체나 공급업체를 통해 시스템에 침투하여 합법적인 앱 감염 후 멀웨어 배포)을 통해 시스템을 장악한 후 인증서 탈취, 코드 패치, 업데이트 위장 등의 방식으로 악성코드를 업로드할 수 있다. 악성코드는 정상 파일로 위장되어 배포되고, 사용자들이 이를 다운로드하면서, 악성코드 감염 및 추가 공격을 수행할 수 있다.
대응방안
전자서명, 해시 알고리즘을 통한 무결성 검증
사용중인 라이브러리에 대한 신뢰성 확인 및 중요한 서비스일 경우 내부 라이브러리 사용
CI/CD 파이프라인에 대한 보안성 검토
직렬화된 데이터에 대한 무결성 검증 수행
'취약점 > OWASP TOP 10' 카테고리의 다른 글
A10: Server-Side Request Forgery (SSRF, 서버 측 요청 변조) (0) | 2022.10.19 |
---|---|
A09: Security Logging and Monitoring Failures (보안 로깅 및 모니터링 오류) (0) | 2022.10.19 |
A07: Identification and Authentication Failures (식별 및 인증 실패) (0) | 2022.10.18 |
A06: Vulnerable and Outdated Components (취약하고 오래된 구성 요소) (0) | 2022.10.18 |
A05: Security Misconfiguration (보안설정오류) (0) | 2022.09.13 |