Как распознать вредоносный код?

ЗНАЙТЕ! Создание шпионских программ, компьютерных вирусов и подобных гадостей может быть незаконным там, где вы живете, и считается почти неэтичным почти всеми. Тем не менее, мне нужно попросить об этом повысить осведомленность о том, как легко создать его. Я спрашиваю об этом после того, как W32/Induc-A был представлен этому миру кем-то, кто придумал противный способ его распространения. Поэтому я хочу знать, как можно создать вирус, чтобы я мог их распознать в будущем!

Недавно был обнаружен новый вирус, который распространяется сам путем замены копий библиотечного кода разработчиков. На самом деле, через исходный код Delphi 4-7. Что произошло, так это наличие вируса в дикой природе, который ищет на компьютере файл SYSCONST.PAS, к которому он добавит себя как исходный код. Этот файл является исходным файлом для библиотек времени выполнения Delphi. (Этот исходный код времени исполнения доступен для разработчиков Delphi.) В результате, после заражения программист создал бы много новых версий этого вируса, даже не зная об этом. Поскольку антивирусные сканеры иногда генерируют ложные срабатывания, многие разработчики могут, таким образом, решить игнорировать предупреждения сканера и, возможно, даже отключат их сканер при создании своего проекта. Чтобы усугубить ситуацию, их проект может даже вызвать сканеры своих клиентов, поэтому, вероятно, эти программисты не будут проверять исходный код, но просто попытаются каким-то образом обмануть сканер. То есть, если вирусный сканер даже способен распознавать вирус, что маловероятно. Таким образом, разработчики программного обеспечения могут создавать вирусы, не понимая, что мы делаем!

Итак, как создать вирус? Простой: получите исходный код, зараженный вирусом, и все готово!

Хорошо, поэтому исходный код Delphi с 4 по 7 может быть заражен. Все разработчики Delphi, проверьте исходные файлы! Дело - всего лишь доказательство концепции и, по-видимому, оно может быть очень успешным. Кроме того, большинство антивирусных сканеров не будут проверять исходный код, а просто сосредоточиться на исполняемых файлах. Этот вирус может остаться незамеченным в течение долгого времени.

Этот вирус также был успешным, потому что он неправильно использовал исходный код. Delphi - это коммерческий проект, и исходный код доступен. Но кто уверен, что эти хакеры не будут атаковать проекты с открытым исходным кодом подобным образом? Есть много проектов с открытым исходным кодом, и кто собирается проверить их всех, чтобы убедиться, что все они ведут себя прилично? И если кто-то проверяет код, сможет ли он узнать, является ли что-то вредоносным кодом?

Итак, чтобы убедиться, что мы можем распознать вредоносный исходный код, я должен спросить:. Как создать вирус? Как распознать код, создающий вирус? Что будет делать большинство вредоносных программ?


Немного обсуждается исходный код среды исполнения Delphi, причем этот код является открытым исходным кодом или нет. Borland использует двойную лицензию для своего исходного кода с того момента, когда они начали поддерживать Linux с Kylix. В результате исходный код имеет объявленный" GPL "символ, который указывает, скомпилированы ли библиотеки как код GPL или нет. Как GPL, исходный код будет открытым. Это также является исходной версией, на которую был наложен вирус. Во всяком случае, чтобы избежать обсуждений здесь, я спросил этот вопрос здесь, чтобы мы могли больше сосредоточиться на проблеме вирусов и меньше на Delphi. В основном, мы говорим о вирусе, который атакует исходный код. Технически, весь исходный код может подвергаться риску, но исходный код является вероятным кандидатом, поскольку хакеры знают его структуру и могут ориентироваться на те файлы, которые редко изменяются, поэтому редко проверяются. (И если они могут взломать свой путь в систему CVS, они могут даже стереть следы своих модификаций, поэтому никто не заметил бы модификаций!)

Ответ 1

Хотя это на самом деле не отвечает на ваш вопрос, я думаю, что действительно интересная статья для чтения - "Размышления о доверительном доверии" от Ken Thompson. Удивительно, что даже если ваш исходный код не содержит дефектов (вирусы, трояны и т.д.), Вы все равно можете создавать дефектные исполняемые файлы, если ваш компилятор неисправен. И даже если вы перекомпилируете компилятор из чистого исходного кода, вы все равно можете иметь ту же проблему.

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

Ответ 3

Если вы хотите распознавать вредоносное ПО, вы должны знать, как он работает. Это означает исследование вредоносного ПО и изучение навыков создания вредоносных программ.

  • искать 29A - они писали документы о вирусе
  • прочитайте о руткитах (на нем есть даже книги)
  • прочитайте об обратном проектировании
  • читать исходный код вредоносного ПО - там много его в Интернете.
  • узнать ассемблер
  • узнать о своей ОС
  • отмените os-kernel
  • получить clam-av, проверить источник

Я не буду указывать ссылки здесь. Их легко найти.

Ответ 4

Если вы действительно хотите учиться и готовы вставить время, ваше время, вероятно, лучше потрачено на Google, чтобы затем найти участие в сообществе greyhat. эта тема очень сложная.

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

Ответ 5

Вы спрашиваете: "Что будет делать большинство вредоносных программ?".

Отличным источником такого рода информации является The Hacker Quarterly, который является таким мейнстримом, вы можете найти его в своем местном книжном магазине, или вы можете подписаться онлайн, чтобы отправить его по почте.

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

Cover of The Hacker Quarterly, Summer 2009 issue

Содержание текущей проблемы включает в себя:

  • Не враг
  • Восстановление конфиденциальности в цифровом мире
  • Дядя-охранник
  • Почему "No-Fly List" - это мошенничество.
  • TELECOM INFORMER
  • Поиск информации в Библиотеке Конгресса
  • Взлом интерфейса DI-524
  • Простые инструкции по беспроводной и Windows-трещине
  • Если вы не можете выдержать жару, взломайте компьютеры!
  • Безопасность: Истина против художественной литературы
  • Взлом Beamz
  • ХАКЕР ПЕРСПЕКТИВ: Джейсон Скотт
  • Уязвимость сохраненной кредитной карты iTunes
  • Информационная инфраструктура Zipcar
  • Как и почему взломать U.N.
  • Слушайте радио хакеров!
  • ХАКЕРСКИЕ ПРОСТРАНСТВА - ЕВРОПА
  • Нарушение метаданных
  • Verizon FIOS Wireless Insecurities
  • ТРАНСМИССИИ
  • Использование Network Recon для решения проблемы
  • Suing Telemarketers для развлечений и прибылей
  • HAPER HAPPENINGS
  • Плюс ПИСЬМА И МАРКЕТИРОВКА

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

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

Ответ 6

Нет никакой разницы между вредоносным кодом и непреднамеренной ошибкой безопасности.

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

Как мы все учимся в CS, невозможно даже писать отладчики, чтобы поймать бесконечные циклы, не говоря уже о умной недоброжелательности.

Мой совет для приложений, ориентированных на безопасность, - это анализ кода ex (p | t) и использование коммерчески доступного программного обеспечения для статического анализа.