本文へスキップ
株式会社オープンナレッジ
株式会社オープンナレッジ Open Knowledge Inc.
Manufacturing & Logistics Defense:CAD & EDI Protection 読了目安:約3分 監修:登録情報処理安全確保支援士(第007617号) 加藤 明生

なぜ「毎日バックアップを取っていた工場」の80%が、ランサムウェアで図面と受発注データを失ったのか? — SCS評価(★3)とZFS不変金庫

1. 基本と全体像

この記事の要点と4つの章のご案内

身近なたとえで見る仕組みと公的データに関するイメージ写真
身近なたとえで見る仕組みと公的データ
図解で見る仕組み:防火シャッターとZFS耐火金庫モデルに関するイメージ写真
図解で見る仕組み:防火シャッターとZFS耐火金庫モデル
なぜ「毎日バックアップを取っていた工場」の80%が、ランサムウェアで図面と受発注データを失ったのか? — SCS評価(★3)とZFS不変金庫 の各章におけるテーマと要点一覧表
章構成 主なテーマ 要点と確認ポイント
1. 基本と全体像 身近なたとえで見る仕組みと公的データ はい。国内ランサムウェア被害の63%が中小企業であり、71%で発注元や荷主への業務波及が起きています。取引先のVPNや共有フォルダを踏み台にする攻撃が急増しています。
2. 現場での進め方と対策 図解で見る仕組み:防火シャッターとZFS耐火金庫モデル サプライチェーンの安全性を評価する国の新制度です。「3(25〜26項目)」は基本対策と登録情報処理安全確保支援士等の確認署名が必要となり、大手メーカー・ゼネコン・荷主との取引継続パスポートになります。
3. 関連する制度とルール 実践のポイントと「現場の3項目チェックリスト」 常時接続NASだけでなく「書き換え不能(ZFS)な別金庫」へ自動保管する仕組み(エージェントレス『小規模セキュリティ基本構成』等)が最優先です。0.1秒で暗号化を凍結し、3秒で図面や台帳を復元できます。
4. 詳しい技術仕様としくみ コラム:江戸時代の飛脚中継(西国街道)と現代のサプライチェーン通信 CAD図面や受発注システムの防衛は「ZFS不変バックアップ」と「経産省SCS評価(★3)の25〜26項目点検」の2軸で、工場・倉庫の稼働停止を防ぎ大手取引先からの信頼を確実に守れます。
第1章〜第4章では、実務チェックリスト・公的制度基準・詳しい技術仕様を確認できます。
この記事の要点 対象:製造業・建設業・物流倉庫の経営者・工場長様

CAD図面や受発注システムの防衛は「ZFS不変バックアップ」と「経産省SCS評価(★3)の25〜26項目点検」の2軸で、工場・倉庫の稼働停止を防ぎ大手取引先からの信頼を確実に守れます。

01. 身近なたとえで見る仕組みと公的データ

比喩:「工場の防火シャッターと、外から鍵を壊されない耐火金庫(ZFS不変バックアップ)」 工場でボヤが起きた際、瞬時に下りて延焼を止めるのが「防火シャッター(0.1秒暗号化遮断)」であり、大切なCAD図面や出荷台帳を炎から守るのが「外から鍵を壊されない耐火金庫(ZFS不変バックアップ)」です。
中小被害と取引先波及

被害63%が中小・71%が取引先波及

国内ランサムウェア被害の63%が中小企業であり、取引先への業務波及が71%に到達しています。

復旧費用と操業停止

1,000万円以上59%・停止1ヶ月超52%

被害後の調査・復旧費用1,000万円以上が59%、操業停止1ヶ月以上が52%に上ります。

経産省SCS評価制度

3(25〜26項目+支援士確認)

経産省「SCS評価制度(3:25〜26項目+登録セキスペ確認署名)」が大手メーカー・ゼネコン・荷主との取引継続パスポートに。

02. 図解で見る仕組み:防火シャッターとZFS耐火金庫モデル

01. 取引先EDI・VPN境界 SCS★3(25〜26項目)準拠 02. CAD・倉庫稼働エリア 防火シャッター 0.1秒遮断 03. ZFS耐火金庫(不変保管) 3秒復元で出荷・施工継続
項目 従来のリスクが高い状態 技術的な対策アプローチ
CAD・台帳保管社内NAS常時接続で同時暗号化0.1秒遮断+ZFS不変金庫から3秒復元
親会社調査取引先ごとに調査票を個別回答SCS★★3取得+登録セキスペ署名で一括証明
導入コスト百万円超のUTM機器リース専用機器不要のクラウド分離+お助け隊・補助金活用

03. 実践のポイントと「現場の3項目チェックリスト」

1. なぜ町工場のCAD図面や倉庫のWMSが狙われるのか?

