Главная | Обратная связь
МегаЛекции

Целостность и изменчивость в решении задачи обеспечения безопасности данных




 

Процесс организации и поддер­жания системы безопасности невоз­можно качественно реализовать, опираясь исклю­чительно на нормативно-методичес­кие материалы, договоренности или согла­шения. Даже такой детерминирован­ный алгоритм, как «утром деньги — вечером стулья», там, где речь идет о безопасности информационных систем, может дать сбой: деньги бу­дут уплачены, а вместо стула вам да­дут табуретку или вообще ничего не дадут. При этом наличие у пользователя сертификата на про­дукт, выданного самой уважаемой организацией, нисколько не сделает злоумышленника добрее. Однако, понимая это, каждый в глубине ду­ши надеется на то, что «бумажка с печатью» уменьшит степень риска. И это действительно так.

Но как определить эту величину, если никто не может измерить сте­пень риска с достаточной точнос­тью? Может быть, это уменьшение будет на две десятых или пять сотых? Единой шкалы нет, и в ближайшее время ее появления не предвидится в силу ряда объективных причин.

Главная из причин отсутствия единой шкалы состоит в том, что процесс организации и поддержания системы безопасности на должном уровне — это всегда творческий процесс. Он чем-то напоминает иг­ру в шахматы с жестко лимитиро­ванным временем и с неограничен­ным числом различных фигур. Без­условно, изучив тысячу партий, проще сыграть тысяча первую, но даже по тысяче партий невозможно создать постоянно выигрывающий алгоритм. Можно даже допустить обратное: если злоумышленник зна­ет, что алгоритм построения и техно­логия поддержания системы защиты строго соответствуют установлен­ным требованиям, у него появятся дополнительные возможности при выборе направления обходного ма­невра для нанесения удара.

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

К сожалению, любая система, да­же состоящая из конечного числа элементов и функционирующая ко­нечное время, не застрахована от бесконечного множества угроз. Что­бы убедиться в отсутствии «хвоста», необходимо контролиро­вать этот самый «хвост». Но лицо, осуществляющее контроль, само мо­жет быть злоумышленником, а это значит, что необходим контроль контроля и т. д. Процедура активи­зации контролирующих механиз­мов создает бесконечную очередь с целью добиться гарантированного отсутствия «хвоста». Но разве мож­но надеяться на что-то гарантированное там, где наш проявленный мир сталкивается с миром не проявленной бесконечности?

Точно так же обстоит дело и в ми­ре программного обеспечения: анти­вирусная система защиты должна убедиться, что вирус ее не контроли­рует, а кроме того, что он не контро­лирует блок контроля за контролем и т. д., и т. п.

В свете сказанного еще раз вернемся к рассмотрению классических принципы организа­ции информационной безопасности и подвергнем их небольшой реви­зии:

- авторизация доступа: идентифи­кация пользователей и процес­сов;

- доступность;

- целостность программ и данных.

В чем их практическая ценность?

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

Предполагается, что периодиче­ская проверка целостности среды позволяет выявлять сбои программ­но-аппаратного обеспечения или факты несанкционированного ви­русного внедрения. Но если бы это было так, компьютерные вирусы уже давно были бы уничтожены. Тем не менее этого не происходит, наоборот, появляются вирусы, спо­собные заражать текстовые файлы под Word. Более того, для заражения используются даже расширяющиеся возможности по написанию имен файлов, как-то: возможность использовать в имени файла несколько точек. Например. Как известно, графический файл, содержащий рисунок, не включает в себя исполнительные команды, т.е. там вируса быть не должно по определению. Значит, подобного рода файл пользователь будет открывать ничего не опасаясь. Злоумышленник создает исполняемый файл, включает в него программную закладку, организует вызов из этого исполняемого модуля соответствующего графического файла и дает ему примерно следующее имя: самолет начала двадцатого века.jpg.exe. Имя длинное, на экране полностью не отображается, пользователь, просматривая имя, встречает расширение .jpg и успокаивается.

Любые новые, в том числе сервисные, возможности несут в себе и новые угрозы.

Для того чтобы принцип целост­ности работал, среда вычислитель­ных процессов или наиболее значи­мая ее часть не должна модифици­роваться в процессе работы. А много ли можно насчитать подобных не модифицируемых объектов?

