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

如何增強Linux內核中的訪問控制安全

安全 網站安全 Linux
篇幅有限,本文只是介紹了Linux上的攔截技術,后續有機會可以一起探討windows和macOS上的攔截技術。下面,一起來看。

背景

前段時間,我們的項目組在幫客戶解決一些操作系統安全領域的問題,涉及到windows,Linux,macOS三大操作系統平臺。無論什么操作系統,本質上都是一個軟件,任何軟件在一開始設計的時候,都不能***的滿足人們的需求,所以操作系統也是一樣,為了盡可能的滿足人們需求,不得不提供一些供人們定制操作系統的機制。當然除了官方提供的一些機制,也有一些黑魔法,這些黑魔法不被推薦使用,但是有時候面對具體的業務場景,可以作為一個參考的思路。

[[251647]]

Linux中常見的攔截過濾

本文著重介紹Linux平臺上常見的攔截:

  • 用戶態動態庫攔截。
  • 內核態系統調用攔截。
  • 堆棧式文件系統攔截。
  • inline hook攔截。
  • LSM(Linux Security Modules)

動態庫劫持

Linux上的動態庫劫持主要是基于LD_PRELOAD環境變量,這個環境變量的主要作用是改變動態庫的加載順序,讓用戶有選擇的載入不同動態庫中的相同函數。但是使用不當就會引起嚴重的安全問題,我們可以通過它在主程序和動態連接庫中加載別的動態函數,這就給我們提供了一個機會,向別人的程序注入惡意的代碼。

