成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google 孵化了三個(gè)Go安全庫(kù),推薦使用!

開發(fā) 前端
SafeText 庫(kù)被設(shè)計(jì)為 text/template 的直接替代品。我們可以用它來(lái)處理 YAML 模板,就像使用 text/template 一樣。兩者不同的地方是:當(dāng)檢測(cè)到注入時(shí),SafeText 庫(kù)會(huì)返回錯(cuò)誤。

大家好,我是煎魚。

Google 作為一家用戶體量很大的企業(yè),有非常多的產(chǎn)品,經(jīng)常會(huì)被黑客攻擊或被拿來(lái)練手。

因此其設(shè)計(jì)的產(chǎn)品、編程語(yǔ)言、工具庫(kù)等都會(huì)要求考慮安全性相關(guān)的內(nèi)容。例如:各種供應(yīng)鏈攻擊、CWE 等安全的查缺補(bǔ)漏等。

我們作為用戶(使用者),可以 “白嫖” 這些功能實(shí)現(xiàn)。直接復(fù)用在自家的業(yè)務(wù)上就可以了。這樣每年在護(hù)網(wǎng)上都能省不少勁。

三個(gè) Go 安全庫(kù)

本次 Google 輸出了三個(gè)新的 Go 開源庫(kù),能夠提供安全、高效的解決方案。接下來(lái)會(huì)給大家分享安全庫(kù)官方的一些案例和設(shè)計(jì)思路、方向。

圖片圖片

本次介紹涉及如下幾個(gè)庫(kù):

  • SafeText[1]:用于 YAML 和 shell 命令模板,指的是對(duì)標(biāo) text/template 的安全增強(qiáng)。
  • SafeOpen[2]:用于打開目錄中的文件,指的是對(duì)標(biāo) os.Open 等的安全增強(qiáng)。
  • SafeArchive[3]:用于處理歸檔文件,指的就是壓縮文件的處理,對(duì)標(biāo) archive/tar 和 archive/zip 等的安全增強(qiáng)。

解決了什么問(wèn)題

這些庫(kù)經(jīng)過(guò)精心設(shè)計(jì),可應(yīng)對(duì)常見的安全攻擊,可以防范 CWE TOP25 中的以下弱點(diǎn):

圖片圖片

  • #5 CWE-78[4]:操作系統(tǒng)命令中使用的特殊元素中和不當(dāng)(操作系統(tǒng)命令注入)。
  • #6 CWE-20[5]:特殊情況下,輸入驗(yàn)證不當(dāng)。
  • #8 CWE-22[6]:對(duì)受限目錄的路徑名限制不當(dāng)(路徑遍歷)。

這幾個(gè) Safe 系列庫(kù)提供了強(qiáng)大的保護(hù)機(jī)制。只要使用這幾個(gè)庫(kù),即使輸入是由攻擊者輸入的,也能以無(wú)漏洞的方式執(zhí)行這些基本的系統(tǒng)操作。

庫(kù)使用和案例

SafeText

SafeText 庫(kù),是 2023 年初發(fā)布的第一個(gè)安全庫(kù)的家族成員。

Google 要?jiǎng)?chuàng)造這一庫(kù)的原因是:內(nèi)部在使用 text/template 做開發(fā)基于 YAML 的應(yīng)用程序時(shí),經(jīng)常受到 YAML 注入的攻擊。

YAML 模板

SafeText 庫(kù)被設(shè)計(jì)為 text/template 的直接替代品。我們可以用它來(lái)處理 YAML 模板,就像使用 text/template 一樣。

兩者不同的地方是:當(dāng)檢測(cè)到注入時(shí),SafeText 庫(kù)會(huì)返回錯(cuò)誤。

以下是例子,假設(shè)模板如下:

---
sensitive: data
innocent: "{{ .input}}"

當(dāng)使用 text/template 時(shí),如果攻擊者控制了 .input 的值,他們就可以注入換行符,覆蓋其他字段或更改文檔結(jié)構(gòu)。

根據(jù)不同的使用情況,影響可能是嚴(yán)重的。例如:當(dāng)變更的結(jié)果被用作生產(chǎn)系統(tǒng)的配置文件時(shí)。

如果是使用 SafeText 庫(kù)時(shí),SafeText 將返回錯(cuò)誤信息:YAML Injection Detected,,并阻止這類可能的侵入式攻擊。

Shell 命令模板

在該庫(kù)原有 YAML 功能的基礎(chǔ)上,Safe 庫(kù)還增加了對(duì) shell 命令模板的支持。

設(shè)計(jì)上考慮的是:確保輸入字符串不會(huì)被注入額外的命令或標(biāo)志,而不考慮潛在的錯(cuò)誤轉(zhuǎn)義。(保證安全,接受部分錯(cuò)誤的可能)

以下是例子,假設(shè)易受攻擊如下:

result := fmt.Sprintf("git commit -m %s", message)

如果信息變量受攻擊者控制,且連接字符串在某個(gè)時(shí)刻被執(zhí)行,那么這就是一個(gè)漏洞。

根據(jù)攻擊的具體執(zhí)行情況,操作系統(tǒng)命令或可執(zhí)行文件(本例中為 git cli)的參數(shù)都可能被注入。

如果使用 Safe 庫(kù)提高的 shsprintf 系列函數(shù),例如:

message := "`腦子進(jìn)煎魚了...`"
result, err := shsprintf.Sprintf("git commit -m %s", message)

或是:

message := "`煎魚進(jìn)腦子了`"
result := shsprintf.MustSprintf("git commit -m %s", shsprintf.EscapeDefaultContext(message))

