Хакер #305. Многошаговые SQL-инъекции
Новые скандалы с утечкой приватных данных пользователей мобильных устройств случаются чуть ли не каждый день: всё идёт к тому, что обычные пользователи просто перестанут доверять разработчикам приложений, операционной системы и даже производителям телефонов, ведь среди них до сих пор не действует никаких единых стандартов для защиты пользовательских данных. Похоже, те даже не пытаются договориться и выработать подобные стандарты. А ведь мобильных устройств продаётся всё больше — не за горами тот момент, когда смартфонов и планшетов в мире станет гораздо больше, чем персональных компьютеров.
Фонд электронных рубежей (EFF) решил исправить ситуацию и опубликовал фундаментальный «билль о правах» — декларацию прав человека с мобильным устройством (Mobile User Privacy Bill of Rights), которую они предлагают подписать и незыблемо блюсти всем без исключения разработчикам аппаратного и программного обеспечения для мобильных платформ. Документ должен стать универсальным руководством по соблюдению приватности пользователей. Он составлен по образцу аналогичного билля о правах пользователей социальных сетей и декларирует шесть базовых принципов.
1. Индивидуальный контроль. Пользователь имеет право осуществлять контроль, какие персональные данные собирает на него каждое приложение и как оно их использует. Хотя определённые возможности для такого контроля сейчас существуют на уровне операционной системы, разработчики приложений всё равно должны прикладывать усилия, чтобы информировать пользователя даже в тех случаях, когда это технически или юридически не поддерживается платформой. Право на индивидуальный контроль включает в себя право на удаление контента или безвозвратное изъятие данных с серверов приложения.
2. Сбор данных. Разработчики приложений должны быть особенно осторожны в аспектах, специфических для мобильных устройств: копирование адресной книги, доступ к фотоальбому, информация о географических координатах, содержимое и метаданные о телефонных звонках и текстовых сообщениях. Мобильные приложения должны собирать только минимально необходимый набор данных, необходимый для предоставления услуги, с приоритетом на анонимизацию пользовательской информации.
3. Прозрачность. Пользователь должен знать, к какой информации приложение имеет доступ, как долго хранятся данные и кто ещё имеет к ним доступ. Пользователи должны иметь возможность прочитать правила приватности и безопасности, которые декларированы этим приложением, как до инсталляции, так и после неё. Прозрачность особенно важна в случае, когда приложение работает скрытно от пользователя, как программа Carrier IQ, которую втайне устанавливали операторы сотовой связи для сбора статистики.
4. Уважение к контексту. Приложения, которые собирают пользовательские данные, должны использовать эти данные только тем способом, который подразумевался при их сборе. Например, если адресная книга пользователя копируется для реализации функции «поиска друзей», то она не должна передаваться третьим лицам или использоваться для прямой почтовой рассылки. Если разработчик хочет использовать её по иному назначению, не соответствующему первоначальному контексту, то он должен сделать второй запрос на данные и получить разрешение пользователя.
5. Безопасность. Разработчики несут ответственность за безопасность персональных данных, которые они собирают и хранят. Это значит, например, что данные должны быть зашифрованы максимально надёжным способом, а транспортировка данных между пользователем и удалённым сервером должна всегда осуществляться по зашифрованному транспортному каналу.
6. Ответственность. Все без исключения участники рынка мобильных устройств несут ответственность за аппаратное и программное обеспечение, которое они создают и внедряют. Пользователи имеют право требовать у них возмещения ущерба за свои просчёты.
Для соблюдения вышеуказанных принципов разработчикам рекомендуется использовать различные техники, в том числе анонимизацию и обфускацию данных, TLS-соединения, удаление данных сразу после их использования или надёжное шифрование архивов. Нужно следить за внутренней безопасностью корпоративной сети и осуществлять тесты на проникновение в отношении своих систем. Все разработчики должны помнить закон Шнайера, который гласит: «Каждый, от самого невежественного любителя и до лучшего криптографа, способен создать алгоритм, который он сам не сможет взломать», так что для тестов на проникновение следует привлекать сторонних экспертов.