Мифы о вредоносном ПО в Unix / Linux

142

Возможно ли, чтобы моя коробка Linux заразилась вредоносным ПО?

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

Если да, что случилось с программным обеспечением Linux Anti-Virus (security)?

Стефан
источник
1
Посмотрите ответ на этот вопрос: goo.gl/UVCsgz. В нем рассматриваются основные причины, по которым Linux / Unix отличается от Windows с точки зрения вероятности случайного заражения вредоносным ПО.
ариэль
2
Другая статья, которую я нашел информативной, хотя и не так хороша, как ссылка @arielf: linuxmafia.com/~rick/faq/#virus
Wildcard

Ответы:

135

Во-первых, безусловно, возможно наличие вирусов в Unix и Unix-подобных операционных системах, таких как Linux. Изобретатель термина « компьютерный вирус» Фред Коэн провел свои первые эксперименты под 4.3BSD. Существует документ с практическими рекомендациями для написания вирусов Linux , хотя, похоже, с 2003 года он не обновлялся.

Во-вторых, исходный код компьютерных вирусов sh-script существует более 20 лет. См. Статью Тома Даффа 1988 года и статью Дуга Макиллроя 1988 года . Совсем недавно для конференции был разработан независимый от платформы вирус LaTeX . Работает на Windows и Linux и * BSD. Естественно, его последствия хуже под Windows ...

В-третьих, появилось несколько реальных, живых компьютерных вирусов для (по крайней мере) Linux, хотя неясно, были ли найдены более 2 или 3 из них (RST.a и RST.b) «в дикой природе».

Итак, реальный вопрос не в том, могут ли Linux / Unix / BSD заразиться компьютерными вирусами? а точнее, учитывая, насколько велико количество пользователей Linux для настольных компьютеров и серверов, почему у этого населения нет такой удивительной чумы вирусов, которую привлекает Windows?

Я подозреваю, что причина как-то связана с мягкой защитой, предоставляемой традиционными пользовательскими / групповыми / другими дискреционными средствами защиты Unix, и сломанной программной базой, которую поддерживает Linux. Я имею в виду, что на моем сервере все еще работает Slackware 12.1, но с ядром, скомпилированным на заказ, и множеством скомпилированных пакетов. Мой рабочий стол работает под управлением Arch. Несмотря на то, что они оба используют «Linux», у них мало общего.

Состояние вирусов на Linux может фактически быть нормальным равновесием. Ситуация на Windows может быть «королем драконов», действительно необычная ситуация. Windows API , душевнобольно барокко, Win32, NT-родной API, магические имена устройств , как LPT, CON, AUXкоторые могут работать из любого каталога, списки управления доступом , что никто не понимает, традиции однопользовательского, более того, одного корневого пользователя, машины, маркировочные файлы исполняемый с использованием части имени файла ( .exe), все это, вероятно, способствует состоянию вредоносного ПО в Windows.

