마루 파일 : 취약성, 완화 및 검증
데이터웨어 하우징의 Apache Parquet
Parquet 파일은 빅 데이터 생태계의 원주 데이터 저장에 대한 사실상 표준이되고 있습니다. 이 파일 형식은 Apache Spark와 같은 정교한 인 메모리 데이터 처리 프레임 워크와 고성능 압축 및 효과적인 데이터 저장 및 검색으로 인해 Hadoop과 같은보다 기존의 분산 데이터 처리 프레임 워크에 의해 널리 사용됩니다.
Netflix, Uber, LinkedIn 및 AirBnB와 같은 주요 회사는 대규모 데이터 처리를위한 데이터 저장 파일 형식으로 Parquet에 의존합니다.
취약점의 상승
오픈 소스 Java 라이브러리는 현대 소프트웨어 개발에 필수적이지만 시스템이 위험에 처한 심각한 보안 결함을 자주 소개합니다. 위험은 최근 예에 의해 강조됩니다.
- Deep Java Library (CVE-2025-0851): 공격자는 DJL의 아카이브 추출 도구에서 경로 트래버스 취약성으로 인해 지정된 디렉토리 이외의 파일을 작성할 수 있습니다. 0.1.0 ~ 0.31.0 버전은이 취약점의 영향을 받기 때문에 데이터 손상 또는 불법 시스템 액세스가 발생할 수 있습니다. 버전 0.31.1에는 패치가 있습니다.
- CVE-2022-42003, 잭슨 도서관: 잘 알려진 JSON 파서의 안전하지 않은 직렬화/사제 구성은 고소도 문제 (CVSS 7.5)를 유발하여 서비스 거부 공격을 초래할 수 있습니다.
이 삽화는 오픈 소스 라이브러리가 신중한 종속성 관리, 빈번한 업데이트 및 보안 감사를 갖는 것이 얼마나 중요한지를 강조합니다. 회사는 엄격한 검증을 시행하고 자동화 된 취약성 스캔 도구를 사용해야합니다.
Apache Parquet의 Parquet-Avro 모듈 (CVE-2025-30065) :
Enterprise Data Lake에 데이터가로드되는 동안 ORC에서 AVRO, AVRO TO PARQUET 및 PARQUET와 같은 파일 형식 변환을 사용합니다. 이 변환을 달성하기 위해 Spark는이 경우 Parquet-Avro와 같은 기본 항아리를 사용합니다.
2025 년 4 월 2 일, 이러한 취약점 중 하나가 심각도가 가장 높은 Parquet-Avro 모듈에 대해보고되었습니다 (CVSS 10.0, “Critical”). Parquet-avro 모듈이 Parquet 파일에 내장 된 신뢰할 수없는 스키마를 사로화하면 신뢰할 수없는 데이터의 사제화로 알려진 취약성을 만듭니다 (CWE-502).
파일 구문 분석 중에 임의의 코드 실행을 일으키기 위해 공격자는 이러한 스키마에 악성 코드를 삽입 할 수 있습니다. 많은 시스템이 데이터 워크 플로우에서 파일 파일을 암시 적으로 신뢰하기 때문에 일반적인 보안 제어를 중심으로됩니다.
공격 시나리오의 예
Apache Parquet에서 CVE-2025-30065 악용 :
1 단계 : 악성 파일을 제작합니다
공격자는 먼저 손상된 AVRO 스키마로 내장 된 파크 파일을 만듭니다. 이 스키마에는 이진 코드 나 스크립트와 같이 섭취 할 때 실행하기위한 악의적 인 페이로드가 포함됩니다. 외부 또는 신뢰할 수없는 데이터 소스에 의존하는 타겟팅 시스템에서 공격자는 감지를 피하기 위해이 파일을 정통 데이터로 제시 할 수 있습니다.
2 단계 : 대상 시스템으로의 전달
악의적 인 파크 파일은 공격자가 피해자의 시스템으로 전달됩니다. 피싱 전자 메일, 타사 데이터 제공 업체가 손상되거나 공유 리포지토리에 직접 업로드하는 것이 모두이를 달성하는 데 사용될 수 있습니다. 파일은 클라우드 데이터 파이프 라인이나 빅 데이터 플랫폼 (Hadoop 및 Spark)과 같은 설정에서 자동으로 자주 처리되므로 악용 가능성이 높아집니다.
3 단계 : 파일 처리 중 악용
Parquet-Avro 모듈은 취약한 시스템에 의해 처리 될 때 Parquet 파일의 스키마를 구문 분석하려고합니다. 내장 된 익스플로잇 페이로드는 신뢰할 수없는 데이터를 잘못 처리 한 결과로 실행됩니다. 이를 통해 공격자는 원격 코드 실행 (RCE)을 통해 시스템에서 임의의 명령 또는 스크립트를 실행할 수 있습니다.
4 단계 : 피해자 시스템에 미치는 영향
제어가 얻어지면 공격자는 다음을 수행 할 수 있습니다.
- 맬웨어를 설치하십시오: 랜섬웨어 또는 암호화 광부를 배포하십시오.
- 실험용 데이터: 시스템에 저장된 민감한 데이터 세트를 훔칩니다.
- 데이터 파이프 라인을 조작합니다: 잘못된 데이터를 주입하거나 워크 플로를 방해합니다.
- 서비스 중단을 유발합니다: 중요한 서비스 또는 부패한 파일을 종료합니다.
완화 단계
1. 종속성 감사
조사하다
프로젝트의 어떤 종속성이 오래된 것인지 알아 보려면 Maven과 같은 도구를 사용하십시오. 예를 들어:
org.apache.parquet
parquet-avro
1.15.0
완화시키다
즉시 업그레이드 – 최신 안정적인 릴리스 (IE, Apache Parquet 1.15.1)로 패치. 종속성의 버전을 명시 적으로 언급하면 프로젝트가 패치 된 JAR을 사용하도록 강요합니다.
org.apache.parquet
parquet-avro
1.15.1
2. 파일 소스를 확인하십시오
조사하다
- 마술 번호 수표: 이것은 보안 측정 자체가 아니지만, 비 모성 파일을 조기에 식별하기 위해 Parquet 파일이 “par1″로 시작하고 끝내야합니다.
- 스키마 검증: 사막화 공격을 중단하려면 예상치 못한 또는 왜곡 된 스키마로 파일을 거부하십시오.
완화시키다
신뢰할 수없는 소스에서 Parquet 파일을 처리하기 전에 패치 버전의 Parquet Jars로 시스템이 업데이트 될 때까지 기다리십시오.
3. 감사 및 모니터 로그
조사하다
- 이상 탐지: 모든 마모 파일 수집을 추적하고 예기치 않은 파일 소스와 같은 이상한 활동을 주시하십시오.
- 민감한 데이터 스캔: parquet 파일의 pii, 재무 정보 또는 의료 기록을 식별하고 분류합니다.
완화시키다
비정상적인 활동을 식별하려면 오르켓 파일 수집에 대한 철저한 로깅을 활성화하십시오.
4. 액세스 및 권한을 제한합니다
조사하다
- 역할 기반 액세스 제어 (RBAC): AWS IAM 또는 AZURE AD와 같은 도구를 사용하여 최소한의 권한 원칙을지지하면서 파일 액세스를 제한합니다.
- 네트워크 세분화: 공격 표면을 줄이려면 오픈 네트워크에서 오픈 네트워크에서 마모 처리 시스템을 별도로 분리하십시오.
완화시키다
RBAC, 제로 트러스트 원칙 및 네트워크 세분화를 구현하십시오.
// AWS IAM policy snippet for Parquet file access
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::data-lake/*",
"Condition": {
"StringEquals": {"aws:MultiFactorAuthPresent": "true"}
}
}
5. 파일 소스를 안전하게 보안하십시오
조사하다
- 신뢰할 수있는 기원 만: 절대적으로 요구되지 않는 한, 신뢰할 수없는 소스에서 파일을 처리하지 마십시오.
- 샌드 박스 테스트: 생산에 들어가기 전에 다른 환경에서 신뢰할 수없는 마모 파일을 검사하십시오.
완화시키다
처리에서 영향을받은 마루 파일을보고하고 제거하십시오. 취약성 완화 기술을 구현할 때 비즈니스 정책을 준수합니다.
결론
중요한 데이터를 다루는 조직은 변조, 예비 여과 및 랜섬웨어와 같은 위협으로부터 보호하기 위해 데이터 파이프 라인의 보안 우선 순위를 정해야합니다. 데이터 파이프 라인은 종종 분산 시스템에서 민감한 정보를 처리하기 때문에 취약성을 이용하거나 운영을 방해하거나 귀중한 데이터를 훔치려는 공격자의 주요 대상입니다.
산업 표준에 따라 탄력성과 신뢰성을 보장하기 위해서는 산업 표준과 강력한 보안 조치를 구현하는 것이 필수적입니다.
Post Comment