iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 24
1
Security

資訊系統安全與 CISSP 的簡單應用系列 第 24

[Day 24] 安全評估與測試 (Security Managements Tasks)

  • 分享至 

  • xImage
  •  

一般安全管理任務包含了日誌回顧 (Log Reviews)、帳號管理回顧 (Account Management Reviews)、備份驗證 (Backup Verification) 與關鍵績效與風險指標 (Key Performance and Risk Indicators),這幾部分我們在安全營運章節會有更多的展開。

今天我想回到更多團隊工作與個人管理的心法上,因為若是要讓安全管理任務落實在生活的每一天,需要的是每位測試人員積極地管理自己的時間和工作,同時服務於團隊,提供有效的測試服務

內在價值 (Internal Value)


測試是一個漫長而低調的工作,它同時具有很高的重複性和偏遠性。在漫長的工作人生中,是什麼支持著我們將其作為終生職志,在沒有人監督著我們的時候仍每日前行呢?長長久久的力量,是其中蘊藏的價值與內涵,我叫它「內在價值」。

價值與價格是相對的概念,市場有形可捉摸的叫「價格」,它通常被人所羨慕,它看得到、容易量化;價值是一個事物隱而未現的寶藏,當我們發現它時便會瘋狂買進的東西。市場有一個法則,就是價值與價格終將平衡;價值高估的會降價,價值低估的會漲價。事實上,安總相信這個法則,相信市場雖然不理性但卻是公平的,而時間是價值投資者的好朋友,是投機者的敵人。

  1. 好的領導者是「意義長」,他們不斷地、不停地向團隊解釋目標的意義和優先順序,指明未來的方向。
  2. 一個主動積極的測試人員,更能體會成長的喜悅、栽培的喜悅、勞動的喜悅,他們從實做中感受到工作背後的美好
  3. 用創新思維重新思考任務,往往能從平凡的工作發現它不平凡的一面。

工作分解結構 (Work Breakdown Structure, WBS)


估算工作所需時間之要點:

  1. 以「目標」作為估算、計畫和承諾的核心,安總喜歡有攻擊性的目標
  2. 把大工作分解成小工作的方法,叫作「工作分解結構」,又叫作「分而治之 (Divide and Conquer)」,其目的是比較好吸收消化,使得大工作的完成變為可行,這有心理加乘的作用。
  3. 用計數和計算作為估算手段,Steve McConnell 用一個非常精彩的故事解釋了估算的基本手段,此處將其節錄如下:
    • 您和幾個估算人員參與一個大型的招待會,大房間中坐滿了人。突然,司儀用麥克風發問:「誰可以準確地估算出這個房間中有多少與會者?」
    • 估算人員 A 說:「我經常估算人數,憑我的經驗,房間裡大約有 335 人。」
    • 估算人員 B 說:「房間裡的桌子排成了矩陣,共有 11 行 7 列。會議組織者告訴我一張桌子坐 5 個人,目測也是如此。所以,1175 = 385 人。」
    • 估算人員 C 說:「我注意到該房間有容量標記,它最多可以容納 485 人。看上去,目前已經坐滿了 70%~80%,也就是說有 340~388 人。取平均數就是 365 人。」
    • 您說:「我去調查一下,片刻就回。」幾分鐘後,您公布了調查結果:「進入房間之前要掃瞄門票。我去問了門口的驗票員,她說根據掃描器,一共掃瞄了 407 張票,而且目前沒有人離開。所以,與會者為 407 人。」
    • 司儀公布的答案恰恰是 407 人。
  4. 計數是最優先的估算方法。只要可以用清點的方式來獲得答案,就應該採用這種直接了當的方法。它通常能給出最準確的答案

週計畫 (Weekly Plan)


Weekly Report Process

時間管理本質上是任務管理,也就是注意力管理。利用任務清單記錄所有工作項,且能夠適應動態變化的測試任務,以及動態地安排優先順序。周循環是敏捷程式設計的基本實踐之一。週計畫可以幫助您維護一個時間表,看出一年 52 週的的專案動態、專案重疊性,及未來資源分配。

專注是高效率工作的基礎。不論是「時間盒」還是「蕃茄鐘」,其核心都是劃出一段時間做一件事情,在「與世隔絕」的狀態中,盡全力工作。

月報制度 (Monthly Report)


關於測試品質的度量與分析 (Mearsure & Analysis),我們會放在月報中。「檔案複雜度」和「測試覆蓋率」是很好的度量方法。檔案複雜度 = 檔案中分支與循環關鍵字的個數 / (檔案的行數 + 1)。以下是一個簡單的 PowerShell 腳本,用以分析 C# 檔案的行數和程式複雜度:

$root = Get-Location
"Folder'tFile'tLineCount'tComplexity"
Get-ChildItem *.cs -Recurse | %{
    $folderName = $_.DirectoryName.Substring($root.Path.Length);
    $lines = Get-Content $_.FullName
    $lineCount = $lines.Length
    $opCount = ($lines | foreach { $_.split() } | 
        where { $_ -in ('if', 'case', 'for', 'foreach', 'while') }).Length
    $complexity = $opCount / ($lineCount - 1)
    "$folderName't$($_.Name)'t$lineCount't$complexity"
}

度量的目的是為專案決策提供資訊,是為了能提出修正方案,為往後產出更合理的行動。例如,「程式覆蓋率」的本質,乃是對測試的回饋,不是要證明測試的充分性,而是要發現測試的遺漏,從而補充測試案例,以發現隱藏的缺陷。所以,程式覆蓋率是一種尋找缺陷的技術,是提高測試的手段,不是測試的目的。

月報製作所需要的數據與資訊,在平時週報時就有累積,頂多花個兩小時便總結完成,而能夠對下個月的執行策略產生指導性的作用和洞察。所以我們說:「我們應該在專案之初就分析程式覆蓋率,並一直持續到專案結束。

年報總結 (Yearly Summary)


執行的過程中,我們會發想一些大計畫,我們會放到戰略地圖中。戰略地圖、領先指標進度之類的總結,我們會放在年報中呈現。倒不如說,年報就是 12 個月報的累積,所以當 12 月的月報完成時,該年度的年報也就完成了。年報可以起到「總計畫」對齊的作用,讓您目前的工作在長遠來看有意義,知道座落在職涯發展中的哪一個階段。


兩年前我的其中一個事業頭竟然臨時出了一題,請安總在整個事業單位的週會上,講解 GTD 管理方法。我當然就硬著頭皮上啦。
GTD
時間觀《Getting Things Done》


上一篇
[Day 23] 安全評估與測試 (Vulnerability Assessment)
下一篇
[Day 25] 安全營運 (Managing Security Operations)
系列文
資訊系統安全與 CISSP 的簡單應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言