Бэкдор (вычисления) - Backdoor (computing)

А задняя дверь обычно скрытый метод обхода нормального аутентификация или шифрование в компьютер, продукт, встроенное устройство (например, домашний роутер ) или его воплощение (например, часть криптосистема, алгоритм, чипсет, или даже "компьютер-гомункул" - крошечный компьютер внутри компьютера, такой как тот, что есть в Технология AMT ).[1][2] Бэкдоры чаще всего используются для защиты удаленного доступа к компьютеру или получения доступа к нему. простой текст в криптографические системы. Оттуда его можно использовать для получения доступа к конфиденциальной информации, такой как пароли, повреждение или удаление данных на жестких дисках, а также для передачи информации в автоматических сетях.

Бэкдор может принимать форму скрытой части программы,[3] отдельная программа (например, Заднее отверстие может подорвать систему через руткит ), код в прошивка оборудования,[4] или части Операционная система такие как Windows.[5][6][7] троянские кони может использоваться для создания уязвимостей в устройстве. Троянский конь может показаться вполне законной программой, но при запуске он запускает действие, которое может установить бэкдор.[8] Хотя некоторые из них устанавливаются тайно, другие бэкдоры являются преднамеренными и широко известны. Подобные бэкдоры используются «законно», например, для того, чтобы дать производителю возможность восстановить пароли пользователей.

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

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

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

Обзор

Угроза бэкдоров обнаруживается при многопользовательской и сетевой операционные системы получил широкое распространение. Петерсен и Терн обсуждали компьютерную подрывную деятельность в статье, опубликованной в трудах конференции AFIPS 1967 года.[12] Они отметили класс активных атак проникновения, которые используют точки входа в систему «лазейки», чтобы обойти средства безопасности и разрешить прямой доступ к данным. Использование слова люк здесь явно совпадает с более поздними определениями бэкдора. Однако с появлением криптография с открытым ключом период, термин люк приобрела иное значение (см. функция люка ), и поэтому термин «бэкдор» теперь предпочтителен только после того, как термин «лазейка» перестал использоваться. В более общем плане такие нарушения безопасности подробно обсуждались в RAND Corporation отчет целевой группы опубликован под ARPA спонсорство J.P. Anderson и D.J. Эдвардс в 1970 году.[13]

Бэкдор в системе входа в систему может иметь форму жестко закодированный комбинация пользователя и пароля, дающая доступ к системе. Пример такого рода бэкдора использовался в качестве сюжета в 1983 фильм Игры в войну, в котором архитектор "WOPR "компьютерная система вставила жестко запрограммированный пароль, который давал пользователю доступ к системе и к недокументированным частям системы (в частности, режим симуляции, подобный видеоиграм, и прямое взаимодействие с искусственный интеллект ).

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

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

Политика и атрибуция

Есть ряд плащ и кинжал соображения, которые необходимо учитывать при распределении ответственности.

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

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

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

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

Примеры

черви

Много компьютерные черви, такие как Такой большой и Mydoom, установите бэкдор на зараженный компьютер (обычно ПК на широкополосный Бег Майкрософт Виндоус и Microsoft Outlook ). Похоже, что такие бэкдоры устанавливаются так, что спамеры может отправлять мусор Эл. почта с зараженных машин. Другие, такие как Руткит Sony / BMG, тайно размещенные на миллионах музыкальных компакт-дисков до конца 2005 года, предназначены для DRM меры - и, в этом случае, как сбор данных агенты, поскольку обе установленные ими тайные программы обычно связывались с центральными серверами.

Изощренная попытка заложить бэкдор в Ядро Linux, опубликованный в ноябре 2003 г., добавил небольшое и незаметное изменение кода, подорвав система контроля версий.[14] В этом случае появилось двухстрочное изменение проверять корневой доступ разрешения вызывающего абонента на sys_wait4 функция, но поскольку она использовала присваивание = вместо проверки равенства ==, это на самом деле предоставляется разрешения в системе. Эту разницу легко упустить из виду, и ее можно даже интерпретировать как случайную типографскую ошибку, а не как преднамеренную атаку.[15]

Помечено желтым: пароль администратора бэкдора скрыт в коде

В январе 2014 г. был обнаружен бэкдор в некоторых Samsung Android продукты, такие как устройства Galaxy. Собственные версии Android от Samsung оснащены бэкдором, который обеспечивает удаленный доступ к данным, хранящимся на устройстве. В частности, программное обеспечение Samsung Android, отвечающее за обмен данными с модемом с использованием протокола Samsung IPC, реализует класс запросов, известный как команды удаленного файлового сервера (RFS), что позволяет оператору бэкдора выполнять удаленные операции через модем. Операции ввода-вывода на жестком диске устройства или другом хранилище. Поскольку модем работает под управлением проприетарного программного обеспечения Android от Samsung, вполне вероятно, что он предлагает удаленное управление по воздуху, которое затем можно использовать для выдачи команд RFS и, таким образом, для доступа к файловой системе на устройстве.[16]

