Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные пути обеспечения безопасности информации

Вирусы

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

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

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

От опасного вируса СШ (Чернобыль), который активи­ровался 26 апреля 1999 года, в день тринадцатой годовщины катастрофы на Чернобыльской АЭС, пострадало более 100 тыс. компьютеров только в России. По прогнозам Е, Касперского, руководителя антивирусного центра «Лаборатория Касперского», основные причины распространения вируса — нелегальное заражен­ное программное обеспечение.

Сами механизмы воспроизведения вирусов тоже могут быть весьма разнообразны. Эти программы незаметно присоединяются к другим исполняемым модулям. Они опас­ны тем, что» прежде чем нанести вред, на который они и запрограммированы, копиру­ют себя в другие программные файлы. Таким образом, компьютерные вирусы заража­ют и воспроизводятся аналогично биологическим.

Считается, что сам термин «компьютерный вирус» впервые употребил сотрудник Лехайского университета (США) Ф.Коэн на конференции по безопасности информа­ции в 1984 году. Прошли годы. И что же сегодня представляют собой компьютерные вирусы?

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

Мы будем исходить из того, что обычному пользователю нет необходимости вни­кать во все тонкости функционирования вируса: объекты атаки, способы заражения, особенности проявления и пр. Но желательно знать, какими бывают вирусы, понимать об­щую схему их работы. Условно компьютерные вирусы можно подразделить на классы (рис. 2.17). Эта классификация объединяет, естественно, далеко не все возможные виру­сы; в каждой категории встречаются экзотические варианты, которые не названы.

Жизненный цикл компьютерного вируса может включать следующие этапы:

– внедрение (инфицирование);

– инкубационный период;

– саморазмножение (репродуцирование);

– выполнение специальных функций;

– проявление.

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

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

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

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

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

Не следует думать, что логические бомбы — это экзотика, не свойственная наше­му обществу. Логическая бомба, которая срабатывает по достижении определенного момента времени, получила названия временной бомбы. Она «взрывается» неожидан­но, разрушая данные.

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

Существует способ внедрения в чужое программное обеспечение, именуемый тро­янским конем (Trojan Horse). Конечно, нельзя узнать, что думали жители Трои на другой день после того, как с радостными криками и песнями вкатили в город огром­ного деревянного коня — «подарок» от якобы побежденных ахейцев. Так же трудно порой бывает восстановить работоспособность компьютера, по «программному полю» которого «проскачут» такие кони. Действие программ-диверсантов заключается в тай­ном введении в атакуемую программу команд, выполняющих функции, не планируе­мые владельцем программы, но при этом сохранять и прежнюю работоспособность программы.

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

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

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

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

Все известные вирусы можно разделить на классы по следующим признакам:

– среда обитания;

– способ заражения среды обитания;

– деструктивная возможность;

– особенности алгоритма вируса.

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

Загрузочные (бутовые) вирусы внедряются в загрузочный сектор диска (boot-сек­тор) или в сектор, содержащий системный загрузчик винчестера (Master Boot Record). Часто эти вирусы «всеядны»: они заражают и то, и другое.

Файловые вирусы — в простейшем случае такие вирусы, которые заражают испол­няемые файлы. Если с загрузочными вирусами все более или менее ясно, то файловые вирусы — это гораздо менее определенное понятие. Достаточно, к примеру, сказать, что файловый вирус может вообще не модифицировать файл (вирусы-спутники и виру­сы семейства Dir). Кроме того, к файловым относятся так называемые macro-вирусы. О них мы еще поговорим.

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

Сетевые вирусы распространяются по компьютерной сети, заражая сотни и тысячи компьютеров. Варианты заражения вирусами представлены на рис. 2.18.



Вирусы могут размешаться в следующих системах и структурах:

– операционной системе, где они «сцепляются» с программами, расположенными в системной части дискеты или жесткого диска;