Брюс Эдигер
источник
35
Стоит рассмотреть одну проблему, которую стоит рассмотреть, - это то, что Windows ABI оставался стабильным в течение многих лет. (Или, скорее, MS приложила много усилий для поддержки всех различных ABI, которые они выпустили прозрачно. Например, WoW64.) Это означает, что исполняемый файл, работающий в Windows 3.1, вполне может работать в Windows 7. Это делает для Монокультура внутри монокультуры: авторам вредоносных программ не нужно перестраивать свои программы для каждой версии Windows, как это часто бывает в Linux.
Уоррен Янг
50
Я думаю, что еще одной причиной низкого уровня вирусов в системах Unix / Linux и Mac является наличие глобальных систем управления пакетами с доверенными хранилищами, настроенными по умолчанию. Принимая во внимание, что для Windows выходят в Интернет, чтобы загрузить программное обеспечение от прямых злых поставщиков, которых они находят во время поиска в Google, на unix / linux / mac вы используете свое внутреннее программное обеспечение для просмотра репозитория, где новые записи проверяются и удаляются в случае обнаружения проблем.
Хайлем
33
Кроме того, поскольку Windows является собственностью компании (хотя это происходит на других платформах, я смотрю на вас, Mac OS), люди склонны искать взломанное программное обеспечение для этой платформы значительно чаще, чем для других. И ходить в темных переулках онлайн ничем не отличается от похода в темные переулки в реальной жизни: ожидайте неприятностей. Как вы можете доверять наркоторговцам предоставлять то, что они рекламируют? И в неизмененном виде? Так как же вы можете доверять взломанным программным дилерам предоставлять то, что они рекламируют? И без изменения программного обеспечения?
Хайлем
5
Также данные отделены от кода и конфигурационных файлов (var & home; bin & usr; etc). Посмотрите в Windows - Program Files - двоичные файлы, файлы конфигурации, данные (MS SQL). Вы можете монтировать каталоги без exec для данных. Приложения не исполняют каждый файл, который вы им набрасываете (текстовые процессоры почтовых клиентов). Открыть код для просмотра. Быстрое решение проблем (проверьте время отклика парней из RedHat и Debian после обнаружения угрозы в ядре). Когда обнаружена проблема - Distro выдвигает какое-то обновление (я не знал, например, - KDE ищет флаг + x на ярлыках на рабочем столе, например, чтобы выполнить их, в какой-то момент функция отсутствовала)
jet
1
Приведенный выше комментарий Хейлема прав, интересно было бы узнать, «меняет ли это игру», чтобы уменьшить «очень безопасный» образ Mac OSX, а теперь, спустя несколько лет ... Я вижу сбои в OSX почти каждый день. потому что пользователи скачали и установили взломанное программное обеспечение (обычный человек, даже не стесняясь, запускает файл «file.sh», который открывается в терминале, и
вводит
49

Помогает предотвратить распространение вирусов в Windows


Помните, что Linux используется во многих отношениях, например, на файловых и почтовых серверах.

Файлы на этих серверах (файлы MS Office, сообщения Outlook, программы EXE) могут храниться с инфекцией.

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

Я сам установил его, когда друг просит меня проверить, почему его компьютер с Windows не работает, или когда я подключаю свой перьевой диск к компьютеру с Windows.

lamcro
источник
39
+1 Настоящая причина существования программного обеспечения AV в Linux - не столько для сканирования проблем, которые могут повлиять на систему, но и для проблем, которые могут повлиять на другие системы (например, Windows).
ксенотеррацид
1
Это должен быть принятый ответ. Остальная часть моего домашнего хозяйства использует Windows. Я чувствую, что безопаснее подключать внешние флэш-накопители к моему рабочему столу Linux, сканировать их, а затем объявлять их безопасными для подключения к другим домашним компьютерам.
Йохан
Это действительно классная точка зрения; многие люди используют Linux как этот (usb), но, вероятно, так и не поняли, что в Linux также может быть сканирование на наличие вирусов Windows на уровне приложений.
forgotstackxpassword
1
Я редко перезагружаю свой ПК с Windows с USB-накопителя Linux, чтобы я мог запускать AV-сканирование.
Джесси Чисхолм,
23

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

Существует антивирусное программное обеспечение Linux, например, от McAfee, но ни один пользователь Linux, которого я знаю, не использует такое программное обеспечение. Гораздо важнее устанавливать только программное обеспечение из надежных источников и постоянно обновлять систему, своевременно устанавливая обновления безопасности.

fschmitt
источник
3
Я хотел бы просто добавить, что даже если вам удастся заразиться вирусом (за 10 лет работы с Linux я никогда его не видел), наихудшим сценарием будет заражение вашей пользовательской папки.
Паткос Чаба
37
Нет, худший сценарий - полный компромисс системы. Люди ядра просто закрыли огромную дыру в ядре около шести недель назад, что позволило любой программе с графическим интерфейсом повысить свои привилегии до корневого уровня. Немного погуглив вокруг, и вы найдете другие прошлые дыры этой природы. Это правда, что Linux во многих отношениях лучше защищен по сравнению с Windows, но, как и любая другая база кода, состоящая из миллионов строк кода, вы можете быть уверены, что в ней есть другие дыры, ожидающие своего появления. Я бы тоже выступал за то, чтобы системы были исправлены, а не антивирусными, но держали голову подальше от песка.
Уоррен Янг
6
Я должен не согласиться с причиной "пользовательская база довольно мала". Первым действительно распространенным компьютерным вирусом был «Мозг» в 1988 году. Конечно, в Linux в 2010 году было больше пользователей настольных компьютеров, чем в MS-DOS в 1988 году. Почему у linux действительно больше вирусов, почему у него нет распространенный "мозговой" вирус?
Брюс Эдигер
7
ПК достигли явного доминирования на платформе примерно в 1988 году. Самый высокий гвоздь бьют, как и сегодня.
Уоррен Янг
6
эхо правильно AV программного обеспечения для Linux, на самом деле не существует для защиты самой системы Linux. он там для сканирования файлов, которые обслуживает Linux. Вот почему большинство этих AV только смотрят на файлы, которые они направлены на сканирование, а не на файлы, к которым обращаются или которые изменяются в системе.
ксенотеррацид
21

Как историческая справка, первый интернет-червь, Morris Worm , распространялся через уязвимости в утилитах Unix. Он предшествует Linux, но показывает, что системы на основе Unix могут быть заражены.

KeithB
источник
2
Однако червь Моррис не был вирусом. Вирус должен подключаться к некоторому другому программному обеспечению, в то время как программное обеспечение, написанное Робертом Моррисом, в этом смысле было независимым. Это было самовоспроизводящимся, но также самоподдерживающимся, и таким образом червем, а не вирусом.
CVn
@ MichaelKjörling вредоносная программа тогда?
Брайам
6

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

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

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

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

Чем популярнее приложение, тем больше в нем участников. Я думаю, что эта свобода / открытость способствует уменьшению количества уязвимостей платформы Linux.

Andrew-Dufresne
источник
5
Мне очень неприятно это говорить, но природа открытого или закрытого источника может влиять только на скорость, с которой достигается определенное состояние ошибки. См. «Молоко или вино» Энди Озмента ( andyozment.com/papers/… ) и Росс Андерсон «Открытые и закрытые системы эквивалентны» ( cl.cam.ac.uk/~rja14/Papers/toulousebook.pdf )
Брюс Эдигер
Спасибо Брюс за то, что поделился ссылками. Обязательно пройдем через них.
Эндрю-Дюфрен
3
Какой пользователь Linux просматривает весь исходный код перед выдачей sudo make install?
Кальмарий
5

Уже есть хорошие ответы, но я все еще хотел бы внести свой вклад.

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

Я считаю, что основным фактором является разнообразие дистрибутивов. Это увеличивает трудозатраты на то, чтобы у вируса было все необходимое для распространения. Это в сочетании с демографией пользователей Linux, которые вряд ли (imho) нажмут на изворотливое электронное письмо или в целом подвергают себя риску, означает, что успех вируса еще больше блокируется.

Люди также, возможно, более мотивированы, чтобы атаковать окна.

barrymac
источник
4

Хотя да, есть несколько вирусов для Linux, вам не нужно беспокоиться о них. Они достаточно редки, чтобы, вероятно, скучать по тебе полностью.

Хотя вы можете и должны беспокоиться о червях . Эти программы, в отличие от вирусов, которые обычно заражают взаимодействие с пользователем, сами распространяются между серверами, используя уязвимости в службах и платформах. Черви ищут больше серверов для заражения, устанавливают себя на уязвимых компьютерах и часто изменяют свое поведение - например, для распространения вирусов среди клиентов Windows.

Научная фантастика
источник
3

Простой ответ заключается в том, что ни одна операционная система не является на 100% безопасной, если только она не считывает себя с носителя только для чтения при запуске на 100%.

Однако в Windows имеется больше векторов заражения, эти векторы более доступны, а заражение может принести гораздо больше вреда. Это можно легко увидеть, прочитав «Арсенал RootKit» или другие книги.

Количество эксплойтов на любой машине примерно пропорционально (ave усиление для рутирования одной машины) * количество машин / (стоимость создания рутирующего вредоносного ПО).

Поскольку число эксплойтов пропорционально количеству компьютеров, имеет смысл увеличить количество вредоносных программ в Windows.

Но глупо предполагать единственную причину. В Windows больше вирусов, потому что на ней работает больше компьютеров. Обратите внимание, что в Linux заражение вредоносным ПО обходится гораздо дешевле, чем в Windows, поскольку ущерб в большей степени сдерживается. Наоборот, сумма, полученная за один укоренение, меньше). Отметим также, что стоимость рутирования выше из-за причин, упомянутых в первом абзаце.

Имейте в виду, что это правда на данный момент. На данный момент Linux - лучшая архитектура, чем Windows. Однако есть силы, которые говорят, что нам нужно более быстрое развитие удобных для пользователя функций. Это может облегчить существование ошибок и создание вирусов. Я уже нахожу, что Ubuntu глючит почти так же, как Windows.

HandyGandy
источник
Загрузочный носитель, доступный только для чтения, только уменьшает поверхность атаки, он не защищает от вредоносных программ.
Symcbean
Re: Windows has more ... computers running it. Ну, больше компьютеров конечных пользователей, работающих на нем. Я полагаю, что больше серверов без головы работает под управлением * Nix (Unix-вариант, Linux-вариант), чем Windows. Первые дни, когда DOS и Windows имели нулевую безопасность, были важным фактором для целевой платформы.
Джесси Чисхолм,
1

Другие ответы предоставили хорошие исторические ссылки на вирусы в Unix и Linux. Более современные примеры включают вредоносные кампании «Windigo» и «Mayhem» . Они заразили многие тысячи систем. Сообщалось, что Mayhem использует уязвимость Shellshock для распространения.

Что касается программного обеспечения для обнаружения вредоносных программ в Linux, у вас есть как открытые, так и коммерческие альтернативы. Наиболее эффективным, на мой взгляд, является Second Look . Он использует криминалистику памяти и проверку целостности для обнаружения вредоносных программ Linux. Я разработчик Second Look.

Эндрю Тапперт
источник