본문 바로가기

Security_News/해외보안소식

안드로이드의 키스토어, 스택기반의 오버플로우 취약점 발견

728x90
  • 안드로이드社에서 제공하는 키스토어 서비스에서 고전적인 스택기반의 버퍼오버플로우가 발견됨
       ※ 키스토어(keystore) : 안드로이드 앱을 개발하여 배포 시, 앱에 서명하거나 구글 맵 API를 사용하기 
          위해 사용
       ※ 스택 기반 버퍼오버플로우 : 메모리 영역 중 스택영역을 이용하는 것으로 스택 영역의 메모리 오류를
           발생시켜 타겟 프로그램의 실행 흐름을 제어하고 공격자가 원하는 코드가 실행되도록 하는 공격 기법

 

주요내용

  • 안드로이드는 ‘/system/bin/keystore’ 파일에 의해 구현되는 보안 저장(secure storage) 서비스를 제공함
  • 스택 버퍼는 'KeyStore::getKeyForName' 메서드에 의해 생성이 되는데, Binder Interface를 이용하는 외부
    어플리케이션이 접근 가능한 여러 호출자들을 가지고 있고, ‘KeyName' 변수는 악성 어플리케이션에 의해 
    임의의 크기로 제어될 수 있음
  • 안드로이드 키스토어는 종료될 때마다 다시 생성되므로 취약점을 이용한 동작은 확률적 접근이 가능하며, 
    나아가 공격자가 이론적으로 암호화를 무력화시키기 위해 ASLR을 악용할 가능성이 존재함
       ※ ASLR(Address Space Layout Randomization) : 실행 파일이 실행되어 메모리에 올라갈 때 시작 
          주소를 변경하는 것

키스토어의 서비스 작업 모습

< 키스토어의 서비스 작업 모습 >

 

'KeyStore getKeyName' 생성 및 접근

< 'KeyStore getKeyName' 생성 및 접근 >

  • 해당 취약점으로 공격 시 프로세스 아래서 악성 코드를 실행시킬 수 있게 되는데, 디바이스의 잠금 자격
    증명(lock credential), 메모리로부터 복호화 된 마스터키, 데이터, 하드웨어의 백업키 식별자를 유출 가능함

 

[출처]
1. http://securityintelligence.com/android-keystore-stack-buffer-overflow-to-keep-things-simple-buffers-are-always-larger-than-needed/

728x90