共有NASのCAD設計図(`.dwg`, `.step`)や出荷指示データ(WMS/EDI)が暗号化されると、発注元メーカーや建設現場全体が止まり、71%の確率で取引先へ被害が波及します。

2. 外付けHDDでは守れない、ZFS耐火金庫の仕組み

常時接続NASは感染時に同時破壊されます。「小規模セキュリティ基本構成」は暗号化の乱雑度上昇を0.1秒で凍結し、別OS(FreeBSD ZFS)の追記専用金庫で守るため、CAD図面も3秒で巻き戻せます。

3. 2026年「SCS評価制度(★3)」と登録セキスペ確認署名

経済産業省のSCS評価制度(3:25〜26項目)は登録情報処理安全確保支援士等の確認署名が求められます。当社なら台帳整備から支援士署名まで最短2週間で対応します。

今日から現場で確認できる「3項目チェックリスト」

コラム:江戸時代の飛脚中継(西国街道)と現代のサプライチェーン通信

高槻・芥川宿を通る江戸時代の「継飛脚」は、宿場ごとに封印と通行手形を改めることで書状の偽造や盗難を防ぎました。現代のSCS評価制度(★3)も、サプライチェーンを中継する全企業が同じ基準の手形を持つ仕組みです。

技術仕様・実装解説(PURDUE MODEL ISA-95 & OT/IT DEEP PACKET INSPECTION) 4. 詳しい技術仕様としくみ
技術アーキテクチャと実装仕様

製造・物流サプライチェーンにおけるPurdueモデル(ISA-95)OT/IT境界分離とCAD図面・EDI通信の暗号学的保護

本稿では、金型・精密部品メーカーや物流倉庫を標的とするサプライチェーン攻撃・技術営業秘密(3D CAD図面・NC加工プログラム)窃取を防ぐため、(1) ISA-95 / IEC 62443(Purdue Model)に基づく工場制御系ネットワーク(OT: Level 0〜2)と情報系ネットワーク(IT: Level 4)のステートフル単方向ゲートウェイ分離、(2) Modbus/TCP(Port 502)および EtherNet/IP における不正ファンクションコード遮断、および (3) STEP/DXF 図面資産のテナント別 ZFS 暗号化データセット保護を詳解する。

Industrial Standard
IEC 62443 / ISA-95 Purdue Model
OT Protocol Guard
Modbus/TCP Function Code Filter
CAD Vault Encryption
OpenZFS AES-256-GCM Dataset
Supply Chain Rating
METI SCS ★3 / 4 Ready
1. 設計仕様・数理モデル(Formal Architecture, Protocol Internals & Mathematical Formulation)

1. 【なぜ工場の制御機器(PLC / NC工作機械)はランサムウェアに脆弱なのか】 製造現場で20年以上稼働し続ける NC工作機械、PLC(Programmable Logic Controller)、および自動倉庫制御盤(Purdue Model Level 1〜2)は、リアルタイム応答性と機械寿命の制約から、古い組込みOSや認証機能を持たない産業用プロトコル(Modbus/TCP、MELSEC MCプロトコル、PROFINET)で稼働している。近年、生産管理システム(Level 3/4)とのデータ連携のために工場内LANと事務所LANをルーター1台で直結した結果、事務所PCが受信した1通の標的型メールから工場全体の PLC やファイルサーバーへ感染が拡大し、数週間にわたりラインが全面停止する事案が相次いでいる。

2. 【Purdue Model Level 3.5(産業用DMZ)と Modbus/TCP ファンクションコード検査】 このリスクを構造的に排除するため、OT網(Level 0〜2)とIT網(Level 4)の間に必ず Level 3.5(Industrial DMZ)を設け、IT側からOT側への直接通信(ルーティング)を物理的・論理的に禁止する。稼働状況の収集(SCADA / IoT テレメトリ)は、OT側のエッジゲートウェイから DMZ 内の時系列バッファに対する「読み取り専用ファンクション(例:Modbus Function Code 0x03 Read Holding Registers、0x04 Read Input Registers)」のみに限定し、レジスタ書き換え命令(0x06 Write Single Register、0x10 Write Multiple Registers)やファームウェア更新命令(0x2B Encapsulated Interface Transport)はパケットフィルタ層で無条件にドロップする。

3. 【3D CAD図面(STEP/IGES/DXF)の不正持ち出し防止と電子透かし・ZFS分離】 発注元メーカーから預かる新製品の3D CAD図面は、委託先ごとに独立した OpenZFS 暗号化データセット(encryption=aes-256-gcm)へ格納し、共有リンク作成時にはダウンロード回数上限・有効期限・アクセス元IP制約・操作監査ログ(SHA-256ハッシュチェーン)を強制付与する。

