109 調查局特考三等 資訊科學組 系統分析與設計 考古題詳解
第 一 題25 分
某機關要開發一個新的雲端營運管理系統,你是專案的負責人,受命這次的專案要以「安全的系統發展生命週期(Secure System Development Life Cycle, SSDLC)」來進行開發,在考量系統功能性的同時,導入安全性的思維。
請問,在 SDLC 的程式實作階段,你會要求負責的同仁注意哪些安全的面向?
登入後即可作答並保存紀錄。
核心觀念
本題考查安全的系統發展生命週期(Secure System Development Life Cycle, SSDLC)中,程式實作階段如何把安全需求落實到程式碼、開發流程與建置產物。重點不只是「程式能否運作」,還包括程式是否能抵抗常見攻擊、是否保護敏感資料,以及是否能在後續維護時持續維持安全。
程式實作階段通常涵蓋安全程式設計規範、程式撰寫、程式碼檢視、自動化安全檢查、第三方元件管理及建置流程控管。安全需求應在本階段轉化為可檢查的程式規則,並透過工具與人工審查共同確認。
解題方法
依題目所問的「程式實作階段」,可從下列三個層次整理:
- 程式碼本身:檢查輸入、輸出、身分驗證、授權、錯誤處理及資料保護。
- 開發與檢查流程:採用安全編碼規範、程式碼檢視與自動化安全分析。
- 程式依賴與建置產物:管理第三方元件、密鑰、建置權限及程式碼完整性。
這樣作答可涵蓋開發者日常實作、交付前的檢查,以及雲端系統常見的供應鏈與建置風險。
程式實作階段應注意的安全面向
一、安全編碼與輸入驗證
- 對所有外部輸入進行型別、長度、格式、範圍及允許值驗證;不可只依賴前端驗證,伺服器端也必須執行檢查。
- 對資料庫查詢使用參數化查詢或安全的 ORM 操作,避免 SQL Injection。
- 依輸出情境進行正確編碼,避免跨站腳本攻擊(XSS)。
- 限制檔案上傳的類型、大小與存放位置,並避免直接信任檔名或檔案內容。
- 採用允許清單驗證;只拒絕少數已知危險字元的黑名單作法,容易遺漏攻擊形式。
二、身分驗證與授權控制
- 安全處理登入、密碼重設、工作階段及權杖;密碼應使用適當的雜湊演算法與隨機鹽值保存,不應以明文或可逆方式儲存。
- 在伺服器端落實授權檢查,不能只依賴畫面隱藏按鈕或前端限制。
- 採用最小權限原則:使用者、服務帳號及程式元件只取得完成工作所需的權限。
- 對每個受保護的資源與操作確認使用者是否有權存取,避免透過變更識別碼繞過權限檢查。
- 避免硬編碼預設帳號、共用帳號及過度寬鬆的存取權限。
三、敏感資料與密碼學
- 依資料敏感程度控制蒐集、傳輸、處理、記錄與保存。
- 傳輸敏感資料時使用安全的加密通道;需要保護儲存資料時,採用經核准的加密機制。
- 使用成熟且經審查的密碼學函式庫,不自行設計加密演算法。
- 金鑰、憑證、API Token、資料庫密碼等機敏資訊不得寫入原始碼或提交到版本控制系統;應透過安全的秘密管理機制提供,並限制存取與定期輪替。
- 避免在日誌、錯誤訊息或除錯輸出中記錄密碼、權杖、個人資料及其他機敏資訊。
四、錯誤處理與安全日誌
第 二 題25 分
下列是某公司現行的員工差勤津貼相關規定:
- 一次出差由一位員工執行,需經該單位主管核可。
- 出差會花費該當事人 – 天,到訪 – 個地點。
- 超過一天以上的出差,公司允許報銷全額當晚住宿。
- 出差期間,機關會依照出差期間支付定額的早、午、晚餐費津貼。
- 出差期間的各種交通支出也由公司全額支付。
你認為應該需要哪些檔案與欄位來記錄該公司員工的出差資料?請為該公司設計一個出差資料庫結構。
登入後即可作答並保存紀錄。
核心觀念
本題考查資料庫概念設計:辨識實體、屬性與實體間的關係,並依照基數拆分資料表,避免重複記錄及更新異常。題目沒有要求套用特定法條或計算費率,重點是把出差、員工、主管核可、每日津貼、住宿、交通與地點等資料,設計成可追蹤且可彙整的結構。
解題方法
先將規定轉成資料需求,再依資料的粒度拆表:
- 一次出差由一位員工執行,需一位單位主管核可:出差主檔記錄員工、核可主管及核可狀態。
- 一次出差可有多天、多個地點:以出差明細表記錄每日行程及到訪地點,避免把多個日期或地點塞在同一欄位。
- 住宿與交通支出可能一趟多筆:以費用明細表逐筆記錄支出、日期、類別及金額。
- 早餐、午餐、晚餐津貼按出差期間定額給付:記錄每日各餐津貼,或記錄適用費率後由系統依天數計算;為保留日別查核能力,以下採每日津貼明細。
- 員工、單位與地點等重複使用的資料,分別建立主檔,以代碼關聯。
建議資料庫結構
以下以關聯式資料庫設計,主鍵以 PK 表示,外鍵以 FK 表示。
1. 員工檔 Employee
| 欄位 | 說明 |
|---|---|
EmployeeID(PK) | 員工編號 |
EmployeeName | 姓名 |
UnitID(FK) | 所屬單位 |
JobTitle | 職稱,可選 |
2. 單位檔 Unit
| 欄位 | 說明 |
|---|---|
UnitID(PK) | 單位代碼 |
UnitName | 單位名稱 |
ManagerEmployeeID(FK) | 單位主管的員工編號 |
主管以員工檔中的員工資料識別,避免另存一份主管姓名而造成資料不一致。若主管異動須保留歷史,可在出差主檔另存核可時的主管編號。
3. 出差主檔 Trip
| 欄位 | 說明 |
|---|---|
TripID(PK) | 出差案件編號 |
EmployeeID(FK) | 出差員工 |
ApproverID(FK) | 核可主管 |
ApplyDate | 申請日期 |
StartDate | 出差起日 |
EndDate | 出差迄日 |
Purpose | 出差事由 |
ApprovalStatus | 核可狀態 |
ApprovalDate | 核可日期 |
一筆出差主檔對應一位出差員工;一位員工可有多筆出差紀錄。EndDate 不得早於 StartDate,出差日數可由起訖日計算,避免重複儲存而不一致。
4. 地點檔 Location
| 欄位 | 說明 |
|---|---|
LocationID(PK) | 地點代碼 |
LocationName | 地點名稱 |
Address | 地址,可選 |
5. 出差行程明細 TripItinerary
| 欄位 | 說明 |
|---|---|
ItineraryID(PK) | 行程明細編號 |
TripID(FK) | 所屬出差案件 |
VisitDate | 到訪日期 |
LocationID(FK) | 到訪地點 |
SequenceNo | 當日行程順序 |
Activity | 行程內容,可選 |
第 三 題25 分
請說明資安服務通常所包含的下列五類服務之目的,以及其主要差異:
- 資安健診服務。
- 資安監控服務。
- 弱點掃描服務。
- 滲透測試服務。
- 社交工程郵件測試服務。
登入後即可作答並保存紀錄。
核心觀念
本題在考辨識五種常見資安服務的目的、執行方式、觀察範圍與交付成果。作答時應先抓住它們各自回答的問題:
- 資安健診:整體資安管理與防護措施是否健全?
- 資安監控:目前是否正在發生資安事件?
- 弱點掃描:系統中有哪些已知弱點或設定缺失?
- 滲透測試:攻擊者能否利用弱點達成入侵或取得特定權限?
- 社交工程郵件測試:人員是否容易受詐騙郵件誘騙?
五者並非互相取代。健診與弱點掃描偏向檢視現況;監控偏向持續觀察事件;滲透測試偏向實際驗證攻擊路徑;社交工程測試則以人員為主要測試對象。
解題方法
可依「檢查對象—執行方式—目的與成果」逐項說明,再比較彼此差異。特別要區分:
- 弱點掃描與滲透測試:掃描以工具辨識弱點為主;滲透測試則進一步驗證弱點能否被利用及其影響。
- 健診與監控:健診通常是某一時點的整體檢視;監控則持續蒐集、分析事件資訊。
- 技術測試與社交工程測試:前四類主要檢視組織、設備、系統或網路;社交工程郵件測試主要檢視人員的警覺性與通報行為。
五類資安服務說明
1. 資安健診服務
資安健診是對機關或組織的整體資安狀況進行檢視,範圍可涵蓋資安政策與管理制度、網路架構、主機與設備設定、帳號權限、備份與復原、日誌管理及防護措施等。
其目的在於找出管理制度或技術防護上的缺口,並提出改善建議。服務成果通常包括健診結果、風險或缺失說明,以及改善優先順序。健診著重整體性診斷與改善方向,不以持續偵測即時事件為主要工作。
2. 資安監控服務
資安監控服務會持續蒐集並分析網路流量、主機日誌、資安設備告警及其他事件資訊,以辨識可疑活動或資安事件。執行方式可包含告警監看、事件關聯分析、事件通報及初步應變建議。
其目的在於及早發現正在發生或已發生的攻擊,縮短事件發現與處理時間。監控的核心是持續觀察與事件偵測,不等同於一次性的系統健診,也不表示每項告警都已經透過攻擊驗證。
3. 弱點掃描服務
弱點掃描服務使用自動化工具或檢查程序,檢查主機、網路設備、應用程式或系統設定,找出已知弱點、過時版本、不安全設定及常見錯誤。
其目的在於建立待修補或待改善的弱點清單,協助組織安排修補優先順序。掃描結果通常是弱點項目、嚴重程度及修補建議。
第 四 題25 分
某縣政府針對 歲以上居民提供 項居家照護服務。因為過去人工作業繁瑣,需要進行自動化與系統開發。縣政府很擔心新系統開發後讓銀髮縣民無法適應,因此強烈要求建立基準線(Baseline)來管控系統的開發。
請問什麼是基準線?基準線有哪幾種?這些基準線在開發系統的過程中,會分別扮演哪些功能?
登入後即可作答並保存紀錄。
核心觀念
本題考查系統開發中的基準線(Baseline)。基準線是經相關人員審查、核准並正式確立的工作成果版本,作為後續開發、管理與驗收時的共同依據。基準線一旦建立,若要變更,須依變更管理程序提出、評估並核准,不能逕自修改。
基準線不只是系統規格文件,也可以是需求、設計、程式與測試等不同階段的成果。它能讓開發團隊與縣政府確認「目前核准的內容是什麼」,並以此追蹤後續變更與進度。
基準線種類與功能
常見的系統開發基準線可分為以下幾種:
| 基準線 | 建立時點與內容 | 開發過程中的功能 |
|---|---|---|
| 功能基準線(Functional Baseline) | 系統需求分析完成並經核准後建立,記錄系統應提供的功能、效能及外部介面等需求。 | 作為需求管理、系統設計與驗收的依據;控制需求變更,避免開發內容偏離使用者真正需要的功能。 |
| 分配基準線(Allocated Baseline) | 初步設計完成後建立,將系統需求分配至各子系統、軟體、硬體或其他組成部分,並記錄其介面與配置。 | 作為後續詳細設計、子系統開發與整合的依據;協助確認各部分的責任範圍及彼此介面。 |
| 產品基準線(Product Baseline) | 詳細設計完成、產品規格核准後建立,涵蓋完整且具體的設計與產品組態資訊。 | 作為建置、測試、部署、維護及產品驗收的依據;確保實際交付的系統符合核准的設計規格。 |
不同教材或組織的名稱與建立時點可能略有差異,但答題重點是說明基準線的內容、核准與變更控制,以及它在不同開發階段提供的管理依據。