Як Linux не схильний до вірусів, шкідливих програм та подібних речей?


71

Як Linux захищений від вірусів?


Це питання було питанням суперкористувача тижня .
Прочитайте запис у блозі для отримання більш детальної інформації або допишіть до себе



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 важким місцем для роботи з вірусами, як правило, некореневі користувачі в системах Linux не мають у своєму розпорядженні мало виконуваних файлів, які дозволяли б вірусам залишатися нерозпізнаними та розповсюджуватися. Деякі програми вимагають, щоб ви зайшли в систему як root (або за допомогою sudo), перш ніж вони запускаються, або отримати доступ / змінити каталоги, крім вашого будинку. Просто набагато складніше розробити життєздатний вірус, який поширився б так добре, як і в Windows.

ОНОВЛЕННЯ:

Як було сказано нижче, більшість машин під управлінням Linux - це або сервери, якими керують люди, які знають щось або два про те, що роблять. Люди, які працюють під управлінням Linux для настільних ПК, зазвичай обирають, а також знають, що роблять. Майже всі комп'ютерні неграмотні запускають Windows, і тому набагато простіше заразити ці комп’ютери. " Гей, ця машина говорить мені, що у мене є вірус, і мені потрібно придбати цю антивірусну програму під назвою" FAKETrojanHunter ", щоб позбутися від неї ... Гаразд, давайте це зробимо! "

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


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-трубу.
Біллі ONeal

37

Однією з причин є привілеї користувачів.

Системи GNU / Linux - це системи, схожі на Unix, і це означає, що вони створені для багатокористувацьких систем з нуля. Це означає, що між користувачами існує сильний розподіл обов'язків. Як результат, звичайний користувач фактично не може пошкодити систему, оскільки йому не потрібні привілеї. Хоча в системах Windows зараз доступні обмежені облікові записи, в системах GNU / Linux, звичайно, очікується, що користувач може використовувати обмежений рахунок для щоденного використання та зберігати кореневий рахунок лише для зміни налаштувань (деякі дистрибутиви за замовчуванням навіть не дозволять користувачі можуть увійти як root, оскільки існують інші безпечніші механізми використання кореневих акаунтів для зміни налаштувань).

З іншого боку, багато користувачів Windows були виховані в епоху Windows 9x або ця епоха зробила великий вплив на них. Тоді лише адміністратор облікового запису був адміністратором, і все було дозволено цьому користувачеві. Навіть сьогодні в системах Windows, які походять з багатокористувацької Windows NT, користувачеві часто потрібно (або принаймні очікувано) користувачеві користуватися обліковими записами з адміністративними привілеями та використання обмежених облікових записів серед домашніх користувачів.


4
+1 за згадування дозволів - Судо - мій друг.
Томас О

6
Ви можете отримати той самий захист у Windows, запустившись як обмежений користувач та піднявшись через UAC, якщо це потрібно. Просто кажу. :)
badp

2
UAC дратує, і наскільки я знаю, багато користувачів вимикають його. Потім знову використовую Ubuntu, тому, можливо, я упереджений.
Thomas O

@Thomas O Це те, на що я мав на меті, коли писав свою відповідь. У 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.


11
1. Власне, Windows NT стартував як конкуренція OS / 2. Все працює на версії моделі безпеки DACL, яка є більш гнучкою, ніж дозволи POSIX. 2. Більшість аргументів тут стосуються епохи Win9x операційних систем, а не для Windows NT. 3. Власне, основна лінія Linux виросла набагато швидше, ніж ядро ​​Windows. Єдине додаткове, що робить ядро ​​NT - це забезпечити підсистему Windowing - яка все одно не знаходиться поблизу коду безпеки. 4. Твердження про те, що розмір впливає на безпеку, стосується лише коду безпеки. Додавання btrfsдо Linux не робить його менш безпечним.
Біллі ONeal

13

