Можно ли подделать хэш файла

Обновлено: 05.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что такое хеши и как они используются

Хеш-сумма (хеш, хеш-код) — результат обработки неких данных хеш-функцией (хеширования).

Это свойство хеш-функций позволяет применять их в следующих случаях:

Одним из применений хешов является хранение паролей. Идея в следующем: когда вы придумываете пароль (для веб-сайта или операционной системы) сохраняется не сам пароль, а его хеш (результат обработки пароля хеш-функцией). Этим достигается то, что если система хранения паролей будет скомпрометирована (будет взломан веб-сайт и злоумышленник получит доступ к базе данных паролей), то он не сможет узнать пароли пользователей, поскольку они сохранены в виде хешей. Т.е. даже взломав базу данных паролей он не сможет зайти на сайт под учётными данными пользователей. Когда нужно проверить пароль пользователя, то для введённого значения также рассчитывается хеш и система сравнивает два хеша, а не сами пароли.

По этой причине пентестер может столкнуться с необходимостью работы с хешами. Одной из типичных задач является взлом хеша для получения пароля (ещё говорят «пароля в виде простого текста» - поскольку пароль в виде хеша у нас и так уже есть). Фактически, взлом заключается в подборе такой строки (пароля), которая будет при хешировании давать одинаковое значение со взламываемым хешем.

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

Как определить тип хеша

Существует большое количество хешей. Некоторые из них являются универсальными и применяются различными приложениями, например, MD5, SHA1, CRC8 и другие. Некоторые хеши применяются только в определённых приложениях (MySQL, vBulletin) и протоколами.

Кроме популярных хешей, разработчики могут использовать различные сочетания универсальных хешей (например, посчитать хеш с помощью MD5, а затем для полученной строки получить хеш SHA1), либо итерированные (с повторением) хеши (например, для пароля рассчитывается MD5 хеш, затем для полученной строки вновь рассчитывается MD5 хеш, затем для полученной строки вновь считается MD5 – и так тысячу раз).

Применительно к взлому, иногда хешем называют сформированную определённым образом строку или файл, которые не применяются целевым приложением, но которые были рассчитаны исходя из исходных данных так, что позволяют взломать пароль целевого файла или протокола.

Пример такой строки для WinZip: $zip2$*0*3*0*b5d2b7bf57ad5e86a55c400509c672bd*d218*0**ca3d736d03a34165cfa9*$/zip2$

Пример строки для взлома пароля файла PDF 1.7 Level 8 (Acrobat 10 - 11): $pdf$5*6*256*-4*1*16*381692e488413f5502fa7314a78c25db*48*e5bf81a2a23c88f3dccb44bc7da68bb5606b653b733bcf9adaa5eb2c8ccf53abba66539044eb1957eda68469b1d0b9b5*48*b222df06deb308bf919d13447e688775fdcab972faed2c866dc023a126cb4cd4bbffab3683ecde243cf8d88967184680

Обычно пентестеру известен источник хеша и он знает его тип. Но бывают исключения. В этой ситуации необходимо «угадать» какой хеш перед нами.

Это можно сделать сравнивая исходный хеш с образцами. Либо исходя из количества символов и используемого набора символов.

Также можно использовать инструменты, которые значительно ускоряют этот процесс. Программами для определения типа хеша являются hashID и HashTag.

hashID

Эта программа по умолчанию уже установлена в Kali Linux. Она идентифицирует различные типы хешей, используемых для шифрования данных, в первую очередь, паролей.

hashID – это инструмент, написанный на Python 3, который поддерживает идентификацию более 220 уникальных типов хешей используя регулярные выражения.

Использование программы очень простое:

Пара важных замечаний:

  • хеш всегда лучше указывать в одинарных кавычках (а не без кавычек и не в двойных)
  • имеется опция -m, при использовании которой выводится информация о режиме Hashcat

Хеш режимы Hashcat – это условное обозначение типа хеша, которое необходимо указать с опцией -m, --hash-type.

К примеру, мне необходимо идентифицировать хеш $S$C33783772bRXEx1aCsvY.dqgaaSu76XmVlKrW9Qu8IQlvxHlmzLf:


