Недокументированные возможности
Недокументи́рованные возмо́жности (англ. undocumented features), НДВ — возможности технических устройств и/или программного обеспечения, не отраженные в документации. Чаще всего недокументированные возможности сознательно закладываются разработчиками в целях тестирования, дальнейшего расширения функциональности, обеспечения совместимости или же в целях скрытого контроля за пользователем. Кроме того недокументированные возможности могут стать следствием побочных эффектов (чаще всего в переходных режимах или при переключении режимов), не учтенных разработчиками. От недокументированных возможностей следует отличать возможности системы, скрытые от конечного потребителя, но приведенные в официальной сервисной документации. Недокументированные возможности обнаруживаются, обычно, в процессе обратной разработки, но могут быть обнаружены и случайно. Частным случаем недокументированных возможностей являются недокументированные функции.
В тех случаях, когда изготовитель несёт ответственность за работоспособность продукта или обязуется осуществлять его техническую поддержку, соответствующие обязательства обычно распространяются лишь на описанное в сопроводительной документации. С этим может быть связан ещё один мотив не упоминать в документации некоторые полезные функции. В частности, это позволяет избавиться от них в следующих версиях продукта, не предупреждая об этом пользователей. Это несёт определённые риски для пользователей, полагающихся на недокументированные возможности[1].
Отдельный интерес, особенно в случае программного обеспечения, представляют недокументированные возможности, которые могут поставить под угрозу правильную работу, целостность, конфиденциальность — иными словами безопасность — программной или информационной системы. В этом контексте обычно используются термин уязвимость (перевод англ. vulnerability) (на профессиональном компьютерном жаргоне также «дыра»), а в некоторых официальных документах вводится понятия «недекларированные возможности» и «незаявленные возможности» (см. раздел «Недекларированные возможности (информационная безопасность)»).
Недокументированные возможности в разных сферах
В машинах и механизмах
Недокументированные возможности в машинах и механизмах встречаются сравнительно редко, так как реализация той или иной дополнительной функции требует применения дополнительных элементов, назначение и логику работы которых сравнительно несложно понять. Тем не менее в случае многозвенных механизмов с несколькими степенями свободы недостаточно полная реализация кинематики отдельных узлов машины может приводить к побочным эффектам, открывающим не предусмотренные разработчиками возможности, например:
- В швейных машинах сложного зигзага, выпущенных подольским заводом, конструктивная особенность реализации кулачково-копирного узла позволяла получать штриховую строчку, не предусмотренную конструкторами машины, при установке переключателя зигзага в промежуточное нерабочее положение. Данная возможность случайно была обнаружена одной из читательниц журнала «Работница», о чём она написала письмо в редакцию. После публикации в журнале этой заметки исследование недокументированных возможностей швейных машин и их применение стало регулярным.
- В задних фонарях легкового автомобиля Chrevrolet Lacetti (модификация в кузове седан) имеются по две секции стоп-сигнала с установленными в них лампами, из которых к бортовой проводке автомобиля подключена только одна (верхняя); нижняя секция стоп-сигнала ни к чему не подключена и концы провода от нее просто болтаются. Таким образом, в штатном режиме при нажатии на педаль тормоза загорается только верхняя секция стоп-сигнала. Просто подключив провода от второй (нижней) секции к проводам от верхней секции, получаем загорающиеся при торможении сдвоенные секции стоп-сигнала.
- В ряде модификаций токарного станка 16К20 в виду неописанных в документации особенностей реализации коробки подач появлялась возможность изготавливать резьбы с нестандартным шагом, что широко использовалось в годы СССР для изготовления самодельных замков и ключей к ним с нестандартной резьбой вместо секретного механизма.
- Особенности конструкции главной передачи автомобиля «Запорожец» допускали в процессе сборки агрегата переворот коробки дифференциала с ведомой конической шестерней, что вызывало изменение направления вращения полуосей. Этим широко пользовались создатели самодельных автомобилей, применявшие ЗАЗовский силовой агрегат, установленный в передней части машины. Иногда эта особенность приводила к курьёзам, когда после ремонта автомобиля при включении передачи переднего хода он ехал назад.
- Старые типы автоматических коробок передач имеют отдельный планетарный ряд повышающей передачи («овердрайв»), который управляется независимо от основного трёх- или четырёхступенчатого ряда. Хотя штатные системы управления АКПП включают овердрайв только в сочетании с прямой передачей в основном планетарном ряду, ничего не мешает использовать его и на других передачах, что фактически удваивает общее число передач в АКПП. Этой особенностью иногда пользуются производители автомобилей, например, вводя в управление АКПП дополнительную программу мягкого старта (что удобно зимой на скользкой дороге). Суть этой программы заключается в том, что овердрайв работает на всех передачах, снижая передаточное отношение и, следовательно, динамику автомобиля.
- Кинематическая схема пятиступенчатой АКПП A750 фирмы Aisin такова, что она может реализовывать 7 передач переднего хода и 3 передачи заднего хода. Однако в этих дополнительных режимах нагрузка на фрикционы и тормоза слишком велика и производители автомобилей их не используют. Но любители тюнинга автомобилей пользуются этой возможностью. Позже фирма Aisin доработала конструкцию этой АКПП, реализовав в ней 6 передач переднего хода.
- Батарейки типа AAA можно использовать в устройствах с разъёмами для типа АА. Достаточно замкнуть контакты на более короткой батарейке путём добавления прокладки из любого проводника (подойдёт комок фольги). Большинство устройств заработают даже с неподходящими батарейками.
В механических фотоаппаратах
- В фотоаппаратуре «Зенит» не было предусмотрено автоматических длительных выдержек. Однако особенности реализации механизма автоспуска приводили к тому, что при установке затвора в режим «В» автоспуск мог формировать длительные выдержки (до 9 секунд). Интересно, что руководство по эксплуатации вообще не давало никаких сведений о сочетании режима «В» и автоспуска.
- В фотоаппаратах «ФЭД-3» подобная комбинация позволяла получить выдержку около 4—4,5 секунды.
В нецифровой электронной аппаратуре
- У многих всеволновых радиоприемников (практически все приемники, выполненные на пальчиковых лампах), выпускавшихся в СССР, переключение диапазонов в области коротких волн осуществлялось подключением с помощью механического переключателя, подключающего параллельно колебательному контуру гетеродина группы частотопонижающих конденсаторов. В промежуточных положениях переключателя дополнительные конденсаторы не были подключены, и частота гетеродина определялась только конденсатором переменной ёмкости. При этом гетеродин работал на повышенной частоте. Эта особенность позволяла принимать радиостанции в диапазонах волн 19, 16 и 11 метров и слушать «вражеские голоса». Приём был достаточно нестабильным, но, тем не менее, позволял слушать передачи. В радиоприемнике «Сакта» для этого нужно было нажать одновременно кнопки КВ1 и КВ2. В «Ригонде» и её клонах («Кантата», «Рапсодия», «Урал») этот эффект достигался при переключении из режима КВ1 в КВ2, если кнопку КВ1 удерживать и плавно отпускать при нажатии на кнопку КВ2.
- Практически все недорогие рации, работающие на частоте 27 МГц, в режиме амплитудной модуляции могли нормально принимать сигналы раций этого же диапазона, но работавших с частотной модуляцией. Это было связано с тем, что упрощенный фильтр промежуточной частоты, выполненный всего на одном колебательном контуре, имел участки АЧХ с достаточно хорошей линейностью и прекрасно справлялся с непредусмотренной разработчиками функцией частотного дискриминатора. Примечательно также и то, что по причине упрощенной реализации передающего тракта многих подобных раций амплитудная модуляция сопровождалась сильной паразитной девиацией частоты, дающей возможность приема сигнала аппаратами, работающими в режиме частотной модуляции.
- Практически все пентоды и лучевые тетроды могут работать в триодном включении (анод соединён со второй сеткой), обладая при этом хорошими показателямии линейности (зачастую лучшими, чем у специальных триодов), что активно используется поклонниками лампового звука. Хотя такой режим разработчиками не был предусмотрен и согласно руководящим техническим материалам (РТМ), действовавшим в СССР, — запрещён.
- Некоторые старые чёрно-белые видеомагнитофоны (например, «Малахит») могут записывать цветное изображение. Это возможно, если сигналы цветности попадают в рабочую полосу частот видеотракта. В таком случае они записываются и воспроизводятся не как в цветном магнитофоне, а напрямую, без переноса спектра и иных преобразований. Также необходимым условием является отсутствие у чёрно-белого видеомагнитофона фильтров, вырезающих «ненужные» сигналы цветности из полного видеосигнала. У старых аппаратов их не было, а внедрять фильтры начали только с широким распространением цветного телевещания.
В цифровой технике
- Множество недокументированных возможностей присутствовало в советских программируемых микрокалькуляторах (см. Еггогология).
- Почти все домофоны старых типов имеют в своем составе микроконтроллеры с достаточно ограниченными вычислительными ресурсами и сравнительно малым объёмом энергонезависимой памяти, в которой сохраняется только часть ROM-кода ключа. Отдельной таблицы свободности ячеек нет, поэтому признаком того, что ячейка памяти свободна и в неё можно записать новый ключ, является такое её состояние, при котором все биты установлены в логическую 1. По причине упрощенного алгоритма проверки ROM-кода ключа iButton валидным окажется также ключ, у которого 6 байт уникальной части ROM-кода состоят из одних единиц. Такой ключ будет с одинаковым успехом открывать двери, оснащённые домофонами различных типов. Эта особенность позволила создавать так называемые «ключи-вездеходы». Таких ключей не может быть среди изделий, выпускаемых официально, так как указанный ROM-код не определён спецификацией шины 1-Wire, но, тем не менее, он может быть эмулирован с помощью специальных микросхем. Отключить такую недокументированную возможность штатными средствами было невозможно. Единственное, что можно было сделать, — заполнить всю память устройства ROM-кодами ключей (в том числе фиктивных). Позже производители домофонов стали поддерживать данную возможность специально, предусматривая средства её отключения при необходимости.
В программном обеспечении
- Например, в Blitz BASIC есть такие функции, как Handle и Object (и несколько других), описание которых не дано в официальной документации. Их назначение и использование было раскрыто пользователями[2].
- Если создать закладку с адресом javascript:document.getElementsByClassName("video-stream html5-main-video")[0].playbackRate = 4.0; а затем нажать её на сайте YouTube, скорость видео изменится на указанную в конце ссылки (в данном случае 4). Таким образом можно смотреть видео с любой скоростью, хотя официально доступны только 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75 и 2.
Недекларированные возможности (информационная безопасность)
В контексте информационной безопасности в центре внимания оказываются функциональные возможности программного обеспечения, использование которых может нарушить его правильную работу, а также целостность, доступность или конфиденциальность информации. Отечественные стандарты информационной безопасности для подобных недокументированных возможностей вводят специальное понятие — недекларированные возможности (сокр. НДВ) применяемое, в частности, при сертификации программного обеспечения.
Например, имеется утверждённый председателем Государственной технической комиссии[3] при Президенте руководящий документ[4], посвященный, в частности, классификации ПО средств защиты информации по уровню контроля отсутствия недекларированных возможностей, который определяет их следующим образом:
- 2.1. Недекларированные возможности — функциональные возможности ПО, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации.
Преднамеренно внесённые в ПО функциональные объекты, обладающие такими возможностями, названы программными закладками. Эти термины использует и ГОСТ Р 51275-2006 (недоступная ссылка)[5]. Зачастую такие возможности определяются как "умышленно внесенные уязвимости", а применительно к криптографическим алгоритмам - "умышленное внесенная слабость алгоритма".
Процедура поиска недекларированных возможностей в программных продуктах зачастую аналогична процедурам поиска уязвимостей, поэтому в 2019 году методика выявления уязвимостей и НДВ при сертификации были объединены ФСТЭК России в один документ[6].
Программные закладки следует отличать от недекларированных возможностей, появившихся вследствие ошибок в программе (иногда называемых багами)[7].
Доктрина информационной безопасности РФ[8] среди угроз «безопасности информационных и телекоммуникационных средств и систем» называет также и «внедрение в аппаратные и программные изделия компонентов, реализующих функции, не предусмотренные документацией на эти изделия».
Примеры
Технические устройства и ПО
В качестве примеров недокументированных возможностей и команд могут быть приведены:
- как правило, не документирующиеся специальные номера или комбинации клавиш сотовых телефонов, открывающие доступ к инженерным или диагностическим меню, получению дополнительной информации или использованию некоторых других возможностей[9] (например, команда мобильных телефонов *#06#, осуществляющая переход в меню отображения IMEI, а также, в зависимости от модели аппарата, различных аспектов его конфигурации);
- команда перехода современных телевизоров и мониторов в инженерное меню — зажав несколько кнопок на пульте управления одновременно, оператор пульта попадает в исходно недоступное для пользователя пространство инженерного меню, в котором перемещается уже с помощью обычных команд пульта («вверх», «вниз», «влево», «вправо», «ok»)[10];
- в ОС Windows к таким возможностям часто относят работу с реестром, файлами, некоторые возможности Windows API[11][12];
- В приложении Википедии на Андроиде есть возможность (2018 год) посмотреть обсуждение статьи прямо в приложении (хотя, если внизу статьи нажать на "Обсуждение", то открывается браузер). Надо в поле поиска по Википедии набрать "Обсуждение:" и название статьи.
Массовая культура
- переход из «матрицы» в «реальность» в фильме «Матрица» осуществлялся главными героями через поднятия трубки телефона в кабине виртуального телефона-автомата в «матрице».
- в эпизоде 3.11 «Enter 77» сериала «Остаться в живых» переход к режиму основных возможностей, который не знали герои сериала, был случайно реализован одним из персонажей путём выигрыша в компьютерные шахматы.
Примечания
- Особенно актуально для программных библиотек, поскольку желательно, чтобы обновление их версий не приводило к необходимости доработки использующих их программы.
- Help
- В 2004 году. преобразована в ФСТЭК России.
- Руководящий документ. Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей. Утверждено решением председателя Государственной технической комиссии при Президенте Российской Федерации от 4 июня 1999 г. № 114
- ГОСТ Р 51275-2006. «Защита информации. Объект информатизации. Факторы, воздействующие на информацию. Общие положения» (утв. приказом Федерального агентства по техническому регулированию и метрологии от 27 декабря 2006 г. N 374-ст).
- Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении, утверждена ФСТЭК России 11 февраля 2019 г.
- Подробнее об этом можно прочитать в разделе «Безопасность программного кода и отладка» статьи «Отладка», а также в статьях, входящих в категорию «Компьютерные ошибки».
- Доктрина информационной безопасности Российской Федерации
- Недокументированные возможности телефонов
- Описания инженерных меню некоторых мониторов.
- Свен Шрайбер «Недокументированные возможности Windows 2000». Спб, 2002
- Секреты Windows: статьи о реестре, rundll32.exe, программах. Книга Недокументированные возможности Windows XP. Часть 2
Литература
На английском языке
- Gupta G. Computers in Engineering. American Society of Mechanical Engineers, 1991. ISBN 0-7918-0622-7, ISBN 978-0-7918-0622-7, ISBN 0-7918-0622-7 (в особенности раздел «Documented and Undocumented Features», p.78)
- Szyperski C., Gruntz D., Murer S. Component software: beyond object-oriented programming. Pearson Education Publishers, 2003. ISBN 978-0-201-17888-3 (в особенности раздел 5.1.5. Undocumented «features», p.54)
- Smith Sean W. Trusted computing platforms: design & applications. 2005, XX, 244 p. 28 illus., Hardcover. ISBN 978-0-387-23916-3 (в особенности раздел 3.4 Undocumented Functionality, p.35)
На русском языке
- Адаменко М. В. Секреты сотовых телефонов: сервисные коды мобильных телефонов; недокументированные возможности; изменение мелодии звонка; разблокировка телефонов. Изд. 2-е. М.: "ДМК Пресс, «СОЛОН-Пресс», 2002, 240 стр. — ISBN 5-98003-026-3, ISBN 5-94074-191-6
- Букин М. С. Секреты сотовых телефонов. СПб.: «Питер», 2005, 208 стр. — ISBN 5-469-00638-7
- Зыков Н. К. Недокументированные возможности Windows: Справочник для программиста-практика. М.: «Радио и связь», 1994, 176 стр. — ISBN 5-256-01212-6, ISBN 5-256-01212-6
- Кингслей-Хагис К. Недокументированные возможности GPS. СПб.: «Питер», 2007 г., 304 стр. — ISBN 978-5-469-01410-2
- Коберниченко А. В. Недокументированные возможности Windows NT. М.: «Нолидж», 287 стр. — ISBN 5-89251-048-4
- Свен Шрайбер. Недокументированные возможности Windows 2000. СПб., 2002 г., 544 стр. — ISBN 5-318-00487-3
- Фленов М.. Программирование в Delphi глазами хакера. Издательство: «БХВ-Петербург», 2007 г. ISBN 978-5-9775-0081-4