Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Бэкдор в программировании

Лекция



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

бэкдор , тайный вход (от англ. back door — «черный ход», буквально «задняя дверь») — дефект алгоритма, который намеренно встраивается в него разработчиком и позволяет получить несанкционированный доступ к данным или удаленному управлению операционной системой и компьютером в целом .

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

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

Черный ход может иметь форму скрытой части программы, отдельная программа (например , Back Orifice может разрушить систему через руткит ), код в прошивке аппаратного обеспечения , или его части в операционной системе например Windows . Троянские кони могут использоваться для создания уязвимостей в устройстве. Троянский конь может показаться вполне законной программой, но при запуске он запускает действие, которое может установить бэкдор. Хотя некоторые из них устанавливаются тайно, другие бэкдоры являются преднамеренными и широко известны. Бэкдоры такого типа используются в «законных» целях, например, для предоставления производителю возможности восстановить пароли пользователей.

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

Пароли по умолчанию (или другие учетные данные по умолчанию) могут работать как бэкдоры, если они не изменяются пользователем. Некоторые функции отладки также могут действовать как бэкдоры, если они не удалены в версии выпуска. [10]

В 1993 году правительство Соединенных Штатов попыталось развернуть систему шифрования , чип Clipper , с явным бэкдором для доступа правоохранительных органов и национальной безопасности. Чип оказался неудачным.

Основные свойства бэкдора

Идеальный бэкдор

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

Распространенные принципы создания бэкдоров в алгоритмах

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

Гипотетические примеры бэкдоров в современных алгоритмах

Уязвимость генератора псевдослучайной последовательности DUAL_EC_DRBG

Данный генератор был разработан в АНБ и стандартизован в качестве криптографически стойкого генератора псевдослучайных чисел национальным институтом стандартов и технологий США NIST в 2006 году. Однако уже в 2007 году независимыми исследователями было высказано предположение, что в этот алгоритм мог быть встроен бэкдор.

Иллюстрация работы алгоритма согласно спецификации АНБ:

Бэкдор в программировании

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

Принцип работы:

Уравнение кривой

Бэкдор в программировании

можно переписать в виде Бэкдор в программировании и записать следующие выражения для работы алгоритма:

Бэкдор в программировании , Бэкдор в программировании , Бэкдор в программировании

Бэкдор в программировании — внутреннее состояние генератора на текущем шаге

Бэкдор в программировании — внутреннее состояние генератора на следующем шаге

Бэкдор в программировании — выход генератора на текущем шаге

Предполагаемый бэкдор:

Так как Бэкдор в программировании — простое число, то существуют такое число Бэкдор в программировании, что Бэкдор в программировании. Нахождение Бэкдор в программировании — вычислительно сложная задача дискретного логарифмирования на эллиптической кривой, для решения которой на сегодняшний день не существует эффективных алгоритмов. Но если предположить, что злоумышленник знает Бэкдор в программировании , то получается следующая атака: Если Бэкдор в программировании — очередной выход генератора, и если существует такое Бэкдор в программировании, что Бэкдор в программировании, то точка Бэкдор в программировании, лежит на кривой и для нее выполняется следующее равенство: Бэкдор в программировании. Об этом говорит сайт https://intellect.icu . Зная число Бэкдор в программировании можно вычислить: Бэкдор в программировании. Таким образом, злоумышленник, знающий число Бэкдор в программировании, может не только вычислить следующий выход генератора, но и быстро перебрать все возможные внутренние состояния генератора и восстановить его начальное внутреннее состояние. Согласно независимым исследованиям , при знании Бэкдор в программировании достаточно всего 30 байт выходной последовательности генератора, чтобы простым перебором Бэкдор в программировании значений восстановить его начальное внутреннее состояние. По мнению исследователей, такая уязвимость может быть расценена как бэкдор.

Ошибка в реализации протокола проверки сертификатов TLS от компании Apple

Исследователями компании Яндекс была обнаружена уязвимость в реализации протокола TLS в одном из программных продуктов Apple . По их мнению, данная ошибка вполне может оказаться бэкдором, намеренно встроенным в алгоритм кем-то из разработчиков.

Участок кода с ошибкой:

static DSStatus SSLVerifySignedServerKeyExchnge(....)
{
     DSStatus err;
     ....
     if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
          goto fail;
          goto fail;
     if ((SSHashSHA1.final(&hashCtx, &hashOut)) != 0)
          goto fail;
     ....
     fail:
          ....
          return err;
}