Как можно увидеть по скриншоту, это Drupal > v7.x в Hashcat для взлома данного хеша необходимо указать режим 7900.

Идентифицируем хеш $1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR.:

Получаем сразу несколько вариантов:


MD5cryp – это алгоритм, который вызывает тысячу раз стандартный MD5, для усложнения процесса.

Для справки: MD5 использовался для хеширования паролей. В системе UNIX каждый пользователь имеет свой пароль и его знает только пользователь. Для защиты паролей используется хеширование. Предполагалось, что получить настоящий пароль можно только полным перебором. При появлении UNIX единственным способом хеширования был DES (Data Encryption Standard), но им могли пользоваться только жители США, потому что исходные коды DES нельзя было вывозить из страны. Во FreeBSD решили эту проблему. Пользователи США могли использовать библиотеку DES, а остальные пользователи имеют метод, разрешённый для экспорта. Поэтому в FreeBSD стали использовать MD5 по умолчанию. Некоторые Linux-системы также используют MD5 для хранения паролей.

Ещё один хеш $6$q8C1F6tv$zTP/eEVixqyQBEfsSbTidUJfnaE2ojNIpTwTHava/UhFORv3V4ehyTOGdQEoFo1dEVG6UcXwhG.UHvyQyERz01:


Программа говорит, что это SHA-512 Crypt – т.е. SHA512 (Unix).

HashTag

HashTag – это инструмент на python, который разбирает и идентифицирует различные хеши паролей на основе их типа. HashTag поддерживает определение более 250 типов хешей и сопоставляет их с более чем 110 режимами hashcat. HashTag способен идентифицировать единичный хеш, разобрать единичный файл и определить хеши внутри него или обойти директорию и все поддиректории в поисках потенциальных файлов хешей и идентифицировать все найденные хеши.

Т.е. это аналогичная предыдущей программа.

По умолчанию в Kali Linux она отсутствует, поэтому требуется её скачать:

Идентифицируем те же самые хеши:




Как видим, результаты аналогичны.

Примеры хешей

Большое количество классических хешей, а также хешей, специально составленных для взлома пароля и хеш-файлов вы найдёте здесь.

На той странице вы можете:

  • попытаться идентифицировать свой хеш по образцам
  • найти ошибку в составленном хеше для взлома пароля, сравнив его с правильным форматом
  • проверить работу программ по идентификации хеша

Программы hashID и HashTag не всегда правильно идентифицируют хеш (по крайней мере, в явных ошибках замечена hashID).

К примеру, меня интересует хеш c73d08de890479518ed60cf670d17faa26a4a71f995c1dcc978165399401a6c4:53743528:


Это явно ошибочный результат, поскольку соль после двоеточия будто бы была отпрошена при идентификации хеша.

Получаем более правильный результат:


В действительности это sha256($pass.$salt).

Как рассчитать хеш (контрольную сумму)

В Linux имеются программы для расчёта и сверки популярных хешей:

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

Применение всех этих программ похожее – нужно указать имя файла, либо передать по стандартному вводу строку.

Если для расчёта хеша строки вы используете echo, то крайне важно указывать опцию -n, которая предотвращает добавление символа новой строки – иначе каждый хеш для строки будет неверным!

Пример подсчёта хеша SHA1 для строки test:

Ещё один способ передачи строки без добавления конечного символа newline

Этот же результат можно получить следующей конструкцией:

Программы для вычисления различных хешей

Кроме перечисленных встроенных в Linux утилит, имеются другие программы, способные подсчитывать контрольные суммы. Часто они поддерживают сразу несколько алгоритмов хеширования, могут иметь дополнительные опции ввода и вывода (поддерживают различные форматы и кодировки), некоторые из них подготовлены для выполнения аудита файловой системы (выявления несанкционированных изменений в файлах).

Список некоторых популярных программ для вычисления хешей:

Думаю, используя русскоязычную справку с примерами использования, вы без труда сможете разобраться в этих программах самостоятельно.

Последовательное хеширование с использованием трубы (|)