2. パラメータ・構成仕様(ISA-95 Purdue Model Network Zones & Modbus/TCP Packet Filtering Specification)
Purdue LevelZone Function & AssetsAllowed Protocol / DirectionBlocked / Inspected Payload
Level 4 (Enterprise IT)ERP, Email, Web, Office PCs, VPNHTTPS / TLS 1.3 to Level 3.5 DMZ onlyDirect routing to Level 0-2 OT subnet strictly dropped
Level 3.5 (Industrial DMZ)Data Diode / Telemetry Broker / Jump HostAuthenticated Pull from Level 3 HistorianBlocks all SMB (445), RDP (3389), and unauthenticated RPC
Level 2-3 (Supervisory OT)SCADA, HMI, MES, Warehouse WCSModbus/TCP FC 0x01-0x04 (Read-Only Telemetry)Drops FC 0x05, 0x06, 0x0F, 0x10 (Unauthorized Register Write)
Level 0-1 (Control / Field)PLC, NC Machine Tools, Servo Drives, SensorsIsolated Fieldbus / Deterministic EthernetZero Internet / Zero Gateway route configured
3. 実装コード・設定仕様(Executable Specification Code (crates/ok-ot-guard/src/modbus_dpi.rs)) Rust Edition 2024 (#![forbid(unsafe_code)])
#![forbid(unsafe_code)]

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ModbusVerdict {
    AllowReadTelemetry { unit_id: u8, function_code: u8 },
    DropMalformedMbapHeader,
    BlockUnauthorizedWriteFunction { unit_id: u8, function_code: u8 },
    BlockDiagnosticOrProgrammingFunction { unit_id: u8, function_code: u8 },
}

/// Inspects a raw Modbus/TCP frame (7-byte MBAP header + 1-byte Function Code + PDU data)
/// at the Level 3.5 Industrial DMZ boundary, enforcing strict Read-Only telemetry policy.
#[inline]
pub fn inspect_modbus_tcp_frame(frame: &[u8], allow_writes: bool) -> ModbusVerdict {
    // Minimum Modbus/TCP frame: TransactionID(2) + ProtocolID(2) + Length(2) + UnitID(1) + FC(1) = 8 bytes
    if frame.len() < 8 {
        return ModbusVerdict::DropMalformedMbapHeader;
    }
    let protocol_id = u16::from_be_bytes([frame[2], frame[3]]);
    let declared_len = u16::from_be_bytes([frame[4], frame[5]]) as usize;
    // Protocol ID must be 0x0000 for standard Modbus/TCP, and length must match remaining bytes
    if protocol_id != 0x0000 || declared_len < 2 || frame.len() < 6 + declared_len {
        return ModbusVerdict::DropMalformedMbapHeader;
    }

    let unit_id = frame[6];
    let fc = frame[7];

    match fc {
        // Read Coils (0x01), Discrete Inputs (0x02), Holding Registers (0x03), Input Registers (0x04)
        0x01..=0x04 => ModbusVerdict::AllowReadTelemetry {
            unit_id,
            function_code: fc,
        },
        // Write Single/Multiple Coils & Registers (0x05, 0x06, 0x0F, 0x10, 0x16, 0x17)
        0x05 | 0x06 | 0x0F | 0x10 | 0x16 | 0x17 => {
            if allow_writes {
                ModbusVerdict::AllowReadTelemetry {
                    unit_id,
                    function_code: fc,
                }
            } else {
                ModbusVerdict::BlockUnauthorizedWriteFunction {
                    unit_id,
                    function_code: fc,
                }
            }
        }
        // Diagnostics (0x08), Program Controller, Encapsulated Interface (0x2B), or Exception Masks
        _ => ModbusVerdict::BlockDiagnosticOrProgrammingFunction {
            unit_id,
            function_code: fc,
        },
    }
}
4. 詳しい技術仕様としくみ(システム設計・数理モデル・実装例)

動的CMS/PHPランタイム攻撃面(CVE-2024-4577等)の解剖とAstro+Rust静的分離設計

プロトコル仕様・数理モデル・Rust 2024 実装コードの詳細は、専門技術モノグラフにて公開しています。

技術モノグラフを読む →
ご質問・公的制度の活用に関するお問い合わせ窓口

掲載資料に関するご質問・公的制度活用のご案内

本ページの図解や解説内容に関するご質問、経済産業省「SCS評価制度」やIPA「SECURITY ACTION・サイバーセキュリティお助け隊サービス」等の公的制度の確認方法について、落ち着いた参考窓口としてご案内しております。売り込みや営業連絡は一切行いませんので、社内勉強会やご家庭での確認資料としてご自由にご活用ください。

図解・ビジュアルの拡大表示

図表内のテキストもそのまま選択・検索可能です(ベクターSVG描画) 枠外クリックまたは ESC キーで閉じます