Как Linux не подвержен вирусам, вредоносным программам и тому подобному?

71

Как Linux защищен от вирусов?


Этот вопрос был Супер Вопросом Пользователя Недели .
Прочитайте запись в блоге для получения более подробной информации или внесите свой вклад в блог самостоятельно

ykombinator
источник
2
См. Также superuser.com/questions/11969/…
Роберт Мунтяну
1
Я думаю, что вы имеете в виду взломщик. См. Cs.utah.edu/~elb/folklore/afs-paper/node9.html Хакер - это неспецифический термин.
Jnewman
1
Для Linux многие программы имеют открытый исходный код, поэтому, если вирусописатель использует открытый исходный код, сообщество поможет восстановить этот прекрасный ум. И если автор хочет выбрать закрытый исходный код, то он / она должен пометить программу как «проприетарное вредоносное ПО».
Кайкай
Я думаю, что это как-то связано со структурой файлов в Windows и тому подобном, что делает восприимчивым к вирусам, так как большинство вирусов атакуют структуру файла и реестра и тому подобное. однако в Linux система хранения и структура в целом намного более стабильны и не могут быть легко обработаны. Однажды я услышал, что троянский вирус просто сидит на рабочем столе Linux и ничего не делает, так как не может атаковать любые файлы ...
ThunderToes

Ответы:

104

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

Не поймите неправильно Linux и вирусы, безусловно, есть вирусы Linux.

В некоторых дистрибутивах есть дополнительные уровни защиты, например SELinux (см. Здесь ) в Ubuntu. Тогда есть брандмауэр по умолчанию и тот факт, что чужие файлы не имеют разрешения на выполнение. Конкретное разрешение на выполнение должно быть предоставлено до того, как выполнение станет возможным. (См. Здесь )

Кроме того, есть несколько других факторов, которые делают Linux трудным местом для вирусов, которые обычно не пользователи root в системах Linux не имеют в своем распоряжении небольших исполняемых файлов, которые позволяют вирусам оставаться незамеченными и распространяться. Некоторые программы просто требуют, чтобы вы вошли в систему как пользователь root (или с помощью sudo) перед запуском или для доступа / изменения каталогов, отличных от вашего дома. Просто намного сложнее разработать жизнеспособный вирус, который будет распространяться так же, как и в Windows.

ОБНОВИТЬ:

Как упомянуто ниже, большинство машин, работающих под Linux, являются серверами, на которых работают люди, которые знают кое-что о том, что они делают. Люди, которые используют Linux для настольных ПК, обычно выбирают, а также знают, что делают. Почти все неграмотные компьютеры работают под управлением Windows, поэтому заражать эти компьютеры намного проще. « Эй, эта машина сообщает мне, что у меня есть вирус, и я должен купить эту антивирусную программу под названием« FAKETrojanHunter », чтобы избавиться от нее ... Хорошо, давайте сделаем это! »

Поскольку ни один дистрибутив / установка Linux не является по сути равным, сложнее разработать вредоносное ПО, которое могло бы заразить их всех максимально эффективно. Кроме того, почти все программное обеспечение, работающее в Linux, имеет открытый исходный код, что значительно облегчает обнаружение вредоносного ПО, так как его исходный код открыт для общественности.