Но это неправильный вариант. Поскольку результатом выполнения в любом случае является непонятная строка из случайных символов, трудно не только обнаружить ошибку, но даже понять, что она есть. А ошибок здесь сразу несколько! И каждая из них ведёт к получению абсолютно неправильных данных.

Даже очень бывалые пользователи командной строки Linux не сразу поймут в чём проблема, а обнаружив первую проблему не сразу поймут, что есть ещё одна.

Очень важно помнить, что в строке вместе с хешем всегда выводится имя файла, поэтому выполняя довольно очевидную команду вроде следующей:

Выше уже рассмотрено, как из вывода удалять « -», кажется, теперь всё должно быть в порядке:

Давайте разобьём это действие на отдельные команды:

Второй этап хеширования:

Это и есть правильный ответ.

Проблема в том, что когда выводится промежуточный хеш, к нему добавляется символ новой строки, и второй хеш считается по этой полной строке, включающей невидимый символ!

Используя printf можно вывести результат без конечного символа новой строки:

Результат вновь правильный:

С printf не все дружат и проблематично использовать рассмотренную конструкцию если нужно хешировать более трёх раз, поэтому лучше использовать tr:

Вновь правильный результат:

Или даже сделаем ещё лучше – с программой awk будем использовать printf вместо print (это самый удобный и короткий вариант):

Как посчитать итерированные хеши

Итерация – это повторное применение какой-либо операции. Применительно к криптографии, итерациями называют многократное хеширование данных, которые получаются в результате хеширования. Например, для исходной строки в виде простого текста рассчитывается SHA1 хеш. Полученное значение вновь хешируется – рассчитывается SHA1 хеш и так далее много раз.

Итерация – очень эффективный метод для борьбы с радужными таблицами и с полным перебором (брут-форсом), поэтому в криптографии итерированные хеши очень популярны.

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

WARNING

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

Введение

Ты наверняка знаешь, что контрольная сумма файла зачастую представляет собой криптографические хэш-функции, самыми известными из которых являются MD4, MD5 и SHA-1. Однако с недавних пор встала огромная проблема подтверждения целостности исходной информации при помощи более криптостойких алгоритмов хэширования (контрольных сумм). Имя этой проблемы — коллизии криптографических хэш-функций. Так, например, если хэш-функция используется для создания цифрового ключа, то умение строить для нее коллизии равносильно умению подделывать цифровой ключ! Именно поэтому в идеале не должно существовать способа поиска коллизий для криптографических хэш-функций более быстрого, чем полный перебор (брутфорс). Если для некоторой хэш-функции находится более быстрый способ, то эта хэш-функция перестает считаться криптостойкой, а также использоваться для передачи и хранения секретной информации. Но всегда ли это так? Оказывается, далеко не всегда.

Таблица хэш-функций, для которых были найдены коллизии

Таблица хэш-функций, для которых были найдены коллизии

Матчасть

Итак, коллизией хэш-функции F называются два различных входных блока данных — x и y — таких, что F(x) = F(y). Рассмотрим в качестве примера хэш-функцию F(x) = x|19|, определенную на множестве целых чисел. Ее ОДЗ (из школьного курса математики ты должен знать, что это такое) состоит из 19 элементов (кольца вычетов по модулю 19), а область определения стремится к бесконечности. Так как множество прообразов заведомо больше множества значений, коллизии обязательно существуют. Что это значит? Давай построим коллизию для этой хэш-функции, используя входное значение 38, хэш-сумма которого равна нулю. Так как функция F(x) периодическая с периодом 19, то для любого входного значения y значение y+19 будет иметь ту же хэш-сумму, что и y. В частности, для входного значения 38 той же хэш-суммой будут обладать входные значения 57, 76 и так далее. Таким образом, пары входных значений (38,57), (38,76) образуют коллизии для хэш-функции F(x).

Чтобы хэш-функция F считалась криптографически стойкой, она должна удовлетворять трем основным требованиям, на которых основано большинство применений хэш-функций в криптографии.

Stuxnet и поддельные сертификаты

