Помните, малазийским самолёт летавший беспорядочно над океаном без признаков жизни на борту? Тогда во всем обвинили пилота. Вскоре, странная катастрофа произошла с иранским пассажирским самолетом, потерявшем при посадке связь. Тогда, в facebook'e к публикации в РИА с подробностями катастрофы, в частности, об отсутствии связи, я высказала мнение о возможной причине катастрофы – КОНФЛИКТ ПРЕРЫВАНИЙ, когда на одном порту компьютера могут оказаться две работающие программы (странность катастроф меня тогда удивила). И тут, через несколько дней вдруг в официальных сообщениях "случилась" ракета, сбившая этот самолет. Примечательно, что до этого никто ни в каких публикациях ракету не отмечал и в густонаселенном районе аэропорта не видел (помню видео очевидца, снявшего момент катастрофы из-за домов). Сейчас я хочу разобраться в этой проблеме конкретнее, а для этого надо освежить имеющиеся знания или приобрести новые.
Поясню. Прерывания – необходимая функция работы вычислительной системы, с помощью которой «могут производиться разнообразные действия и запускаться разного рода программы, но когда все заканчивается, компьютер должен вернуться точно в то же состояние, в котором он находился до прерывания.»
То есть, при огромном количестве программ находящихся в системе, происходит некая их очередность при кажущихся (незаметных для человека) одновременных действиях. |
Скорость процессов блокировки одних программ для того, чтобы запускались другие программы, по одним данным составляет 20000 прерываний в секунду.
Для полноты понимания проблемы и для авторитетной поддержки моих утверждений буду использовать выдержки из труда Э.Таненбаума и Т.Остина «Архитектура компьютера» (6-ое изд.), «Современные операционные системы» Э.Таненбаума (3-е издание), которые помогут объяснить, каким образом можно изолировать объект от внешнего мира и, более того, получить управление им.
Всем известно, что пилот самолёта имеет связь с внешним миром только через переговорное устройство с диспетчером. Подключение постороннего на тот же порт, через который происходит соединение экипажа с диспетчером, может привести к полной потере связи самолёта и, как следствие, к катастрофическим последствиям. И такое, к сожалению, действительно может произойти, когда нарушается порядок работы прерываний в потоке управления вызванный внедренной сторонней программой.
Если точнее, конфликта прерываний между аудиосистемой самолёта и каким-то другим устройством. |
Самолёт при посадке потерял связь с диспетчером и рухнул – очевидно, вынужден был садиться без глиссады, визуально выводящей на посадку.
Итак, предположим, что некое устройство подключилось к системе ввода-вывода компьютера самолета и посредством своей программы получило доступ к управлению самолетом. Для общения в режиме передачи звуковых сообщений и получения видеоизображения на мониторе самолёта, используются одни и те же пакеты – MPEG , поступающие с антенны аэропорта. Сразу возникает вариант отключения непосредственно антенны аэропорта.
Антенна – это такое же устройство ввода-вывода, действующее соответственно командам системы, но только уже аэропорта. Но тогда бы потерялась связь со всеми самолётами - и летящих, и взлетающих. Не знаю, было ли это в тот момент, но то, что диспетчеры говорили о потере связи, восстановлении и повторной потере перед катастрофой, это я помню.
Для понимания того, как могло это произойти, надо понять механизм возникновения такой ситуации. А именно:
Иначе говоря, исходная программа отстраняется и начинает действовать другая, на которую уже никак нельзя повлиять. |
Но как чужеродная программа могла оказаться на устройстве и в системе самолета?
Действия аппаратного обеспечения:
Дальнейшие действия выполняются программно:
«Когда процессор хочет обратиться к устройству, он отправляет пакет по сети компьютера, которая на данный момент соответствует Ethernet (популярная технология локальных сетей). В исходном варианте использовавшая широковещательный канал. В наши дни используется на одноранговых взаимодействиях шины компьютера, основное предназначение которой – использование общих ресурсов разного типа.»
Слабое место системы самолёта, если учесть что устройство USB, соединяющее наушники с системой самолёта, не использует прерывания – открыт постоянный поток запросов на соединение, а шины, соединяющие контролёры устройств с памятью, используют локальную сеть Ethernet, с которой с самого начала тесно связан Интернет. |
Перехват исключений — это особый тип вызова процедур, который происходит при определенных условиях. Один из примеров такого условия — переполнение. Интересен сам процесс при котором происходит взламывание при переполнении:
Важно то, что исключения могут вызываться программно, а перехватываются они аппаратно или на микропрограммном уровне. |
К наиболее распространенным условиям, которые могут вызывать исключения, относятся:
Многим известны атаки на сервер, когда из-за огромного числа пакетов отправленных на определенный адрес, невозможно получить доступ по этому адресу. Выход из такой ситуации в том, что необходимо ограничить число работающих процессов (программ,а не пользователей) и выставить правильно приоритеты:
«Если программа обработки прерывания выполняется с приоритетом n, любая попытка обработать прерывание от другого устройства с более низким приоритетом будет игнорироваться, пока программа обработки прерывания не завершится и центральный процессор не начнет выполнение программы более низкого приоритета. В то же время прерывания от устройств с более высоким приоритетом должны обрабатываться без задержек.»
И всё же, что могло произойти в системе связи самолёта?
Исключения не сработали? Или сам метод исключения был использован для перехвата управления умышленно?
«Прерывания являются не чем иным, как суровой необходимостью. Они должны быть спрятаны как можно глубже в недрах операционной системы, чтобы о них было известно как можно меньшей части этой системы. Лучший способ их спрятать — это заблокировать тот драйвер, который начал операцию ввода-вывода, до тех пор пока не будет завершен ввод-вывод и не будет получено прерывание» |
То есть, идя отпротивного, исключения можно использовать для того, чтобы заблокировать драйвер определенного устройства.
Когда речь идет о достаточно большой и разветвленной сети, то подразумевается наличие управляющего сервера, под нужды которого выделяется мощный компьютер. В нашем случае, традиционно называемые мэйнфреймами.
У них большая скорость выполнения огромного количества мелких операций, транзакций, что устраивает такие структуры как, например, банковские структуры или авиакомпании.
«Обычно они работают не намного быстрее, чем мощные серверы, но у них выше скорость процессов ввода-вывода и они часто оснащаются огромными дисковыми массивами, в которых хранятся многие тысячи гигабайт информации. Такие системы обходятся дорого, но часто продолжают работать из-за значительных вложений в программное обеспечение, данные и персонал, обслуживающий эти компьютеры. Многие компании считают, что дешевле заплатить несколько миллионов долларов один раз за такую систему, чем даже думать о необходимости заново переписывать все приложения для меньших компьютеров. Именно этот класс компьютеров привел к проблеме 2000 года.» Проблема была решена путем внесения изменения даты на 9999 год.
И тут возникает вопрос. А только ли это изменение было внесено? «К сожалению, ограждение системы от входа в нее нежелательных пользователей — лишь одна из многих существующих проблем безопасности. Совершенно иная категория проблем – выполняемая программистами создающими важные компоненты программного обеспечения. Эти атаки отличаются от внешних, поскольку свои специалисты (инсайдеры — insiders) обладают специализированными знаниями и доступом, которых нет у посторонних лиц (аутсайдеров — outsiders).
У каждого из них есть свои особенности, обусловленные тем, кто атакует, против кого направлена эта атака и чего атакующий пытается добиться.»
«Такая бомба представляет собой фрагмент программного кода, тайно внедренный в производственную систему. Пока программист ежедневно вводит в нее свой пароль, ничего не происходит. Но если программист будет внезапно уволен и физически изгнан из производственного помещения, то на следующий день (или на следующей неделе) логическая бомба останется без своего ежедневно вводимого пароля и «взорвется». Возможны и другие вариации на ту же тему. В одном из известных случаев логическая бомба проверяла платежную ведомость. Если персональный номер программиста не появлялся в ней в течение двух последовательных периодов выплат, бомба «взрывалась» (Spafford et al., 1989).
Так называемый «взрыв» может заключаться в очистке диска, стирании файлов в случайном порядке, внесении малозаметных изменений в ключевые программы или в зашифровке важных файлов.
Зачастую такие бомбы настроены на «взрыв» в какой-нибудь политически важный день. Иногда их называют бомбами с часовым механизмом (time bombs.)» |
«Другими прорехами безопасности, устраиваемыми инсайдерами, являются лазейки (trap door) [Также их называют «потайными дверьми» и «черными ходами». — Примеч. ред.]Они создаются системным программистом путем внедрения в систему, программистом, работающим на производителя компьютеров, а затем был поставлен вместе с произведенными им компьютерами. После этого программист сможет войти в систему любого изготовленного этой компанией компьютера, независимо от того, кем будет его владелец или каким будет содержимое файла паролей. То же самое касается программиста, работающего на производителя операционной системы. Лазейка просто позволяет обойти весь процесс аутентификации.»
Код с добавленной строкой, позволяющей войти без пароля
Ещё добавим «атаки, проводимые посредством сканирования портов, подключенных к Интернету и осуществляющих удаленное подключение.»
В отличии от центрального процессора шина USB не поддерживает прерывания. При присоединении к хабу устройству присваивается один из адресов (от 1-127).
Шина USB поддерживает:
Для рассмотрения случая с самолётом последнее положение требует особого внимания. Дело в том, что сторонняя программа может выдать себя, например, за принтер, у которого нет жёстких рамок работы в условиях реального времени. Возникает конфликт прерываний, когда на одном порту работают два устройства. Система передачи звука изначально имеет канал входа и выхода, откуда пакеты данных могут посылаться в обоих направлениях. Образовывается брешь в системе.
Возможно построение и более сложных схем.Например, один популярный режим предусматривает квотирование связи с внешними устройствами. Например, чтобы передать данные устройству, микросхема 8255A может передать данные в порт вывода и подождать, пока устройство не выдаст сигнал о приеме.»
Отметим также, что в стандарте USB было предусмотрено три интерфейса UHCI, OHCI и EHCI. «Интерфейс UHCI (Universal Host Controller Interface — универсальный интерфейс хост-контроллера) разработала компания Intel, переложив большую часть забот на программистов (читай — на Microsoft). Программисты вернули должок и выпустили интерфейс OHCI (Open Host Controller Interface — открытый интерфейс хост-контроллера), взвалив основную работу на разработчиков аппаратуры (читай — Intel).» Стандарт EHCI привел их к разумному паритету.
Из рассмотренных выше широких возможностей разработки аппаратуры с любой начинкой, можно сделать вывод, что в стандарте USB можно создать устройства для вполне определенных задач, о которых не будет догадываться пользователь. Драйвер контролёра устройства работающий в системе, совершенно не знает, что делается в самом устройстве. |
К примеру, наушники с заданными кем-то исходными для доступа к системе, «связать с компьютером, используя параллельные интерфейсы ввода-вывода. Эти микросхемы по желанию можно сделать частью пространства ввода-вывода или частью пространства памяти. При обращениях к микросхеме может использоваться полное или частичное декодирование адреса в зависимости от того, какие задачи решает компьютер.»
Для полноты общей картины добавим навигационную систему, имеющую прямой выход на космический(е) аппарат(ы).
Далее следует изоляция самолета от внешнего мира и переход полного управления к взломщикам, и если они имеют доступ к какому-то спутнику (а они его имеют), самолет просто обречен ... если слепо доверять тому, что подсовывают "благожелатели".
Драйвер USB работающий в системе совсем ничего не знает о том, что происходит в самом устройстве, в котором в определенное время можно запустить программу и выйти через него на любое внешнее устройство или сервер с базой данных с объектами (файлами). Объектом с его свойствами (паспортными данными) и совершенными или еще не совершенными действиями может быть любой человек, животное, неодушивленный предмет, литературный персонаж, сказочный герой, звезды, планеты, страны, президенты и так далее...
На хранящийся объект(файл) могут быть выведены(связаны с другими файлами) посредством ссылок на другие объекты(файлы со свойствами исходного объекта). Создаются массивы объктов, из связанных между собой ссылками объектами. Объект существует до тех пор пока на него есть ссылки.
Важной особенностью технологии Java, в рамках которой исполнение программы полностью контролируется виртуальной машиной, является то, что любые операции, которые превышают установленные полномочия программы (попытка несанкционированного доступа к данным, соединение с другим компьютером, также и через уже задействованный порт выхода или исчезновение всех ссылок на определенный объект), вызывают немедленное прерывание. Где-то здесь может сработать "логическая бомба".
(Если, например (например),предположить, что в программе имеется объект, который в свойствах имеет такие параметры, как: Москва (М), самолет, 17, 62, 29, 33, Екатерина, 3, 6, 7, 9, 1672,21. 24. 1741, Елизавета, 52, Антихрист, Петр Первый, Голландия, Полтава, ад, мертвые души и так далее, то самолета с параметрами, например, М17 – рейс, в номере и в количестве пассажиров которого есть сочетание вышеприведенных чисел и имен пассажиров, то такой самолёт в системе отсутствия безвизового пространства существовать не должен, тогда убираются все ссылки на данные, происходят прерывания. Объектов больше нет. Дальше идет уводящая от прерывания цепочка действий других объектов применительно к данной ситуации в данном месте. «Модифицировать хранимую процедуру в соответствии с новыми правилами можно в любой момент. После этого все приложения, использующие её, автоматически придут в соответствие с новыми бизнес-правилами без непосредственной модификации.»
Кстати, об этом должны знать или хотя-бы догадываться специалисты (что странно: специалист и не знает!). Значит проблема замалчивается. Почему?
Думаю (уверена), что на объектно-ориентированном программировании построено само понятие "геополитическая система" и понятие многополярности систем. У каждого полюса есть свой такой, так сказать, "мейнфрейм". Но суть в том, что у них один корень(!), и объектом, в свою очередь, является сама компьютерная система с точкой отсчета в 1970 году со своими свойствами и отражениями на другие объекты (виртуальная файловая система)... И каждый такой "мейнфрейм" борется за полезные для него объекты, меняя свойства других объектов или уничтожая их. Скажете, что это бред? Ну, то что я сейчас излагаю... А вы попробуйте просчитать в уме и на пальцах многоходовку в политических играх или в разведке со всеми причинно-следственными связями, чтобы в политике получить выгоду, а в разведке избежать жертв!..
Продолжу ...
К чему я это говорю? А к тому, что у нас это тоже замалчивается. Развалили промышленность и сельское хозяйство... в общем, всё. Сидят на импорте почти всего. Даже заикнуться об этой проблеме бояться. Устроили из страны большой "детский конструктор" (made in Pentagon). И ради чего? Понятное дело – ради своего благополучия и спокойствия. И ежу было понятно, что целью уничтожения промышленности являлось уничтожение рабочего класса. И что? Уничтожили... Сильно старались... Перестарались.... С перепугу, что те отберут свое. Работать уже некому даже на том, что осталось. Отвергли учения классиков, живут в подогнанной под свои нужды "экономической науке", которой очень подходит название – "как бог на душу положит" или "система" всё решит, если ее, конечно, подогнать под заданный результ, насильственно меняя свойства исходного объекта. Но дело в том, что меняются свойства и других сопряженных объктов и, кстати, в параллельной(!) "глобальной системе" тоже, только на зеркальное отражение. Скоро по миру пойдут, убогие наши. Нагадили в стране...летать опасно, жить окруженными устройствами с неизвестной начинкой тоже опасно... Компьютерные системы тоже со скрытой опасностью... Ничего своего в стране нет! Безопасность страны на нуле, включая и продовольственную. Опасно стало жить в том, о чем они же и говорили, — мол, промышленность не нужна, а что нужно, то купим.... Из Великой страны сотворили такое безобразие!!! И постоянно присутствующий вопрос на фоне нависшего "медного таза",– "Они действительно такие бестолковые или только прикидываются?"
11 мая 2023 года