Как можно видеть, после первого оператора if стоят две строчки goto fail, и вторая строчка выполняется всегда, независимо от результата if. Таким образом процедура проверки сертификата проходит не полностью. Злоумышленник, знающий об этой уязвимости, может подделать сертификат и пройти проверку подлинности. Это позволит ему организовать атаку типа «Человек посередине», тем самым вмешаться в защищенное соединение между клиентом и сервером. Исследователи, обнаружившие данную ошибку в реализации, не могут точно сказать, намеренно она была сделана или случайно. Вполне возможно, что это бэкдор, встроенный в алгоритм кем-то из разработчиков.

Примеры методов создания бэкдоров

Специально подобранные константы

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

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

Краткое описание SHA1:

SHA1 — современная раундовая хеш-функция. Алгоритм хеширования следующий:

  • Инициализируются 32-битные значения Бэкдор в программировании
  • Входное сообщение разбивается на блоки длиной 512 бит
  • Каждый блок сообщения обрабатывается и дополняется специальным образом, по алгоритму, определенному в стандарте
  • Полученный блок сообщения хэшируется в 4 этапа по 20 раундов в каждом, причем для каждого этапа используется своя константа Бэкдор в программировании или Бэкдор в программировании
  • Выходом функции для каждого блока будут новые значения Бэкдор в программировании, которые добавляются к результату: Бэкдор в программировании
  • Итоговым результатом хеширования будет 160-битное значение полученное конкатенацией пяти 32-битных значений Бэкдор в программировании после обработки последнего блока сообщения.

Построение коллизий:

Целью рассматриваемой атаки является нахождение таких констант Бэкдор в программировании и таких сообщений Бэкдор в программировании и Бэкдор в программировании , что Бэкдор в программировании. Данная атака модифицирует только первые 512 бит (1-ый блок) сообщений для которых требуется построить коллизию. Алгоритм базируется на уже известной разностной атаке на SHA1, предложенной в 2005 году и имеющей сложность порядка Бэкдор в программировании операций, что делает ее трудноосуществимой на практике. Поэтому до настоящего времени ни одной реальной коллизии для SHA1 найдено не было.

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

Одноблоковая коллизия:

Бэкдор в программировании

Бэкдор в программировании и Бэкдор в программировании — первые блоки сообщений (512 бит), которые отличаются между собой, но дают одинаковую хеш-сумму

Бэкдор в программировании — остальное содержимое, которое одинаково для обоих файлов

Пример использования вредоносного хеширования для создания бэкдоров

С помощью описанной атаки были созданы два sh-скрипта, которые при выборе Бэкдор в программировании дают одинаковую хеш-сумму SHA1, но работают по-разному.

Бэкдор в программировании

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

Аппаратные бэкдоры

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

Аппаратные бэкдоры имеют ряд преимуществ над программными:

  • Не могут быть обнаружены антивирусами, сканерами кода и другим защитным ПО.
  • Не могут быть устранены обновлением или заменой программного обеспечения.

Примером аппаратного бэкдора может быть вредоносная прошивка BIOS. Согласно исследованиям[12], такая прошивка может быть построена на основе свободных прошивок Coreboot[13] и SeaBIOS. Coreboot не является полноценным BIOS: он отвечает только за обнаружение имеющегося на машине оборудования и передачу управления самой «начинке BIOS», в качестве которой может быть использован модифицированный злоумышленником под свои нужды SeaBIOS.

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

Бэкдоры компилятора

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

Эта атака была первоначально представлена ​​в Karger & Schell (1974 , стр. 52, раздел 3.4.5: «Вставка люка»), который представлял собой анализ безопасности Multics ВВС США , где описывалась такая атака на PL / Я составляю компилятор и называю это «ловушкой для компилятора»; они также упоминают вариант, в котором код инициализации системы модифицируется для вставки бэкдора во время загрузки , поскольку это сложно и плохо понимается, и называют его «лазейкой инициализации»; это теперь известно как вирус загрузочного сектора . [19]

Затем эта атака была фактически реализована и популяризирована Кеном Томпсоном в его речи на церемонии вручения премии Тьюринга в 1983 г. (опубликовано в 1984 г.) «Размышления о доверии» [18], в которой указывается, что доверие относительное, и единственное программное обеспечение, которое действительно может trust - это код, в котором проверяется каждый шаг начальной загрузки. Этот механизм бэкдора основан на том факте, что люди просматривают только исходный (написанный человеком) код, а не скомпилированный машинный код ( объектный код ). Программа называется компилятор используется для создания второго из первых, и компилятора обычно доверял делать честную работу.

В статье Томпсона описана модифицированная версия компилятора Unix C , которая:

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

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

Обновленный анализ исходного эксплойта дан в Karger & Schell (2002 , раздел 3.2.4: люки компилятора), а исторический обзор и обзор литературы дан в Wheeler (2009 , раздел 2: Предпосылки и связанные с ним работы ). .