Надеюсь, ты не забыл историю с руткитом Stuxnet, когда троян-дроппер прогружал и запускал в системе свои драйверы, спокойно обходя всяческие системы предотвращения вторжений и антивирусы? Тогда при реверс-инжиниринге сэмплов выяснилось, что драйверы руткита были подписаны «настоящими» сертификатами крупных производителей контроллеров и чипов JMicron и Realtek. Было много шума, все кинулись обвинять эти компании в некомпетентности. Аналогичная история повторилась и с «братом» Stuxnet — червем Duqu. На этот раз обвинили компанию C-Media Electronics, сертификаты которой также были якобы украдены. Все вроде бы верно, но никаких краж возможно и не было! Я думаю, ты уже понял, о чем идет речь. Поддельные сертификаты были сгенерированы при помощи фундаментального бага — коллизий. Антивирусы, проверяя контрольную сумму файлов, не заметили никакого подвоха, а ведь все держалось именно на них :). Как бы парадоксально это не было, но существует ряд доказательств, подтверждающих мои слова. Во-первых, на одном закрытом форуме, где тусовались разработчики этих нашумевших руткитов (хотелось бы особо отметить человека под ником orr, статьи которого присутствуют на ряде авторитетных паблик-ресурсов, посвященных ИБ и реверс-инжинирингу: woodman и openrce), существовал топик о возможности кражи доверенных сертификатов. В нем приводился пример с Duqu, сертификат (c закрытым ключом) которого был сгенерирован с помощью коллизии. Во-вторых, если сравнить два сертификата (настоящий и тот, что был сгенерирован для Duqu) по размеру, то окажется, что существует хоть и малая, но все же разница в 15 байт! Таким образом, файлы получались разные по размеру, но одинаковые по контрольной сумме. История с украденными сертификатами осталась бы практически незамеченной, если бы не работа независимых ИБ-исследователей.

Методы получения профита

  1. Перебор по заданному словарю: никаких гарантий удачного результата нет, из плюсов можно отметить лишь малое время, затраченное на перебор.
  2. Брутфорс: банальный перебор случайных или последовательных комбинаций, большим минусом которого является значительное количество затраченного времени и ресурсов компьютера.
  3. RainbowCrack: атака по радужным таблицам является самым эффективным методом «взлома»; плюс заключается в быстром переборе, минусы — в гигантском размере радужных таблиц и большом количестве времени, затраченном на их генерацию.

Для полного перебора или перебора по словарю можно использовать, к примеру, следующие программы: PasswordsPro, MD5BFCPF, John the Ripper. Теперь же я предлагаю тебе познакомиться с новым методом атаки на хэши — методом коллизий.

Коллизия в действии

Коллизия в действии

Немного истории

  • 1996: Ганс Доббертин нашел псевдоколлизии в MD5, используя определенные инициализирующие векторы, отличные от стандартных.
  • 2004: Китайские исследователи Ван Сяоюнь (Wang Xiaoyun), Фен Дэнгуо (Feng Dengguo), Лай Сюэцзя (Lai Xuejia) и Юй Хунбо (Yu Hongbo) объявили об обнаруженной ими уязвимости в алгоритме, позволяющей находить коллизии за крайне малое время (1 час на кластере IBM p690).
  • 2005: Те же самые Ван Сяоюнь и Юй Хунбо опубликовали алгоритм, позволяющий найти две различные последовательности в 128 байт, которые дают одинаковый MD5-хэш.
  • 2006: Чешский исследователь Властимил Клима опубликовал алгоритм, дающий возможность находить коллизии на обычном компьютере с любым начальным вектором (A,B,C,D) при помощи метода, названного им «туннелирование».
  • 2007: Эдуардо Диаз по специально разработанной схеме создал два различных архива с двумя разными программами, но абсолютно идентичными MD5-хэшами.
  • 2009: Дидье Стивенс использовал библиотеку evilize для создания двух разных программ с одинаковым кодом цифровой сигнатуры (Authenticode digital signature), authenticode используется Microsoft для подписи своих библиотек и исполняемых файлов.

От теории к практике

