Restore "ANDROID: security,perf: Allow further restriction of perf_event_open"
This reverts commit 025a1ee618
.
Restore CONFIG_SECURITY_PERF_EVENTS_RESTRICT to fix vintf checker
failure.
Change-Id: I41742532de583329ab802e55ab62eae747f91f13
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
This commit is contained in:
parent
1526c9c655
commit
1180b8e62b
18 changed files with 39 additions and 1 deletions
|
@ -720,7 +720,8 @@ allowed to execute.
|
|||
perf_event_paranoid:
|
||||
|
||||
Controls use of the performance events system by unprivileged
|
||||
users (without CAP_SYS_ADMIN). The default value is 2.
|
||||
users (without CAP_SYS_ADMIN). The default value is 3 if
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT is set, or 2 otherwise.
|
||||
|
||||
-1: Allow use of (almost) all events by all users
|
||||
Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
|
||||
|
@ -728,6 +729,7 @@ users (without CAP_SYS_ADMIN). The default value is 2.
|
|||
Disallow raw tracepoint access by users without CAP_SYS_ADMIN
|
||||
>=1: Disallow CPU event access by users without CAP_SYS_ADMIN
|
||||
>=2: Disallow kernel profiling by users without CAP_SYS_ADMIN
|
||||
>=3: Disallow all event access by users without CAP_SYS_ADMIN
|
||||
|
||||
==============================================================
|
||||
|
||||
|
|
|
@ -577,6 +577,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
|
|
1
arch/arm/configs/vendor/bengal_defconfig
vendored
1
arch/arm/configs/vendor/bengal_defconfig
vendored
|
@ -627,6 +627,7 @@ CONFIG_SDCARD_FS=y
|
|||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
|
|
|
@ -451,6 +451,7 @@ CONFIG_NLS_MAC_ROMANIAN=y
|
|||
CONFIG_NLS_MAC_TURKISH=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
CONFIG_UNICODE=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_SECURITYFS=y
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
|
|
|
@ -616,6 +616,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
1
arch/arm64/configs/vendor/bengal_defconfig
vendored
1
arch/arm64/configs/vendor/bengal_defconfig
vendored
|
@ -642,6 +642,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
|
@ -663,6 +663,7 @@ CONFIG_ECRYPT_FS_MESSAGING=y
|
|||
CONFIG_SDCARD_FS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_FORTIFY_SOURCE=y
|
||||
|
|
1
arch/arm64/configs/vendor/kona-iot_defconfig
vendored
1
arch/arm64/configs/vendor/kona-iot_defconfig
vendored
|
@ -697,6 +697,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
|
@ -673,6 +673,7 @@ CONFIG_ECRYPT_FS_MESSAGING=y
|
|||
CONFIG_SDCARD_FS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_FORTIFY_SOURCE=y
|
||||
|
|
1
arch/arm64/configs/vendor/kona_defconfig
vendored
1
arch/arm64/configs/vendor/kona_defconfig
vendored
|
@ -708,6 +708,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
|
@ -658,6 +658,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
1
arch/arm64/configs/vendor/lito_defconfig
vendored
1
arch/arm64/configs/vendor/lito_defconfig
vendored
|
@ -679,6 +679,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
|
@ -609,6 +609,7 @@ CONFIG_ECRYPT_FS_MESSAGING=y
|
|||
CONFIG_SDCARD_FS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
1
arch/arm64/configs/vendor/sdm660_defconfig
vendored
1
arch/arm64/configs/vendor/sdm660_defconfig
vendored
|
@ -614,6 +614,7 @@ CONFIG_SDCARD_FS=y
|
|||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HARDENED_USERCOPY_PAGESPAN=y
|
||||
|
|
|
@ -393,6 +393,7 @@ CONFIG_NLS_MAC_ROMANIAN=y
|
|||
CONFIG_NLS_MAC_TURKISH=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
CONFIG_UNICODE=y
|
||||
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_SECURITYFS=y
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
|
|
|
@ -1225,6 +1225,11 @@ int perf_event_max_stack_handler(struct ctl_table *table, int write,
|
|||
#define PERF_SECURITY_KERNEL 2
|
||||
#define PERF_SECURITY_TRACEPOINT 3
|
||||
|
||||
static inline bool perf_paranoid_any(void)
|
||||
{
|
||||
return sysctl_perf_event_paranoid > 2;
|
||||
}
|
||||
|
||||
static inline int perf_is_paranoid(void)
|
||||
{
|
||||
return sysctl_perf_event_paranoid > -1;
|
||||
|
|
|
@ -425,8 +425,13 @@ static cpumask_var_t perf_online_mask;
|
|||
* 0 - disallow raw tracepoint access for unpriv
|
||||
* 1 - disallow cpu events for unpriv
|
||||
* 2 - disallow kernel profiling for unpriv
|
||||
* 3 - disallow all unpriv perf event use
|
||||
*/
|
||||
#ifdef CONFIG_SECURITY_PERF_EVENTS_RESTRICT
|
||||
int sysctl_perf_event_paranoid __read_mostly = 3;
|
||||
#else
|
||||
int sysctl_perf_event_paranoid __read_mostly = 2;
|
||||
#endif
|
||||
|
||||
/* Minimum for 512 kiB + 1 user control page */
|
||||
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
|
||||
|
@ -10870,6 +10875,9 @@ SYSCALL_DEFINE5(perf_event_open,
|
|||
if (flags & ~PERF_FLAG_ALL)
|
||||
return -EINVAL;
|
||||
|
||||
if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
|
||||
return -EACCES;
|
||||
|
||||
/* Do we allow access to perf_event_open(2) ? */
|
||||
err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
|
||||
if (err)
|
||||
|
|
|
@ -18,6 +18,15 @@ config SECURITY_DMESG_RESTRICT
|
|||
|
||||
If you are unsure how to answer this question, answer N.
|
||||
|
||||
config SECURITY_PERF_EVENTS_RESTRICT
|
||||
bool "Restrict unprivileged use of performance events"
|
||||
depends on PERF_EVENTS
|
||||
help
|
||||
If you say Y here, the kernel.perf_event_paranoid sysctl
|
||||
will be set to 3 by default, and no unprivileged use of the
|
||||
perf_event_open syscall will be permitted unless it is
|
||||
changed.
|
||||
|
||||
config SECURITY
|
||||
bool "Enable different security models"
|
||||
depends on SYSFS
|
||||
|
|
Loading…
Reference in a new issue