上一篇文章說明了在 ISO 27001:2022 的附錄A中,有關技術面的「A.8.11 資料遮蔽」和「A.8.12 資料洩露預防」,接下來說明本系列最後3個控制措施,分別是「A.8.16 監視活動 (Monitoring activities)」、「A.8.23 網頁過濾 (Web filtering)」以及「A.8.28 安全程式設計 (Secure coding)」的要求和實施重點。
A.8.16 監視活動
這項控制措施的要求是「應監視網路、系統及應用之異常行為,並採取適切措施,以評估潛在資訊安全事故」。若是從要求內容來看,我們需要實施監控的項目至少包括了網路、系統和應用程式的異常行為,但要如何確認有異常行為的發生呢?其實我們需要事先定義正常的行為基準 (baseline)。
舉例來說,大多數的機房都會進行溫度異常的監視,那麼該如何得知溫度有異常呢?首先就先要定義溫度正常的範圍基準,假設基準要求溫度需要維持在攝氏25度以下,那麼只要監控時發現機房溫度超過25度的情況,我們就會定義它是一個異常的事件 (event),在進行通報之後,就要依據「A.5.25 資訊安全事件之評鑑及決策」的控制措施,進行損害的評估。
如果確認這已經是一個造成損害的事故 (incident),那就需要再進一步依據「A.5.26 對資訊安全事故之回應」的控制措施,進行資安事故的處理,盡快地降低事故範圍的擴大並減輕造成的損害。所以在監視活動的實施方面,通常還需要結合事件通報和事故處理的流程,才能讓整體的資安控制更完整。
A.8.23 網頁過濾
這項控制措施的要求是「應管理對外部網站之存取,以降低暴露於惡意內容」。顯而易見的,這項控制措施的目的就是要降低有愈來愈多的惡意程式,都是感染至含有惡意內容的網站之風險。
實務方面,首先要建立使用者的上網行為規則,讓使用者有能力認知並避免瀏覽高風險的網站,接著還需要搭配技術面的管控機制,例如透過閘道端 (Gateway) 的上網行為管理設備,藉由啟用內建的一些高風險網站群組,限制組織內可上網瀏覽的網站。如果缺少這類設備的支援,也可以直接在防火牆上設定阻擋惡意網站IP的黑名單,只是它經常需要手動且及時的更新,才能達成阻擋過濾的效果。
A.8.28 安全程式設計
這項控制措施的要求是「軟體開發應施行安全程式設計原則」,目的是要確保在撰寫程式的過程中,能夠降低軟體中存在資安弱點的數量。
在實施方面,除了要先依據「A.8.25 安全開發生命週期」的要求,建立安全開發軟體的各個階段和過程的安全規則之外,還可以特別針對撰寫程式的開發人員,製作並提供給開發人員一份安全開發指南 (coding guideline),讓開發人員可以清楚知道撰寫程式的安全準則,避免使用有弱點的語法或引用了不安全的第三方和開放原始碼的元件,建立一套安全編碼的方法。
當然,在安全開發指南的文件中,請盡量以淺顯易懂的方式,像是列舉一些正確寫法或錯誤的範例,讓開發人員願意來閱讀和遵循,可以更容易避開一些常見的安全漏洞 (ex. SQL Injection)。
(本系列完)