Security Week 42: коллизии в SHA-1, практический взлом роутеров, Android/Безопасность/Грусть

    Когда вы находитесь в эпицентре событий, иногда сложно понять, что на самом деле произошло. Находясь в пробке, вы не узнаете, что она произошла из-за ДТП, пока не доберетесь до двух подбитых летчиков, занявших три полосы. До этого момента у вас просто недостаточно информации, чтобы сделать выводы. В индустрии ИБ так часто происходит: тема сложная, нюансов много, а результат некоторых исследований можно реально оценить только через несколько лет.

    На этой неделе три самых интересных новости о безопасности не имеют между собой ничего общего, кроме толстого слоя подтекстов. Если не заниматься темой постоянно, важность некоторых событий можно оценить неправильно, или не увидеть какие-то важные детали. Попробую, по мере сил, объяснить на примерах, хотя подтексты — штука такая — каждому видится что-то свое. Добро пожаловать в 11 эпизод сериала Security Week им. Срыва Покровов. Традиционные правила: каждую неделю редакция новостного сайта Threatpost выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти тут.

    Поиск коллизий для алгоритма SHA-1 серьезно подешевел
    Новость. Пост Брюса Шнайера трехлетней давности. Новое исследование, изменившее представления о безопасности алгоритма.

    Те, кто продвинулись в освоении Linux чуть дальше автоматической установки Ubuntu, знают, что эта система мотивирует читать инструкции. В смысле, сначала я конечно пробую нагуглить доку, где просто указана последовательность команд, но в некоторых случаях у меня сначала ничего не заработает, а потом все сломается. Эта новость из той же серии: без хотя бы минимального погружения в матчасть в ней сложно разобраться. Несмотря на то, что это, пожалуй, самая сложная тема за все время существования сериала, я попробую рассказать, в чем суть, простыми словами.


    Ну, как-то так попробую.

    SHA-1 — алгоритм криптографического хеширования. Такому алгоритму можно дать на входе последовательность данных почти неограниченной длины, а на выходе получить 160 бит информации, которые позволяют идентифицировать исходный массив данных. Если, конечно, он у вас есть: восстановить информацию из хэша не получится, фарш невозможно провернуть назад.

    Точнее, не должно получаться, даже если на входе, например, имеется пароль незадачливого пользователя типа 123456. К любому подобному алгоритму есть два требования: невозможность получить исходные данные, имея на руках только хеш и невозможность подобрать такую пару наборов данных, чтобы их хеш совпадал. Если еще точнее, то возможность сделать и то, и другое, почти всегда имеется. Просто это должно быть связано с настолько большим объемом вычислений, что нечего даже и пытаться. Ну, то есть, вы покупаете самый мощный суперкомпьютер, даете ему задачу сломать шифр. Через 240 лет он говорит, что ответ — 42, но вас к тому времени это уже никак не волнует.

    Но есть нюанс. Во-первых, производительность компьютеров постоянно растет. Во-вторых, исследователи ищут обходные пути, позволяющие взломать криптографические системы. Для алгоритма хеширования найти коллизию гораздо проще, чем расшифровать исходные данные. Между тем, тот же SHA-1 используется в различных системах шифрования и авторизации, где его главная задача — убедиться, что данные у двух разных абонентов совпадают. Если можно найти два или больше массивов данных, у которых хеш будет одинаковый, причем сделать это дешево и быстро — значит алгоритм больше не надежен.

    Пожалуй, на этом остановлюсь, потому что дальше начинается совсем уж суровый матан, который сути дела не меняет. Работа исследователей выглядит примерно так: придумываем алгоритм поиска коллизии, который позволяет найти таковую за чуть меньшее количество операций, чем простой перебор. Точнее, тут имеет смысл говорить про атаку "Дней рождения". Дней рождения, Карл!

    Какие-то неправильные у меня простые слова.

    Затем исследователи улучшают этот алгоритм, еще больше уменьшая количество операций. В результате ту самую атаку, требовавшую 240 лет, становится возможно выполнить за 120 лет. Или за 12. Или за 2. Вот когда вместо двух с половиной веков требуется всего два месяца, можно начинать волноваться. Так вот, три года назад специалист по криптографии Джесси Уокер из Intel предположил, что к 2015 году для нахождения коллизий алгоритма SHA-1 потребуется два в одиннадцатой степени серверо-лет (ну, если взять за основу такой сферический типовой сервер в вакууме). К счастью, благодаря облачным сервисам, а конкретно Amazon EC2, можно вычислить более конкретный денежный эквивалент: около 700 тысяч долларов и вы получите теоретический способ, например, подделать цифровую подпись за сравнительно короткое время.

    Но это была оценка 2012 года. Получалось, что уже тогда алгоритм SHA-1 был не настолько надежен, как хотелось бы, только эксплуатировать эту ненадежность могли очень состоятельные организации, например разведка какой-нибудь небедной страны. Естественно, такие конторы не торопятся выпускать пресс-релизы о своих успехах на ниве борьбы с криптографией. Так что важнее понять, когда доступ к такому «инструменту» получат, пусть и состоятельные, но киберпреступники.



    Недавно команда исследователей из университетов Голландии, Сингапура и Франции опубликовала доклад, в котором поделилась новыми идеями оптимизации алгоритма поиска коллизий. Благодаря им, если коротко, реальная атака может стоить «в ценах Amazon» всего 75 тысяч долларов и займет примерно 49 дней. Ну или дороже и побыстрее, кому как удобно. Известный эксперт в области криптографии Брюс Шнайер прокомментировал это таким образом: оценка 2012 года учитывала закон Мура, но не принимала во внимание усовершенствование алгоритма атаки и метода проведения атаки (например, использование графических процессоров для вычислений, которые выполняют задачу быстрее и дешевле). Надежно предсказать эффект такой оптимизации действительно невозможно.

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

    А если конкретнее? Кибершпионская кампания Flame использовала данный прием для подписи вредоносного файла валидным (на тот момент) сертификатом Microsoft. Точнее, подпись была поддельная, но хеши у поддельной подписи и реальной совпадали. По независимой оценке, такой трюк, даже с более слабым алгоритмом, мог обойтись в сумму от 200 тысяч до 2 миллионов долларов. Дороговато!

    А что с SHA-1? Алгоритм применяется с 1995 года, и, в общем-то, уже в 2005-м, 10 лет назад, было понятно, что это не самая надежная в мире технология. Но даже с новыми вводными данными до практической эксплуатации еще далеко, в то время как SHA-1 постепенно выводится из использования и заменяется более надежными алгоритмами хеширования. До 2017 года разработчики основных браузеров планируют отказаться от использования SHA-1. Пожалуй стоит поторопиться, ведь если за три года предположительная цена атаки упала с 2,77 миллиона долларов до 100 тысяч, то что может произойти еще через год? С другой стороны, все исследования уязвимости SHA-1 пока что имеют чисто научную ценность. Пытаться понять на практике, чем это грозит — это все равно что из сообщения «12 апреля над Казахстаном сгорело 250 тонн ракетного топлива» сделать вывод, что человек впервые полетел в космос, не зная об этом заранее. Поживем — увидим.

    Fun fact: хеш вообще-то правильно называть digest или message digest. Получается, вы только что прослушали дайджест про дайджест. Рекурсия, уииии!

    Уязвимость в роутерах Netgear эксплуатируется на практике
    Новость. Описание уязвимости.

    В маршрутизаторах Netgear N300 обнаружили уязвимость. Ну да, еще одна дыра в роутерах, и как-то получается, что они все разные, но при этом на одно лицо. В одной из прошлых серий уже обсуждали пачку дыр в устройствах Belkin. У Netgear причем все как-то совсем обидно. Открываем веб-интерфейс роутера. Вводим пароль, неправильный, так как роутер чужой и пароль мы не знаем. Нас отправляют на страничку, где пишут Access Denied. Но если попытаться открыть страничку с именем BRS_netgear_success.html, то… нас тоже никуда не пустят. А вот если попытаться сделать это несколько раз подряд, то — пустят.



    Естественно, при этом желательно быть уже внутри локальной сети, что несколько усложняет задачу. Хотя если роутер, например, раздает WiFi в кафе, то попасть внутрь — не проблема. А если владелец зачем-то включил доступ к веб-интерфейсу из интернета, то вообще все просто. Кстати, кто-нибудь может сказать, зачем в принципе нужен доступ к веб-интерфейсу снаружи? Именно к веб-интерфейсу роутера, а не к каким-нибудь штукам в локальной сети. Мне кажется причин так делать вообще нет, а поводов НЕ делать, как видите, предостаточно.

    В общем-то тут все шло достаточно хорошо: вендора уведомили, через два месяца он сделал бета-версию прошивки. Еще бы чуть-чуть и обошлось, но нет, оказалось, что уязвимость эксплуатируют, что называется, «в полях». Швейцарская компания Compass Security обнаружила такой роутер с измененными настройками: в качестве DNS-сервера был прописан не адрес провайдера, как это обычно бывает, а не пойми что. Соответственно, через это непоймичто проходили все DNS-запросы. Исследование сервера атакующих показало, что он «обслуживает» больше 10 тысяч взломанных роутеров.

    Fun fact: компания Compass Security довольно долго не могла добиться никакого ответа от NetGear. Затем диалог таки случился, и им даже прислали бета-версию прошивки на проверку. Но тут (откуда не возьмись) появилась компания Shellshock Labs и опубликовала свое исследование той же уязвимости вообще ни с кем не договариваясь (что как бы не очень хорошо). Конечно, назвать компанию в честь бага в bash — это круто, но принцип «не навреди» никто не отменял. Зато из исследования «потрясателей шелла» становится понятно, откуда взялась уязвимость в веб-интерфейсе. В коде прошивки предусмотрена возможность войти в веб-интерфейс без пароля один раз, при первом запуске. Чтобы дальше это не работало, был предусмотрен флажок, про который просто забыли. Да, прошивку в итоге все же обновили.

    85% Android-устройств небезопасны
    Новость. Сайт исследователей, с рейтингом безопасности по вендорам.



    Да вы что! Никогда такого не было, и вот опять! Между тем, речь идет об еще одном научном исследовании, хотя конечно не таком забористом как в истории про SHA-1. Исследователи из Кембриджского университета проделали интересную штуку. Собрали данные о 32 серьезных уязвимостях в Android, потому выбрали из них 13 наиболее серьезных, и проверили сразу много телефонов разных производителей на наличие этой уязвимости. Проверяли так: сделали приложение Device Analyzer, через которое открыто собирали различную анонимную телеметрию у участников эксперимента, включая такие параметры как версия ОС и номер билда. Всего удалось собрать информацию с более чем 20 тысяч смартфонов.

    Далее, сопоставив номер версии Android с информацией об уязвимостях, смогли примерно оценить масштаб беды. В результате получилась вот такая картинка:



    Усреднение показателей за все время исследования и дало ту самую цифру в 85% — в среднем в любой момент времени именно такая доля устройств на Android подвержена одной из известных и потенциально опасных уязвимостей. Или не одной. Как обычно, ударение надо делать на «потенциально» — на примере Stagefright понятно, что даже на самую опасную уязвимость накладываются суровые ограничения по практической реализации.

    Но на этом исследователи не остановились и сделали рейтинг «опасности» устройств по производителям, назвав его FUM Score. В нем учитывается и время реакции вендора на информацию о новой уязвимости — как быстро патч появляется в устройствах конкретного производителя. Победителем стала, предсказуемо, серия смартфонов Nexus: в ней баги исправляются максимально быстро. На втором месте LG, на третьем — Motorola. Впрочем «победителей» тут на самом деле нет, одни проигравшие. В расчете учитывается именно доля обновленных устройств, то есть не только вендор должен выпустить патч, но и владелец — не полениться обновить. Чем старше устройство, тем хуже: в отдельном рейтинге по моделям смартфонов у не самых старых устройств двух-трехлетней давности совсем уж унылые показатели. Почему? Не обновляют. Но пользуются.

    В общем, в методике исследования есть немало вольных допущений, да и доказывает она то, что и так всем известно. По словам исследователей, одной из целей их работы является дополнительная мотивация производителей таки починить систему латания дыр в своих устройствах. А вот что на самом деле важно: на картинке выше мы видим пример экосистемы, которая в принципе не может быть на сто процентов безопасной. Хотя Android со своей фрагментацией — это самый показательный пример, таких экосистем много. Можно говорить о том, что iOS безопаснее, но как показывает первая история дайджеста про, эм, дайджест, нет абсолютно надежных систем, есть ограничения по бюджету. А это такой очень важный момент при выборе стратегии защиты.

    Что еще произошло:
    Apple удалила из App Store приложения, устанавливавшие корневые сертификаты, что позволяло им перехватывать, отслеживать или модифицировать данные, передающиеся по защищенному соединению. Например, для блокировки рекламы, или чего похуже. Я так понимаю, что и новые приложения с таким функционалом теперь загружать нельзя. А почему раньше было можно?

    Европейское агентство по авиационной безопасности рассказало об уязвимости в системе ACARS, использующейся для передачи данных между самолетом и наземной станцией. В общем-то, изначально было ясно, что в системе без какой-либо верификации пакетов отправить поддельное сообщение несложно. Порулить самолетом не получится, но отправить сообщение, которое введет в заблуждение пилотов, можно. Об уязвимости ACARS исследователи говорили (доками в формате PDF) еще в 2013 году, но то были ИБ-специалисты, а тут непосредственно отвечающий за безопасность надзорный орган. А это хорошие новости.

    Древности:
    «Indicator-734»

    Опасный резидентный вирус. Инфицирует .COM-файлы при их загрузке в память. Старое начало файла шифрует, причем в качестве ключа использует 10h байт BIOS'a. Т.е. правильно расшифровываться и нормально выполняться файлы будут только на компьютере с той же версией BIOS'а, на котором были заражены. Если же расшифровать старое начало файла не удалось, то вирус блокирует работу файла (выполняет int 20h), предварительно запустив свои счетчики. В зависимости от их состояния (примерно 1 раз в час) вирус рисует на экране красный крест, в центре которого расположена надпись: «VINDICATOR». Перехватывает int 1Ch, 21h.

    Цитата по книге «Компьютерные вирусы в MS-DOS» Евгения Касперского. 1992 год. Страницa 70.

    Disclaimer: Данная колонка отражает лишь частное мнение ее автора. Оно может совпадать с позицией компании «Лаборатория Касперского», а может и не совпадать. Тут уж как повезет.
    • +11
    • 18.4k
    • 8
    «Лаборатория Касперского»
    416.70
    Ловим вирусы, исследуем угрозы, спасаем мир
    Support the author
    Share post

    Comments 8

      0
      А как же соль?
        0
        А что с солью-то? В контексте новости соль — это усложнение алгоритма, точнее еще один метод, который добавляет в общий результат свои свойства. И, главное, повышает защищенность. То есть если рассматривать чистый SHA-1, то вероятность успешной практической атаки на него была практически нулевой, а стала просто малой. Если рассматривать SHA-1 в контексте, то и вообще все как бы хорошо.

        Я оцениваю эту новость как пример истории о безопасности в самой ее ранней, теоретической части, где атаки ближайшего будущего только предсказываются, почти всегда на основе неполной информации. К практике перейдем, когда атака настолько подешевеет, что ее смогут реально провести исследователи (а не как в упомянутом исследовании, когда на реальном железе прогнали усеченную 10-дневную модель). Но примерно в тот же момент тоже самое смогут сделать и киберпреступники, так что лучше свернуть использование SHA-1 побыстрее. Не повредит.
          0
          Нет а если есть соль, то как эти дорогие вычислительные мощности помогут? Мне как программисту это было бы интересно. Смогут ли злоумышленники узнать ее? Вот получили они некую строку, ну и не подойдет она, потому, что соль не знают, толку то…
            0
            Именно, что не подойдет. Впрочем, это явно за пределами моих познаний, тут нужен специалист и хорошее знание сценариев применения SHA-1. Паролями же дело не ограничивается.
              0
              Обычно с базами сливают и соль. Да и соль это фактически защита от радужных таблиц и только.
                0
                Так соль обычно в конфигах храниться на вэб сервере, смысл защиты теряется если в базу класть.
                  0
                  Я имею ввиду когда получают доступ к хешам то и к соли тоже. Можете проверить в гугле сколько выкладывают хешей с солью (базы с миллионами хешей).
          0
          Мне кажется или проблему устаревших версий android недооценивают?
          Я уже вижу как между киберпреступниками будет борьба за устройства. (которая дойдет до смешного, трояны начнут ставить патчи и прочее чтобы, не заразить пк\телефон кокнурентным зловредом)

          или это уже широко практикуется?

          Only users with full accounts can post comments. Log in, please.