Главное Авторские колонки Вакансии Образование
😼
Выбор
редакции
1 112 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Открывать или нет – вот в чем вопрос

Рассказываем о том, почему антивирус с открытым исходным кодом – плохая идея.
Мнение автора может не совпадать с мнением редакции

О преимуществах «открытого» ПО (приложения с открытым и доступным для всех исходным кодом — open source) говорят много и часто, приводя в пример такие продукты как браузер FireFox, платформу WordPress и почтовый клиент Thunderbird. В «плюсы» им записывают бесплатность, безопасность и высокий уровень поддержки от разработчиков — все найденные уязвимости быстро ликвидируются. На этом фоне все чаще звучат мысли о том, что раз большое количество программ не только открыты (и бесплатны), но и являются лидерами отрасли, то не пора ли коммерческим компаниям переходить на те же рельсы? Почему не сделать антивирус с открытым исходным кодом?

Разберемся по порядку. На начало 2020-го года существует великое множество действующих программ с открытым исходным кодом, которые поддерживаются их разработчиками и сообществами. Но куда большее число подобных программ уже «неактивны» — их авторы по тем или иным причинам перестали поддерживать свой продукт, а никто в их сообществах не пожелал «принять эстафету». В этом и кроется целый ворох проблем — разработчики открытого ПО не обязаны постоянно поддерживать его актуальным и оказывать техническую поддержку. Сообщество же не обязано анализировать и улучшать код, отлавливая уязвимости и предлагая варианты устранения. Поэтому перечисленные выше «гиганты open source индустрии» — во многом классическая ошибка выжившего, а не типичная для открытого ПО ситуация. Антивирус — слишком изменчивый продукт. Кто будет заниматься постоянным анализом новых угроз, каждые полчаса обновлять базы и заниматься их наполнением, оказывать поддержку пользователям? Как вообще можно доверять свою информационную безопасность приложению, за которое, по сути, никто не отвечает и не контролирует — вопрос риторический.

Подойдем к делу чуть иначе. Пусть антивирус будет коммерческим, его код будет защищен соответствующей лицензией типа Commercial, но с разрешением на изучение и анализ кода. В теории все красиво — сообщество заинтересованных в улучшении работы антивируса будет анализировать код и помогать устранять баги, а заодно все будут видеть, что антивирус сам не занимается шпионажем. На практике же стоит помнить, что антивирус — одна из самых «конкурентных» программ: его разработчики и авторы различного вредоносного ПО находятся в состоянии перманентной войны. Задача первых — надежно защитить систему пользователя от любых посягательств, а вторых — эту защиту обойти и пользователю так или иначе навредить. И сделать это, имея исходные коды антивируса — гораздо проще, чем «вслепую». Поскольку задача злоумышленника — навредить, результаты его исследований будут направлены не на улучшение антивируса, а на создание способов применения его уязвимостей для атаки.

Хорошо, полностью открыть не можем. Откроем ворота «чуть-чуть»? Закрыть ключевые модули, оставив открытым остальное? Такому подходу даже названия толком не придумали (кроме «ни рыба, ни мясо»), ведь если есть «закрытый» фрагмент — то никто не узнает, что именно туда вставил разработчик, что автоматом породит множество конспирологических теорий, разрушив всю «открытость».

Открыть «только для избранных»? В самом деле, если нет возможности открыть код для всех, то можно создать закрытое сообщество разработки, привлекая к анализу кода сторонних экспертов и аудиторов, которые и код проверят, и все необходимые заявления о его надежности сделают. На подобные меры пошла «Лаборатория Касперского», чьи продукты были запрещены во многих странах для использования в крупных и государственных компаниях под предлогом «кражи данных в пользу российских спецслужб». Помогло не сильно, запреты «из-за океана» только ужесточаются. Но, как обычно, метод оптимален только в теории — людям свойственно верить только своим глазам, видеть в словах экспертов их «купленность» и прочее подобное. И надо признать, что в этих сомнениях есть смысл, и зачастую все «эксперты» выступают лишь рупором мнений тех, кто имеет определенные интересы в сфере, где работает эксперт. Кроме того, если кто-то из допущенных к анализу кода целенаправленно или случайно допустит его утечку — у разработчиков будут огромные проблемы. В итоге, имеем очередную «полумеру», которая не решает проблему, а скорее создает новую.

Что остается? Только полностью закрыть код. Да, это консервативный подход, да, это невозможность провести аудит «для всех желающих экспертов», но это и полная ответственность разработчика за все, что делает его программа. А для доказательства надежности и «чистоплотности» существует сертификация государственного уровня, являющаяся гарантом качества программы и отсутствия «сюрпризов» в ней. Например, продукты Dr.Web имеют сертификаты ФСТЭК, что означает разрешение на использование продукта даже в организациях с максимальным уровнем секретности и требований по защите данных.

Справедливости ради, стоит сказать, что совершенно «закрытого» ПО не существует — при должных навыках можно декомпилировать и дизассемблировать любую программу. Но это сделать достаточно сложно, а при использовании разработчиком «запутывания» кода вообще нельзя гарантировать, что итоговый декомпилированный код точно повторяет исходный. Но это уже практически криминал и к сути данного материала прямого отношения не имеет.

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

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем