[Education]/[AWS] Cloud Hacking

[AWS] Chapter4. 서버&서버리스 진단 - 3

starterr 2024. 5. 7. 00:00
반응형

4. NoSQL Injection

 

01. 개요

 

NoSQL 개요
- 유연한 수평확장(Scale-Out)
- 빠른 레이턴시
- 유연한 스키마
- 조인(join)이 불가하여 복잡한 로직 수행 시 성능 감소

 

DynamDB 개요
- AWS 클라우드 기반 NoSQL 솔루션
- INSERT, UPDATES, DELETES, QUERY 및 SCAN 작업 포함 CRUD 지원
- 데이터 검색을 위해 쿼리 및 스캔 사용
- 스캔 함수는 전체 테이블 스캔 후 ScanFilters를 기반으로 결과 리턴

DynamDB 개요
DynamDB  개요

 

 

02. 시나리오

 

DynamoDB 구성
-> 테이블
-> 기본키(Partition Key) - 무결성 보장
-> 데이터 타입 - S(String), N(Number), B(Binary), SET, Bool, Null, L(List), M(Map)
-> 아이템 - 저장될 데이터 값
-> 인덱스 - 쿼리 성능 향상 도구

취약성 발생 원인
- 사용자 입력 값 검증 미흡
-> 사용자의 입력 값이 필터, 스캔 구문에 직접 실행 가능
-> 데이터 타입, 특수문자에 대한 검증 미흡

위협
- 사용자 정보 테이블 공격 시 사용자 민감 정보 유출

 

 

반응형

 

03. 진단 방법

 

PartiQL
- AWS DynamoDB에 대한 SQL 호환 쿼리 언어

더보기

SELECT expression [, ...]
FROM table[.index]
[ WHERE condition ] [ [ORDER BY key [DESC|ASC], ...]

- 호환 언어를 사용하는 경우, 기존 SQL injection 진단 방법과 동일하게 진단 수행

NoSQL 사용여부 확인
-> 검색 및 쿼리 기능에 비교 연산자("EQ", "GT" 등) 사용 여부 확인
-> 요청 및 응답 데이터가 json 형식으로 전송

NoSQL Injection 진단 방법

구 분 내 용
설 명 검증되지 않는 사용자 입력 값이 NoSQL 쿼리 실행에 영향을 주어 개발자가 의도하지 않는 기능 실행
판단 기준 개발자가 의도하지 않은 명령어를 실행, 중요 정보 획득 가능
영 향 데이터베이스 내 중요 정보 탈취 가능

 

 

 

04. 실습

 

DynamoDB SQL Injection

DynamoDB SQL Injection
DynamoDB SQL Injection

- 사용자가 브라우저에서 파라미터 입력 후 Lambda로 전달
- Lambda는 파라미터를 이용하여 NoSQL 쿼리문 생성 및 실행

DynamoDB SQL Injection
DynamoDB SQL Injection

 

DynamoDB 비교연산자(참고)
- 기본 파라미터를 이용한 조건 작성

 

질의문에 조건절 추가하여 쿼리

DynamoDB 비교연산자(참고)
DynamoDB 비교연산자(참고)

 

DynamoDB SQL Injection
- 파라미터가 그대로 쿼리문에 질의되는 것을 확인

 

DynamoDB SQL Injection
DynamoDB SQL Injection

 

-> 비교연산자 선택 항목은 속성 변경 못하도록 비활성화 되어있음
-> 검색 키워드 "*" 입력하여 검색
-> 버프로 인터셉트, 비교 연산자를 EQ에서 GT로 변경하여 전송
-> 테이블 내 모든 데이터 출력

 

 

05. 보안대책

 

비교연산자를 이용한 테이블 조회
- 기존 파라미터를 이용해 질의 조건을 작성하는 경우
질의를 위한 필수 사용자 입력 값을 제외한 값은 변조가 불가능하도록 서버측 코드에 명시

표현식을 이용한 테이블 조회
- 사용자 입력 값 검증 및 필터링 수행
-> 파라미터 내 "*", " " 문자에 대한 필터링 처리
-> 사용자 입력 값 바인딩하여 쿼리로 실행되지 않도록 함

표현식을 이용한 테이블 조회
표현식을 이용한 테이블 조회

 

 

[AWS] Chapter2. 사용자 관리 - 2

 

[AWS] Chapter2. 사용자 관리 - 2

2. 인증 정보01. IAM 인증 정보IAM 인증 정보(Credential)- API Key, SSH Pubkey, AWS CLI & SDK 등 서비스 키를 포함 - 개발 실수, 환경 설정 미흡 등으로 인해 공개된 저장소에 저장되지 않도

infoofit.tistory.com

 

[AWS] Network - AWS 인터넷 연결

 

[AWS] Network - AWS 인터넷 연결

A. 인터넷 연결 방안1. 인터넷 게이트웨이1-1. 특징확장성과 가용성이 있는 VPC 구성요소로 VPC와 인터넷 간에 통신할 수 있게 해줍니다.퍼블릭 IPv4 주소가 할당된 인스턴스에 대해 1:1 IPv4 주소 변환

infoofit.tistory.com

 

반응형