Ну что же, теперь перейдем к долгожданной практике. Среди профессиональных криптоаналитиков есть вполне определенная классификация типов устойчивости алгоритмов хэширования, их всего три.

  1. CR2-KK — свободный от коллизий, устойчивый к коллизиям.
  2. CR1-KK — универсальный односторонний.
  3. CR0 — универсальный.

Также существуют три вида соответствующих атак для нахождения коллизий:

  1. CR2-KK — найти коллизии для конкретной функции.
  2. CR1-KK — подобрать к заданному значению пару, образующую коллизию для конкретной функции.
  3. СК0 — найти коллизию для семейства функций.

Сегодня я продемонстрирую тебе два первых вида атак на практике. Для начала приведу два блока данных в HEX (пара коллизий из научной работы китайского ИБ-исследователя Ван Сяоюня), их нужно вбить в hex-редакторе и сохранить в виде двух файлов:

Если сравнить размер и контрольную сумму в MD5 у полученных файлов, то мы не заметим никакой разницы! Теперь давай найдем еще несколько коллизий к этим файлам. Программа MD5 Collision Generator от Патрика Стэча поможет нам разобраться в атаке CR2-KK. Смело компилируй ее и запускай на исполнение. Первая коллизия на моем самом слабом компьютере была получена менее чем за 15 минут, а вторая — примерно через два с половиной часа! Не так уж и плохо, согласись.

Теперь перейдем к реальной атаке, для этого будем использовать эксплойт-библиотеку evilize (снова обрати внимание на ссылки). После компиляции данной библиотеки в текущей директории должны появиться три файла: evilize, md5coll и объектный файл goodevil.o. В качестве подопытной программы будем использовать пример hello-erase.c, идущий в комплекте с исходниками. Итак, компилируем нашу программу и линкуем ее с объектным файлом goodevil.o:

Смотрим контрольную сумму подопытного файла:

Разбиваем на блоки нашу полученную контрольную сумму, и запускаем на исполнение генератор MD5-коллизий:

Далее запускаем evilize для создания двух различных исполняемых файлов с одинаковым размером и MD5-хэшем. Смотрим на контрольную сумму и размер, а затем запускаем полученные бинарники:

Как видишь, одна программа выводит известную всем безобидную фразу «Hello, world!», а вторая якобы стирает данные на диске. Мы можем переделать наш hello-erase.c так, чтобы вместо шуточного стирания данных произошло реальное, и тогда будет не до шуток. Но все это цветочки по сравнению со следующей атакой, которую я провел при своих исследованиях CR1-KK.

Генерируем коллизии

Генерируем коллизии

Взлом CR1-KK

В качестве «жертвы» для исследований я выбрал цифровые ключи компании Unicon, являющейся в Узбекистане монополистом в области ЭЦП (электронно-цифровой подписи) и сертификации. Основываясь на трудах Властимила Климы, я написал программу CR1-KK-collision keygen для подбора пары к значению, образующей коллизию для конкретной функции при генерации электронно-цифровых ключей. Изначально было несколько данных, которые я и использовал в качестве входных параметров. Очень облегчил задачу тот факт, что пароль для закрытой ЭЦП у всех сертификатов один и тот же: 000000. Это была фатальная ошибка — самая грубая из встреченных мной за весь опыт работы в области ИБ. Имея на руках только контрольные суммы файлов и открытые ключи, мне удалось сгенерировать примерный оригинальный закрытый ключ для подписи различного рода документов, ключей и идентификации пользователя в нескольких CRM-системах (к примеру, E-hujjat от того же монополиста). Проделанную работу ты сможешь увидеть воочию на соответствующих скриншотах, в консоли же все это выглядело примерно так:

Как видишь, у сертификатов cer.cer и cer(faked by collision).cer одинаковая контрольная сумма.

    ; ; ; ; ; Властимила Климы «О MD5-коллизиях»; ; Марка Стивенса о коллизиях.

Заключение

256), SHA-1, ГОСТ Р 34.10-2001 и так далее. Со временем этот список будет только пополняться.

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

1. Проверка хэша файлов с помощью PowerShell

