自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

無(wú)服務(wù)安全性的策略、工具和實(shí)踐

譯文
運(yùn)維 服務(wù)器運(yùn)維
無(wú)服務(wù)器給我們帶來(lái)了諸多好處,但是其安全性不容忽視。本文將和您討論各種無(wú)服務(wù)安全性策略、工具和實(shí)踐。

[[386461]]

【51CTO.com快譯】不可否認(rèn),我們?cè)诘靡嬗跓o(wú)服務(wù)器帶來(lái)的效率、可擴(kuò)展性、以及成本優(yōu)勢(shì)等功能與便利的同時(shí),必須保證無(wú)服務(wù)器應(yīng)用的安全性。在本文中,我將向您介紹如何使用AWS Lambda和相關(guān)工具,來(lái)開(kāi)發(fā)無(wú)服務(wù)器功能,以及那些行之有效的無(wú)服務(wù)器安全策略和優(yōu)秀實(shí)踐。

總體而言,無(wú)服務(wù)器的安全性處置方法可分為兩類(lèi):運(yùn)行時(shí)(runtime)安全和靜態(tài)(static)安全。

運(yùn)行時(shí)安全

毫不夸張地說(shuō),無(wú)服務(wù)器的相關(guān)功能一旦開(kāi)始運(yùn)行并被調(diào)用,其安全隱患就出現(xiàn)了。特別是涉及到有用戶(hù)輸入信息時(shí),暴露的攻擊面會(huì)更大。例如:惡意用戶(hù)可能通過(guò)SQL注入的方式,竊取甚至刪除后臺(tái)的數(shù)據(jù)。同樣,跨站點(diǎn)腳本(XSS)攻擊可以將腳本注入到運(yùn)行在無(wú)服務(wù)器的微虛擬機(jī)(microVM)上。如此,就算無(wú)服務(wù)器已執(zhí)行完了所提供的功能(或是超時(shí)了),microVM仍會(huì)spin down,而此時(shí)XSS攻擊便可以在無(wú)服務(wù)器環(huán)境中站穩(wěn)腳跟,通過(guò)啟動(dòng)其他進(jìn)程來(lái)興風(fēng)作浪。

我們既可以將無(wú)服務(wù)器的安全保護(hù)作為一個(gè)功能性層面來(lái)運(yùn)行,也可以將其作為并行的進(jìn)程來(lái)運(yùn)行。而此類(lèi)保護(hù)既可以驗(yàn)證用戶(hù)輸入的完整性,又能夠監(jiān)控文件、進(jìn)程和連接是否存在著任何異?;驉阂庑袨?。

不過(guò),在函數(shù)每一次被調(diào)用時(shí),安全保護(hù)都被激活。這往往會(huì)增加運(yùn)行時(shí)間,特別是在無(wú)服務(wù)器的情況下,每次就會(huì)增加100ms的運(yùn)行成本。而且,如果需要加載較大的代碼包,那么此類(lèi)延遲的增加,就會(huì)對(duì)整體性能造成較大的負(fù)面影響。話(huà)雖如此,對(duì)于那些金融服務(wù)和關(guān)鍵性基礎(chǔ)設(shè)施的應(yīng)用而言,由于安全性比性能更為重要,因此運(yùn)行時(shí)安全對(duì)于它們的無(wú)服務(wù)功能來(lái)說(shuō),是必不可少的。

實(shí)際上,無(wú)服務(wù)器功能已經(jīng)自帶了不少安全機(jī)制。例如:惡意攻擊無(wú)法在運(yùn)行時(shí)中更改函數(shù)的代碼,畢竟它僅能作為一個(gè)實(shí)例被執(zhí)行。同時(shí),無(wú)服務(wù)器功能通常運(yùn)行在AWS Lambda等云端服務(wù)上,而云服務(wù)提供商自身已經(jīng)提供了免受DDoS攻擊、DNS攻擊、TCP SYN攻擊、以及會(huì)話(huà)劫持攻擊的能力。因此,用戶(hù)只需遵循編程時(shí)的各種優(yōu)秀實(shí)踐,并保持每個(gè)函數(shù)在邏輯上盡量簡(jiǎn)單,即可達(dá)到運(yùn)行時(shí)安全的效果。畢竟,隨著應(yīng)用的迭代,代碼量的逐漸增多,功能性超時(shí)也會(huì)隨之增加。因此,我們需要持續(xù)通過(guò)運(yùn)行時(shí)安全,來(lái)保護(hù)無(wú)服務(wù)器的各項(xiàng)功能。

靜態(tài)安全

靜態(tài)安全是從執(zhí)行前的檢查階段,以及執(zhí)行后的取證分析階段,來(lái)保護(hù)無(wú)服務(wù)器的各項(xiàng)功能。

