2020-07-13 23:55 (월)
iOS와 안드로이드, 바이너리 공격에 매우 취약해
상태바
iOS와 안드로이드, 바이너리 공격에 매우 취약해
  • 길민권
  • 승인 2014.12.02 17:00
이 기사를 공유합니다

바이너리 공격 위협 인지하고 OWASP 모바일 가이드라인 지켜야
컴퓨팅 플랫폼이 모바일 컴퓨팅으로 진화하고 모바일 단말기가 급속하게 증가하면서 글로벌 앱 경제는 소비자, 직원 또는 파트너에게 기존 또는 새로운 기능을 제공하는 시장 간 혁신에 박차를 가하고 있다. 더불어 응용 프로그램 계층은 이제 해킹과 크래킹의 무결성을 유지하기 위해 공격에 대한 높은 수준의 보안을 요구하고 있다.
 
손장군 엔시큐어 이사는 “애플리케이션 취약점은 소스코드 수정으로 해결되지만 무결성 위협은 소스코드 수정으로 해결이 안된다”고 강조하고 “공격자는 앱을 공격하기 위해 그들의 디바이스를 루팅하거나 상당수 디바이스는 소유자 스스로 루팅을 한다. 따라서 모바일 앱이 안전한 환경에서 실행된다는 가정은 위험하다”고 경고했다.
 
또 “소스코드에서 결함 제거는 필수다. 그러나 결함이 없는 코드도 위험하도록 수정될 수 있다. 결함이 없는 모바일 앱을 공격자는 리버스 엔지니어링과 조작을 통해 해킹된 모바일 앱으로 변경할 수 있다”며 “애플리케이션은 리버스 엔지니어링 및 조작에 대해 자신을 보호해야 한다”고 덧붙였다.

 
악산(Arxan)에서 지난해 조사한 결과를 보면, 100개의 유료 앱을 검사한 결과 iOS는 56%가 해킹이 됐고 안드로이드는 100% 해킹이 가능했다. 인기있는 무료 앱도 iOS는 53%가 해킹가능했으며 안드로이드는 73%가 가능한 것으로 조사됐다.
 
모바일 금융앱도 마찬가지다. iOS는 23%가 해킹됐으며 안드로이드는 53%의 금융앱 코드 수정이 가능했다.
 
특히 바이너리 공격 결과, 인증, 암호화, 라이선스 관리, 검사, DRM, 루트, 탈옥 감지 등의 보안통제가 우회가능하며 키, 인증서, 인증, 메타 데이터 등 중요한 응용 프로그램 정보도 노출됐다. 즉 중요한 비즈니스 로직, 제어 흐름 및 프로그램 변조가 가능한 것이다.
 
손 이사는 “바이너리 공격의 결과로 얻을 수 있는 것은 멀웨어 또는 익스플로잇 삽입 후 리패키징이 가능하고 리버스엔지니어링을 통한 애플리케이션 내부정보 획득, 리버스엔지니어링을 통한 중요 정보 추출 및 불법복제, 무단배포가 가능하다”고 설명했다.
 
OWASP에 따르면, 손상에 대한 애플리케이션 보호를 위해 난독화 적용과 코드 암호화 적용, 가능하면 C/C++을 사용하고 자바와 오브젝티브C는 지양하라고 권고하고 있다.
 
또 바이너리 공격에 대한 런타임 탐지를 위해 채크섬을 적용해 중요 코드, 데이터에 대한 변경 여부를 탐지하고 안티디버깅을 적용해 프로그램 분석을 위한 디버거 실행 여부를 탐지, 차단해야 한다고 강조하고 있다.
 
코드 변경에 대한 대응 및 경보 적용도 중요하다. 손상된 코드를 원복 코드로 원복하고 위협 발생시 애플리케이션은 exit, fail 또는 경보 등을 적용해야 한다는 것.
 
또 무결성 보호는 다계층 심층 보호가 적용되어야 하며 예측 가능한 위치에서만 작동해서는 안된다고 강조한다. 그리고 바이너리 식별자를 제거해 중요 코드의 특성이 파악되지 않도록 제거해야 한다는 것.
 
손장군 이사는 “iOS와 안드로이드는 바이너리 공격에 매우 취약하다. 기업은 다양한 바이너리 공격 위협을 인지하고 OWASP 모바일 가이드라인을 주목해야 한다”며 “난독화만으로는 부족하다. 중요 코드는 Java/Objective-C에서 C/C++ 코드로 변경해야 한다”고 강조했다.
 
<★정보보안 대표 미디어 데일리시큐!★>
 
데일리시큐 길민권 기자 mkgil@dailysecu.com