Конфигурация отраслевого соответствия
DD предоставляет три отраслевые предустановленные конфигурации, охватывающие требования по защите конфиденциальных данных в медицине, финансах и государственном секторе.
HIPAA медицинское соответствие
Сценарии применения
- Системы электронных медицинских карт (EHR)
- Системы управления информацией больниц
- Платформы телемедицины
- Платформы медицинских исследований
Правила фильтрации
HealthcareConfig() добавляет к DefaultSecureConfig() (полный набор шаблонов) дополнительную фильтрацию:
| Тип данных | Шаблон | Пример |
|---|---|---|
| Коды ICD-10 | Формат диагностических кодов в сообщениях логов | diagnosis=J18.9 |
| Номера медицинских карт (MRN) | Номера медицинских записей в сообщениях логов | mrn=MRN-123456 |
| Номера заявлений медицинского страхования (HICN) | Номера HICN в сообщениях логов | hicn=123456789A |
| Идентификаторы пациентов | Идентификаторы пациентов в сообщениях логов | patient_id=PAT-123456 |
Пример конфигурации
go
func NewHIPAACompliantLogger() (*dd.Logger, error) {
return dd.New(dd.Config{
Level: dd.LevelInfo,
Format: dd.FormatJSON,
Security: dd.HealthcareConfig(),
Targets: []dd.OutputTarget{
dd.FileOutput("logs/hipaa-audit.json"),
},
})
}Требования к аудиту
go
// Требование HIPAA: аудит событий безопасности + защита целостности
integrityCfg, _ := dd.DefaultIntegrityConfigSafe()
signer, _ := dd.NewIntegritySigner(integrityCfg)
auditFile, _ := os.OpenFile("logs/hipaa-audit.json", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
auditLogger, _ := dd.NewAuditLogger(dd.AuditConfig{
Enabled: true,
Output: auditFile,
JSONFormat: true,
IncludeTimestamp: true,
BufferSize: 2000,
MinimumSeverity: dd.AuditSeverityInfo,
IntegritySigner: signer,
})PCI-DSS финансовое соответствие
Сценарии применения
- Системы онлайн-платежей
- Сервисы обработки кредитных карт
- Банковские ключевые системы
- Платформы электронной коммерции
Правила фильтрации
FinancialConfig() добавляет к DefaultSecureConfig() (полный набор шаблонов) дополнительную фильтрацию:
| Тип данных | Шаблон | Пример |
|---|---|---|
| SWIFT-коды | Международные банковские коды в сообщениях логов | swift=BOFAUS3N |
| IBAN-счета | Международные банковские счета в сообщениях логов | iban=DE89370400440532013000 |
| CVV/CVC | Коды верификации карт в сообщениях логов | cvv=123 |
| Банковские маршрутные номера | ABA маршрутные номера в сообщениях логов | routing_number=021000021 |
| Номера банковских счетов | Номера банковских счетов в сообщениях логов | account_number=12345678 |
Пример конфигурации
go
func NewPCICompliantLogger() (*dd.Logger, error) {
return dd.New(dd.Config{
Level: dd.LevelInfo,
Format: dd.FormatJSON,
Security: dd.FinancialConfig(),
Targets: []dd.OutputTarget{
dd.FileOutput("logs/pci-audit.json"),
},
})
}Политика хранения логов
go
fwCfg := dd.DefaultFileWriterConfig()
fwCfg.MaxSizeMB = 100 // Один файл 100МБ
fwCfg.MaxAge = 365 * 24 * time.Hour // Хранить 1 год (требование PCI-DSS)
fwCfg.MaxBackups = 50 // Хранить достаточно резервных копий
fwCfg.Compress = true // Сжимать старые файлы для экономии места
fw, _ := dd.NewFileWriter("logs/pci-audit.json", fwCfg)
logger, _ := dd.New(dd.Config{
Level: dd.LevelInfo,
Format: dd.FormatJSON,
Security: dd.FinancialConfig(),
Targets: []dd.OutputTarget{dd.CustomOutput(fw)},
})Правительственный стандарт
Сценарии применения
- Информационные системы госучреждений
- Платформы государственных услуг
- Системы управления социальным страхованием
- Системы обработки налогов
Правила фильтрации
GovernmentConfig() добавляет к DefaultSecureConfig() (полный набор шаблонов) дополнительную фильтрацию:
| Тип данных | Шаблон | Пример |
|---|---|---|
| Номера паспортов | Номера паспортов в сообщениях логов | passport_number=E12345678 |
| Номера водительских удостоверений | Номера водительских прав в сообщениях логов | dl_number=D123456789 |
| EIN (федеральный налоговый номер США) | Формат EIN в сообщениях логов | 12-3456789 |
| NINo (Номер государственного страхования Великобритании) | Формат NINo в сообщениях логов | AB123456C |
| SIN (Номер социального страхования Канады) | Формат SIN в сообщениях логов | 123 456 789 |
| Номера дел | Номера дел в сообщениях логов | case_number=CR-2024-00123 |
Пример конфигурации
go
func NewGovernmentLogger() (*dd.Logger, error) {
return dd.New(dd.Config{
Level: dd.LevelInfo,
Format: dd.FormatJSON,
Security: dd.GovernmentConfig(),
Targets: []dd.OutputTarget{
dd.FileOutput("logs/gov-audit.json"),
},
})
}Сравнение стандартов соответствия
| Аспект | HIPAA | PCI-DSS | Government |
|---|---|---|---|
| Дополнительные шаблоны фильтрации | +4 | +5 | +6 |
| Хранение логов | 6 лет | 1 год | По регламенту |
| Подписи целостности | Рекомендуется | Обязательно | Обязательно |
| Аудитные логи | Обязательно | Обязательно | Обязательно |
| Шифрование передачи | Обязательно | Обязательно | Рекомендуется |
Пользовательская конфигурация соответствия
Когда предустановленные конфигурации не полностью удовлетворяют требованиям, можно создать комбинацию:
go
// Добавление пользовательских шаблонов
filter, _ := dd.NewCustomSensitiveDataFilter(
// Пользовательские шаблоны, специфичные для медицинской системы
`(?i)insurance_id\s*[:=]\s*\S+`,
`(?i)prescription\s*[:=]\s*\S+`,
)
logger, _ := dd.New(dd.Config{
Format: dd.FormatJSON,
Security: &dd.SecurityConfig{
SensitiveFilter: filter,
},
Targets: []dd.OutputTarget{dd.FileOutput("logs/custom.json")},
})Следующие шаги
- Фильтрация конфиденциальных данных -- подробное описание функций фильтрации
- Аудитные логи -- интеграция аудита безопасности
- Контрольный список для продакшена -- проверка перед развёртыванием
- Справочник API - Security -- документация API безопасности