医科・歯科・調剤薬局・介護向け:
厚労省医療情報ガイドライン第6.0版・第7.0版とSCS★3を同時に満たす3ステップ対策
この記事の要点と4つの章のご案内
| 章構成 | 主なテーマ | 要点と確認ポイント |
|---|---|---|
| 1. 基本と全体像 | なぜクリニックや調剤薬局でも「ガイドライン第6.0版・第7.0版 × SCS★3」が必要なのか? | 厚生労働省「医療情報ガイドライン第6.0版・第7.0版」と経済産業省「SCS評価制度(★3)」の求める技術対策は9割以上が共通しており、1度の整備で保健所の立入検査・医療DX加算・地域医療連携の信頼を同時に満たせます。 |
| 2. 現場での進め方と対策 | 厚労省ガイドライン第6.0版・第7.0版・保健所立入検査と「SCS★3」の共通対応表 | 医院・薬局の最大の急所は「オンライン資格確認端末の経路分離」「電子カルテ・レセコン保守業者のVPN管理」「書き換え不能なカルテバックアップ」の3点に集約されます。 |
| 3. 関連する制度とルール | 診療を止めずに整える「クリニック・歯科・薬局の3ステップ実践法」 | 分厚いガイドライン(全4編)を最初から全部読む必要はありません。「院内配線図の見える化」「不変バックアップ」「緊急時連絡カードとBCP」の3ステップから始めるのが最短ルートです。 |
| 4. 詳しい技術仕様としくみ | 保健所の立入検査(医療法第25条)と「医療DX推進体制整備加算」への備え | はい。医療法に基づく立入検査(保健所によるサイバーセキュリティ確認)や診療報酬上の医療DX推進体制整備加算などにおいて、病床規模を問わずすべての医療機関・薬局に「医療情報システムの安全管理に関するガイドライン第6.0版・第7.0版」に沿った基本対策(ネットワーク構成図の把握、保守ベンダーの远程アクセス管理、オフライン・不変バックアップ、BCP策定)が求められています。本記事の3ステップを進めれば、専任担当者がいなくても無理なく基準を満たせます。 |
- 01. 厚生労働省「医療情報ガイドライン第6.0版・第7.0版」と経済産業省「SCS評価制度(★3)」の求める技術対策は9割以上が共通しており、1度の整備で保健所の立入検査・医療DX加算・地域医療連携の信頼を同時に満たせます。
- 02. 医院・薬局の最大の急所は「オンライン資格確認端末の経路分離」「電子カルテ・レセコン保守業者のVPN管理」「書き換え不能なカルテバックアップ」の3点に集約されます。
- 03. 分厚いガイドライン(全4編)を最初から全部読む必要はありません。「院内配線図の見える化」「不変バックアップ」「緊急時連絡カードとBCP」の3ステップから始めるのが最短ルートです。
01. なぜクリニックや調剤薬局でも「ガイドライン第6.0版・第7.0版 × SCS★3」が必要なのか?
かつて医療機関へのサイバー攻撃といえば大学病院や総合病院が標的でしたが、現在はセキュリティ対策が手薄になりがちな地域の医科クリニック、歯科医院、調剤薬局、介護事業所、そして臨床検査センターや医療機器サプライヤーへと被害が広がっています。
厚生労働省が改定した「医療情報システムの安全管理に関するガイドライン 第6.0版・第7.0版」では、従来の分厚い1冊構成を改め、院長向けの「経営管理編」、2. 現場での進め方と対策の「企画管理編」、システム担当者・ベンダー向けの「システム運用編」、そしてクリニック等のための「小規模医療機関向けガイダンス」の4編構成へと整理されました。さらに2026年からは経済産業省・IPAの「SCS評価制度(★3)」が始まり、地域医療連携ネットワークや医療機器・調剤・介護サプライチェーン全体で共通の安全基準を持つことが求められています。
医療・歯科・薬局・介護のサイバー安全に関する3つの一次データ
国内の病院・診療所で発生したランサムウェア事案の約4分の3は、電子カルテや部門システムの保守業者が設置したリモートメンテナンス用VPN機器の脆弱性や認証不備から侵入しています。
厚労省第6.0版・第7.0版および経産省・総務省の「3省2ガイドライン」では、「院内LANだから無条件で安全(閉域網神話)」を改め、多要素認証と書き換え不能バックアップを必須化しています。
医師法24条・歯科医師法23条(診療録5年保存)および薬剤師法27条(調剤済み処方箋3年保存)の真正性・見読性・保存性を、ウイルス感染時にも失わない不変保管が不可欠です。
ひと目でわかる構造図解:クリニック・歯科・薬局の「4区画ゾーニング&オンライン資格確認分離モデル」
02. 厚労省ガイドライン第6.0版・第7.0版・保健所立入検査と「SCS★3」の共通対応表
「厚労省のガイドライン」と「経産省のSCS★3」を別々の仕事として進める必要はありません。以下の4つのポイントを整えるだけで、双方の要求事項を一度にクリアできます。
| 対策分野 | 厚労省ガイドライン第6.0版・第7.0版 / 立入検査項目 | SCS★3 での適合証跡(エビデンス) |
|---|---|---|
| 01 院内ネットワークと機器の把握 | 医療情報システム・オンライン資格確認・検査機器のネットワーク構成図と機器台帳の整備。 | 全IT資産台帳+診療系・オン資系・事務系・待合Wi-FiのVLAN分離構成図。 |
| 02 保守ベンダーのリモート接続管理 | システム関連事業者との責任分界の明確化、VPN機器の脆弱性対策、保守時のアクセス制御。 | リモート保守への多要素認証(または都度承認制)強制+保守作業ログの保存。 |
| 03 カルテ・レセプト・処方データの保護 | ランサムウェア対策としてのオフラインまたは書き換え不能(イミュータブル)バックアップ。 | OpenZFS不変スナップショット保管+年1回のカルテ・レセプト復元訓練記録。 |
| 04 非常時の診療継続計画(サイバーBCP) | システム停止時にも外来・処方・救急対応を継続するための手順書(BCP)と緊急連絡網の整備。 | 72時間初動対応フロー(保健所・厚労省・委託先連絡先一覧)+紙伝票縮退訓練。 |
03. 診療を止めずに整える「クリニック・歯科・薬局の3ステップ実践法」
日々の外来診察や調剤・訪問業務でお忙しい現場でも、休診日や昼休みの時間を使って無理なく進められる3つの実践ステップをご紹介します。
ステップ 01:電子カルテ・レセコン業者に「3つの確認シート」を渡して現状を可視化する
まずは現在契約している電子カルテ・レセコン・歯科レントゲン(PACS)・薬歴システムの保守担当者に、「01 遠隔保守用ルーター(VPN)の型番とファームウェアは最新か」「02 保守ログインのID・パスワードが他の医院と同じ使い回しになっていないか(多要素認証か)」「03 バックアップはランサムウェアに消されない領域に取られているか」の3点を書面(またはメール)で確認します。この回答書自体が、ガイドライン第6.0版・第7.0版の「事業者管理」の大切な証跡になります。
ステップ 02:オンライン資格確認端末・電子カルテと「ネット検索PC・待合室Wi-Fi」を切り離す
受付や院長室でホームページを見たりメールを開いたりするパソコンと、電子カルテ・レセコン・オンライン資格確認端末が同じ家庭用ルーターの下にぶら下がっている場合は、VLAN対応ルーターで通り道を分けます。また、オンライン資格確認端末のブラウザで一般のWebサイトを開いたり、メールソフトを入れたりすることは厳禁とし、資格確認と医療情報連携以外の通信をファイアウォールで遮断します。
ステップ 03:「書き換え不能バックアップ」と「翌日の予約・処方控え(紙・独立タブレット)」を用意する
カルテや薬歴のバックアップを「書き換え不能な金庫(OpenZFS等)」へ毎日自動保存すると同時に、万が一朝9時にシステムが立ち上がらない日でも診察ができるよう、「翌日・翌々日の予約患者リストと定期処方(Do処方)サマリー」を暗号化された独立タブレット(または受付金庫内の紙控え)へ自動出力する仕組みを整えます。これがあれば、システム復旧を待つ間も常連の患者様への診察と処方箋(手書き・控え参照)を落ち着いて続けられます。
04. 保健所の立入検査(医療法第25条)と「医療DX推進体制整備加算」への備え
全国の保健所による立入検査では、「医療情報システムの安全管理に関するチェックリスト」に基づき、サイバー攻撃時における連絡体制(厚生労働省・都道府県・委託事業者への連絡先)やバックアップの有無が確認されます。
「画面に不審な英語が出た」「カルテが開かない」という時、スタッフが3分以内に『LANケーブルを抜く(Wi-Fiを切る)→ 院長へ報告 → 保守業者・サポート窓口へ電話』と動けるA4ラミネートシートを掲示しておくことで、立入検査のBCP項目を確実に満たせます。
ケアマネジャー・訪問看護師・薬局・主治医の間で患者様の状態を共有する際、個人の無料SNSではなく、端末紛失時の遠隔消去とアクセス権限管理が行える医療介護専用環境を使うことで、個人情報保護法(要配慮個人情報)とSCS★3の両方に準拠できます。
現場で陥りやすい落とし穴と回避策(医科・歯科・薬局・介護編)
受付カウンターに置かれたオンライン資格確認端末は、レセコンや電子カルテと直結する最重要機器です。ここでWeb検索やメール閲覧を行うと、サポート詐欺画面やウイルス感染の入り口になります。【回避策】資格確認端末では一般Webサイトへの通信をルーター側で遮断し、検索やメールは分離された事務用PC・タブレットで行いましょう。
インプラントや矯正・根管治療で過去数年分のレントゲン・CT画像が消えてしまうと診療に大きな支障が出ます。【回避策】常時書き込み可能なUSBハードディスク1台だけに頼らず、通常権限では消去できない「書き換え不能な世代別バックアップ」を併用してください。
ガイドライン第6.0版・第7.0版では、カルテの記載や処方変更を「誰が行ったか(確定者の識別)」を記録することが求められています。【回避策】スタッフごとに個別IDを発行し、ICカードや指紋・パスキーで1秒で切り替えられる運用に整えましょう。
30秒でできる!医院・歯科・薬局のガイドライン第6.0版・第7.0版&SCS★3セルフチェック(3項目)
該当する項目にチェックを入れると、現在の状況と優先アドバイスが表示されます(ブラウザ内でのみ動作します)。
理解を深める確認クイズ(医療情報ガイドライン第6.0版・第7.0版編)
Q. クリニックの電子カルテや調剤薬局のレセコンをランサムウェア(身代金ウイルス)から守るため、厚生労働省ガイドライン第6.0版・第7.0版で最も重視されている対策の組み合わせはどれでしょうか?
選択肢 A:「電子カルテ業者にすべて任せているので、院内では配線図もバックアップ場所も把握しなくてよい」とする クリックして解説を見る →
これは最も注意が必要な誤解です。
ガイドライン第6.0版・第7.0版(経営管理編)では、外部事業者に委託していても「ネットワーク構成の把握」や「保守回線の安全確認」を医療機関側(院長・管理者)が監督することが求められています。
選択肢 B:「保守用VPNの最新化・多要素認証」「一般Web閲覧PCとのネットワーク分離」「書き換え不能バックアップとBCP手順」の3つを整える クリックして解説を見る →
大正解です!これが医療機関・歯科・薬局・介護事業所を守る一番確実な3本柱です。
侵入口になりやすい保守VPNとWeb閲覧PCを切り離し、万が一の際にも消えないバックアップと紙・控えのBCPを用意しておくことで、地域の患者様の診療を止めずに守り抜けます。
選択肢 C:患者様用のフリーWi-Fiルーターに電子カルテのLANケーブルをそのまま挿して経費を節約する クリックして解説を見る →
原則として避けてください!
待合室のフリーWi-Fiと電子カルテ・レセコンが同じネットワークにあると、外部のスマホやノートPCから直接院内の医療情報へアクセスできてしまいます。必ず別VLANまたは別回線へ分離(選択肢B)しましょう。
1847年ウィーンの産科医センメルヴェイスが発見した「手洗い」と、医療ネットワークの衛生管理
19世紀半ば、ウィーン総合病院の医師イグナーツ・センメルヴェイスは、処置室に入る前に「塩素水で手を洗う」というたった1つのルールを導入しただけで、産褥熱による死亡率を18%から1%以下へと劇的に減らしました。高価な新薬や巨大な装置がなくても、「汚染区域から清潔区域へ入る境界で必ず消毒(検証・分離)する」だけで命が守れるという事実は、現代のクリニックや薬局のサイバーセキュリティでもまったく同じです。
上級医療情報技師 × 登録情報処理安全確保支援士による個別相談・設定確認
クリニック・歯科医院・調剤薬局・介護事業所のガイドライン第6.0版・第7.0版対応、保健所立入検査準備、SCS★★3取得を丁寧にサポートします。
場面別の実務確認ポイント
ガイドライン第6.0版・第7.0版の「経営管理編」で院長に求められる責務と、保守業者へ確認すべき3つの質問がわかります。
万が一朝に電子カルテやレセコンが起動しない時でも、外来診療・処方・会計を止めないための「紙・控え運用BCP」(第2章)を解説しています。
患者様宅へ持ち出すiPad・スマホの紛失対策と、多職種連携チャットの安全な使い分けルールが確認できます。
技術仕様セクションにて、3省2ガイドライン準拠のデュアルNICルーティング分離、mTLS保守踏み台、不変カルテバックアップのRust実装を詳解しています。
医療情報安全管理ガイドライン第6.0版・第7.0版におけるオンライン資格確認デュアルNIC経路隔離・保守ベンダーmTLS時限バスティオン・電子カルテ真正性/保存性の暗号学的保証
本モノグラフでは、厚生労働省「医療情報システムの安全管理に関するガイドライン第6.0版・第7.0版(システム運用編)」、経済産業省・総務省「医療情報を取り扱う情報システム・サービスの提供事業者における安全管理ガイドライン」、および SCS評価制度(3〜4)を統合的に満たす技術アーキテクチャとして、(1) オンライン資格確認端末(OQS)のデュアルNICルーティングテーブル検証とIPフォワーディング確実な防止、(2) 保守ベンダーのリモートメンテナンス回線における相互TLS(mTLS)+院長承認制時限トークン(JIT Maintenance Lease)、および (3) 電子カルテ・DICOM・調剤録データの真正性・見読性・保存性を担保する不変スナップショット監査を実装する。
01. オンライン資格確認端末(OQS)のデュアルNIC経路分離とブリッジ化防止証明:
オンライン資格確認端末は、社会保険診療報酬支払基金・国保中央会のオンライン請求ネットワーク(IP-VPN / IPsec + IKEv2 閉域網)に接続する外部NIC I_ext と、院内レセコン・電子カルテ連携用の内部NIC I_int を備える。ここで誤って I_int 側にデフォルトゲートウェイ(0.0.0.0/0)を設定したり、OSカーネルのIPルーティング(Windowsレジストリ IPEnableRouter または net.inet.ip.forwarding)を有効化したりすると、院内LANと外部網の間で意図しない非対称ルーティングやインターネット露出が発生する。そのため、(a) Forwarding(I_ext ↔ I_int) = 0、(b) I_int のルーティングエントリは院内レセコン単一ホスト(/32)または連携サブネットのみに限定、(c) 資格確認連携フォルダ(SMB 3.1.1 TCP 445)以外の全インバウンド通信をホストファイアウォールとL3スイッチの双方で遮断することを不変条件とする。
02. 保守ベンダーのリモートアクセスにおける Just-In-Time (JIT) mTLS バスティオン:
医療機関のランサムウェア被害で最多の原因である「保守ベンダー用VPNの常時開放と共通アカウント」を根絶するため、リモート保守は常時待受を廃し、ベンダー技術者のハードウェアトークン証明書 C_vendor と、医療機関管理者が発行した時限承認署名 S_clinic(t_start, t_end, ticket_id) の積集合 Allow(t) ⇔ Valid(C_vendor) ∧ (t_start ≤ t ≤ t_end) ∧ (t_end - t_start ≤ 7200 s) が成立する最大2時間のみ、FreeBSD pf アンカーテーブルへ動的挿入する。
03. 医療情報(e-文書法・ガイドライン第6.0版・第7.0版)の3原則(真正性・見読性・保存性)の暗号学的保証:
電子カルテ(HL7 FHIR / J-MIX)、医用画像(DICOM)、調剤録のバックアップにおいては、単なるファイルコピーではなく、確定操作者ID・タイムスタンプ・ハッシュ連鎖を伴う不変スナップショット(OpenZFS readonly=on + zfs hold)と、オフライン緊急閲覧用ビューア(当日・翌日予約および処方履歴の自己完結型暗号化アーカイブ)を自動生成することで、ランサムウェア感染時にも「真正性(改ざん防止)」「見読性(直ちに読めること)」「保存性(法定期間内の全体復旧)」の3原則を同時に満たす。
| Guideline Section | Clinical Asset / Boundary | Technical Invariant | Automated Audit Check |
|---|---|---|---|
| System Ops Sec. 13 (Network) | Online Qualification Terminal (OQS) | IpEnableRouter == 0, Default GW on NIC1 only | Route table assertion & DNS leak block |
| Planning Sec. 7 (Vendor Mgmt) | Remote Maintenance Bastion | mTLS + Clinic JIT token (Max TTL 120 min) | 0 persistent open VPN sessions during idle |
| System Ops Sec. 11 (BCP/Backup) | EHR / Receipt / PACS / Pharmacy DB | Immutable ZFS snapshot + 48h offline prescription summary | Daily hash attestation & annual restore log |
| System Ops Sec. 14 (Auth) | Doctor / Dentist / Pharmacist Login | Individual ID + FIDO2 / HPKI / IC Card MFA | Shared account usage count == 0 |
#![forbid(unsafe_code)]
/// Maximum permitted duration for a vendor remote maintenance window (2 hours = 7200s).
pub const MAX_VENDOR_MAINTENANCE_WINDOW_SECS: u64 = 7200;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DualNicTerminalState {
pub ip_forwarding_enabled: bool,
pub closed_vpn_nic_has_default_gw: bool,
pub clinic_lan_nic_has_default_gw: bool,
pub clinic_lan_allowed_peer_count: u16,
pub smb_v1_enabled: bool,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct VendorMaintenanceLease {
pub ticket_id: u64,
pub vendor_cert_serial: u128,
pub clinic_approver_id: u32,
pub window_start_unix: u64,
pub window_end_unix: u64,
pub session_recorded: bool,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum MedicalSecurityError {
IpForwardingBridgingRisk,
ClinicLanDefaultGatewayLeak,
ClosedVpnRouteMissing,
LegacySmbV1Prohibited,
ExcessiveClinicLanPeerScope { peers: u16 },
VendorWindowExceedsMaxTtl { duration_secs: u64 },
VendorLeaseInactiveAtTimestamp { now: u64 },
AuditSessionRecordingMandatory,
}
/// Verifies that an Online Qualification Terminal (OQS) or clinical gateway
/// strictly isolates the payment fund closed network from the clinic LAN.
pub fn audit_oqs_dual_nic_isolation(
state: &DualNicTerminalState,
) -> Result<(), MedicalSecurityError> {
if state.ip_forwarding_enabled {
return Err(MedicalSecurityError::IpForwardingBridgingRisk);
}
if state.clinic_lan_nic_has_default_gw {
return Err(MedicalSecurityError::ClinicLanDefaultGatewayLeak);
}
if !state.closed_vpn_nic_has_default_gw {
return Err(MedicalSecurityError::ClosedVpnRouteMissing);
}
if state.smb_v1_enabled {
return Err(MedicalSecurityError::LegacySmbV1Prohibited);
}
if state.clinic_lan_allowed_peer_count == 0 || state.clinic_lan_allowed_peer_count > 4 {
return Err(MedicalSecurityError::ExcessiveClinicLanPeerScope {
peers: state.clinic_lan_allowed_peer_count,
});
}
Ok(())
}
/// Enforces MHLW Guideline v6.0 vendor remote maintenance governance:
/// no always-on VPN, strict 2-hour JIT lease cap, and mandatory session audit logging.
pub fn verify_vendor_maintenance_lease(
lease: &VendorMaintenanceLease,
current_unix_ts: u64,
) -> Result<u64, MedicalSecurityError> {
if !lease.session_recorded {
return Err(MedicalSecurityError::AuditSessionRecordingMandatory);
}
let duration = lease.window_end_unix.saturating_sub(lease.window_start_unix);
if duration == 0 || duration > MAX_VENDOR_MAINTENANCE_WINDOW_SECS {
return Err(MedicalSecurityError::VendorWindowExceedsMaxTtl {
duration_secs: duration,
});
}
if current_unix_ts < lease.window_start_unix || current_unix_ts > lease.window_end_unix {
return Err(MedicalSecurityError::VendorLeaseInactiveAtTimestamp {
now: current_unix_ts,
});
}
let remaining_secs = lease.window_end_unix - current_unix_ts;
Ok(remaining_secs)
}