Мы продолжаем серию публикаций про историю компьютерной безопасности.  Статья "Теоретические основы компьютерной безопасности, часть 1: Эволюция ЭВМ" была посвящена развитию ЭВМ и операционных систем. Наиболее важным достижением того периода стали операционные системы реального времени, позволявшие пользователям параллельно работать с одной ЭВМ. Но эти же операционные системы создали новый пласт проблем - который и привел к появлению дисциплины "компьютерная безопасность". Научно-исследовательские работы MIT никогда не затрагивали сферу государственной тайны. Даже несмотря на тот факт, что Проект MAC субсидировался ARPA, которое относилось к Министерству обороны США. Но сами представители Министерства обороны США, а также различные агентства и службы, связанные с безопасностью государства, начали активно использовать ЭВМ в своих задачах с 50-ых годов XX-го века (что неудивительно, учитывая историю создания ENIAC).   Применение ЭВМ в столь чувствительной сфере требовало пристального изучения вопросов защиты информации при ее обработке в компьютерных системах. Такие работы велись, однако все они имели гриф секретности, что делало их результаты недоступными коммерческим производителям операционных систем для ЭВМ.   Ряд представителей компании RAND осознавали риски такой ситуации: ЭВМ в гражданской сфере все больше и больше распространялись, начинали объединяться в глобальную компьютерную сеть, но при этом вопросы обеспечения компьютерной безопасности в них рассматривались по остаточному принципу и людьми, которые не являлись профессионалами в сфере информационной безопасности. И в 1967-м году Уиллис Уэр – сотрудник компании RAND – смог получить разрешение на проведение отдельной секции, посвященной вопросам компьютерной безопасности, в рамках Весенней объединенной компьютерной конференции (SJCC) [1].   В рамках этой конференции Уиллис Уэр представил общую модель компьютерной системы с разделяемыми ресурсами с указанием возможных мест и способов нарушения безопасности этой системы [2] – по сути это было первое представление модели угроз информационной безопасности (Рисунок 1).   В результате сообщество разработчиков программ для ЭВМ узнало о проблематике компьютерной безопасности, а также о возможных негативных последствиях, связанных с реализацией угроз информационной безопасности. Параллельно с этим событием неназванный подрядчик Министерства обороны США из Сент-Луиса приобрел мэйнфрейм IBM для выполнения контракта, связанного с разработкой нового истребителя для ВВС США. Желая вернуть часть затраченных средств, подрядчик Министерства обороны США решил оценить возможность продажи машинного времени мэйнфрейма другим компаниям для выполнения задач, не имеющих грифа секретности. Осознавая возможные последствия, этот подрядчик постарался согласовать свое решение с ВВС США, которые, в свою очередь, переадресовали вопрос компании RAND [3]. Результатом работы стал отчет «Security controls for computer systems» [4], который также известен как «The Ware Report» (здесь присутствует игра слов: с одной стороны отчет назван по фамилии автора, с другой – перевод слова «Ware» имеет значение «пугающий», что отражает эффект, который произвел отчет). Выводы отчета были неутешительные: использование удаленных терминалов, обработка секретной и несекретной информации на одной ЭВМ, отсутствие контроля за самими терминалами – все это могло быть использовано для нарушения свойств безопасности информации, обрабатываемой ЭВМ. Отчет предлагал ряд мероприятий, которые можно разделить на первоочередные и стратегические. Первоочередные мероприятия предполагали отказ от удаленных терминалов и использования многоуровневой безопасности (т.е. параллельной обработки информации разной степени секретности), стратегические мероприятия сводились к тому, что необходимо провести полноценное исследование предмета компьютерной безопасности, что позволит разработать и внедрить обоснованный состав мер защиты в операционные системы ЭВМ (и в итоге вернуться к возможности использования удаленных терминалов и многоуровневой безопасности). Проблема заключалась в том, что фактически реализовать первоочередные мероприятия из отчета было невозможно – это значило остановить огромное количество проектов Министерства обороны США, в которые уже были вложены десятки миллионов долларов США. Возможно по этой причине было принято решение снабдить «пугающий отчет» грифом конфиденциальности и широкой публике он был представлен только в 1979-м году [3]. Представитель ВВС США (которые выступали одним из заказчиков исследования) майор Роджер Шелл высказался достаточно критично о представленном отчете: «группа Уэра просто собрала вместе все найденные наблюдения и сообщила, что «У вас есть все эти проблемы», не предложив практически никаких решений. А ВВС были нужны именно решения» [5]. В результате Роджер Шелл создает собственную рабочую группу, которую возглавляет Джеймс Андерсон. Первоочередной задачей группы становится подготовка отчета, который должен представить конкретный план исследований и разработок, направленный на обеспечение безопасной работы открытых многопользовательских систем, реализующих модель многоуровневой безопасности и использующих безопасные и небезопасные терминалы [6]. Здесь под открытой системой понималась система, к которой могли быть подключены терминалы, расположенные за пределами объектов Министерства обороны США, в том числе, возможность подключения к ЭВМ по сети ArpaNet. А под многоуровневой безопасностью понималась параллельная обработка секретных и несекретных данных на одной ЭВМ. Шелл считал, что отказ от использования открытых систем с реализацией многоуровневой безопасности приведет к финансовым потерям около 100 миллионов долларов в год. Помимо предлагаемого состава мероприятий и оценки их стоимости отчеты группы Андерсона содержали описание двух базовых концепций, на основе которых далее формировались все наработки по обеспечению многоуровневой безопасности для открытых систем. Этими концепциями были монитор ссылок (в русскоязычной терминологии чаще называемый монитором безопасности) и ядро безопасности операционной системы. Монитор ссылок – это концепция проектирования операционной системы таким образом, что все обращения процессов к другим процессам, данным, устройствам и пр. проходят процедуру валидации, которая определяет доступность или недоступность запрошенной операции для процесса, пытающегося выполнить эту операцию (Рисунок 2). Реализация этой концепции предполагала создание в операционной системе механизма валидации ссылок, в отчете предлагался один из способов такой реализации – матрица доступа (Рисунок 3). А под ядром безопасности операционной системы понималась сама концепция монитора и ее реализация в конкретной операционной системе. Необходимо отметить, что концепция монитора ссылок и матрицы доступа впервые появилась до отчета группы Андерсона: в 1972-м году члены Проекта MAC представили свои новые наработки по безопасности операционной системы Multics на конференции SJCC, среди которых были мониторы объектов и матрица доступа [7]. Существенным отличием являлась сама концепция монитора: члены Проекта MAC предлагали создать в системе несколько мониторов, которые обслуживали бы обращения к различным объектам: файлам, процессам, различным устройствам и самой матрице доступа (Рисунок 4). А в отчете Андерсона предлагается концепция единого монитора ссылок, который, кроме того должен удовлетворять трем основным свойствам: устойчивость – механизм валидации ссылок должен быть защищен от модификации вредоносным процессом; полнота – механизм валидации ссылок должен вызваться при каждом обращении субъекта к объекту; верифицируемость – механизм валидации ссылок должен быть компактным, чтобы была возможность его полного покрытия тестами. Помимо базовых концепций отчет группы Андерсона содержал план работ, включающих четыре основных направления: Разработка прототипа безопасной открытой операционной системы с реализацией многоуровневой безопасности. Поддержка разработки (описание конкретных техник, которые должны быть включены в безопасную систему). Решение текущих проблем безопасности. Изучение новых технологий (как возможностей оборудования, так и новых результатов исследований в области компьютерной безопасности). План был рассчитан на 6 лет с общим объемом финансирования около 30 миллионов долларов США, из которых 8 миллионов были предназначены для разработки математической модели и архитектуры ядра безопасности. Такой подход (с разработкой формальной модели ядра безопасности) был полной противоположностью того, что предлагала группа Уэра: Уэр считал, что безопасности операционных систем можно достичь, если специальные оперативные группы (англ. – tiger teams) будут пытаться находить уязвимые места, которые разработчик впоследствии будет устранять. Шелл же замечал, что такой подход будет говорить лишь о том, что конкретно эта команда не смогла найти способа нарушить безопасность системы, но никто не может гарантировать, что такого способа нет вообще. Фактически этот спор продолжается и сейчас, как только речь заходит об эффективности тестирований на проникновение: некоторые организации считают (и небезосновательно!), что отсутствие выявленных уязвимых  мест в ходе тестирования на проникновение говорит лишь о том, что эта конкретная команда не смогла их найти. Но никто не может дать гарантии, что таких уязвимых мест нет вообще. А вот формальная модель безопасности операционной системы должна была дать достаточный критерий безопасности (соответственно предложения, сформулированные Уэром, на взгляд группы Шелла, были лишь необходимыми критериями) [6]. Над формальными моделями начинают работать две независимые группы: группа Кейсовского университета Западного резервного района под руководством Кеннета Уолтера и группа корпорации MITRE, в которую входили Дэвид Белл и Леонард ЛаПадула. Обе группы двигались в схожих направлениях, но Белл и ЛаПадула быстрее получили конкретные результаты, поэтому именно их фамилии сегодня ассоциируются с первой формальной моделью безопасности, для которой была сформулирована и доказана основная теорема безопасности. При этом сам Дэвид Белл вспоминает, что ни у кого не было понимания, что значит «разработать математическую модель компьютерной безопасности» [8] – ни Министерство обороны, ни их руководство, ни они сами не имели четкого представления, что должно быть получено на выходе. Однако группа Белла и ЛаПадула справилась со своей задачей. Их модель представляла всю компьютерную систему как совокупность абстрактных множеств субъектов (процессов) и объектов (файлов, устройств, сегментов памяти и пр.). А все операции в системе описывались отношениями над этими множествами. Столь абстрактная модель была революционной для того времени – прочие научные группы всегда пытались сделать модель более привязанной к конкретной изучаемой операционной системе. В итоге Белл и ЛаПадула пришли к простой и изящной идее: доказательство безопасности модели компьютерной системы может опираться на принцип математической индукции. Достаточно показать, что некоторое начальное состояние безопасно, а переходы между состояниями удовлетворяют ограничениям, которые накладывает модель и тогда все прочие состояния системы также будут безопасными. Это позволило сформулировать Основную теорему безопасности (англ. Basic security theoreme) [9]. Оставалось сформулировать критерий безопасного состояния, а также разработать набор правил, который бы регулировал переходы между состояниями системы. Основной проблемой при разработке модели была угроза со стороны «Троянских программ» (этот термин также впервые был предложен в отчете Андерсона): такая программа может работать от имени пользователя, обладающего доступом к секретной информации, но при этом выполнять какие-то дополнительные вредоносные действия, позволяющие похитить данные (Рисунок 5). Для борьбы с такой потенциальной утечкой в модель было добавлено правило «запрета записи вниз», в оригинальной работе оно было названо *-безопасность, в дополнение к ss-безопасности или простой безопасности (англ. simple security), которое ограничивало чтение (запрет чтения вверх). Совокупность этих двух правил обеспечивала защиту конфиденциальности данных в операционной системе, реализующей многоуровневую безопасность. И основная теорема безопасности доказывала, что реализации этих двух правил в системе было бы достаточно, чтобы она оставалась безопасной в течение любого отрезка времени. Кроме того, существенный объем в финальном отчете Белла и ЛаПадула занимал раздел, который увязывал механизмы операционной системы Multics с абстракциями модели – это позволило реализовать принципы модели Белла-ЛаПадула в реальной операционной системе. Успех подхода Белла и ЛаПадула породил целую волну исследований, часть из которых критиковала и дополняла оригинальную модель Белла-ЛаПадула, в частности, модель МакЛина System Z [10]. Другие исследования пытались создать альтернативные модели и доказать их безопасность. В частности, Майкл Харрисон, Уолтер Руззо и Джефри Ульман в своей работе [11] рассматривали безопасность операционных систем, использующих матрицу доступа как основной механизм разграничения доступа. Результатом их работы стало доказательство того, что для общего случая системы разграничения доступом на основе матрицы доступа невозможно доказать ее безопасность. Однако оставалось огромное количество частных случаев, которые стали предметом исследований большого количества специалистов и научных групп. В СССР и позже в России публикации о подобных исследованиях появляются только с конца 80-ых годов. Фактически, когда  интерес к теме формальных моделей доступа в США уже стал угасать и новые исследования стали больше обращать внимание на вопросы скрытых каналов утечки информации (которые обходят модель управления доступом), а также на задачу верификации конкретной реализации ядра безопасности - ведь даже самая лучшая и надежная абстрактная модель может быть реализована с ошибками, которые сделают ее совершенно бесполезной. Впервые материалы с достижениями в области теоретических основ компьютерной безопасности издаются в СССР в 1980 г. – в переводной книге «Современные методы защиты информации» [12]. Эта книга содержала все основные результаты в области теоретической компьютерной безопасности, полученные на момент ее написания. На основе этой книги в СССР и позже в Российской Федерации издается ряд учебных пособий, которые также лишь приводят основные достижения в области формальных моделей компьютерной безопасности [13] [14]. И только в 90-е годы отечественные исследователи начинают активно публиковать собственные результаты. В этом ряду следует отметить, прежде всего, труды В.А. Герасименко, разработавшего системно-концептуальный подход к обеспечению информационной безопасности [15]. А.А. Грушо и Е.Е. Тимонина представили доказательный подход к проблеме гарантированности защиты информации в компьютерной системе, а также провели математический анализ ряда задач и решений в теории защиты информации применительно к различным разновидностям компьютерных систем [16]. Область теоретических основ компьютерной безопасности сегодня представлена целым рядом направлений: в первую очередь, это вопросы формальных моделей безопасности для компьютерных систем, объединенных в локальные и глобальные сети. Отдельным предметом изучения остаются скрытые каналы утечки. Еще одним направлением является использование декларативных языков для автоматизации процессов доказательства безопасности формальных моделей безопасности компьютерных систем. И все это выстроено на основе фундамента, который был заложен участниками Проектам MAC и группы Шелла. В цикле статей описана история развития дисциплины компьютерной безопасности. В статье "Теоретические основы компьютерной безопасности, часть 1: Эволюция ЭВМ" приводится описание развития ЭВМ, которое привело к появлению специализированных управляющих программ – операционных систем, а затем, по мере распространения операционных систем с разделяемым временем, привело к необходимости решения вопросов защиты процессов и данных разных пользователей от влияния друг на друга. В этот период вопросы защиты информации рассматриваются в основном с точки зрения обеспечения целостности, а вредоносное воздействие процессов операционной системы друг на друга предполагается вызванным ошибками в программах, а не злым умыслом пользователей. Это накладывает свой отпечаток на разрабатываемые механизмы безопасности. В настоящей статье рассматривается период, когда вопросы компьютерной безопасности попали в поле зрения Министерства обороны США. Вышедший в 1970 г. отчет Уэра показал, что «наивный» подход к обеспечению компьютерной безопасности, царивший до сих пор, не может ничего противопоставить нарушителю, имеющему злой умысел (в противовес с царившей ранее доктриной случайного вредоносного воздействия в следствие ошибки программиста). Необходимость обеспечения многоуровневой безопасности (т.е. возможности параллельной работы с секретными и несекретными данными на одной ЭВМ) породила целый ряд исследований в области разработки модели и архитектуры ядра безопасности операционной системы. Основным достижением этой эпохи стала модель Белла-ЛаПадула, которая породила еще большее количество исследований, задав общий подход к описанию формальной модели безопасности и доказательству ее безопасности. Misa T. J., Computer Security Discourse at RAND, SDC, and NSA (1958-1970) // IEEE Annals of the History of Computing. 2016. №4. С. 12-25. Ware W. H., Security and privacy in computer systems // Spring joint computer conference. Association for Computing Machinery. New York, 1967, С. 279–282. Ware W. H., RAND and the Information Evolution: A History in Essays and Vignettes. Ware W. H., Security Controls for Computer Systems: Report of Defense Science Board Task Force on Computer Security.  MacKenzie D., Pottinger G., Mathematics, technology, and trust: formal verification, computer security, and the U.S. military // IEEE Annals of the History of Computing. 1997. №3. С. 41-59. Anderson, J. P., Computer Security Technology Planning Study (ESD-TR-73-51). U.S. Air Force Electronic Systems Division. 1972 Graham G. S., Denning P. J., Protection: principles and practice // Spring joint computer conference. Association for Computing Machinery. New York, 1972. С. 417–429. Yost J. R., An Interview with David Elliott Bell.  Bell D. E., LaPadula L. J., Secure computer system: Unified exposition and multics interpretation. – MITRE CORP BEDFORD MA, 1976. Mclean J., Reasoning About Security Models // IEEE Symposium on Security and Privacy. 1987. С. 123-123. Harrison M. A., Ruzzo W. L., Ullman J. D., Protection in operating systems // Commun. ACM. 1976. №19. С 461–471. Хоффман Л. Современные методы защиты информации. М.:Сов.радио, 1980. Грушо А.А.,Тимонина Е.Е. Теоретические основы защиты информации. М.:Яхтсмен, 1996. Теоретические основы компьютерной безопасности: Учеб. пособие для вузов / П.Н. Девянин, О.О.Михальский, Д.И.Правиков и др. М.: Радио и Связь, 2000. Герасименко В.А. Концептуальные подходы к управлению качеством информации в современных автоматизированных системах обработки данных // Научно-информационный журнал «ВЕСТНИК». 1990. №1. А. А. Грушо, «Скрытые каналы и безопасность информации в компьютерных системах», Дискрет. матем. 1998. №10, С. 3–9. Гайдамакин Н.А. Многоуровневое тематико-иерархическое управление доступом (mlths-система) // ПДМ. 2018. №39.