Відповідь на ваше запитання залежить від того, що ви вважаєте "вірусом".

Якщо ви використовуєте правильне визначення вірусу - тобто код, який модифікує існуючий виконуваний файл - то причина, чому Linux не є схильною до вірусів, полягає в тому, що він не є життєздатним механізмом поширення шкідливого коду в Linux. Причина полягає в тому, що виконувані файли Linux рідко передаються безпосередньо з одного комп'ютера на інший. Натомість програми передаються за допомогою програмного забезпечення для управління пакетами або шляхом розповсюдження вихідного коду. Той факт, що більшість програмного забезпечення Linux доступне безкоштовно з джерела, означає, що люди майже не мають інтенсивного копіювання програм з одного комп'ютера на інший.

Якщо під «вірусом» ви маєте на увазі «хробака» - програму, яка реплікує себе в Інтернеті, то Linux взагалі не захищений від цієї атаки. Насправді оригінальний Інтернет-черв'як, « черв’як Морріса », реплікується за допомогою Sendmail, програми, яка все ще попередньо встановлюється на багатьох системах Linux. Практично всі успішні атаки на машини Linux спрямовані на вразливі програми, орієнтовані на Інтернет, такі як поштовий сервер або веб-додаток.

Нарешті, якщо ви маєте на увазі шкідливий код взагалі - зазвичай це "троянський кінь", то те, що захищає Linux, - це насамперед культура. Linux - це рідко використовувана операційна система, яка вже обмежує її цільове значення. Але якщо до цього додати той факт, що користувачі Linux часто є винятково кмітливими та безпечними, це ще більше знижує ймовірність успішної атаки. Якщо, наприклад, ваш план атаки покладається на те, щоб переконати користувача завантажити та запустити програму, щоб заразити себе, ви значно менше шансів переконати середнього користувача Linux у цьому, ніж ваш середній користувач Windows. Тому автори зловмисних програм, вибираючи платформу для націлювання, йдуть із явно більш плідною ціллю.


12

У Linux працює надто прихильна спільнота, яка працює на це. Навіть якщо написано деяке зловмисне програмне забезпечення, для цього завжди є рішення.


5
Якщо антивірусні компанії придивляться до цієї платформи, то для налагодження вірусу можуть бути використані такі самі набори вундеркіндів. Afterall, вірусна та антивірусна промисловість рухаються грошима, а не РЕАЛЬНІми сухарями / хакерами.
Махеш

@Mahesh Ahh, я знав, що тут буде теорія змови. (Не кажучи, що це неправда, просто називаючи це тим, що є.)
jnewman

1
@Josh, LOL. Можливо, ви відчуєте це як теорія змови, але люди, які працюють на 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 є загальними для серверів і для деяких типів стільникових телефонів, але не для таких речей, як автомобілі та телевізори, звідки береться приголомшлива статистика невеликих комп'ютерів, набагато частіше, ніж настільних комп'ютерів.
Біллі ONeal

5

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

Якщо ви встановлюєте програмне забезпечення лише з офіційних сховищ пакетів дистрибутивів Linux, ви, мабуть, набагато безпечніше, ніж у Windows, де вам потрібно завантажувати випадкові виконувані файли та інсталятори з Інтернету, щоб отримати програмне забезпечення.

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


2
Тільки тому, що програмне забезпечення з відкритим кодом, по суті, не забезпечує його безпеку. Відкритий код може допомогти визначити, захищена чи ні конструкція, але відкритий код не робить нічого, щоб викликати безпеку сам по собі.
Біллі ONeal

+1 Так, звичайно, програмне забезпечення не може бути захищене лише тому, що воно є відкритим кодом, але, безумовно, допомагає багато людей, здатних перевірити код. З іншого боку, я б сказав, що власне програмне забезпечення за своєю суттю є незахищеним, оскільки розробнику легко включати зловмисне програмне забезпечення у своє програмне забезпечення без відома користувача.
Джейкоб Стенлі

