国产99福利精品视频|杨幂精品国产福利在线|国精品午夜福利视频不卡|欧美精品黄网站在线播放|精品国产乱码久久久久久久|国产大片中文字幕在线观看|国产肥熟女视频一区二区三区|国产乱码无码视频一区二区三区

編碼漏洞:C、C++ 和Java的安全編碼?

來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-04-27 17:49:35

  對于所有類型環(huán)境中的開發(fā)人員來說,安全性正成為一個越來越重要的主題,即便過去一直認(rèn)為安全性不成問題的嵌入式系統(tǒng)也是如此。本文將介紹幾種類型的編碼漏洞,指出漏洞是什么、如何降低代碼被攻擊的風(fēng)險、如何更好地找出代碼中的此類缺陷。

  注入攻擊

  通過將信息注入正在運行的流程,攻擊者可以危害進(jìn)程的運行狀態(tài),以反射到開發(fā)人員無法保護(hù)的某種最終目標(biāo)。例如,攻擊者可能會通過堆棧溢出(stack corruption)將代碼注入進(jìn)程,從而執(zhí)行攻擊者選定的代碼。此外,攻擊者也可能嘗試將數(shù)據(jù)注入數(shù)據(jù)庫,供將來使用;或?qū)⑽词鼙Wo(hù)的字符串注入數(shù)據(jù)庫查詢,獲取比開發(fā)人員更多的信息。無論出于怎樣的目的,注入總是一件壞事,總是需要謹(jǐn)慎對待的。

  最惡劣的注入攻擊形式也許是代碼注入——將新代碼置入正在運行的進(jìn)程的內(nèi)存空間,隨后指示正在運行的進(jìn)程執(zhí)行這些代碼。此類攻擊如果成功,則幾乎可以進(jìn)行任何操作,因為正在運行的進(jìn)程完全被劫持,可執(zhí)行攻擊者希望執(zhí)行的任何代碼。

  此類攻擊最著名的示例之一就是 Windows 動畫光標(biāo)攻擊,這正是本文要討論的模式。攻擊者利用一個簡單的 Web 頁面將形式不當(dāng)?shù)膭赢嫻鈽?biāo)文件下載到查看者的 PC 中,導(dǎo)致瀏覽器調(diào)用此動畫光標(biāo),動畫光標(biāo)調(diào)用時可能發(fā)生任意代碼的注入。實際上,這是一個完美的攻擊載體:因為它不要求對被攻擊機(jī)器的任何實際訪問、最終用戶根本意識不到任何可能發(fā)生的麻煩;此外,如果攻擊效果的惡意也是適度的,則對最終用戶的外部影響幾乎是零。

  考慮示例 1(a),當(dāng)然,這改寫自 Windows 攻擊,它構(gòu)成了此類攻擊載體的基礎(chǔ)。這里的開發(fā)人員對于傳入流的可靠性做出了基本的假設(shè)。信任流和并相信一切都沒問題。使用基于堆棧的將被非串形化(deserialized)的類型調(diào)用函數(shù),未知數(shù)據(jù)流和代碼注入肯定會在某個時間點出現(xiàn)。

  (a)

  void LoadTypeFromStream(unsigned char* stream, SOMETYPE* typtr)

  {

  int len;

  // Get the size of our type's serialized form

  memcpy(&len, stream, sizeof(int));

  // De-serialize the type

  memcpy(typtr, stream + sizeof(int), len);

  }

  (b)

  void foo(unsigned char* stream)

  {

  SOMETYPE ty;

  LoadTypeFromStream(stream, &ty);

  }

  (c)

  void LoadTypeFromStream

  (unsigned char* stream, SOMETYPE* typtr)

  {

  int len;

  // Get the size of our type's serialized form

  memcpy(&len, stream, sizeof(int));

  // GUARD

  if( len < 0 || len > sizeof(SOMETYPE) )

  throw TaintedDataException();

  // De-serialize the type

  memcpy(typtr, stream + sizeof(int), len);

上一篇:Java+中什么是半靜態(tài)語言?原理及價值
下一篇:Java兩種導(dǎo)入包的機(jī)制解析

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長沙市天心區(qū)團(tuán)結(jié)路6號

Copyright © 2006 | 湖南大計信息科技有限公司 版權(quán)所有

湘ICP備14017520號-3

關(guān)注我們
在線咨詢
嘿,我來幫您!