UX 디자인과 인지심리학 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

UX디자인과 인지심리학

사이버 공격과 데이터 도용은 요즘 특히 모바일 애플리케이션과 관련하여 매우 보편화되었습니다. 결과적으로 보안 위반이 발생한 모바일 앱은 재정적 손실을 입을 수 있습니다. 많은 해커가 고객 데이터를 훔치는 데 주목하면서 이러한 애플리케이션을 보호하는 것이 조직의 최우선 순위이자 개발자에게는 심각한 과제가 되었습니다. Gartner의 최근 연구에 따르면, 애플리케이션 보안의 하이프 사이클, 애플리케이션 보안에 대한 투자는 올해 6억 달러에서 13.7년까지 2026억 달러로 향후 몇 년 동안 12배 이상 증가할 것입니다. 그리고 이제 퍼블릭 클라우드에서 호스팅되는 앱에 중점을 두고 있습니다.” DevOps 보안의 기본 구성 요소를 올바르게 확보하는 것이 중요합니다. 다음은 모바일 애플리케이션을 보호하기 위한 XNUMX가지 팁입니다. 

1. 신뢰할 수 있는 소스에서 앱을 설치합니다.

Android 애플리케이션을 대체 시장에 다시 게시하거나 해당 APK 및 IPA를 다운로드할 수 있도록 하는 것이 일반적입니다. APK와 IPA는 모두 웹사이트, 클라우드 서비스, 드라이브, 소셜 미디어 및 소셜 네트워킹을 비롯한 다양한 위치에서 다운로드하여 설치할 수 있습니다. Play 스토어와 App Store에서만 신뢰할 수 있는 APK 및 IPA 파일을 설치할 수 있도록 허용해야 합니다. 이러한 앱의 사용을 방지하려면 앱 시작 시 소스 확인 감지(Play Store 또는 App Store)가 있어야 합니다.

또한 읽고, https://andresand.medium.com/add-method-to-check-which-app-store-the-android-app-is-installed-from-or-if-its-sideloaded-c9f450a3d069

2. 루트 감지:

Android: 공격자는 루팅된 장치에서 모바일 애플리케이션을 시작하고 로컬 메모리에 액세스하거나 애플리케이션에서 악의적인 활동을 수행하기 위해 특정 활동 또는 의도를 호출할 수 있습니다. 

iOS: 탈옥된 기기의 애플리케이션은 iOS 샌드박스 외부에서 루트로 실행됩니다. 이로 인해 애플리케이션이 다른 앱에 저장된 민감한 데이터에 액세스하거나 샌드박싱 기능을 무효화하는 악성 소프트웨어를 설치할 수 있습니다. 

루트 감지에 대한 추가 정보- https://owasp.org/www-project-mobile-top-10/2016-risks/m8-code-tampering

3. 데이터 저장:

개발자는 공유 기본 설정 및 사용자 기본값을 사용하여 토큰, 휴대폰 번호, 이메일, 부울 값 등과 같은 키-값 쌍을 저장합니다. 또한 개발자는 앱을 만드는 동안 구조화된 데이터에 대해 SQLite 데이터베이스를 선호합니다. 모든 데이터는 해커가 정보를 추출하기 어렵도록 암호화된 형식으로 저장하는 것이 좋습니다.

4. 보안 비밀 키:

API 키, 암호 및 토큰은 코드에 하드코딩하면 안 됩니다. 해커가 응용 프로그램을 변조하여 빠르게 빠져나갈 수 없도록 이러한 값을 저장하는 데 다른 기술을 사용하는 것이 좋습니다. 

다음은 참조 링크입니다. https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

5. 코드 난독화

공격자는 APK 파일을 디컴파일하고 애플리케이션의 소스 코드를 추출할 수 있습니다. 이로 인해 맞춤형 공격을 수행하는 데 사용될 수 있는 공격자에게 응용 프로그램의 소스 코드에 저장된 민감한 정보가 노출될 수 있습니다. 

소스 코드에 포함된 모든 민감한 정보를 방지하기 위해 소스 코드를 난독화하는 것이 좋습니다.

6. 보안 통신:

모든 통신이 암호화되지 않은 채널을 통해 이루어지기 때문에 공격자는 공격 수준을 활용하기 위해 악의적인 활동을 수행할 수 있습니다. 따라서 항상 HTTP URL보다 HTTPS URL을 사용하십시오.