具體而言,執(zhí)行前的檢查可遵循如下安全檢查列表(其中,前三點(diǎn)是無(wú)服務(wù)器安全性特有的要求):

1. 為每項(xiàng)功能分配一個(gè)角色,以定義其對(duì)于資源的訪(fǎng)問(wèn)權(quán)限。建議做法是:授予必要且最低的訪(fǎng)問(wèn)權(quán)限。

2. 為了避免由于錯(cuò)誤的配置所導(dǎo)致的安全漏洞,請(qǐng)將所有資源都組織到同一個(gè)應(yīng)用之中。

3. 在訪(fǎng)問(wèn)規(guī)則上,應(yīng)當(dāng)設(shè)置為:每個(gè)資源都需要用單獨(dú)的憑據(jù)來(lái)訪(fǎng)問(wèn),并對(duì)憑據(jù)進(jìn)行安全管理。

4. 嚴(yán)格地限制功能發(fā)布、路由更改、以及負(fù)載分布的變更等權(quán)限。

5. 持續(xù)掃描功能庫(kù),并及時(shí)修復(fù)發(fā)現(xiàn)的漏洞。

為了將上述安全措施集成到CI/CD流程中,光靠人工干預(yù)顯然是不夠的,我們需要通過(guò)安全自動(dòng)化的規(guī)模性能力,來(lái)保護(hù)各項(xiàng)功能與資源。

第二階段則是通過(guò)一系列來(lái)自云提供商的工具,在執(zhí)行后進(jìn)行取證分析。例如,我們可以使用AWS CloudWatch、AWS X-Ray、AWS Security Hub、AWS GuardDuty、以及最新的Amazon Detective,來(lái)監(jiān)控和分析AWS Lambda無(wú)服務(wù)器的各項(xiàng)功能。

無(wú)服務(wù)器功能的開(kāi)發(fā)工具與實(shí)踐

由于AWS Lambda具有對(duì)Java、Go、PowerShell、Python、Node.js、C#和Ruby的原生支持,因此在以下的示例中,我們將使用Python、Node.js或Ruby語(yǔ)言,通過(guò)基于Web的AWS控制臺(tái),來(lái)創(chuàng)建一項(xiàng)無(wú)服務(wù)器功能(如下面的屏幕截圖所示)。值得注意的是,AWS提供的用于編寫(xiě)函數(shù)的文本編輯器,并不適合創(chuàng)建那些會(huì)用到多個(gè)文件、軟件庫(kù)、以及依賴(lài)項(xiàng)的大型函數(shù)。

當(dāng)然,您也可以選擇使用AWS的命令行界面(CLI)工具,在本地開(kāi)發(fā)和提交各項(xiàng)功能。您可以參考這里,來(lái)進(jìn)一步了解AWS CLI的安裝和配置。

同時(shí),您可以把在本地開(kāi)發(fā)好的所有源代碼文件,放入一個(gè)zip文件,然后上傳到AWS CLI中(如下所示)。

我們需要通過(guò)更強(qiáng)大的開(kāi)發(fā)工具,以及專(zhuān)用的開(kāi)發(fā)環(huán)境,來(lái)開(kāi)發(fā)更為復(fù)雜的服務(wù),以及在CI/CD管道中引入可擴(kuò)展的自動(dòng)化靜態(tài)安全。這里羅列了各種強(qiáng)大的、適合開(kāi)發(fā)人員的AWS工具。此外,Lumigo網(wǎng)站也提供了一些較為實(shí)用的工具,具體請(qǐng)參見(jiàn)--https://lumigo.io/blog/comparison-of-lambda-deployment-frameworks/。

無(wú)服務(wù)器框架(Serverless Framework,SLS)是目前最受歡迎的開(kāi)發(fā)工具,它在GitHub上獲得了超過(guò)38,000顆星。AWS無(wú)服務(wù)器應(yīng)用程序模型(Serverless Application Model,SAM)則是另一款十分流行的工具。它們都能夠讓開(kāi)發(fā)人員在serverless.yml文件中,構(gòu)建無(wú)服務(wù)器項(xiàng)目。此類(lèi)項(xiàng)目可以被轉(zhuǎn)換為CloudFormation模板。AWS將它用來(lái)創(chuàng)建各種所需的資源。具體而言,SLS和SAM能夠提供:

1. 基礎(chǔ)架構(gòu)即代碼(Infrastructure-as-code)定義了CloudFormation中的資源,其中包括:無(wú)服務(wù)器功能、API網(wǎng)關(guān)、Amazon S3存儲(chǔ)等。

2. 本地功能性測(cè)試。

