모바일 앱 위변조와 방지 솔루션 - 위변조 방법과 방어의 우선순위

LIAPP·2023년 3월 2일
5


우선, 그에 앞서 2가지 용어 정리 먼저 할께요.

※ 정적(static) DATA

앱 또는 앱 패키지 내에 선언되어 있는 정보
ex) 접속할 서버의 URL, DB query, 패키지 내에 파일로 저장되어 있는 정보, 그 외 String으로 선언된 정보

※ 동적(dynamic) DATA

앱이나 앱 패키지 내에는 존재하지 않고 서버와의 통신을 통해 받아지는 정보
ex) 앱 동작에 필요한 정보 중 정적 DATA를 제외한 정보 앱 위변조 해킹을 하기 위해서는 일반적으로 아래와 같은 순서로 작업이 이루어져요.

1. 소스코드 분석 후 해킹할 point 타겟팅

2. 수정해야할 값이 동적 DATA라면, 앱 debugging을 통하여 해당 Method에서 사용되는 DATA를 확인

3. 타겟팅한 로직을 원하는 동작을 하도록 로직 수정 및 DATA 수정

4. 수정된 앱을 동작시킬 수 있도록 Re-Packaging

5. 해킹된 앱을 어떻게 배포할 것인지 선택하여 배포

첫번째,
소스코드의 분석 후 해킹할 로직에 대한 타겟팅입니다.
프로그래밍이나 코드 분석의 기본 지식없이 툴만을 사용하여 해킹을 하는 (낮은 기술적 난이도) 스크립트 키드 수준의 해커가 아니라면, 거의 모든 해킹의 첫번째 순서는 소스코드의 분석 이 선행됩니다.

두번째,
내가 원하는 해킹의 결과를 도출하기 위해서 타겟팅한 로직에서 실제 어떤 데이터 값이나 어떤 로직으로 변경해야하는지 (field의 값을 몇으로 변경하여야 원하는 값으로 인식하는지. 어떤 if를 뛰어 넘어야 하는지)를 확인하고 테스트 해봐야 합니다.

세번째,
실제 내가 분석한 코드를 기반으로 어느 부분을 고치면 내가 원하는 값이 나올지에 대해 알았고 그 값을 어떤 값으로 변경해야 하는지에 대해 디버깅을 통해 알았기 때문에 직접 수정하여 적용해 보는 작업을 진행합니다.

네번째,
리패키징은 수정이 완료된 소스 코드를 기존의 정상적인 앱과 같이 보이기 위해 다시 앱의 형태로 변환하는 과정을 말합니다.

다섯번째,
이렇게 변경된 앱을 어떻게 배포할 것인지는 해커가 원하는 목적에 따라 다를 수 있습니다.


해킹의 목적이 서비스를 사용하는 고객들의 정보라면,

악성 코드를 이용하여 사용자가 인지할 수 없는 상황에서 정상 앱을 변조된 앱으로 변경하는 방법을 택할 것이며, 목적이 서비스 사업자가 제공하는 컨텐츠에 대한 해킹이라면(컨텐츠 무료 사용, 능력치 변경 등), 공개된 게시판에 해킹된 앱을 배포하거나, 해킹된 앱이 서비스 수준(?)이 높고 많은 사람들이 필요로 한다면 일정한 돈을 받고 앱을 제공하는 사이트를 통하여 배포 될 것입니다.

현재는 유료화된 해킹앱들이 활성화 되고 있는 상황입니다.

서비스 사업자의 입장에서 가장 큰 보안적 위협을 꼽으라면 해킹된 앱이 배포됨으로써 일어나는 해킹이 가장 조심해야할 보안 사고 중 하나라고 하겠습니다.

많은 기업들이 처음부터 모든 해킹에 대한 방어책을 준비하고 실행한다면 매우 좋겠지만, 이러한 작업은 현실적으로 많은 제약이 있는 중소 규모 기업에서는 여건상 곤란한 부분이 있습니다.

그렇다면 공들여 만든 서비스를 지키기 위해 우리가 해야할 일은 가장 파급력있고 서비스에 심각한 타격을 줄 수 있는 해킹을 우선 순위로 막아야 하겠습니다.

보안은 한 번 준비로 마칠 수 있는 것이 아니기 때문에 현재 할 수 있는 상황에서 우선 순위를 정하고 하나씩 준비해감으로써 최종적으로는 서비스에 피해를 줄 수 있는 해킹을 성공적으로 차단하는 것을 목표로 두어야 할 것입니다.

1개의 댓글

comment-user-thumbnail
2023년 3월 2일

good!!

답글 달기