HTTP de texto simple o sin formato

Categoría de OWASP: MASVS-NETWORK: Comunicación de red

Descripción general

Permitir las comunicaciones de red de texto simple en una app para Android implica que cualquier persona que supervise el tráfico de red pueda ver y manipular los datos que se transmiten. Esta es una vulnerabilidad si los datos transmitidos incluyen información sensible, como contraseñas, números de tarjetas de crédito o cualquier otro tipo de información personal.

Independientemente de si envías información sensible o no, el uso de texto simple puede ser una vulnerabilidad, ya que el tráfico HTTP de texto simple o texto sin formato también se puede manipular a través de ataques de envenenamiento de red, como envenenamiento de ARP o DNS, lo que podría permitir que los atacantes influyan en el comportamiento de una app.

Impacto

Cuando una aplicación para Android envía o recibe datos en texto simple a través de una red, cualquier persona que supervise la red puede interceptarlos y leerlos. Si estos datos incluyen información sensible, como contraseñas, números de tarjetas de crédito o mensajes personales, se pueden producir robos de identidad, fraudes financieros y otros problemas graves.

Por ejemplo, una app que transmite contraseñas en texto simple podría exponer estas credenciales a un actor malicioso que intercepte el tráfico. Esos datos podrían usarse para obtener acceso no autorizado a las cuentas de los usuarios.

Mitigaciones

Las instrucciones que se brindan en esta sección solo se aplican a las apps orientadas a Android 8.1 (nivel de API 27) o versiones anteriores. A partir de Android 9 (nivel de API 28), la compatibilidad con texto simple está inhabilitada de forma predeterminada.

Usa la funcionalidad NetworkSecurityConfig.xml para inhabilitar el tráfico de texto simple:

XML

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Esta opción ayuda a prevenir las regresiones accidentales en apps debido a cambios en URLs que generaron fuentes externas, como servidores backend.

Recursos