17 мая 2012
Философия защиты информации
Про защиту информацииЧасто люди боятся компьютера, потому что плохо представляют, чего от него ожидать, ведь как это все в нем работает, в общем, малопонятно.

Легче смириться с тем, что самолет летает, хотя крыльями не машет. Однако опыт показывает, что когда знаешь, «как это все в нем работает», становится еще страшнее. Именно потому, что становится совершенно понятно, чего от него можно ожидать. Мариэтта Шагинян еще в 50-е годы прошлого века сформулировала эту проблему остро: «Вычислительные машины могут все. Задача человека заставить их делать только то, что ему нужно». Нам всегда говорят: «Компьютер – это только инструмент». И это должно успокоить и вселить уверенность. Вселило бы, если бы были основания считать, что это инструмент – ИМЕННО В ВАШИХ РУКАХ.

Эта уверенность – и есть то, за что Вы платите, покупая средства защиты информации (СЗИ). Ставя хороший замок на дверь, мы хотим не дверь защитить. Мы хотим быть уверенными, что в нее не войдет никто, кроме тех, кому мы дали ключ. Кстати, удивительно, что мы хотим уверенности в этом даже тогда, когда кладем ключ под коврик, на что нам так часто пеняют, например, банки, твердо стоящие на позиции «клиент всегда виноват». Однако давайте смотреть правде в глаза: мы способны понять, что ключ не нужно класть под коврик. Но для того чтобы у нас была возможность совершить (а лучше – НЕ совершить) эту ошибку, ключ должен как минимум быть ОТДЕЛЬНО ОТ ЗАМКА. Неправда ли, очевидно?

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

По оценкам специалистов, если станет общедоступной банковская информация, 50 % банков разорится уже в течение первых трех дней. В течение трех следующих – 90 %1. Так что, если Вам есть, что скрывать, и это не Ваше местонахождение, то Вы скорее банк, чем объявленный в розыск уголовник, не стоит этого стыдиться.
Стоит заметить, к слову, что беглому каторжнику в общем случае бессмысленно прибегать к помощи средствам защиты информации, чтобы скрыть свое местонахождение, поскольку сведения такого рода редко хранятся где-то в виде данных, а защитить какие-то знания в голове человека, безусловно, невозможно. А вот защищать информацию в банковских автоматизированных системах или в личных компьютерах граждан– можно и нужно.
Как известно, наличие замка, который выглядит не взломанным, еще не гарантирует того, что в помещение никто не проник. Вы можете быть уверены в том, что это так, только после того, как убедились, что там не произошло никаких изменений.
Это приводит к еще одной очень важной позиции: все действия в цифровой среде, так же, как и в аналоговой (в физическом мире) – должны ОСТАВЛЯТЬ СЛЕДЫ.

