精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品乱人伦中文| 久久精品一区二区国产| 日韩精品最新网址| 两根大肉大捧一进一出好爽视频| 你懂的在线视频| 日韩国产精品大片| 欧美丰满片xxx777| 久久久久久午夜| 性欧美极品xxxx欧美一区二区| 中文字幕日本在线| 成人国产一区二区三区精品| 国产成人精品久久亚洲高清不卡| 一级性生活免费视频| 精品欧美午夜寂寞影院| 欧美色图12p| 日韩a∨精品日韩在线观看| 国产精品无码2021在线观看| 国产精品1区二区.| 国产精品视频网址| www.av视频在线观看| 成人在线免费观看网站| 亚洲大胆人体在线| 日韩成人av免费| 中文在线资源| 夜色激情一区二区| 亚洲一区二区在| 天堂а√在线8种子蜜桃视频 | 久久国产黄色片| 一区二区蜜桃| 日韩亚洲欧美中文高清在线| 国产精品九九九九九| 国产一区二区三区视频在线 | 国产一区二区视频免费观看| 亚洲欧美清纯在线制服| 久久久久久久久久久成人| 成人性视频免费看| 国产精品密蕾丝视频下载| 亚洲国产精品成人va在线观看| 一区二区三区视频网| 在线免费看h| 亚洲一区在线观看免费| 神马午夜伦理影院| 免费a级人成a大片在线观看| 国产婷婷色一区二区三区在线| 国产高清精品一区| 国产黄色片av| 久9久9色综合| 美女视频一区在线观看| 久久久极品av| 欧美色视频一区二区三区在线观看| 欧美人与拘性视交免费看| 亚洲精品国产综合区久久久久久久| 农村末发育av片一区二区| 精品视频在线一区| 日韩一级精品视频在线观看| 91大神免费观看| 欧美成人精品一级| 欧美一区二区三区免费视频| 日韩久久久久久久久久久| 国产精品一区三区在线观看| 91精品久久久久久久91蜜桃| 日本高清免费观看| 日本精品在线播放| 欧美v亚洲v综合ⅴ国产v| 中国免费黄色片| 麻豆精品av| 日韩精品中文字幕视频在线| 最近中文字幕在线mv视频在线| 日韩精品欧美大片| 一区二区三区四区精品| 国产探花视频在线| 一区二区电影| 91精品国产色综合久久不卡98口| 中文字幕免费在线观看视频| 美女国产一区二区三区| 成人写真福利网| www.亚洲欧美| 337p粉嫩大胆噜噜噜噜噜91av| 久久精品女人的天堂av| 成年人在线观看| 亚洲欧美偷拍卡通变态| 国产资源在线免费观看| 涩涩涩在线视频| 欧美性xxxx极品hd欧美风情| 久久久久国产一区| 日韩成人视屏| 亚洲人精品午夜在线观看| 国产成人在线网址| 午夜激情一区| 日本91av在线播放| 97精品人妻一区二区三区| 亚洲h视频在线观看| 奇米综合一区二区三区精品视频| 91探花福利精品国产自产在线| 丰满人妻av一区二区三区| 久久亚洲精品国产精品紫薇| 中文字幕在线亚洲精品| 国产不卡123| 欧美丝袜丝交足nylons图片| 日本黄色大片在线观看| 国产日韩视频在线| 九九热在线精品视频| 成人午夜视频在线播放| 国内外成人在线| 久久精品日产第一区二区三区| 777电影在线观看| 亚洲成人av免费| 污视频网址在线观看| 狠狠久久伊人| 中文字幕在线亚洲| 日本天堂在线视频| 黄色小说综合网站| 久久视频在线观看中文字幕| 2024最新电影在线免费观看| 日本久久精品电影| zjzjzjzjzj亚洲女人| 91精品综合久久久久久久久久久| 欧美在线视频观看免费网站| 午夜久久久久久噜噜噜噜| 国产欧美综合色| 亚洲中文字幕无码专区| 视频精品一区| 久久在精品线影院精品国产| 中文字幕av免费观看| aaa国产一区| 人妻互换免费中文字幕| 国产色99精品9i| 中文一区二区视频| 日本免费在线观看视频| 成人动漫一区二区三区| 久久久天堂国产精品| 色狠狠一区二区三区| 中文字幕久久久| 姑娘第5集在线观看免费好剧| 91小视频在线免费看| 日韩黄色短视频| 91精品啪在线观看国产爱臀| 久久伊人精品视频| 99久久综合网| 你懂的在线视频| 一区二区三区中文字幕在线观看| 日本精品一区在线| 欧美好骚综合网| 国产精品一香蕉国产线看观看| 国内精品在线视频| 色婷婷综合久久久中文一区二区| 国产精品成人99一区无码| 欧美日本一区| 国产精品免费区二区三区观看| 特级毛片在线| 精品国产乱码久久久久久老虎| 国产一级做a爱免费视频| 国产a精品视频| 国产一区二区三区乱码| 国产欧美自拍一区| 18久久久久久| 国产有码在线| 欧美日韩一级二级三级| 搜索黄色一级片| 国产一区高清在线| 农民人伦一区二区三区| 九色丨蝌蚪丨成人| 热久久这里只有精品| 国产女人在线视频| 欧美日韩欧美一区二区| 来吧亚洲综合网| 国产激情一区二区三区四区 | 免费网站在线观看人| 精品国产一区二区精华| 天天操天天摸天天干| 久久久综合精品| av免费网站观看| 91综合久久| 国产精品久久久一区二区三区| 免费看男女www网站入口在线| 亚洲欧美色婷婷| 一本色道久久综合亚洲| 亚洲人123区| 毛茸茸free性熟hd| 日韩精品亚洲专区| 在线观看日韩片| 黄色欧美网站| 国产精品视频1区| 天堂av在线电影| 亚洲人成在线观| 99热这里只有精品在线| 韩国欧美一区二区| 插插插亚洲综合网| 91麻豆国产视频| 亚洲va欧美va国产va天堂影院| 中文字幕第4页| 国产一区不卡在线| 日韩av片在线看| 99久久www免费| 精品国产_亚洲人成在线| 免费成人毛片| 91精品国产一区| 免费网站免费进入在线| 亚洲精品久久久久久久久久久久久| 国产成人精品亚洲| 亚洲国产美国国产综合一区二区| 一级黄色录像毛片| 成人精品视频一区二区三区尤物| 少妇黄色一级片| 激情婷婷欧美| 亚洲一区二区三区加勒比| 欧美色图婷婷| 7777精品久久久大香线蕉小说| 一区二区三区电影大全| 欧美激情aaaa| 亚洲成人三级| 亚洲精品中文字幕乱码三区| 亚洲在线不卡| 四虎5151久久欧美毛片| 92国产精品久久久久首页| 精品3atv在线视频| 欧美精品videosex牲欧美| 日本在线免费| 亚洲天堂影视av| 手机av在线免费观看| 91精品国产综合久久久久久漫画| 91丝袜一区二区三区| 亚洲444eee在线观看| 暗呦丨小u女国产精品| 欧美高清在线一区二区| 草草地址线路①屁屁影院成人| 国产一区二区美女| www.99r| 日韩激情中文字幕| 国产xxxxx在线观看| 中文日韩欧美| 人妻无码久久一区二区三区免费 | 久久夜色撩人精品| 午夜视频在线观看网站| 亚洲视频欧美视频| 日本福利在线观看| 欧美日韩视频| 久久久神马电影| 久久影院资源站| 国产精品白丝jk白祙| 秋霞一区二区三区| 成人激情免费在线| 国产精品欧美一区二区三区不卡| 国产精品久久久久久av| 日韩三区免费| 国产精品久久久久久婷婷天堂| 奇米777日韩| 国产精品99久久久久久www| 在线能看的av网址| 日本高清视频精品| 久久r热视频| 国产精品久久久久久中文字| 99riav视频一区二区| 国产精品视频999| 亚洲精品一区av| 成人午夜一级二级三级| 久久久久久久久久久久电影| 久久久国产精品麻豆| 亚洲av成人片色在线观看高潮 | 免费人成在线观看播放视频| 日韩在线观看免费全集电视剧网站| 懂色av中文在线| 中文字幕日韩av综合精品| 色视频在线免费观看| 不用播放器成人网| 91视频欧美| 欧美一级大片视频| 天然素人一区二区视频| 国产中文日韩欧美| 亚洲国产精品免费视频| 国产久一道中文一区| 综合国产视频| 亚洲啪啪av| 欧美黄色一区| 六月丁香激情网| 老牛国产精品一区的观看方式| 无罩大乳的熟妇正在播放| 日韩精品三区四区| 玖玖爱视频在线| 国产91色综合久久免费分享| 在线免费观看a级片| 中文字幕av一区二区三区高 | 国产熟女高潮一区二区三区| 久久精品一区二区| 日韩三级久久久| 亚洲高清在线精品| 波多野结衣在线观看一区| 欧美一区二区在线不卡| 欧美18xxxxx| 色综合天天综合网国产成人网| 91福利区在线观看| 国产精品高清在线| 丁香5月婷婷久久| 亚洲精品中文字幕乱码三区不卡| 国自产拍偷拍福利精品免费一 | 国产精品黄视频| 日韩第一区第二区| 日韩不卡av| 亚洲福利精品| 182午夜在线观看| 成人av在线资源网站| 日韩在线观看免| 黑人巨大精品欧美一区二区免费 | 亚洲天堂男人天堂| eeuss影院在线播放| 欧美激情第99页| 国语自产精品视频在线看抢先版结局 | 国产婷婷成人久久av免费高清 | 亚洲成人自拍网| 真实新婚偷拍xxxxx| 亚洲精品美女在线观看| 国产在线观看av| 国产精品第七十二页| 精品国产导航| 三上悠亚免费在线观看| 首页亚洲欧美制服丝腿| 在线精品一区二区三区| 亚洲精品国产一区二区精华液| 啪啪小视频网站| 亚洲第一精品电影| 色呦呦呦在线观看| 91九色蝌蚪国产| 北条麻妃国产九九九精品小说| 全黄性性激高免费视频| 捆绑紧缚一区二区三区视频| 中文字幕一二三四区| 亚洲mv在线观看| 精品久久国产视频| 精品国偷自产在线| 欧洲亚洲精品久久久久| 色姑娘综合av| 久久人人精品| 在线观看av中文字幕| 午夜亚洲国产au精品一区二区| www.色视频| 欧美裸身视频免费观看| 成人噜噜噜噜| 午夜在线视频免费观看| 久久成人免费日本黄色| 婷婷色一区二区三区| 色88888久久久久久影院野外| 婷婷伊人综合中文字幕| 性视频1819p久久| 欧美亚洲色图校园春色| 777777av| 91丨porny丨户外露出| 国内免费精品视频| 国产视频精品在线| 国产精品伦理| 视频一区国产精品| 另类人妖一区二区av| 国产伦精品一区二区三区高清| 日本精品在线观看| 黄色成人在线免费观看| 国产福利一区二区三区视频| 欧美日韩精品在线观看视频| 日韩美一区二区三区| 暧暧视频在线免费观看| 精品不卡在线| 日本系列欧美系列| 久久精品色妇熟妇丰满人妻| 91精品国产综合久久久久久 | 1769国产精品| 国产欧美日韩在线观看视频| 国产情侣av自拍| 成人欧美一区二区三区1314| 亚洲av无码乱码国产麻豆| 97久久国产精品| 一路向西2在线观看| 久久久久久免费| 国产又粗又黄又爽的视频| 欧美成人免费全部观看天天性色| caoporn成人| 欧美激情成人网| 亚洲欧美在线高清| 蜜桃91麻豆精品一二三区| 欧美又大又粗又长| 色乱码一区二区三区网站| 又黄又爽又色的视频| 天天综合日日夜夜精品| 在线日本视频| 成人av蜜桃| 久久久久在线| 久久噜噜色综合一区二区| 亚洲成av人乱码色午夜| 日韩视频网站在线观看| 路边理发店露脸熟妇泻火| av男人天堂一区| 在线免费观看高清视频| 国内精久久久久久久久久人| 国产一区日韩| 中文字幕 欧美 日韩| 婷婷激情综合网| 69视频在线观看| 久久精品中文字幕一区二区三区| 久久机这里只有精品| 欧美一级视频免费观看| 久久伊人精品视频| 国产欧美一区| 欧美性生交xxxxx|