Абвешчана аб гатоўнасці сістэмы крыптаграфічнай верыфікацыі кода Sigstore

Кампанія Google паведаміла аб фармаванні першых стабільных выпускаў кампанентаў, якія ўтвараюць праект Sigstore, які абвешчаны прыдатным для стварэння працоўных укараненняў. Sigstore развівае прылады і сэрвісы для верыфікацыі праграмнага забеспячэння пры дапамозе лічбавых подпісаў і вядзенні публічнага лога, які пацвярджае сапраўднасць змен (transparency log). Праект развіваецца пад эгідай некамерцыйнай арганізацыі Linux Foundation кампаніямі Google, Red Hat, Cisco, vmWare, GitHub і HP Enterprise пры ўдзеле арганізацыі OpenSSF (Open Source Security Foundation) і ўніверсітэта Перд'ю.

Sigstore можна разглядаць як аналаг Let's Encrypt для кода, які прадстаўляе сертыфікаты для запэўнення кода лічбавымі подпісамі і інструментар для аўтаматызацыі праверкі. Пры дапамозе Sigstore распрацоўшчыкі змогуць фармаваць лічбавыя подпісы для звязаных з дадаткам артэфактаў, такіх як файлы з рэлізамі, вобразы кантэйнераў, маніфесты і выкананыя файлы. Выкарыстоўваны для подпісу матэрыял адлюстроўваецца ў абароненым ад занясення змен публічным логу, які можна выкарыстоўваць для праверкі і аўдыту.

Замест пастаянных ключоў у Sigstore прымяняюцца кароткажывучыя эфемерныя ключы, якія генеруюцца на аснове паўнамоцтваў, пацверджаных правайдэрамі OpenID Connect (у момант генерацыі ключоў, неабходных для стварэння лічбавага подпісу, распрацоўшчык ідэнтыфікуе сябе праз правайдэра OpenID з прывязкай да email). Сапраўднасць ключоў правяраецца па публічным цэнтралізаваным логу, які дазваляе пераканацца, што аўтар подпісу менавіта той, за каго сябе выдае, і подпіс сфарміраваны тым жа ўдзельнікам, што адказваў за мінулыя рэлізы.

Гатоўнасць Sigstore да ўкаранення абумоўлена фармаваннем рэлізаў двух ключавых кампанентаў – Rekor 1.0 і Fulcio 1.0, праграмныя інтэрфейсы якіх абвешчаныя стабільнымі і надалей якія захоўваюць зваротную сумяшчальнасць. Кампаненты сэрвісу напісаны на мове Go і распаўсюджваюцца пад ліцэнзіяй Apache 2.0.

Кампанент Rekor змяшчае рэалізацыю лога для захоўвання завераных лічбавымі подпісамі метададзеных, якія адлюстроўваюць інфармацыю аб праектах. Для забеспячэння цэласнасці і абароны ад скажэння дадзеных заднім лікам ужываецца дрэвападобная структура "дрэва Меркла" (Merkle Tree), у якой кожная галінка верыфікуе ўсе ніжэйлеглыя галінкі і вузлы дзякуючы сумеснаму (дрэвападобнаму) хэшаванню. Маючы канчатковы хэш, карыстач можа пераканацца ў карэктнасці ўсёй гісторыі аперацый, а таксама ў карэктнасці мінулых станаў БД (каранёвы праверачны хэш новага стану базы вылічаецца з улікам мінулага стану). Для верыфікацыі і даданні новых запісаў падаецца RESTful API, а таксама інтэрфейс каманднага радка.

Кампанент Fulcio (SigStore WebPKI) уключае сістэму для стварэння якія сведчаць цэнтраў (root CA), якія выдаюць короткоживущие сертыфікаты на аснове email, аўтэнтыфікаванага праз OpenID Connect. Час жыцця сертыфіката складае 20 хвілін, за якія распрацоўшчык павінен паспець сфарміраваць лічбавы подпіс (калі ў далейшым сертыфікат трапіць да рукі зламысніка, то ён ужо будзе пратэрмінаваны). Дадаткова праектам развіваецца інструментар Сosign (Container Signing), прызначаны для фарміравання подпісаў да кантэйнераў, праверкі подпісаў і размяшчэння падпісаных кантэйнераў у рэпазітарах, сумяшчальных з OCI (Open Container Initiative).

Укараненне Sigstore дае магчымасць павысіць бяспеку каналаў распаўсюджвання праграм і абараніцца ад нападаў, накіраваных на падмену бібліятэк і залежнасцяў (supply chain). Адной з ключавых праблем з бяспекай у адкрытым ПЗ з'яўляецца складанасць праверкі крыніцы атрымання праграмы і верыфікацыі працэсу зборкі. Напрыклад, для праверкі цэласнасці рэлізу большасць праектаў выкарыстоўваюць хешы, але часта неабходная для праверкі сапраўднасці інфармацыя захоўваецца на неабароненых сістэмах і ў агульных рэпазітарах з кодам, у выніку кампраметацыі якіх атакавалыя могуць падмяніць неабходныя для верыфікацыі файлы і, не выклікаючы падазронаў, укараніць шкоднасныя змены.

Ужыванне лічбавых подпісаў для верыфікацыі рэлізаў пакуль не атрымала паўсюднага распаўсюджвання з-за складанасцяў у кіраванні ключамі, распаўсюджванні адчыненых ключоў і водгуку скампраметаваных ключоў. Для таго, каб верыфікацыя мела сэнс, дадаткова патрабуецца арганізаваць надзейны і бяспечны працэс распаўсюджвання адкрытых ключоў і кантрольных сум. Нават пры наяўнасці лічбавага подпісу шматлікія карыстачы ігнаруюць праверку, бо неабходна выдаткаваць час на вывучэнне працэсу верыфікацыі і зразумець, які ключ заслугоўвае даверу. Праект Sigstore спрабуе ўпрасіць і аўтаматызаваць гэтыя працэсы, падаўшы гатовае і праверанае рашэнне.

Крыніца: opennet.ru

Дадаць каментар