– библиотеках компиляторов для внедрения в программы, составляемые компи­ляторами;

– сетевых драйверах;

– «плохих» или специальных секторах жесткого диска;

– ПЗУ в качестве программно-технической закладки;

– структуре исполняемых программ или файловых программ.

Способ заражения среды обитания подразделяется на резидентный и нерезидентный.

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

Нерезидентные (транзитные) вирусы не заражают память компьютера и активны ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы тоже счи­таются нерезидентными.

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

По деструктивным способностям вирусы можно разделить на:

– безвредные;

– неопасные;

– опасные;

– очень опасные.

Безвредные вирусы только уменьшают объем свободной памяти на диске в резуль­тате своего распространения, а больше никак не влияют на работу компьютера.

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

Опасные вирусы приводят к серьезным сбоям в работе компьютера.

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

Известные в настоящее время вирусы могут выполнять следующие разрушитель­ные функции:

– изменение данных в файлах;

– изменение данных, передаваемых через параллельные и последовательные порты;

– изменение назначенного диска (запись информации производится не на диск, указанный пользователем, а на диск, указанный вирусом);

– переименование файлов (не сообщая об этом пользователю);

– форматирование отдельных частей жесткого диска (дискеты) или даже всего диска (дискеты);

– уничтожение каталога диска;

– нарушение работоспособности операционной системы, в результате чего она не воспринимает внешних воздействий пользователя и требует перегрузку;

– снижение производительности из-за постоянного выполнения паразитных программ;

– отказ в выполнении определенной функции (например, блокировка клавиатуры, блокировка загрузки программы с защищенной от записи дискеты и т. д.);

– стирание информации, выводимой на экран дисплея и т. п.;

– «мелкие» повреждения данных (например, замена первых байтов каждого блока при записи, замена отдельных символов и т. д.), которые пользователь долго не может обнаружить.

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

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

По особенностям алгоритма функционирования вирусов их можно подразделить на следующие группы:

– компаньон-вирусы (companion);

– вирусы-черви (worm);

– паразитические;

– студенческие;

– stealth-вирусы (вирусы-невидимки);

– полиморфик-вирусы (polymorphic);

– макро-вирусы.

Компаньон-вирусы (companion) представляют собой программы, не изменяющие файлы. Эти вирусы создают для ЕХЕ-файлов, находящихся в памяти компьютера, фай­лы-спутники, имеющие то же самое имя, но с расширением СОМ, например, для фай­ла XCOPY.EXE создается файл XCOPY.COM. Вирус записывается в СОМ-файл и ни­как не изменяет ЕХЕ-файл. При запуске такого файла DOS первым обнаружит и выполнит СОМ -файл, то есть вирус, который затем запустит и ЕХЕ -файл.

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

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

Студенческие вирусы — это крайне примитивные вирусы, часто нерезидентные и содержащие большое число ошибок.

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

Способов маскировки вирусов существует великое множество, но все они основа­ны на перехвате вирусами прерываний BIOS и операционной системы. Перехватив прерывания, вирусы контролируют доступ к зараженным объектам. Например, при просмотре зараженного объекта они могут «подсунуть» вместо него здоровый. Кроме того, вирусы искажают информацию DOS (например, возвращают неверное значения длины файла, скрывая свое присутствие в нем). Для большинства антивирусных про­грамм вирусы, использующие стелс-технологию, являются серьезной проблемой.

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

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

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

Первые полиморфные вирусы Tequila и Maltese Amoeba появились в 1991 году. Все бы ничего, но в 1992 году автор, известный под псевдонимом Dark Avenger, напи­сал своего рода комплект «Сделай сам» для мутационного механизма, который он сделал частью вируса Maltese Amoeba.

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

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

