Вечная тема — безопасность Windows. Любая критическая ошибка дорого обходится Microsoft. Иногда баг превращается в катастрофу. Достаточно вспомнить 2003 год, когда в результате эпидемии «Бластера» было заражено более 1 500 000 компьютеров по всему миру. Это не просто колоссальный урон по и без того непростой репутации компании, но еще и колоссальные расходы. Представь, сколько стоило обработать одни только звонки в службу поддержки (а их было более трех миллионов) от обезумевших пользователей, компьютеры которых стали не переставая перегружаться.
Но на какие бы ухищрения ни шли разработчики (вроде таких четко формализованных методологий по разработке безопасного кода как SDL), какие бы защитные механизмы ни придумывали (взять хотя бы DEP и ASLR), все равно найдется какая-нибудь 0day-уязвимость, позволяющая заразить систему несмотря ни на что. Ребятам должно быть особенно обидно за то, что уязвимость может быть вовсе не в самой винде или, скажем, Internet Explorer. А когда ты не можешь контролировать появление заразы в системе, единственный выход — обнаружить и нейтрализовать ее.
К счастью, в Microsoft это поняли. Не так давно вышла вторая версия бесплатного антивируса Security Essentials, который весьма неплох, по меньшей мере не хуже других бесплатных продуктов. А в январе была представлена еще одна утилита для обеспечения безопасности — Microsoft Attack Surface Analyzer.
Анализатор поверхности атаки — звучит круто, да? Под серьезным названием скрывается довольно любопытная программа, которая для меня уже оказалась очень полезной на практике. Но это не массовый продукт и никогда им не будет. Если верить описанию, прога представляет собой инструмент, который использовался в Microsoft, а теперь доступен публично для людей, связанных с информационной безопасностью.
Назначение утилиты простое — узнать все об изменениях, которые происходят в системе после установки какого-либо приложения. Принцип работы более чем прозаичен. Создаются два снимка системы (до и после установки вызывающего подозрения приложения), после чего выявляются произошедшие изменения: появившиеся файлы, новые ключи в реестре и так далее. Но есть фишка, которая отличает программу от многих аналогичных: я говорю о специальных триггерах, которые реагируют на некоторые потенциально опасные события. Если какие-то изменения сразу вызывают подозрения, их описания обязательно будут в отчете для аналитика.
Проверить систему в действии я решил на только что появившемся решении Google Cloud Connect, предназначенном для интеграции онлайн-сервисов Google в офисный пакет Microsoft Word. Для синхронизации документов с облаком в систему устанавливается специальный клиент. Мои вопросы: что и где он прописывает в системе, и насколько это безопасно? Итак, запускаем Attack Surface Analyzer и выполняем первичное (так называемое baseline) сканирование.
Программа показывает процесс создания снимка, подробно отображая внушительный список элементов системы, которые фиксируются (это файлы, ключи реестра, сетевые шары, различные хэндлы, запущенные процессы и сервисы, элементы автозагрузки и многое другое). Через пару минут мы получаем cab-архив, в котором собранные данные разбиты на отдельные XML-файлы (беру на заметку, это может пригодиться в будущем для создания собственного анализатора). Теперь устанавливаем в систему нашего подопытного кролика, то есть клиентскую часть Cloud Connect.
После чего запускаем повторное (так называемое product) сканирование в Attack Surface Analyzer, чтобы получить снимок системыьпосле установки приложения. В результате на руках мы имеем два snapshot’а — осталось их сравнить, выбрав в анализаторе пункт «Generate attack surface report».
Самая ценная часть отчета — это описание того, что изменилось в системе. Attack Surface Analyzer выдает весьма разноплановый отчет. Вот, что получилось для Google Cloud Connect:
- New Service (Google Update Service);
- New Running Processes (google crash handler and a .NET framework utility);
- 113 New Registered COM Controls;
- 3 New Internet Explorer Silent Elevation Entries / Preapproved controls (Google Update plugin);
- 1 New TCP Port (Established outbound TCP port on 49336);
- 6 New Named Pipes.
Согласись, это уже не просто список новых файлов и ключей в реестре, как это бывает в случае многих других подобных утилит. Отчет (который, кстати, оформляется в виде html-файла) более чем полезен для анализа изменений, которые произошли в системе. Но слова «поверхность атаки» были бы лишними в названии, если бы программа не пыталась определить потенциальную угрозу тех изменений, которые были внесены в систему. В случае с Cloud Connect они тоже есть:
- появление директорий со «слабыми» ограничениями в доступе;
- наличие процессов, для которых отключена система DEP;
- работа сервисов, над которыми потенциально возможно захватить контроль.
Я привожу лишь краткое описание, хотя в отчете фигурирует полное описание проблемы с указанием конкретных директорий, прав доступа, имен пользователей, которые могут взять под контроль выполнение сервиса и так далее. Да, это необязательно реальные векторы атаки, но они вполне могут ими оказаться. И такой анализ очень радует.