精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入分析TIMA任意內核模塊認證繞過漏洞

安全 漏洞
為了確保Android設備中Linux內核的完整性,三星推出了一個名為“lkmauth”的功能。每當內核嘗試載入內核模塊時,系統就會用到“lkmauth”功能。

[[181702]]

前言

為了確保Android設備中Linux內核的完整性,三星推出了一個名為“lkmauth”的功能。該功能的最初目的是,確保只有三星核準的那些內核模塊才可以加載到Linux內核中。

TIMA任意內核模塊認證繞過漏洞分析

每當內核嘗試載入內核模塊時,系統就會用到“lkmauth”功能。在加載內核模塊之前,內核首先會加載“lkmauth”的trustlet,并發送一個請求,來驗證模塊的完整性。

由于三星設備使用了兩個不同的TEE,所以對于每個TEE都單獨實現了相應的“lkmauth”功能。

在使用QSEE TEE(它使用了內核配置TIMA_ON_QSEE)的設備上,使用“tima_lkmauth”的trustlet來驗證待加載的內核模塊的完整性。當然,這個trustlet本身是相當簡單的——它提供了一個硬編碼的列表,來保存所有“可允許”的內核模塊的SHA1哈希值。如果當前待加載的內核模塊的SHA1沒有出現在硬編碼的列表中,那么它就會被拒絕。

對于使用MobiCore TEE(使用內核配置TIMA_ON_MC20)的設備而言,它們會通過“ffffffff00000000000000000000000b.tlbin”trustlet來驗證待加載內核模塊的完整性。然而,在這種情況下,其流程會稍微有點復雜,下面簡單介紹加載模塊的具體步驟:

  1. [如果trustlet尚未加載]:加載trustlet。
  2. [如果已批準的哈希值列表尚未加載]:向trustlet發送請求,以便加載已批準的SHA1哈希簽名列表。
  3. 將存放內核模塊的緩沖區傳遞給trustlet進行驗證。如果該內核模塊的SHA1哈希值不在先前加載的已批準哈希值列表中,則會被拒絕。

已經批準的模塊的哈希值組成的列表,將作為設備固件的一部分,存儲在文件“/system/lkm_sec_info”中。該文件的結構如下所示:

  1. <LIST_OF_APPROVED_SHA1_HASHES> || <RSA-SHA1(LIST_OF_APPROVED_HASHES)> 

RSA簽名本身會使用PKCS#1 v1.5進行填充,其中BT = 1,PS是0xFF字節的常量字符串。

用于驗證簽名的公鑰,我們可以通過靜態分析方法從trustlet中找到。在trustlet的自身代碼中,2048位的模數(N)是以反向字節順序硬編碼的形式存在的。經驗證,在許多不同的設備和版本(如GT-I9300、SM-P600、SM-G925V等)中,都使用了相同的常量模量。這個模數本身是

  1. 23115949866714941391353337177289175219285878274139282906616665210063884406381659531323213685988661310147714551519208211866717752764819593136041821730036424774768373518089158559738346399417711215445691103520271683108620470478217421253901045241463596145712323679479119182170178158376677146612087823704797563128645982031650495998390419939015769566125776929249878666421780560391442439477189264423758971325406632562977618217815844688082799802924540355522191958147326121713251815752299744182840538928330568160188518794896256711464745438125835732128172016078553039694575936536720388879378619731459541542508235684590815108447 

這里使用的公鑰指數為3。

發送到trustlet的請求緩沖區具有以下結構:

  1. /* Message types for the lkmauth command */ 
  2. typedef struct lkmauth_hash_s { 
  3. uint32_t cmd_id; 
  4. uint32_t hash_buf_start;/* starting address of buf for ko hashes */ 
  5. uint32_t hash_buf_len;/* length of hash buf, should be multiples of 20 bytes */ 
  6. uint8_t ko_num;/* total number ko */ 
  7. } __attribute__ ((packed)) lkmauth_hash_t; 

