999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python常見安全漏洞及修復方法

2018-09-10 06:14:13姜唐
計算機與網絡 2018年23期
關鍵詞:方法

姜唐

編寫安全的代碼很困難,當學習一門編程語言、一個模塊或框架時,會學習其使用方法。在考慮安全性時,需要考慮如何避免代碼被濫用,Python也不例外,即使在標準庫中,也存在著許多糟糕的實例。然而,許多Python開發人員卻根本不知道這些。

以下總結10個Python常見安全漏洞,排名不分先后。

1.輸入注入

注入攻擊影響廣泛且很常見,注入有很多種類,它們影響所有的語言、框架和環境。

SQL注入是直接編寫SQL查詢(而非使用ORM)時將字符串與變量混合。我讀過很多代碼,其中“引號字符轉義”被認為是一種修復,但事實并非如此,可以通過SQL注入所有可能發生的方式。

命令注入有可能在使用popen,subprocess,os.system調用一個進程并從變量中獲取參數時發生,當調用本地命令時,有人可能會將某些值設置為惡意值。

下面是個簡單的腳本,使用用戶提供的文件名調用子進程:

修復方法:

如果使用了Web框架,可以用附帶的實用程序對輸入進行清理,除非有充分的理由,否則不要手動構建SQL查詢,大多數ORM都有內置的清理方法。

對于shell,可以使用shlex模塊正確地轉義輸入。

2.解析XML

如果應用程序加載并解析XML文件,可能你正在使用一個XML標準庫模塊。有一些針對XML的常見攻擊。大多數為DoS風格(旨在破壞系統而不是盜取數據)。這些攻擊很常見,特別是在解析外部(即不可信任的)XML文件時。

其中一種攻擊為“billion laughs”,因為加載的文件包含了很多個(數十億)“lols”。你可以加載XML實體文件,當XML解析器試圖將這個XML文件加載到內存中時,會消耗很多個G的內存。

另一種攻擊使用外部實體擴展。XML支持從外部URL引用實體,XML解析器通常會直接獲取并加載該資源。“攻擊者可以繞開防火墻訪問保密資源,因為所有請求都是由內部可信的IP地址創建的,請求不是來自于外部。”

需要考慮的另一種情況是要依賴于第三方軟件包來解碼XML,例如配置文件,遠程API。有時甚至不知道自己的某個依賴包已經暴露在攻擊之下。

那么在Python中會發生什么?標準庫模塊etree,DOM,xmlrpc都容易遭受這些類型的攻擊。

修復方法:

直接用defusedxml替換標準庫模塊。它增加了針對這類攻擊的安全防護。

3. Assert語句

不要使用assert語句來防止用戶訪問特定代碼段。例如:

默認情況下,Python以_debug _為true來執行腳本,但在實際環境中,通常使用優化運行,這將會跳過assert語句并直接轉到安全代碼,而不管用戶是否是is_admin。

修復方法:

僅在單元測試中使用assert語句。

4.計時攻擊

計時攻擊本質上是一種通過計算比較提供值所需時間來暴露行為和算法的方式。計時攻擊需要精確性,所以通常不能用于高延遲的遠程網絡。由于大多數Web應用程序涉及可變延遲,因此幾乎不可能針對HTTP Web服務器編寫計時攻擊。

但是,如果應用程序有提示輸入密碼的命令行,攻擊者就可以編寫一個簡單的腳本來計算將其值與實際密碼進行比較所需的時間。

修復方法:

使用在Python 3.5中引入的secrets.compare_digest來比較密碼和其他私密值。

5.感染site-packages或導入路徑

Python的導入系統非常靈活。當為測試程序編寫猴子補丁,或者重載核心函數時,會感覺非常方便。

但這也是Python最大的安全漏洞之一。

將第三方包安裝到site-packages中,無論是在虛擬環境中還是在全局site-packages中,你都將暴露在安全風險中。

有一些發布到PyPi的包與流行的包具有相似的名稱,但是卻執行了任意代碼。幸運的是,這很可能沒有太大危害,只會“明確表示”這個問題沒有得到真正的解決。

需要考慮的另一種情況是多層依賴包。它們可能包含漏洞,它們也可以通過導入系統重寫Python默認行為。

修復方法:

可以利用PyUp.io這個網站提供的工具檢查第三方包。使用虛擬環境,確保全局site-packages盡可能干凈,同時檢查包簽名。

6.臨時文件

要在Python中創建臨時文件,通常會使用mktemp()函數生成一個文件名,然后使用該名稱創建一個文件。“這是不安全的,因為另一個進程可能會在調用mktemp()和隨后嘗試通過第一個進程創建文件之間的空隙創建一個同名文件。”這意味著應用程序可能加載錯誤的數據或暴露其他的臨時數據。

如果調用不正確,最新版本的Python會發出運行警告。

修復方法:

如果需要生成臨時文件,請使用tempfile模塊并使用mkstemp。

7.使用yaml.load