Для чего надо защищать компьютер от несанкционированного доступа к нему? Для того чтобы включая свой компьютер, Вы были уверены, что это по-прежнему ВАШ инструмент, что в него не добавлено ничего и ничего не изъято, что за время Вашего отсутствия Ваш компьютер не стал инструментом кого-то еще, чьи интересы могут быть далеки от Ваших. Для этого доступ к компьютеру должен быть разрешен только Вам.
Это возможно в том случае, если компьютер оборудован средством, которое при включении компьютера проверит его программное обеспечение и аппаратуру на отсутствие несанкционированных изменений и подаст сигнал, если что-то не так. В шпионских фильмах разведчики привязывают в «правильных местах» волоски и мастерски рассыпают незаметные простому смертному пылинки – именно для этого. В компьютере за это же отвечают средства защиты информации.
Мы стараемся пользоваться проверенными программами – именно поэтому покупаем лицензионное ПО. Так же мы стараемся использовать в работе только проверенные данные. Но для того чтобы проверенная программа, использующая проверенные данные, дала правильный результат, проверенной должна быть и среда, в которой исполняется программа. Проверенной должна быть и аппаратура, и операционная система.
Следовательно, должны быть специальные средства защиты информации, которые контролируют доступ к компьютеру и проводят такую проверку.
Казалось бы, компьютер, защищенный от несанкционированного доступа к нему, уже гарантирует защищенность находящихся в нем данных. Это не всегда так. Иногда необходимо разграничить доступ к данным для разных пользователей одного компьютера. Для этого необходимо специальное ПО разграничения доступа. Правила разграничения доступа в таких случаях должны быть определены политикой безопасности организации и доведены до сведения каждого.
Для того чтобы убедиться, что данные правильно обрабатываются – необходим контроль технологии. Это значит, что в некоторых точках проверяется результат операций, и если он не совпадает с «правильным», – подается сигнал тревоги. Для того чтобы можно было убедиться в том, что данные не были подделаны в ходе хранения, удобнее всего подписывать их электронной цифровой подписью (ЭЦП).
Быть уверенным в том, что данные были переданы в неизменном виде, можно в том случае, если данные были зашифрованы (а желательно еще и подписаны ЭЦП), поскольку среда всегда может оказаться враждебной. Однако что может дать Вам уверенность в том, что данные не искажены, если шифрование или подписание ЭЦП происходило внутри ненадежной среды? Абсолютную надежность внешней среды не может гарантированность никто. Это вполне естественно – выезжая на абсолютно проверенной машине, способной развивать скорость в 200 км/ч, мы можем опоздать на встречу, хотя машина будет абсолютно исправна. Просто будет пробка. Или гололед.
Машина может обеспечить не все. Значит ли это, что успеть на встречу – вообще нельзя? Конечно, нет. Если у нас нет уверенности в среде, мы постараемся для критически важной цели выбрать метод, который обеспечит нам независимость от среды. Метро. Или вертолет.
То есть воспользоваться другой, изолированной средой, надежность которой выше.
Для того чтобы критически важные вычисления (защитные коды аутентификации, ЭЦП, шифрование) были защищены от возможного вмешательства, они должны происходить внутри отдельного аппаратного компонента, изолированного и проверяемого, никогда не попадая в общую память компьютера. Там же должна храниться и ключевая информация.
Далее мы чуть более подробно рассмотрим затронутые вопросы, стараясь оставаться на качественном, понятийном уровне. Рассмотрим и конкретные средства защиты, которые на сегодня наилучшим образом решают задачи технической защиты информации.
Итак, объектов защиты в информационной сфере всего 4:
• сам компьютер,
• данные, которые хранятся, обрабатываются и передаются с помощью компьютера,
• технологии обработки этих данных
• и каналы передачи данных.
Компьютер защищается аппаратными средствами защиты от несанкционированного доступа, доступ к данным регламентируется с помощью программных средств разграничения доступа, технологии обработки данных контролируются на неизменность последовательности операций, каналы передачи данных защищаются с помощью шифрования и электронной цифровой подписи.
Как именно и почему – рассмотрим в дальнейшем на примере средств защиты информации разработки ОКБ САПР , компании, стоявшей у истоков защиты информации в России (а без ложной скромности можно говорить, что и в Мире, поскольку принципиальные технологии были разработаны именно ее специалистами и заметно ранее, чем возникли аналогичные за рубежом, причем только в стадии исследований и концепций).Эти средства – семейств АККОРД , ШИПКА , СЕКРЕТ , МАРШ! и другие – и сейчас остаются де-факто стандартом отрасли.