通過對trustlet中處理這個命令的代碼進行逆向工程,得到了處理函數高級邏輯代碼,具體如下所示:

  1. int load_hash_list(char* hash_buf_start, uint32_t hash_buf_len, uint8_t ko_num) { 
  2.   //Checking the signature of the hash buffer, without the length of the 
  3.   //public modulus (256 bytes = 2048 bits) 
  4.   uint32_t hash_list_length = hash_buf_len - 256; 
  5.   char* rsa_signature_blob = hash_buf_start + hash_list_length; 
  6.   if (verify_rsa_signature(hash_buf_start, hash_list_length, rsa_signature_blob)) 
  7.     return SIGNATURE_VERIFICATION_FAILURE; 
  8.   //Copying in the verified hashes into the trustlet 
  9.   //SHA1 hashes are 20 bytes long (160 bits) each 
  10.   //The maximal number of copied hashes is 0x23 
  11.   //g_hash_list is a list in the BSS section of the trustlet 
  12.   //g_num_hashes is also in the BSS section of the trustlet 
  13.   uint8_t i; 
  14.   for (i=0; i<ko_num && i<0x23; i++) { 
  15.     memcpy(g_hash_list + i*20, hash_buf_start + i*20, 20); 
  16.   } 
  17.   g_num_hashes = i
  18.   return SUCCESS; 

問題在于,上述代碼包含了一個邏輯缺陷:沒有對“ko_num”字段進行相應的驗證,以確保其匹配哈希值列表的實際長度。這意味著攻擊者能夠欺騙trustlet來加載額外的“允許哈希值”,即使它們不是已經簽名的blob的一部分。為此,可以在提供與哈希值列表的原始長度匹配的"hash_buf_len"的時候,通過提供一個大于實際哈希值數量的“ko_num”字段來達到這一目的。然后,攻擊者可以在緩沖器中的簽名blob之后提供任意的SHA1哈希值,從而導致這些額外的哈希值也會被復制到已經批準的可信哈希值列表中。

下面給出此類攻擊的一個具體例子:

  1. hash_buf_start = <ORIGINAL_SIGNED_HASH_LIST> || 
  2.                    <RSA-SHA1(ORIGINAL_SIGNED_HASH_LIST)> || 
  3.                    <4 GARBAGE BYTES> || 
  4.                    <ATTACKER_CONTROLLED_SHA1_HASH> 
  5.   hash_buf_len = len(<ORIGINAL_SIGNED_HASH_LIST>) + 
  6.                  len(<RSA-SHA1(ORIGINAL_SIGNED_HASH_LIST)>
  7.   ko_num = (<ORIGINAL_SIGNED_HASH_LIST>/20) + ceil(256/20) + 1 

由于“/system/lkm_sec_info”中的原始哈希值列表長度總是很短(例如從來不超過8)的,因此表達式(( / 20)+ ceil(256/20)+1)的值永遠不會大于22。但是它仍然小于0x23(35)個哈希值的硬編碼下限,這意味著上面的代碼能夠正常執行所提供的命令。此后,已批準的哈希值列表將會變成如下所示的結構:

  1. original_approved_hash_1 
  2. original_approved_hash_2 
  3. ... 
  4. original_approved_hash_n 
  5. bytes_00_to_20_of_rsa_signature 
  6. bytes_20_to_40_of_rsa_signature 
  7. ... 
  8. bytes_240_to_256_of_rsa_signature || 4_garbage_bytes 
  9. attacker_controlled_sha1_hash 

實際上,這就將攻擊者控制的SHA1哈希值插入到了已批準的哈希值列表中,從而成功繞過了簽名驗證。

該漏洞的一種利用方法是,控制一個可以加載內核模塊的進程,然后將感染的哈希值列表請求發送給trustlet。例如,“system_server”進程就具有這種能力,同時還能夠加載trustlet,并與之進行通信(我們已經在SM-G925V的默認SELinux策略中進行了相應的驗證):

  1. allow system_server mobicore-user_device : chr_file { ioctl read write getattr lock append open } ;  
  2. allow system_server mobicoredaemon : unix_stream_socket connectto ;  
  3. allow system_server mobicore_device : chr_file { ioctl read write getattr lock append open } ; 

將受感染的哈希值列表加載到trustlet之后,攻擊者就可以嘗試加載與剛才插入到列表中的SHA1哈希值相匹配的內核模塊了。需要注意的是,加載模塊的第一次嘗試將會失敗,因為內核將嘗試加載已批準的哈希值列表本身,但是trustlet將檢測到此情況并返回錯誤代碼RET_TL_TIMA_LKMAUTH_HASH_LOADED。這樣的話,內核會做一個標記,指出列表已經加載好了——也就是說,下一次加載模塊的時候,就不會重新加載這個列表了:

  1. ... 
  2. else if (krsp->ret == RET_TL_TIMA_LKMAUTH_HASH_LOADED) { 
  3.   pr_info("TIMA: lkmauth--lkm_sec_info already loaded\n"); 
  4.   ret = RET_LKMAUTH_FAIL
  5.   lkm_sec_info_loaded = 1
  6. ... 

之后,第二次嘗試加載已經感染的模塊的時候,就會成功了,因為它的哈希值已經位于已批準的哈希值列表中了。

責任編輯:趙寧寧 來源: 安全客
相關推薦

2019-07-08 20:00:35

Linux內核模塊

2010-01-22 11:01:04

linux內核模塊

2009-12-11 09:47:23

Linux內核源碼進程調度

2009-12-11 09:42:54

Linux內核源碼進程調度

2009-12-17 15:28:32

內核模塊編譯

2017-09-28 10:12:51

2010-11-26 13:10:17

2010-04-12 11:19:47

編譯內核模塊

2023-05-08 08:05:42

內核模塊Linux

2018-06-19 09:07:57

Linux內核模塊

2010-09-07 14:21:22

PPPoE協議

2022-04-12 08:30:45

TomcatWeb 應用Servlet

2011-03-23 11:01:55

LAMP 架構

2021-09-03 08:44:51

內核模塊Linux社區

2010-09-29 14:21:22

2010-03-08 14:53:48

Linux分區

2023-02-01 08:13:30

Redis內存碎片

2025-09-16 10:57:31

2011-09-01 13:51:52

JavaScript

2009-12-14 14:50:46

Ruby傳參數
點贊
收藏

51CTO技術棧公眾號

99视频在线观看免费| 国产美女高潮视频| 三上悠亚国产精品一区二区三区| 久久久久久99久久久精品网站| 国产精品99久久久久久久久久久久| 手机看片日韩av| 亚洲高清在线一区| 色婷婷久久一区二区三区麻豆| 伊人精品久久久久7777| 亚洲第一页在线观看| 久久精品官网| 欧美极品欧美精品欧美视频| 国产美女永久免费无遮挡| 欧美专区视频| 欧美在线一区二区三区| 无码 制服 丝袜 国产 另类| 97视频精彩视频在线观看| 国产成a人亚洲| 国产精品偷伦一区二区| 亚欧洲精品在线视频| 日韩av在线播放网址| 亚洲国产欧美一区二区丝袜黑人| 在线观看免费的av| 久久精品女人天堂av免费观看 | 黄色一级片在线免费观看| 国产一区二区区别| 亚洲国产成人久久综合一区| 911av视频| 日韩在线免费| 婷婷综合在线观看| 国产精品视频网站在线观看| 91se在线| 中文字幕欧美日本乱码一线二线| 久久99导航| 狠狠综合久久av一区二区| 久久66热re国产| 国产精品久久久久77777| 国产成人在线观看网站| 午夜日韩激情| 久久这里只有精品99| 欧美a在线播放| 国产一区二区欧美| 亚洲视频在线免费看| 欧美图片一区二区| 亚洲伊人春色| 亚洲精品美女视频| 91精品小视频| 欧美理论电影在线精品| 亚洲国产精品小视频| 国产亚洲精品成人a| 麻豆久久一区| 日韩欧美国产午夜精品| 欧美性猛交乱大交| 精品一区二区三区四区五区 | 国产mv久久久| 黄色片视频免费| 日韩精品国产精品| 国产精品成人免费电影| 日本成人一级片| 欧美aaa在线| 成人精品久久一区二区三区| 国产男女无套免费网站| 国产精品资源在线观看| 国产精品sss| 香港一级纯黄大片| 久久综合久色欧美综合狠狠| 免费在线观看91| 国产永久免费高清在线观看| 国产精品无人区| 久久99国产精品一区| 香蕉成人app免费看片| 亚洲午夜在线电影| 国产在线青青草| 欧洲av一区二区| 欧美一区二区不卡视频| 国产成人精品一区二区三区在线观看| 风间由美性色一区二区三区四区| 日韩精品免费看| jizz18女人高潮| 欧美久久综合| 热久久99这里有精品| 少妇一级淫片日本| 国产精品中文字幕日韩精品| 精品欧美一区二区三区久久久| 精品欧美不卡一区二区在线观看 | 国产精品99久久免费观看| 日韩国产在线看| аⅴ天堂中文在线网| 在线成人直播| 2019中文字幕免费视频| 中文字幕在线观看视频一区| 国产成人精品三级| 蜜桃久久影院| 99在线播放| 欧美视频在线视频| www.久久久久久久久久久| 一区二区三区视频播放| 亚洲一区二区久久久| 日韩高清dvd碟片| 国产精品美女| 亚洲一区二区久久久久久久| 日本韩国一区| 亚洲尤物视频在线| 九热视频在线观看| 国产精品99久久免费观看| 少妇激情综合网| 成人免费视频毛片| 国产精品1区2区| 日本一区免费在线观看| 免费网站在线观看人| 欧美日韩一区二区三区视频 | 中文字幕的久久| 韩国无码av片在线观看网站| 精品久久在线| 亚洲性无码av在线| 免费视频一二三区| 久久精品999| 欧美成人dvd在线视频| 日本aa在线| 欧美精品久久天天躁| 丰腴饱满的极品熟妇| 一区在线播放| 4444kk亚洲人成电影在线| 国产免费av在线| 懂色av影视一区二区三区| 亚洲妇女无套内射精| 欧美激情777| 国产999精品久久久| 超碰人人干人人| 亚洲av少妇一区二区在线观看| 国产麻豆精品一区二区| 亚洲国产综合自拍| 亚洲精品mv| 亚洲第一福利网| 久草视频免费播放| 国产一区二区伦理片| 日本一区美女| 欧美成人资源| 国产一区二区日韩精品欧美精品| 日本高清不卡码| 91在线观看一区二区| 国产又黄又爽免费视频| 精品176极品一区| 色偷偷噜噜噜亚洲男人的天堂| 无码人妻一区二区三区线| 久久综合九色综合欧美就去吻| 免费一级特黄毛片| 国产美女撒尿一区二区| 久久人人97超碰精品888| 日本xxxxwww| 亚洲成人av电影在线| 日本不卡视频一区| 一本久道久久综合婷婷鲸鱼| 韩国成人一区| 欧美xoxoxo| 中文字幕欧美国内| 国产美女明星三级做爰| 亚洲免费看黄网站| 制服丝袜在线第一页| 日韩视频一区| 欧美性色黄大片人与善| 成人欧美大片| 这里只有视频精品| 一级黄色片在线| 亚洲码国产岛国毛片在线| 免费看91视频| 免费日韩一区二区| 日韩在线三级| 在线免费成人| 久久欧美在线电影| 国产三级在线| 欧美顶级少妇做爰| 99鲁鲁精品一区二区三区| 国产福利一区二区三区视频在线| h无码动漫在线观看| 日韩精品导航| 国产欧美精品va在线观看| 亚洲精品白浆| 亚洲欧美日韩国产中文专区| 中文字幕免费观看视频| 亚洲男女毛片无遮挡| 97人妻精品一区二区三区免 | 亚洲激情男女视频| 小毛片在线观看| 日本成人中文字幕在线视频| 中文字幕乱码免费| 午夜精品影视国产一区在线麻豆| 国产精品久久久久av免费| 91精品久久久久久粉嫩| 日韩国产高清污视频在线观看| 在线免费观看日韩视频| 偷窥少妇高潮呻吟av久久免费| 快灬快灬一下爽蜜桃在线观看| 国产高清精品久久久久| 韩国中文字幕av| 国户精品久久久久久久久久久不卡| 欧美成人蜜桃| 亚洲三区欧美一区国产二区| 国产成人啪精品视频免费网| 性xxxfreexxxx性欧美| 国产性色av一区二区| 性猛交富婆╳xxx乱大交天津| 精品福利在线视频| 国产传媒免费在线观看| 久久亚洲捆绑美女| 好吊操视频这里只有精品| 久久精品国产亚洲一区二区三区 | 日本视频免费一区| www..com日韩| 国产韩国精品一区二区三区| 精品中文字幕一区| 精品国产亚洲一区二区在线观看| 国产成人91久久精品| 牛牛电影国产一区二区| 国产亚洲视频在线观看| 黄色www视频| 91精品国产一区二区三区蜜臀 | 中日韩一级黄色片| 26uuu亚洲综合色| 久久久精品人妻一区二区三区| 美女性感视频久久| 国产肥臀一区二区福利视频| 精品成人免费| 超碰人人爱人人| 99久久这里只有精品| 日本一区免费| 激情婷婷综合| 日韩av电影免费播放| 亚洲成人一品| 久久精品中文字幕一区二区三区| 一区二区三区四区精品视频| 7777奇米亚洲综合久久| 91精品国产一区二区在线观看| 国产精品旅馆在线| 欧美日韩激情电影| 国产福利精品视频| 六月婷婷综合| 日本一区二区不卡| av有声小说一区二区三区| 欧亚精品中文字幕| 伊人久久国产| 日本高清+成人网在线观看| 性xxxxfreexxxxx欧美丶| 午夜精品久久久99热福利| 国产经典三级在线| 欧美激情精品久久久久久大尺度| 中文字幕在线播放网址| 欧美日韩xxx| 久久亚洲资源| 97精品在线视频| 免费成人动漫| 国产成人久久精品| 国产精品毛片久久久久久久久久99999999| 欧美亚洲第一页| 欧美羞羞视频| 国产一区二区在线播放| 粉嫩一区二区三区在线观看| 91在线高清免费观看| 欧美影院精品| 精品国产免费一区二区三区 | 999精品嫩草久久久久久99| 91免费国产视频| 哺乳挤奶一区二区三区免费看| 国产精品区一区| 日韩极品少妇| 日韩欧美电影一区二区| 欧美韩国日本在线观看 | 午夜在线视频一区二区区别| 亚洲色精品三区二区一区| 久久精品国产一区二区三区免费看 | 91亚洲天堂| 26uuu国产精品视频| 久久91视频| 99久久精品无码一区二区毛片 | 欧美xoxoxo| 成人h视频在线| 成人动漫视频| 日韩精品成人一区二区在线观看| 欧美1级片网站| 777av视频| 秋霞电影网一区二区| 欧美熟妇另类久久久久久多毛| av动漫一区二区| 亚洲女人毛茸茸高潮| 亚洲一区二区五区| 懂色av蜜臀av粉嫩av分享吧最新章节| 欧美日韩国产综合视频在线观看| www.色日本| 亚洲视频欧洲视频| 色yeye免费人成网站在线观看| 4438全国亚洲精品在线观看视频| 国产精品亲子伦av一区二区三区| 成人av资源网| 欧美精品一区二区三区精品| 国产传媒久久久| 日韩av一级片| 水蜜桃av无码| 国产精品福利影院| 综合激情网五月| 欧美一级电影网站| 黄视频在线播放| 欧美国产日韩视频| av成人在线播放| 精品久久久久久一区| 国产电影一区二区在线观看| 欧美日韩国产精品激情在线播放| 紧缚捆绑精品一区二区| 亚洲国产天堂av| 大伊人狠狠躁夜夜躁av一区| 国产精品无码一区二区桃花视频| 精品中文字幕久久久久久| 亚洲h片在线看| 国产在线视频一区| 欧美综合在线视频观看 | 在线观看特色大片免费视频| av一区二区三区在线观看| 日韩在线观看电影完整版高清免费悬疑悬疑 | 艳妇乳肉豪妇荡乳xxx| 自拍偷拍亚洲激情| 日韩中文字幕高清| 亚洲精品在线不卡| 91福利在线免费| 岛国一区二区三区高清视频| 亚洲电影在线一区二区三区| 高清一区在线观看| 国产日韩av一区二区| 日韩视频在线观看一区| 亚洲国产精品专区久久| 欧美人与禽猛交乱配| 18成人免费观看网站下载| 欧美国产一级| 天天综合网久久| 中文字幕第一区| 曰批又黄又爽免费视频| 亚洲最大中文字幕| 免费观看成人性生生活片| 欧美不卡福利| 日韩二区在线观看| av男人的天堂av| 欧美午夜影院一区| av一本在线| 国产精品一区av| 天天天综合网| 99精品视频国产| 亚洲自拍偷拍欧美| 欧美一区二区三区成人片在线| 欧美夫妻性视频| 成人午夜大片| 国产男女无遮挡| 国产日韩欧美精品综合| 欧美人一级淫片a免费播放| 中文字幕在线观看日韩| 日韩国产大片| 日本在线视频www色| 国产一区激情在线| 久久久国产精品黄毛片| 亚洲二区在线播放视频| 欧美激情网站| 日本不卡在线播放| 美国毛片一区二区| 欧美日韩在线国产| 亚洲精品在线观看网站| 久久毛片亚洲| 国产精品99久久久久久大便| 国产成人在线网站| 欧美一二三区视频| 国产一区二区三区中文 | 久久久亚洲综合网站| 视频在线观看一区| 欧美性x x x| 精品成人a区在线观看| 成人免费网站视频| 国产成年人在线观看| 成人永久免费视频| 无码人妻久久一区二区三区不卡| 日韩中文字幕免费视频| 日韩一区二区三区色| wwwxxx黄色片| 亚洲免费在线看| 免费在线黄色电影| 亚洲精品欧美极品| 免费视频一区| 777777国产7777777| 日韩精品黄色网| 国产亚洲观看| 可以免费在线看黄的网站| 亚洲日韩欧美一区二区在线| 午夜一区在线观看| 91久热免费在线视频| 亚洲深夜福利| 天天综合天天做| 亚洲图片在线综合| 日韩一区二区三区高清在线观看| 日韩欧美在线免费观看视频| 一区二区三区91| 成人jjav| 国模精品一区二区三区| 裸体一区二区三区| 日日夜夜综合网| 欧美成年人网站|