不幸的是,影子 API 和僵尸 API 太常見了。雖然它們的名字很酷,但它們對(duì)組織、數(shù)據(jù)安全和用戶隱私的影響卻非常不酷,威脅到正確的安全最佳實(shí)踐。在本文中,我們將研究這些類型的 API 之間的區(qū)別,并提出一些減輕其負(fù)面影響的方法。
首先,讓我們定義一個(gè)影子 API。開發(fā) API 時(shí),它們會(huì)附帶一系列相關(guān)任務(wù)。其中最主要的是記錄 API,確保它們被分類并解釋其用途。
影子 API 的出現(xiàn)源于缺乏適當(dāng)?shù)奈臋n實(shí)踐。雖然文檔是 API 開發(fā)的最佳實(shí)踐,但從技術(shù)上講,它并不是 API 運(yùn)行的必要條件。因此,API 有時(shí)會(huì)在沒有任何文檔的情況下開發(fā),沒有任何 API 存在的說明,也沒有添加到其他 API 的目錄或語料庫(kù)中。
這些 API 存在于組織的陰影中,在許多情況下,由于知識(shí)孤島、組織變動(dòng)或純粹的健忘,人們失去了對(duì)這些 API 的認(rèn)識(shí)。這可能會(huì)導(dǎo)致具有特權(quán)訪問權(quán)限或關(guān)鍵功能的 API 在組織不知情的情況下存在,從而給總體安全態(tài)勢(shì)帶來重大問題。
影子 API 是未經(jīng)組織意識(shí)到或記錄的 API。
假設(shè)您的 API 已經(jīng)開發(fā)完成,并且具有良好的安全狀態(tài),并且有詳盡的文檔。文檔的實(shí)際情況是,只有保持最新狀態(tài)并得到維護(hù),它才是好的。需要定期維護(hù)和審核才能使其物有所值。
那么,如果一個(gè) API 被廢棄、棄用或者雖然可以訪問,但已經(jīng)變得沒有必要,卻仍然繼續(xù)存在,會(huì)發(fā)生什么情況呢? 在這種情況下,API 就變成了僵尸 API。
盡管僵尸 API 不再是常規(guī)產(chǎn)品的一部分,但它們?nèi)匀豢梢栽L問和使用。就像低俗小說中的僵尸一樣,它們?cè)?API 墓地中徘徊,雖然沒有完全死去,但也并不完全活著,只要存在就會(huì)造成嚴(yán)重破壞。這可能會(huì)導(dǎo)致嚴(yán)重問題。這些 API 仍然可用,可以訪問數(shù)據(jù)并在網(wǎng)絡(luò)上工作,但無需像標(biāo)準(zhǔn) API 那樣進(jìn)行維護(hù)或關(guān)注。
僵尸 API 是已被棄用或放棄但仍可用的 API。
首先,應(yīng)該指出的是,這兩種類型的 API 都是由于缺乏關(guān)注而產(chǎn)生的。糟糕的文檔實(shí)踐會(huì)導(dǎo)致過時(shí)和棄用標(biāo)準(zhǔn)
在這兩種情況下,這種注意力的缺乏可能是疏忽,也可能是意外。無論如何,結(jié)果都是一樣的:能見度降低
話雖如此,這些類型的 API 確實(shí)存在一些明顯差異。影子 API 源于組織問題,只需創(chuàng)建和維持適當(dāng)?shù)奈臋n文化內(nèi)部發(fā)現(xiàn)即可糾正
然而,就僵尸 API 而言,問題在于基礎(chǔ)。除了影子 API 固有的組織問題之外,僵尸 API 還表明缺乏文化一致性。
值得慶幸的是,您可以采取某些措施來改善組織協(xié)調(diào)并降低創(chuàng)建影子 API 和僵尸 API 的可能性。以下是緩解此類 API 引發(fā)的一些問題的方法。
影子 API 可能與安全資源連接,因?yàn)樗鼈儽辉O(shè)計(jì)為充當(dāng)標(biāo)準(zhǔn) API。影子 API 的最大問題是缺乏文檔。因此,解決安全問題的第一步是確保 API 是必要的、最新的和有文檔記錄的。一旦有文檔記錄,就必須審查 API,以確保它符合當(dāng)前產(chǎn)品供應(yīng)并遵守安全態(tài)勢(shì)規(guī)則和規(guī)定
另一方面,僵尸 API 之所以存在,是因?yàn)樗鼈円呀?jīng)超過了預(yù)期的使用壽命。僵尸 API 本來就應(yīng)該被棄用或放棄,這是有充分理由的,因此,要糾正安全問題,唯一真正的步驟就是找到它們并完全切斷訪問。
這兩種 API 類型都可能引發(fā)合規(guī)性問題。對(duì)于影子 API,問題在于訪問信息的途徑是否符合行業(yè)和監(jiān)管標(biāo)準(zhǔn)。對(duì)于僵尸 API,問題在于 API 是否仍然合規(guī),無論它曾經(jīng)是否合規(guī) — 如果故意放棄,則可能構(gòu)成疏忽,如果在已知其安全性較弱的情況下放棄,則情況可能更糟。
沒有文檔,這一切都無法得知。因此,您的第一步是找到文檔或創(chuàng)建文檔。接下來,審查和審計(jì)所有配置和功能,以確保它們確實(shí)合規(guī),并審查一段時(shí)間內(nèi)的事務(wù),以確保沒有數(shù)據(jù)泄露并且維護(hù)了安全性。
最后,您必須檢查這兩種 API 類型的隱私注意事項(xiàng)。對(duì)于影子 API,隱私應(yīng)與組織的標(biāo)準(zhǔn)保持一致,但如果沒有文檔記錄,則必須對(duì)此進(jìn)行詳細(xì)審核和審查。對(duì)于僵尸 API,這更加復(fù)雜。這些 API 在開發(fā)時(shí)可能符合隱私期望,但可能已經(jīng)過時(shí)。
在這種情況下,您不僅必須解決問題,還必須記錄問題并盡職盡責(zé),以確保沒有私人數(shù)據(jù)被訪問,也沒有漏洞被利用。在許多情況下,監(jiān)管機(jī)構(gòu)會(huì)要求這樣做,但即使不是,這在道德上也是正確的,應(yīng)該作為標(biāo)準(zhǔn)做法。
最終,影子 API 和僵尸 API 是重大問題,應(yīng)在檢測(cè)到后立即處理。應(yīng)找出問題的原因并迅速糾正,以確保問題不會(huì)持續(xù)下去。
組織通常將安全態(tài)勢(shì)視為所有部分的總和,包括防火墻、網(wǎng)關(guān)和其他組件。然而,實(shí)際情況是,您的安全態(tài)勢(shì)的好壞取決于您掌握的有關(guān)系統(tǒng)的信息。正如人們所說,您無法保護(hù)您不知道的東西。
因此,理解和清晰度是安全態(tài)勢(shì)的關(guān)鍵要素。影子 API 和僵尸 API 會(huì)破壞理解和清晰度,其中任何一個(gè)的存在都代表著整體態(tài)勢(shì)存在重大弱點(diǎn)。因此,加倍重視這些領(lǐng)域?qū)τ谔岣哒w安全性至關(guān)重要。
原文地址:https://nordicapis.com/whats-the-difference-between-shadow-apis-and-zombie-apis/