Данные изменяются, пополняют­ся и удаляются, программы модифи­цируются и обновляются. Безуслов­но, можно выделить в «дышащем океане» несколько «тихих островков»: загрузочный сектор, область, заня­тая файлами операционной системы, некоторые базовые наборы данных, модификация которых запрещена, исполняемые модули — и пытаться удержать эти «островки» в их девст­венной чистоте. При этом не надо забывать, что система, которая будет заниматься контролем целостности, сама нуждается в контроле. Не тупи­ковый ли это путь?

Безусловно, порой владелец ин­формации считает достаточным, ес­ли есть замок на двери, охрана, караулящая этот замок, и начальник, про­веряющий охрану. Ситуация, когда «не спит собака — дачу охраняет, и я не сплю — собаку стерегу», — клас­сический пример доведения принци­па целостности до абсурда, не даю­щий при этом стопроцентной га­рантии сохранности защищаемого объекта.

А следует ли сама природа этому принципу, реализуя средства защи­ты для биологических информаци­онных самообучающихся систем — животных и человека?

Оказывается, что в результате ме­таболического круговорота в мозге человека в течение нескольких меся­цев почти все атомы оказываются за­мененными. В клетках и тканях лю­бого живого существа происходит процесс роста и старения. Клетки по­стоянно рождаются и умирают, а нервные клетки только умирают. Хотя и здесь есть механизмы, пыта­ющиеся поддерживать хоть какую-то целостность среды, например, им­мунная система делает все, чтобы уничтожить «чужаков». Но по одной из гипотез старения именно им­мунная система и убивает своего из­менившегося со временем хозяина[19].

Получается, что природа исполь­зует еще и другие принципы информацион­ной безопасности, и одним из них является принцип постоянной из­менчивости.

В чем может выразиться приме­нение этого принципа при органи­зации защиты информации, обраба­тываемой средствами вычислитель­ной техники?

Оказывается, что постоянная мо­дификация языка взаимодействия элементов системы — это единст­венное, что способно гарантирован­но защитить компьютерную систе­му от программных вирусов[20]. Лю­бопытно, но даже способы лечения человека от биологических вирусов подтверждают эту мысль. Резкий скачок температуры организма при­водит к изменению взаимодействия его элементов даже на клеточном уровне; в результате организм пере­стает считать вирус за своего, а тот, в свою очередь, перестает узнавать организм и выпадает из системы.

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

Второй - заключается в усилении «неопределенности» документов и процессов. То, что смена языка взаи­модействия элементов позволяет си­стеме «стряхнуть» вирус, использова­лось и используется во всех системах защиты — национальных, военных, социальных, биологических, психо­логических, программных и т. п.

Что же касается светлого будуще­го для такого принципа организации защиты, как изменчивость, есть ре­зон прислушаться к словам предста­вителей фантастического жанра, на­пример Роберта Шекли. В двух его произведениях: рассказе «Может, по­говорим?» и романе «Хождение Джоэниса» очень образно показаны пре­имущества рассматриваемого прин­ципа защиты. Особенно характерен первый рассказ, суть которого в сле­дующем.

Земляне в далеком будущем осва­ивают Вселенную, но стараются сде­лать это так, чтобы избежать войн с местными жителями. Поэтому ис­пользуется испытанная веками схе­ма колонизации, когда посланец за бесценок скупает землю аборигенов. Главное условие — наличие взаимо­согласованного и безукоризненного с точки зрения местных законов до­говора. Посланец высаживается на планете, изучает язык и законода­тельство, покупает недвижимость, оформляя соответствующие догово­ры, и начинает вытеснять местную публику. Обратите внимание — пе­ред вами классическая схема работы вируса. Но вот на одной из далеких планет происходит осечка. Местный язык изменяется с такой скоростью, что внешний по отношению к систе­ме субъект, человек по имени Джек­сон, не в состоянии его освоить.

«Язык планеты На был подобен реке Гераклита, в которую нельзя войти дважды, ибо там постоянно сменяет­ся вода... Дело само по себе скверное, но еще хуже то, что сторонний на­блюдатель вроде Джексона вообще не имел ни малейших надежд на фик­сацию или обособление хотя бы одного-единственного термина из дина­мически меняющейся сети терминов, составляющих язык планеты На. Влезть в систему — значит непред­сказуемо изменить ее, а если вычле­нить отдельный термин, то его связь с системой нарушится, и сам термин будет пониматься ошибоч­но. А посему, согласуясь с фактом по­стоянного изменения, язык не подда­ется идентификации и контролю и через неопределенность сопротивля­ется всем попыткам им овладеть».

