Недокументированные возможности

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Недокументи́рованные возмо́жности (англ. undocumented features), НДВ — возможности технических устройств и/или программного обеспечения, не отраженные в документации. Чаще всего недокументированные возможности сознательно закладываются разработчиками в целях тестирования, дальнейшего расширения функциональности, обеспечения совместимости или же в целях скрытого контроля за пользователем. Кроме того недокументированные возможности могут стать следствием побочных эффектов (чаще всего в переходных режимах или при переключении режимов), не учтенных разработчиками. От недокументированных возможностей следует отличать возможности системы, скрытые от конечного потребителя, но приведенные в официальной сервисной документации. Недокументированные возможности обнаруживаются, обычно, в процессе обратной разработки, но могут быть обнаружены и случайно. Частным случаем недокументированных возможностей являются недокументированные функции.

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

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

Недокументированные возможности в разных сферах[править | править вики-текст]

В машинах и механизмах[править | править вики-текст]

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

  • В швейных машинах сложного зигзага, выпущенных подольским заводом, конструктивная особенность реализации кулачково-копирного узла позволяла получать штриховую строчку, не предусмотренную конструкторами машины, при установке переключателя зигзага в промежуточное нерабочее положение. Данная возможность случайно была обнаружена одной из читательниц журнала «Работница», о чём она написала письмо в редакцию. После публикации в журнале этой заметки исследование недокументированных возможностей швейных машин и их применение стало регулярным.
  • В ряде модификаций токарного станка 16К20 в виду неописанных в документации особенностей реализации коробки передач появлялась возможность изготавливать резьбы с нестандартным шагом, что широко использовалось в годы СССР для изготовления самодельных замков и ключей к ним с нестандартной резьбой вместо секретного механизма.
  • Особенности конструкции главной передачи автомобиля «Запорожец» допускали в процессе сборки агрегата переворот коробки дифференциала с ведомой конической шестерней, что вызывало изменение направления вращения полуосей. Этим широко пользовались создатели самодельных автомобилей, применявшие ЗАЗовский силовой агрегат, установленный в передней части машины. Также эта особенность приводила к курьёзам, когда после ремонта автомобиля при включении передачи переднего хода он ехал назад.
  • Старые типы автоматических коробок передач имеют отдельный планетарный ряд повышающей передачи («овердрайв»), который управляется независимо от основного трёх- или четырёхступенчатого ряда. Хотя штатные системы управления АКПП включают овердрайв только в сочетании с прямой передачей в основном планетарном ряду, ничего не мешает использовать его и на других передачах, что фактически удваивает общее число передач в АКПП. Этой особенностью иногда пользуются производители автомобилей, например, вводя в управление АКПП дополнительную программу мягкого старта (что удобно зимой на скользкой дороге). Суть этой программы заключается в том, что овердрайв работает на всех передачах, снижая передаточное отношение и, следовательно, динамику автомобиля.
  • Кинематическая схема пятиступенчатой АКПП A750 фирмы Aisin такова, что она может реализовывать 7 передач переднего хода и 3 передачи заднего хода. Однако в этих дополнительных режимах нагрузка на фрикционы и тормоза слишком велика и производители автомобилей их не используют. Но любители тюнинга автомобилей пользуются этой возможностью. Позже фирма Aisin доработала конструкцию этой АКПП, реализовав в ней 6 передач переднего хода.

В механических фотоаппаратах[править | править вики-текст]

  • В фотоаппаратуре «Зенит» не было предусмотрено автоматических длительных выдержек. Однако особенности реализации механизма автоспуска приводили к тому, что при установке затвора в режим «В» автоспуск мог формировать длительные выдержки (до 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].

В компьютерных и электронных играх[править | править вики-текст]

На некоторых вариантах инженерных калькуляторов можно играть в игру Doom[3][4].

Недекларированные возможности (информационная безопасность)[править | править вики-текст]

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

Например, имеется утверждённый председателем Государственной технической комиссии[5] при Президенте руководящий документ[6], посвященный, в частности, классификации ПО средств защиты информации по уровню контроля отсутствия недекларированных возможностей, который определяет их следующим образом:

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

Преднамеренно внесённые в ПО функциональные объекты, обладающие такими возможностями, названы программными закладками. Эти термины использует и ГОСТ Р 51275-2006[7]. Иногда употребляется также сокращение «НДВ».

В литературе шире встречается близкое по смыслу, но менее определённое понятие уязвимость (перевод англ. vulnerability).

Программные закладки следует отличать от недекларированных возможностей, появившихся вследствие ошибок в программе (иногда называемых багами и «дырами»)[8].

Доктрина информационной безопасности РФ[9] среди угроз «безопасности информационных и телекоммуникационных средств и систем» называет также и «внедрение в аппаратные и программные изделия компонентов, реализующих функции, не предусмотренные документацией на эти изделия».

Примеры[править | править вики-текст]

Технические устройства и ПО[править | править вики-текст]

В качестве примеров недокументированных возможностей и команд могут быть приведены:

  • как правило, не документирующиеся специальные номера или комбинации клавиш сотовых телефонов, открывающие доступ к инженерным или диагностическим меню, получению дополнительной информации или использованию некоторых других возможностей[10] (например, команда мобильных телефонов *#06#, осуществляющая переход в меню отображения IMEI, а также, в зависимости от модели аппарата, различных аспектов его конфигурации);
  • команда перехода современных телевизоров и мониторов в инженерное меню — зажав несколько кнопок на пульте управления одновременно, оператор пульта попадает в исходно недоступное для пользователя пространство инженерного меню, в котором перемещается уже с помощью обычных команд пульта («вверх», «вниз», «влево», «вправо», «ok»)[11];
  • в ОС Windows к таким возможностям часто относят работу с реестром, файлами, некоторые возможности Windows API[12][13].

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Особенно актуально для программных библиотек, поскольку желательно, чтобы обновление их версий не приводило к необходимости доработки использующих их программы.
  2. Help
  3. DOOM запустили на … калькуляторе / Новости hardware / 3DNews — Daily Digital Digest
  4. DOOM на калькуляторе / Хабрахабр
  5. В 2004 году. преобразована в ФСТЭК России.
  6. Руководящий документ. Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей. Утверждено решением председателя Государственной технической комиссии при Президенте Российской Федерации от 4 июня 1999 г. № 114
  7. ГОСТ Р 51275-2006. «Защита информации. Объект информатизации. Факторы, воздействующие на информацию. Общие положения» (утв. приказом Федерального агентства по техническому регулированию и метрологии от 27 декабря 2006 г. N 374-ст).
  8. Подробнее об этом можно прочитать в разделе «Безопасность программного кода и отладка» статьи «Отладка», а также в статьях, входящих в категорию «Компьютерные ошибки».
  9. Доктрина информационной безопасности Российской Федерации
  10. Недокументированные возможности телефонов
  11. Описания инженерных меню некоторых мониторов.
  12. Свен Шрайбер «Недокументированные возможности Windows 2000». Спб, 2002
  13. Секреты 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

Ссылки[править | править вики-текст]