Верить нельзя никому. Мне - можно.

 Производители проприетарных программ утверждают: закрытый код и штат профессионалов обеспечат производительность по максимуму,а  цену и риски - по минимуму. Да, платить придётся и напрямую за ПО и косвенно за ненужные обновления, совместимость, поддержку. Зато вы в безопасности и эффективны.

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

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

Остров невезения в океане есть

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

Java старалась быть повсюду - концепция "напиши один раз, используй где угодно" была очень привлекательна для разработчиков. Java везде: в компьютерах, в Blu-ray плеерах, принтерах, паркоматах, лотереях, да просто повсюду. Разумеется, популярная платформа всегда была целью атак. И что же получилось по факту?

В 2017 году исследование компании Veracode показало: 88% приложений на Java уязвимо. В 2016 году Oracle сообщал, что даже сам по себе установщик Java был уязвим. По сути, было достаточно зайти на вредоносный сайт, и устаревшая версия Java заражалась с помощью создания специального файла в папке загрузок.

Устаревшая версия - не проблема, ведь все всегда всё вовремя обновляют? Как бы не так! Java не обновлялась сама, а спрашивала пользователя, раз в неделю или, скажем, в месяц. Люди в принципе не любят постоянно обновлять то, что работает, а тут ещё и была проблема с попыткой установить Ask Toolbar с каждым обновлением - и не всегда человек помнил о необходимости снять галочку с опции. А стоило один раз кому-то попасться - и к новым обновлениям Java уже отношение было не очень.

Камни и разбитые окна

Про Windows забывать тоже нельзя. Популярность продукта ожидаемо привлекла очень много внимания, и далеко не всё оно было добропорядочным. Даже самая, по общему мнению, удачная версия  Windows XP до патчей содержит уязвимость, на которой по сей день тренируются хакеры всех мастей и которая позволяет захватить доступ над системой буквально в пару кликов общедоступными инструментами. Конечно, уязвимость давно закрыта.

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

 

Вот, например, прогремевшие на весь мир Meltdown и Spectre - проблемы аж на уровне процессоров. Сами по себе проблемы - жуть! И даже Windows не виновата - проблемы на уровне железа. Но решение этих проблем на программном уровне приводило к падению производительности.

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

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

Дырявость свободного ПО

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

Юридические баталии из-за названия одного модуля привели к тому, что расстроенный разработчик убрал все свои пакеты из системы - включая модуль, создающий отступы. Просто отступы в коде. Это был очень популярный модуль - в месяц его качали больше 2 миллионов раз.

Всё развалилось в одночасье - юристы потом ещё долго уточняли, что ничего такого не имели в виду, это было вежливое предложение разработчику СПО подвинуться, ведь название его пакета так похоже на название их приложения.

 

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

Грустная правда

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

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


28 августа 2018г. / Индустрия 4.0
138 | Обсудить в   
Кирилл Кожевников
Автор блога Айти
Кибер-шериф в цифровой Америке: DMCA
Масштаб и экономика кибер-угрозы: можно ли верить цифрам
Электронная, цифровая, прогрессивная
Инфобезопасность в компании: виновные и ответственные
Кибервор должен сидеть в кибертюрьме
пРи|||лиТЕ БNТкоиh NЛN МbI БYDЕМ пРиCbIлАТb пО 1 БайТу Ва|||иХ ДАННЫХ
Электронные архивы: рукописи не горят, не теряются и экономят время
Где хранить электронный архив: в облаках или под подушкой?
Банкоматы ломают не только кувалдой
Киберподкоп
Интернет чужих вещей
Где самое слабое звено?
Кирку в руки и полезай в шахту: вредоносный майнинг криптовалют
Главный вирус - между стулом и клавиатурой
Свободное плавание СЭД
И дела вести, и бобра спасти
Блокчейн - цепь неслучайностей
Телефоннер, сканертрон и роутербот против офисных сотрудников
Чем свободное ПО лучше, чем проприетарное?
Всевидящее складское око
Вкалывают роботы, счастливы банкиры
Еще по теме
Гербарий для интеллекта

Гербарий для интеллекта

Искусственный интеллект тяготеет к классификации изначально, потому что это в первую очередь математический алгоритм, который постоянно пополняется информацией

3
Шесть вариантов использования Big Data в ритейле

Шесть вариантов использования Big Data в ритейле

Big Data - один из самых востребованных инструментов в ритейле. В цифровом мире большие данные повсюду, и практически все покупатели оставляют какой-то цифровой след

32
Спорная территория: практики против теоретиков

Спорная территория: практики против теоретиков

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

22