Проблема: Исследовательские данные содержат embedded PII
Типичный CSV для исследований
Participant_ID,Age,Gender,Notes
001,45,M,"Patient from Dr. Johnson's clinic, diagnosed with Type 2 Diabetes"
002,38,F,"Healthcare worker at St. Mary's Hospital, exposed to COVID-19"
003,52,M,"Referred by Dr. Sarah Chen for cardiac study"
Embedded PII в поле Notes:
- Имена врачей (PERSON)
- Названия больниц (LOCATION)
- Диагнозы (SENSITIVE_MEDICAL_INFO)
- Профессиональная информация
Проблема обмена
Когда исследователи обмениваются CSV с сотрудничающими учреждениями:
- Отправляют по email (неправильно)
- Загружают на Google Drive (неправильно)
- Никто не анализирует Notes поле на скрытую PII
- Данные доступны всему учреждению
GDPR нарушение: Распространение личных данных без согласия.
Правильный подход
Шаг 1: Анализ CSV на скрытую PII
import pandas as pd
from presidio_analyzer import AnalyzerEngine
analyzer = AnalyzerEngine()
def analyze_csv_for_pii(csv_path):
df = pd.read_csv(csv_path)
pii_findings = []
for col in df.columns:
for row_idx, value in enumerate(df[col]):
if pd.isna(value):
continue
# Анализируем каждую ячейку
entities = analyzer.analyze(
text=str(value),
language='en'
)
if entities:
pii_findings.append({
'row': row_idx,
'column': col,
'value': value,
'pii_entities': [e.entity_type for e in entities]
})
return pii_findings
Шаг 2: Анонимизация
from presidio_anonymizer import AnonymizerEngine
def anonymize_csv(df, pii_columns):
anonymizer = AnonymizerEngine()
for col in pii_columns:
for idx, value in enumerate(df[col]):
if pd.notna(value):
# Анонимизируем
anonymized = anonymizer.anonymize(
text=str(value),
analyzer_results=[],
operators={'DEFAULT': {'type': 'replace'}}
)
df.at[idx, col] = anonymized.text
return df
Шаг 3: Безопасный обмен
✅ Зашифрованный файл (AES-256) ✅ Защита паролем ✅ Временный доступ (expires in 7 days) ✅ Audit log (кто скачал, когда)
GDPR соответствие для исследований
Требуется
- ✅ Approval от Ethics Board / IRB
- ✅ Informed Consent от участников
- ✅ Data Processing Agreement (DPA) с сотрудничающими учреждениями
- ✅ Анонимизация перед обменом
- ✅ Шифрование in transit
- ✅ Ограничение доступа по необходимости
Вывод
Исследовательские данные требуют особого внимания. Анализируйте, анонимизируйте и шифруйте перед обменом.