兩個(gè)例子都能檢測(cè)到注入嘗試。第一個(gè)會(huì)返回錯(cuò)誤,第二個(gè)則會(huì)引起恐慌。可以有效起到防護(hù)的作用。

SafeOpen

SafeOpen 庫(kù)的設(shè)計(jì)目的是:防止路徑遍歷攻擊,它通過(guò)提供在基本目錄內(nèi)打開文件的函數(shù)來(lái)實(shí)現(xiàn)這一目的。

其原理很簡(jiǎn)單:需要你指定一個(gè)受信任的根目錄,該庫(kù)就會(huì)強(qiáng)制要求文件操作不能超出該目錄。

保護(hù)的緣由是:當(dāng)要打開的文件路徑名受攻擊者控制(這意味著它可能包含 ./ 路徑組件)或根目錄 "不干凈"(例如它包含符號(hào)鏈接)時(shí),它就能提供強(qiáng)大的保護(hù),因?yàn)闊o(wú)法跨過(guò)你所指定的目錄范圍。

SafeOpen 庫(kù)的使用例子,如下代碼:

rootDir:= "/data"
f, err := safeopen.OpenBeneath(rootDir, userInput)
if err != nil {
    t.Fatalf("OpenBeneath(%q, %q) error: %v", rootDir, userInput, err)
}
// ... use f as an *os.File just like before

該庫(kù)對(duì)標(biāo)以下幾個(gè)函數(shù):

  • os.Open
  • os.OpenFile
  • os.Create
  • os.ReadFile
  • os.WriteFile

SafeArchive

SafeArchive 庫(kù)的設(shè)計(jì)目的是:防止路徑遍歷攻擊(又稱 zip slip)以及與處理歸檔文件相關(guān)的各種攻擊。

該庫(kù)可直接替換 Go 標(biāo)準(zhǔn)庫(kù)中的的 archive/tar 和 archive/zip,直接換包的導(dǎo)入路徑就可以了。使用后,壓縮包中如果包含惡意信息,發(fā)現(xiàn)后將會(huì)被清除。

例子如下:如果該庫(kù)遇到包含惡意條目 ./././././etc/cron.daily/cronjob 的 .zip 文件,該庫(kù)會(huì)清理該名稱,并返回為干凈的 etc/cron.daily/cronjob。

代碼如下:

tr := tar.NewReader(buf)
tr.SetSecurityMode(tr.GetSecurityMode() | tar.SanitizeFileMode | tar.DropXattrs)

另外還支持了許多額外保護(hù)措施,例如:跳過(guò)特殊文件、凈化文件權(quán)限、凈化文件名、防止通過(guò)符號(hào)鏈接進(jìn)行遍歷等;

代碼如下:

tr.SetSecurityMode(tar.MaximumSecurityMode)

又或是:

tr.SetSecurityMode(tr.GetSecurityMode() &^ tar.SanitizeFileMode)

總結(jié)

這三個(gè)安全庫(kù) SafeText、SafeOpen、SafeArchive 是非常典型的代表類別,通過(guò)這幾個(gè)庫(kù)我們可以從解決一些漏洞類的問(wèn)題。

責(zé)任編輯:武曉燕 來(lái)源: 腦子進(jìn)煎魚了
相關(guān)推薦

2023-12-28 07:39:58

C#項(xiàng)目框架

2024-06-13 13:15:51

Go庫(kù)代碼

2013-12-18 13:06:33

數(shù)據(jù)庫(kù)安全安全審計(jì)啟明星辰

2024-06-18 12:51:53

Go庫(kù)開發(fā)

2011-05-19 13:49:09

2022-07-24 00:09:11

安全SSE TechT技巧

2022-03-22 14:06:19

云安全漏洞云計(jì)算

2013-05-03 10:11:26

信息安全BYOT

2018-02-24 17:20:07

2018-05-17 12:00:11

云安全應(yīng)用程序安全

2023-07-04 14:47:10

2018-09-04 05:01:44

2019-01-29 07:14:41

2021-09-03 14:36:01

數(shù)據(jù)安全風(fēng)險(xiǎn)評(píng)估網(wǎng)絡(luò)安全

2021-01-15 10:51:32

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2017-03-17 11:00:42

云安全實(shí)踐云計(jì)算

2020-06-11 09:00:27

SDN網(wǎng)絡(luò)架構(gòu)網(wǎng)絡(luò)

2022-03-30 14:19:36

云安全云計(jì)算風(fēng)險(xiǎn)

2022-01-10 11:33:17

Go測(cè)試軟件

2010-11-15 09:56:30

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 99精品久久 | 一区二区精品 | 五月精品视频 | 综合色久 | 人人人干| 国产一区二区三区免费观看视频 | 亚洲综合中文字幕在线观看 | 亚洲国产偷| 精品精品视频 | 亚洲一区 中文字幕 | 国产片侵犯亲女视频播放 | 狠狠入ady亚洲精品经典电影 | 4h影视| 九九九视频在线观看 | 欧美一区免费 | 中国三级黄色录像 | 狠狠艹 | 国产91丝袜在线播放 | 亚洲激情在线观看 | 欧美精品在欧美一区二区少妇 | 天天操夜夜艹 | 日韩免费av网站 | 91久久久久久久久久久久久 | 亚洲精品久久久久中文字幕欢迎你 | av在线免费观看网址 | 福利片一区二区 | 在线观看免费国产 | 韩国理论电影在线 | 久久久久久久久久爱 | 国产一区在线免费观看视频 | www.男人天堂.com | 精品久久久久久久 | 亚洲一区二区三区久久久 | 夜夜草| 精品视频网 | 岛国午夜 | 久久亚洲欧美日韩精品专区 | 一级一级一级毛片 | 一区二区三区视频 | 欧美视频在线免费 | 中文无码日韩欧 |