Skip to content

Обзор безопасности

Библиотека логирования DD имеет встроенные многоуровневые механизмы безопасности, всесторонне обеспечивающие безопасность логов от фильтрации данных до аудит-тассировки.

Уровни безопасности

УровеньМеханизмОписание
ДанныеФильтрация конфиденциальных данныхАвтоматическое маскирование паролей, ключей и т.д.
ПутиВерификация безопасности путейПредотвращение обхода пути, атак через символические ссылки
ШаблоныЗащита от ReDoSОбнаружение опасных regex-шаблонов
АудитАудитные логиЗапись всех событий безопасности
ЦелостностьHMAC-подписиГарантия неподдельности логов

Фильтрация конфиденциальных данных

DD имеет встроенное автоматическое обнаружение и маскирование конфиденциальных данных:

go
logger, _ := dd.New(dd.Config{
    Security: dd.DefaultSecurityConfig(),
})

// Поле password автоматически маскируется
logger.InfoWith("Вход",
    dd.String("username", "admin"),
    dd.String("password", "s3cr3t"),  // Вывод: [REDACTED]
)

Поддержка пользовательских шаблонов:

go
filter, _ := dd.NewCustomSensitiveDataFilter(
    `(?i)password\s*[:=]\s*\S+`,
    `(?i)api[_-]?key\s*[:=]\s*\S+`,
    `\b\d{16,19}\b`,  // Номер кредитной карты
)

Подробнее в API фильтрации безопасности.

Безопасность путей

FileWriter имеет встроенную многоуровневую верификацию безопасности путей:

ЗащитаОписание
Обход путиОтклоняет ../ и другие варианты обхода пути
Null-байтыОтклоняет инъекцию null-байтов
Сверхдлинная кодировкаОбнаруживает UTF-8 сверхдлинную кодировку
Символические ссылкиНастраиваемый запрет символических ссылок
Жёсткие ссылкиНастраиваемый запрет жёстких ссылок
Длина путиОграничение максимальной длины пути
go
// Атака обхода пути автоматически отклоняется
fw, err := dd.NewFileWriter("../../../etc/passwd", dd.DefaultFileWriterConfig())
// err: PATH_TRAVERSAL

Конфигурация соответствия

DD предоставляет отраслевые предустановки соответствия:

ПредустановкаСтандарт соответствияОтрасль
HealthcareConfig()HIPAAМедицина
FinancialConfig()PCI-DSSФинансы
GovernmentConfig()Правительственный стандартГосударственный сектор
go
// Соответствие HIPAA
logger, _ := dd.New(dd.Config{
    Security: dd.HealthcareConfig(),
})

Аудитные логи

Все события безопасности можно отслеживать через аудитные логи:

go
audit, _ := dd.NewAuditLogger(dd.DefaultAuditConfig())
defer audit.Close()

audit.LogSecurityViolation("sql_injection", "SQL-инъекция", map[string]any{
    "input": "' OR 1=1 --",
})

Подробнее в API аудитных логов.

Целостность логов

Через HMAC-подписи гарантируется неподдельность логов:

go
cfg, _ := dd.DefaultIntegrityConfigSafe()
signer, _ := dd.NewIntegritySigner(cfg)
signature := signer.Sign(logMessage)
// При проверке: signer.Verify(signedEntry)

Подробнее в API подписей целостности.

Следующие шаги