Бэкдоры объектного кода

Труднее обнаружить бэкдоры, связанные с изменением объектный код, а не исходный код - объектный код гораздо труднее проверять, поскольку он предназначен для машиночитаемого, а не человека. Эти бэкдоры могут быть вставлены либо непосредственно в объектный код на диске, либо вставлены в какой-то момент во время компиляции, компоновки сборки или загрузки - в последнем случае бэкдор никогда не появляется на диске, а только в памяти. Бэкдоры объектного кода трудно обнаружить путем проверки объектного кода, но их легко обнаружить, просто проверив наличие изменений (различий), особенно в длине или в контрольной сумме, а в некоторых случаях их можно обнаружить или проанализировать путем дизассемблирования объектного кода. Кроме того, бэкдоры объектного кода можно удалить (при условии, что исходный код доступен) путем простой перекомпиляции из источника в надежной системе.

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

Поскольку объектный код можно регенерировать путем перекомпиляции (повторной сборки, повторного связывания) исходного исходного кода, создание бэкдора для постоянного объектного кода (без изменения исходного кода) требует подрыва компилятор сам - так что, когда он обнаруживает, что он компилирует атакованную программу, он вставляет бэкдор - или, альтернативно, ассемблер, компоновщик или загрузчик. Поскольку это требует подрыва компилятора, это, в свою очередь, можно исправить, перекомпилировав компилятор, удалив код вставки бэкдора. Эту защиту, в свою очередь, можно подорвать, поместив исходный мета-бэкдор в компилятор, чтобы, когда он обнаруживает, что он компилируется, он затем вставляет этот генератор мета-бэкдора вместе с исходным генератором бэкдора для исходной программы, подвергшейся атаке. После этого исходный мета-бэкдор может быть удален, а компилятор перекомпилирован из исходного источника с скомпрометированным исполняемым файлом компилятора: бэкдор был загружен. Эта атака датируется Каргер и Шелл (1974), и был популяризирован в статье Томпсона 1984 г., озаглавленной «Размышления о доверии»;[17] следовательно, в просторечии она известна как атака «Доверие». Увидеть бэкдоры компилятора ниже, чтобы узнать подробности. Аналогичные атаки могут быть нацелены на более низкие уровни системы, такие как операционная система, и могут быть вставлены во время работы системы. загрузка обработать; они также упоминаются в Каргер и Шелл (1974), а теперь существуют в виде вирусы загрузочного сектора.[18]

Асимметричные бэкдоры

Традиционный бэкдор - это симметричный бэкдор: любой, кто обнаружит бэкдор, в свою очередь может его использовать. Понятие асимметричного бэкдора было введено Адамом Янгом и Моти Юнг в Труды достижений в криптологии: Crypto '96. Асимметричный бэкдор может использоваться только злоумышленником, который его установил, даже если полная реализация бэкдора станет общедоступной (например, посредством публикации, обнаружения и раскрытия обратный инжиниринг, так далее.). Кроме того, сложно с вычислительной точки зрения обнаружить наличие асимметричного бэкдора в запросах черного ящика. Этот класс атак получил название клептография; они могут выполняться программно, аппаратно (например, смарт-карты ) или их комбинацию. Теория асимметричных бэкдоров является частью более широкой области, которая теперь называется криптовирология. В частности, АНБ вставил клептографический бэкдор в Двойной ЭК DRBG стандарт.[4][19][20]

Существует экспериментальный асимметричный бэкдор в генерации ключей RSA. Этот бэкдор OpenSSL RSA, разработанный Янгом и Юнгом, использует витую пару эллиптических кривых и стал доступным.[21]

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

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

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

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

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

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

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

Обновленный анализ исходного эксплойта представлен в Каргер и Шелл (2002), Раздел 3.2.4: Люки для компилятора), а исторический обзор и обзор литературы даны в Уилер (2009), Раздел 2: Предпосылки и сопутствующие работы ).

Вхождения

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

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

Контрмеры

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

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

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

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

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

Смотрите также

