어렵지만 꼭 알아야하는 보안 용어, 쉽게 알려드릴게요 😎

liapp_team·2022년 10월 24일
21

LIAPP TECH BLOG

목록 보기
4/12

성공적인 모바일 서비스를 위한 필수 보안용어 7

이제는 "언택트" 시대라 하여 우리의 앱 서비스는 이제까지 없었던 혁신성과 편의성을 사용자에게 제공하며, 더욱 편리한 세상을 만들고 있습니다.

하지만 경쟁적으로 서비스의 편의성 제공에만 몰두한 결과 '앱 내 머니 무단인출', '신용카드 앱 도용', '고객정보 유출 사건' 등의 사건으로 인해 혁신적인 서비스가 한번에 무너지는 매우 안타까운 상황도 종종 볼 수 있습니다.

이번 포스트에서는 성공적인 모바일 서비스를 위해 필수적으로 알아 두어야 할 7가지 보안용어를 꼽아 보았습니다. 이를 통해서 기술에 익숙하지 않거나 보안에 생소한 분들도 성공하는 앱 서비스가 갖춰야 할 필수적인 요소에 대하여 인지하고 대비할 수 있습니다.

1. Tampering (위변조)

Tampering은 해커가 우리의 앱을 무단으로 변경하는 행위를 말하고, 이를 방어하는 기술을 '위변조 방지' 또는 'anti-tampering'이라 합니다.
Tampering을 통해 결제 시스템을 피해 유료 콘텐츠를 무료로 사용하는 등의 서비스를 악의적으로 사용하거나, 서비스의 기밀 정보부터 고객의 개인 정보까지 탈취하기도 합니다.
이뿐만 아니라 Tampering이 더욱 심각한 이유는 해커들이 tampering(수정) 된 앱을 공개된 웹사이트를 통해 불특정 다수에게 배포하는 경우가 많아 서비스에 치명적인 2차 피해가 발생합니다.

2. Decompile (디컴파일)

​모바일 앱은 어떻게 만들어질까요?
먼저 개발자가 코딩을 하여 소스코드를 작성하고, 이 소스코드를 기계가 인식하는 언어(기계어)로 변형시키면 모바일에 설치가 가능한 앱이 되어집니다
이렇게 만들어진 앱 (사람이 이해하기 어려운 기계어로 이루어진)을 사람이 쉽게 이해할 수 있는 소스코드(우리의 개발자가 만들었던)로 다시 변환하는 것을 Decompile 기법이라고 합니다.
이렇게 변환된 소스코드는 서비스 내 매우 중요한 정보를 담고 있기 때문에 악의적인 해커들은 내 서비스의 취약점을 찾아내고, 중요한 정보를 탈취하기 위한 수단으로 Decompiling 기법을 이용합니다.

3. Rooting (루팅)

우리가 사용하는 스마트폰은 사용자가 마음대로 시스템을 조작하여 망가지지 않도록 루트(최고 관리자) 계정 권한이 제한되어 있습니다.
따라서, ​'루팅한다' 라고 하면 관리자 권한을 해킹하여 스마트폰 내 모든 것을 접근 할 수 있는 Super User​가 될 수 있습니다.

해커들은 앱 해킹을 하기 위해 관리자 권한 취득이 필요하다고 판단하면 모바일 디바이스를 루팅하기 때문에, 서비스를 보호하기 위해서는 앱이 실행 될 때 모바일의 Rooting 여부를 탐지하는 것이 중요합니다.​

4. Virtual Machine (가상머신)

Virtual machine(가상머신)은 PC에서 가상의 스마트폰 환경을 제공하는 소프트웨어의 일종 입니다.
본래의 PC에서 스마트폰의 어플을 즐길 수 있게 하기 위해서 개발되어 졌으나, 해커들이 이를 악용하여 해킹 수단으로 사용하고 있습니다.

NOX, Bluestacks 등이 대표으로 알려진 가상머신 툴입니다.​

5. Debugging (디버깅)

일반적인 디버깅(Debugging)이란 프로그램 개발 최종 단계에서 프로그램의 오류와 원인을 찾고 문제를 해결하는 테스트 과정을 말하합니다.
하지만 이러한 디버깅은 해커, 혹은 악의적 사용자에게 내 앱의 동작원리와 보안적으로 취약한 부분을 분석하는 도구로 악용되어 지고 있습니다.

6. Code Obfuscation (난독화)

Code Obfuscation (난독화)란,
앱의 기능은 기존 그대로 보존하되 소스 코드를 이해하기 어렵도록 분해하고 변경하여 중요한 정보가 탈취되는 것을 방어하기 위한 기술입니다.

소스 코드에 쓰여있는 Class, method, field 등에 붙쳐진 의미있는 이름을 쉽게 유추 할 수 없는 이름으로 변경하는 것도 Code Obfuscation (난독화) 기법의 일종입니다.
Ex) 'Buy_Item' -> 'a' 로 이름을 변경
하지만 이러한 난독화는 소스코드의 분석 및 유추의 시간을 늦추는 역할을 하는것이지 앱의 악의적인 변경 또는 메모리의 변경등의 공격을 막는 것이 아님으로 이점을 주의 하셔야 합니다.

7. Code Encryption (암호화)

일반적으로 암호화는 중요한 정보를 알아 볼 수 없도록 보호하는 기법을 말합니다.
Ex) 중요한 문서 파일 등..

LIAPP을 예로 들어 설명하면, 경우 일반 파일 뿐만 아니라 소스코드에도 암호화 기법을 적용하여 앱을 강력하게 보호함으로써 앱에게 안전한 실행환경을 제공합니다.

LIAPP은 오리지널 소스코드를 난독화 (obfuscation) 한 후, 암호화 (encryption)까지 된 상태로 보호하기 때문에 제 3자가 소스코드 분석을 할 수 없도록 해킹 공격을 강력히 차단 할 수 있습니다.

지금까지 앱 서비스에 필요한 필수 보안용어에 대하여 알아 보았습니다. 위 내용을 참고 하셔서 앱 서비스에 필수적인 보안요소를 준비하시어 성공적인 서비스가 되시길 바랍니다.

저희 LIAPP TEAM은 개발자 여러분께 모바일 앱 보안에 대한 정보 제공을 목표로 테크 블로그를 작성하고 있습니다. 더 많은 내용을 확인하시려면 아래 링크로 방문해주세요 😘

코드 암호화로 더 강력한 보안을 제공하는 LIAPP 더 알아보기

LIAPP TEAM에서 알립니다📣

락인컴퍼니는 모바일 앱 보안 전문 기업입니다. 저희는 전세계 누구나 쉽게 보안을 누릴 수 있는 세상을 만들고자 합니다. 작은 기업이라도 여러분이 만든 서비스가 누군가로부터 위협받지 않도록 함께 지켜가고 싶습니다. 저희의 비전과 사명감으로 함께 새로운 시장을 개척하며, 전 세계가 사랑하는 보안 서비스를 함께 만들어 나갈 Teammates를 찾고 있으니, 많은 관심 부탁드려요!

LIAPP TEAM 채용공고 확인하기

profile
LIAPP TEAM은 전 세계 누구나 쉽게 보안을 누릴 수 있는 세상을 만들고 싶습니다.​ 작은 기업이라도 많은 노력으로 만든 서비스가 누군가로부터 위협받지 않도록, 그 가치를 잃지 않도록, 함께 지켜나가고 싶습니다🤗

0개의 댓글