天天看點

國家注冊軟體安全開發人員_軟體開發人員的3個安全提示

國家注冊軟體安全開發人員

每個開發人員都知道遵循最佳安全實踐的重要性。 但是我們經常走捷徑,也許是因為我們必須努力工作,直到這些安全措施陷入困境。不幸的是,這通常需要像看到嚴重的安全事故那樣,在我們的大腦中留下不可磨滅的烙印。

在我作為系統管理者的職業生涯中,曾見過許多不良安全實踐的執行個體,但在此我要描述的三個執行個體是每個軟體開發人員都應避免的基本知識。 重要的是要注意,我已經看到大型公司和經驗豐富的開發人員犯下的每一個錯誤,是以您不能将這些錯誤歸咎于新手初級工程師。

[下載下傳DevSecOps入門指南]

1.不要加密密碼,請對其進行哈希處理。

在我職業生涯的早期,我曾在一家使用管理系統的公司工作,該系統擁有一些非常重要的資訊。 有一天,我被要求對網絡和存儲我們關鍵資訊的軟體進行安全審查。 我花了幾分鐘時間才決定啟動Wireshark,以檢視網絡中正在運作的流量。

我使用本地工作站,登入到資訊系統,發現有些奇怪。 即使在SSL泛濫之前,我也沒想到會以純文字形式包含包含“使用者名”和“密碼”之類的位元組的資料。 經過仔細檢查,似乎系統正在通過網絡發送我的使用者名和一個随機字元串(不是我的密碼)。 我不能讓它休息。 我嘗試再次登入,但是這次我故意輸入了錯誤的密碼。 我并沒有全部更改,隻是一個字元。

完全不同,而不僅僅是兩個字元不同。 哎呀,即使是良好的加密方案也可以做到這一點。 但是,這根本沒有做到這一點。 我嘗試了兩個錯誤的密碼。

帶着幾張紙和一支鉛筆,我花了接下來的兩個小時來弄清楚解密方案。 在這兩個小時結束時,我有一個Python腳本,可以采取任何的“加密”的密碼和解密它揭示了原始密碼,任何一個人都不應該永遠是能夠做到的。 我敢肯定,夢this以求的加密方案的人永遠不會想到一個手幾個小時的人會坐下來解決問題,但是我做到了。

為什麼? 因為我可以。

如果您必須存儲密碼以進行比較,請不要對它們進行加密,因為總會有人找到解密算法或密鑰。 哈希沒有直接的反向,這意味着除非有人已經擁有一個具有從純文字到哈希的映射的表(或者他們隻是猜測),否則任何人都無法反向。 知道散列機制并不會背叛資料的完整性,而知道加密方案和密鑰将會出賣。

2.不要在軟體中放置秘密後門。

作為第三方軟體推出的一部分,我正在支援一些告訴我他們的登入無效的使用者。 這是由供應商提供的付費服務,但是在困擾通常是最煩人的支援電話之一(“我的登入無效”)之前,我想我會自己嘗試一下。 沒錯,登入無效。

該系統是一個基于Web的學習管理平台,我們為其中的一小部分功能付費。 當我在登入頁面上浏覽更多内容時,有一些東西引起了我的注意。 其中一個字中的一個字元看起來有所不同。 也許是不同的字型,形狀略有不同的“ o”。 我就是我,我在源代碼視圖中檢視了該頁面,并注意到有一個與此特定字母關聯的連結。 該連結被有意隐藏。 将滑鼠懸停在其上時,滑鼠光标沒有變化。

我小心翼翼地将該神秘連結加載到新的浏覽器視窗中。 突然之間,我遇到了一個螢幕,其中較長的描述了一整套計算機,使我可以完全控制它們的功能以及關閉它們,重新啟動它們,拍攝螢幕快照等功能。 我打電話給軟體供應商,并要求與IT人士交談。 經過幾圈之後,我終于找到了一個知道我在說什麼的人。

“哦耶!” 他說。 “我們把它放在那裡很容易通路,直到您找到它為止,沒人能找到。我們會立即将其删除。” 在結束通話之前,他問了我最後一個問題:“為什麼要開始研究HTML?”

我的回答很簡單:“因為我可以。”

在任何系統中都添加一些奇特的後門通路權限是不值得的,因為您可以押注有人會找到它的底價。 無論多麼晦澀難懂,代碼分析(通常隻是探測和戳戳)通常會産生最令人驚訝和有趣的結果。

3.在每個頁面上(不僅在登入頁面上)對使用者進行身份驗證。

在我職業生涯的某一時刻,我參與了一個由經驗豐富的開發人員實施的軟體開發項目。 我對這個特定的應用感到有些不滿意,是以我告訴經理,我們需要對代碼進行深入的安全審查。 無論如何,我被要求看一下我能找到什麼。 我開始使用該應用程式,登入并檢視了一些資料。 然後我發現了一些非常有趣的東西。

如果我将其中一個URL标記為書簽,則可以将其複制并粘貼到另一個浏覽器中,然後再繁榮起來! 我會在那裡,而無需登入。我問開發人員,“為什麼不檢查每個頁面上的登入名?如果我隻是在系統中進一步輸入頁面的URL,則無需登入即可到達那裡。在。” 他問:“你為什麼要這麼做?”

我回答:“因為我可以。”

不要遺漏任何東西

即使是經驗豐富的開發人員也可能犯這些錯誤。 他們認為有人永遠不會嘗試深入研究他們沒有真正通路權限的系統。 問題是人們會刺腳,他們會戳。 我隻是涉足安全領域,我想在這裡傳達的首要建議是:不要讓任何事情碰運氣。 像我這樣的人在那裡,他們喜歡深入研究事物,看看他們為什麼以及如何工作。 但是,也有很多人會挖掘利用您的缺陷和漏洞。

為什麼? 因為他們可以!

下載下傳DevSecOps入門指南

接下來要讀什麼

翻譯自: https://opensource.com/article/17/6/3-security-musts-software-developers

國家注冊軟體安全開發人員