Linux-Kernel

更改“perf_event_paranoid”的安全隱患

  • July 8, 2021

我想使用該perf實用程序為我的程序收集測量值。它在 Debian 9 的共享集群機器上執行,預設情況下 /proc/sys/kernel/perf_event_paranoid設置為 3,因此不允許我收集測量值。在更改它之前,我想知道這意味著什麼。

是否只是安全性允許其他使用者分析其他用途執行的內容並因此獲得洞察力?我們不關心這一點,因為它無論如何都是使用者的核心圈子。還是可能是性能,這也會影響其他所有人?

這只是安全性,性能不受影響(至少,當perf不執行時;即使那樣,perf’ 的影響應該是最小的)。更改perf_event_paranoid不會改變系統的性能特徵,無論是否perf正在執行。

核心文件中有關於安全含義的perf詳細討論。那裡的建議是為有權訪問的使用者設置一個組perf,並perf為該組設置適當的功能,而不是更改perf_event_paranoid

cd /usr/bin
groupadd perf_users
chgrp perf_users perf
chmod o-rwx perf
setcap cap_sys_admin,cap_sys_ptrace,cap_syslog=ep perf

並將自己添加到perf_users組中。

核心的 5.8 版添加了一個專用功能,因此cap_sys_admin可以將最後一個命令簡化為

setcap cap_perfmon,cap_sys_ptrace,cap_syslog=ep perf

引用自:https://unix.stackexchange.com/questions/519070