TL;DR: В статье рассмотрим, как использовать функцию now() в CEL для создания time-based политик безопасности в SafeDep vet, что позволяет эффективно защищаться от malicious пакетов с помощью временных ограничений.
Введение
В современной разработке безопасность играет ключевую роль. Одним из эффективных подходов к защите от malicious пакетов является использование time-based политик. SafeDep vet предоставляет мощный инструмент для создания таких политик с использованием CEL (Common Expression Language). В этой статье мы рассмотрим, как использовать функцию now() в CEL для реализации временных ограничений.
Основная часть
Что такое CEL?
CEL — это язык выражений, который позволяет описывать условия и политики безопасности. Он используется в различных инструментах, включая SafeDep vet, для создания гибких и мощных правил.
Использование функции now()
Функция now() возвращает текущее время в формате timestamp. Это позволяет создавать политики, которые зависят от текущего времени. Например, можно ограничить использование пакетов, которые были выпущены слишком недавно, чтобы избежать потенциальных угроз.
Пример политики с использованием now():
package.create_time < now() - duration("24h")
Эта политика запрещает использование пакетов, которые были созданы менее чем 24 часа назад. Это помогает избежать использования свежих пакетов, которые могут содержать уязвимости или malicious код.
Практическое применение
Пример 1: Запрет использования свежих пакетов
Предположим, мы хотим запретить использование пакетов, которые были выпущены менее чем 72 часа назад. Мы можем создать следующую политику:
package.create_time < now() - duration("72h")
Эта политика будет блокировать все пакеты, которые были созданы менее чем 72 часа назад, что помогает избежать использования потенциально опасных пакетов.
Пример 2: Ограничение использования пакетов в определенный период
Мы можем также ограничить использование пакетов в определенный период времени. Например, запретить использование пакетов, выпущенных в выходные:
day_of_week(now()) in ["Saturday", "Sunday"] && package.create_time > now() - duration("48h")
Эта политика блокирует пакеты, которые были выпущены в субботу или воскресенье и которые были созданы менее чем 48 часов назад.
Заключение
Использование функции now() в CEL позволяет создавать гибкие и мощные time-based политики безопасности в SafeDep vet. Это помогает эффективно защищаться от malicious пакетов и минимизировать риски, связанные с использованием свежих или потенциально опасных пакетов. Внедрение таких политик в вашу разработку значительно повысит уровень безопасности ваших проектов.
Источник: https://safedep.io/writing-time-based-policies-in-vet-cel/