Skip to content

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

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"),
        },
    })
}

Сравнение стандартов соответствия

АспектHIPAAPCI-DSSGovernment
Дополнительные шаблоны фильтрации+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")},
})

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