Некоторые вирусы (например, вирусы семейства Eddie, Murphy) используют часть функций полноценного вируса-невидимки. Обычно они перехватывают функции DOS FindFirst и FindNext и «уменьшают» размер зараженных файлов. Такой вирус невоз­можно определить по изменению размеров файлов, если, конечно, он резидентно на­ходится в памяти. Программы, которые не используют указанные функции DQS (на­пример, Norton Commander), а напрямую обращаются к содержимому секторов, хранящих каталог, показывают правильную длину зараженных файлов.

При инфицировании файла вирус может производить действия, маскирующие и ускоряющие его распространение.

К подобным действиям можно отнести обработку атрибута Read-only, снятие его перед заражением и последующее восстановление этого атрибута. Многие файловые вирусы считывают дату последней модификации файла и восстанавливают ее после заражения. Для маскировки своего распространения некоторые вирусы перехватыва­ют прерывание DOS, возникающее при обращении к диску, защищенному от записи, и самостоятельно обрабатывают его. Поэтому среди особенностей алгоритма файлово­го вируса можно назвать наличие или отсутствие обработки и скорость его распрост­ранения. Скорость распространения файловых вирусов, заражающих файлы только при их запуске на выполнение, будет ниже, чем у вирусов, заражающих файлы при их открытии, переименовании, изменении их атрибутов и т. д. Некоторые вирусы при создании своей копии в оперативной памяти компьютера пытаются занять область памяти с самыми старшими адресами, разрушая временную часть командного интер­претатора COMMAND. COM. По окончании работы зараженной программы времен­ная часть интерпретатора восстанавливается, при этом происходит открытие файла COMMAND.COM и его заражение, если вирус поражает файлы при их открытии.

Формально macro-вирусы являются файловыми вирусами, заражающими файлы не­которых систем обработки документов (например, Word for Windows, Excel for Windows и AmiPro). Указанные системы имеют встроенные макроязыки (Word Basic, Visual Basic). Эти языки обладают достаточными возможностями, чтобы производить практически все операции, необходимые вирусу. Имеются даже шифрованные и полиморфные macro-вирусы. Кроме того, все чаще стали встречаться вирусы, поражающие как документы, так и исполняемые файлы (иногда обычные ЕХЕ-файлы, иногда NewEXE, иногда и те, и другие). Инфицирующая способность таких вирусов крайне велика.

В настоящий момент более 90% macro-вирусов написаны для Word for Windows. Это без сомнения объясняется тем, что файлы данного текстового процессора факти­чески стали стандартом для текстовых документов. Самый первый macro-вирус (Word.Concept) также заражал DOC-файлы.

Большинство макро-вирусов имеют типичную структуру. Они начинаются с авто­матически выполняющегося макроса, заражающего глобальный шаблон Normal.dot. Также в их состав входят некоторые макросы, которые заражают файлы при опреде­ленных действиях (File > Save As, File > Save и Tools > Macros). Документы заражают­ся при совершении над ними операций, то есть инфицируются уже при открытии.

Макрос — это программа, написанная на некотором языке, обычно используемая для автоматизации определенных процессов внутри приложений. В данном случае разговор пойдет о языках Visual Basic for Applications (VBA) и WordBasic (WB), кото­рые применяет Microsoft в своих программах (в частности, Excel, Project и PowerPoint используют язык VBA, a WinWord — WB).

Макрос VBA представляет собой вызываемые процедуры. Они бывают двух типов:

– процедуры-подпрограммы;

– процедуры-функции.

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

Язык VBA универсален, и тому есть несколько причин.

  1. Этот язык прост в изучении и использовании. Поскольку он является языком визуального программирования, то ориентирован на события, а не на объекты. С его помощью без особых затрат времени очень легко создавать сложные модули.
  2. Можно использовать большое количество предопределенных функций, облегча­ющих работу.
  3. Имеются функции (или макросы), выполняющиеся автоматически, за счет чего упрощается написание процедур автокопирования и занесения в память, используе­мых стандартными DOS-вирусами,

