Witness е инструмент с отворен код за команден ред, който записва как се компилира софтуерът, подписва този запис и го проверява спрямо предварително зададена политика, преди софтуерът да бъде доставен. TestifySec създаде Witness и го дари на екосистемата in-toto в рамките на Cloud Native Computing Foundation, като в момента той се поддържа от отворена общност.

Компилираният бинарен файл не посочва коя машина го е изградила или какъв код е бил вложен в него. Witness позволява на екипите да проверят коя команда е генерирала файла, какви изходни материали са използвани и дали доверен ключ е подписал всяка отделна стъпка. Когато проверката е неуспешна, witness verify излиза с ненулев статус и посочва причината, което дава на CI процеса конкретна причина за прекратяване на изпълнението.
Какво записва едно изпълнение
Witness обвива самата команда за компилиране. В ръководството за начинаещи на проекта командата witness run --step build изпълнява go build и записва JSON файл с удостоверения (attestations): подписани твърдения относно използваните материали, изпълнената команда и получените крайни продукти. Файлът представлява DSSE обвивка (стандартен контейнер за подписани данни), като можете да го декодирате и прочетете с помощта на jq и base64. Добавянето на -a slsa експортира SLSA произход (provenance), който според ръководството е задължително изискване за SLSA Ниво 1 — входното ниво на структурираната рамка за интегритет на софтуерните компилации.
Кой контролира пропускателния режим
Политиката за сигурност е JSON файл, определящ всяка стъпка, типовете удостоверения, които тази стъпка трябва да съдържа, както и публичните ключове, оторизирани да я подпишат. Персонализирани правила се въвеждат като base64-кодиран Rego код (езикът на Open Policy Agent), като Witness изисква всяко удостоверение в дадена стъпка да бъде успешно валидирано. След това се подписва и самата политика.
В демонстрационния урок политиката се подписва със същия testkey.pem, с който е подписана и компилацията. Това работи за демо цели, но в реална производствена среда би позволило на откраднат ключ да подпише както доказателствата, така и правилата, по които те се оценяват.
Отвъд демонстрацията
Witness се интегрира с GitHub, GitLab, AWS и GCP, като може да работи в контейнери или на хост системи без повишени системни привилегии. Той поддържа безключово подписване чрез Sigstore и SPIFFE/SPIRE, времеви отпечатъци от RFC 3161 органи, както и съхранение в Archivista — съпътстващ in-toto проект за управление на удостоверения. Проследяването на процесите все още е обозначено като експериментално. Проверката работи и в изолирани мрежи (air gap), стига верифициращата страна да разполага с подписаната политика, готовия артефакт и съответния публичен ключ.
Witness е достъпен безплатно в GitHub.