Укрепление веры в подлинность программного обеспечения с открытым исходным кодом

Прочитано: 132 раз(а)


Программное обеспечение с открытым исходным кодом — программное обеспечение, которое распространяется бесплатно вместе со своим исходным кодом, так что можно легко создавать копии, дополнения или модификации — находится «везде», цитируя отчет по безопасности и анализу рисков с открытым исходным кодом за 2023 год. Из компьютерных программ, используемых в крупных отраслях, 96% включают программное обеспечение с открытым исходным кодом, а 76% этих программ состоят из программного обеспечения с открытым исходным кодом. Однако процент программных пакетов, «содержащих уязвимости безопасности, остается тревожно высоким», предостерегается в отчете.

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

Риск нарушения безопасности такого рода ни в коем случае не является абстрактным. В 2020 году, если взять печально известный пример, техасская компания SolarWinds выпустила обновление программного обеспечения своей широко используемой программы под названием Orion. Хакеры взломали систему, внедрив вредоносный код в программное обеспечение, прежде чем SolarWinds отправила последнюю версию Orion более чем 18 000 клиентам, включая Microsoft, Intel и примерно 100 других компаний, а также дюжине правительственных учреждений США, включая Департаменты США. Государство, оборона, казначейство, торговля и внутренняя безопасность.

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

Она и трое ее сотрудников: ее бывший советник Карен Соллинз, главный научный сотрудник Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института; Сантьяго Торрес-Ариас, доцент кафедры информатики Университета Пердью; и Захари Ньюман, бывший аспирант Массачусетского технологического института и нынешний научный сотрудник Chainguard Labs, разработали новую систему под названием Speranza, цель которой — убедить потребителей программного обеспечения в том, что продукт, который они получают, не был подделан и поступает непосредственно из источника. они доверяют. Статья опубликована на сервере препринтов arXiv.

«То, что мы сделали, — объясняет Соллинз, — это разработали, доказали правильность и продемонстрировали жизнеспособность подхода, который позволяет сопровождающим [программного обеспечения] оставаться анонимными». Сохранение анонимности, очевидно, важно, учитывая, что почти все, включая разработчиков программного обеспечения , ценят свою конфиденциальность. Этот новый подход, добавляет Соллинз, «одновременно позволяет пользователям [программного обеспечения] быть уверенными в том, что сопровождающие на самом деле являются законными сопровождающими и, более того, что загружаемый код на самом деле является правильным кодом этого сопровождающего».

Так как же пользователи могут подтвердить подлинность программного пакета, чтобы гарантировать, как выразился Меррилл, «что сопровождающие являются теми, кем они себя называют?» Классический способ сделать это, который был изобретен более 40 лет назад, — это использование цифровой подписи, которая аналогична рукописной подписи, хотя и с гораздо большей встроенной безопасностью за счет использования различных криптографических методов.

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

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

Проверка осуществляется в форме да или нет, 1 или нуля. «Получение 1 означает, что подлинность гарантирована», — объясняет Меррилл. «Документ такой же, как и при его подписании, и, следовательно, не изменился. 0 означает, что что-то не так, и вы, возможно, не захотите полагаться на этот документ».

Хотя этот проверенный десятилетиями подход в некотором смысле проверен и верен, он далек от совершенства. Одна из проблем, отмечает Меррилл, «заключается в том, что люди плохо умеют управлять криптографическими ключами, состоящими из очень длинных чисел, таким образом, чтобы они были безопасными и не допускали их потери». По словам Меррилла, люди постоянно теряют свои пароли. «А если бы разработчик программного обеспечения потерял закрытый ключ, а затем связался с пользователем и сказал: «Эй, у меня есть новый ключ», как бы вы узнали, кто это на самом деле?»

Чтобы решить эти проблемы, Speranza строит систему Sigstore — систему, представленную в прошлом году для повышения безопасности цепочки поставок программного обеспечения. Sigstore был разработан Ньюманом (который инициировал проект Speranza) и Торрес-Ариасом вместе с Джоном Спидом Мейерсом из Chainguard Labs. Sigstore автоматизирует и оптимизирует процесс цифровой подписи. Пользователям больше не нужно иметь длинные криптографические ключи, вместо этого им выдаются эфемерные ключи (подход, называемый «подпись без ключа»), срок действия которых истекает быстро — возможно, в течение нескольких минут — и поэтому их не нужно хранить.

Недостаток Sigstore связан с тем, что он отказался от долговременных открытых ключей, поэтому специалистам по сопровождению программного обеспечения вместо этого приходится идентифицировать себя — через протокол под названием OpenID Connect (OIDC) — таким образом, чтобы его можно было связать с их адресами электронной почты. Сама по себе эта особенность может препятствовать широкому распространению Sigstore, и она послужила мотивирующим фактором и смыслом существования Speranza. «Мы берем базовую инфраструктуру Sigstore и меняем ее, чтобы обеспечить гарантии конфиденциальности», — объясняет Меррилл.

В Speranza конфиденциальность достигается благодаря оригинальной идее, которую она и ее коллеги называют «совместными обязательствами по идентичности». Вот, проще говоря, как работает эта идея: личность разработчика программного обеспечения в форме адреса электронной почты преобразуется в так называемое «обязательство», состоящее из большого псевдослучайного числа. (Псевдослучайное число не соответствует техническому определению «случайного», но, практически говоря, оно примерно так же хорошо, как случайное.) Тем временем генерируется другое большое псевдослучайное число — сопутствующее обязательство (или совместное обязательство), которое связано с пакет программного обеспечения, который этот разработчик либо создал, либо получил разрешение на изменение.

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

«Сперанца гарантирует, что программное обеспечение получено из правильного источника, не требуя от разработчиков раскрывать личную информацию, например адреса электронной почты», — комментирует Марина Мур, доктор философии. кандидат Центра кибербезопасности Нью-Йоркского университета. «Это позволяет проверяющим видеть, что один и тот же разработчик подписал пакет несколько раз, не раскрывая, кто этот разработчик, или даже другие пакеты, над которыми они работают. Это обеспечивает улучшение удобства использования по сравнению с долгосрочными ключами подписи и преимущество конфиденциальности по сравнению с другими OIDC- основанные на решениях, таких как Sigstore».

Марсела Меллара, научный сотрудник группы исследований безопасности и конфиденциальности в лабораториях Intel, согласна. «Преимущество этого подхода заключается в том, что потребители программного обеспечения могут автоматически проверять, что пакет, который они получают из репозитория с поддержкой Speranza, исходит от предполагаемого сопровождающего, и получают уверенность в том, что программное обеспечение, которое они используют, является подлинным».

Укрепление веры в подлинность программного обеспечения с открытым исходным кодом



Новости партнеров