socket_create(family, type, protocol, kern); } security_ops 結(jié)構(gòu)中的函數(shù)通過安全模塊安裝 。在本例中,這些鉤子在可載入的 SELinux 內(nèi)核模塊中定義。SELinux Linux安全新高度 安全增強(qiáng)Linux 剖析( 四 )。" />

日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

SELinux Linux安全新高度 安全增強(qiáng)Linux 剖析( 四 )


{
return security_ops->socket_create(family, type, protocol, kern);
}
security_ops 結(jié)構(gòu)中的函數(shù)通過安全模塊安裝 。在本例中,這些鉤子在可載入的 SELinux 內(nèi)核模塊中定義 。每個 SELinux 調(diào)用在 hooks 文件內(nèi)部定義,該文件實(shí)現(xiàn)從內(nèi)核函數(shù)到特定安全模塊的動態(tài)調(diào)用的間接性(參見清單 3 中的 .../linux/security/selinux/hooks.c 代碼) 。
清單 3. SELinux socket 創(chuàng)建檢查
;;;;static int selinux_socket_create(int family, int type,
int protocol, int kern)
{
int err = 0;
struct task_security_struct *tsec;
if (kern)
goto out;
tsec = current->security;
err = avc_has_perm(tsec->sid, tsec->sid,
socket_type_to_security_class(family, type,
protocol), SOCKET__create, NULL);
out:
return err;
}
清單 3 的核心部分是一個調(diào)用,用于驗(yàn)證當(dāng)前操作是否是當(dāng)前任務(wù)(通過 current->security 定義,其中 current 代表當(dāng)前正在執(zhí)行的任務(wù))所允許的 。訪問向量緩存(Access Vector Cache,AVC)緩存了之前的 SELinux 決策(提高進(jìn)程的性能) 。此調(diào)用包括源安全標(biāo)識符(sid)、安全類(根據(jù)請求操作的詳細(xì)信息構(gòu)造)、特定 socket 調(diào)用,以及可選的輔助審計(jì)數(shù)據(jù) 。如果未在緩存中找到?jīng)Q策,那么會調(diào)用安全服務(wù)器來獲取決策(此過程如圖 2 所示) 。
圖 2. 分層 Linux 安全進(jìn)程
上一頁;;[1];[2][3];下一頁

推薦閱讀