Почему моя антивирусная программа не обнаруживает это злонамеренное поведение? -- fork поле с участием antivirus пол Связанный проблема

Why does my antivirus program not detect this malicious behavior?


3
vote

проблема

русский

Я написал эту программу C и запустил мою систему Windows. Моя система повесила, а не даже диспетчер задач. Наконец, мне пришлось перезагрузить. Это явно злонамеренная программа, но мой антивирус не обнаруживает это. Почему?

 <код> #include<unistd.h> main() { while(1)     fork(); }   
Английский оригинал

I wrote this C program and ran on my Windows system. My system hanged and not even Task manager was opening. Finally, I had to reboot. This is clearly a malicious program, but my antivirus does not detect this. Why?

#include<unistd.h> main() { while(1)     fork(); } 
</div
     

Список ответов

3
 
vote
vote
Лучший ответ
 
Разработчики

обычно не используют AV-программное обеспечение из-за огромного штрафа скорости или, по крайней мере, они отключают его на подметке файловой системы, в которой они работают.

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

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

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

Кстати, вы управляли вилкой бомбой в качестве администратора?

 

Developers don't typically use AV software due to the huge speed penalty, or at least they disable it on the filesystem subtree they work in.

But even so, that isn't the sort of pattern AV software tries to detect. The AV software looks for files you are reading and writing and changes to system state, or specific identified viruses or their prior identified signatures.

And how would it decide, anyway? From the point of view of a program there would be a fine line between an overloaded web server and a fork bomb.

Finally, this sort of behavior is kind of self-correcting. If we really had viruses arriving with nothing more damaging than a fork bomb we might just declare victory and say "don't run that".

BTW, did you run the fork bomb as administrator?

</div
 
 
   
   
6
 
vote

Антивирусные программы не распознают вредоносное поведение - они распознают модели знания вирусов , которые уже в дикой природе (имена файлов, имена процессов, двоичные подписи и т. Д.).

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

 

Antivirus programs don't recognize malicious behavior - they recognize patterns of know viruses that are already in the wild (file names, process names, binary signatures, etc.).

This is why they can often be subverted since they are a reactive solution to an evolving problem.

</div
 
 
     
     
2
 
vote

Ваша программа не является вирусом, потому что она не может распространиться, то есть он не может заразить другие файлы / компьютеры

 

Your program is not a virus, because it cannot spread itself, that is, it can't infect other files/computers

</div
 
 
0
 
vote

Ну, это не злонамеренное поведение, больше похоже на логическую ошибку в вашем коде. Хотелось бы, чтобы там был антивирус один день, который мог бы обнаружить приложения, драйверы, обновления MS, продукты MS, которые вызывают BSOD's =)

 

Well, it is not malicious behavior, looks more like a logic error in your code. I wish there will be an antivirus one day that could detect applications, drivers, ms updates, ms products that cause BSOD's =)

</div
 
 
   
   

Связанный проблема

1  Выполнение нового процесса в C ++ и выполнение файла .jar  ( Forking a new process in c and executing a jar file ) 
Я пытаюсь написать программу, которая прочитает вывод из файла Java .jar, а также время от времени предоставляет ему ввод. В основном я надеюсь сделать програ...

2  Выложить в петли  ( Forking in loops ) 
сказать, у меня есть процесс. Я вил это, то у него есть родитель и ребенок. Я хочу, чтобы родитель написал от 2 до трубы и ребенка, чтобы прочитать из него. ...

30  Как убить детский процесс у родительского процесса?  ( How to kill a child process by the parent process ) 
Я создаю детский процесс, используя <код> fork() . Как родительский процесс может убить ребенка, если дочерний процесс не может завершить его выполнение в теч...

1  Должен ли обработать. Форк влияет на файл IO в Ruby?  ( Should process fork affect file io in ruby ) 
Я использовал Process.fork в наблюдаемый объект, но обнаружил, что он вмешивается с выходом из вывода файла объекта Observer. Когда я прокомментирую <код>...

0  вилка с GCC на окнах  ( Fork with gcc on windows ) 
Я использую вилку в моей программе в Windows, используя GCC (Cygwin). Он работает нормально в моей системе. Но я хочу бежать в других системах, которые не име...

2  О системе Fork System Call и глобальных переменных  ( About fork system call and global variables ) 
У меня есть эта программа в C ++, что вилки два новых процесса: <код> #include <pthread.h> #include <iostream> #include <unistd.h> #include <sys/types.h> #i...

0  Вопросы о DUP2 и нескольких потоках  ( Questions about dup2 and multiple thread ) 
Я встречу с очень строкой проблемой о DUP2 и нескольких потоках, код похож на это: <код> pipe out, err; int forkpid = fork(); if (forkpid == 0) { dup2(...

1  Как ограничить количество процессов Linux, порожденные в минуту?  ( How to limit number of linux processes spawned per minute ) 
Мое приложение требует ингибирования любых бомб вилков, созданных Python / Bash. Я использую ULIMIT программа, которая устанавливает ограничение на количест...

0  Проблема при использовании вилки () в программе GTK +  ( Problem when using fork in a gtk program ) 
Я написал программу, как ниже: <код> GtkWidget *pbar1, pbar2; ginit update_p_bar(gpointer pbar) { // get the value of process bar *pabr*, add it by 0.0...

1  Проектная часть двух репозиториев Git - как игнорировать разные файлы для каждого?  ( Project part of two git repositories how to ignore different files for each ) 
По одинаковым линиям, что и этот вопрос - Как я могу Клонировать все удаленные ветви с Git? , если я настроил репозиторий GitHub, как так: <код> // Approac...

18  Почему мой процесс заставляет файл можно прочитать бесконечно  ( Why does forking my process cause the file to be read infinitely ) 
Я варил всю мою программу на короткую главную, что реплицирует проблему, поэтому простите меня за это не иметь никакого смысла. input.txt - это текстовый фа...

2  Использование GDB для системы Fork () System Call  ( Using gdb for fork system call ) 
Я хочу использовать GDB для поиска различных деталей системы Volk (). Для этого я использовал одну точку останова на вилке () и оттуда, а оттуда я использую к...

0  FORK () возвращает PID существующего процесса  ( Fork returns pid of existing process ) 
Я пытаюсь исправить indroid init, чтобы разрешить разгрузку Android и загрузка Ubuntu на уже инициализированное оборудование. Здесь - это патч, я пытаюсь. <...

0  C: DUP2 () перед Exece  ( C dup2 before execv ) 
Для домашнего задания я должен написать базовую оболочку, включая перенаправление. Программа использует readLine для приглашения ввода, анализирует входную ст...

1  C: `Написать ошибку: плохой файловый дескриптор" после вилки, dup2 и execv  ( C write error bad file descriptor after fork dup2 and execv ) 
Продолжение на Эта проблема , но я буду повторить: Для домашнего задания я должен написать базовую оболочку, включая перенаправление. Программа использует ...