3. 多階段性的CI/CD管道集成。

4. 完全開(kāi)源的修改潛力。

此外,SLS還提供了1000多個(gè)現(xiàn)有插件的列表。這些插件不但可以極大地改善和簡(jiǎn)化無(wú)服務(wù)器的功能開(kāi)發(fā),還可以按需被編寫(xiě)出新的插件。以下代碼段便是一個(gè)小型插件的示例:

在開(kāi)發(fā)人員能夠使用SLS,來(lái)創(chuàng)建有效的無(wú)服務(wù)器項(xiàng)目時(shí),無(wú)服務(wù)器棧(Serverless Stack)為他們提供了寶貴的分步說(shuō)明。同時(shí),作為一套出色的初學(xué)者教程,該資源方便了開(kāi)發(fā)人員獲取有關(guān)無(wú)服務(wù)器開(kāi)發(fā)的工作流,以及如何使用AWS基本組件的經(jīng)驗(yàn)。

構(gòu)建安全的無(wú)服務(wù)器功能

以下便是我們?cè)陂_(kāi)發(fā)安全的無(wú)服務(wù)器應(yīng)用時(shí),值得遵循的六項(xiàng)優(yōu)秀實(shí)踐與規(guī)則:

1. 通過(guò)將資源定義與函數(shù)區(qū)分開(kāi)來(lái),讓您的代碼庫(kù)井然有序。您可以利用不同資源作為參數(shù),而不是經(jīng)過(guò)硬編碼的字符串。同時(shí),您可以通過(guò)共享代碼,來(lái)盡量減小程序包的大小。

如下兩個(gè)示例,演示了良好的代碼庫(kù)組織結(jié)構(gòu)。其中,第一個(gè)展示了共享庫(kù)的多項(xiàng)功能:

第二個(gè)例子是由無(wú)服務(wù)器棧提供的:

2.遵循最小特權(quán)原則,將身份和訪(fǎng)問(wèn)管理(IAM)中的角色限制為單個(gè)功能級(jí)別上。

3.使用諸如AWS SSM代理之類(lèi)的服務(wù),來(lái)管理好密鑰。

4.單個(gè)無(wú)服務(wù)器功能僅能執(zhí)行一項(xiàng)任務(wù)。如果某個(gè)函數(shù)的輸出需要進(jìn)一步處理的話(huà),請(qǐng)將該輸出保存到數(shù)據(jù)存儲(chǔ)庫(kù)中,并由該保存動(dòng)作來(lái)觸發(fā)新的函數(shù)。記住:不要使用當(dāng)前函數(shù)去調(diào)用另一個(gè)函數(shù)。

5.盡量少用遠(yuǎn)程連接。無(wú)論多么復(fù)雜,函數(shù)的大部分都應(yīng)該在本地處理其輸入,然后返回對(duì)應(yīng)的結(jié)果。注意:遠(yuǎn)程連接不但會(huì)增加延遲,而且可能導(dǎo)致在調(diào)試和擴(kuò)展時(shí)出現(xiàn)問(wèn)題。

6.盡量少用依賴(lài)性。最好將它們放置在前文提到的共享層中,并持續(xù)執(zhí)行安全掃描。

這些便是我想在本文中和您討論的,各種無(wú)服務(wù)安全性的策略、工具和實(shí)踐。

原文標(biāo)題:Examining Serverless Security Strategies, Tools, and (Current) Best Practices,作者: Selvam Thangaraj

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2022-10-13 06:46:05

Dapr訪(fǎng)問(wèn)控制策略

2010-05-18 17:24:36

IIS服務(wù)器

2013-04-23 14:36:54

2023-02-24 11:42:35

2010-11-09 15:50:47

SQL Server安

2018-08-26 06:06:33

網(wǎng)絡(luò)安全容器無(wú)服務(wù)器

2013-03-04 09:21:23

SQL Server安全工具

2009-11-06 09:59:55

2013-08-22 09:16:01

移動(dòng)終端安全移動(dòng)安全移動(dòng)策略

2021-07-23 09:00:00

數(shù)據(jù)庫(kù)安全工具

2009-11-30 09:41:38

2023-04-19 00:07:54

2021-02-21 09:33:19

Docker容器安全 應(yīng)用程序

2013-09-18 09:13:16

BYOD安全BYOD自帶設(shè)備辦公

2010-09-14 19:29:00

2010-12-07 09:51:43

Linux安全性netfilteriptables

2022-04-12 10:41:08

Android谷歌應(yīng)用程序

2020-09-06 22:33:04

WPA身份驗(yàn)證網(wǎng)絡(luò)安全

2017-11-14 11:17:53

2015-06-15 10:48:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)