2010-03-31 131 views
9

我在微軟(http://microsoft.com/sdl)的一個名爲安全開發生命週期(SDL)項目的項目上工作 - 簡而言之,它是一組產品組在發佈產品以幫助提高安全性之前必須使用的一套實踐。您採用哪些安全軟件開發實踐?

在過去的幾年裏,我們發佈了大量的SDL文檔,因爲客戶需要更多關於我們正在做什麼的信息。

但我想知道的是:

  1. 你在你的組織中如何幫助提高產品的安全性?
  2. 什麼可行?什麼不行?
  3. 你是怎麼讓管理層同意這項工作的?

感謝。

+7

我認爲這是一個好人的好問題。微軟的軟件被部署到大量的用戶,並且在安全性方面趨於好轉(例如,比較IIS 4到IIS 7)。我認爲最近最近的攻擊焦點集中在Adobe Reader上,這是對攻擊微軟產品變得越來越難的一種承認。微軟決不是完美的,但他們已經吸取了一些教訓,並且正在變得更好。 – 2010-03-31 21:48:01

+0

@Jeff Moser那麼在pwn2own的Windows 7上,新的IE 8 0天怎麼樣?當他們的軟件不斷被破壞時,微軟說的毫無意義。我看到的只是Exploit之後的Exploit,絕對沒有任何改變。 – rook 2010-04-05 23:00:26

+2

@ TheRook:只要您的產品被數億用戶使用,您就會成爲目標。安全性很難,需要大量的縱深防禦策略。這是一場非常不對稱的戰鬥,你必須防禦一切,攻擊者只需要找到一個弱點。此外,有了這樣一個廣泛的用戶社區,你必須做很多回歸測試來驗證修復。這很難,我讚揚像邁克爾這樣誠實的人。 讓我們拋開火焰戰爭的傾向,通過指出良好的實踐並幫助社區來公平地解決這個問題。 – 2010-04-06 14:48:18

回答

0

我們認爲在我們編碼之前。奇怪的是,它避免了許多錯誤,包括那些可能被敵方利用並且此後被稱爲「安全漏洞」的錯誤。

訣竅的一部分是不讓任何人靠近鍵盤,除非他擁有豐富的經驗和專業知識。

+0

更多的經驗並不總是更好。例如,懸掛指針攻擊甚至還沒有5年,但它們被用來在Windows 7下利用IE。一位熟悉緩衝區溢出的高級程序員很可能會錯過新的開發技術。 – rook 2010-03-31 21:37:14

+0

這就是爲什麼防禦非常重要 - 隨着新的技術不斷創建,你永遠無法100%獲得100%的代碼。 – 2010-04-08 05:44:51

2

老實說,讀your book是一個好的開始。 :-)

在回答你的問題:

  1. 加密是我的愛好,我有時在博客(例如在TLSAES)。在編寫我自己的AES實現之後,我學會了足夠的知道,除非有合理的疑問,我絕不應該使用自己的實現,而是使用CryptoAPI和OpenSSL傢伙編寫的實現。

    • Code reviews其中擅長安全問題的人被標記爲需要。
    • 在現場舉辦班級講座,提高對書中提及的問題的認識以及討論新問題的內部郵件列表。
    • 幾個人聽Security Now podcast以瞭解哪些類型的問題在哪裏以及受到什麼攻擊。這間接影響了設計。
  2. 除了現場課程和購買代碼審查工具,這些都不需要管理層的批准。

+0

你現在對安全有什麼看法?我發現他們使用「更安全」這個短語足以讓我認爲吉布森專注於絕對主義而不是風險管理。 – 2010-03-31 22:28:12

+0

我希望它能更深入,但很容易聽到通勤。史蒂夫比我更偏執,但我想沒關係。 – 2010-03-31 23:55:44

1

我是獨立mac開發人員,也是平臺安全傳播者:我是Wrox發佈的Pro Cocoa Application Security的作者。在這本書中,我倡導了我自己使用的安全開發技術:它基於Swiderski和Snyder威脅建模,但有兩個變化。我通過考慮哪些入口點訪問哪些資產而不使用DFD來減輕重量。我還更加關注識別用戶和濫用者,我認爲這使它更適用於收縮包裝軟件。

至於工具支持方面,我使用的Xcode靜態分析儀(基於鐺),但發現它不能檢測某些常見的漏洞。我做了文件錯誤:-)。我也總是使用gcc _FORTIFY_SOURCE宏。有沒有好的Mac風險分析工具,但我正在努力...... ;-)

我已經在Mac會議和播客的Mac開發安全發言,並獲得了大量的反饋,如果你想要我澄清我所說的或對社區反饋感興趣的任何內容,請在評論中提問。私人問題歡迎(儘管我寧願留在論壇上):iamleeg at securemacprogramming dot com。