Существуют функции, единые для всех версий языка VBA вне зависимости от ис­пользуемого языка (английского, русского, испанского и т. д.). Таких специальных макросов 5, все они выполняются автоматически:

– AutoExec — активизируется при загрузке текстового процессора, но только в том случае, если он сохранен в шаблоне Normal.dot или в каталоге стандартных приложений;

– AutoNew — активизируется при создании нового документа;

– AutoOpen — активизируется при открытии существующего документа;

– AutoClose — активизируется при закрытии документа;

– AutoExit — активизируется при выходе из текстового процессора.

Процедура Save As использует технологию, во многом схожую с процедурой AutoExec. Она копирует макро-вирус в активный документ при его сохранении через команду File > SaveAs.

Существует несколько способов скрыть вирус или сделать его более эффективным. Например, можно создать специальный макрос, прячущий вирус, если меню Tools > Macro открывается для просмотра.

Макро-вирусы также могут включать внешние процедуры. Например, вирус Nuclear пытается откомпилировать и запустить внешний файл-разносчик вируса, некоторые троянские макросы форматируют винчестер при открытии документа.

Рассмотрим несколько подробнее, как действуют наиболее распространенные ви­русы, их особенности, способы внедрения и осуществления разрушительных воздей­ствий.

Начнем с вирусов, поражающих файлы с расширением СОМ (СОМ-файлы). Суще­ствует несколько способов внедрения таких вирусов.

Структура стандартного СОМ-файла (программы) предельно проста. Он содер­жит только код и данные программы, не имея даже заголовка. В начале СОМ-файла обычно находится команда безусловного перехода JMP, состоящая из трех байт. Бла­годаря простому строению СОМ-файла в него очень просто добавить тело вируса и затем указать его адрес в команде JMP.

После старта вирус ищет в текущем каталоге СОМ-файлы. После нахождения нуж­ного файла тело вируса добавляется в конец этого файла, туда же переносится ориги­нальный адрес перехода по JMP, на место которого записывается адрес команды JMP для безусловного перехода на тело вируса.

После загрузки зараженного файла управление получает вирус. Закончив работу, он восстанавливает оригинальный адрес безусловного перехода JMP и передает уп­равление программе, как это показано на рис. 2.19.

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

Кроме такого способа внедрения, существуют и другие способы внедрения СОМ-вирусов. Рассмотрим два варианта внедрения СОМ-вируса в начало файла:

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

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

2. Второй вариант отличается от первого тем, что вирус, освобождая для себя мес­то, сдвигает все тело программы, а не переносит ее часть в конец файла. Этот способ внедрения и схема работы вируса изображены на рис. 2.21.

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

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

СОМ-файлы (небольшие программы, написанные, в основном, на языке Assembler) со временем устаревают, поэтому им на смену пришли пугающие своими размерами ЕХЕ-файлы. Появились и вирусы, умеющие эти файлы заражать.

По особенностям алгоритма, ЕХЕ-вирусы условно можно разделить на следующие группы:

– вирусы, замещающие программный код (Overwrite);

– вирусы-спутники (Companion);

– вирусы, внедряющиеся в программу (Parasitic).

Вирусы, замещающие программный код, уже стали раритетом: фактически вирусы дан­ного вида давно мертвы. Изредка появляются еще такие вирусы, созданные на языке Assembler, но это, скорее, соревнование в написании самого маленького overwrite-вируса. Главный их недостаток — слишком грубая работа. Инфицированные ими программы не исполняются, так как вирус записывается поверх программного кода, не сохраняя его. При запуске вирус ищет очередную жертву (или жертвы), открывает найденный файл для редактирования и записывает свое тело в начало программы, не сохраняя оригинальный код. Инфицированные этими вирусами программы лечению не подлежат.

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

– путем создания СОМ-файла спутника;

– путем переименования ЕХЕ-файла.