引用PyYAML的說明文檔:

警告:使用不可信源的數據調用yaml.load是不安全的!yaml.load和pickle.load一樣強大,所以可以調用任何Python函數。

在流行的Python項目Ansible中找到一個例子,可以將此值提供給Ansible Vault作為有效的YAML,它使用文件中提供的參數調用os.system。

所以,從用戶提供的值中加載YAML文件會讓應用大門洞開,很容易遭受攻擊。

修復方法:

總是使用yaml.safe_load,除非有其他更好的方法。

8. Pickle漏洞

用pickle反序列化數據和YAML一樣糟糕。在pickle對象時,Python類可以聲明一個名為_reduce_的魔術方法,該方法返回一個字符串、或一個元組。攻擊者可以使用它來引用其中一個子進程模塊,在主機上運行任意命令。

這有一個在Python2中pickle一個類并打開shell的例子。更多利用pickle漏洞的方法請看這個。

修復方法:

切勿用pickle反序列化不受信任或未經身份驗證的數據。改用另一種序列化模式,如JSON。

9.使用系統自帶的Python而不修補漏洞

大多數可移植操作系統都自帶Python2,通常還是舊版本。由于“Python”,即CPython是用C語言編寫的,所以Python解釋器本身存在漏洞。C語言中常見的安全問題與內存分配有關,所以存在緩沖區溢出錯誤。

多年來CPython出現了多個溢出漏洞,每個漏洞都在后續版本中進行了修復。也就是說,如果你修補了Python本身的漏洞,你就是安全的。

修復方法:

安裝最新版本的Python并及時修補漏洞。

10.不修補依賴包的漏洞

類似于修補Python本身的漏洞,還需要定期修補依賴包漏洞。有人習慣于使用PyPi軟件包的“固定”版本,這種做法很可怕。他們認為“這些是有用的版本”,所以每個人都對漏洞置若罔聞。

上面提到的所有漏洞如果存在于你使用的包中,它們同樣很致命,所以這些軟件包的開發人員無時無刻地在解決安全問題。

修復方法:

使用類似于PyUP.io這個網站提供的服務去檢查更新,向應用程序發送pull/merge請求,運行測試,讓軟件包保持更新。使用InSpec這樣的工具來驗證真實環境中的安裝版本,并確保修補了最小版本或多個連續版本的漏洞。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 欧美日本激情| 国产福利2021最新在线观看| 国产精品林美惠子在线观看| 亚洲高清中文字幕| 伊人激情综合网| 女人av社区男人的天堂| 91欧美亚洲国产五月天| 国产玖玖视频| 国产精品尤物铁牛tv | 人妻丰满熟妇av五码区| 国产三级韩国三级理| 亚洲综合精品第一页| 亚洲视频免费播放| 亚洲欧美人成人让影院| 亚洲欧洲日韩国产综合在线二区| 中国一级特黄大片在线观看| 亚洲精品自产拍在线观看APP| 久久精品国产精品一区二区| 国产网站一区二区三区| 蜜桃视频一区| 国产无套粉嫩白浆| 精品综合久久久久久97超人| 婷婷色丁香综合激情| 日韩在线欧美在线| 网久久综合| 91日本在线观看亚洲精品| 中文字幕不卡免费高清视频| 91丝袜在线观看| 99久久精品久久久久久婷婷| 99re在线视频观看| 亚洲无码精彩视频在线观看| 成人国产免费| 91免费国产在线观看尤物| 亚洲高清资源| 色噜噜在线观看| 福利一区在线| 国产精欧美一区二区三区| 欧美日韩一区二区三区在线视频| 91麻豆国产视频| 日本免费a视频| 青青青视频91在线 | 综合色在线| 毛片国产精品完整版| 朝桐光一区二区| 呦系列视频一区二区三区| 久久免费精品琪琪| 久久一本精品久久久ー99| 免费全部高H视频无码无遮掩| 99久久精品久久久久久婷婷| 日韩欧美中文字幕在线韩免费| 99久久免费精品特色大片| 亚洲第一福利视频导航| 午夜国产不卡在线观看视频| 老司机久久99久久精品播放| a网站在线观看| 国产一区二区三区在线观看免费| 99久久精品免费看国产电影| 91精品亚洲| 国模私拍一区二区 | 精品国产福利在线| 国产毛片基地| 国产黄网永久免费| 国产网站一区二区三区| 亚洲天堂啪啪| 欧美精品在线看| 亚洲人成电影在线播放| 国产99在线观看| 免费一级毛片在线播放傲雪网| 青青青视频91在线 | 亚洲福利片无码最新在线播放 | 依依成人精品无v国产| 国产主播在线一区| 久久久久亚洲精品无码网站| 国产精品美人久久久久久AV| 亚洲欧美激情小说另类| 成人韩免费网站| 亚洲精品无码日韩国产不卡| 天天摸夜夜操| 久久久久免费看成人影片 | 亚洲午夜片| 福利视频一区| 性色一区|