人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

安全編程: 避開競爭條件(5)

安全編程: 避開競爭條件(5)

更新時間:2021-10-03 文章作者:未知 信息來源:網絡 閱讀次數:

網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。
信號處理

  在信號中也會發生競爭條件。程序可以注冊處理各種類型的信號,但是信號可能會在最不合適的時候出現,包括您正在處理另一個信號的時候。在一個信號處理器內部,您通常應該做的一件事是,設置一個將在以后處理的全局標記。還有幾個操作可以在信號中安全地完成,但不是很多,而且在處理信號之前,您必須對它有深入的理解。那是因為只有一些系統調用可以安全地調用內部信號:只有可重入的(re-entrant)或者不被信號中斷的調用才可以被安全地調用。您可以調用庫函數,但是只有極少數函數是被安全調用的;在一個信號處理器中調用大部分函數是出問題的主要原因,比如 free() 或者 syslog()。要獲得更多資料,請閱讀 Michal Zalewski 的名為 “Delivering Signals for Fun and Profit”的一篇文章。但是您最好只在一個信號處理器中設置標記(別的什么都不做),這勝過嘗試創建復雜的處理器。


結束語

  本文討論了什么是競爭條件,以及它為什么會導致安全問題。我們已經分析了如何正確地創建鎖文件及其替代者。還研究了如何處理文件系統,并重點討論了如何處理共享目錄,以完成在 /tmp 目錄下創建臨時文件等一些常見任務。我們還簡要地研究了信號處理,至少充分了解了使用它們的一種安全方法。

  當然,重要的是保護您的程序不受競爭條件的破壞。但是,當前的大部分程序都不能自己完成所有的事情;它們必須向其他程序庫和程序(比如命令解釋程序和 SQL 服務器)發出請求。攻擊程序使用的最常見方式之一就是利用這些程序向其他程序發出請求的方式。所以,接下來我們將分析如何在不暴露缺陷的同時去調用其他程序。


參考資料

  您可以參閱本文在 developerWorks 全球站點上的 英文原文。


  閱讀 developerWorks 上 David 的其他安全編程專欄文章。


  David 的 Secure Programming for Linux and Unix HOWTO(Wheeler,2003 年 3 月)一書詳細地介紹了如何開發安全的軟件。


  Jarno Huuskonen 于 2001 年 7 月 9 日發表了 Bugtraq email "Tripwire temporary files",給出了關于 Tripwire 1.3.1, 2.2.1 和 2.3.0 symlink / 競爭條件問題的資料。這是 CVE-2001-0774。


  CVE-2002-0435 指出了 GNU 文件實用程序中的競爭條件。


  可以在線獲得 Perl 5.8 documentation of File::Temp。


  Kris Kennaway's posting to Bugtraq about temporary files(2000 年 12 月)深入討論了臨時文件。


  Michael Zalewski 的 Delivering Signals for Fun and Profit: Understanding, exploiting and preventing signal-handling related vulnerabilities(2001 年 5 月)描述了信號處理,這是引入競爭條件的另一種方式。


  Michal Zalewski 的 Problems with mkstemp() 討論了源于自動清除臨時目錄的安全性問題。


  Security section of the GNOME Programming Guidelines 給出了關于如何創建臨時文件的合理建議。


  Single Unix Specification version 3, 2004 版,a.k.a. IEEE Std 1003.1,2004 版,是對“類 UNIX”系統必須做什么的通用說明。


  Solar Designer 的 Linux kernel patch from the OpenWall project 引入了一些有趣的安全對策,包括預防有限的一組文件系統競爭條件攻擊的附加訪問限制。更具體地講,它限制用戶使用在某些目錄下創建的不受信任的符號鏈接,并限制用戶創建指向他們不能讀寫訪問的文件的硬鏈接。


  Crispin Cowan、Steve Beattie、Chris Wright 和 Greg Kroah-Hartman 合著的 RaceGuard: Kernel Protection From Temporary File Race Vulnerabilities 一文來自 Usenix Association 的 2001 Usenix Security Symposium,介紹了 RaceGuard 這一 Linux 內核修改,它通過在運行時檢測某些攻擊來防范一些競爭條件攻擊。


  Eugene Tsyrklevich 和 Bennet Yee 的 Dynamic Detection and Prevention of Race Conditions in File Accesses 來自 12th USENIX Security Symposium(2003 年 8 月),描述了一種在文件系統中防范競爭條件的方法。他們修改了 OpenBSD 內核,以便在發現某個文件系統操作會干擾另外一個操作時,臨時掛起該操作,從而允許第一個進程對某個文件對象的訪問繼續進行。


  在 developerWorks Linux 專區中,可以找到更多為 Linux 開發者準備的參考資料。


  可以從 developerWorks 的 Speed-start your Linux app 專區下載能夠運行于 Linux 之上的、經過精挑細選的 developerWorks Subscription 產品的免費測試版本,其中包括 WebSphere® Studio Application Developer、WebSphere Application Server、DB2® Universal Database、Tivoli® Access Manager 和 Tivoli Directory Server。想更快速地開始上手,請參閱針對各種產品的 how-to 文章和技術支持。


  通過參與 developerWorks blogs 加入到 developerWorks 社區。


  可以在 Developer Bookstore Linux 專欄中定購 打折出售的 Linux 書籍。


網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 临西县| 浙江省| 武鸣县| 维西| 苗栗市| 贵南县| 江西省| 绍兴市| 拜城县| 桐庐县| 禄丰县| 浦北县| 天柱县| 攀枝花市| 岑巩县| 扶余县| 永寿县| 南漳县| 西乌珠穆沁旗| 邻水| 铜梁县| 锡林浩特市| 改则县| 辽源市| 抚州市| 商南县| 洪江市| 宝鸡市| 潼南县| 乐安县| 泰顺县| 防城港市| 紫阳县| 墨脱县| 谢通门县| 蒙阴县| 鄂尔多斯市| 邹城市| 徐闻县| 余江县| 化隆|