BloodPhilia
источник
47
+1 заthere definitely ARE Linux viruses
Сатьяджит Бхат
13
Помните, что большинство (ну, много ...) серверов работают под управлением Linux, поэтому на самом деле существует огромная база для установки, которую стоит атаковать. На большинстве этих серверов нет антивирусов и проблем нет. В пакетах есть эксплойты, но обычно они не допускают произвольного удаленного выполнения кода.
Рич Брэдшоу
5
На самом деле linux не более защищен от вирусных атак, чем Windows для подавляющего большинства эксплойтов. В некоторых классах Linux улучшается (например, исполняемые файлы, отправленные по электронной почте, труднее заразить пользователей ... но не невозможно). Те же самые векторы атаки работают в Linux (переполнение буфера в программах, которые в основном имеют доступ к Интернету). И глупо ... или я имею в виду, что неопытные пользователи с такой же вероятностью предпримут дополнительные шаги, чтобы сделать вложение электронной почты исполняемым, если оно того хочет (обнаженные картинки, симпатичная заставка и т. Д.)
Эрик Фанкенбуш,
4
@Rich: Конечно. Там также много серверов Windows. Однако серверы обычно управляются людьми, имеющими представление о компьютерах и безопасности, и поэтому на них гораздо сложнее атаковать. Вокруг много компьютеров, которые обслуживают люди, которые не разбираются в компьютерах. Подавляющее большинство из них - Microsoft Windows, остальные - в основном Mac OSX, а Linux почти нет, так как почти все пользователи Linux работают с ним, потому что они понимают компьютеры и выбрали Linux.
Дэвид Торнли
4
@ Jase21: Я не понимаю, как вы можете сказать, что в Linux "лучшие практики кодирования", если вы не работали на обеих платформах и не видели исходный код для обеих платформ. @BloodPhilia: +1 за ответ, который больше всего указывает на корень проблемы, а не на FUD.
Билли ОНил
37

Одна из причин - привилегии пользователя.

Системы GNU / Linux являются Unix-подобными системами, и это означает, что они созданы с нуля как многопользовательские системы. Это означает, что между пользователями существует сильное разделение обязанностей. В результате обычный пользователь не может фактически повредить систему, потому что у него нет необходимых привилегий. Хотя в системах Windows теперь доступны ограниченные учетные записи, в системах GNU / Linux естественно ожидать, что пользователь будет использовать ограниченную учетную запись для сегодняшнего использования и сохранит учетную запись root только для изменения настроек (некоторые дистрибутивы по умолчанию даже не позволяют пользователи должны войти в систему как root, потому что есть другие более безопасные механизмы, чтобы использовать учетную запись root для изменения настроек

С другой стороны, многие пользователи Windows воспитывались в эпоху Windows 9x, или эта эпоха оказала на них большое влияние. Тогда только учетная запись пользователя была администратором, и этому пользователю было разрешено все. Даже сегодня в системах Windows, которые происходят от многопользовательской Windows NT, часто требуется (или, по крайней мере, ожидается), что пользователь использует учетную запись с правами администратора, а использование ограниченных учетных записей среди домашних пользователей довольно низкое.

AndrejaKo
источник
4
+1 за упоминание разрешений - sudo - мой друг.
Томас О
6
Вы можете получить такую ​​же защиту в Windows, запустив ее как пользователь с ограниченными правами и повысив уровень UAC, когда это необходимо. Просто говорю. :)
badp
2
UAC раздражает, и, насколько я знаю, многие пользователи его отключают. Затем я снова использую Ubuntu, так что, возможно, я предвзят.
Томас О
@ Томас О, к чему я стремился, когда писал свой ответ. В Windows UAC раздражает, и часто требуются повышенные привилегии. В GNU / Linux повышенные привилегии не требуются так часто. Также во многих дистрибутивах изменение пользовательских настроек проще, потому что они будут «запоминать» пароль в течение некоторого времени, в то время как запрос UAC будет отображаться для каждого действия.
AndrejaKo
5
@Thomas - Hello71 говорит, что UAC работает на защищенном рабочем столе и не имеет права взаимодействовать с интерактивным рабочим столом пользователя, поэтому любое работающее там приложение не может «двигать мышь» и щелкать по ней. Кажется, что UAC часто неправильно понимают люди, которые ничего об этом не знают.
Эрик Фанкенбуш
22

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

Это означает, что трюк с двойным расширением (например, « brittany_spears_naked.jpg.exe ») не будет работать, потому что пользователю нужно будет сделать его исполняемым, прежде чем он заразит их - и, надеюсь, они подумают, что странно, что картинка нужна быть исполняемым

