Уязвимости в Linux
В обсуждении этой новости http://lxnews.ru/news/2009110430.html появилась необходимость для 7-го пункта дать аргументированный ответ.
Итак. Много людей, среди которых немало IT-специалистов, говорят, что в Linux дыр в безопасности не меньше, чем в Винде и что кичиться тем, что Linux безопаснее не стоит. Давайте подумаем над тем как специалисты по безопасности находят дырки в ядре Linux и в Windows.
Основное отличие в методах это то, что у Linux код открыт, соответственно, поиск уязвимости — это процесс просмотра и анализа исходного кода. У Windows же код закрыт и приходится прибегать к более поверхностным методам — пытаться переполнить буфер, анализировать код в дизассемблере и т.п. Уязвимость такими методами гораздо сложнее найти, но даже несмотря на это, их находят и в немалом количестве.
Уязвимость есть в любой программе, каким бы хорошим специалистом она ни была написана. Человеческий фактор. Мы не можем держать в голове тысячи сущностей и анализировать каждое действие относительно каждой из этих сущностей. Поэтому в программах бывают дыры, которые ещё надо найти.
Повторюсь, если исходный код программы открыт, найти в нём уязвимость — дело времени, требующее всего-лишь терпения. Нахождение уязвимости в программе с закрытым исходным кодом — процесс зависящий от случайностей, и если в закрытой программе по факту известно меньше уязвимостей, чем в открытой программе, это вовсе не может говорить о том, что так оно и есть по факту.
Идём дальше. Люди, ищущие уязвимости в программах с открытым кодом, делают это в 99% случаев для того, чтобы сообщить об этом разработчику, чтобы разработчик устранил уязвимость и продукт стал ещё лучше и безопаснее. В мире открытого ПО вредителей очень малою. Есть процент злых хакеров, которые находят в открытых продуктах уязвимости, чтобы потом писать соответствующие эксплойты. Но вероятность того, что этот эксплойт сработает на каком-то компьютере пренебрежимо мала просто потому, что легион добрых дяденек уже нашёл уязвимость, под которую был заточен эксплойт (коды то открыты, процесс поиска облегчен), выпустил соответствующий патч, который в порядке ежедневного обновления уже установлен на компьютер ничего не подозревающего счастливого пользователя Linux. Одна голова хорошо — а тысяча голов лучше.
Приблизительный процесс поиска уязвимостей под Windows я уже описал. Тут фактор случайности немало значит. Это говорит о том, что людей, одновременно нашедших определённую уязвимость очень мало, а вероятно вообще один. У этого одного человека все карты на руках: он может сообщить в Microsoft, которая с двухнедельной задержкой выпустит патч, может сообщить своим товарищам-хакерам, который будут на закрытых бордах и форумах эту уязвимость пиарить, после чего появится не менее десятка эксплойтов. А патч для того, чтобы эту дыру залатать выйдет ой как не скоро. Ну и злой гений может просто никому ничего не сказать, а написать такой всепоглощающий вирус, о котором даже по мухосранскому телевидению не поленятся рассказать. Ну и не стоит забывать, что хакерские атаки всех видов и мастей на Windows — это серьёзная индустрия, в которой крутится нехилое бабло.
Резюмируем: поиск уязвимостей в Linux — это, по-сути, процесс отладки, который выполняется ордой свободных программистов, заинтересованных в том, чтобы все косяки как можно быстрее найти и устранить, поиск же уязвимостей в Windows — процесс нетривиальный, вставкой палок в колёса тут занимается сама же Microsoft. Уязвимость в Windows найти сложнее, но уж если ты её нашёл, считай что нашёл золотую жилу и будь уверен, что если ты её сам не спалишь, ещё долго про неё никто не будет знать.
Ещё одни аргумент виндузятников — Линукс непопулярна поэтому под неё невыгодно писать вирусы и никому это не интерсно. Во-первых, много вирусов пишется просто ради лулзов, без корысти. Ну надо же над виндузятниками глумиться как-то. Во-вторых, давайте взглянем на рынок мобильных устройств, в частности на смартфоны, коммуникаторы, карманные ПК и тому подобные вещи. Мобильных устройств, имеющих прямой доступ к средствам на счёте абонента, часто имеющим выход в интернет очень много. Для хакеров тут не паханое поле казалось бы, сколько бабла рубить можно. Но я что-то не слышал о ботнетах на мобильных устройствах. Может быть потому, что к написанию ОСей для мобил отнеслись серьёзно, понимая к чему может привести халатность?
Впрочем, я считаю, что Linux сильно может испортиться, став популярной. Появится много ненужных свистелок и перделок. Хакеры обратят свои взоры на эту ОСь. Не нужно ничего этого. Нужно просто 10% рынка для того, чтобы софтверные гиганты обратили внимание на эту платформу. Чтобы для неё появился Photoshop, чтобы для Linux выходило больше качественных игр.
Людям, которые говорят, что Windows безопасна надо просто посмотреть закрытые хакерские форумы, куда впрочем просто так кого попало не пускают. А судить о безопасности продукта по публично опубликованным уязвимостям — всё-равно, что судить о длине члена по количеству детей.
Ну и не будем забывать, что Microsoft — бесспорный лидер по производству огромных и забавных дыр в безопасности своих продуктов. Давайте вспомним Internet Explorer 6 с уязвимостью при просмотре специально заточенной картинки. Дыр таких масштабов в Linux никогда не было и не будет потому, что их не может быть.