Подписание кода
Подписание кода — это процесс обеспечения безопасности, гарантирующий подлинность и целостность программного обеспечения путём цифровой подписи исполняемых файлов, скриптов и иных артефактов кода. Оно предотвращает выполнение ненадёжного или вредоносного кода путём проверки цифровых подписей по доверенным источникам. Подписание кода защищает от подмены, олицетворения и распространения несанкционированного или вредоносного программного обеспечения, формируя критически важную защиту от атак на цепочку поставок и эксплуатации программного обеспечения. Данная мера может быть реализована следующими способами: Применение выполнения только подписанного кода: - Реализация: настраивайте операционные системы (например, Windows с AppLocker или Linux с Secure Boot) на разрешение выполнения только подписанного кода. - Сценарий применения: предотвращайте выполнение вредоносных скриптов PowerShell, требуя подписания всех скриптов доверенным сертификатом. Применение подписанных драйверов поставщиков: - Реализация: включайте подписание кода в режиме ядра для обеспечения загрузки только драйверов, подписанных доверенными поставщиками. - Сценарий применения: вредоносный драйвер, пытающийся изменить системную память, не загружается, поскольку не имеет действительной подписи. Управление отзывом сертификатов: - Реализация: используйте протокол OCSP (Online Certificate Status Protocol) или списки отзыва сертификатов (CRL) для блокировки сертификатов, связанных со скомпрометированным или устаревшим кодом. - Сценарий применения: скомпрометированный сертификат, использовавшийся для подписания вредоносного обновления, отзывается, что предотвращает дальнейшее выполнение программного обеспечения. Проверка стороннего программного обеспечения: - Реализация: требуйте, чтобы программное обеспечение от внешних поставщиков было подписано действительными сертификатами перед развёртыванием. - Сценарий применения: организация развёртывает только подписанное и проверенное стороннее программное обеспечение для предотвращения атак на цепочку поставок. Целостность скриптов в конвейерах CI/CD: - Реализация: интегрируйте подписание кода в конвейеры CI/CD для подписания и проверки артефактов кода перед выпуском в производство. - Сценарий применения: программная компания обеспечивает подписание всех производственных сборок, предотвращая доставку изменённых сборок потребителям. **Ключевые компоненты подписания кода** - Проверка цифровой подписи: подтверждает подлинность кода, удостоверяя, что он подписан доверенным субъектом. - Управление сертификатами: использует инфраструктуру открытых ключей (PKI) для управления сертификатами подписи и списками отзыва. - Политика обязательного применения для неподписанного кода: предотвращает выполнение неподписанных или недоверенных двоичных файлов и скриптов. - Проверка целостности хэша: подтверждает неизменность кода с момента подписания путём сравнения криптографических хэшей.