Так что я недавно думал о вирусах и удивлялся, как именно сохраняются антивирусы? Если учесть, что кто-то, кто программировал несколько недель, мог взломать что-то, делающее неприятные, неприятные вещи с чьим-то ПК, одно только количество сделало бы простой список запрещающих хэшей, так как же это делают антивирусы? Контролируют ли они активность процессов и имеют ли правило 3 ударов для выполнения вирусоподобных действий? И если так, что мешает ему запускать совершенно безобидные вещи (например, я перемещаю файлы в \ system32)?
Я немного погуглил, но обычные места не особо помогли, и я не смог найти здесь дупла, поэтому подумал, что было бы неплохо спросить :)
security
anti-virus
Phoshi
источник
источник
Ответы:
Эта статья 2002 года рассказывает о создании антивирусного движка.
Есть также статья об эвристических методах обнаружения инфекций. Это также интересное чтение.
источник
Около года назад я посетил лекцию Микко Хюппонена, одного из главных исследователей F-Secure. Он показал свою автоматизированную сеть тестирования, где они создают виртуальные машины для каждого отправленного им образца, анализируют его структуру, позволяют ему работать, регистрируют все, что он делает, сопоставляют его с предыдущими образцами и генерируют сводку, которую человек может проверить позже. Если человек приходит к выводу, что это вирус, система автоматически генерирует сигнатуру обнаружения и отправляет обновление клиентам. Я полагаю, что у других поставщиков есть подобные системы, чтобы поддерживать свои базы данных сигнатур в актуальном состоянии.
источник
Из Как работает антивирус? (AntivirusWorld):
Антивирусная программа - это компьютерная программа, которая может использоваться для сканирования файлов с целью выявления и устранения компьютерных вирусов и других вредоносных программ (вредоносных программ).
Антивирусное программное обеспечение обычно использует два различных метода для достижения этой цели:
Подход с использованием словаря вирусов При использовании подхода с использованием словаря вирусов, когда антивирусное программное обеспечение проверяет файл, оно относится к словарю известных вирусов, которые были идентифицированы автором антивирусного программного обеспечения. Если фрагмент кода в файле совпадает с каким-либо вирусом, идентифицированным в словаре, антивирусное программное обеспечение может либо удалить файл, поместить его в карантин так, чтобы файл был недоступен для других программ, а его вирус не смог распространяться или пытался восстановить файл, удалив сам вирус из файла.
Чтобы добиться успеха в среднесрочной и долгосрочной перспективе, подход к вирусному словарю требует периодической онлайн-загрузки обновленных записей вирусного словаря. По мере того как новые вирусы выявляются «в дикой природе», гражданские и технически склонные пользователи могут отправлять свои зараженные файлы авторам антивирусного программного обеспечения, которые затем включают информацию о новых вирусах в свои словари.
Основанное на словаре антивирусное программное обеспечение обычно проверяет файлы, когда операционная система компьютера создает, открывает и закрывает их; и когда файлы по электронной почте. Таким образом, известный вирус может быть обнаружен сразу после получения. Программное обеспечение также обычно может быть запланировано регулярно проверять все файлы на жестком диске пользователя.
Хотя словарный подход считается эффективным, авторы вирусов пытались быть на шаг впереди такого программного обеспечения, создавая «полиморфные вирусы», которые шифруют части себя или иным образом модифицируют себя как метод маскировки, чтобы не соответствовать сигнатуре вируса. в словаре.
Подход с подозрительным поведением Подход с подозрительным поведением, напротив, не пытается идентифицировать известные вирусы, а вместо этого отслеживает поведение всех программ. Например, если одна программа пытается записать данные в исполняемую программу, это помечается как подозрительное поведение, и пользователь получает уведомление об этом и спрашивает, что делать.
В отличие от словарного подхода, подход с подозрительным поведением, таким образом, обеспечивает защиту от совершенно новых вирусов, которых еще нет в каких-либо вирусных словарях. Тем не менее, это также звучит большое количество ложных срабатываний, и пользователи, вероятно, становятся нечувствительными ко всем предупреждениям. Если пользователь нажимает «Принять» при каждом таком предупреждении, антивирусное программное обеспечение для него, очевидно, бесполезно. Эта проблема особенно усугубилась за последние 7 лет, так как многие другие разработчики не вредоносных программ решили модифицировать другие .exes без учета этой ложной положительной проблемы. Таким образом, большинство современных антивирусных программ используют эту технику все реже и реже.
Другие способы обнаружения вирусов. Некоторые антивирусные программы пытаются эмулировать начало кода каждого нового исполняемого файла, который выполняется перед передачей управления исполняемому файлу. Если программа, кажется, использует самоизменяющийся код или иным образом выглядит как вирус (она сразу пытается найти другие исполняемые файлы), можно предположить, что исполняемый файл заражен вирусом. Однако этот метод приводит к множеству ложных срабатываний.
Еще один метод обнаружения использует песочницу. Песочница эмулирует операционную систему и запускает исполняемый файл в этой симуляции. После завершения программы песочница анализирует изменения, которые могут указывать на наличие вируса. Из-за проблем с производительностью этот тип обнаружения обычно выполняется только во время сканирования по требованию.
Проблемы, вызывающие озабоченность
Макровирусы, возможно, самые разрушительные и широко распространенные компьютерные вирусы, можно было бы предотвратить гораздо дешевле и эффективнее, и при этом не нужно было бы покупать все антивирусные программы всем пользователям, если бы Microsoft исправила недостатки безопасности в Microsoft Outlook и Microsoft Office, связанные с выполнение загруженного кода и способность макросов документа распространяться и наносить ущерб.
Обучение пользователей так же важно, как антивирусное программное обеспечение; простое обучение пользователей правилам безопасной работы на компьютере, таким как не загружать и не запускать неизвестные программы из Интернета, замедлит распространение вирусов без необходимости использования антивирусного программного обеспечения.
Пользователи компьютеров не всегда должны иметь права администратора на своем компьютере. Если бы они просто работали в пользовательском режиме, то некоторые типы вирусов не смогли бы распространяться.
Словарный подход к обнаружению вирусов часто недостаточен из-за постоянного создания новых вирусов, однако подход с подозрительным поведением неэффективен из-за ложноположительной проблемы; следовательно, современное понимание антивирусного программного обеспечения никогда не победит компьютерные вирусы.
Существуют различные методы шифрования и упаковки вредоносного программного обеспечения, которые делают даже известные вирусы необнаружимыми для антивирусного программного обеспечения. Обнаружение этих «замаскированных» вирусов требует мощного механизма распаковки, который может расшифровать файлы перед их проверкой. К сожалению, многие популярные антивирусные программы не имеют этого и, следовательно, часто не могут обнаружить зашифрованные вирусы.
Компании, продающие антивирусное программное обеспечение, похоже, имеют финансовый стимул для того, чтобы вирусы писались и распространялись, а общественность паниковала из-за угрозы.
(Мне нравится эта статья, и я просто копирую и вставляю из AntivirusWorld.)
источник
Фоши, твой вопрос очень интересный, но я предлагаю тебе начать квест с другого. Я советую это, потому что ответы на вопрос, который вы задали, могут ввести вас в заблуждение.
Я предлагаю вам начать с размышлений о том, что вы считаете вирусом, каково его определение.
Авторы элитных вирусов - исследователи безопасности, а не сценаристы. Их определение вируса: «вирус - это кусок кода, который может размножаться». Вот и все. Как вы можете видеть, здесь нет никаких деструктивных особенностей. Все вирусы обязательно являются злыми - это FUD, который вы получаете от проприетарных производителей антивирусов, чтобы они могли продавать свое программное обеспечение.
ИМХО, разумно относиться к вирусам как к части всей программной экосистемы, а не как к внешним злым «инопланетянам».
источник
Один очень важный способ взглянуть на вирусы - это наоборот. Как Вирусы компрометируют системы. Обычно это связано с уязвимостями программного обеспечения. Антивирусное программное обеспечение знает об этих уязвимостях и ищет программное обеспечение, влияющее на эти уязвимости. В любом случае, вирусы всегда делают что-то. Поэтому им нужен рабочий процесс, чтобы делать то, что у них получается лучше всего. Иногда это в существующем, иногда они создают себя.
Однако вирусы MOST работают аналогичным образом, что позволяет вирус-сканеру различать их. Много разных вирусов используют одну и ту же уязвимость!
http://en.wikipedia.org/wiki/List_of_computer_viruses
источник