병원 정보는 이렇게 지킵니다
MediAX는 병원 홈페이지 제작·진단과 병원 포털을 운영하며, 방문자 개인정보를 받는 기능은 제공하지 않습니다. 실제로 적용한 보호 조치와 우리가 약속하지 않는 것을 함께 적었습니다.
전송 구간
브라우저와 서버 사이의 모든 통신은 암호화됩니다.
- 모든 화면·API는 HTTPS로만 제공합니다(TLS 1.2 이상 — 웹 서버 Caddy의 기본 설정).
- HSTS(1년)를 보내 브라우저가 암호화되지 않은 연결로 되돌아가지 않게 합니다.
- 보안 응답 헤더: MIME 추측 금지(nosniff), 리퍼러 최소화, 카메라·마이크 등 브라우저 권한 차단, 다른 사이트의 화면 삽입(클릭재킹) 제한.
- 데이터베이스는 같은 서버 안에서만 접속되며 외부에 열려 있지 않습니다. 방화벽은 SSH·HTTP·HTTPS 포트만 허용합니다.
저장 구간
개인정보는 저장할 때 항목 단위로 암호화합니다.
- 문의·신청 연락처, 포털 직원 계정 정보(이름·이메일), 인증 앱 비밀 등 MediAX가 실제로 저장하는 개인정보 항목은 AES-256-GCM으로 필드 단위 암호화해 저장합니다.
- 암호화된 값으로도 중복 확인·검색이 가능하도록 원문 대신 블라인드 인덱스(키가 있는 해시)를 둡니다.
- 에이전트 비밀번호는 원문을 저장하지 않고 scrypt(무작위 솔트)로 해시합니다. 병원 포털은 직원마다 개인 계정(비밀번호는 같은 방식의 해시)이고, 계정을 만드는 1회용 개설 코드도 해시만 저장합니다.
- 데이터베이스는 매일 백업하며 백업 파일은 서버 관리자만 읽을 수 있습니다. 외부 저장소로 복사할 때는 저장소의 서버측 암호화(AES-256)를 요청하고, 백업 안의 개인정보 항목은 이미 암호화된 상태로 들어갑니다.
접근 통제
개인정보를 다루는 화면은 계정·시간·위치로 접근을 좁힙니다.
- 에이전트 계정은 인증 앱(TOTP) 2단계 인증을 켤 수 있고, 본사 관리자는 2단계 인증을 설정하면 키와 인증 코드가 모두 맞아야 들어옵니다.
- 로그인 세션은 12시간이 지나면 만료되고, 에이전트·총판·지사·본사 관리 화면과 병원 포털은 30분 동안 조작이 없으면 자동으로 로그아웃됩니다.
- 에이전트·총판·지사도 업체 관리자가 담당자를 초대하면 담당자마다 개인 계정(이메일·비밀번호·인증 앱 6자리 필수)으로 들어오고, 접속기록에는 업체가 아니라 담당자 개인이 남습니다. 담당자는 업체 계정 자체(비밀번호·인증 앱·브랜드)를 바꿀 수 없습니다.
- 병원 포털은 직원마다 개인 계정(이메일·비밀번호·인증 앱 6자리 필수)으로만 들어옵니다. 병원 관리자가 직원을 초대·중지·삭제하고, 계정을 중지·삭제하거나 인증 앱을 초기화하면 열려 있던 로그인이 즉시 끊기며, 접속기록에는 병원이 아니라 직원 개인이 남습니다.
- 관리자 접속은 허용한 IP에서만 가능하도록 제한할 수 있습니다.
- 에이전트 접속 코드를 다시 발급하면 기존 세션은 즉시 무효가 됩니다. 병원 포털의 개설 코드는 병원 관리자 계정을 만드는 1회용이라 쓰면 폐기되고, 에이전트 미리보기 입장 링크는 10분짜리 1회용입니다.
- 로그인 실패가 반복되면 계정이 점점 길게(최대 30분) 잠기고, 같은 IP의 인증 실패가 10분에 10회를 넘으면 30분간 차단됩니다.
- 세션 쿠키는 HttpOnly·Secure·SameSite 속성으로 발급해 스크립트가 읽거나 다른 사이트가 끼워 보내지 못하게 합니다.
- 병원 계정은 자기 병원에 연결된 홈페이지·기록만 볼 수 있고, 에이전트는 자기 고객 범위만 봅니다.
탐지 · 기록
누가 언제 무엇을 했는지 남기고, 이상 징후는 자동으로 막습니다.
- 애플리케이션 침입 탐지(IDS): 스캐너·경로 탐색·인젝션 문자열을 요청 단계에서 차단하고, 인증 실패·요청 한도 초과가 반복되는 IP를 자동 차단합니다.
- 모든 공개 API에 요청 한도가 있으며, 서버에서는 fail2ban과 CrowdSec이 반복 공격 IP를 네트워크 단에서 막습니다.
- 개인정보 접근기록(누가·언제·어디서·무엇을·몇 건)을 남기고, 일반 보안 이벤트 180일 · 접속기록 730일 · 권한 부여·변경 기록 1,095일 동안 보관합니다.
- 보안 로그는 줄마다 직전 줄의 해시를 이어 붙인(해시 체인) 파일로도 남겨 위·변조 여부를 검증할 수 있습니다.
- 서버 설정 파일 무결성 감시(FIM), 보안 업데이트·백업 상태 점검, 주간 호스트 감사(Lynis·rkhunter)를 운영합니다.
- 서버에는 악성프로그램 방지 프로그램(ClamAV)이 바이러스 정의를 하루 24회 갱신하고 매일 전체 검사를 하며, 감염 파일이 나오면 보안 이벤트로 기록하고 알림 채널이 설정되어 있으면 즉시 알립니다. 매일 1회 검사 방식이며 실시간 접근 감시는 아닙니다.
- 개인정보 대량 열람, 결제 금액 변조 시도 같은 심각 이벤트는 운영자에게 즉시 알립니다(알림 채널 설정 시).
생성 홈페이지 보안
MediAX로 만든 병원 홈페이지에도 같은 기준을 기본으로 적용합니다.
- 배포할 때 보안 헤더(HSTS 1년, 화면 삽입 금지, nosniff, 리퍼러·브라우저 권한 정책)를 자동으로 붙입니다.
- 페이지마다 실제로 들어간 인라인 스크립트의 해시로 콘텐츠 보안 정책(CSP)을 만들어, 허용하지 않은 스크립트가 실행되지 않게 합니다.
- 외부 사이트로 옮겨 올릴 때를 위해 Netlify·Apache·nginx용 헤더 설정 예시를 함께 제공합니다.
병원 전용 보안 관제
병원은 자기 홈페이지의 보안 상태를 직접 확인할 수 있습니다.
- 병원 포털의 보안 화면에서 자기 병원 범위의 보안 이벤트, 개인정보 암호화 이행 현황, 안전조치 점검표를 봅니다.
- 유출(가능성) 인지 기록을 남기면 72시간 통지 기한이 계산되어 표시되고, 종결까지 기록으로 남습니다.
- 월 1회 접근기록 점검을 기록할 수 있습니다(안전성 확보조치 기준 제8조).
법 대응
2026년 9월 11일 시행 개정 개인정보 보호법과 의료광고 규정을 기준으로 합니다.
- 유출등을 알게 되면 시행령이 정한 72시간 이내에 정보주체에게 통지하고(법 제34조 본문은 ‘지체 없이’), 유출 가능성만 알게 된 때에도 피해 최소화 정보를 통지합니다. 보호위원회·KISA 신고는 ① 1천 명 이상 ② 민감정보·고유식별정보 ③ 개인정보처리시스템·취급자 정보기기에 대한 외부 불법 접근에 의한 유출 중 하나에 해당할 때 하며, 경로 확인·회수·삭제로 침해 가능성이 현저히 낮아진 경우에는 신고하지 않을 수 있습니다. 이 절차를 운영 기준과 병원 처리방침에 반영합니다.
- 병원 홈페이지용 개인정보처리방침을 만들 때 처리 위탁, 국외 이전, 유출 통지·손해배상, 파기 조항을 실제 사용 기능에 맞춰 생성합니다.
- MediAX로 만든 홈페이지는 방문자 개인정보를 받지 않는 정보 제공형입니다. 회원가입·로그인·상담 게시판처럼 방문자 개인정보를 받는 기능은 현재 제공하지 않으며, 병원이 별도 폼을 붙이면 그 부분은 병원이 책임집니다(팝업·공지는 개인정보를 받지 않습니다).
- 병원 콘텐츠·홈페이지 문구는 의료광고 금지 표현 검사를 거칩니다. 다만 사전심의 대상 광고의 심의는 병원이 받아야 합니다.
사고 대응 절차
사고가 의심되면 아래 순서로 움직입니다.
- 인지: 탐지 알림·제보·점검으로 유출(가능성)을 알게 되면 즉시 인지 시각과 내용을 기록합니다(72시간 기한 계산 시작).
- 차단: 원인 IP·계정을 차단하거나 직원 계정 중지·접속 코드 재발급으로 확산을 막고, 해시 체인 로그·접속 로그로 범위를 확인합니다.
- 통지·신고: 영향을 받은 병원과 정보주체에게 법이 정한 항목을 알리고, 신고 대상이면 보호위원회·KISA에 신고합니다.
- 종결·재발 방지: 조치 내용을 기록으로 남기고 점검표·설정을 보완합니다.
우리가 약속하지 않는 것
- 종단간 암호화(E2E)가 아닙니다. 서버는 서비스 제공을 위해 암호화된 개인정보를 복호화할 수 있습니다.
- ISMS-P 등 정보보호 관리체계 인증을 받지 않았습니다.
- 어떤 시스템도 사고가 없다고 보장할 수 없습니다. 위의 조치는 위험을 줄이고 빨리 알아채기 위한 것입니다.
- 관리자 2단계 인증·IP 제한·알림 채널 등 일부 항목은 설정해야 동작하며, 설정 여부는 내부 보안 점검표로 관리합니다.
취약점 제보
보안 취약점을 발견하셨다면 security.txt에 적힌 연락처나 상담 문의로 알려 주세요. 재현 방법과 영향 범위를 함께 보내 주시면 확인 후 답변드립니다. 제보를 위해 다른 이용자의 정보에 접근하거나 서비스를 방해하는 시험은 삼가 주세요.