Ричард
источник
14
Linux не использует расширения имен файлов вообще.
AndrejaKo
9
Технически это не так, но gnome и kde будут использовать их, чтобы определить, является ли что-то, например, изображением или музыкальным файлом, и передать его в соответствующую программу.
Ричард
6
Действительно, но ни GNOME, ни KDE, ни какая-либо другая среда рабочего стола не предполагают, что файл может выполняться на основании расширения файла.
Райан Томпсон
Файл не может быть выполнен без разрешения. Это будет означать, что ваш файловый менеджер должен будет изменить разрешения, чтобы даже попытаться выполнить его.
Томас О
1
На самом деле я имел в виду, что среды рабочего стола Linux не будут запускать файл рабочего стола, если сам файл рабочего стола не помечен как исполняемый. Таким образом, вы не можете просто загрузить файл .desktop, который содержит его, Exec=rm -rf /и случайно запустить его, предварительно не пометив файл рабочего стола как исполняемый.
Райан Томпсон
19

Linux защищен, но не неуязвим.

В отличие от Linux / Unix с Windows на высоком уровне, с точки зрения безопасности:

  • Ядро Linux (где проверяются и применяются системные права) намного меньше, чем эквивалент Windows. Меньше значит проще; проще означает легче исследовать, с меньшим количеством неожиданных системных взаимодействий. «Меньше» и «проще» - хорошие вещи в анализе безопасности. Ядро Windows продолжает расти с высокой скоростью.

  • Пользователи Linux, как правило, работают с более низкими уровнями разрешений, чем Windows, что затрудняет воздействие на всю систему.

  • Linux начинался с простой, гибкой модели безопасности. Windows начала с требований обратной совместимости с системами, которые не имели модели безопасности.

  • В Linux всегда были функции (например, chroot(2)) для облегчения задач программистов, заботящихся о безопасности.

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

mpez0
источник
11
1. Собственно, Windows NT начиналась как соревнование с OS / 2. Все работает поверх модели безопасности DACL, которая более гибкая, чем разрешения POSIX. 2. Большинство приведенных здесь аргументов относятся к эпохе операционных систем Win9x, а не к Windows NT. 3. На самом деле, основная часть Linux выросла намного быстрее, чем ядро ​​Windows. Единственное, что делает ядро ​​NT - это предоставляет подсистему Windowing, которая в любом случае не имеет ничего общего с кодом безопасности. 4. Утверждение о том, что размер влияет на безопасность, относится только к коду безопасности. Добавление btrfsв Linux не делает его менее безопасным.
Билли ОНил
13

Ответ на ваш вопрос зависит от того, что вы считаете «вирусом».

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

Если под «вирусом» вы подразумеваете «червя» - программу, которая копирует себя через Интернет, то Linux не защищен от этой атаки. Фактически, оригинальный интернет-червь, « Morris Worm », тиражировался с использованием Sendmail, программы, которая до сих пор предустановлена ​​во многих системах Linux. Почти все успешные атаки на компьютеры Linux направлены на уязвимые интернет-приложения, такие как почтовый сервер или веб-приложение.

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

tylerl
источник
12

В Linux работает высококвалифицированное сообщество гиков, даже если написано какое-то вредоносное ПО, для него всегда есть решение.

ykombinator
источник
5
Если антивирусные компании ориентируются на эту платформу, то для разработки вирусов можно использовать тот же набор фанатов. В конце концов, вирусная и антивирусная индустрия двигаются деньгами, а не РЕАЛЬНЫМИ взломщиками / хакерами.
Махеш
@Mahesh Аааа, я знал, что здесь будет теория заговора. (Не говорить, что это неправда, просто называть это тем, чем оно является.)
jnewman
1
@ Джош, лол. Возможно, вы почувствуете, что это теория заговора, но люди, которые работают в catcom, ePC и многих других антивирусных компаниях, дадут вам лучшую идею. ;)
Махеш
12