7. SSL 고정:

인증서 고정을 통해 모바일 애플리케이션은 예상 값(핀)과 일치하는 유효한 인증서가 있는 서버로만 통신을 제한할 수 있습니다. 고정은 다음을 보장합니다. 사용자가 속아서 모바일 장치에 악성 루트 인증서를 설치하더라도 네트워크 데이터가 손상되지 않습니다. 인증서를 고정하는 모든 앱은 손상된 연결을 통한 데이터 전송을 거부하여 이러한 피싱 시도를 저지합니다.

참조하시기 바랍니다: 

https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning

8. 안전한 API 요청 및 응답 데이터

표준 사례는 REST API 호출의 기본 보호를 위해 HTTPS를 사용하는 것입니다. 서버로 전송되거나 서버에서 수신된 정보는 AES 등으로 추가 암호화될 수 있습니다. 예를 들어 민감한 콘텐츠가 있는 경우 HTTPS가 깨지거나 잘못 구성되어 있어도 암호화에 대한 또 다른 보호 계층이 있습니다.

9. 안전한 모바일 앱 인증:

응용 프로그램이 사용자 로그인 후 고유하고 복잡한 세션 토큰을 할당하지 않는 경우 공격자는 피해자가 공격자가 제공한 맞춤형 생성 토큰을 사용하도록 유인하고 캡처된 세션으로 로그인 페이지를 쉽게 우회하기 위해 피싱을 수행할 수 있습니다. MiTM 공격을 사용하여

i) 사용자가 응용 프로그램에 성공적으로 로그온할 때마다 고유하고 복잡한 세션 토큰을 사용자에게 할당합니다. 

ii) 로그아웃 직후 세션 수명을 종료합니다. 

iii) 둘 이상의 IP 주소에 동일한 세션 토큰을 사용하지 마십시오. 

iv) 모든 세션 토큰의 만료 시간을 제한합니다.

10. 백업 허용 

중요한 데이터가 포함된 앱은 사용자가 앱을 백업하는 것을 허용하지 않습니다. 백업 파일에 액세스할 수 있으면(예: android:allowBackup=”true”인 경우) 루팅되지 않은 기기에서도 앱의 콘텐츠를 수정하거나 읽을 수 있습니다. 따라서 백업 허용을 false로 설정하는 것이 좋습니다. 

11. 다른 앱에서 Android 애플리케이션 화면 액세스 제한

이상적으로는 귀하의 활동이 다른 서비스나 응용 프로그램에서 개방을 제공하지 않아야 합니다. 다른 앱에서 플러터 화면에 액세스하기 위한 특정 요구 사항이 있는 경우에만 true로 만들고 그렇지 않으면 다음으로 변경합니다. 기계적 인조 인간:내보낸 = "거짓"

12. 안드로이드 애플리케이션에서 패키지 설치 제한

REQUEST_INSTALL_PACKAGES 권한은 앱이 사용자 장치에 새 패키지 설치. 우리는 Android 플랫폼에서 남용을 방지하고 Google Play의 업데이트 메커니즘 이외의 방법을 사용하여 자동 업데이트하거나 유해한 APK를 다운로드하는 앱으로부터 사용자를 보호하기 위해 최선을 다하고 있습니다.

결론 : 

모바일 앱은 매일 엄청난 양의 고객 개인 데이터가 저장되어 그 어느 때보다 개인화되었습니다. 사용자 간의 신뢰와 충성도를 구축하고 회사의 상당한 재정적 및 자격 증명 손실을 방지하기 위해 이제 애플리케이션이 사용자에게 안전한지 확인하는 것이 중요합니다. 위에서 언급한 모바일 앱 보안 체크리스트를 따르면 해커가 앱을 해킹하는 것을 방지하는 데 확실히 도움이 됩니다.

저자 소개

Raviteja Aketi는 Mantra Labs의 선임 소프트웨어 엔지니어입니다. 그는 B2B 프로젝트에 대한 광범위한 경험을 가지고 있습니다. Raviteja는 새로운 기술을 탐구하고, 영화를 보고, 가족 및 친구들과 시간을 보내는 것을 좋아합니다.

최신 블로그 읽기: Nest.JS로 클린 아키텍처 구현하기

받은 편지함에 전달할 가치가있는 지식

타임 스탬프 :

더보기 만트라 연구소