MITM(Man-in-the-Middle) 공격에 맞서 안드로이드 앱 확보

• 안드로이드 개발의 중요한 보안 취약점인 MITM(Man-in-the-Middle) 공격은 공격자가 앱과 서버 간의 통신을 가로채 데이터를 훔치거나 멀웨어를 주입하거나 세션을 하이잭하는 것을 포함하며 OWASP 모바일 Top 10 위험 M3 및 M9에 정렬한다.
• MITM 공격을 방지하는 것은 신뢰할 수 있는 인증서 당국의 유효한 SSL/TLS 인증서인 TLS 1.2 또는 1.3과 HTTPS를 사용하는 것으로 시작되며 HSTS는 모두 네트워크 보안 구성을 사용하여 AndroidManifest.xml 내에서 시행된다.
• 인증서 고정은 중요합니다. 앱이 특정 인증서만 신뢰하도록 보장하여 인증서 권한이 손상되더라도 공격자가 사기 인증서를 사용하여 서버를 사칭하는 것을 방지합니다.
• 안드로이드 7.0에 도입된 안드로이드 네트워크 보안 구성(NSC)은 보안 정책에 대한 세분화된 제어를 제공하여 개발자가 TLS를 시행하고 클리어텍스트 트래픽을 비활성화하며 XML 파일(network_security_config.xml)을 통해 인증서 고정을 구현할 수 있다.
• 적절한 인증서 검증은 무엇보다 중요하며, 앱은 강력한 트러스트 관리자를 사용하여 신뢰할 수 있는 CA에 대한 인증서를 검증하고 자체 서명 또는 알려지지 않은 인증서를 거부하고 개발 중 SSL 검증을 비활성화하는 것을 피해야 한다.
• 마지막으로 AES-GCM 또는 ChaCha20-Poly1305와 같은 강력한 암호화 알고리즘을 사용하고 SSL 3.0 및 TLS 1.0과 같은 구식 프로토콜을 비활성화하는 것은 공격자가 보안 통신을 손상시키기 위해 약한 암호화를 이용하는 것을 방지하는 데 필수적이다.
https://proandroiddev.com/man-in-the-middle-mitm-attacks-in-android-development-how-to-secure-your-app-062d1fdb3a7e