Производители проприетарных программ утверждают: закрытый код и штат профессионалов обеспечат производительность по максимуму,а цену и риски - по минимуму. Да, платить придётся и напрямую за ПО и косвенно за ненужные обновления, совместимость, поддержку. Зато вы в безопасности и эффективны.
Адепты свободного ПО утверждают: только открытый код, изучаемый миллионами людей по всему миру, гарантирует отсутствие неприятных ошибок и бэкдоров. Когда люди самостоятельно разрабатывают именно то, что нужно им, а не каким-то мифическим клиентам, мы получаем программное обеспечение, наиболее отражающее актуальные потребности.
Да, базовый функционал зачастую нужно будет "допиливать напильником", но это может сделать каждый, у кого есть "напильник," а в наше время он есть у любого, способного выйти в интернет. Кому же верить? Да никому.
Лучший пример проблем, всё равно возникающих при использовании "закрытого" подхода, - это операционная система 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 миллионов раз.
Всё развалилось в одночасье - юристы потом ещё долго уточняли, что ничего такого не имели в виду, это было вежливое предложение разработчику СПО подвинуться, ведь название его пакета так похоже на название их приложения.
Но возник резонный вопрос: а что будет, если вместо одного используемого пакета подставить другой, вредоносный? Практика, к сожалению, показала, что это отличный план, и он работает. К счастью, именно этот случай оказался не более чем экспериментом. Но, тем не менее, никто не проверяет открытый и свободный код перед использованием - работает и ладно. Собственно, даже подменять существующие пакеты не обязательно - можно просто сделать нечто похожее по названию, кто-нибудь да опечатается.
К сожалению, выводы неутешительны: никакой серебряной пули нет. Нельзя просто взять, поверить компании или разработчику, утвердиться в истинности некоей идеи - и без проблем ей следовать.
Желание сэкономить время и силы понятно, но на деле оно оказывается слишком уж опасным для пользователя. Это создаёт ситуацию, когда нужно звать опытных профессионалов, а может, даже проверяющих их консультантов вдобавок, на самые рутинные задачи. С другой стороны, это хотя бы развивает экономику страну. А обойтись без этого всё равно не получится, так что нужно искать позитивные моменты в сложившейся ситуации. Всё равно уже ничего не поделать, а бизнес нужно развивать.
Что такое облака на самом деле, чем они отличаются от виртуализации, кто действительно продаёт высокие технологии, а кто просто прикрывается модным термином ― баталии на этот счёт начали греметь уже много лет назад и до сих пор не стихают.
Человеку со стороны может показаться, что «облака» ― это такой buzzword, который используют просто потому, что это (было) модно. Как искусственный интеллект в наше время или блокчейн немного раньше.
Когда-то под видом облаков нам всем продавали в целом обычную аренду оборудования. Чуть позже начали предлагать виртуализацию, но без особой автоматизации и возможностей использования ресурсов по-умному.