Windows поставляется со встроенной функцией проверки хэшей файлов в PowerShell: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5 и RIPEMD160.

Сначала нажмите клавишу Windows, а затем введите PowerShell. Выберите наиболее подходящий вариант, чтобы открыть PowerShell. Основной командой проверки будет:

Например, «get-filehash c:\test.txt» выдаст:

6 бесплатных хэш-чекеров для проверки целостности любого файла 1

Выход хэша по умолчанию — SHA256. Если вам нужно другое хэш-значение для файла, воспользуйтесь следующей командой:

Например, «get-filehash -Алгоритм SHA384 c:\test.txt» выдаст:

6 бесплатных хэш-чекеров для проверки целостности любого файла 2

Время, необходимое для создания хэша, зависит от размера файла и используемого вами алгоритма.

2. Hash Generator

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

hash generator generate file hash

3. HashMyFiles для Windows (32-bit) | Windows (64-bit)

hashmyfiles folder generate hashes

4. HashTab

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

По умолчанию HashTab генерирует хэши для MD5, CRC32 и SHA1. Настройки HashTab позволяют добавлять более 25 дополнительных хэшей, включая SHA, RIPEMD, TIGER и WHIRLPOOL.

hashtab extra hashes comparison

5. QuickHash

QuickHash — это генератор хэшей с открытым исходным кодом для Windows, macOS и Linux. Это также одна из наиболее полнофункциональных систем создания хэшей и проверки их правильности в этом списке.

Хотя количество хэшей, которые вы можете использовать, небольшое, просто MD5, SHA1, SHA256, SHA512, и xxHash64, но Quick Hash имеет массу дополнительных функций.

QuickHash может хэшировать целую папку, сравнивать два отдельных файла, сравнивать целые каталоги или диск целиком. Конечно, последнее занимает значительное количество времени в связи с размерами, но возможность его использования очень приятно видеть.

QuickHash hash generation

6. MultiHasher

MultiHasher представляет пользователям широкий спектр инструментов для генерации и проверки хэшей в одном пакете. Позволяет создавать хэши MD5, SHA1, SHA256, SHA384, SHA512 или RIPEMD-160.

Multi Hasher hash generation and checking

Как проверить целостность файла?

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

Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Последние

Коллектив NAVI стали победителями чемпионата Европы по PUBG Mobile Windows System Control Center — сборник системных утилит для Windows Как установить несколько загрузочных операционных систем на USB-накопитель Как добавить время на панель задач второго монитора в Windows 11 10 интересных гаджетов с AliExpress. Часть 96. Инструменты для мужика 8 лучших бесплатных онлайн-конструкторов для создания логотипов Гранд-финал TI10 между Spirit и PSG.LGD стал самым популярным матчем в истории Dota 2

Реклама

telegram

Рубрики

СЧЕТЧИКИ

РЕКЛАМА И ДОНАТЫ

Социальные сети

©2016-2021 Блог Евгения Левашова. Самое интересное и полезное из мира ИТ. Windows 10, Linux, Android и iOS. Обзоры программ и веб-сервисов. Статьи о мотивации и продуктивности.

Данный блог является личным дневником, содержащим частные мнения автора. В соответствии со статьей 29 Конституции РФ, каждый человек может иметь собственную точку зрения относительно его текстового, графического, аудио и видео наполнения, равно как и высказывать ее в любом формате. Блог не имеет лицензии Министерства культуры и массовых коммуникаций РФ и не является СМИ, а, следовательно, автор не гарантирует предоставления достоверной, не предвзятой и осмысленной информации. Сведения, содержащиеся в этом блоге не имеют никакого юридического смысла и не могут быть использованы в процессе судебного разбирательства. Автор блога не несёт ответственности за содержание комментариев к его записям.

test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания
test блестящий пример для подражания

-Вопрос: Что это?
-Ответ: Это простая программа. Она изменяет MD5 и байты файлов(Хэши), что усложняет обнаружение любых хаков.
-Вопрос: Могу-ли я использовать это с пропатченными хаками?
-Ответ: Нет, работает только с обнаружимыми хаками.
-Вопрос: Можно-ли использовать это для dll-файлов?
-Ответ: Да, программа работает со всеми dll- и exe-файлами.

