В этом разделе собраны рекомендации по обеспечению безопасности сетевых коммуникаций с Android-устройств.
Защита розеток для прослушивания
Используйте гнезда для прослушивания с осторожностью. Как правило, на устройствах не должно быть открытых сокетов для прослушивания, поскольку они предоставляют возможность удаленному злоумышленнику получить доступ к устройству.
- Устройствам Android следует свести к минимуму количество открытых сокетов для прослушивания Интернета, особенно при загрузке или по умолчанию. По умолчанию ни один сокет не должен прослушивать Интернет при загрузке.
- Корневые процессы и процессы, принадлежащие уникальному идентификатору системы (UID), не должны предоставлять доступ к прослушивающим сокетам.
- Прослушивающие сокеты должны иметь возможность отключаться без OTA-обновления. Это можно выполнить с помощью изменения конфигурации сервера или пользовательского устройства.
- Для локальных сокетов, использующих IPC, приложения должны использовать сокет домена UNIX с доступом, ограниченным группой. Создайте файловый дескриптор для IPC и присвойте ему +RW для конкретной группы UNIX. Все клиентские приложения должны находиться в этой группе UNIX.
- Некоторые устройства с несколькими процессорами (например, радио/модем, отдельный от процессора приложения) используют сетевые сокеты для связи между процессорами. В таких случаях сетевой сокет, используемый для межпроцессорной связи, должен использовать изолированный сетевой интерфейс для предотвращения доступа неавторизованных приложений на устройстве (т. е. использовать iptables для предотвращения доступа других приложений на устройстве).
- Демоны, обрабатывающие прослушиваемые порты, должны быть устойчивы к искаженным данным. Вам следует провести фазз-тестирование порта с использованием неавторизованного клиента и, если возможно, авторизованного клиента. Файлы ошибок для отслеживания сбоев.
Набор тестов совместимости Android (CTS) включает тесты, проверяющие наличие открытых портов прослушивания.
Отключить АБР
Android Debug Bridge (ADB) — ценный инструмент разработки и отладки, но он предназначен для использования в контролируемой, безопасной среде, и его не следует включать для общего использования.
- Убедитесь, что ADB отключен по умолчанию.
- Убедитесь, что ADB требует от пользователя включить его перед принятием подключений.