해킹 방지 앱을 보장하기 위한 모바일 앱 보안 모범 사례
게시 됨: 2018-11-27혁신적인 모바일 애플리케이션을 구축하는 것은 모바일 앱 개발의 첫 번째 단계일 뿐입니다. 앱을 빌드하면 앱 개발을 따르는 수천 개의 필수 프로세스가 있습니다. 모바일 앱 보안의 많은 중요한 단계 중 하나입니다.
이 기사에서는 개발이 완료된 후 구현해야 하는 필수 모바일 앱 보안 관행 이 무엇인지 살펴보겠습니다 .
지난 10년 동안 우리 모두는 모바일 앱 개발 산업이 어떻게 성장했지만 사이버 범죄도 성장했는지 목격했습니다. 그리고 이러한 범죄로 인해 특정 보안 조치를 취하지 않고는 Play 스토어 또는 App Store에 앱을 제출할 수 없는 단계에 이르렀습니다.
그러나 보안 조치에 수반되는 사항에 대해 알아보려면 먼저 이러한 조치를 취해야 하는 이유와 모바일 앱 개발 업계를 괴롭히는 잠재적인 앱 보안 문제가 무엇인지 이해해야 합니다. 실제 추정치를 위해 사실을 살펴보겠습니다.
모바일 앱 보안에는 멀웨어 및 위협으로부터 보호하는 것보다 더 많은 것이 있습니다. 보안 조치를 더 잘 이해하기 위해 먼저 몇 가지 OWASP 모바일 앱 보안 위협 을 식별해 보겠습니다 .
모바일 앱 보안이 필요한 이유: 잠재적 위협 및 솔루션
앱 개발 세계에 존재하는 위협은 악의적이지만 모바일 애플리케이션을 보호하는 간단한 단계로 해결할 수 있습니다. 주요 모바일 앱 보안 문제는 무엇인지 살펴보겠습니다.
1. 잘못된 서버 제어:
모바일 장치 외부에서 앱과 사용자 간에 발생하는 통신은 서버를 통해 발생합니다. 그리고 이러한 서버는 전 세계 해커의 주요 표적입니다. 서버 취약점의 주된 이유는 개발자가 때때로 필요한 서버 측 보안을 간과하기 때문입니다. 이는 모바일 애플리케이션의 보안 고려 사항에 대한 지식 부족, 보안 목적을 위한 적은 예산 또는 플랫폼 간 개발로 인한 취약성으로 인해 발생할 수 있습니다.
해결책:
서버를 보호하는 가장 중요한 단계는 자동화된 스캐너를 사용하여 앱을 스캔하는 것입니다. 그렇지 않으면 이러한 스캐너를 사용하여 해커가 앱의 취약점을 찾아내고 이를 악용할 수 있습니다. 자동화된 스캐너는 쉽게 해결할 수 있는 일반적인 문제와 버그를 표시합니다.
2. 바이너리 보호의 부재:
이것은 모바일 앱에 대한 바이너리 보호가 부족하면 해커나 공격자가 앱 코드를 쉽게 리버스 엔지니어링하여 맬웨어를 도입할 수 있기 때문에 해결해야 할 주요 OWASP 앱 보안 문제 중 하나입니다. 그들은 또한 불법 복제된 애플리케이션을 재배포하고 위협을 주입할 수도 있습니다. 이 모든 것은 데이터 도난, 브랜드 이미지 손상 및 결과적으로 수익 손실과 같은 중요한 문제로 이어질 수 있습니다.
해결책:
이진 파일을 보호하려면 이진 강화 절차를 배포하는 것이 중요합니다. 이 절차의 일부로 바이너리 파일을 분석하고 그에 따라 수정하여 일반적인 모바일 앱 보안 위협으로부터 보호합니다. 이 절차는 소스 코드를 전혀 포함하지 않고 레거시 코드를 수정합니다. 모바일 앱 보안 프로세스에서 작업하는 동안 탈옥 감지, 체크섬 제어, 디버거 감지 제어 및 인증서 고정을 위한 보안 코딩을 보장하는 것이 중요합니다.
3. 데이터 저장의 불안정성:
모바일 앱 보안에서 흔히 볼 수 있는 또 다른 큰 허점은 안전한 데이터 저장 시스템이 없다는 것입니다. 실제로 모바일 앱 개발자 는 내부 데이터를 클라이언트 저장소에 의존하는 것이 일반적입니다. 그러나 경쟁자가 모바일 장치를 소유하는 동안 이 내부 데이터에 매우 쉽게 액세스하여 사용하거나 조작할 수 있습니다. 이는 신원 도용 또는 PCI(외부 정책 위반)와 같은 여러 범죄로 이어질 수 있습니다.
해결책:
여기서 고려해야 할 앱 보안 조치 중 하나는 OS의 기본 수준 암호화에 추가 암호화 계층을 구축하는 것입니다. 이는 데이터 보안을 크게 향상시킵니다.
4. 전송 계층에 대한 부적절한 보호:
전송 계층은 클라이언트와 서버 간에 데이터가 전송되는 경로입니다. 이 시점에서 올바른 모바일 앱 보안 표준이 도입되지 않으면 해커가 내부 데이터에 액세스하여 이를 훔치거나 수정할 수 있습니다. 이는 신분 도용 및 사기와 같은 심각한 범죄로 이어집니다.
해결책:
전송 계층 보안을 강화하려면 iOS 및 Android 앱에 SSL 고정을 통합해야 합니다. 이와 함께 일반 암호 대신 업계 표준 암호 제품군을 사용할 수 있습니다. 또한 SSL 버전의 타사 분석을 사용하여 혼합 SSL 세션으로 인한 사용자 세션 ID 노출을 피하고 유효하지 않은 인증서의 경우 사용자에게 경고하는 것은 위험한 보안 위반으로부터 사용자를 구할 수 있는 일반적인 관행입니다.
5. 의도하지 않은 데이터 유출:
의도하지 않은 데이터 유출은 중요한 모바일 애플리케이션이 모바일 장치의 취약한 위치에 저장될 때 발생합니다. 예를 들어 앱은 다른 앱이나 장치에서 쉽게 액세스할 수 있는 위치에 저장되어 궁극적으로 앱 의 데이터 위반 및 무단 데이터 사용을 초래합니다.
해결책:
로깅, 앱 백그라운드, 캐싱, 브라우저 쿠키 개체 및 HTML5 데이터 저장소와 같은 일반적인 데이터 누출 지점을 모니터링합니다.
이러한 5가지 모바일 개발 보안 위협 외에도 보안 모바일 앱을 구축하는 과정에서 흔히 발생하는 다른 장애물이 있습니다. 여기 있습니다:
- 다단계 인증의 부재 – 프로세스는 사람이 애플리케이션에 들어가게 하기 전에 여러 계층의 보안을 제공합니다. 개인적인 질문, OTP, SMS 구성 또는 기타 조치에 답할 수 있습니다. 다단계 인증이 없으면 앱을 안전하게 만드는 방법에 대한 답을 찾는 데 중요한 부분이 되는 몇 가지 문제가 발생할 수 있습니다.
- 제대로 암호화할 수 없음 – 모바일 애플리케이션 보안 모범 사례의 중요한 요소는 적절한 암호화를 보장하는 것입니다. 이를 사용할 수 없으면 코드 절도, 지적 재산권 절도, 개인 정보 침해 등 여러 가지 문제가 발생할 수 있습니다.
- 악성 코드 삽입 – 양식과 같은 사용자 생성 콘텐츠는 종종 위협으로 간과됩니다. 사용자가 ID와 비밀번호를 추가하면 앱이 서버 측 데이터와 통신하여 정보를 인증한다고 가정합니다. 이제 사용자가 입력하는 문자를 제한하지 않는 앱은 서버에 액세스하기 위해 코드를 주입할 위험이 있습니다.
- 리버스 엔지니어링 – 모든 보안 모바일 애플리케이션 개발의 악몽입니다. 이 접근 방식은 앱이 백엔드에서 어떻게 작동하는지 보여주고 소스 코드 등을 수정하는 동안 암호화 알고리즘을 드러내는 데 사용할 수 있습니다.
- 안전하지 않은 데이터 저장 - 쿠키, 바이너리 데이터 저장소, SQL 데이터베이스 등 앱 내부의 여러 위치에서 안전하지 않은 데이터 저장이 발생할 수 있습니다. 해커가 데이터베이스나 장치에 액세스하면 합법적인 앱을 변경하여 정보를 컴퓨터로 가져올 수 있습니다. .
모든 모바일 애플리케이션을 괴롭히는 일반적인 위협과 이러한 문제를 방지하기 위해 따라야 할 최고의 모바일 앱 보안 사례를 살펴본 후 Android 및 iOS 모바일 애플리케이션 보안에 대한 세부 사항으로 넘어가겠습니다.
Android 앱을 안전하게 만드는 방법은 무엇입니까?
선택할 수 있는 효과적인 Android 앱 보안 모범 사례는 다음과 같습니다.
외부 저장소의 데이터 암호화 –
일반적으로 장치의 내부 저장 용량은 제한되어 있습니다. 그리고 이러한 결점은 종종 사용자가 데이터를 안전하게 보관하기 위해 하드 디스크 및 플래시 드라이브와 같은 외부 장치를 사용하도록 강요합니다. 그리고 이 데이터는 때때로 민감한 기밀 데이터로 구성되기도 합니다. 외부 저장 장치에 저장된 데이터는 장치의 모든 앱에서 쉽게 액세스할 수 있으므로 데이터를 암호화된 형식으로 저장하는 것이 매우 중요합니다. 모바일 앱 개발자가 가장 널리 사용하는 암호화 알고리즘 중 하나는 AES 또는 고급 암호화 표준입니다.
민감한 데이터를 위한 내부 저장소 사용 –
모든 Android 애플리케이션에는 내부 저장소 디렉토리가 있습니다. 그리고 이 디렉토리에 저장된 파일은 파일 생성을 위해 MODE_PRIVATE 모드를 사용하기 때문에 매우 안전합니다. 간단히 말해서 이 모드는 특정 앱의 파일에 장치에 저장된 다른 응용 프로그램이 액세스할 수 없도록 합니다. 따라서 집중해야 할 모바일 앱 인증 모범 사례 중 하나입니다.
HTTPS 사용 –
앱과 서버 간에 발생하는 통신은 HTTPS 연결을 통해 이루어져야 합니다. 수많은 Android 사용자가 공공 장소의 여러 개방형 WiFi 네트워크에 연결되어 있는 경우가 많으며 HTTPS 대신 HTTP를 사용하면 장치가 HTTP 트래픽의 내용을 쉽게 변경하고 장치의 앱이 예기치 않게 작동하게 할 수 있는 많은 악성 핫스팟에 취약해질 수 있습니다.
SMS 대신 GCM 사용 –
구글 클라우드 메시징이나 GCM이 존재하지 않던 시절에는 서버에서 앱으로 데이터를 푸시하기 위해 SMS를 사용했지만 오늘날에는 GCM을 많이 사용한다. 그러나 SMS에서 GCM으로 아직 전환하지 않았다면 전환해야 합니다. SMS 프로토콜은 안전하지도 않고 암호화되지도 않기 때문입니다. 게다가 SMS는 사용자 기기의 다른 앱에서 액세스하고 읽을 수 있습니다. GCM 통신은 클라이언트 측에서 정기적으로 새로 고쳐지는 등록 토큰으로 인증되며 서버 측에서 고유한 API 키를 사용하여 인증됩니다.
기타 주요 모바일 앱 개발 보안 모범 사례에는 사용자 입력 유효성 검사, 개인 데이터 필요 방지, 앱 게시 전 ProGuard 사용이 포함될 수 있습니다. 아이디어는 가능한 한 많은 맬웨어로부터 앱 사용자를 보호하는 것입니다.
iOS 앱을 안전하게 만드는 방법?
따라야 할 iOS 앱 보안 모범 사례 중 일부는 다음과 같습니다.
데이터 저장 –
앱 아키텍처를 크게 단순화하고 보안을 향상시키려면 디스크에 쓰거나 원격 서버로 보내는 대신 앱 데이터를 메모리에 저장하는 것이 가장 좋습니다. 데이터를 로컬에 저장하는 것이 유일한 옵션인 경우에도 여러 가지 방법이 있습니다.
키체인:
자주 액세스할 필요가 없는 소량의 민감한 데이터를 저장하는 가장 좋은 장소는 키체인입니다. 키체인에 저장된 데이터 는 OS에서 관리하지만 다른 애플리케이션에서는 액세스할 수 없습니다. – 캐시: 데이터를 iCloud 또는 iTunes에 백업할 필요가 없는 경우 애플리케이션 샌드박스 의 캐시 디렉토리에 데이터를 저장할 수 있습니다 . – 기본 시스템: 기본 시스템은 많은 양의 데이터를 저장하는 편리한 방법입니다.
네트워킹 보안:
Apple은 보안 및 개인 정보 보호 정책으로 유명하며 수년 동안 이 수준에 도달하기 위해 노력했습니다. 몇 년 전 Apple은 타사 모바일 앱이 보다 안전한 연결(예: HTTPS)을 통해 네트워크 요청을 보내도록 하는 App Transport Security를 도입했습니다.
민감한 정보의 보안 –
대부분의 모바일 앱은 주소록, 위치 등과 같은 민감한 사용자 데이터를 사용합니다. 그러나 개발자는 사용자에게 요청하는 모든 정보가 실제로 액세스하는 데 필요한 정보인지 확인해야 합니다. 중요한 것은 저장하는 것입니다. 따라서 기본 프레임워크를 통해 필요한 정보에 액세스할 수 있다면 해당 정보를 복제하고 저장하는 것은 불필요합니다.
이제 해킹 방지 앱에 대한 Android 및 iOS 모바일 앱 보안 사례를 모두 살펴보았습니다. 그러나 어떤 개발도 기록된 것처럼 그렇게 쉬울 수는 없습니다. 과정 중에는 항상 특정 과제가 있습니다. 미국의 거의 모든 최고의 앱 개발 회사가 직면하고 해결한 과제에 대해 알아보겠습니다.
모바일 앱 보안과 관련된 과제
외부 멀웨어로부터의 보안을 위한 충분한 조치가 취해지지 않을 경우 모바일 앱이 얼마나 취약해질 수 있는지에 대한 입증된 기록이 있습니다. 요구 사항에 따라 모바일 앱 보안 테스트 가 완료되지 않은 경우 언제든지 발생할 수 있는 문제는 다음과 같습니다 .
장치 조각화 –
앱 스토어에 애플리케이션을 출시하기 전에 따라야 할 필수 프로세스가 있습니다. 모바일 앱 테스트 전략 에 다양한 해상도, 기능, 기능 및 제한 사항을 포함하는 다양한 장치가 필요합니다 . 기기별 취약성을 감지하면 앱 개발자가 앱 보안 조치에서 한 발 앞서 나갈 수 있습니다. 기기뿐만 아니라 다른 버전의 인기 있는 OS도 앱 출시 전에 모든 가능한 허점을 커버해야 하는 중요한 단계입니다.
약한 암호화 –
약한 암호화 의 경우 모바일 장치는 사용 가능한 모든 장치에서 데이터를 수신하는 데 취약합니다. 맬웨어를 사용하는 공격자는 공개 모바일 장치에서 열린 끝을 끊임없이 찾고 있으며 강력한 암호화 프로세스를 따르지 않으면 앱이 그런 열린 끝이 될 수 있습니다. 따라서 강력한 암호화에 노력을 투자하는 것도 해킹 방지 모바일 앱 을 만드는 가장 좋은 방법 중 하나입니다 .
약한 호스팅 제어 –
주로 데이터가 서버 측 시스템에 노출되는 비즈니스 최초의 모바일 앱 개발 중에 발생합니다. 따라서 앱을 호스팅하는 데 사용되는 서버에는 권한 없는 사용자가 중요한 데이터에 액세스하지 못하도록 충분한 앱 보안 조치가 있어야 합니다.
모바일 애플리케이션 보안 지침 체크리스트
모든 모바일 앱 개발 회사가 보안 애플리케이션을 구축할 때 따르는 여러 가지 사항이 있습니다. 다음은 우리가 일반적으로 따르는 체크리스트입니다.
- 서버 측 인증 사용
- 암호화 알고리즘 사용
- 사용자 입력이 확인 표준을 충족하는지 확인
- 데이터를 뒷받침하는 위협 알고리즘 생성
- 리버스 엔지니어링을 중지하기 위한 난독화
모바일 앱 보안 감사를 통해 해킹 방지 모바일 앱을 만드는 방법은 여러 가지가 있으며 출처를 알 수 없는 공격에 대한 보안 조치가 아무리 많아도 충분하지 않습니다. 모바일 앱 개발 보안 모범 사례를 살펴보는 것도 한 가지 방법입니다. 오늘날 디지털 세계는 모든 사람이 사용할 수 있도록 공개되어 있으며 맬웨어 및 보안 침해로부터 충분히 안전한 사용자는 없지만 이러한 조치를 통해 디지털 장치에서 개인 데이터를 안전하게 보호할 수 있습니다.