Kerry 的筆記本
  • Table of contents
  • Kerry的Mac裝機必要
  • ASP.NET Core 教育訓練文件
    • .NET 9 OpenAPI 介紹與教學
    • 目錄
    • ASP.NET Core Authentication系列(一)理解Claim, ClaimsIdentity, ClaimsPrincipal
    • ASP.NET Core Authentication系列(三)Cookie選項
    • ASP.NET Core Authentication系列(二)實現認證、登錄和註銷
    • ASP.NET Core Authentication系列(四)基於Cookie實現多應用間單點登錄(SSO)
    • ASP.NET Core Consul 教學
    • ASP.NET Core Hangfire 排程管理
    • ASP.NET Core KeyCloak 實作
    • ASP.NET Core NLog-依照Environment使用Nlog.Config檔案
    • ASP.NET Core NLog-如何使用 NLog 將 log 寫到檔案
    • ASP.NET Core Nlog-發送訊息到ElasticSearch
    • 目錄
    • ASP.NET Core Quartz.NET 管理介面
    • ASP.NET Core RDLC 報表設計
    • ASP.NET Core SFTP (使用第三方套建 SSH.Net) - 類別庫為案例
    • ASP.NET Core 中使用 HttpReports 進行接口統計,分析, 可視化, 監控,追踪等
    • ASP.NET 使用 MassTransit 與 RabbitMQ,實現事件發佈、訂閱
    • Asp.Net Core 分散式Session – 使用 Redis
    • ASP.NET Core 前台會員修改個人資料
    • ASP.NET Core 前台會員忘記密碼與重設密碼
    • ASP.NET Core 前台會員登入
    • ASP.NET Core 前台會員註冊
    • ASP.NET Core 呼叫 API 發生 CORS 錯誤
    • ASP.NET Core 如何套網頁設計樣版
    • ASP.NET Core 客製化Model Validation 預設錯誤訊息
    • ASP.NET Core 後台查詢頁面教學
    • ASP.NET Core 網站生命週期
    • ASP.NET Feature Management 使用說明與教學
    • ASP.NET RulesEngine 介紹
    • ASP.NET WinForms APP 程式安裝檔
    • LinePay 支付完成後返回 LINE 應用而不跳出外部瀏覽器
    • EntityFramework
      • EF Core Migrations 完整教學手冊
      • EntityFramework Core DB Migrations
      • 使用 Entity Framework Core (EF Core) 的 Migrations 功能進行版本控制
    • NET 6
      • .NET 6 Autofac範例
      • .NET 6 Automapper範例
      • .NET 6 BenchmarkDotNet範例
      • .NET 6 Bogus範例
      • .NET 6 Dapper範例
      • .NET 6 Dapper語法說明
      • .NET 6 EFCore範例
      • .NET 6 EFCore語法說明
      • .NET 6 EPPlus圖表範例
      • .NET 6 EPPlus範例
      • .NET 6 Hangfire範例
      • .NET 6 HttpClient單元測試範例
      • .NET 6 MailKit前置作業
      • .NET 6 MailKit範例
      • .NET 6 Moq範例
      • .NET 6 NLog範例
      • .NET 6 NLog進階範例
      • .NET 6 Serilog範例
      • .NET 6 Serilog進階範例
      • .NET 6 Telegram.Bot前置作業
      • .NET 6 Telegram.Bot範例
      • .NET 6 Text.Json範例
      • .NET 6 swagger授權
      • .NET 6 swagger範例
      • .NET 6 xUnit範例
      • .NET 6 取得appsettings檔案內容
      • .NET 6 更改回傳Json時為大駝峰命名
      • .NET 6 解決System.Text.Json序列化後會將所有非ASCII轉為Unicode
    • WDMIS
      • CORS
      • FeatureManagement
      • Serilog
      • Spectre.Console
      • 資料模型實戰:從 MSSQL 設計到 .NET 8 WebAPI 實作(以刀具管理為例)
  • Azure
    • 如何在 ASP.NET CORE 5.0 WEB 應用程序中實現 AZURE AD 身份驗證
    • Azure App Configuration 使用教學
    • Azure Blob Storage
    • Azure DevOps 持續整合(CI) + Artifacts
  • CSharp
    • ASP.NET await 與 wait 的差異
    • AutoMapper —— 類別轉換超省力
    • C# 中的 HTTPClient — 入門指南
    • C# 正則表達式:從零到英雄指南
    • C# 集合, List<> 取交集、差集、聯集的方法
    • C#單元測試教學
    • CORS 介紹與設定方式
    • CSharp Coding Conventions
    • Using jQuery Unobtrusive AJAX in ASP.NET Core Razor Pages
    • 深入Dapper.NET源碼
    • 菜雞與物件導向
      • 菜雞與物件導向 (0): 前言
      • 菜雞與物件導向 (1): 類別、物件
      • 菜雞與物件導向 (10): 單一職責原則
      • 菜雞與物件導向 (11): 開放封閉原則
      • 菜雞與物件導向 (12): 里氏替換原則
      • 菜雞與物件導向 (13): 介面隔離原則
      • 菜雞與物件導向 (14): 依賴反轉原則
      • 菜雞與物件導向 (15): 最少知識原則
      • 菜雞與物件導向 (2): 建構式、多載
      • 菜雞與物件導向 (3): 封裝
      • 菜雞與物件導向 (4): 繼承
      • 菜雞與物件導向 (5): 多型
      • 菜雞與物件導向 (6): 抽象、覆寫
      • 菜雞與物件導向 (7): 介面
      • 菜雞與物件導向 (8): 內聚、耦合
      • 菜雞與物件導向 (9): SOLID
      • 菜雞與物件導向 (Ex1): 小結
  • DBeaver
    • 如何強制讓 DBeaver 在 Mac 上使用英文介面
  • DesignPattern
    • OAuth
    • Repository 模式 (Repository Pattern)
    • Single Sign On 實作方式介紹 (CAS)
    • 【SOP製作教學】新手適用,SOP範例、流程圖、製作流程全公開!
    • 【SOP製作教學】流程圖教學、重點範例、BPMN符號介紹!
    • 【SOP製作教學】流程圖符號整理、BPMN2.0進階符號教學!
    • 多奇數位 C# 程式碼撰寫規範 (C# Coding Guideline)
    • 軟體分層設計模式 (Software Layered Architecture Pattern)
    • 開源程式碼檢測平台 SonarQube
    • 菜雞新訓記
      • 菜雞新訓記 (0): 前言
      • 菜雞新訓記 (1): 使用 Git 來進行版本控制吧
      • 菜雞新訓記 (2): 認識 Api & 使用 .net Core 來建立簡單的 Web Api 服務吧
      • 菜雞新訓記 (3): 使用 Dapper 來連線到資料庫 CRUD 吧
      • 菜雞新訓記 (4): 使用 Swagger 來自動產生可互動的 API 文件吧
      • 菜雞新訓記 (5): 使用 三層式架構 來切分服務的關注點和職責吧
      • 菜雞新訓記 (6): 使用 依賴注入 (Dependency Injection) 來解除強耦合吧
      • 菜雞新訓記 (7): 使用 Fluent Validation 來驗證參數吧
  • DevOps
    • Repository 模式 (Repository Pattern)
    • pipeline工具研究
    • 單例模式 (Singleton Pattern)
    • 單元測試
    • 軟體分層設計模式 (Software Layered Architecture Pattern)
    • 雙重檢查鎖定模式 (Double-Checked Locking Pattern)
  • Docker
    • Docker 中部署 .NET 8 Web App 並支援 HTTPS
    • Docker指令大全
    • 第七章 安裝Nomad
    • Docker - 第三章 | 安裝 MSSQL
    • Docker - 第九章 | 安裝 datalust seq
    • 第二章 docker-compose 教學
    • Docker - 第五章 | 安裝 Redis
    • 第八章 安裝SonarQube
    • Docker - 第六章 | 安裝RabbitMQ
    • 第十一章 安裝 VtigerCRM
    • 第十二章 安裝KeyCloak
    • Docker - 第十章 | 安裝 Redmine
    • 第四章 安裝MySQL
    • Docker Desktop (含更改 Docker Image 路徑)
  • Git
    • Git Flow 指令大全(完整指令整理) 🚀
    • Git 安裝及配置SSH Key
    • Git 建立到上傳
    • 將現有專案的遠端儲存庫直接更改為新的儲存庫
    • Git 流程規劃
    • Git 語法大全
    • 30 天精通 Git 版本控管
      • 30 天精通 Git 版本控制
        • 第 01 天:认识 Git 版本控制
        • 第 02 天:在 Windows 平台必装的三套 Git 工具
        • 第 03 天:建立仓库
        • 第 04 天:常用的 Git 版本控制指令
        • 第 05 天:了解仓库、工作目录、物件与索引之间的关系
        • 第 06 天:解析 Git 资料结构 - 物件结构
        • 第 07 天:解析 Git 资料结构 - 索引结构
        • 第 08 天:关于分支的基本观念与使用方式
        • 第 09 天:比对文件与版本差异
        • 第 10 天:认识 Git 物件的绝对名称
        • 第 11 天:认识 Git 物件的一般参照与符号参照
        • 第 12 天:认识 Git 物件的相对名称
        • 第 13 天:暂存工作目录与索引的变更状态
        • 第 14 天: Git for Windows 选项设定
        • 第 15 天:标签 - 标记版本控制过程中的重要事件
        • 第 16 天:善用版本日志 git reflog 追踪变更轨迹
        • 第 17 天:关于合并的基本观念与使用方式
        • 第 18 天:修正 commit 过的版本历史记录 Part 1
        • 第 19 天:设定 .gitignore 忽略清单
        • 第 20 天:修正 commit 过的版本历史记录 Part 2
        • 第 21 天:修正 commit 过的版本历史记录 Part 3
        • 第 22 天:修正 commit 过的版本历史记录 Part 4 (Rebase)
        • 第 23 天:修正 commit 过的版本历史记录 Part 5
        • 第 24 天:使用 GitHub 远端仓库 - 入门篇
        • 第 25 天:使用 GitHub 远端仓库 - 观念篇
        • 第 26 天:多人在同一个远端仓库中进行版控
        • 第 27 天:通过分支在同一个远端仓库中进行版控
        • 第 28 天:了解 GitHub 的 fork 与 pull request 版控流程
        • 第 29 天:如何将 Subversion 项目汇入到 Git 仓库
        • 第 30 天:分享工作中几个好用的 Git 操作技巧
      • zh-tw
        • 第 01 天:認識 Git 版本控管
        • 第 02 天:在 Windows 平台必裝的三套 Git 工具
        • 第 03 天:建立儲存庫
        • 第 04 天:常用的 Git 版本控管指令
        • 第 05 天:了解儲存庫、工作目錄、物件與索引之間的關係
        • 第 06 天:解析 Git 資料結構 - 物件結構
        • 第 07 天:解析 Git 資料結構 - 索引結構
        • 第 08 天:關於分支的基本觀念與使用方式
        • 第 09 天:比對檔案與版本差異
        • 第 10 天:認識 Git 物件的絕對名稱
        • 第 11 天:認識 Git 物件的一般參照與符號參照
        • 第 12 天:認識 Git 物件的相對名稱
        • 第 13 天:暫存工作目錄與索引的變更狀態
        • 第 14 天: Git for Windows 選項設定
        • 第 15 天:標籤 - 標記版本控制過程中的重要事件
        • 第 16 天:善用版本日誌 git reflog 追蹤變更軌跡
        • 第 17 天:關於合併的基本觀念與使用方式
        • 第 18 天:修正 commit 過的版本歷史紀錄 Part 1
        • 第 19 天:設定 .gitignore 忽略清單
        • 第 20 天:修正 commit 過的版本歷史紀錄 Part 2
        • 第 21 天:修正 commit 過的版本歷史紀錄 Part 3
        • 第 22 天:修正 commit 過的版本歷史紀錄 Part 4 (Rebase)
        • 第 23 天:修正 commit 過的版本歷史紀錄 Part 5
        • 第 24 天:使用 GitHub 遠端儲存庫 - 入門篇
        • 第 25 天:使用 GitHub 遠端儲存庫 - 觀念篇
        • 第 26 天:多人在同一個遠端儲存庫中進行版控
        • 第 27 天:透過分支在同一個遠端儲存庫中進行版控
        • 第 28 天:了解 GitHub 的 fork 與 pull request 版控流程
        • 第 29 天:如何將 Subversion 專案匯入到 Git 儲存庫
        • 第 30 天:分享工作中幾個好用的 Git 操作技巧
  • Hands-On Labs - LineBotSDK 實作手札 (C#, .net core)
    • 00. 如何申請LINE Bot
    • CLI
      • 使用CLI來發送新的Channel Access Token(LINE Bot)
      • 使用CLI免費發送LINE Notify通知
    • basic
      • 如何發送LINE訊息(Push Message)
      • 如何發送LINE Template Messages
      • 如何發送ImageMap訊息
      • 如何發送Flex Message
      • 如何在訊息後面加上QuickReply快捷選項
    • liff
      • Lab 21: 建立第一個LIFF應用
    • webhook
      • 如何建立可Echo的基本LINE Bot
      • 如何在WebHook中取得用戶個人資訊(名稱、頭像、狀態)
      • 如何在WebHook中取得用戶上傳的圖片(Bytes)
  • Markdown
    • Markdown Cheatsheet 中文版
    • Markdown語法大全
    • 使用HackMD建立書本目錄
    • 使用HackMD建立簡報
  • SAP ABAP
    • ABAP開發環境和總體介紹
    • SAP MM模塊常用表總結
    • SAP QM數據庫表清單
    • SAP欄位與表的對應關係
  • SQL Server
    • [SQL SERVER] Like in
    • SQL Server 中,移除資料庫中所有的關聯限制
    • SQL Server 刪除資料庫中所有資料表
    • SQL Server View、Function 及 Stored Procedure 定義之快速備份
    • SSMS v18 清除登入畫面中,下拉選單歷史紀錄
    • [MS SQL]如何透過Database Mail進行郵件發送
    • [SQL SERVER]撰寫Stored Procedure小細節
    • 使用 Data Migration Assistant 移轉 SQL Server 資料庫與帳戶
    • 使用SSIS創建同步資料庫數據任務
  • Tools
    • 免費 FTP 伺服器 FileZilla Server 安裝教學 (新版設定)
  • VisualStudio
    • .NET CLI 指令碼介紹
    • Visual Studio 使用 Git 版本控制
    • 使用 Visual Studio 2022 可透過 .editorconfig 鎖定文字檔案的儲存編碼格式分享
  • Web API
    • ASP.NET Core 6 Web API 進行 JWT 令牌身份驗證
    • [ASP.NET Core]如何使用SwaggerAPI說明文件
    • ASP.NET Core Web Api實作JWT驗證筆記
    • ECFIT API 範例
    • JWT Token Authentication And Authorizations In .Net Core 6.0 Web API
    • 微服務架構 - 從狀態圖來驅動 API 的設計
  • Windows
    • [C#] 伺服器監控常用語法 (事件檢視器、CPU 硬碟使用率、程式執行狀況)
    • Configure IIS Web Server on Windows Server 2019
    • Log Paser Studio 分析 IIS W3C Log
    • Windows Server 2019 如何安裝 IIS 運行 ASP.NET 專案
    • 如何檢查安裝在 IIS 上的 .NET Core Hosting Bundle 版本
    • [IIS] 如何解決網站第一個請求 Request 特別慢 ?
    • IIS 不停機更版設置
    • SQL Server 2019 Standard 繁體中文標準版安裝
    • WINDOWS共用資料夾的網路認證密碼放在哪?如何清除?
    • 如何設定 ASP.NET CORE 網站應用程式持續執行在 IIS 上
  • 專案管理
    • SSDLC (Secure Software Development Life Cycle)
    • 系統開發原則
    • MIS及專案管理-使用Redmine
      • 第10章 - [日常管理]MIS部門週會工作進度追蹤
      • 第11章 - [日常管理]MIS部門主管月會報告管理
      • 第12章 - [日常管理]機房工作日誌
      • 第13章 - [日常管理]MIS部門耗用工時及工作進度檢討
      • 第14章 - [日常管理]MIS文件知識庫
      • 第15章 - [日常管理]整理及管理分享
      • 第16章 - [異常管理]使用者問題回報系統
      • 第17章 - [異常管理]資安事件及異常紀錄
      • 第18章 - [異常管理]整理及管理分享
      • 第19章 - [變革管理]MIS的專案及專案管理五大階段
      • 第1章 - [MIS及專案管理]中小企業MIS的鳥事
      • 第20章 - [變革管理]MIS的新專案管理:起始階段
      • 第21章 - [變革管理]MIS的新專案管理:規劃階段
      • 第22章 - [變革管理]MIS的新專案管理:執行階段
      • 第23章 - [變革管理]MIS的新專案管理:監控階段
      • 第24章 - [變革管理]MIS的新專案管理:結束階段
      • 第25章 - [變革管理]整理及管理分享
      • 第26章 - [ISMS管理]ISMS平台整體規劃
      • 第27章 - [ISMS管理]ISMS文管中心
      • 第28章 - [ISMS管理]ISMS表單紀錄的管理
      • 第29章 - [ISMS管理]整理及管理分享
      • 第2章 - [MIS及專案管理]專案管理的概念及MIS應用
      • 第30章 - 初心、來時路及感謝:系列文章總結回顧
      • 第3章 - [MIS及專案管理]管理工具的選擇
      • 第4章 - [Redmine]Redmine的安裝及設定
      • 第5章 - [Redmine]Redime系統邏輯說明
      • 第6章 - [Redmine]自行建立及維護表單
      • 第7章 - [Redmine]專案版面的規劃
      • 第8章 - [日常管理]AR管理
      • 第9章 - [日常管理]資訊服務申請
  • 微服務架構
    • DDD + CQRS + MediatR 專案架構
    • 微服務架構 #2, 按照架構,重構系統
    • 淺談微服務與網站架構的發展史
    • API First Workshop 設計概念與實做案例
      • API First #1 架構師觀點 - API First 的開發策略 - 觀念篇
      • API First #2 架構師觀點 - API First 的開發策略 - 設計實做篇
    • 基礎建設 - 建立微服務的執行環境
      • Part #1 微服務基礎建設 - Service Discovery
      • Part #2 微服務基礎建設 - 服務負載的控制
      • Part #3 微服務基礎建設 - 排隊機制設計
      • Part #4 可靠的微服務通訊 - Message Queue Based RPC
      • Part #5 非同步任務的處理機制 - Process Pool
    • 實做基礎技術 API & SDK Design
      • API & SDK Design #1, 資料分頁的處理方式
      • API & SDK Design #2, 設計專屬的 SDK
      • API & SDK Design #3, API 的向前相容機制
      • API & SDK Design #4, API 上線前的準備 - Swagger + Azure API Apps
      • API & SDK Design #5 如何強化微服務的安全性 API Token JWT 的應用
    • 建構微服務開發團隊
      • 架構面試題 #1, 線上交易的正確性
      • 架構面試題 #2, 連續資料的統計方式
      • 架構面試題 #3, RDBMS 處理樹狀結構的技巧
      • 架構面試題 #4 - 抽象化設計;折扣規則的設計機制
    • 架構師觀點 - 轉移到微服務架構的經驗分享
      • Part #1 改變架構的動機
      • Part #2 實際改變的架構案例
    • 案例實作 - IP 查詢服務的開發與設計
      • 容器化的微服務開發 #1 架構與開發範例
      • 容器化的微服務開發 #2 IIS or Self Host
  • 系統評估
    • RPA 與 WebAPI 評估
    • 數位轉型:從現有系統到數位化的未來
    • 數位轉型:從現有系統到數位化的未來
  • 面試
    • CV_黃子豪_2024
    • HR 問題集
    • .NET 工程師 面試問題集
    • 資深工程師 問題集
    • 資深開發人員 / 技術主管
    • 題目
Powered by GitBook
On this page
  • 1. 存取控制
  • 1.1 帳號管理
  • 1.2 最小權限
  • 1.3 遠端存取
  • 2. 事件日誌與可歸責性
  • 2.1 記錄事件
  • 2.2 日誌記錄內容
  • 2.3 日誌儲存容量
  • 2.4 日誌處理失效回應
  • 2.5 時戳及校時
  • 2.6 日誌資訊之保護
  • 3. 營運持續計畫
  • 3.1 系統備份
  • 3.2 系統備援
  • 4. 識別與鑑別
  • 4.1 內部使用者之識別與鑑別
  • 4.2 身分驗證管理
  • 4.3 鑑別資訊回饋
  • 4.3 加密模組鑑別
  • 4.4 非內部使用者之識別與鑑別
  • 5. 系統發展生命週期
  • 5.1 系統發展生命週期需求階段
  • 5.2 系統發展生命週期設計階段
  • 5.3 系統發展生命週期開發階段
  • 5.4 系統發展生命週期測試階段
  • 5.5 系統發展生命週期部署與維運階段
  • 5.6 系統發展生命週期委外階段
  • 5.7 獲得程序
  • 6. 系統與通訊保護
  • 6.1 傳輸之機密性與完整性
  • 6.2 資料儲存之安全
  • 7. 系統與資訊完整性
  • 7.1 漏洞修復
  • 7.2 資訊系統監控
  • 7.2 軟體及資訊完整性
  1. 專案管理

SSDLC (Secure Software Development Life Cycle)

安全系統發展生命週期


[TOC]


1. 存取控制

1.1 帳號管理

  • 建立帳號管理機制,包含帳號之申請、建立、修改、啟用、停用及刪除之程序。

    【資安需求項目查檢】資通系統之帳號應透過正式的帳號申請程序所建立,完成開通審核程序始能使用,因此系統應具備帳號管理機制,可對系統帳號進行申請、建立、修改、啟用、停用或刪除之行為。
  • 已逾期之臨時或緊急帳號應刪除或禁用。

    【資安需求項目查檢】若具有臨時帳號或緊急帳號時,應實作已逾期之系統帳號檢查機制,於帳號逾期時自動停用或刪除,以避免帳號遭有心人士盗用。
  • 資訊系統閒置帳號應禁用。

    【資安需求項目查檢】宜記錄系統帳號最後登入時間,可透過工作排程,檢查是否有持續一段時間(如半年等)未登入系統之帳號,並實作自動停用該帳號之功能。
  • 定期審核資訊系統帳號之申請。

    【日常維運管理需求】定期審核資通系統帳號使用現況,檢視是否存在帳號被異常建立、竄改或啟用等行為,並禁用或刪除閒置帳號與臨時帳號。
  • 公司應定義各系統之閒置時間或可使用期限與資訊系統之使用情況及條件。

    【日常維運管理需求】機關宜定義系統閒置時間(如20分鐘等)或可使用期限(如達使用時數後自動登出等)與資通系統之使用情況及條件(如僅開放上班時間存取等)
  • 逾越公司所許可之閒置時間或可使用期限時,系統應自動將使用者登出。

    【資安需求項目查檢】會談(Session)機制目的為管理使用者與伺服器之間的連線狀態,使用者於系統中若一段時間未進行活動,系統應有自動機制將該使用者的會談階段設為失效而登出系統,以降低資安風險。
  • 應依公司規定之情況及條件,使用資訊系統。

    【資安需求項目查檢】應依據機關規定之情況及條件(如特定時間或指定IP來源等),限制系統使用行為(如僅開放平時上班時間使用系統、特定功能或機敏資訊僅允許透過內部網路存取等)。
  • 監控資訊系統帳號,如發現帳號違常使用時回報管理者。

    【資安需求項目查檢】應具備監控及通知機制,向系統管理者回報帳號異常使用行為(如短期內大量帳號登入失敗或存取未經授權之資源等)。

1.2 最小權限

  • 採最小權限原則,僅允許使用者(或代表使用者行為之程序)依機關任務及業務功能,完成指派任務所需之授權存取。

    【日常維運管理需求】使用者(或代表使用者行為之程序)應以完成該工作所需的最小權限操作系統功能,避免過度授權而增加系統資源被不當存取的風險。因此在進行授權決定時,應考量該使用者(或代表使用者行為之程序)之業務性質與範圍,限制其所能存取的系統功能及資料。

1.3 遠端存取

  • 對於每一種允許之遠端存取類型(如遠端桌面連線、ssh、網路芳鄰或FTP),均應先取得授權,建立使用限制、組態需求、連線需求及文件化,使用者之權限檢查作業應於伺服器端完成。

    【資安需求項目查檢】機關應明確訂定資通系統之存取限制、組態需求、連線需求,並將這些資訊文件化,以供日後查檢。
    
    開放機關內部同仁及委外廠商進行遠端維護資通系統,應採「原則禁止、例外允許」方式辦理,若機關因地理限制、處理時效及專案特性等因素,須開放前揭人員自遠端存取資通系統時,至少辦理下列防護措施:
    (一)依資通安全管理法施行細則第4條及資通安全責任等級分級辦法附表十中有關遠端存取相關規定辦理,並建立及落實管理機制。
    (二)開放遠端存取期間原則以短天期為限,並建立異常行為管理機制。
    (三)於結束遠端存取期間後,應確實關閉網路連線,並更換遠端存取通道(如VPN)登入密碼。
  • 使用者之權限檢查作業應於伺服器端完成。

    【資安需求項目查檢】應於伺服器端實作權限檢查機制,並預設禁止任何未通過權限檢查之存取行為,以避免被使用者繞過。
  • 應監控資通系統遠端連線。

    【日常維運管理需求】資通系統所允許之遠端連線活動,應使用監控設備或其他可偵測未經授權使用的設備,在發現異常連線或存取行為時提出警告,以防止資通系統被不當使用。
  • 資通系統應採用加密機制。

    【資安需求項目查檢】遠端存取資通系統時,應以加密機制保護機敏資料傳輸時之機密性。常見作法如採用HTTPS加密傳輸等,並選擇高強度之協定版本及演算法。
  • 資通系統遠端存取之來源應為機關已預先定義及管理之存取控制點。

    【日常維運管理需求】遠端存取行為應經過適當授權後始可放行,若有必要允許外部遠端存取之系統功能,應限制資通系統遠端存取之來源(如機器、網路位址等),預先定義合法來源並進行管理,避免全面性開放存取。

2. 事件日誌與可歸責性

2.1 記錄事件

  • 訂定日誌之記錄時間週期及紀錄留存政策,並保留日誌至少六個月。

    【資安需求項目查檢】應依機關規定之時間週期及紀錄留存政策,保留系統事件日誌(Audit Logs),目的包含程式除錯、行為歸責、稽核取證及法規要求等。
    
    保存範圍如下:
    A級機關:應保存全部資通系統與各項資通及防護設備最近6個月之日誌紀錄。
    B級機關:應保存全部核心資通系統與相連之資通及防護設備最近6個月之日誌紀錄。
    C級機關:應保存全部核心資通系統最近6個月之日誌紀錄。
    
    保存項目如下:
    作業系統日誌 (OS event log)
    網站日誌 (web log)
    應用程式日誌 (AP log)
    登入日誌 (logon log)
  • 確保資通系統有記錄特定事件之功能,並決定應記錄之特定資通系統事件。

    【資安需求項目查檢】資通系統應實作記錄特定事件之功能,如身分驗證失敗、存取資源失敗、重要行為、重要資料異動、功能錯誤及管理者行為等。
  • 應記錄資通系統管理者帳號所執行之各項功能。

    【資安需求項目查檢】系統管理者為資通系統內具有最高權限之帳號,對系統及資料極具影響力,記錄所有管理者帳號執行之各項功能,有助於定期記錄系統行為及資安事件追查。
  • 應定期審查機關所保留資通系統產生之日誌。

    【日常維運管理需求】機關應訂定日誌審查時程,由負責人員檢視日誌紀錄內容,以掌握是否在期間內曾發生重要的資安事件,如異常的存取行為、重大的系統錯誤等。

2.2 日誌記錄內容

  • 資通系統產生之日誌應包含事件類型、發生時間、發生位置及任何與事件相關之使用者身分識別等資訊,並採用單一日誌紀錄機制,確保輸出格式之一致性,並應依資通安全政策及法規要求納入其他相關資訊。

    【資安需求項目查檢】日誌應詳細描述所觸發的事件,包含人、 事、時、地、物等關鍵資訊,宜包含:使用者帳號 (避免個資類型)、時間、執行之功能或存取之資源名稱、事件類型或優先等級、執行結果或事件描述、事件發生當下相關物件資訊、網路來源與目的位址,以及錯誤代碼等。盡可能採用單一的Log機制,如不得同時混用兩種以上日誌產生套件(如Log4Net與Nlog等),並應確保日誌內容格式之可讀性,以便於事件比對與追查。日誌應依據資通安全政策及其他法規要求,納入任何有必要留存之資訊,如憑證資訊、日誌層級、會談識別碼等。

2.3 日誌儲存容量

  • 依據日誌紀錄(Audit Logs)儲存需求,配置所需之儲存容量。

    【資安需求項目查檢】資通系統應配置日誌紀錄所需之儲存容量(如磁碟或資料庫空間等),避免因儲存容量不足造成日誌處理失效。

2.4 日誌處理失效回應

  • 資通系統於日誌處理失效時,應採取適當之行動。

    【資安需求項目查檢】日誌處理失效時,應訂定相對應的處理措施(如覆寫最舊的稽核紀錄、停止產生稽核紀錄或對特定人員提出警告等),避免危害系統可用性,或是當資安事件發生時無稽核紀錄可比對追查之情況。
  • 機關規定需要即時通報之日誌處理失效事件發生時,資通系統應於機關規定之時效內,對特定人員提出警告。

    【資安需求項目查檢】應定義需要即時通報的特定日誌處理失效事件、即時通報的時效以及特定通知對象,並實作通知機制,以利及早釐清事件發生原因並進行故障排除。如當日誌紀錄無法正常寫入資料庫時,以信件或簡訊通知系統維護人員。

2.5 時戳及校時

  • 資通系統應使用系統內部時鐘產生日誌紀錄(Audit Logs)所需時戳,並可以對應到世界協調時間(UTC)或格林威治標準時間(GMT)。

    【資安需求項目查檢】使用系統內部時鐘產生日誌所需時戳,採用全系統一致的時間標準,有助於彙整資安事件所發生的各種事件時間點,進而分析資安事件可能發生的原因。
  • 系統內部時鐘應定期與基準時間源進行同步。

    【資安需求項目查檢】日誌紀錄必須維持使用精確的時間,以利事件追蹤及稽核取證等用途,實務上,可使用網路時間協定(Network Time Protocol, NTP),讓機關內各個系統及網路設備與校時伺服器進行同步,如國家標準時間伺服器(time.stdtime.gov.tw)或使用機關自建之伺服器

2.6 日誌資訊之保護

  • 對日誌(Audit Logs)之存取管理,僅限於有權限之使用者。

    【資安需求項目查檢】應施行日誌存取控管,避免未經授權使用者惡意讀取、竄改或刪除稽核紀錄。
  • 應運用雜湊或其他適當方式之完整性確保機制。

    【資安需求項目查檢】日誌紀錄以安全雜湊演算法產生,並留存其雜湊值,後續可對資料再次產生雜湊值並與原先結果進行比對,以確保資料未遭到異動竄改。其他保護方式如加密、唯讀保存及即時監視檔案異動行為等。
  • 定期備份日誌至原系統之外其他實體系統。

    【資安需求項目查檢】定期進行日誌異機備份,如建置Log伺服器或設定系統排程等方式,集中管理及保存日誌紀錄之備份,可降低因系統損毀或人為惡意刪除之風險。

3. 營運持續計畫

3.1 系統備份

  • 訂定系統可容忍資料損失之時間要求。

    【日常維運管理需求】機關應訂定可容忍資料損失之時間要求,若資安事件發生造成資料損失時,需使用最接近的備份資料進行復原,資料損失與備份資料之間的時間間隔,亦稱為復原點目標(Recovery Point Objective, RPO)。 RPO一旦訂定完成,則可協助系統維護人員選擇適合的備份機制及頻率。如若訂定為 1 小時,則至少每小時必須進行一次資料備份,所選擇的儲存媒體可能為磁碟;但若RPO訂定為一週(168 小時),則至少每週進行一次資料備份,使用磁帶或光碟片等媒體即可滿足備份需求。
  • 執行系統源碼與資料備份。

    【日常維運管理需求】應備份系統源碼與資料,備份時機如廠商交付或內容變更時,或依機關規定定期備份。
  • 應定期測試備份資訊,以驗證備份媒體之可靠性及資訊之完整性。

    【日常維運管理需求】常見之儲存媒體如磁碟、磁帶、光碟等,因使用方式及保存環境之差異,可能影響儲存媒體壽命而造成備份資料損毀。機關應訂定週期性測試時間表,並依時間表進行備份資料還原測試,以確保備份資料處於可用狀態。
  • 應將備份還原,做為營運持續計畫測試之一部分。

    【日常維運管理需求】災害復原是營運持續計畫中相當重要之環節,其目的是為了在發生天災、人為疏失或惡意破壞造成資通系統損害 時,能快速回復至正常或可接受的營運水準。營運持續計畫應定期完整測試、演練,以驗證計畫之適切性及有效性,在災害復原過程中應使用備份資料,以驗證備份機制是否正確可靠。
  • 應在與運作系統不同地點之獨立設施或防火櫃中,儲存重要資通系統軟體與其他安全相關資訊之備份。

    【日常維運管理需求】備份資料應有適當的實體(如防火櫃等)及環境保護,且不可儲存於運作系統處,以避免因系統損毀造成無法取用備份資料之情況。將備份資料異地存放於離運作系統有一段距離之場所,則可減少災害(如火災等)發生時,同時傷害正式資料與備份資料的風險。
    
    有關不同地點備份,宜朝「不遭受同一風險或事件影響」的方向考量,目前並未設置距離要求;有關距離建議,機關亦可參考「102年我國電腦機房異地備援機制參考指引」中,異地備份/備援機制提及之主機房與異地備援機房之距離應距離30公里以上,做為參考依據,以期在發生地震等區域性毀損時,仍能夠保存完整之備份資料及縮短回復時間。

3.2 系統備援

  • 訂定資通系統從中斷後至重新恢復服務之可容忍時間要求。

    【日常維運管理需求】機關應考量服務需求、使用現況、相關資源項目,以及資安事件發生之風險,訂定資通系統從中斷後至重新恢復服務之可容忍時間要求,亦可稱為復原時間目標(Recovery Time Objective, RTO)。
  • 原服務中斷時,於可容忍時間內,由備援設備或其他方式取代並提供服務。

    【日常維運管理需求】機關應準備適當及足夠的備援設備或其他有效恢復服務運作之方式(如還原虛擬機器快照等),以便在發生災害時,可於所訂定之容忍時間內讓服務回復正常運作。

4. 識別與鑑別

4.1 內部使用者之識別與鑑別

  • 資通系統應具備唯一識別及鑑別機關使用者(或代表機關使用者行為之程序)之功能,禁止使用共用帳號。

    【資安需求項目查檢】資通系統應具備唯一識別及鑑別機關使用者之功能,如替內部使用者建立個別帳號,以強化系統之可歸責性(Accountability)。若多人共用同一個帳號登入系統,則難以從稽核紀錄識別確切的使用者身分。
  • 對資通系統之存取採取多重認證技術。

    【資安需求項目查檢】多重因素身分驗證係指具備兩種以上驗證類型,驗證類型一般區分為所知之事(如密碼、特定問題之答案)、所持之物(如晶片卡、憑證)及所具之形(如指紋、虹膜辨識等生物特徵)。

4.2 身分驗證管理

  • 使用預設密碼登入系統時,應於登入後要求立即變更。

    【資安需求項目查檢】使用者註冊時係由資通系統或人工配發預設密碼者,於使用者首次登入時,應強制其變更預設密碼。
  • 身分驗證相關資訊不以明文傳輸。

    【資安需求項目查檢】身分驗證相關資訊於網路傳輸時,不可直接傳輸明文(如密碼原始字串),避免被惡意攔截網路封包而外洩。
  • 具備帳戶鎖定機制,帳號登入進行身分驗證失敗達五次,至少15分鐘內不允許該帳號繼續嘗試或使用機關自建之失敗驗證機制。

    【資安需求項目查檢】系統應實作帳戶鎖定機制,於鎖定期間禁止該帳號所有登入嘗試,超過鎖定時間則重新計次。
  • 使用密碼進行驗證時,應強制最低密碼複雜度、強制密碼最短及最長之效期限制。(但對於非內部使用者可依機關自行規範辦理)

    【資安需求項目查檢】應強制最低密碼複雜度,包含密碼長度限制及組成字元種類,目的在避免因使用安全性不足之密碼而被人輕易破解。強制密碼最短效期目的在防止使用者規避3次密碼歷程之限制,而於短期內頻繁變換密碼後又改回原始密碼。強制最長之效期之目的在避免固定使用同一組密碼。實務上,可參考政府組態基準GCB之建議值,設定密碼複雜度及密碼使用效期限制。
  • 密碼變更時,至少不可以與前三次使用過之密碼相同。(但對於非內部使用者可依機關自行規範辦理)

    【資安需求項目查檢】使用者前3次舊密碼應被保留(以雜湊值形式),於設定新密碼時,比對新密碼與舊密碼之雜湊值,若雜湊值相同則拒絕此次密碼設定。
  • 身分驗證機制應防範自動化程式之登入或密碼更換嘗試。

    【資安需求項目查檢】系統若採用帳號密碼進行身分驗證,往往可能遭受到自動化程式以暴力破解方式嘗試登入。如圖形驗證碼(CAPTCHA)為常見的防範方式,透過將驗證碼以圖形方式呈現於頁面上,並要求使用者辨別該圖形中文字之方式,或以其他足以辨識人為動作之方式(如勾選特定選項等),防堵自動化程式之嘗試行為。
  • 密碼重設機制對使用者重新身分確認後,發送一次性及具有時效性符記。

    【資安需求項目查檢】密碼重設機制設計不良可能造成安全問題,常見錯誤是系統自行產生隨機密碼後以電子郵件寄送給使用者,此問題在於無法確保傳輸過程經過加密保護,故提高資安風險。使用者忘記密碼並啟動密碼重設機制時,應以使用者其他留存於系統的聯絡資訊,如電子郵件或手機號碼等,先要求使用者輸入該資訊,比對正確無誤後,發送一次性及具有時效性符記(如簡訊驗證碼、電子郵件驗證連結等),一般會由亂數產生的英數字所組成,使用者接收後須於時效內進行輸入回傳動作,系統檢查回傳符記之有效性後,才允許使用者進行重設密碼動作。

4.3 鑑別資訊回饋

  • 資通系統應遮蔽鑑別過程中之資訊。

    【資安需求項目查檢】資通系統身分鑑別頁面 中,資料輸入欄位(如密碼等)應設定不以明文顯示方式,如以*取代真實輸入字元,以避免他人從旁窺視而盜取密碼。

4.3 加密模組鑑別

  • 資通系統如以密碼進行鑑別時,該密碼應加密或經雜湊處理後儲存。

    【資安需求項目查檢】密碼不可以明文方式儲存,應經過加密或雜湊處理,使得系統管理者或是惡意入侵的攻擊者皆無法輕易取得使用者原始密碼,以降低密碼外洩風險。實務上,當使用者設定密碼時,應針對該帳號產生一個亂數值(Salt),將密碼結合亂數值,再以雜湊函式處理產生雜湊值後,分別於不同欄位儲存亂數值及雜湊值。後續使用者輸入密碼時,以輸入值添加當初設定密碼時產生的亂數,再次以雜湊函式處理,若產出結果同當初設定密碼時的雜湊值,則表示輸入密碼正確。

4.4 非內部使用者之識別與鑑別

  • 資通系統應識別及鑑別非機關使用者(或代表機關使用者行為之程序)。

    【資安需求項目查檢】資通系統若開放給外部使用者(含其他機關、委外開發與維護廠商、臨僱人員及一般民眾等)存取使用,應具備識別及鑑別之能力,如利用帳號、憑證或來源IP位址等方式,識別與鑑別使用者。

5. 系統發展生命週期

5.1 系統發展生命週期需求階段

  • 針對系統安全需求(含機密性、可用性、完整性),以檢核表方式進行確認。

    【資安需求項目查檢】使用此自評工具進行系統安全需求檢核。

5.2 系統發展生命週期設計階段

  • 根據系統功能與要求,識別可能影響系統之威脅,進行風險分析及評估。

    【資安需求項目查檢】可參照「安全軟體設計參考指引」之第3章安全軟體設計階段實務活動,包含「安全設計原則」,進行系統設計時應參考使用的設計原則;「執行攻擊面分析」,進行攻擊面的定義、識別與對應方式,包含如何進行攻擊面的衡量與評估,並進行管理等;「執行風險分析」,軟體設計過程中,如何透過使用威脅建模與架構風險分析,進行系統架構與威脅的分析,並使用通用性的安全設計原則與控制措施,提供軟體安全風險分析與控制;「安全設計審查」,在進行一連安全軟體設計的實務活動之後,應確保安全設計符合需求階段提出的相關安全需求。
  • 將風險評估結果回饋需求階段之檢核項目,並提出安全需求修正。

    【資安需求項目查檢】系統發展生命週期需求階段發展之安全需求檢核項目,可能未能充分符合系統之所有安全需求,故應依據風險評估結果進行修正。

5.3 系統發展生命週期開發階段

  • 應針對安全需求實作必要控制措施。

【資安需求項目查檢】應於系統開發階段,針對安全需求實作必要之控制措施,輔以檢核表方式進行確認,可減少遺漏之可能。
  • 應注意避免軟體常見漏洞及實作必要控制措施。

    【資安需求項目查檢】軟體開發時應避免常見漏洞,如OWASP TOP 10或CWE/SANS TOP 25等,這些錯誤容易被惡意攻擊者利用,造成資料被竊取、竄改或使軟體無法運作,故需實作必要控制措施,以降低資安風險。
    • OWASP TOP 10

    • CWE/SANS TOP 25

  • 發生錯誤時,使用者頁面僅顯示簡短錯誤訊息及代碼,不包含詳細之錯誤訊息。

    【資安需求項目查檢】系統應設計錯誤處理機制,當系統發生錯誤時,儘可能採取錯誤代碼或簡短訊息呈現,避免將詳細或除錯用訊息直接顯 示於使用者頁面,以防被攻擊者用來刺探系統內部資訊,或根據錯誤訊息推測出系統可能之弱點。確保系統所有功能的程式碼,在程式的進入點之後,盡可能採用程式語言的try-catch陳述,捕捉可能發生的錯誤與例外狀況。另外,採用程式語言的finally陳述,確保將該段功能程式碼所使用的資源正確釋放。
  • 執行「源碼掃描」安全檢測。

    【資安需求項目查檢】源碼檢測可於程式開發及測試階段進行,以及早發現源碼之安全實作問題,並進行修補。實務上,常使用自動化檢測工具以提高檢測效率,輔以有經驗之軟體開發人員進行檢測結果檢視及分析,檢測工具可參考OWASP組織整理之免費及商業化工具列表。
  • 具備系統嚴重錯誤之通知機制。

    【資安需求項目查檢】系統應區分錯誤等級,若發生嚴重等級錯誤時,採用電子郵件或簡訊等通知機制,使系統管理員或相關人員可及時掌握狀況,以利進行後續處理。

5.4 系統發展生命週期測試階段

  • 執行「弱點掃描」安全檢測。

    【資安需求項目查檢】弱點掃描係利用自動化工具,對受測目標進行安全性掃描,以找出系統潛在弱點。
  • 執行「滲透測試」安全檢測。

    【資安需求項目查檢】滲透測試係在取得合法授權後,對受測目標進行安全探測,由專業人士模擬駭客的攻擊行為,以人工及自動化掃描工具或攻擊程式等方式,尋找並利用系統弱點入侵系統,並於檢測作業完畢後提供完整的評估報告。

5.5 系統發展生命週期部署與維運階段

  • 於部署環境中應針對相關資通安全威脅,進行更新與修補,並關閉不必要服務及埠口。

    【資安需求項目查檢】就作業系統或平台之安全更新,定期評估、測試與更新。系統上線前,就作業系統或平台預設開啟的服務與埠口(Port)進行檢視與評估,正面表列需要開啟該服務及埠口之理由,並關閉不必要之項目。
  • 資通系統相關軟體,不使用預設密碼。

    【資安需求項目查檢】系統相關軟體元件或組態設定若有使用預設密碼,應於系統正式上線前變更完畢。
  • 於系統發展生命週期之維運階段,應執行版本控制與變更管理。

    【日常維運管理需求】在維運階段可能因需求變更、系統除錯、功能精進等原因而需要變更系統組態,而版本控制之目的,即在記錄系統組態在某段時間內的變更行為,使得使用者在需要時可取回特定的版本,嚴謹的版本控制(如git、svn)與變更管理(如應用系統維護紀錄單)可強化系統的安全性與可用性。

5.6 系統發展生命週期委外階段

  • 資通系統開發如委外辦理,應將系統發展生命週期各階段依等級將安全需求(含機密性、可用性、完整性)納入委外契約。

    【日常維運管理需求】機關委外開發資通系統時,可參考本文件之內容,並依據不同之安全等級(高、中、普)制定適用之安全需求,明確納入委外契約以做為驗收時之依據。

5.7 獲得程序

  • 開發、測試及正式作業環境應為區隔。

    【日常維運管理需求】開發環境、測試環境與正式作業環境可區隔成不同的設備及網段,限制所能存取的應用程式及資料庫,以保護正式作業環境系統及資料。實務上,開發人員常以本機電腦為開發環境,並連結使用本機端之資料庫進行應用程式開發。俟開發完畢則將應用程式部署至測試主機,並連結至測試用資料庫,供測試人員進行測試使用。俟測試完畢,再將應用程式部署至正式環境,並連結至正式資料庫提供上線服務。

6. 系統與通訊保護

6.1 傳輸之機密性與完整性

  • 資訊系統應採用加密機制,以防止未授權之資訊揭露或偵測資訊之變更。但傳輸過程中有替代之實體保護措施者,不在此限。

    【資安需求項目查檢】資訊系統傳輸機敏資料時,應避免明文傳輸。實務上,常採用加密傳輸協定(如HTTPS等),以確保機敏資料傳輸過程中的安全,並應採取較安全的傳輸協定(如 TLS1.1 以上)及加密演算法(Cipher),以降低被破解之風險。亦可進一步於伺服器端設定強制使用加密傳輸協定(如啟用網站安全性標頭之HTTP Strict Transport Security強制安全傳輸技術等),避免使用者透過非加密傳輸協定存取應用系統伺服器。
  • 使用公開、國際機構驗證且未遭破解之演算法。

    【資安需求項目查檢】若使用自行創造的加密方式且未經過適當的驗 證程序,可能存在設計瑕疵,增加被破解的風險。應採用公開、國際認可之演算法,如AES對稱式加密演算法、RSA非對稱式演算法及SHA安全雜湊演算法等。
  • 支援演算法最大長度金鑰。

    【資安需求項目查檢】系統若採用密碼學演算法時,應使用該演算法目前支援的最大金鑰長度,以減少被暴力破解解密之可能及弱點。
  • 加密金鑰或憑證應定期更換。

    【資安需求項目查檢】產生網站 HTTPS 使用之憑證,應具備使用年限限制,並於到期前進行更換。系統若另行使用自行產生之加密金鑰,亦需定期更換。
  • 伺服器端之金鑰保管應訂定管理規範及實施應有之安全防護措施。

    【日常維運管理需求】伺服器端之金鑰一旦外洩,則加密機制視同無效,嚴重危害系統之機密性,故應訂定相關作業標準或管理規範,以妥善保護金鑰。如不將加密金鑰與加密資料存放於同一系統中,或對於加密金鑰的存取進行限制。

6.2 資料儲存之安全

  • 資訊系統重要組態設定檔案及其他具保護需求之機密資訊應加密或以其他適當方式儲存。

    【資安需求項目查檢】資訊系統重要組態設定(如資料庫連線資訊等)以及任何具保護需求之資訊皆應實作機密保護機制避免外洩。

7. 系統與資訊完整性

7.1 漏洞修復

  • 系統之漏洞修復應測試有效性及潛在影響,並定期更新。

    【資安需求項目查檢】針對系統所使用的外部元件與軟體進行表列,包含其版本資訊,定期關注元件版本更新訊息及安全漏洞通告,若有相關之安全漏洞,評估系統元件更新之必要性,並於系統測試環境進行更新測試驗證後,才於正式環境進行更新。
  • 定期確認資訊系統相關漏洞修復之狀態。

    【日常維運管理需求】注意相關之安全漏洞訊息(透過CVE相關訊息網站、廠商安全通告等),若發現採用之軟體或元件具有安全漏洞,應設法修復漏洞並定期追蹤修復之狀態。

7.2 資訊系統監控

  • 發現資訊系統有被入侵跡象時,應通報相關人員。

    【日常維運管理需求】應指派人員負責處理資訊系統入侵攻擊相關資安事件,並於發現資訊系統有被入侵跡象時,通報相關人員進行處理。
  • 監控資訊系統,以偵測攻擊與未授權之連線,並識別資訊系統之未授權使用。

    【日常維運管理需求】機關應具備監控資訊系統之能力,如指派專業人員或使用監控設備,用以偵測資訊系統連線行為,當發現未授權之連線或存取行為應向系統維護人員提出告警。
  • 資訊系統應採用自動化工具監控進出之通信流量,並於發現不尋常或未授權之活動時,針對該事件進行分析。

    【日常維運管理需求】機關應透過多種工具及技術(如入侵偵測系統、入侵防禦系統、WEB應用程式防火牆、網路設備流量監控軟體等)達成監控能力,監控資訊系統所有進出之通訊活動,以發現不尋常或未經授權之連線及存取行為,並進行資安事件分析。

7.2 軟體及資訊完整性

  • 使用完整性驗證工具,以偵測未授權變更特定軟體及資訊。

    【資安需求項目查檢】提供完整性驗證工具以驗證軟體或資訊在儲存或傳輸過程中未被人惡意竄改,如網站可在檔案下載連結處,提供以安全雜湊演算法產生之雜湊值,並說明使用的雜湊演算法為何,供使用者取得資料後自行計算雜湊值進行比對。另外,為確保系統程式之完整性,可對系統程式檔案留存雜湊值,並進行監控比對,以偵測未授權之惡意變更。
  • 使用者輸入資料合法性檢查應置放於應用系統伺服器端。

    【資安需求項目查檢】對於使用者輸入欄位資料應檢查是否符合預期之邏輯規則,實務上以正規表示式(Regular Expression)驗證內容之合法性。檢查機制若於客戶端實作,容易被使用者繞過檢查機制,故應於應用系統伺服器端實作始視為有效。
    
    如採用Prepared statements, Stored procedures,Input Validation等措施防範SQL Injection攻擊;如採用黑名單過濾跳脫特殊字元、白名單正規表示式驗證、輸出編碼等措施防範XSS跨站腳本攻擊;網站若提供頁重導(Redirects)或導向(Forwards)之功能,必須確認使用者輸入欲重導向的網頁在合法白名單內,以避免重導向至惡意網頁。
  • 發現違反完整性時,資訊系統應實施公司指定之安全保護措施。

    【日常維運管理需求】機關應訂定相關安全保護措施,在發現資訊系統完整性遭到破壞時採取適當之行動。如當發現資料庫或檔案被不當竄改、站台被植入惡意指令碼或元件等資安事件時,應通知系統管理者進行緊急應變處置,並依【日常維運管理需求】機關應訂定相關安全保護措施,在發現資訊系統完整性遭到破壞時採取適當之行動。如當發現資料庫或檔案被不當竄改、站台被植入惡意指令碼或元件等資安事件時,應通知系統管理者進行緊急應變處置,並依規定之通報流程進行資安事件通報作業。
  • 應定期執行軟體與資訊完整性檢查。

    【資安需求項目查檢】重要資料或紀錄,以安全雜湊演算法產生並留存其雜湊值,後續可對資料再次產生雜湊值並與原先結果進行比對,以確保資料未遭異動竄改。
Previous專案管理Next系統開發原則

Last updated 1 year ago