五種敏捷技術(shù)幫助避免CrowdStrike式問題
我們將探討敏捷技術(shù)如何在發(fā)現(xiàn)和應(yīng)對 CrowdStrike 爭議等問題中發(fā)揮至關(guān)重要的作用。
譯自5 Agile Techniques To Help Avoid a CrowdStrike-Like Issue,作者 David Eastman。
敏捷軟件開發(fā)方法的一個(gè)被低估的優(yōu)勢是,它能夠量化“如果”問題的價(jià)值,而不會(huì)影響項(xiàng)目的連貫性。也就是說,敏捷擁有大量內(nèi)置系統(tǒng)來檢查項(xiàng)目周圍的環(huán)境并質(zhì)疑當(dāng)前的做法。
這篇文章探討了敏捷的技術(shù)和儀式如何在發(fā)現(xiàn)和應(yīng)對可能造成嚴(yán)重?fù)p害的問題方面發(fā)揮至關(guān)重要的作用——正如最近的CrowdStrike 爭議所示。
1. 外部環(huán)境問題
“外部環(huán)境問題”是一個(gè)參考,在科幻小說中流行起來,指的是我們無法立即理解的事件帶來的威脅:
“外部環(huán)境問題或 OCP 是對特定群體(組織、社會(huì)、文化或文明)經(jīng)驗(yàn)完全陌生的挑戰(zhàn)。由于 OCP 是前所未有的事情,因此最終結(jié)果是不可預(yù)測的。”
你可能聽說過許多其他表達(dá)類似意思的術(shù)語;從“未知的未知”到“黑天鵝”。我們最近從 CrowdStrike 事件中看到的部分原因就是其中之一——安全軟件導(dǎo)致大規(guī)模停機(jī),而沒有惡意行為者。
通過推動(dòng)項(xiàng)目的邊界,即使只是基于直覺或經(jīng)驗(yàn),也會(huì)產(chǎn)生見解。
代碼中存在著各種各樣的錯(cuò)誤,它們從未造成問題。我們只注意到那些被環(huán)境揭示的錯(cuò)誤。我們在開發(fā)過程中的工作是減少錯(cuò)誤隱藏的表面積,并找出合理的流程來修復(fù)出現(xiàn)的任何問題。
敏捷非常擅長為團(tuán)隊(duì)可能最初沒有關(guān)注的問題提供一個(gè)安全的游樂場來環(huán)顧項(xiàng)目。它引導(dǎo)人們對各個(gè)領(lǐng)域的興趣,而不會(huì)失去對資源的追蹤。
根據(jù)定義,組織中的任何人都不會(huì)花時(shí)間考慮他們沒有經(jīng)驗(yàn)的事情的可能結(jié)果。然而,通過推動(dòng)項(xiàng)目的邊界,即使只是基于直覺或經(jīng)驗(yàn),也會(huì)產(chǎn)生見解。即使無法預(yù)見問題的初始形式,也往往可以預(yù)見次級問題。
敏捷提供的是技術(shù)和框架,它們都重視這些技術(shù)。你或你的團(tuán)隊(duì)可以單獨(dú)采用這些技術(shù),而無需遵循其他相關(guān)實(shí)踐,但正是這些技術(shù)在敏捷團(tuán)隊(duì)中隨著時(shí)間的推移而得到加強(qiáng)。
2. 時(shí)間盒(Timebox)
這是一種正式的方式,用于限制子團(tuán)隊(duì)檢查一個(gè)略微偏離軌道的問題的時(shí)間,同時(shí)將其保持在沖刺內(nèi)——團(tuán)隊(duì)同意完成任務(wù)的固定時(shí)間段——并接受其他任務(wù)將在之后立即被接手。
它正確地假設(shè),如果一個(gè)解決方案需要深入研究一個(gè)深?yuàn)W的問題,那么這個(gè)解決方案可能不適用于項(xiàng)目的時(shí)限。這是一種很好的方式來理解,沒有哪個(gè)軟件是“最終解決方案”,而僅僅是目前情況下,在現(xiàn)有資源下做事的正確方式。如果情況發(fā)生變化,可以在以后重新審視這個(gè)問題。
3. 回顧(Retrospective)
它通常被視為僅僅是一個(gè)周結(jié)束儀式,但實(shí)際上它是一種檢查先前承諾的保證的重要方式。承諾在剛剛過去的沖刺中解決但尚未解決的動(dòng)作,表明需要重新評估。它還讓團(tuán)隊(duì)成員有機(jī)會(huì)傾聽正在醞釀的風(fēng)暴并進(jìn)行干預(yù)。
如果缺乏明智的 Scrum Master 或團(tuán)隊(duì)領(lǐng)導(dǎo)的管理,這些回顧可能會(huì)過于接近毛主義的“斗爭會(huì)”。讓團(tuán)隊(duì)中的一名成員質(zhì)疑另一名成員是健康的,但也可能造成摩擦。有時(shí)結(jié)果只是清單上的一個(gè)額外項(xiàng)目,但有時(shí)它會(huì)觸發(fā)對整個(gè)項(xiàng)目的重大反思。
特權(quán)代碼
讓我們先花點(diǎn)時(shí)間回顧一下CrowdStrike問題的形式,雖然我們目前還不知道全部細(xì)節(jié),但它仍然在我們腦海中。在大多數(shù)操作系統(tǒng)(如 Windows)中,您有在“用戶空間”運(yùn)行的程序,與在“內(nèi)核空間”運(yùn)行的代碼相反。只有特權(quán)代碼可以在內(nèi)核中運(yùn)行,而用戶空間中運(yùn)行的程序代碼(或線程)必須禮貌地向內(nèi)核請求信息,并等待結(jié)果。為了高效工作,安全軟件需要在內(nèi)核中運(yùn)行,這樣它就可以實(shí)時(shí)查看內(nèi)部狀態(tài)。我們知道內(nèi)核進(jìn)程何時(shí)在 Windows 中檢測到錯(cuò)誤:您會(huì)看到臭名昭著的藍(lán)屏死機(jī),操作系統(tǒng)會(huì)停止運(yùn)行以保護(hù)自身免受進(jìn)一步損壞。
微軟會(huì)對任何想要在內(nèi)核中運(yùn)行在 Windows 上的第三方系統(tǒng)進(jìn)行一系列測試,并認(rèn)證其是否通過。由于微軟是一個(gè)龐大而緩慢的企業(yè),您可以想象認(rèn)證需要一些時(shí)間。如果您的工作是作為一家安全公司來發(fā)現(xiàn) 0 日攻擊,然后立即將響應(yīng)傳播到您被付費(fèi)保護(hù)的所有機(jī)器,那么等待 Bob 從假期回來進(jìn)行一些測試是不可擴(kuò)展的。
因此,為了繞過這個(gè)問題,安全公司可以從其經(jīng)過認(rèn)證的已安裝代碼中加載額外的偽代碼,以考慮瞬時(shí)變化。
到此為止。如果您在安全團(tuán)隊(duì)工作,并聽到關(guān)于這種解決方案在多個(gè)回顧中不斷積累的信息,您會(huì)介入嗎?這是一個(gè)很好的例子,它展示了一個(gè)完全合理的解決方案,但仍然存在缺陷。(此視頻很好地介紹了內(nèi)核代碼領(lǐng)域。)
4. Brown Bags
這些通常只是簡短的演示——通常在午餐時(shí)間——團(tuán)隊(duì)成員可以選擇一個(gè)主題與團(tuán)隊(duì)討論。這些用于幫助為即將到來的更改或編碼挑戰(zhàn)做好準(zhǔn)備。
這些將團(tuán)隊(duì)成員對某個(gè)領(lǐng)域的真正興趣或經(jīng)驗(yàn)與當(dāng)前項(xiàng)目的相關(guān)性聯(lián)系起來。我記得做過一個(gè)關(guān)于正則表達(dá)式的主題。
讓對某個(gè)領(lǐng)域充滿熱情的人實(shí)際運(yùn)行它并不總是合適的,但將好奇心傳播到整個(gè)團(tuán)隊(duì)中始終是一件好事。
5. Sprint Zero
這是通常建立研究峰值以及項(xiàng)目成功所需的其它定制系統(tǒng)的 Sprint。
人們研究的一些最聰明的事情是為測試環(huán)境偽造服務(wù)的方法。這些方法的副產(chǎn)品是迫使開發(fā)人員更多地了解他們正在偽造的真實(shí)服務(wù),以及在整個(gè)服務(wù)生命周期中節(jié)省時(shí)間。
結(jié)論
如果您嘗試從嚴(yán)重事件倒推——問“我們?nèi)绾伪苊膺@種情況?”——您很快就會(huì)忘記現(xiàn)實(shí)生活不會(huì)倒退,并制定出幾乎無關(guān)緊要的計(jì)劃。簡而言之,您將與過去的戰(zhàn)爭作斗爭。即使您對敏捷沒有興趣,也要考慮如何在項(xiàng)目中構(gòu)建檢查路徑的方法,而不會(huì)阻礙您的旅程。