Но прежде несколько слов о философских и технологических предпосылках.
Материальное или идеальное?
Собственник информационных ресурсов сам вправе определить, как должны быть защищены его данные.
Допустим, Вам предоставили программу, в которую встроены программные процедуры идентификации/аутентификации. Для того, чтобы использовать эту программу, её надо запустить. При запуске программа запрашивает Ваш идентификатор (login) и пароль (password). Вы вводите требуемые контрольные данные, они проверяются программой, и если все хорошо – программа начинает работать. Формально требования идентификации/аутентификации выполнены, но обеспечивают ли описанные процедуры сколь-нибудь надежную защиту? Скорее всего – нет. Чтобы в этом убедиться, рассмотрим другой вероятный ход событий.
Вы запускаете программу, программа запрашивает Ваш идентификатор (login) и пароль (password). Вы вводите требуемые контрольные данные, и в этот момент программа «зависает». Вероятный это ход событий? Конечно, да, с каждым из нас такое случалось многократно. Какими будут Ваши действия? Нет никаких сомнений, что в этом случае Вы перезагрузитесь, вновь запустите программу и вновь введете идентификатор и пароль. Скорее всего, проверка завершится успешно, вы получите разрешение на работу с программой и доступ к защищаемым данным. И только по прошествии значительного времени Вы поймете, что сбой компьютера в первый раз был не случаен. Оказывается, тогда, много дней тому назад, Ваши логин и пароль запрашивала не запускаемая Вами программа, а программа-перехватчик, которая сымитировала запрос пароля, получила его, и потом «подвесила» Ваш компьютер, имитируя случайный сбой. Таким образом, Ваш пароль уже давно попал в руки злоумышленника, и все последнее время Ваш компьютер находился под его контролем. «Приятная» ситуация, не правда ли?
Как Вы думаете, сложно написать такую программу-перехватчик? Конечно, нет. Это задача для студента второго курса. Значит, Ваша программа только выглядит защищенной, имитация контрольных процедур только зря успокаивает Вас, не являясь средством защиты, и, по сути, помогает злоумышленнику.
Почему же такая простая атака оказалась удачной? Что нужно сделать, чтобы контрольные процедуры не просто были, а были эффективными? Проанализируем источники проблемы и попробуем понять, как нам избежать ущерба от таких атак.
Обратим внимание на следующий факт – чтобы выполнить свою функцию, программа-перехватчик, как и любая другая программа, должна быть:
1) установлена на компьютер;
2) запущена на исполнение.
Для того чтобы установить программу, нужно получить доступ к операционной системе. Если в принципе существует момент времени, когда операционная система уже загружена, а защитные механизмы еще не включены – злоумышленник сумеет установить нужные ему программы. Не важно, сколько длится этот момент – час или микросекунду. Достаточно одного даже самого малого момента незащищенности.
Что же делать? Видимо, нужно согласиться с тем, что важно не только наличие и реализация контрольных процедур, но и условия их исполнения. А из нашего примера следует однозначный вывод – защитные механизмы должны активизироваться ДО ЗАГРУЗКИ ОПЕРАЦИОННОЙ СИСТЕМЫ.
Это фундаментальный вывод. Его правильность давно доказана с применением точного математического аппарата, а следует из этого вывода также и то, что должны быть специальные аппаратные средства защиты информации. ОБЕСПЕЧИТЬ НАДЕЖНУЮ ЗАЩИТУ БЕЗ ПРИМЕНЕНИЯ СПЕЦИАЛИЗИРОВАННЫХ АППАРАТНЫХ СРЕДСТВ НЕВОЗМОЖНО!
Таким образом, любые попытки защитить компьютер и информацию в нем только за счет программных средств – абсолютно несостоятельны. Не знать этого сейчас просто нельзя, это знание давно доступно всем и подтверждено практикой, и те, кто утверждает иначе – просто кривят душой. Конечно, иметь программную защиту лучше, чем не иметь никакой – авось да защитит от соседского дедушки. Но при этом нужно ясно осознавать – от дедушки может и защитит, но вот от его внука – точно нет. Слишком просто дискредитировать такую защиту, и для этого злоумышленнику нет нужды иметь специальные знания – достаточно иметь мозги и описание операционной системы.
Но вернемся к нашему примеру и рассмотрим второе условие успеха злоумышленника –возможность запуска внедренной им программы-закладки.
Действительно, мы запускали свою, хорошую программу, а запустилось что-то совсем не то, и вовсе не такое дружелюбное. Почему так получилось? Что нужно было бы сделать, чтобы так не получилось?
Конечно, получилось так потому, что перед запуском программы мы не проконтролировали, изменилась программа или нет. Если бы мы вычислили контрольную сумму программы и сравнили ее с эталонной контрольной суммой, мы бы заметили, что программа изменилась. Значит, если её меняли не мы, то приложил руку кто-то другой. Разумеется, в этом случае не стоит запускать программу, а нужно принять меры к расследованию того, кто, как и зачем модифицировал программу.
Такие действия называются контролем целостности. Правильно выполненный контроль целостности позволяет своевременно обнаружить несанкционированные модификации программ и данных и предотвратить использование недоверенных программ и данных.
Но если для того чтобы контролировать целостность программы А, мы используем программу В, то кто нам даст гарантию, что программа В осталась неизменной?
Значит, нужна программа С, которая проконтролирует целостность программы В!
Нужна программа, контролирующая целостность программы, контролирующей целостность программы… и т.д., и т.п.
Сказка про белого бычка, дом, который построил Джек, попытка барона Мюнгхаузена вытащить самого себя за волосы из болота – эти сюжеты и схемы развития событий известны нам с детства, и каждый точно знает, что это сказочки, способ надуть прекрасную маркизу, не более. И при этом мы продолжаем верить, что с помощью одной программы можно проверить целостность другой! Это тяжелое техническое заболевание, состоящее в имитации мероприятий по защите без повышения уровня защищенности, получило название «Синдром Мюнгхаузена».