假設有以下用戶名密碼驗證的函數:

  1. #include <stdio.h> 
  2. #include <string.h> 
  3. #include <stdlib.h> 
  4. int main(int argc, char **argv) 
  5. char passwd[] = "password"; 
  6. if (argc < 2) { 
  7. printf("Invalid argc!\n"); 
  8. return; 
  9. if (!strcmp(passwd, argv[1])) { 
  10. printf("Correct Password!\n"); 
  11. return; 
  12. printf("Invalid Password!\n"); 

我們再寫一段hookStrcmp的程序,讓這個比較永遠正確。

  1. #include <stdio.h> 
  2. int strcmp(const char *s1, const char *s2) 
  3. /* 永遠返回0,表示兩個字符串相等 */ 
  4. return 0; 

依次執行以下命令,就會使我們的hook程序先執行。

  1. gcc -Wall -fPIC -shared -o hookStrcmp.so hookStrcmp.c 
  2. export LD_PRELOAD=”./hookStrcmp.so” 

結果會發現,我們自己寫的strcmp函數優先被調用了。這是一個最簡單的劫持 ,但是如果劫持了類似于geteuid/getuid/getgid,讓其返回0,就相當于暴露了root權限。所以為了安全起見,一般將LD_PRELOAD環境變量禁用掉。

Linux系統調用劫持

最近發現在4.4.0的內核中有513多個系統調用(很多都沒用過),系統調用劫持的目的是改變系統中原有的系統調用,用我們自己的程序替換原有的系統調用。Linux內核中所有的系統調用都是放在一個叫做sys_call_table的內核數組中,數組的值就表示這個系統調用服務程序的入口地址。整個系統調用的流程如下:

當用戶態發起一個系統調用時,會通過80軟中斷進入到syscall hander,進而進入全局的系統調用表sys_call_table去查找具體的系統調用,那么如果我們將這個數組中的地址改成我們自己的程序地址,就可以實現系統調用劫持。但是內核為了安全,對這種操作做了一些限制:

  • sys_call_table的符號沒有導出,不能直接獲取。
  • sys_call_table所在的內存頁是只讀屬性的,無法直接進行修改。

對于以上兩個問題,解決方案如下(方法不止一種):

  • 獲取sys_call_table的地址 :
    1. grep sys_call_table /boot/System.map-uname -r 
  • 控制頁表只讀屬性是由CR0寄存器的WP位控制的,只要將這個位清零就可以對只讀頁表進行修改。
  1. /* make the page writable */ 
  2. int make_rw(unsigned long address) 
  3. unsigned int level; 
  4. pte_t *pte = lookup_address(address, &level);//查找虛擬地址所在的頁表地址 
  5. pte->pte |= _PAGE_RW;//設置頁表讀寫屬性 
  6. return 0; 
  1. /* make the page write protected */ 
  2. int make_ro(unsigned long address) 
  3. unsigned int level; 
  4. pte_t *pte = lookup_address(address, &level); 
  5. pte->pte &= ~_PAGE_RW;//設置只讀屬性 
  6. return 0; 

1. 開始替換系統調用

本文實現的是對 ls這個命令對應的系統調用,系統調用號是__NR_getdents。

  1. static int syscall_init_module(void) 
  2. orig_getdents = sys_call_table[__NR_getdents]; 
  3. make_rw((unsigned long)sys_call_table); //修改頁屬性 
  4. sys_call_table[__NR_getdents] = (unsigned long *)hacked_getdents; //設置新的系統調用地址 
  5. make_ro((unsigned long)sys_call_table); 
  6. return 0; 

2. 恢復原狀

  1. static void syscall_cleanup_module(void) 
  2. printk(KERN_ALERT "Module syscall unloaded.\n"); 
  3. make_rw((unsigned long)sys_call_table); 
  4. sys_call_table[__NR_getdents] = (unsigned long *)orig_getdents; 
  5. make_ro((unsigned long)sys_call_table); 

使用Makefile編譯,insmod插入內核模塊后,再執行ls時,就會進入到我們的系統調用,我們可以在hook代碼中刪掉某些文件,ls就不會顯示這些文件,但是這些文件還是存在的。

堆棧式文件系統

Linux通過vfs虛擬文件系統來統一抽象具體的磁盤文件系統,從上到下的IO棧形成了一個堆棧式。通過對內核源碼的分析,以一次讀操作為例,從上到下所執行的流程如下:

內核中采用了很多c語言形式的面向對象,也就是函數指針的形式,例如read是vfs提供用戶的接口,具體底下調用的是ext2的read操作。我們只要實現VFS提供的各種接口,就可以實現一個堆棧式文件系統。Linux內核中已經集成了一些堆棧式文件系統,例如Ubuntu在安裝時會提醒你是否需要加密home目錄,其實就是一個堆棧式的加密文件系統(eCryptfs),原理如下:

實現了一個堆棧式文件系統,相當于所有的讀寫操作都會進入到我們的文件系統,可以拿到所有的數據,就可以進行做一些攔截過濾。

以下是我實現的一個最簡單的堆棧式文件系統,實現了最簡單的打開、讀寫文件,麻雀雖小但五臟俱全。

https://github.com/wangzhangjun/wzjfs

inline hook

我們知道內核中的函數不可能把所有功能都在這個函數中全部實現,它必定要調用它的下層函數。如果這個下層函數可以得到我們想要的過濾信息內容,就可以把下層函數在上層函數中的offset替換成新的函數的offset,這樣上層函數調用下層函數時,就會跳到新的函數中,在新的函數中做過濾和劫持內容的工作。所以從原理上來說,inline hook可以想hook哪里就hook哪里。

inline hook 有兩個重要的問題:

  • 如何定位hook點。
  • 如何注入hook函數入口。

1. 對于***個問題:

需要有一點的內核源碼經驗,比如說對于read操作,源碼如下:

在這里當發起read系統調用后,就會進入到sys_read,在sys_read中會調用vfs_read函數,在vfs_read的參數中正好有我們需要過濾的信息,那么就可以把vfs_read當做一個hook點。

2. 對于第二個問題:

如何Hook?這里介紹兩種方式:

  • ***種方式:直接進行二進制替換,將call指令的操作數替換為hook函數的地址。
  • 第二種方式:Linux內核提供的kprobes機制。

其原理是在hook點注入int 3(x86)的機器碼,讓cpu運行到這里的時候會觸發sig_trap信號,然后將用戶自定義的hook函數注入到sig_trap的回調函數中,達到觸發hook函數的目的。這個其實也是調試器的原理。

LSM

LSM是Linux Secrity Module的簡稱,即linux安全模塊。是一種通用的Linux安全框架,具有效率高,簡單易用等特點。原理如下:

LSM在內核中做了以下工作:

  • 在特定的內核數據結構中加入安全域。
  • 在內核源代碼中不同的關鍵點插入對安全鉤子函數的調用。
  • 加入一個通用的安全系統調用。
  • 提供了函數允許內核模塊注冊為安全模塊或者注銷。
  • 將capabilities邏輯的大部分移植為一個可選的安全模塊,具有可擴展性。

適用場景

對于以上幾種Hook方式,有其不同的應用場景。

  • 動態庫劫持不太完全,劫持的信息有可能滿足不了我們的需求,還有可能別人在你之前劫持了,一旦禁用LD_PRELOAD就失效了。
  • 系統調用劫持,劫持的信息有可能滿足不了我們的需求,例如不能獲取struct file結構體,不能獲取文件的絕對路徑等。
  • 堆棧式文件系統,依賴于Mount,可能需要重啟系統。
  • inline hook,靈活性高,隨意Hook,即時生效無需重啟,但是在不同內核版本之間通用性差,一旦某些函數發生了變化,Hook失效。
  • LSM,在早期的內核中,只能允許一個LSM內核模塊加載,例如加載了SELinux,就不能加載其他的LSM模塊,在***的內核版本中不存在這個問題。

總結

篇幅有限,本文只是介紹了Linux上的攔截技術,后續有機會可以一起探討windows和macOS上的攔截技術。事實上類似的審計HOOK放到任何一個系統中都是剛需,不只是kernel,我們可以看到越來越多的vm和runtime甚至包括很多web組件、前端應用都提供了更靈活的hook方式,這是透明化和實時性兩個安全大趨勢下最常見的解決方案。

【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2025-07-14 07:40:00

2013-01-22 11:10:11

2020-12-23 09:40:17

物聯網安全訪問控制

2013-11-05 09:55:37

2009-07-06 20:55:48

Linux全訪問控制模型方案設計

2020-06-18 07:11:40

物聯網安全物聯網IOT

2010-12-28 10:36:41

Linux

2011-01-13 12:46:13

2011-01-10 16:45:45

2009-12-25 10:02:39

2017-03-15 15:15:08

2011-08-16 16:20:33

Linuxkconfigmakefile

2012-01-10 10:05:47

文件目錄訪問控制UGO

2021-03-11 12:19:39

Linux運維Linux系統

2023-04-03 00:10:49

2019-09-02 00:10:37

2014-06-10 16:51:44

云數據應用訪問安全控制

2024-01-31 10:16:57

2021-01-05 18:36:39

物聯網安全

2020-06-02 14:27:48

物聯網訪問控制網絡安全
點贊
收藏

51CTO技術棧公眾號

大胆人体色综合| 在线精品国精品国产尤物884a| 91久久久亚洲精品| 久久久久久天堂| 日韩欧美中文字幕电影| 欧洲av在线精品| 欧美人与动牲交xxxxbbbb| 三级黄视频在线观看| 老司机精品视频导航| 久99九色视频在线观看| 香蕉网在线播放| 日韩欧美专区| 亚洲mv大片欧洲mv大片精品| 四虎影院一区二区三区 | 国产成人亚洲欧美| 无码人妻一区二区三区免费| 午夜国产精品视频免费体验区| 日韩精品免费综合视频在线播放 | 亚洲欧洲在线播放| 久久黄色一级视频| 成人全视频免费观看在线看| 亚洲成人免费在线| 日本福利视频导航| 国产高清在线观看| www.亚洲在线| 91精品在线国产| 波多野结衣在线观看视频| 黄色成人av网站| 最近日韩中文字幕中文| 亚洲第一成人网站| 欧美电影在线观看免费| 日韩欧美在线影院| 亚洲一区二区福利视频| 日本精品在线一区| 色呦呦一区二区三区| 日韩精品一区在线视频| 久做在线视频免费观看| 日本一区二区免费在线| 久久久久久久久久久久久久久久av| 国产色综合视频| 捆绑调教一区二区三区| 国产成人精品久久久| www.毛片.com| 亚洲av成人片无码| av影片免费在线观看| 99精品桃花视频在线观看| 99精品在线直播| a级片在线播放| 国产一区二区三区观看| 国产在线观看精品| 在线免费观看av片| 久久精品国产久精国产| 国产欧美日韩精品在线观看| 欧美性猛交xxxx乱大交hd | 欧美寡妇偷汉性猛交| 女性裸体视频网站| 国产大片一区| 精品国产欧美一区二区五十路| 四虎影视1304t| 国产精品久久久久久久久久10秀| 日韩三级影视基地| 日本精品人妻无码77777| 在线免费观看日本欧美爱情大片| 久久天天躁狠狠躁夜夜躁| 免费看一级大片| 欧美一区不卡| 午夜精品美女自拍福到在线| 日韩欧美成人一区二区三区| 久久久久久色| 国产免费一区二区三区在线能观看| 中文字幕在线视频免费| 国产真实精品久久二三区| 97久草视频| 午夜18视频在线观看| 久久综合九色综合97_久久久| 欧美一区二区三区精美影视| av播放在线观看| 悠悠色在线精品| 欧美视频在线观看网站| 影视一区二区三区| 91麻豆精品国产91久久久久久久久 | 丰满的亚洲女人毛茸茸| 亚洲精品字幕在线| 亚洲综合伊人| 日韩一区二区免费视频| 丰满少妇xbxb毛片日本| 国产精品嫩模av在线| 精品国内亚洲在观看18黄| 精品一区二区三区四| 久久久久久自在自线| 成人美女免费网站视频| 黄色a在线观看| 欧美国产日韩一二三区| 日韩亚洲欧美一区二区| 色吧亚洲日本| 51精品视频一区二区三区| 老司机午夜免费福利| 国产亚洲第一伦理第一区| 久久亚洲精品网站| 伊人中文字幕在线观看| 国产一区二区免费视频| 欧美日韩国产不卡在线看| 日本蜜桃在线观看| 精品国产91久久久| 国产欧美精品一二三| 欧美日韩一区二区三区四区不卡 | 国产精品一区二区欧美黑人喷潮水 | 国产午夜精品久久久| 91精品国产综合久久香蕉| 亚洲精品成人无码熟妇在线| 91精品国产麻豆国产在线观看 | 欧美日韩精品区| 国产资源在线一区| 日本最新一区二区三区视频观看| 免费在线播放电影| 欧美精品777| 在线观看国产精品一区| 日韩视频一区| 999精品在线观看| 色大18成网站www在线观看| 欧美日韩国产在线播放| 苍井空张开腿实干12次| 欧美mv日韩| 国产精品91视频| 性插视频在线观看| 亚洲一区二区中文在线| 成人av毛片在线观看| 国产精选一区| 欧洲精品久久久| 午夜av免费在线观看| 亚瑟在线精品视频| 69久久精品无码一区二区| 色喇叭免费久久综合| 日韩美女毛茸茸| 人操人视频在线观看| 无码av免费一区二区三区试看| 欧美一级特黄aaa| 国产精品99一区二区三| 国产精品丝袜视频| av在线免费观看网站| 91久久免费观看| 蜜桃传媒一区二区亚洲| 久久中文欧美| 黄色小网站91| 免费v片在线观看| 日韩黄色高清视频| 手机看片久久久| 91麻豆精品秘密| 国产精品电影网| 五月天丁香视频| 欧美日韩美女视频| 人妻丰满熟妇aⅴ无码| 国产情侣一区| 欧美日韩在线观看一区二区三区 | 一个人看的视频www| 我不卡伦不卡影院| 96pao国产成视频永久免费| 国产在线观看a| 欧美一二区视频| 久久久精品人妻一区二区三区四| 国产成人精品三级| 精品无码国产一区二区三区av| 高清欧美性猛交xxxx黑人猛| 97av在线视频| 大乳在线免费观看| 6080午夜不卡| 久久久久香蕉视频| 99久久99久久精品免费看蜜桃 | 欧美日韩在线观看免费| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品观看在线亚洲人成网| 波多野结衣一区二区| 69精品人人人人| 国产精品19乱码一区二区三区| 91色.com| 夜夜夜夜夜夜操| 在线精品在线| 日韩免费电影一区二区| 亚洲国产精选| 91精品国产精品| 98在线视频| 欧美va在线播放| 亚洲黄色免费观看| ㊣最新国产の精品bt伙计久久| 师生出轨h灌满了1v1| 久久精品免费| 久久久99精品视频| 亚洲人和日本人hd| 亚洲一区亚洲二区| 成人性生活av| 久久精品国产欧美亚洲人人爽| 嫩草影院一区二区| 欧美日韩三级视频| 亚洲精品www久久久久久| 日本欧美一区二区三区| 超碰97免费观看| 日韩福利视频一区| 成人夜晚看av| 伊人久久国产| 欧美成aaa人片免费看| 日韩av资源站| 日韩三级电影网址| 中文字幕日韩三级| 精品久久久久久久中文字幕| 一区二区三区影视| 久久久久久电影| 97中文字幕在线观看| 免费高清在线一区| 日韩欧美一区三区| 欧美精品网站| 伊人久久av导航| 久久成人av| 好吊色欧美一区二区三区视频| 亚洲在线资源| 国产精品视频公开费视频| 伊人网在线播放| 久久91亚洲人成电影网站| 成人免费视频| 亚洲女人天堂色在线7777| 亚洲精品一区二区三区区别| 欧美日韩国产不卡| 少妇久久久久久久| 黑人巨大精品欧美一区二区一视频| 免费在线观看h片| 国产精品亲子伦对白| 中文幕无线码中文字蜜桃| 国产suv一区二区三区88区| 中文字幕第88页| 天堂久久一区二区三区| 婷婷无套内射影院| 国产精品vip| 黄色录像特级片| 五月久久久综合一区二区小说| 欧美一区二区三区在线免费观看| 国内精品偷拍| 国产偷久久久精品专区| 亚洲精品在线国产| 97免费资源站| 欧美国产中文高清| 97超碰人人看人人| 久久一级大片| 99影视tv| 粉嫩一区二区三区四区公司1| av资源一区二区| 一区二区三区欧洲区| 91九色视频在线观看| 久久久久久亚洲精品美女| 5g国产欧美日韩视频| 日韩免费一级| 国产精品二区在线| 国产调教精品| 久久精品一二三区| 久久不见久久见中文字幕免费 | 午夜影院福利社| 成人爽a毛片一区二区免费| 国产高潮视频在线观看| av日韩在线网站| 日韩人妻一区二区三区| 国产日韩影视精品| 很污很黄的网站| 亚洲精品中文在线| 久久精品视频日本| 欧美性色xo影院| 日韩成人短视频| 一区二区三区在线免费观看| 国产在线一二区| 一本色道久久综合狠狠躁的推荐| 香蕉污视频在线观看| 欧美亚洲国产一卡| 国产视频www| 精品国产一区二区三区av性色| 天堂av在线免费| 国产午夜精品免费一区二区三区| 五月天婷婷在线视频| 欧美尺度大的性做爰视频| 91吃瓜在线观看| 国产精品国产三级国产aⅴ9色| 国产精品视频首页| 国内一区在线| 日韩激情在线| 无码人妻少妇伦在线电影| 日韩综合一区二区| 成人三级做爰av| 久久久久久久久久久久久久久99| www.99re6| 精品久久久国产精品999| 成人免费一级片| 欧美va天堂va视频va在线| 国产乱视频在线观看| 久久999免费视频| 欧美成人a交片免费看| 亚洲影院高清在线| 九九热精品视频在线观看| 超碰在线免费观看97| 在线亚洲自拍| 中文字幕剧情在线观看| 久久综合久久综合久久综合| 亚洲色偷偷综合亚洲av伊人| 亚洲成av人片一区二区| 在线免费看av的网站| 欧美精品一区二| 日本精品在线| 欧美一级视频一区二区| 日韩区一区二| 手机看片福利永久国产日韩| 日韩视频久久| 先锋资源在线视频| 国产欧美日韩卡一| 亚洲欧美在线视频免费| 日韩午夜精品视频| av大片在线看| 国产97色在线| 精品午夜电影| 精品国产一区二区三区麻豆免费观看完整版| 国产亚洲一区二区三区啪| 欧美国产视频一区| 老司机免费视频一区二区| 18禁裸乳无遮挡啪啪无码免费| 一区二区三区在线免费视频| 一区二区国产欧美| 亚洲天堂色网站| 男人久久天堂| 国产精品免费一区二区| 亚洲激情五月| 狠狠干狠狠操视频| 国产精品嫩草影院com| 欧美日韩一级黄色片| 日韩成人网免费视频| 欧美人与动牲性行为| 999视频在线免费观看| 97视频热人人精品免费| 不卡av免费在线| 免费精品99久久国产综合精品| 中文字幕精品视频在线| 亚洲一级在线观看| 精品久久无码中文字幕| 久久偷看各类女兵18女厕嘘嘘| 久久精品97| 影音先锋亚洲视频| 美美哒免费高清在线观看视频一区二区| www.自拍偷拍| 色综合天天综合狠狠| 在线观看xxx| 欧美一级黄色网| 国产精品片aa在线观看| 无码少妇一区二区三区芒果| 久久久91精品国产一区二区精品 | 亚洲欧美日本日韩| 精品人妻一区二区三区香蕉| 精品日本高清在线播放| 四虎在线视频| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲福利网站| 黄色av免费在线播放| 国产日产欧美精品一区二区三区| 手机av免费观看| 最好看的2019的中文字幕视频| 日韩美香港a一级毛片| 日本黄xxxxxxxxx100| 高清国产一区二区三区| 欧美一级高潮片| 日韩精品在线第一页| 婷婷激情一区| 中文网丁香综合网| 国产成人午夜视频| 久久夜色精品亚洲| 亚洲人午夜精品免费| 成人国产精品| 日本一区二区三区四区五区六区| 国产成人精品免费视频网站| 日本熟妇成熟毛茸茸| 亚洲乱码国产乱码精品精| 成人黄色毛片| 大地资源网在线观看免费官网 | 国产人妻一区二区| 欧美日韩免费视频| 黄色污污视频在线观看| 欧美裸体网站| 国产伦精一区二区三区| 日韩在线观看第一页| 亚洲最新中文字幕| 日韩精品亚洲专区在线观看| 水蜜桃色314在线观看| 国产人久久人人人人爽| 99re只有精品| 亲爱的老师9免费观看全集电视剧| 欧美国产一区二区三区激情无套| 麻豆av免费看| 欧美性猛片xxxx免费看久爱| 亚洲精品天堂| 日韩欧美视频一区二区三区四区| 国产福利精品导航| 日本免费精品视频| 欧美国产精品人人做人人爱| 国产探花一区二区| 乳色吐息在线观看| 欧美午夜在线一二页| av电影院在线看| 最新中文字幕久久| 国产偷国产偷精品高清尤物|