События

Версия Томпсона официально никогда не выпускалась в свет. Однако считается, что версия была распространена на BBN и было зарегистрировано как минимум одно использование бэкдора. [23] Имеются разрозненные анекдотические сообщения о таких бэкдорах в последующие годы.

В августе 2009 года подобная атака была обнаружена лабораториями Sophos. Вирус W32 / Induc-A заразил компилятор программ для Delphi , языка программирования Windows. Вирус представил свой собственный код при компиляции новых программ на Delphi, что позволило ему заражать и распространяться на многие системы без ведома программиста. Особенно сложно обнаружить атаку, которая распространяется путем создания собственного троянского коня . Считается, что вирус Induc-A распространялся по крайней мере за год до того, как был обнаружен. [24]

Контрмеры

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

Общий метод противодействия атакам на доверительные отношения называется Diverse Double-Compiling (DDC). Для этого метода требуется другой компилятор и исходный код тестируемого компилятора. Этот источник, скомпилированный обоими компиляторами, приводит к созданию двух разных компиляторов стадии 1, которые, однако, должны иметь одинаковое поведение. Таким образом, один и тот же исходный код, скомпилированный обоими компиляторами стадии 1, должен затем привести к двум идентичным компиляторам стадии 2. Приводится формальное доказательство того, что последнее сравнение гарантирует соответствие предполагаемого исходного кода и исполняемого файла тестируемого компилятора при некоторых предположениях. Этот метод был применен его автором для проверки того, что компилятор C пакета GCC (v. 3.0.4) не содержит трояна, используя icc (v. 11.0) в качестве другого компилятора. [25]

На практике такие проверки не выполняются конечными пользователями, за исключением крайних случаев обнаружения и анализа вторжений из-за редкости таких сложных атак и потому, что программы обычно распространяются в двоичной форме. Удаление бэкдоров (включая бэкдоры компилятора) обычно выполняется путем простого восстановления чистой системы. Тем не менее, сложные проверки представляют интерес для поставщиков операционных систем, чтобы гарантировать, что они не распространяют скомпрометированную систему, и в настройках с высоким уровнем безопасности, где такие атаки являются реальной проблемой.

Список известных бэкдоров

  • Back Orifice был создан в 1998 году хакерами из группы Cult of the Dead Cow как инструмент удаленного администрирования. Он позволял удаленно управлять компьютерами с Windows по сети и пародировал название BackOffice от Microsoft .
  • В 2013 году было обнаружено, что криптографически безопасный генератор псевдослучайных чисел Dual EC DRBG может иметь клептографический бэкдор, намеренно вставленный АНБ, у которого также был закрытый ключ к бэкдору. [21]
  • В марте 2014 года было обнаружено несколько бэкдоров в нелицензионных копиях надстроек WordPress . [26] Они были вставлены как запутанный код JavaScript и незаметно созданы, например, учетной записью администратора в базе данных веб-сайта. Похожая схема была позже представлена ​​в плагине Joomla . [27]
  • Borland Interbase версий с 4.0 по 6.0 содержал жестко запрограммированный бэкдор, заложенный разработчиками. Код сервера содержит встроенную учетную запись бэкдора (имя пользователя: политически , пароль: правильный ), к которой можно получить доступ через сетевое соединение; пользователь, входящий в систему с этой учетной записью бэкдора, может получить полный контроль над всеми базами данных Interbase. Бэкдор был обнаружен в 2001 году, и был выпущен патч . [28] [29]
  • Бэкдор Juniper Networks, вставленный в 2008 году в версии прошивки ScreenOS от 6.2.0r15 до 6.2.0r18 и от 6.3.0r12 до 6.3.0r20 [30] , дает любому пользователю административный доступ при использовании специального мастер-пароля. [31]
  • В устройствах с оконечной нагрузкой оптической линии (OLT) C-DATA было обнаружено несколько бэкдоров. [32] Исследователи опубликовали результаты без уведомления C-DATA, поскольку считают, что бэкдоры были намеренно размещены поставщиком.

Вау!! 😲 Ты еще не читал? Это зря!

  • Компьютерный вирус
  • Хакерская атака
  • Спуфинг
  • Эксплойт
  • Атака « Человек -по-середине»
  • DoublePulsar
  • EternalBlue
  • WannaCry
  • Petya (червь-вымогатель)
  • EternalRocks
  • Агентство Национальной Безопасности США

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

создано: 2021-04-25
обновлено: 2024-11-11
9



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Криптоанализ, Виды уязвимости и защита Информации

Термины: Криптоанализ, Виды уязвимости и защита Информации