Есть много аспектов, которые способствуют этому:

  1. Гетерогенная среда
    • Есть много разных вкусов и много разных конфигураций;
    • Даже в одном и том же распределении диапазон различных возможностей огромен;
    • Каждый дистрибутив содержит несколько ядер, поддерживает дополнительные патчи;
    • Каждая большая компания обычно выпускает свой собственный аромат ядра.
  2. Подход к пользователям и история строгого соблюдения прав
    • Linux, естественно, впереди в этой области из-за очень долгой истории серверно-ориентированной разработки.
  3. Вирусы неэффективны
    • Linux является самой установленной системой в мире, но в ней не так много ПК / настольных компьютеров с Linux;
    • атаки на серверы намного эффективнее, когда направлены;
    • атаки на встроенные системы (маршрутизаторы, телевизоры и т. д.) обычно не стоят усилий из-за ограниченной функциональности системы.
  4. Текущий фокус создателей вирусов просто не соответствует экосистеме Linux
    • Создатели идут на то, что проще всего.
  5. Вирусы намного сложнее скрыть в Linux
    • Linux - это открытая система, которая предоставляет всю информацию, ее не так-то легко спрятать.
  6. Открытый исходный код
    • Хотя Microsoft может утверждать обратное, наличие тысяч рецензентов для каждой строки кода и даже больше людей, способных исправлять недостатки безопасности за несколько секунд, определенно положительно влияют на качество и безопасность кода.
Позволь мне быть
источник
3
«Linux - самая установленная система в мире»?
GeneQ
@GeneQ Конечно, какая еще система? Хорошо, честно говоря, я не рассматриваю те сверхспецифичные системы ОС, которые используются для массового производства встроенных чипов (да, некоторые из них поставляются с реальной ОС).
Let_Me_Be
2
Это на самом деле неверно. Большинство встроенных чипов вообще не работают с какой-либо операционной системой. Операционные системы POSIX являются общими для серверов и для некоторых типов сотовых телефонов, но не для таких вещей, как автомобили и телевизоры, из-за которых ошеломляющая статистика малых компьютеров встречается гораздо чаще, чем настольные компьютеры.
Билли ОНил
5

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

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

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

Джейкоб Стэнли
источник
2
Просто потому, что программное обеспечение с открытым исходным кодом, по сути, не делает его безопасным. Открытый исходный код может помочь определить , является ли дизайн является безопасным или нет, но с открытым исходным кодом ничего не делать вызывает безопасность сама по себе.
Билли ОНил
+1 Да, конечно, программное обеспечение не может быть защищено только потому, что оно с открытым исходным кодом, но наличие множества людей, способных внимательно изучить код, безусловно, помогает. С другой стороны, я бы сказал, что проприетарное программное обеспечение по своей природе небезопасно, поскольку разработчику легко включать вредоносное ПО в свое программное обеспечение без ведома пользователя.
Джейкоб Стэнли
5

Основная причина в том, что фанаты Linux не делают богатых целей.

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

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

Для каждого умного программиста есть умнее, только тот, кто пират ...