Это финальный релиз программы и в сравнении с предыдущей версией имеет:




Сканы на вирусы:

Когда системы антихака знают про существование какого-либо хака, они добавляют его хэш и имя в свой черный список.
Например, если вы воспользуетесь dll-файлом, который находится в черном списке, то вас быстро обнаружат.
Изменяя размер хэша, вы сделаете его более сложным для обнаружения.
Как например вы используете HxD, когда меняете символы, этот трюк делает тоже самое, но с байтами файлов.

В новом выпуске дайджеста по кибербезопасности Константин Гончаров пытается сделать выводы из позорных неудач известных ИТ компаний.

19 октября 2015

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

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

42 выпуск дайджеста о кибербезопасности

Поиск коллизий для алгоритма SHA-1 серьезно подешевел

Новость. Предсказание Джесси Уокера трехлетней давности. Новое исследование, изменившее представления о безопасности алгоритма.

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

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

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

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

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

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

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

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

Затем исследователи улучшают этот алгоритм, еще больше уменьшая количество операций. В результате ту самую атаку, требовавшую 240 лет, становится возможно выполнить за 120 лет. Или за 12. Или за 2. Вот когда вместо двух с половиной веков требуется всего два месяца, можно начинать волноваться.

Так вот, три года назад специалист по криптографии Джесси Уокер из Intel предположил, что к 2015 году для нахождения коллизий алгоритма SHA-1 потребуется два в одиннадцатой степени серверо-лет (ну, если взять за основу такой сферический типовой сервер в вакууме).

К счастью, благодаря облачным сервисам, а конкретно Amazon EC2, можно вычислить более конкретный денежный эквивалент: около $700 тыс. — и вы получите теоретический способ, например подделать цифровую подпись за сравнительно короткое время.

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

грустная собачка

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

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

А что с SHA-1? Алгоритм применяется с 1995 года, и, в общем-то, уже в 2005-м, 10 лет назад, было понятно, что это не самая надежная в мире технология. Но даже с новыми вводными данными до практической эксплуатации еще далеко, в то время как SHA-1 постепенно выводится из использования и заменяется более надежными алгоритмами хеширования.

До 2017 года разработчики основных браузеров планируют отказаться от использования SHA-1. Пожалуй, стоит поторопиться, ведь если за три года предположительная цена атаки упала с $2,77 млн до $100 тыс., то что может произойти еще через год?

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

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

В маршрутизаторах Netgear N300 обнаружили уязвимость. Ну да, еще одна дыра в роутерах, и как-то получается, что они все разные, но при этом на одно лицо. В одной из прошлых серий уже обсуждали пачку дыр в устройствах Belkin. У Netgear причем все как-то совсем обидно.

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

Netgear опростоволосился

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

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

Fun fact: компания Compass Security довольно долго не могла добиться никакого ответа от Netgear. Затем диалог таки случился, и им даже прислали бета-версию прошивки на проверку. Но тут (откуда ни возьмись) появилась компания Shellshock Labs и опубликовала свое исследование той же уязвимости, вообще ни с кем не договариваясь (что как бы не очень хорошо).

85% Android-устройств небезопасны

Новость. Сайт исследователей, с рейтингом безопасности по вендорам.

Большеглазый лемур

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

Проверяли так: сделали приложение Device Analyzer, через которое открыто собирали различную анонимную телеметрию у участников эксперимента, включая такие параметры, как версия ОС и номер билда. Всего удалось собрать информацию более чем с 20 тыс. смартфонов.

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

Андроид устройства опять под угрозой

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

В общем, в методике исследования есть немало вольных допущений, да и доказывает она то, что и так всем известно. По словам исследователей, одной из целей их работы является дополнительная мотивация производителей таки починить систему латания дыр в своих устройствах. А вот что на самом деле важно: на картинке выше мы видим пример экосистемы, которая в принципе не может быть на 100% безопасной.

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

Что еще произошло:

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

Древности:

Читайте также: