怎么防止代碼注入


危害:
通過OS特定技術,將代碼寫入到目標進程並讓其執行的技術。攻擊者可以將一段惡意代碼寫到目標進程,這段代碼可以加載其它可執行程序,進而實施hook,監控程序運行行為、獲取敏感信息等。
對於金融客戶端,可通過代碼注入技術,將惡意代碼注入到客戶端中,竊取輸入的登錄賬號、密碼、支付密碼,修改轉賬的目標賬號、金額,竊取通訊數據等。

請教如何防止代碼注入

54 个解决方案

#1


自已的程序hook Openprocess,發現句柄是你自己就返回異常

#2


引用 1 樓 llxxhm 的回復:
自已的程序hook Openprocess,發現句柄是你自己就返回異常

大神,能具體說一下么,新手不太明白啊。。。

#3


好問題,坐等大牛解答

#4


該回復於2014-06-20 15:51:20被管理員刪除

#5


引用 1 樓 llxxhm 的回復:
自已的程序hook Openprocess,發現句柄是你自己就返回異常

求大神解答

#6


該回復於2014-06-20 16:06:58被管理員刪除

#7


大神都在上班么。。。

#8


在這個論壇的基本都是上班一族吧!應該只有下班空閑時間才能看帖子。

#9


缺少人氣啊,,來這里看看。。。

#10


該回復於2014-06-21 10:30:54被管理員刪除

#11


這個動作,會不會直接被殺毒軟件給殺了?

引用 1 樓 llxxhm 的回復:
自已的程序hook Openprocess,發現句柄是你自己就返回異常

#12


該回復於2014-06-21 10:21:49被管理員刪除

#13


#14


好像可以去看雪論壇潛水一周哦。一周后大概就有答案了。

#15



UP

#16


該回復於2014-06-21 09:34:03被管理員刪除

#17


該回復於2014-06-21 10:01:14被管理員刪除

#18


learning

#19


該回復於2014-06-21 12:03:36被管理員刪除

#20


該回復於2014-06-21 14:21:38被管理員刪除

#21


up

#22


好東西 收藏了

#23


這是黑客的做法啊。

#24


linux下應該也有類似Hook技術吧

#25


得坐牢的,哈哈

#26


這個有意思,Mark一個。

話說,這貼中怎么那么多被刪除的回復?

#27


#28


先逛逛學習學習

#29


進程注入沒辦法防止的。

至於通過注入獲取用戶帳號和密碼,這個是可以防止的
重載密碼控件,對密碼進行n次md5 然后提交
這樣黑客就是通過GetWindowText獲取到了窗口內容也無法利用賬號進行交易。
畢竟服務器是對密碼原碼進行n次md5后的內容進行校驗的,這n是黑客沒辦法直接知道的
只能嘗試,對於金融系統來說,嘗試的次數是有限制的,一般是3次失敗就直接鎖定帳號。

網絡傳輸可以采用加密,在賬號登陸成功之間就建立加密連接,可以100%保證加密的安全,如果采用類似rsa認證,就是公司內部員工出賣協議文檔,也沒辦法進行破解。

最終就是進程代碼注入,被注入者是可以自己進行預防的,就是檢查自身線程數量或線程句柄,正常情況下自身創建的線程可能是不固定的,但是完全可以采用一個簡單的鏈表進行記錄,發現非法線程,進程自身立馬自鎖並報警(,必要時可以主動自毀,然后發送錯誤報告),這樣就可以保證金融軟件客戶端的自身安全。

至於什么hook openprocess的做法完全就是搞笑了,為了一個簡單的安全功能去開發驅動技術沒有必要(,我了解不通過驅動也可以hook系統dll,但是你沒辦法繞過殺毒軟件不是!!!),所以做功能不要舍近求遠的追求技術上的突破,畢竟用簡單的辦法把問題解決才是最有效的辦法。

#30


有2個方法:
1, 在3環寫個鈎子, hook 掉 OpenProcess函數, 覺得不保險再hook幾個相關函數, 比如CreateRemoteThread(創建遠程線程)
2,在0環做內核保護程序, 保護你的進程防止黑客打開

涉及的技術內容不少,  自己百度吧

#31


坐等大牛解答

#32


只要不是通過你的程序漏洞注入的,那即使用戶發生了損失也和你無關.
而通過其他途徑注入了,你一個普通應用程序也做不了什么.
或者你是想問怎么開發一個卡巴斯基?

#33


引用 32 樓 sj178220709 的回復:
只要不是通過你的程序漏洞注入的,那即使用戶發生了損失也和你無關.
而通過其他途徑注入了,你一個普通應用程序也做不了什么.
或者你是想問怎么開發一個卡巴斯基?

就是普通程序根本不用考慮注入的事唄?用戶賬號密碼很容易就丟失了也跟開發無所謂唄?然后把錯誤歸給用戶操作環境不安全?

#34


#35


留着看看

#36



好像很厲害的樣子

#37


引用 29 樓 chinacoding 的回復:
進程注入沒辦法防止的。

至於通過注入獲取用戶帳號和密碼,這個是可以防止的
重載密碼控件,對密碼進行n次md5 然后提交
這樣黑客就是通過GetWindowText獲取到了窗口內容也無法利用賬號進行交易。
畢竟服務器是對密碼原碼進行n次md5后的內容進行校驗的,這n是黑客沒辦法直接知道的
只能嘗試,對於金融系統來說,嘗試的次數是有限制的,一般是3次失敗就直接鎖定帳號。

網絡傳輸可以采用加密,在賬號登陸成功之間就建立加密連接,可以100%保證加密的安全,如果采用類似rsa認證,就是公司內部員工出賣協議文檔,也沒辦法進行破解。

最終就是進程代碼注入,被注入者是可以自己進行預防的,就是檢查自身線程數量或線程句柄,正常情況下自身創建的線程可能是不固定的,但是完全可以采用一個簡單的鏈表進行記錄,發現非法線程,進程自身立馬自鎖並報警(,必要時可以主動自毀,然后發送錯誤報告),這樣就可以保證金融軟件客戶端的自身安全。

至於什么hook openprocess的做法完全就是搞笑了,為了一個簡單的安全功能去開發驅動技術沒有必要(,我了解不通過驅動也可以hook系統dll,但是你沒辦法繞過殺毒軟件不是!!!),所以做功能不要舍近求遠的追求技術上的突破,畢竟用簡單的辦法把問題解決才是最有效的辦法。



你自己試過沒,不要胡亂誤導人。

“簡單的安全功能”,安全功能很簡單?
“密碼控件重載”就獲取不到密碼了?服務器端對密碼進行N次MD5是沒錯,問題是他這個是對最初的明文進行MD5的,你MD5再多次,明文都已經被截取了有什么用?
能在用戶態攔截到密碼的那都是裸奔程序,安全控件都是驅動級的,與攔截器對抗也是看雙方在驅動級調用鏈上誰處於更底層誰獲勝,誰先在驅動級獲取到用戶輸入,誰就可以欺騙上層掛載的驅動

#38


引用 29 樓 chinacoding 的回復:
進程注入沒辦法防止的。

至於通過注入獲取用戶帳號和密碼,這個是可以防止的
重載密碼控件,對密碼進行n次md5 然后提交
這樣黑客就是通過GetWindowText獲取到了窗口內容也無法利用賬號進行交易。
畢竟服務器是對密碼原碼進行n次md5后的內容進行校驗的,這n是黑客沒辦法直接知道的
只能嘗試,對於金融系統來說,嘗試的次數是有限制的,一般是3次失敗就直接鎖定帳號。

網絡傳輸可以采用加密,在賬號登陸成功之間就建立加密連接,可以100%保證加密的安全,如果采用類似rsa認證,就是公司內部員工出賣協議文檔,也沒辦法進行破解。

最終就是進程代碼注入,被注入者是可以自己進行預防的,就是檢查自身線程數量或線程句柄,正常情況下自身創建的線程可能是不固定的,但是完全可以采用一個簡單的鏈表進行記錄,發現非法線程,進程自身立馬自鎖並報警(,必要時可以主動自毀,然后發送錯誤報告),這樣就可以保證金融軟件客戶端的自身安全。