harrymc
источник
3
Я вроде не согласен с этим. Еще в 90-х годах у Windows была огромная разница по количеству вирусов по сравнению с Mac, но еще не было денег, чтобы заработать на них. Это может существовать, но в качестве основной причины это не действует.
Rich Homolka
@Rich Homolka: Согласно статистике, сегодня Windows не имеет более известных уязвимостей, чем другие ОС. Единственное логическое отличие - это то, что хакеры не концентрируются на этом.
harrymc
2
Я понимаю вашу точку зрения, Гарри, но я не согласен с вашим выводом. В ранних (ранних) вирусах Outlook страшно то, что Outlook работал точно так, как его разработала Microsoft. Не было «уязвимости» в обычном смысле этого слова. Дизайн был просто эффективным пропагандистом вирусов.
Богатая гомолка
1
@Rich Homolka: Вы правы в прошлом, и вы также можете перечислить ActiveX, BHO, Web DAV и другие глупости Microsoft. Однако усилия, предпринятые в течение нескольких лет, значительно улучшили ситуацию до такой степени, что безопасность сопоставима с Linux. Большинство атак сегодня ориентированы на браузер и требуют исправления во всех основных браузерах. Новые атаки на маршрутизаторы на самом деле являются эксплойтами Linux.
harrymc
5
  • многопользовательская, многозадачная ОС
  • Создан для жизни в мире сетей (для удобства не открыты RFC-порты)
  • нет такой вещи как ActiveX (хороший вектор для загрязнения)
  • также есть хорошее разделение кода от данных из конфигурационных файлов
  • все приложения и ОС обновляются благодаря центральному хранилищу
  • нет стимула посещать неизвестные сайты и скачивать с них софт
  • обновления происходят, когда есть проблема с патчем, а не "черный четверг"
  • расширение файла ничего не значит для ОС
  • Нет скрытого беспорядка, как в реестре
  • благодаря разделению привилегий - даже если вы получаете «что-то», очень трудно пережить перезагрузку (согласно определениям для вируса)
реактивный самолет
источник
Сделать приложение злонамеренным или иным образом «пережить перезагрузку» в Linux - тривиально. Если вы получили root, вы можете вставить модули, модифицировать ядро ​​и добавить или изменить скрипт инициализации. Черт, даже если кто-то просто взломает вашу учетную запись, он может просто добавить что-то в ~ / .bashrc, что будет выполняться каждый раз, когда вы входите в систему.
это тривиально, но вы сказали "если", верно? И удачи вам в этом
реактивный
Вы сказали: «Даже если вы получаете« что-то », (sic) очень трудно пережить перезагрузку», что означает, что вы уже получили это. Тогда ваш уже облажался. Игра закончена.
да, например, угнанный флеш-плагин (кто угодно Adobe) и да игра не закончится, пока вы не перейдете с правами root
jet
3

Растет число людей, которые мало знают о компьютерах (или мигрировали из Windows) в современные дистрибутивы, такие как Ubuntu, LinuxMint или Fedora.

Они прочтут любое руководство или инструкции и с радостью загрузят любой скрипт или программу и запустят его как root или sudo. Это могут быть легкие цели троянов. По сути, я чувствую, что безопасность рабочего стола затруднена, если вы не ограничите то, что пользователи могут делать со своими компьютерами.

Xolve
источник
2

Авторы вредоносных программ хотят больший целевой рынок. Гораздо больше людей используют Mac или Windows, чем Linux. Это похоже на создание веб-сайта - вы хотите убедиться, что он работает в основных браузерах, прежде чем переходить на менее популярные.

Джошуа
источник
Я считаю, что @BloodPhilia также имеет отличную точку зрения относительно множества различных дистрибутивов Linux. Разработка вредоносного ПО, способного эффективно адаптироваться и распространяться на множество различных дистрибутивов Linux, будет очень трудной и трудоемкой.
Джошуа
Linux это Linux. То же ядро, те же библиотеки ядра. Вредоносный код не зависит от распространения. Найти способ его фактического распространения может быть сложнее, потому что если один проект скомпрометирован и вредоносный код добавлен в пакет, который передается конечным пользователям, это влияет только на это распространение. Что-то простое, например, бомба-вилка, сломает большинство дистрибутивов Linux perl -e 'while(1){fork();}'
2

Я думаю, что при сравнении Linux / Windows люди всегда игнорируют пользователей, кто они и как они думают, действуют и реагируют. Вы можете найти статью « Народные модели компьютерной безопасности» интересной.

Linux (почти) никогда не устанавливается заранее. Как следствие, это означает, что (почти) все установки устанавливаются по выбору, кем-то, кто достаточно думал, чтобы выбрать Linux, а не кем-то другим, и кем-то, кто хотя бы знает достаточно, чтобы использовать установщик. Помогает наличие фильтра минимальных компьютерных знаний перед использованием компьютера.

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

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

Рич Гомолка
источник