Инфицирование методом создания СОМ-файла спутника заключается в том, что­бы, не трогая файл (ЕХЕ-программу), создать свою — СОМ-файл с именем ЕХЕ-программы. Алгоритм работы такого вируса предельно прост, так как не нужны лишние действия: например, сохранение в теле вируса размера откомпилированного ЕХЕ-файла с вирусным кодом, считывание в буфер тела вируса, запуск файла, из которого вирус получил управление. Незачем даже хранить метку для определения инфицирования файла.

Для каждого инфицируемого ЕХЕ-файла в том же каталоге создается файл с вирус­ным кодом, имеющий такое же имя, что и ЕХЕ-файл, но с расширением СОМ. Вирус активируется, если при запуске программы в командной строке указано только имя исполняемого файла, без расширения. Дело в том, что DOS сначала ищет в текущем каталоге файл СОФАЙЛ с заданным именем. Если СОМ-файл с таким именем не най­ден, отыскивается одноименный ЕХЕ-файл. Если и он не найден, DOS попробует об­наружить файл с расширением ВАТ (командный). В случае отсутствия в текущем каталоге исполняемого файла с указанным именем поиск ведется во всех каталогах. Другими словами, когда пользователь хочет запустить программу и набирает в команд­ной строке только ее имя (обычно так все и делают), первым управление получает вирус, код которого находится в СОМ-файле. Он создает СОМ-файл еще к одному или нескольким ЕХЕ-файлам (распространяется), а затем исполняет ЕХЕ-файл с име­нем, указанным в командной строке. Пользователь же думает, что работает только запущенная ЕХЕ-программа. Вирус-спутник обезвредить довольно просто — доста­точно удалить СОМ-файл.

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

Имя инфицируемого ЕХЕ-файла остается прежним, а расширение заменяется каким-либо другим, отличным от исполняемого (COM, EXE, BAT, DAT, OVL и др.). Затем на место ЕХЕ-файла копируется вирусный код. При запуске такой инфици­рованной программы управление получает вирусный код, находящийся в ЕХЕ-фай-ле. Инфицировав еще один или несколько ЕХЕ-файлов таким же образом, вирус возвращает оригинальному файлу исполняемое расширение (но не EXE, a COM, поскольку ЕХЕ-файл с таким именем занят вирусом), после чего исполняет его. Когда работа инфицированной программы закончена, ее запускаемому файлу воз­вращается расширение неисполняемого. Лечение файлов, зараженных вирусом этого типа, может быть затруднено, если вирус-спутник шифрует часть или все тело инфицируемого файла, а непосредственно перед исполнением его расшифро­вывает.

Вирусы, внедряющиеся в программу (Parasitic), — самые незаметные. Их код запи­сывается в программы, что существенно затрудняет лечение зараженных файлов и дает этому вирусу много преимуществ перед всеми вышеописанными вирусами: на диске не появляются лишние файлы, нет забот с копированием и переименованием файлов. Рассмотрим методы внедрения ЕХЕ-вирусов в ЕХЕ-файл. Эти вирусы услов­но можно разделить на три категории, использующие:

– стандартное заражение ЕХЕ -файлов;

– сдвиг;

– перенос.

При стандартном заражении вирус внедряется в конец файла, изменяет заголовок так, чтобы после загрузки файла управление получил вирус. Действие такого вируса мало чем отличается от действия СОМ-вируса. Оно похоже на заражение СОМ-фай-лов, но вместо задания в коде перехода в начало вируса корректируется собственно адрес точки запуска программы. После окончания работы вирус берет из сохраненно­го заголовка оригинальный адрес запуска программы, прибавляет к его сегментному компоненту значение регистра DS или ES (полученное при старте вируса) и передает управление на полученный адрес.

