Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보Aerospike Database Server 취약점(CVE-2016-9054)
작성일 2017-01-24 조회 1139

1.개요

최근 CISCO에서 Aerospike 데이터베이스 서버에 대한 취약점 PoC를 공개했다. 해당 취약점은 as_sindex_simatch_list_by_set_binid()에 존재하며, 메모리 충돌이 발생하여 원격 코드 실행이 가능한 취약점이다.
 
 

[취약점 버전 정보]
Aerospike Database Server 3.10.0.3

 
 
[용어 설명]
o Out-of-bounds read
지정된 영역을 벗어난 메모리 영역을 읽어들이는 행위를 말한다.
 
 

[어플리케이션 정보]

Aerospike Database Server

Aerospike는 엔터프라이즈급의 분산형, 확장 가능한 NoSQL 데이터베이스이다. 이 아키텍처는 세 가지 핵심 목표를 가지고 있다. 웹 규모 어플리케이션을 위한 유연하고 확장 가능한 플랫폼을 만들고, 전통적인 데이터베이스에서 기대되는 견고성과 안정성 (ACID와 같은)을 제공하고 최소한의 수동 조작으로 운영 효율성을 제공한다. Aerospike 아키텍처는 클라이언트 계층과 클러스터링 및 데이터 배포 계층, 데이터 저장소 계층의 세 가지 계층으로 구성된다.

 

 

 

2.분석 내역

해당 취약점은 as_sindex_simatch_list_by_set_binid() 에서 발생한다. ([그림2] 참조) 클라이언트로 패킷을 전달받은 서버에서는 as_sindex_from_range 함수를 통해서 패킷내에 있는 문자열들을 as_sindex_lookup_by_defns 함수로 전달하게 된다. 그리고 해당 함수의 마지막 부분에서, 문자열을 as_sindex__simatch_by_set_binid() 함수로 전달하게 된다. 


[그림1] as_sindex_from_range 함수

 

마지막으로 문자를 전달 받은 as_sindex__simatch_list_by_set_bind() 함수는 취약점이 발생되는 지점으로, sprintf[2] 문자열로도 사용된다. 만약 전달 받은 문자열의 길이와 binid 길이가 AS_SINDEX_PROP_KEY_SIZE(84)보다 큰 경우 취약점이 발생한다.


[그림2] 취약점 발생 지점

 

 

3.정리

해당 취약점은 Aerospike Database Server 3.10.0.3 버전에 존재한다. 해당 PoC를 이용하여 원격 코드 실행이 가능하므로 이에 대한 각별한 주의가 필요하다. 이를 피하기 위해 해당 소프트웨어를 사용시에는 반드시 최신 버전으로 업그레이드하여 사용하도록 한다.

 

 

4.대응 방안

1)최신 버전으로 업그레이드한다.


[Aerospike 업데이트] https://github.com/aerospike/aerospike-server


 

2) 아래와 같은 패턴으로 대응이 가능하다.


[Snort Rule] 

alert tcp any any -> any 3000 (msg:"Aerospike Database Server Information Disclosure Vulnerability(CVE-2016-9054)"; flow:to_server; content:"|02 03|"; offset:0; depth:2; content:"|00 03|"; distance:24; within:2; content:"|00|"; distance:6; within:1; content:"|16|"; distance:8; within:1; byte_test:4,>,0x84,33,relative; content:"|01|"; distance:0; within:1; pcre:"/[x00-xff]{85}/i"; priority:2; sid:0; rev:1;)


 

 

5.참고

http://www.talosintelligence.com/reports/TALOS-2016-0264/

첨부파일 첨부파일이 없습니다.
태그   CVE-2016-9054