至於什么hook openprocess的做法完全就是搞笑了,為了一個簡單的安全功能去開發驅動技術沒有必要(,我了解不通過驅動也可以hook系統dll,但是你沒辦法繞過殺毒軟件不是!!!),所以做功能不要舍近求遠的追求技術上的突破,畢竟用簡單的辦法把問題解決才是最有效的辦法。

哥們,做過G么?你這分析未免有點那個啥,客戶端輸入一個字符md5一次?還是n次?那后面輸入的就不知道前面輸入啥了,你不用數組保存?你保存的數組不會被竊取?人家子類化就把你全搞掉了。RSA?SSL?今年爆出來的ssl漏洞是啥?在建立ssl之前就弄個代理搞死如何?監控線程?我都不用線程咋監控?
未免把安全想得太簡單了。做這么年內也沒發現一個完全安全的方法實現一個軟件

#39


關注一下,畢竟軟件的安全是很重要的

#40


該回復於2014-06-23 16:26:09被管理員刪除

#41


引用 37 樓 hemaliu 的回復:
Quote: 引用 29 樓 chinacoding 的回復:

進程注入沒辦法防止的。

至於通過注入獲取用戶帳號和密碼,這個是可以防止的
重載密碼控件,對密碼進行n次md5 然后提交
這樣黑客就是通過GetWindowText獲取到了窗口內容也無法利用賬號進行交易。
畢竟服務器是對密碼原碼進行n次md5后的內容進行校驗的,這n是黑客沒辦法直接知道的
只能嘗試,對於金融系統來說,嘗試的次數是有限制的,一般是3次失敗就直接鎖定帳號。

網絡傳輸可以采用加密,在賬號登陸成功之間就建立加密連接,可以100%保證加密的安全,如果采用類似rsa認證,就是公司內部員工出賣協議文檔,也沒辦法進行破解。

最終就是進程代碼注入,被注入者是可以自己進行預防的,就是檢查自身線程數量或線程句柄,正常情況下自身創建的線程可能是不固定的,但是完全可以采用一個簡單的鏈表進行記錄,發現非法線程,進程自身立馬自鎖並報警(,必要時可以主動自毀,然后發送錯誤報告),這樣就可以保證金融軟件客戶端的自身安全。

至於什么hook openprocess的做法完全就是搞笑了,為了一個簡單的安全功能去開發驅動技術沒有必要(,我了解不通過驅動也可以hook系統dll,但是你沒辦法繞過殺毒軟件不是!!!),所以做功能不要舍近求遠的追求技術上的突破,畢竟用簡單的辦法把問題解決才是最有效的辦法。



你自己試過沒,不要胡亂誤導人。

“簡單的安全功能”,安全功能很簡單?
“密碼控件重載”就獲取不到密碼了?服務器端對密碼進行N次MD5是沒錯,問題是他這個是對最初的明文進行MD5的,你MD5再多次,明文都已經被截取了有什么用?
能在用戶態攔截到密碼的那都是裸奔程序,安全控件都是驅動級的,與攔截器對抗也是看雙方在驅動級調用鏈上誰處於更底層誰獲勝,誰先在驅動級獲取到用戶輸入,誰就可以欺騙上層掛載的驅動


正解,真正需要做到安全,恐怕需要避開字符密碼這類技術或者從硬件入手了!

#42


看起來好厲害的樣子...

#43


#44


矛與盾的關系,不能絕對防御,但是可以做一些暗裝。猥瑣的檢測到之后做點什么。

#45


網絡上沒有絕對安全的東西,只有更安全的!!

#46


果然是好帖,引出一些大牛。沒有絕對安全的技術,支付寶還承認有10萬分之1的用戶,發生過因為安卓客戶端安全性問題導致錢被盜了。

#47


強..............

#48


學習下。。。

#49


關注,學習學習

#50


深奧。。應該可以入注的,只有大神才有解決方案

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



防止注入的代碼 Java防止路徑操控和命令注入 代碼 防止網站被旁路注入
 
粤ICP备14056181号  © 2014-2021 ITdaan.com