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

Google 孵化了三個Go安全庫,推薦使用!

開發 前端
SafeText 庫被設計為 text/template 的直接替代品。我們可以用它來處理 YAML 模板,就像使用 text/template 一樣。兩者不同的地方是:當檢測到注入時,SafeText 庫會返回錯誤。

大家好,我是煎魚。

Google 作為一家用戶體量很大的企業,有非常多的產品,經常會被黑客攻擊或被拿來練手。

因此其設計的產品、編程語言、工具庫等都會要求考慮安全性相關的內容。例如:各種供應鏈攻擊、CWE 等安全的查缺補漏等。

我們作為用戶(使用者),可以 “白嫖” 這些功能實現。直接復用在自家的業務上就可以了。這樣每年在護網上都能省不少勁。

三個 Go 安全庫

本次 Google 輸出了三個新的 Go 開源庫,能夠提供安全、高效的解決方案。接下來會給大家分享安全庫官方的一些案例和設計思路、方向。

圖片圖片

本次介紹涉及如下幾個庫:

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

解決了什么問題

這些庫經過精心設計,可應對常見的安全攻擊,可以防范 CWE TOP25 中的以下弱點:

圖片圖片

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

這幾個 Safe 系列庫提供了強大的保護機制。只要使用這幾個庫,即使輸入是由攻擊者輸入的,也能以無漏洞的方式執行這些基本的系統操作。

庫使用和案例

SafeText

SafeText 庫,是 2023 年初發布的第一個安全庫的家族成員。

Google 要創造這一庫的原因是:內部在使用 text/template 做開發基于 YAML 的應用程序時,經常受到 YAML 注入的攻擊。

YAML 模板

SafeText 庫被設計為 text/template 的直接替代品。我們可以用它來處理 YAML 模板,就像使用 text/template 一樣。

兩者不同的地方是:當檢測到注入時,SafeText 庫會返回錯誤。

以下是例子,假設模板如下:

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

當使用 text/template 時,如果攻擊者控制了 .input 的值,他們就可以注入換行符,覆蓋其他字段或更改文檔結構。

根據不同的使用情況,影響可能是嚴重的。例如:當變更的結果被用作生產系統的配置文件時。

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

Shell 命令模板

在該庫原有 YAML 功能的基礎上,Safe 庫還增加了對 shell 命令模板的支持。

設計上考慮的是:確保輸入字符串不會被注入額外的命令或標志,而不考慮潛在的錯誤轉義。(保證安全,接受部分錯誤的可能)

以下是例子,假設易受攻擊如下:

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

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

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

如果使用 Safe 庫提高的 shsprintf 系列函數,例如:

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

或是:

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

兩個例子都能檢測到注入嘗試。第一個會返回錯誤,第二個則會引起恐慌??梢杂行鸬椒雷o的作用。

SafeOpen

SafeOpen 庫的設計目的是:防止路徑遍歷攻擊,它通過提供在基本目錄內打開文件的函數來實現這一目的。

其原理很簡單:需要你指定一個受信任的根目錄,該庫就會強制要求文件操作不能超出該目錄。

保護的緣由是:當要打開的文件路徑名受攻擊者控制(這意味著它可能包含 ./ 路徑組件)或根目錄 "不干凈"(例如它包含符號鏈接)時,它就能提供強大的保護,因為無法跨過你所指定的目錄范圍。

SafeOpen 庫的使用例子,如下代碼:

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

該庫對標以下幾個函數:

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

SafeArchive

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

該庫可直接替換 Go 標準庫中的的 archive/tar 和 archive/zip,直接換包的導入路徑就可以了。使用后,壓縮包中如果包含惡意信息,發現后將會被清除。

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

代碼如下:

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

另外還支持了許多額外保護措施,例如:跳過特殊文件、凈化文件權限、凈化文件名、防止通過符號鏈接進行遍歷等;

代碼如下:

tr.SetSecurityMode(tar.MaximumSecurityMode)

又或是:

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

總結

這三個安全庫 SafeText、SafeOpen、SafeArchive 是非常典型的代表類別,通過這幾個庫我們可以從解決一些漏洞類的問題。

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2024-06-13 13:15:51

Go代碼

2023-12-28 07:39:58

C#項目框架

2024-06-18 12:51:53

Go開發

2013-12-18 13:06:33

數據庫安全安全審計啟明星辰

2011-05-19 13:49:09

2022-07-24 00:09:11

安全SSE TechT技巧

2022-03-22 14:06:19

云安全漏洞云計算

2013-05-03 10:11:26

信息安全BYOT

2018-02-24 17:20:07

2018-05-17 12:00:11

云安全應用程序安全

2023-07-04 14:47:10

2021-01-15 10:51:32

物聯網安全物聯網IOT

2019-01-29 07:14:41

2021-09-03 14:36:01

數據安全風險評估網絡安全

2018-09-04 05:01:44

2017-03-17 11:00:42

云安全實踐云計算

2020-06-11 09:00:27

SDN網絡架構網絡

2022-03-30 14:19:36

云安全云計算風險

2022-01-10 11:33:17

Go測試軟件

2010-11-15 09:56:30

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人网址在线观看 | h片在线看 | 国产乱一区二区三区视频 | 国产一区二区不卡 | 亚洲麻豆 | 成人欧美一区二区三区在线播放 | 欧美大片黄 | 精品视频免费在线 | 亚洲 欧美 激情 另类 校园 | 久久久久久久久综合 | 久久精品亚洲精品 | 国产伦精品一区二区三区精品视频 | 国产精品亚洲一区二区三区在线 | 毛片免费看 | 久久国产成人 | 国产一区精品在线 | 欧美日韩综合视频 | 欧美一区2区三区4区公司 | 欧美综合一区 | 国产精品国产精品 | av黄色在线| 一区二区成人 | 国产欧美性成人精品午夜 | 玖玖国产精品视频 | 欧美国产日韩一区二区三区 | 亚洲视频一区在线 | 日韩专区中文字幕 | 成人黄色a | 精品久久久久一区二区国产 | 日本色高清 | 国产在线一区二区三区 | 色综合天天网 | 日韩不卡一二区 | 国产精品成人一区二区 | 伊人网综合 | 久久久91精品国产一区二区三区 | 国产特级毛片 | 久久51 | 99热精品在线 | 日韩一区二区三区在线 | 久久国|