Внедрение вируса способом сдвига основано на размещении вируса в начале файла со сдвигом кода программы. Механизм заражения такой: тело инфицируемой програм­мы считывается в память, на ее место записывается код вируса, а на место последнего — код инфицируемой программы. Таким образом, код программы как бы «сдвигается» в файле на длину кода вируса. Отсюда и название способа — «способ сдвига». При за­пуске инфицированного файла вирус заражает еще один или несколько файлов. После этого он считывает в память код программы, записывает его в специально созданный на диске временный файл с расширением исполняемого файла (СОМ или ЕХЕ), и затем исполняет этот файл. Когда программа заканчивает работу, временный файл удаляется. Если при создании вируса не применялось дополнительных приемов защи­ты, то вылечить инфицированный файл очень просто. Для этого достаточно удалить код вируса в начале файла и программа снова будет работоспособной. Недостаток это­го метода заключается в том, что нужно считывать в память весь код инфицируемой программы.

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

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

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

Шпионские программные закладки

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

По мере развития средств защиты компьютерных систем совершенствуются и сред­ства нападения на них. Одной из самых больших угроз для этих систем является атака посредством использования программных закладок.

Программная закладка — это программа, скрытно внедренная в защищенную сис­тему (или дописанный фрагмент пользовательской программы), позволяющая зло­умышленнику путем модификации свойств системы защиты осуществлять несанкцио­нированный доступ к ресурсам системы (в частности, к конфиденциальной информации). Если программная закладка написана грамотно, то после внедрения в систему обнаружить ее стандартными средствами администрирования практически не­возможно, она может функционировать неограниченно долгое время, и злоумышлен­ник, внедривший закладку, имеет практически неограниченный доступ к системным ресурсам. Деструктивные действия, осуществляемые программными закладками пред­ставлены на рис. 2.22.

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

Перспективным направлением является внедрение программных закладок. Их за­дачей может быть получение информации о паролях, кодовых комбинациях обраба­тываемых данных, а также передача собранных сведений по заданному адресу в сети или по электронной почте. Эта угроза быстро может стать реальностью благодаря возможности «доставки» подобных программ в требуемый компьютер. Собственно способы те же, что и для компьютерных вирусов, да и сами закладки, по существу' являются вирусами. Классификация программных закладок в соответствии с метода­ми их внедрения в компьютерную сеть представлена на рис. 2.23.

Известны основные механизмы проникновения закладок:

– непосредственное подключение;

– косвенное подключение.

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

Косвенное подключение — это проникновение в систему че­рез подсистемы, не служащие ее основному предназначению (электропитание, стабилизация и т. д.). Один из приемов — внедрение вирусов путем подачи электромагнитных импульсов в схему питания. Над этим работа­ют японцы и американцы.

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

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

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

В иностранной прессе в качестве иллюстрации такой ситуации приводится воен­ный конфликт в Персидском заливе. Система ПВО Ирака оказалась заблокированной по неизвестной причине во время проведения операции «Буря в пустыне». В результа­те иракская сторона была вынуждена оставить без ответа бомбовые удары по своей территории. Несмотря на отсутствие исчерпывающей информации, многие иностран­ные специалисты высказывают предположение, что закупленные Ираком у Франции ЭВМ, входящие в комплекс технических средств системы ПВО, содержали специаль­ные управляемые электронные закладки, блокировавшие работу вычислительной сис­темы. Если они правильно оценивают события, это означает, что начался такой этап, когда при ведении боевых действий появилась возможность применять новое элект­ронно-информационное оружие.

Шпионские программные закладки могут выполнять хотя бы одно из перечислен­ных ниже действий:

– вносить произвольные искажения в коды программ, находящихся в оперативной памяти компьютера (программная закладка первого типа);

– переносить данные из одних областей оперативной или внешней памяти компь­ютера в другие (программная закладка второго типа);

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

Программные закладки можно классифицировать и по методу их внедрения в ком­пьютерную систему:

– программно-аппаратные закладки, ассоциированные с аппаратными средствами компьютера (их средой обитания, как правило, является BIOS — набор про­грамм, записанных в виде машинного кода в ПЗУ);

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

