squid.conf
http_port 192.168.4.1:3128 transparent
icp_port 0
cache_mem 8 MB
maximum_object_size_in_memory 8 KB
cache_dir ufs /usr/local/squid/var/cache 100 16 256
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl lan src 192.168.4.0/24
acl denydomain dstdomain "/usr/local/squid/etc/denydomain.acl"
acl denyurl url_regex "/usr/local/squid/etc/denyurl.acl"
acl denyip dst "/usr/local/squid/etc/denyip.acl"
acl vip src 192.168.4.17
acl ports port 80
acl ports port 8080
acl ports port 443
acl ports port 21
acl connect method CONNECT
http_access allow vip ports
http_access allow vip ports connect
http_access deny lan denydomain
http_access deny lan denyip
http_access allow lan ports
http_access allow lan ports connect
http_access deny all
Пример файла denydomain.acl:
foto.rambler.ru
play.yandex.ru
Пример файла denyurl.acl:
^http://$sex$
^http://$xxx$
Пример файла denyip.acl
81.19.66.164
213.180.204.20
Понятие компьютерного вируса
Основная трудность строгого определения понятия вирус, заключается в том, что практически все отличительные черты вируса (внедрение в другие объекты, скрытность, потенциальная опасность и проч.) либо присущи другим программам, либо существуют вирусы, которые не содержат указанных выше отличительных черт.
Основная особенность компьютерных вирусов - возможность их самопроизвольного внедрения в различные объекты операционной системы - присуща многим программам, которые не являются вирусами.
Обязательным свойством компьютерного вируса является возможность создавать свои дубликаты и внедрять их в вычислительные сети или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Классификация компьютерных вирусов
Вирусы можно разделить на классы по основным признакам:
· среда обитания;
· операционная система (OC);
· особенности алгоритма работы;
· деструктивные возможности.
По среде обитания вирусы подразделяются на:
· файловые;
· загрузочные;
· макро;
· сетевые.
Файловые вирусы либо различными способами внедряются в выполняемые файлы, либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы).
Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор.
Макро-вирусы заражают файлы-документы и электронные таблицы нескольких популярных редакторов.
Сетевые вирусы используют для своего распространения протоколы или команды компьютерных сетей и электронной почты.
Существует большое количество сочетаний - например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, используют стелс и полиморфик-технологии. Другой пример такого сочетания - сетевой макро-вирус, который не только заражает редактируемые документы, но и рассылает свои копии по электронной почте.
Операционная система
Заражаемая операционная система (вернее, ОС, объекты которой подвержены заражению) является вторым уровнем деления вирусов на классы. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких OS - DOS, Windows, Win95/NT, OS/2 и т.д. Макро-вирусы заражают файлы форматов Word, Excel, Office. Загрузочные вирусы также ориентированы на конкретные форматы расположения системных данных в загрузочных секторах дисков.
Среди особенностей алгоритма работы вирусов выделяются:
· резидентность;
· использование стелс-алгоритмов;
· самошифрование и полиморфичность;
· использование нестандартных приемов.
Резидентный вирус при инфицировании оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки операционной системы. Нерезидентные вирусы не заражают память компьютера и сохраняют активность ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
Резидентными можно считать макро-вирусы, поскольку они постоянно присутствуют в памяти компьютера на все время работы зараженного редактора. При этом роль операционной системы берет на себя редактор, а понятие «перезагрузка операционной системы» трактуется как выход из редактора.
В многозадачных операционных системах время «жизни» резидентного вируса также может быть ограничено моментом закрытия зараженного окна, а активность загрузочных вирусов в некоторых операционных системах ограничивается моментом инсталляции дисковых драйверов OC.
Использование стелс-алгоритмов позволяет вирусам полностью или частично скрыть себя в системе. Наиболее распространенным стелс-алгоритмом является перехват запросов OC на чтение/запись зараженных объектов. Стелс-вирусы при этом либо временно лечат их, либо «подставляют» вместо себя незараженные участки информации. В случае макро-вирусов наиболее популярный способ — запрет вызовов меню просмотра макросов.
Самошифрование и полиморфичность используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса. Полиморфик-вирусы - это труднообнаружимые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.
Различные нестандартные приемы часто используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре OC, защитить от обнаружения свою резидентную копию, затруднить лечение от вируса и т.д.
По деструктивным возможностям вирусы можно разделить на:
· безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
· неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами;
· опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;
· очень опасные, в алгоритм работы которых заведомо заложены процедуры, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти, и даже способствовать быстрому износу движущихся частей механизмов - вводить в резонанс и разрушать головки некоторых типов винчестеров.
Но даже если в алгоритме вируса не найдено ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью назвать безвредным, так как проникновение его в компьютер может вызвать непредсказуемые и порой катастрофические последствия.
Загрузочные вирусы
Рассмотрим схему функционирования очень простого загрузочного вируса, заражающего дискеты. Мы сознательно обойдем все многочисленные тонкости, которые неизбежно встретились бы при строгом разборе алгоритма его функционирования.
В загрузочных вирусах выделяют две части - т.н. голову и т.н. хвост. Хвост, вообще говоря, может быть пустым.
Заражая диск, вирус производит следующие действия:
· выделяет некоторую область диска и помечает ее как недоступную операционной системе, это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad)
· копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор
· замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой
· организует цепочку передачи управления согласно схеме.
Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору.
При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record - главная загрузочная запись). Если ваш жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные секторы отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов - программа начальной загрузки в MBR и программа начальной загрузки в бут-секторе загрузочного диска.
Файловые вирусы
В отличие от загрузочных вирусов, которые практически всегда резидентны, файловые вирусы совсем не обязательно резидентны. Пусть имеется инфицированный исполняемый файл. При запуске такого файла вирус получает управление, производит некоторые действия и передает управление «хозяину» (хотя еще неизвестно, кто в такой ситуации хозяин).
Вирус ищет новый объект для заражения - подходящий по типу файл, который еще не заражен (в том случае, если вирус «приличный», а то попадаются такие, что заражают сразу, ничего не проверяя). Заражая файл, вирус внедряется в его код, чтобы получить управление при запуске этого файла. Кроме своей основной функции - размножения, вирус вполне может сделать что-нибудь замысловатое (сказать, спросить, сыграть) - это уже зависит от фантазии автора вируса. Если файловый вирус резидентный,, то он установится в память и получит возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла. Заражая исполняемый файл, вирус всегда изменяет его код - следовательно, заражение исполняемого файла всегда можно обнаружить. Но, изменяя код файла, вирус не обязательно вносит другие изменения:
- он не обязан менять длину файла;
- неиспользуемые участки кода;
- не обязан менять начало файла.
Полиморфные вирусы
Полиморфные вирусы - вирусы, модифицирующие свой код в зараженных программах таким образом, что два экземпляра одного и того же вируса могут не совпадать ни в одном бите.
Такие вирусы не только шифруют свой код, используя различные пути шифрования, но и содержат код генерации шифровщика и расшифровщика, что отличает их от обычных шифровальных вирусов, которые также могут шифровать участки своего кода, но имеют при этом постоянный код шифровальщика и расшифровщика.