использованная литература

  1. ^ Экерсли, Питер; Портной, Эрика (8 мая 2017 г.). «Intel Management Engine представляет угрозу безопасности, и пользователям нужен способ отключить его». www.eff.org. EFF. Получено 15 мая 2017.
  2. ^ Хоффман, Крис. «Intel Management Engine, объяснение: крошечный компьютер внутри вашего процессора». How-To Компьютерщик. Получено 13 июля, 2018.
  3. ^ Крис Висопал, Крис Энг. «Статическое обнаружение бэкдоров приложений» (PDF). Veracode. Получено 2015-03-14.
  4. ^ а б c «Как крипто-бэкдор натравил мир технологий против АНБ». Проводной. 2013-09-24. Получено 5 апреля 2018.
  5. ^ Ашок, Индия (21 июня 2017 г.). «Хакеры, использующие вредоносное ПО DoublePulsar АНБ для заражения компьютеров с Windows трояном для майнинга Monero». International Business Times UK. Получено 1 июля 2017.
  6. ^ "Microsoft Back Doors". Операционная система GNU. Получено 1 июля 2017.
  7. ^ «Бэкдор АНБ, обнаруженный на> 55 000 ящиков Windows, теперь может быть удален удаленно». Ars Technica. 2017-04-25. Получено 1 июля 2017.
  8. ^ "Бэкдоры и троянские кони: X-Force систем безопасности Интернета". Технический отчет по информационной безопасности. 6 (4): 31–57. 2001-12-01. Дои:10.1016 / S1363-4127 (01) 00405-8. ISSN  1363-4127.
  9. ^ Linthicum, Дэвид. «Осторожно! Бэкдор облака - это ваш центр обработки данных». InfoWorld. Получено 2018-11-29.
  10. ^ «Фальшивая история: в военном чипе нет китайского бэкдора». blog.erratasec.com. Получено 5 апреля 2018.
  11. ^ https://www.eff.org/deeplinks/2015/04/clipper-chips-birthday-looking-back-22-years-key-escrow-failures Клипер провалился.
  12. ^ ОН. Петерсен, Р. Терн. «Системные последствия конфиденциальности информации». Материалы весенней совместной компьютерной конференции AFIPS, т. 30, страницы 291–300. AFIPS Press: 1967.
  13. ^ Контроль безопасности компьютерных систем, Технический отчет R-609, WH Ware, изд., Февраль 1970 г., RAND Corp..
  14. ^ Маквой, Ларри. "Re: проблема BK2CVS". список рассылки linux-kernel. Получено 18 сентября 2020.
  15. ^ Запрещенный бэкдор Linux намекает на более умные взломы; Кевин Поулсен; Безопасность, 6 ноября 2003 г.
  16. ^ "SamsungGalaxyBackdoor - Репликант". redmine.replicant.us. Получено 5 апреля 2018.
  17. ^ а б Томпсон, Кен (Август 1984 г.). «Размышления о доверии» (PDF). Коммуникации ACM. 27 (8): 761–763. Дои:10.1145/358198.358210.
  18. ^ а б Каргер и Шелл 2002.
  19. ^ «Странная связь между АНБ и технологической фирмой Онтарио». Получено 5 апреля 2018 - через The Globe and Mail.
  20. ^ а б Перлрот, Николь; Ларсон, Джефф; Шейн, Скотт (5 сентября 2013 г.). «АНБ может нарушить основные гарантии конфиденциальности в Интернете». Нью-Йорк Таймс. Получено 5 апреля 2018.
  21. ^ «Вредоносная криптография: криптовирология и клептография». www.cryptovirology.com. Получено 5 апреля 2018.
  22. ^ Запись в файле жаргона для "бэкдора" на catb.org описывается взлом компилятора Thompson
  23. ^ Компиляция вируса - W32 / Induc-A Sophos labs об открытии вируса Induc-A
  24. ^ Уиллер 2009.
  25. ^ «Разоблачение» бесплатных «премиальных плагинов WordPress». Блог Сукури. 2014-03-26. Получено 3 марта 2015.
  26. ^ Синегубко, Денис (23.04.2014). "Бэкдор конструктора плагинов Joomla". Securi. Получено 13 марта 2015.
  27. ^ "Примечание об уязвимости VU № 247371". База данных примечаний об уязвимостях. Получено 13 марта 2015.
  28. ^ «Сервер Interbase содержит встроенную учетную запись черного хода». CERT. Получено 13 марта 2015.
  29. ^ «Исследователи подтверждают пароль бэкдора в коде брандмауэра Juniper». Ars Technica. 2015-12-21. Получено 2016-01-16.
  30. ^ "Zagrożenia tygodnia 2015-W52 - Spece.IT". Spece.IT (по польски). 2015-12-23. Получено 2016-01-16.
  31. ^ https://pierrekim.github.io/blog/2020-07-07-cdata-olt-0day-vulnerabilities.html
  32. ^ https://www.zdnet.com/article/backdoor-accounts-discovered-in-29-ftth-devices-from-chinese-vendor-c-data/

дальнейшее чтение

внешние ссылки