Программой программу нельзя проверять!
Бессмысленна эта работа!
Только Мюнгхаузен может поднять
Себя самого из болота!
Как же быть, как же разорвать порочный круг синдрома Мюнгхаузена в нашей задаче контроля целостности? Чтобы ответить на этот вопрос, заметим, что контролировать целостность программы контроля целостности нам пришлось потому, что оснований верить в ее неизменность у нас не нашлось. Действительно, что может помешать злоумышленнику подменить не только функциональную задачу, но и задачу ее контроля? И то, и другое – только последовательность нулей и единиц, хранящихся на диске компьютера. Изменение намагниченности участка магнитного материала никогда не представляло серьезной проблемы. Более того, вся вычислительная техника сегодня базируется на фундаментальной возможности изменять состояние элементов памяти ЭВМ, и бороться с этим – по крайней мере бессмысленно. Как же быть? Как разорвать порочный круг? Как вытянуть человека из болота?
Ответ на этот вопрос неожиданно прост – нужно встать рядом на кочку. Нужна надежная точка опоры, опираясь на которую можно достичь намеченных целей. Нужна процедура контроля, которая просто не может измениться, и которой, в силу ее неизменяемости, мы можем доверять. А поскольку программный компонент не может быть неизменяемым, значит, неизменяемый компонент может быть реализован только аппаратными средствами. Неизменяемая аппаратная составляющая и должна стать той самой точкой опоры, опираясь на которую и можно надежно выполнить весь комплекс контрольных процедур. Этот принцип – принцип опоры на «прочную», неизменяемую часть средств защиты информации получил название «Принцип Архимеда»: «дайте мне точку опоры, и я переверну мир».

Архимед утверждением всех изумил:
«Дайте точку опоры – и сдвину я Мир!»
Для защиты различных систем от хлопот
Мы Вам создали точку опоры: Аккорд!
Таким образом, парадигма аппаратной защиты состоит в «материалистическом» ответе на «основной вопрос технической защиты информации»: «Что первично – Hard или Soft?». Конечно, для Фон-неймановской архитектуры ответ очевиден – надежная защита может строиться только на основе специальной аппаратуры.

Вопрос о первичности спорен всегда –
Мы против
гаданий
и карт!
Мы не отрицаем всех плюсов софта!
Но точка опоры –
Hard!
О том, как выглядит эта специальная аппаратура защиты от несанкционированного доступа (НСД) и какими функциями она обладает, читайте в наших следующих статьях.
1Подробная статистика и описание конкретных случаев, а также механизмов и последствий компьютерных преступлений в кн.: Конявский В. А., Лопаткин С. В. Компьютерные преступления. Т. I. М., 2005.