– драйверные закладки, ассоциированные с драйверами (файлами, в которых со­держится информация, необходимая операционной системе для управления под­ключенными к компьютеру периферийными устройствами);

– прикладные закладки в прикладном программном обеспечении общего назначе­ния (текстовые редакторы, утилиты, антивирусные мониторы и программные оболочки);

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

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

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

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

С учетом замечания о том, что программная закладка должна быть обязательно загружена в оперативную память компьютера, можно подразделить закладки на:

– резидентные;

– нерезидентные.

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

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

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

Среди программистов популярны пословицы: «Каждая последняя ошибка в про­грамме на самом деле является предпоследней» и «Если программа работает без оши­бок, это — Hello world (простейшая программа, с которой начинается большинство учебников программирования)». Предполагать, что программное обеспечение систе­мы защиты не содержит ошибок, наивно: ошибки, позволяющие злоумышленникам осуществлять НСД к ресурсам системы, время от времени обнаруживаются практи­чески во всех системах защиты. И если такая ошибка в системе присутствует, зло­умышленник может использовать ее для внедрения программной закладки. Известно множество примеров использования злоумышленниками подобных ошибок, в том числе и для внедрения программных закладок.

Даже если программное обеспечение системы защиты не содержит ошибок (что маловероятно), имеется реальная возможность внедрения программной закладки из-за неправильного проведения политики безопасности.

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

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

Но даже высококвалифицированные администраторы системы, как и все люди, иног­да совершают ошибки, и хотя ошибки достаточно быстро обнаруживаются и устраня­ются, для того чтобы программная закладка внедрилась в систему, бывает достаточно и 5—10 мин.

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

– программная закладка должна попасть в оперативную память компьютера (если закладка относится к первому типу, то она должна быть загружена до начала работы программы, являющейся целью воздействия закладки, или во время ра­боты этой программы);

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

Существуют три основные группы деструктивных воздействий программных зак­ладок:

– копирование информации (паролей, криптографических ключей, кодов доступа, конфиденциальных электронных документов), находящейся в оперативной или внешней памяти данной системы либо в памяти другой компьютерной системы, подключенной к ней через локальную или глобальную компьютерную сеть;

– изменение алгоритмов функционирования системных, прикладных и служеб­ных программ (например, внесение изменений в программу разграничения дос­тупа может привести к тому, что она разрешит вход в систему всем без исклю­чения пользователям вне зависимости от правильности введенного пароля);

– навязывание определенных режимов работы (например, блокирование записи на диск при удалении информации, при этом информация, которую требуется удалить, не уничтожается и может быть впоследствии скопирована хакером).

Можно выделить следующие характерные модели воздействия программных зак­ладок на компьютерную сеть:

– перехват (перехватчики паролей, клавиатурные шпионы и т. д.);

– искажение;

– уборка мусора;

– наблюдение и компрометация.

Обобщенная модель воздействия программных закладок на компьютерную сеть представлена на рис. 2.24.

В модели «перехват» программная закладка внедряется в ПЗУ, системное или при­кладное программное обеспечение и сохраняет всю или выбранную информацию, вво­димую с внешних устройств компьютерной системы или выводимую на эти устрой­ства, в скрытой области памяти локальной или удаленной компьютерной системы. Объектом сохранения, например, могут служить символы, введенные с клавиатуры (все повторяемые два раза последовательности символов), или документы, распечаты­ваемые на принтере.

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

В этой модели используются наиболее распространенные программные закладки, перехватывающие пароли пользователей операционных систем — перехватчики па­ролей. Перехватчики паролей были разработаны для операционных систем OS/370, MS DOS, Windows и UNIX. Внедренный в систему перехватчик паролей получает доступ к паролям, вводимым пользователями при входе в систему. Перехватив оче­редной пароль, закладка записывает его в специальный файл или в любое другое мес­то, доступное злоумышленнику, внедрившему закладку. Все перехватчики паролей можно подразделить на три основных вида.

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

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

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

