Создание защищенного ПО требует верифицируемого метода репродукции. Поэтому группа Core Infrastructure Initiative фонда Linux Foundation поддерживает проект Reproducible Builds.

Стремясь помочь разработчикам ПО с открытым исходным кодом создавать более защищенные продукты, фонд Linux Foundation удваивает свои усилия, направленные на поддержку репродуцируемых сборок ПО. К числу наиболее фундаментальных и часто наиболее трудных аспектов разработки ПО относится гарантирование, что конечные пользователи получат именно то, что создал разработчик.

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

Проект Reproducible Builds пользуется поддержкой группы Core Infrastructure Initiative (CII) фонда Linux Foundation. CII была учреждена после обнаружения в 2014 г. уязвимости протокола SSL под названием Heartbleed, чтобы обеспечить ресурсы для создания безопасного открытого исходного кода и руководство этим процессом.

CII привлекала свыше 5,5 млн. долл. от спонсоров, среди которых Adobe, Bloomberg, Hewlett-Packard, VMware, Rackspace, NetApp, Microsoft, Intel, IBM, Google, Fujitsu, Facebook, Dell, Amazon и Cisco. В июне 2015 г. CII объявила о поддержке проекта Reproducible Builds и предоставила ему 200 тыс. долл. Теперь группа намерена дополнительно выделить Reproducible Build 225 тыс. долл.

«Первый транш финансирования помог предоставить связанные с репродуцируемостью инструменты отладки, такие как diffoscope», — сказал главный технолог Linux Foundation Нико ван Сомерен. Имеющий открытый исходный код diffoscope производит тщательное сравнение файлов, архивов и каталогов. Ван Сомерен добавил, что первоначальная поддержка Reproducible Builds со стороны CII позволила проекту также потратить много времени на создание надежной и гибкой среды для тестирования репродуцируемости пакетов ПО в Debian и иных ОС.

«Использование этой среды и других идей проекта Reproducible Builds привело к тому, что 91% пакетов тестового дистрибутива Debian стали репродуцируемыми», — сказал ван Сомерен. По его словам, возобновление поддержки Reproducible Builds позволило проекту не только «удвоить» предпринимаемы усилия. Ван Сомерен ожидает, что помимо этого будут созданы новые инструменты. Имеются также планы переработать документацию для ключевых проектов с открытым исходным кодом и провести эксперименты с инструментами и, в итоге, предоставить их конечным пользователям. «Например, пользователи могут пожелать запретить установку на своих системах пакетов, которые не являются репродуцируемыми», — сказал он.

Хотя возможность иметь репродуцируемые сборки важна для обеспечения безопасности ПО, механизм доставки, посредством которого ПО попадает к пользователю, тоже должен быть защищен. В январе была подвергнута критике за отсутствие безопасного механизма обновления популярная система управления контентом Drupal, имеющая открытый исходный код и используемая, в частности, WhiteHouse.gov и другими известными сайтами. В данном случае, как и во многих других, проблема заключалась в том, что ПО не всегда доставляется через соединение, зашифрованное по протоколу HTTPS.

CII стремится несколькими способами помочь повышению безопасности доставки ПО. Один из них — проект Let’s Encrypt, цель которого в том, чтобы предоставить веб-сайтам бесплатные сертификаты SSL/TLS. Ван Сомерен отметил, что Let’s Encrypt помогает разработчикам настраивать HTTPS-серверы и как можно проще получать сертификаты. Let’s Encrypt — детище проекта Collaborative фонда Linux Foundation.

У CII имеется также значок Best Practices Badge for Open Source Projects. «Одно из условий получения значка заключается в том, что претендент должен управлять HTTPS-сервером, с которого можно загрузить проект, — сказал ван Сомерен. — Пока значок получили 45 проектов, а более 200 находятся в процессе получения».

Помимо Reproducible Builds группа CII возобновила также финансирование проектов The Fuzzing, False-Positive-Free Testing, OpenSSL, OpenSSH, Network Time и Best Practices Badging. Кроме того, CII, вероятно, расширит этот список, включив в него еще свыше 20 проектов, которые сейчас находятся в процессе оформления заявок. «Управляющий комитет CII, конечно, рассмотрит эти заявки, когда они будут поданы, и выделит средства, насколько позволяет бюджет, — сказал ван Сомерен. — Общий объем наших грантов составляет 1,6 млн. долл. в год».