_ _:. :$$$$$ _ . - +. :l$││$$ s┐┐,,_ +:@QSSS$$$$$ `` $$$$$$$$bs┐.`"┘?$$$l [ elbrus trip ] '└└?$$│$$$$b┐_ . [ xblp ] `"└$│$b. . [ cuctema@ok.ru ] `└?b. `. `┘. + `$ _. ` "К эксплуатации ВК-15 могут быть допущены лица, знакомые с эксплуатацией вычислительных комплексов общего назначения и прошедшие курс соответствующей подготовки для эксплуатации данного ВК..." Из Руководства по эксплуатации вычислительного комплекса "Эльбрус-90микро"..." "Путеводитель по высочайшим вершинам мира. Эльбрус." Историческая справка: В 1973-1979 гг. создан десятипроцессорный компьютер <Эльбрус-1>; В 1977-1984 гг. - <Эльбрус-2>, использующийся в системе ПРО второго поколения, ЦУПе, Арзамасе-16 и Челябинске-70. В 1985-1994 гг. разработан 16-процессорный <Эльбрус-3>, превосходящий по производительности лучший в то время западный суперкомпьютер GRAY - YMP. В 1986 году вышло постановление правительства о создании вычислительного комплекса <Эльбрус-90 микро>. Обязательным условием ставилось использование в новой разработке только отечественных решений, элементной базы, математики. Все эти задачи возлагались на оборонную промышленность СССР, а разработка микропроцессора <Электроника Эль-90> Было предложено взять за основу простую западную SPARC-архитектуру и на ее основе создать вычислительный комплекс и необходимые стыковочные узлы для него, но при этом переработать схемотехнику и математику, исключить возможность любых закладок и прочее" Весной 2001 года в Вооруженных Силах РФ принят к использованию новый вычислительный комплекс <Эльбрус-90 микро>. Некоторые, известные и доступные широкой общественности факты об этом "таинственном" комплексе: - вычислительная машина использует разработанный в "МЦСТ" SPARC-совместимый процессор с тактовой частотой 150 мегагерц на 0.5- и 0.35- микронной технологии (Intel сейчас выпускает процессоры на основе технологического процесса с проектной нормой 0.13 микрон); - в конце февраля 2004 г. в ЗАО " МЦСТ " завершены разработка и изготовление опытных образцов первого отечественного универсального микропроцессора "МЦСТ R-500", построенного по технологии 0,13 мкм,функционирующего на частоте 450 -500 МГц; - В стратегических системах эксплуатируются вычислительные комплексы Эльбрус-1 и Эльбрус-2, надежность, или наработка на отказ, их центральных процессоров равна нескольким сотням часов. Комплекс,установленный на знаменитых системах ПВО С-300, имеет наработку несколько десятков часов. Эльбрус-90 Микро на гос испытаниях показал надежность более 9.000 часов; - Все прикладное программное обеспечение, которое наработано в мире в среде *nix, может применяться на нем,что максимально облегчит работу программистов по разработке боевых программ. Теперь как говорится,перейдем от общего к частному,или что наверняка привычнее вам, от открытого к закрытому. Основные сведения о вычислительном комплексе "Эльбрус-90микро": Вычислительный комплекс ВК15 является высокопроизводительной многопроцессорной вычислительной системой, разработанной специально для функционирования в среде ОС UNIX, обеспечивающей многопользовательский, многозадачный режим вычислений. Аппаратура ВК-15 имеет сетевое оборудование для высокоскоростных обменов с другими ВК аналогичного типа или с другими вычислительными комплексами и ЭВМ, а также ряд интерфейсов параллельного и последовательного типа. Комплекс ВК-15 предназначен для использования в стационарных многоуровневых системах управления и обработки информации, а также в качестве рабочих станций в вычислительных сетях. Основные технические характеристики ВК-15: - количество процессоров - 2; - тактовая частота процессоров - 200 МГц; - оперативная память - 256 Мбайт; - внутри процессорная Кэш-память - 64 Кбайт; - процессор MCPU имеет внешнюю КЭШ память - не менее 512 Кбайт; - темп обмена с абонентами (одной SBus-шины), - не менее 100 Мбайт/с; Параметры надежности ВК-15: - Средняя наработка на отказ ВК-15 - 9000 ч; - Срок службы ВК-15 - 12 лет; - Срок хранения ВК-15 - 5 лет. Краткие сведения об общем программном обеспечении ВК-15: а) программное обеспечение состоящее из: 1) операционной системы SunOS 5.5.1 и графической оболочки OpenWindows, составляющие операционную среду Solaris 2.5.1 и обеспечивающую: - управление процессами; - управление памятью; - управление файлами. 2) инструментальной среды разработки функциональных программ; 3) средств организации систем реального времени (СОСРВ), обеспечивающих: - управление драйверами; - монополизация ресурсов; - рестарт системы. Функции СОСРВ используют процедуры ядра операционной системы SunOS и свои собственные средства. Функции СОСРВ - это интерфейс между системами реального времени (СРВ), ядром операционной системы SunOS и процедурами СОСРВ, работающими в режиме ядра. 4) системы тестовых и диагностических программ (СТДП), состоящую из: - SunDiag - системы для проверки центральной части ВК-15; - СТДП-ДРВ системы для проверки специализированных устройств (драйверов) б) программную документацию, состоящую из: - средств организации систем реального времени - системы тестовых и диагностических программ - средств испытания. в) эксплуатационную документацию, состоящую из: - операционной системы SunOS: "Руководство системного программиста"; "Руководство программиста"; "Руководство оператора"; - системы программирования Си: "Руководство программиста". - средств организации систем реального времени: "Руководство программиста"; - системы тестовых и диагностических программ: "Руководство оператора"; - средств испытаний: "Руководство оператора"; - программы подсчета контрольных сумм: "Руководство оператора"; "Руководство оператора". г) руководства по средствам защиты информации: - Руководство пользователя по средствам защиты информации; - Руководство пользователя по комплексу средств защиты от несанкционированного доступа; - Руководство администратора по конфигурированию и проверке работоспособности средств защиты информации от несанкционированного доступа; - Руководство администратора по средствам защиты информации от несанкциониров. доступа. ВК-15 используется устройство вычислителя системного УВС-20И. Оно разработано для оптимального выполнения задач в сетевых средах ОС Solaris и разработанной опять же в России защищенной операционной системы на базе Linux - Мобильной Системы Вооруженных Сил (МСВС). Устройство УВС-20И в ВК-15 использует два однопроцессорных модуля MCPU с RISC-архитектурой. Подключение контроллеров внешних интерфейсов (КВИ) осуществляется с использованием шины ввода/вывода SBus. Использование стандартного интерфейса шины SBus позволяет подключить широкую номенклатуру стандартных интерфейсов (десятки типов ячеек SBus), производимых различными фирмами. Среди большого разнообразия карт расширения для дополнительных интерфейсов следует отметить следующие: Fast Ethernet, Differential Fast/Wide SCSI-2, Token Ring, FDDI, SCI, PCMCIA, VME. Контролеры внешних интерфейсов реализованы с использованием базового микроконтроллера(БМИК),являющегося основным вычислительным средством модулей канальных ячеек. БМИК состоит из следующих узлов: МП - микропроцессор S80C186EC - 13; ПЗУ - программируемая постоянная память 64Кx16 слов; УМП - управление микропроцессором; АВИ - адаптер внешнего интерфейса; РОБ - регистр общего назначения; УПДМ - устройство прямого доступа к БОЗУ; ПОШМ - порт общей шины модуля КБОЗУ - контроллер БОЗУ; БОЗУ - буферная память 4 x 32К x 32 слов. Взаимодействие этих узлов обеспечивается следующими связями: SBus - системная шина; BB - 36-разрядная внутренняя шина; BV - внутренняя шина данных (18 разрядная); AD - 19 разрядная шина микропроцессора; AP - 16 разрядная шина ППЗУ; AU - адрес от УПДМ; AB - адрес БОЗУ и РОБ; НВУ - номер внешнего устройства. В состав БМИК входит ПЗУ, в котором хранятся программы для работы микропроцессора и F-кодов. Чтение F-кодов из ПЗУ происходит после сигнала обнуления БМИК от устройства УВС-20И. При этом микропроцессор переходит в состояние ожидания. По окончанию этой операции устройство устанавливает триггер сброса модуля в регистре РОБ в 1, и вырабатывается сигнал сброс модуля /SBRM = 0. Поэтому сигналу микропроцессор выходит из состояния ожидания, и вся схема переходит в рабочее состояние. Основными функциями БМИК являются: - получение и обработка заявок на обмен с абонентами; - запуск обмена; - выполнение обмена; - завершение обмена; - формирование результатов обмена. Получение и обработка заявок реализуется с помощью специальной области в БОЗУ (БУСО) и регистра РОБ. В УСО указывается тип и параметры обмена. При запуске обмена микропроцессор инициализирует область БОЗУ, записывая, управляющие адресные слова и количество блоков обмена по каждому абоненту, после чего настраивает регистры канала на начало обмена.Формирование результатов в обмене может быть реализовано двумя способами: а) микропроцессор записывает дескриптор результата DR в отведенное место в БОЗУ и устанавливает в РОБ триггер прерывания системной шины (ТПШ). Устройство считывает DR и сбрасывает триггер прерывания.Канальная программа микропроцес сора по ТПШ = 0 определяет завершение обмена. б) Дескриптор результата записывается в буфер микропроцессора в БОЗУ, и вызывается режим DRQ0. В режиме задатчика устройство считывает DR. Описание работы узла управления микропроцессора Узел управления микропроцессора(УМП) входит в состав базового микроконтроллера (БМИК). Основными режимами работы УМП являются: а) управление обменами со стороны микропроцессора; б) арбитраж шины BV между АВИ и микропроцессором; в) управление передачей информации между шинами AD и BV; г) формирование и контроль четности информации, проходящей по шине BV. Управление обменами со стороны микропроцессора Микропроцессор обменивается информацией со следующими устройствами: ПЗУ - память 64Kx16p слов для хранения отлаженных программ и FCodes; БОЗУ - буферная память 32Kx32p слов, управляемая контроллером БОЗУ (КБОЗУ); АВИ - адаптер внешнего интерфейса; РОБ - регистры общего назначения. Этим устройствам соответствуют следующие адреса,считываемые из микропроцессора по шине AD: AD 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ПЗУ 1 1 X БОЗУ 0 1 X БОЗУ 0 0 X 0 РОБ 0 0 X 1 АВИ 1 0 X ПЗУ реализуется на микросхеме ППЗУ с организацией 64К х 16. Обмен с ПЗУ выполняется за 8 тактов GCLK. Адрес от микропроцессора с шины AD при наличии сигнала ALE записывается в регистр адреса УМП и КБОЗУ. Адрес подается на вход ПЗУ и стоит в течение всего цикла обмена. УМП вырабатывает сигнал /CSP = 0, и при получении сигнала /RD = 0 формируется сигнал чтения ПЗУ /OEP = 0. Работа БМИК возможна в отсутствии микросхемы ППЗУ. В данном случае под информацию, которая должна хранится в ППЗУ, отводится область в БОЗУ, а в ячейке снимается перемычка с сигнала PZU = 1. В данном случае при обращении микропроцессора в ПЗУ узел УМП формирует такие же сигналы, что и в режиме обмена микропроцессора с БОЗУ. Ячейка быстрого канала МБКБО.Ячейка МБКБО предназначена для связи устройств по волоконно-оптическому кабелю на расстояниях до 500 метров по типу "канал-канал" и "канал-абонент". Для формирования последовательного кода (кода в линии) ячейка использует производимый фирмой HP (HEWLETT PACKARD) комплект БИС мультиплексора/демультиплексора HDMP-1022, HDMP-1024 интерфейса Serial HIPPI ANSI. В МБКБО реализованы дуплексный и полудуплексный режимы работы. По оптическому каналу передаются управляющая информация и массивы данных. Размер массива данных кратен передаваемому блоку данных. Размер блока программируется и может быть равен 4,8,16 -32 разрядных слов. Все МБКБО адреса являются базированными адресами SBus слота. Адрес базы можно получить в SBus host документации. Ниже приведены адреса регистров прямого доступа к памяти, управляющих регистров и ПЗУ. Адресация и содержимое программируемых регистров МБКБО: 0х0001 0008 регистр адреса DMA обмена передатчика 0х0001 0010 регистр адреса DMA обмена приемника 0х0001 0018 не используется. Регистр маски 0х0001 0020 регистр дескриптора МБКБО передатчика 0х0001 0030 не используется. Регистр прерываний 0х0001 0038 регистр дескриптора МБКБО приемника 0х0001 0040 Команда - Обнулить ячейку МБКБО 0х0001 0048 Команда - Обнулить удаленную ячейку МБКБО 0х0001 0050 не используется. счетчик блоков DMA приемника 0х0001 0060 не используется. счетчик блоков DMA передатчика 0х0001 0070 Команда - СВБК_ОШИБКА 0х0001 0078 Команда - Обнулить FIFO Архитектура Эльбрус занимает по отношению к другим существующим архитектурам приблизительно такое же положение как язык высокого уровня к языку ассемблера. Практика разработки трёх поколений машин с архитектурой Эльбрус показала, что в этих условиях правильным подходом является следующий: Архитектура поддерживает реализацию в аппаратуре базовых типов (с обязательным включением всех адресных типов), типовой контроль и формирование контекста с помощью ссылок. Важный вопрос поддержки языков С и С++ требует обсуждения ещё одной проблемы. Дело в том, что, эти языки в своей основе были разработаны, базируясь на общих принципах программирования высокого уровня, опираясь на введения типов данных. Однако при реализации,в угоду эффективности,допускались отклонения от этих принципов.Например,разрешение присвоения целых в переменные типа указатель.В целом это приводит к тому, что программы, написанные на этих языках, по своей семантике нарушают защиту.В Эльбрусе кроме защищённого режима и режима полной двоичной совместимости с х86, любую программу с языков можно откомпилировать и исполнить в незащищённом режиме. Этот режим обеспечивает наибольшую производительность. Подход Эльбруса заключается в том, что ссылки не выбрасываются из языка подобно языку Java, но, напротив, работа с ними делается эффективной и не требующей статического контроля благодаря аппаратной поддержке. В этом случае нет необходимости как-либо ограничивать язык, и даже ассемблер такой машины не нарушает защищённости, подобно самым строгим языкам высокого уровня. Одним из наиболее существенных отличий Эльбруса от традиционных систем является введение дополнительных разрядов в памяти, которые описывают тип информации, хранящейся в каждом слове: ТЕГ - число битов Для защиты данных от внешнего воздействия,защиты памяти, достаточно специально кодировать только ссылки и быть может ещё несколько специальных типов данных. Более детальная кодировка других типов помогает в диагностике ошибок внутри модуля, что так же часто оказывается полезным. ТЕГ - хранение в памяти Для хранения тегов используются ЕСС биты (биты контроля и коррекции аппаратных ошибок). При этом мощность корректирующих возможностей не сокращается, просто увеличивается объём битов, охватываемых одним ЕСС кодом, и освободившиеся в результате кодовые комбинации используются для хранения тегов. В отличие от существующих систем, в Эльбрусе, при обращении пользовательской программы к файлу с использованием ссылки, система не должна проверять специальных санкций от владельца файла для разрешения доступа. Проверяются только права доступа, указанные в ссылке. Если пользовательская программа имеет эту ссылку в своём контексте, то тем самым доступ ей гарантирован. Это следствие самого фундаментального подхода, общего для виртуальной памяти и для файлов, так как все ссылки находятся под контролем системы, и никакой пользователь не может создать или произвольно модифицировать ссылку. Про существующие системы можно сказать, что у всех исполняемых файлов, расположенных на данной машине, один и тот же внешний контекст файлов - это корень системы файлов данной машины. В каждом же файле перечислены пользователи, которым разрешён доступ к нему. В Эльбрусе же наоборот, корня системы не существует вообще(точнее он не доступен пользователям),но в каждом исполняемом файле кода перечислены ссылки, по которым только этот код может обращаться к внешнему окружению файлов. Существующие системы можно назвать root centric, а систему Эльбрус - file centric. Таким образом, файловая система Эльбрус представляет собой не традиционную древовидную, а сетевую структуру. Эльбрусы обладают высочайшим уровнем стабильности и надежности. Во-первых, работающая программа имеет доступ ко всем нужным и только к нужным данным. В системе право доступа передаются вместе с данными. Разработчик программы, специфицируя её внешнее окружение, тем самым обеспечивает ей доступ к этим и только этим данным. Запускающая программа передаёт ей параметры и вместе с ними права доступа к ним и только к ним. Во-вторых, надёжность этих ограничений обеспечивается правильным функционированием весьма ограниченного объёма программ реализующих работу ссылки и контекста. В-третьих, реализация самой ОС в описанной защищённой системе с высокими отладочными возможностями ещё больше повышает уверенность в том, что в этих программах удастся значительно сократить количество ошибок. Рассматриваемая система не требует от программиста ни каких усилий для обеспечения защищённости. В руководствах Эльбруса нет ни одного слова о защите и защищённости, несмотря на то, что система обеспечивает предельно совершенную защиту. С точки зрения языка или скорее интерфейса ОС, основными изменениями в системе Эльбрус являются введение типа данных - ссылки на файл вместо использования для этой цели символьной строки,а так же объявление и определение внешних имён программы (внешний контекст). Система обеспечивает защищённость, несмотря на любые ошибки или злонамеренные действия в пользовательских программах. Это свойство должно базироваться на требовании высокой отлаженности как можно меньшей её части. Тем ядром,которое должно быть хорошо отлажено, являются программы, реализующие понятие ссылки и контекста, как в памяти, так и в системе файлов, и работу с ними. Это не такой уж большой объём программ. В этом предположении рассмотрим работу системы Эльбрус. Предположим, что любая вредоносная программа (вирус/эксплоит) оказалась запущенной в системе Эльбрус. При правильной работе механизма ссылок и контекста, этой программе не будет передан какой-либо локальный контекст. Эта программа будет иметь доступ лишь к своим параметрам, если программа была запущена легально, и к системным процедурам. Задача вредоносного кода нанести вред и/или размножиться. Программа не может без использования ссылок добраться до чужих ячеек памяти или до файлов, и тем самым нанести вред или размножиться. Она может попытаться это выполнить либо через параметры, либо через системные вызовы. Параметры. Параметры могут содержать ссылку в памяти и в файлах. Если это ссылка в памяти или файлах на данные, то даже если эта ссылка разрешает модификацию, это может классифицироваться лишь как ошибка, но не как злонамеренные действия. Будут испорчены результаты работы данной программы, которые в дальнейшем будут использоваться внутренними программами, что, скорее всего, приведёт рано или поздно к аварийной сигнализации. Не видно, как в руки эксплоита может попасть ссылка, разрешающая доступ к закрытой от неё информации. И уж, во всяком случае, отсутствуют возможности размножения. Если это ссылка в памяти или файлах на исполняемую функцию, то вредный эффект может заключаться в том, что эта функция поставит в качестве своего значения опасную ссылку. Вероятность этого исчезающе мала, так как этот параметр был явно передан <сомнительной> программе. Всё это делает вероятность реального размножения близкой к нулю. При таких вероятностях труд создателей вирусов становится совершенно не эффективным и ни кто не станет им заниматься. Системные вызовы. Обращаясь к системе, злоумышленник может надеяться, что, правильно подобрав параметры и используя ошибки в системных программах, удастся получить, в качестве возвращаемого значения, нужную ссылку. Вероятность этого так же крайне мала, так как, во-первых, вся система, написанная в системе Эльбрус, имеет значительно более высокую степень отлаженности. Во-вторых, каждая системная процедура работает в резко ограниченном контексте, с малой вероятностью содержащем <полезные> для вредоносного кода ссылки, так что при любых ошибках в ней такая процедура не сможет быть <полезной>. Конечно, и в этой системе существует зависимость от фактических ошибок в системе, и нет 100% гарантии защиты от хакеров. Однако для того, чтобы работа по созданию вирусов и написанию эксплоитов стала бессмысленной, и ею прекратили бы заниматься, нет строгой необходимости свести эту вероятность к нулю. Достаточно, чтобы она был значительно уменьшена. В системе Эльбрус драматическое сокращение вероятности достигается, по крайней мере, по двум причинам. Во-первых, ввиду большей отлаженности системы, хакеру гораздо труднее добиться запуска вредоносного кода. Во-вторых, ликвидируется огромная <дыра>, когда считанной их сети программе обеспечивается доступ ко всем файлам пользователя. Тем самым, если даже программа оказалась запущенной, на что ушли все <творческие> силы создателя вирусов, то теперь в системе Эльбрус ему ещё надо, используя ещё какие то ошибки системы, добиться доступа к чувствительным файлам, что при более отлаженной системе ещё более трудно сделать. Безусловно, можно говорить о драматическом сокращении вероятности <успеха> компрометации системы и, тем самым, о высоком уровне обеспечения информационной безопасности на системном уровне. Загорелись ? Захотели ? Остыньте... Минимальный комплекс поставки Эльбруса стоит порядка 3000$ и к тому же вы очень наивны, думая, что система, которая разрабатывалась для использования в закрытых сетях Министерства Обороны РФ и Министерства Внутренних Дел РФ будет доступна обычному смертному. Впрочем, можете меня ударить, обычные смертные не читают подобные документы... Эпилог: "Утилизация ВК-15 и его составных частей производится в соответствии с порядком, установленным для изделий, содержащих драгоценные металлы. ВК-15 не содержит в своем составе элементов, вредных для здоровья персонала. Металлические узлы и детали ВК-15 (корпуса, крышки, направляющие и т.д.) должны быть рассортированы по принадлежности к конкретным группам металлов и направлены на переплавку. Все элементы ВК-15, не принадлежащие к категориям драгоценных металлов или просто металлов (платы печатного монтажа без навесных элементов, радиодетали малой ценности и с короткими выводами), собираются на сборных пунктах и вывозятся на свалки..." Из Руководства по эксплуатации вычислительного комплекса "Эльбрус-90микро" ... Источники: МЦСТ www.mcst.ru / www.elbrus.ru Комплект руководящих документов МО РФ по комплексу Эльбрус. "Руководство по эксплуатации вычислительного комплекса "Эльбрус-90микро" Формуляры: ТВГИ.00330-01 30 01 ТВГИ.00330-01 32 01 ТВГИ.00330-01 33 01 ТВГИ.00330-01 33 02 ТВГИ.00330-01 34 11 Закрытые информационные источники Министерсва Обороны РФ.