Понятие о вредоносных программах
Идея саморазмножающихся программ была впервые изложена в журнале Scientific Life в 1959 году. Позже она трансформировалась в идею «войны программ». В последнее время участились случаи воздействия на вычислительную систему при помощи специально созданных программ. Свыше 60% всех нарушений в компьютерных системах связаны именно с этими программами. Для обозначения всех программ такого рода был предложен термин «вредоносные программы» (РД Гостехкомиссии РФ). Под вредоносными программами в дальнейшем будем понимать такие программы, которые прямо или косвенно дезорганизуют процесс обработки информации или способствуют утечке или искажению информации. Ниже мы рассмотрим некоторые (самые распространенные) виды подобных программ: - «троянский конь», - вирус, - «червь», - «жадная» программа, - «захватчик паролей». «ТРОЯНСКИЙ КОНЬ (ТРОЯНСКАЯ ПРОГРАММА)» (Trojan Horse) - программа, выполняющая в дополнение к основным (проектным и документированным) дополнительные, но не описанные в документации действия. Аналогия с древнегреческим «троянским конем» таким образом вполне оправдана - и в том и другом случае в не вызывающей подозрений оболочке таится угроза. Программы такого типа являются серьезной угрозой безопасности АС. По характеру угрозы «троянский конь» относится к активным угрозам, реализуемым программными средствами, работающими в пакетном режиме. Он может угрожать любому объекту АС. Наиболее опасным является опосредованное воздействие, при котором «троянский конь» действует в рамках полномочий одного пользователя, но в интересах другого пользователя, установить которого порой невозможно. Опасность «троянского коня» заключается в дополнительном блоке команд, тем или иным образом вставленном в исходную безвредную программу, которая затем предлагается (дарится, продается, подменяется) пользователям АС. Этот блок команд может срабатывать при наступлении некоторого условия (даты, времени и т.д., либо по команде извне). Запустивший такую программу подвергает опасности как себя и свои файлы, так и всю АС в целом.
Наиболее опасные действия «троянский конь» может выполнять, если запустивший ее пользователь обладает расширенным набором привилегий. В этом случае злоумышленник, составивший и внедривший «троянского коня», и сам этими привилегиями не обладающий, может выполнить несанкционированные привилегированные функции чужими руками. Или, например, злоумышленника очень интересуют наборы данных пользователя, запустившего такую программу. Последний может даже не обладать расширенным набором привилегий - это не помешает выполнению несанкционированных действий. «Троянский конь» - одна из наиболее опасных угроз безопасности АС. Радикальным способом защиты от этой угрозы является создание замкнутой среды исполнения программ. Желательно также, чтобы привилегированные и непривилегированные пользователи работали с разными экземплярами прикладных программ, которые должны храниться и защищаться индивидуально. При соблюдении этих мер вероятность внедрения программ подобного рода будет достаточно низкой. Наиболее распространенной разновидностью «троянских программ» являются широко известные программы массового применения (редакторы, игры, трансляторы и т.п.), в которые встроены так называемые «логические бомбы», срабатывающие по наступлении некоторого события. В свою очередь разновидностью «логической бомбы» является «бомба с часовым механизмов», запускаемая в определенные моменты времени. Следует подчеркнуть, что «троянские программы» не являются саморазмножающимися и распространяются по ЛВС самими программистами, в частности, посредством общедоступных банков данных и программ.
Суммарные потери от троянской программы «любовный вирус» за 2000 год оцениваются специалистами в 10 млрд. $. «Троянские программы» принято считать предшественниками программных вирусов. ВИРУС (computer virus) - это программа, которая может заражать другие программы путем включения в них своей, возможно модифицированной, копии, причем последняя сохраняет способность к дальнейшему размножению. Это исторически первое определение вируса. Хотя с той поры прошло много времени (более 7 лет) и многие делали попытки дать четкое определение вируса - до сих пор его все-таки не существует. Дело в том, что все предлагаемые определения характеризуют не столько сущность вируса, сколько его различные свойства, которые позволяют либо обнаружить вирус, либо защититься от его воздействия. Принципиальное отличие вируса от «троянской программы» состоит в том, что вирус после запуска его в ЛВС существует самостоятельно (автономно) и в процессе своего функционирования заражает (инфицирует) программы путем включения (имплантации) в них своего текста. Таким образом, вирус представляет собой своеобразный генератор «троянских программ». Программы, зараженные вирусом, называют также вирусоносителями. Соответственно, вирус может быть охарактеризован двумя основными особенностями: - способностью к самовоспроизведению. Это свойство означает, что за время своего существования на компьютере вирус должен хотя бы один раз воспроизвести свою копию на долговременном носителе; - способностью к вмешательству (получению управления) в вычислительный процесс. Это свойство является аналогом «паразитирования» в живой природе, которое свойственно биологическим вирусам. И то и другое свойство являются определяющим - при отсутствии хотя бы одного из них вирус существовать не может. Это определение не имеет прикладной направленности. Из него невозможно сделать вывод, каким образом следует защититься от воздействия вирусов. Как и «троянские кони» вирусы относятся к активным программным средствам. Классификация вирусов, используемые ими методы заражения, способы борьбы с ними достаточно хорошо изучены и описаны. В последние несколько лет эта проблема в нашей стране стала особенно актуальной, поэтому очень многие занимаются ею. Мы остановимся здесь только на некоторых аспектах проблемы вирусов.
Во-первых, проблема защиты от вирусов может рассматриваться с двух сторон: как самостоятельная проблема и как одна из сторон проблемы общей защиты АС. И тот, и другой подходы имеют свои отличительные особенности и, соответственно, свои собственные методы решения проблемы. Заметим, что пока ни тот, ни другой путь пока не привел к успеху. Во-вторых, в последнее время удалось более или менее ограничить масштабы заражений и разрушений. Тут сыграли свою роль и превентивные меры, и новые антивирусные средства, и пропаганда всех этих мер. Вообще говоря, проблема вирусов может стать тем толчком, который приведет к новому осмыслению как концепций защиты, так и принципов автоматизированной обработки информации в целом. «ЧЕРВЬ»(worm) - программа, распространяющаяся через сеть и не оставляющая своей копии на магнитном носителе. «Червь» использует механизмы поддержки сети для определения узла, который может быть заражен. Затем с помощью тех же механизмов передает свое тело или его часть на этот узел и либо активизируется, либо ждет для этого подходящих условий. Наиболее известный представитель этого класса - вирус Морриса (или, вернее, «червь Морриса», назван по фамилии создателя), поразивший сеть Internet в 1988 г (за два часа распространения было заражено 6000 узлов сети). Наиболее подходящей средой распространения «червя» является сеть, все пользователи которой считаются дружественными и доверяют друг другу. Отсутствие защитных механизмов как нельзя больше способствует уязвимости сети. Самый лучший способ защиты от «червя» - принять меры предосторожности против несанкционированного доступа к сети. Таким образом, как вирусы, так «троянские кони» и «черви» на сегодняшний день являются одной из самых опасных угроз АС. Для защиты от этих разновидностей вредоносных программ необходимо создание замкнутой среды исполнения программ, разграничение доступа к исполняемым файлам, контроль целостности исполняемых файлов и системных областей, тестирование приобретаемых программных средств.
«ЖАДНЫЕ» ПРОГРАММЫ (greedy program) - это программы, которые при выполнении стремятся монополизировать какой-либо ресурс системы, не давая другим программам возможности использовать его. Доступ таких программ к ресурсам системы обычно приводит к нарушению ее доступности. Естественно, такая атака будет активным вмешательством в работу системы. Непосредственной атаке обычно подвергаются объекты системы: процессор, оперативная память, устройства ввода-вывода. Многие компьютеры, особенно в исследовательских центрах, имеют фоновые программы, выполняющиеся с низким приоритетом. Они обычно производят большой объем вычислений, а результаты их работы требуются не так часто. Однако при повышении приоритета такая программа может блокировать все остальные. Такая программа и будет «жадной». Тупиковая ситуация возникает, когда «жадная» программа бесконечна (например, исполняет заведомо бесконечный цикл). Однако во многих операционных системах существует возможность ограничения времени процессора, используемого задачей. Это не относится к операциям, выполняющимся в зависимости от других программ, например, к операциям ввода-вывода, которые завершаются асинхронно к основной программе; время их выполнения не включается в счет времени программы. Перехватывая асинхронное сообщение о завершении операции ввода-вывода и посылая вновь запрос на новый ввод-вывод, можно добиться по-настоящему бесконечной программы. Такие атаки называют также асинхронными. Другой пример «жадной» программы - программа, захватывающая слишком большую область оперативной памяти. В оперативной памяти последовательно размещаются данные, например подкачиваемые с внешнего носителя. В конце концов, память может оказаться во владении одной программы, и выполнение других окажется невозможным. Обычно «жадные» программы осуществляют захват одного из трех основных ресурсов системы: времени процессора, оперативной памяти, каналов ввода-вывода. Однако возможен захват и любых других ресурсов системы: блокирование ее работы, или же использование побочного результата деятельности какой-либо программы (например, вируса). Бороться с захватом ресурсов можно путем введения различных ограничений для выполняемых программ (на время процессора, на количество операций ввода-вывода, на разрешенный объем оперативной памяти и т.д.), а также постоянным операторским контролем за их соблюдением.
ЗАХВАТЧИКИ ПАРОЛЕЙ (password grabber). Это программы специально предназначенные воровства паролей. Они выводят на экран терминала (друг за другом): пустой экран, экран, появляющийся после крушения системы или сигнализирующий об окончании сеанса работы. При попытке входа имитируется ввод имени и пароля, которые пересылаются владельцу программы-захватчика, после чего выводится сообщение об ошибке ввода и управление возвращается операционной системе. Пользователь, думающий, что допустил ошибку при наборе пароля, повторяет вход и получает доступ к системе. Однако его имя и пароль уже известны владельцу программы-захватчика. Перехват пароля может осуществляться и другим способом - с помощью воздействия на программу, управляющую входом пользователей в систему и ее наборы данных. Захват пароля является активным, непосредственным воздействием на АС в целом. Для предотвращения этой угрозы, перед входом в систему необходимо убедиться, что вы вводите имя и пароль именно системной программе входа, а не какой-то другой. Кроме того, необходимо неукоснительно придерживаться правил использования паролей и работы с системой. Большинство нарушений происходят не из-за хитроумных атак, а из-за элементарной небрежности. Не покидайте рабочее место, не выйдя из системы. Постоянно проверяйте сообщения о дате и времени последнего входа и количестве ошибочных входов. Эти простые действия помогут избежать захвата пароля. Кроме описанных выше, существуют и другие возможности компрометации пароля. Не записывайте команды, содержащие пароль, в командные процедуры, старайтесь избегать явного объявления пароля при запросе доступа по сети; эти ситуации можно отследить и захватить пароль. Не используйте один и тот же пароль для доступа к разным узлам. Соблюдение правил использования паролей - необходимое условие надежной защиты. Виды и типы вирусов Наиболее опасны из всех вредоносных программ – вирусы. Рассмотрим их более подробно. Под программным вирусом (ПВ), как было отмечено выше, понимается автономно функционирующая программа, обладающая способностью к самовключению в тела других программ и последующему самовоспроизведению и самораспространению в информационно-вычислительных сетях и отдельных ЭВМ. Программные вирусы представляют собой весьма эффективное средство реализации практически всех угроз безопасности ЛВС. Потому вопросы анализа возможностей ПВ и разработки способов противодействия вирусам в настоящее время приобрели значительную актуальность и образовали одно из наиболее приоритетных направлений работ по обеспечению безопасности ЛВС. Зараженные программы (исполняемого файла применительно к наиболее распространенной операционной системе РС-подобных ПЭВМ), как правило, выполняются таким образом, чтобы вирус получил управление раньше самой программы, Для этого он либо встраивается в начало программы, либо имплантируется в ее тело так, что первой командой зараженной программы является безусловный переход на вирус, текст которого заканчивается аналогичной командой безусловного перехода на команду вирусоносителя, бывшей первой до заражения. Получив управление, вирус выбирает следующий файл, заражает его, возможно, выполняет какие-либо другие действия, после чего отдает управление вирусоносителю. «Первичное заражение» происходит в процессе поступления инфицированных программ из памяти одной машины в память другой, причем в качестве средства перемещения этих программ могут использоваться как магнитные носители (дискеты), так и каналы ЛВС. Вирусы, использующие для размножения каналы ЛВС, принято называть сетевыми. Цикл жизни вируса обычно включает следующие периоды: внедрения, инкубационный, репликации (саморазмножения), проявления. В течении инкубационного периода вирус пассивен, что усложняет задачу его поиска и нейтрализации. На этапе проявления вирус выполняет свойственные ему целевые функции, например необратимую коррекцию информации на магнитных носителях (жестких либо гибких). Физическая структура вируса достаточно проста. Он состоит из «головы» и, возможно, «хвоста». Под головой вируса понимается его компонента, получающая управление первой. Хвост - это часть вируса, расположенная в тексте зараженной программы отдельно от головы. Вирусы, состоящие из одной головы, называют несегментированными, тогда как вирусы, содержащие голову и хвост, - сегментированными. По характеру размещения в памяти ПЭВМ принято делить на: - файловые нерезидентные, - файловые резидентные, - бутовые, - гибридные, - пакетные. Существуют и другие классы вирусов, соответствующие другим классификационным признакам. Например, стелс-вирусы (вирусы-невидими), макровирусы (заражающие, как правило, оффисные документы) и др. Однако в данном учебнике рассмотрены только «классические» примеры, выдержавшие проверку временем по длительности своего существования. Файловый нерезидентный вирус целиком размещается в исполняемом файле, в связи с чем он активизируется только в случае активизации вирусоносителя, а по выполнении необходимых действий возвращает управление самой программе. При этом выбор очередного файла для заражения осуществляется вирусом посредством поиска по каталогу. Файловый резидентный вирус отличается от нерезидентного тем, что заражает не только исполняемые файлы, находящиеся во внешней памяти, но и оперативную память ПЭВМ. С чисто технологической точки зрения ОП можно считать файлом, к которому применимы все описанные выше способы имплантации. Однако резидентный вирус отличается от нерезидентного как логической структурой, так и общим алгоритмом функционирования. резидентный вирус состоит из так называемого инсталлятора и программ обработки прерываний. Инсталлятор получает управление при активизации вирусоносителя и инфицирует оперативную память путем размещения в ней управляющей части вируса и замены адресов в элементах вектора прерываний на адреса своих программ, обрабатывающих эти прерывания. На так называемой фазе слежения, следующей за описанной фазой инсталляции, при возникновении какого-либо прерывания управление получает соответствующая программа вируса. В связи с существенно более универсальной по сравнению с нерезидентными вирусами общей схемой функционирования резидентные вирусы могут реализовывать самые разные способы инфицирования. Наиболее распространенными способами являются инфицирование запускаемых программ, а также файлов при их открытии или чтении. Одной из разновидностей резидентных вирусов являются так называемые «бутовые вирусы». Отличительной особенностью последних является инфицирование загрузочного (бут-сектора) магнитного носителя (гибкого или жесткого диска). При этом инфицированными могут быть как загружаемые, так и незагружаемые дискеты. Голова бутового вируса всегда находится в бут-секторе (единственном для гибких дисков и одном из двух - для жестких), а хвост - в любой другой области носителя. Наиболее безопасным для вируса способом считается размещение хвоста в так называемых псевдосбойных кластерах, логически исключенных из числа доступных для пользования. Существенно, что хвост бутового вируса всегда содержит копию оригинального (исходного) бут-сектора. Механизм инфицирования, реализуемый бутовыми вирусами, таков. При загрузке операционной системы с инфицированного диска вирус в силу своего положения на нем (независимо от того, с дискеты или винчестера производится загрузка) получает управление и копирует себя в оперативную память. Затем он модифицирует вектор прерывания таким образом, чтобы прерывание по обращению к диску обрабатывалось собственным обработчиком прерываний вируса, и запускает загрузчик операционной системы. Благодаря перехвату прерываний «бутовые вирусы» могут реализовать столь же широкий набор способов инфицирования и целевых функций, сколь и файловые резидентные вирусы. Близость механизмов функционирования бутовых и файловых резидентных вирусов сделала возможным и естественным проявление файлово-бутовых, или гибридных, вирусов, инфицирующих как файлы, так и бут-секторы. Особенностью пакетного вируса является его головы в пакетном файле. При этом голова представляет собой строку или программу на языке управления заданиями операционной системы. Сетевые вирусы, называемые также автономными репликативными программами, или, для краткости, репликаторами, используют для размножения средства сетевых операционных систем ЛВС. Наиболее просто реализуется размножение в тех случаях, когда протоколами ЛВС предусмотрен обмен программами. Однако, как показывает опыт, размножение возможно и в тех случаях, когда указанные протоколы ориентированны только на обмен сообщениями. Эффекты, называемые вирусами в процессе реализации ими целевых функций, принято делить на следующие целевые группы: - искажение информации в файлах либо таблице размещения файлов; - имитация сбоев аппаратных средств; - создание звуковых и визуальных эффектов, включая, например. отображение сообщений, вводящих оператора в заблуждение или затрудняющих его работу; - инициирование ошибок в программах пользователей или операционной системы.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|