Перехватчики паролей второго рода перехватывают все данные, вводимые с клави­атуры. Простейшие программные закладки этого типа просто сбрасывают данные на жесткий диск или в любое Другое место, доступное злоумышленнику.

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

Более совершенные закладки анализируют перехваченные данные и отсеивают информацию, заведомо не имеющую отношения к паролям. Несколько таких закладок было написано в разное время для операционной системы MS DOS.

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

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

Если операционная система допускает переключение раскладки клавиатуры при вводе пароля, то для этой операционной системы можно написать перехватчик паро­лей второго рода.

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

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

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

– статическое;

– динамическое.

Статическое искажение происходит всего один раз. При этом модифицируются параметры программной среды компьютерной системы, чтобы впоследствии в ней выполнялись нужные злоумышленнику действия. К статическому искажению отно­сится, например, внесение изменений в файл AUTOEXEC.BAT операционной систе­мы Windows 95/98, которые приводят к запуску заданной программы, прежде чем бу­дут запущены все другие, перечисленные в этом файле.

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

Динамическое искажение заключается в изменении каких-либо параметров систем­ных или прикладных процессов при помощи заранее активизированных закладок. Ди­намическое искажение можно условно разделить так:

– искажение на входе (когда на обработку попадает уже искаженный документ);

– искажение на выходе (когда искажается информация, отображаемая для воспри­ятия человеком или предназначенная для работы других программ).

Практика применения цифровой подписи в системах автоматизированного доку­ментооборота показала, что именно программная реализация цифровой подписи осо­бенно подвержена влиянию программных закладок типа «динамическое искажение», которые позволяют проводить фальшивые финансовые документы и вмешиваться в процесс разрешения споров по фактам неправомерного применения цифровой подпи­си. Например, в одной из программных реализаций широко известной криптосистемы PGP электронный документ, под которым требовалось поставить цифровую подпись, считывался блоками по 512 байт, причем процесс считывания считался завершенным, если в блоке данные занимали меньше 512 байт. Работа одной программной закладки, выявленной специалистами ФАПСИ, основывалась на навязывании длины файла. Эта закладка позволяла считывать только первые 512 байт документа, и в результате циф­ровая подпись определялась на основе этих 512 байт. Такая же схема действовала и при проверке поставленной под документом цифровой подписи. Следовательно, ос­тавшаяся часть этого документа могла быть произвольным образом искажена, и циф­ровая подпись под ним продолжала оставаться «корректной».

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

– искажение входной информации (изменяется поступающий на подпись элект­ронный документ);

– искажение результата проверки истинности цифровой подписи (вне зависимости от результатов работы программы цифровая подпись объявляется подлинной);

– навязывание длины электронного документа (программе цифровой подписи предъявляется документ меньшей длины, чем на самом деле, и в результате циф­ровая подпись ставится только под частью исходного документа);

– искажение программы цифровой подписи (вносятся изменения в исполняемый код программы с целью модификации алгоритма).

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

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

При инициировании динамической ошибки для некоторой операции генерируется ложная ошибка из числа тех ошибок, которые могут возникать при выполнении дан­ной операции. Например, для блокирования приема или передачи информации в ком­пьютерной системе может постоянно инициироваться ошибочная ситуация «МОДЕМ ЗАНЯТ». Или при прочтении первого блока информации длиной 512 байт может уста­навливаться соответствующий флажок для того, чтобы не допустить прочтения второ­го и последующих блоков и в итоге подделать цифровую подпись.

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

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

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

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

Работа с конфиденциальными электронными документами обычно сводится к пос­ледовательности следующих манипуляций с файлам

<== предыдущая лекция | следующая лекция ==>
Вредоносное программное обеспечение | Концепция защиты информации
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 1866; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.245 сек.