5

Основна причина полягає в тому, що гіги Linux не роблять багатих цілей.

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

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

У кожного розумного програміста є розумніший, лише той - пірат ...


3
Я з цим не згоден. Ще в 90-х Windows мала величезну різницю в кількості вірусів на Mac, але грошей, які можна було б заробити від вірусів, ще не було. Це може існувати, але, як основна причина, це невірно.
Багата Гомолка

@Rich Homolka: За статистикою, у Windows сьогодні немає більш відомих уразливостей, ніж інші ОС. Єдиною різницею, яка логічно залишається, є те, що хакери не зосереджуються на цьому.
harrymc

2
Я бачу, що ваша думка занепокоєна, але я не згоден з вашим висновком. Страшна річ щодо (ранніх) вірусів Outlook - це те, що Outlook працював саме так, як це створило Microsoft. У нормальному розумінні цього терміна не було «вразливості». Конструкція була просто ефективним розповсюджувачем вірусів.
Багата Гомолка

1
@Rich Homolka: Ви маєте рацію щодо минулого, а також можете перелічити ActiveX, BHO, Web DAV та інші дурість Microsoft. Однак зусилля протягом декількох років значно покращили ситуацію сьогодні до того, що безпека порівнянна з Linux. Більшість атак сьогодні орієнтовані на браузер і потребують виправлення у всіх основних браузерах. Нові атаки на маршрутизатори - це фактично подвиги Linux.
harrymc

5
  • багатокористувач, багатозадачна ОС
  • створений для проживання в мережевому світі (жодні порти RFC не відкриті для зручності)
  • немає такого поняття, як ActiveX (приємний вектор для забруднення)
  • також є приємне відділення коду від даних від конфігураційних файлів
  • усі програми та програми ОС оновлені завдяки центральному сховищу
  • немає стимулів відвідувати невідомі сайти та завантажувати звідти програмне забезпечення
  • оновлення відбуваються, коли виникає проблема з виправленням, а не "чорним четвергом"
  • розширення файлу нічого не означає для ОС
  • Ніякого прихованого безладу, як у реєстрі
  • завдяки розмежуванню привілеїв - навіть якщо ви отримаєте "щось", дуже важко пережити перезавантаження (відповідно до визначень для вірусу)

Тривіально робити додаток, шкідливий чи іншим чином, "пережити перезавантаження" в Linux. Якщо ви отримаєте root, ви можете вставити модулі, змінити ядро ​​та додати або змінити сценарій init. Чорт, навіть якщо хтось просто компрометує ваш обліковий запис користувача, він може просто додати щось до ~ / .bashrc, яке виконується кожного разу при вході в систему.

це банально, але ви сказали "якщо", правда? І удачі з цим
реактивний

Ви сказали, що "навіть якщо ви отримаєте" щось ", (sic) дуже важко пережити перезавантаження", що означає, що ви вже це отримали. Тоді ваш уже накручений. Кінець гри.

Так, наприклад, викрадений флеш-плагін (Adobe будь-хто), і так, гра не закінчена, якщо ви не переглянете як root
jet

3

Зростає кількість людей, які мало знають про комп’ютери (або які перейшли з Windows) на сучасні дистрибутиви, такі як Ubuntu, LinuxMint або Fedora.

Вони прочитають будь-який посібник чи інструкції та з радістю завантажують будь-який скрипт чи програму та запускають його як root або sudo. Це можуть бути легкими мішенями троянів. Насправді, я вважаю, що безпеку робочого столу складно, якщо ви не обмежите, що користувачі можуть робити зі своїми комп’ютерами.


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, запустить його, незалежно від рівня їхньої майстерності. Але він був розроблений як система, з уявленням про те, як користувач думає та буде взаємодіяти з системою. Це скорочує не дірки в безпеці, а наскільки ймовірно, що користувач дозволить використовувати їх.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.