В романе «Хождение Джоэниса» как бы между прочим рассматрива­ется схема защиты руководства в зда­нии от убийц и шпионов. Суть в том, что в здании постоянно происходят изменения; независимые проекти­ровщики регулярно проектируют, а строители регулярно перестраива­ют отдельные части здания. В ре­зультате здание постоянно изменя­ется и найти в нем что-то человеку с улицы (вирусу) не представляется возможным.

«— Мне думается, что рабочие, выполняя приказ высокого начальст­ва, постоянно перестраивают от­дельные части здания. Вдумайтесь. Начальство озабочено соображениями безопасности, а лучшая из возможных мер безопасности — это держать зда­ние в постоянном тонусе перемен. Да­лее, если бы здание пребывало в стати­ке, достаточно было бы одной-единственной картографической съемки, между тем мы только и делаем, что чертим да перечерчиваем...

Как же вы отыскиваете дорогу в собственный кабинет? — удивился Джоэнис.

Увы, стыдно признаться, но в данной ситуации опыт картогра­фа мне не помощник. Я нахожу свой кабинет таким же образом, каким все здесь отыскивают свои кабинеты — руководствуясь особым чутьем, кото­рое сродни инстинкту...»

Попробуем применить схему, предложенную Р. Шекли, для защи­ты программного обеспечения.

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

Кстати, подобный путь — это классический путь для такого на­правления программирования, как функциональное. А. Филд и П. Харрисон отмечают[21]: «Цель создания программы, корректной и легко по­нимаемой, часто вступает в кон­фликт с одновременно выдвигае­мым требованием эффективности ее выполнения, то есть за короткое вре­мя и с использованием возможно меньшего объема памяти. Таким об­разом, идеально было бы получить начальное решение, концентрируясь на ясности и корректности и практи­чески не обращая внимания на его эффективность, а затем преобразо­вать это решение в эффективную форму, используя манипуляции, га­рантирующие сохранение смысла программы». Функциональное про­граммирование готово предоставить для этого необходимую теоретичес­кую базу, а именно:

- трансформационную методоло­гию Берсталла и Дарлингтона со своими сохраняющими смысл правилами порождения новых рекурсивных уравнений;

- алгебраические преобразования, основанные на применении аксиом и теорем, устанавливающих равенство между выражениями.

 

На основании сказанного предлагается алгоритм работы рези­дентной программы, своего рода метапрограммы, задача которого — оптимизировать и модифицировать вычислительную среду в соответст­вии с таким видом оптимизации, как «запоминание», который не требует классического преобразования про­грамм, однако может быть реализо­ван практически на любой про­граммно-аппаратной платформе.

Метапрограмма может работать по следующему алгоритму:

1) в режиме эмуляции определить адреса вызова основных под­программ;

2) перенаправить вызов всех най­денных подпрограмм (например, операторы CALL, INT — их легко определить в режиме эмуляции) на резидентную метапрограмму;

3) по зафиксированным вызовам подпрограмм постоянно вести мемо-таблицу вида:

<адрес>, <входные значения>, <результат>, <частота вызова>;

4) при повторном вызове той или иной подпрограммы результат брать из мемо-таблицы без обращения к соответствующей подпрограмме;

5) периодически осуществлять в мемо-таблице чистку «мусора», что­ бы не допустить ее переполнения;

6) наиболее часто вызываемые и связанные друг с другом подпро­граммы согласно мемо-таблице раз­мещать в рамках одного сегмента памяти, изъяв их из прикладных задач и операционной системы, внеся ту­да соответствующие изменения;

7) все сказанное имеет отноше­ние и к подпрограммам самой мета-программы.

 

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

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

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

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

Все изложенное выше преследует цель напомнить: там, где речь идет о творческом процессе, догматические принципы, требования и нормативы никогда не являлись панацеей от всех бед. А главным принципом обеспечения «гарантированной» безопаснос­ти является принцип творческого подхода. Что же касается остальных, то эффективность их применения в первую очередь определяется кон­кретной ситуацией: решаемыми за­дачами, значимостью информации, работающими людьми и т. п. Где-то имеет смысл считать контрольные суммы, а где-то постоянно держать программное обеспечение «в тонусе перемен», где-то необходимо устано­вить программно-аппаратные парольные системы, а где-то разрешить доступ всем, но закамуфлировать са­мое ценное под «пенёк в лесу» или под камень, напротив скамейки.

 

 





©2015- 2017 megalektsii.ru Права всех материалов защищены законодательством РФ.