제목 : 객체 저장 공세 및 방어 사례

对象存储攻防案例​

클라우드 스토리지는 기업의 일반적인 클라우드 제품입니다. 클라우드 서비스의 개발을 통해 중요한 클라우드 기본 기능으로서 객체 저장소는 일련의 보안 문제를 노출 시키며, 그 중 허가 구성은 관리자가 무시할 수없는 것입니다. 공격자의 관점에서, 몇 가지 주요 클라우드 스토리지 공격 방법 및 활용.

1 对象存储​

객체 저장소에 여러 개의 버킷이있을 수 있으며 물체 (개체)가 버킷에 배치됩니다. 객체에는 키, 데이터 및 메타 데이터의 세 부분이 포함되어 있습니다.
202203171716980.png-water_print

1.1 Bucket​

스토리지 공간 (버킷)은 사용자가 객체를 저장하는 데 사용하는 컨테이너이며 모든 객체는 저장 공간에 속해야합니다. 저장 공간에는 지역, 액세스 권한, 스토리지 유형 등을 포함한 다양한 구성 속성이 있습니다. 사용자는 실제 요구에 따라 다른 데이터를 저장하기 위해 다양한 유형의 저장 공간을 만들 수 있습니다.
동일한 저장 공간의 내부는 파일 시스템의 디렉토리 개념없이 평평하며 모든 객체는 해당 저장 공간과 직접 제휴합니다.
각 사용자는 여러 개의 스토리지 공간을 가질 수 있습니다.
저장 공간의 이름은 OSS의 범위 내에서 전 세계적으로 고유해야하며 일단 생성되면 이름을 수정할 수 없습니다.
저장 공간 내부의 객체 수에는 제한이 없습니다.

1.2 Object​

객체는 OSS 파일이라고도하는 OSS 저장 데이터의 기본 단위입니다. 기존 파일 시스템과 달리 객체에는 파일 디렉토리 계층이 없습니다. 객체는 메타 정보 (객체 메타), 사용자 데이터 (데이터) 및 파일 이름 (키)으로 구성되며 저장 공간 내부의 고유 키로 식별됩니다.
키는 버킷의 고유 식별자를 나타냅니다. 예를 들어 URL은 다음과 같습니다. 여기 Geekby는 버킷 버킷의 이름이며 /마이크 다운/202203171716980.png는 핵심입니다.
객체 메타 정보는 마지막 수정 시간, 크기 및 기타 정보와 같은 객체의 일부 속성을 나타내는 키 값 쌍 세트입니다. 동시에 사용자는 메타 정보에 몇 가지 사용자 정의 정보를 저장할 수도 있습니다. 데이터 레이블 및 설명과 같은 정보로 간단하게 이해할 수 있습니다. 이것은 기존 파일 스토리지와 다릅니다. 기존 파일 스토리지 에서이 유형의 정보는 파일에 직접 캡슐화됩니다. 메타 데이터가 존재하면 객체의 분류, 분류 및 검색이 크게 가속화 될 수 있습니다.
데이터는 저장된 데이터 온톨로지입니다.

2 对象存储的利用方式​

2.1 Object 遍历​

버킷을 만들 때 공개 여부를 선택할 수 있습니다. 기본값은 개인 권한입니다. ListObject 권한이 잘못된 구성에 제공되면 버킷이 횡단됩니다.

2.1.1 阿里云​

202203171739847.png-water_print

현재 공개 독서를 선택하면 두 가지 상황이 발생합니다.
공개 읽기 또는 공개 읽기 및 쓰기로 설정하도록 읽기 및 쓰기 권한 만 구성하는 경우 객체를 나열 할 수 없지만 해당 파일을 직접 읽을 수 있습니다 (정상)
객체 객체를 나열하려면 버킷 승인 정책에서 ListObject를 설정해야합니다.
202203171742467.png-water_print

202203171743563.png-water_print

2.2 Bucket 桶爆破​

버킷 이름을 모르면 폭파를 통해 버킷 이름을 얻을 수 있습니다. 이는 디렉토리 폭파가 일반적으로 상태 코드로 판단되는 것을 제외하고는 디렉토리 블라스팅과 다소 유사하며 페이지의 내용으로 판단됩니다.

2.2.1 阿里云​

AccessDenied : 버킷이 존재하지만 액세스 권한은 없습니다.
202203172044379.png-water_print

InvalidBucketName : 버킷의 이름이 사양을 준수하지 않으며 유효하지 않은 버킷 이름에 속함을 나타냅니다.
202203172045958.png-water_print

Nosuchbucket :이 버킷이 존재하지 않음을 의미합니다
202203172046165.png-water_print

2.3 特定的 Bucket 策略配置​

특정 정책 구성은 관리자가 특정 IP를 설정하면 UA가 버킷을 요청할 수 있다는 사실을 말합니다. GetBucketPolicy가 잘못 구성된 경우 공격자가 정책 구성을 얻을 수 있습니다.

2.3.1 阿里云​

직접 액세스하여 버킷에 대한 권한을 읽는지 여부를 결정하십시오. http (s) : //url/? 정책
202203181613228.png-water_print

보시다시피, 관리자는 인증 교장에 대해 모든 조치 권한을 열도록 구성했습니다.

2.4 任意文件上传与覆盖​

관리자가 버킷을 구성 할 때 버킷 권한을 쓰기 가능한 것으로 잘못 구성하면 공격자가 파일을 버킷에 업로드하거나 기존 파일을 덮어 쓰게됩니다.

2.4.1 阿里云​

202203181622847.png-water_print

202203181622397.png-water_print

대상 객체 스토리지가 HTML 구문 분석을 지원하는 경우 파일 업로드를 사용하여 XSS 피싱, 어두운 체인 매달려 검은 색 페이지, 공급망 중독 및 기타 작업을 수행 할 수 있습니다.

2.6 Bucket 接管​

관리자가 도메인 이름을 해결하고 버킷을 바인딩한다고 가정하지만 관리자가 버킷을 삭제 한 후 도메인 이름 해상도 CNAME은 도메인 이름 해상도를 삭제하지 않습니다. 현재 도메인 이름에 액세스하고NoSuchBucket이 나타납니다. 따라서 Alibaba Cloud 계정에 로그인하여 동일한 버킷을 만들 수 있습니다.

2.6.1 阿里云​

Alibaba Cloud에서 버킷에 Nosuchbucket이 표시되면 인계 할 수 있지만 AccessDenied가 표시되면 수행 할 수 없습니다.
202203181625733.png-water_print

2.7 Bucket 可修改​

버킷 정책에 대한 편집 권한이있는 경우 새 구성을 업로드하거나 수정하여 공격을 달성하거나 액세스 정책을 수정할 수 있습니다.

2.7.1 阿里云​

직접 풋 구성을 통해 공격의 목적을 달성 할 수 있습니다.
1
Aliyun Oss Bucket-Policy OSS: //SecurityTest-Geekby -Method Put ./oss.json

参考​

Firewire Salon —— 클라우드 스토리지의 공격 활용 방법을 간단히 분석합니다.
 
뒤로
상단