Разуменне таго, чаму праверкі GPG не спрацоўваюць падчас зборкі
Калі ваш CI/CD pipeline брэйкі з памылка: праверка gpg не ўдалася, гэта не проста праблема са зборкай; гэта сігнал таго, што цэласнасці артэфактаў нельга давяраць. Распаўсюджаныя прычыны ўключаюць:
- Тэрмін дзеяння ключоў GPG скончыўся або яны былі адкліканыя
- Адсутнасць даверу да імпартаваных ключоў
- Непадпісаныя або падробленыя артэфакты
- Няправільна настроеныя брелокі ў эфемерных асяроддзях зборкі
Прыклады памылак, з якімі часта сутыкаюцца распрацоўшчыкі:
Гэтыя паведамленні пра памылкі GPG з'яўляюцца падчас усталёўкі пакетаў, зборкі Docker або CI/CD дазвол залежнасцей. Замест таго, каб абыходзіць іх, распрацоўшчыкам трэба ставіцца да іх як да трывожных сігналаў ланцужка паставак.
Рызыкі бяспекі, звязаныя з ігнараваннем памылак GPG у Pipelines
Узнікае спакуса прапусціць праверку подпісу, калі памылка: праверка gpg не ўдалася блакуе рэліз. Але ігнараванне паведамленняў пра памылкі GPG дазваляе непадпісаным або шкоднасным артэфактам трапляць у вашы зборкі.
Чаму гэта важна для ланцужка паставак:
- Непадпісаныя залежнасціЗламыснікі могуць падсунуць заражаныя траянамі версіі ў публічныя рэпазіторыі.
- Падробленыя пакетыАтака тыпу «чалавек пасярэдзіне» ўводзіць змененыя двайковыя файлы, пакуль ваш pipeline шчасліва ігнаруе GPG.
- Адкаты і дрэйфБез падпісанай праверкі распрацоўшчыкі не могуць гарантаваць, што артэфакт у прадукцыйнай версіі адпавядае таму, што было пратэставана.
Ігнараванне гэтых памылак эквівалентна адключэнню TLS з-за таго, што ён «занадта шумны». У тэрміналогіі DevSecOps кожная памылка GPG — гэта абарончы механізм ланцужка паставак.
Дыягностыка і выпраўленне праблем з ключом і подпісам GPG
Большасць памылак: gpg не ўдалося падпісаць дадзеныя, або памылкі праверкі звязаныя з базавым кіраваннем ключамі. Азнаёмцеся з распаўсюджанымі выпраўленнямі.
Праверце існуючыя ключы
- Пацвярджае, якія адкрытыя ключы імпартаваны ў ваша асяроддзе зборкі.
Імпартаваць адсутныя ключы
- Атрымлівае неабходны ключ адміністратара з сервера ключоў.
Абнавіць састарэлыя ключы
Забяспечце ўзровень даверу
Ключы павінны быць пазначаны як давераныя для pipeline каб належным чынам іх праверыць.
У эфемерным CI/CD У розных асяроддзях паведамленні пра памылкі GPG часта з'яўляюцца з-за таго, што ключы не захоўваліся паміж заданнямі. Заўсёды вызначайце этап імпарту ключоў, які можна прайграваць. pipeline.
Забеспячэнне бяспечнай праверкі подпісаў ва ўсіх зборках і залежнасцях
Ручнога выпраўлення памылак GPG недастаткова. Каб прадухіліць праслізгванне непадпісаных артэфактаў, увядзіце аўтаматычную праверку подпісаў ва ўсіх менеджарах залежнасцей.
Прыклады ў распаўсюджаных экасістэмах
Maven: праверка mvn -P gpg
- НПМ: Прымусова ўсталёўваць падпісаны пакет з наладамі ўзроўню рэестра.
- зярняткаПеравага аддаецца колам, падпісаным PGP, і праверцы па давераных ключах.
Міні-кантрольны спіс распрацоўшчыкаў для забеспячэння выканання GPG
- Збойныя зборкі на любым памылка: праверка gpg не ўдалася
- забяспечваць захаванне LDAPS:// або доступ да сервера ключоў HTTPS, ніколі не ў выглядзе адкрытага тэксту
- Захоўвайце давераныя ключы ў абароненых сховішчах, а не ў рэпазіторыі
- Рэгулярна ратаваць і абнаўляць ключы GPG
- Патрабаваць падпісаныя артэфакты для павышэння ўзроўню паміж падрыхтоўчай і прадукцыйнай версіямі
Аўтаматызацыя прымянення GPG гарантуе, што распрацоўшчыкі не будуць рабіць выключэнні, якія парушаюць ланцужок паставак.
Умацаванне цэласнасці артэфактаў з дапамогай практык DevSecOps
Праверка GPG павінна быць часткай больш шырокай стратэгіі цэласнасці артэфактаў. Подпісы пацвярджаюць асобу выдаўца, але іх варта спалучаць з:
- Кантрольныя сумы каб праверыць цэласнасць бінарнага файла.
- SBOMs (Спіс матэрыялаў праграмнага забеспячэння) для адлюстравання залежнасцей.
- Статычны аналіз выяўляць небяспечныя ўзоры ў пасылках.
Інструменты, як Ксігені дапаўняльная праверка GPG шляхам сканавання pipelineдля непадпісаных артэфактаў, выяўленне падробленых залежнасцей і забеспячэнне паслядоўнай праверкі подпісаў. Гэта зніжае верагоднасць таго, што адна памылка GPG будзе абыдзена і ператворыцца ў інцыдэнт у ланцужку паставак.
Табліца хуткага пошуку і ліквідацыі непаладак: выпраўленне распаўсюджаных памылак GPG у зборках
| Паведамленне пра памылку | Асноўная прычына | Бяспечнае выпраўленне |
|---|---|---|
| памылка: праверка gpg не ўдалася | Адсутнічае адкрыты ключ, непадпісаны артэфакт або праблема з даверам | Імпартуйце правільны адкрыты ключ з дапамогай gpg --recv-keys <KEY_ID> і пераканайцеся, што артэфакт падпісаны. |
| памылка: gpg не ўдалося падпісаць дадзеныя | GPG няправільна настроены ў CI/CD асяроддзе (няма адсутных ключоў або парольных фраз па змаўчанні) | Канфігураваць gpg --list-secret-keys і ўсталюйце правільны ключ для падпісання; пераканайцеся, што пароль даступны надзейна (агент, сховішча). |
| gpg: атрыманне сервера ключоў не атрымалася: сервер ключоў недаступны | Праблема з сеткай або заблакаваны сервер ключоў у асяроддзі зборкі | Выкарыстоўвайце надзейны сервер ключоў (hkps://keys.openpgp.org) або адлюстраваць у вашай інфрачырвонай прасторы. |
| gpg: ДРЭННЫ подпіс ад "Maintainer " | Артэфакт быў зменены або імпартаваны няправільны ключ | Неадкладна спыніць зборку; праверыць правільны адбітак ключа; адхіліць артэфакт. |
| gpg: не знойдзены сапраўдныя дадзеныя OpenPGP | Спампаваны ключ пашкоджаны або несапраўдны | Паўторна атрымаць з дапамогай gpg --recv-keys з давераным серверам ключоў і праверыць адбітак пальца ўручную. |
| Зборка працягваецца, нягледзячы на непадпісаныя пакеты | Pipeline ігнаруе праверку, або канфігурацыя абыходзіць | Прымусовае праверванне подпісу ў Maven (mvn verify -P gpg), падпісаныя npm пакеты або pip з праверкамі PGP. |
Памылка: Праверка GPG не ўдалася: бяспечныя зборкі пачынаюцца з даверу
Няўдалая праверка GPG — гэта ніколі не проста шум. Кожны памылка: праверка gpg не ўдалася, памылка: gpg не ўдалося падпісаць дадзеныя, або агульная памылка gpg сведчыць аб разрыве вашага ланцужка даверу. Калі вы праігнаруеце яе, вы даяце зламыснікам адкрыты шлях для ўкаранення шкоднасных артэфактаў у ваш CI/CD pipelines.
Ключавыя вынасы:
- Заўсёды даследуйце паведамленні пра памылкі GPG; гэта сігналы бяспекі
- Выкарыстоўвайце аднаўляльныя практыкі кіравання ключамі ў зборках
- Прымусовае праверванне подпісу ва ўсіх менеджарах залежнасцей
- Аб'яднайце GPG з кантрольнымі сумамі, SBOMі сканаванне ўразлівасцяў
- Выкарыстоўвайце такія інструменты, як Xygeni, для аўтаматызацыі праверак і забеспячэння выканання палітык подпісаў у рэжыме рэальнага часу
In DevSecOps, давер навязваецца, а не меркаваны. Кожны раз, калі вы бачыце памылка: праверка gpg не ўдалася, ставіцеся да гэтага як да магчымасці загартаваць свае pipeline, не перашкода, якую трэба прапусціць.





