Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp646775ybz; Wed, 22 Apr 2020 05:25:33 -0700 (PDT) X-Google-Smtp-Source: APiQypKVTcUnxJWLCtAMP+UEEhvHuLmPdWGC/Nu+CF6N7wmRMsEUsHWKHfYFBt6fwq08EAHhkyII X-Received: by 2002:a50:bf4d:: with SMTP id g13mr22344770edk.381.1587558333366; Wed, 22 Apr 2020 05:25:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587558333; cv=none; d=google.com; s=arc-20160816; b=WDcSfjXR6GX63/vYklWlp8yA37PF6M6Gla1WhCU644HPgQ2VRZBKzGVy7xuwBzqCF8 I3GcT1v2f4rBnJTBeF2rX2e6NgyXpl0D0xdCJoye9And3+w8hz9d2Le6r/FQxmw8SP0n NRAht1RH7L/3I9NsRxmlWITiPkzuVeYVhiL2buK9nYkNOantR/Z0at4f0a2vshFoszcj Br9EMrA5ZsiPjMpYXc1l/DMcTafRnP4bHn6LmSq0dWvH9yvEYtA5MvNru6GagqrHCgIr KAoU7nPev1UsEVto9oAneIcRNzxEK9qFBRS/GO6+iWdO2fytVwkzrBJUt4XR5drju27E g/UA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :robot-unsubscribe:robot-id:message-id:mime-version:references :in-reply-to:cc:subject:to:reply-to:from:date; bh=rgiK1H6WlFZ5q2dC75IxyX6q3eaFiYxVIqrADnA6n64=; b=sQZdwzJVs2kfipgrW5dFrFUCEfbfda2rDqhyAH0qV6cgSPQamGcQPaIEWEXfGFsHXS drsu2Sgg5mcPj1zs8W3Gr/nA+e78g9grSeaGiAreMolRSFEKaECegFj6W1saJBdvVpnM FcU6rvFvOc54UkD/aKkfHHYbwz0WhgxQgLlwWptH7QJXU4WOnSSiVaFwY6uytpS/6Xrc DtTHaXHIRWxh64aoKuAIoXt7shloz/+SCKk6nN2LnJW6T7PU3Iw6YqQQtrWvBZlxmRhc LgVbEK5j0O+ckiEfOQyGm4CwTwdOmGtiyLwFGYDbU3Uc7onmU6tQQ9b4HeIteQRncsTj AmEA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dj13si1813824edb.342.2020.04.22.05.25.11; Wed, 22 Apr 2020 05:25:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729311AbgDVMTD (ORCPT + 99 others); Wed, 22 Apr 2020 08:19:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728931AbgDVMSB (ORCPT ); Wed, 22 Apr 2020 08:18:01 -0400 Received: from Galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E12C0C03C1AA; Wed, 22 Apr 2020 05:18:00 -0700 (PDT) Received: from [5.158.153.53] (helo=tip-bot2.lab.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jREK5-00089Q-BF; Wed, 22 Apr 2020 14:17:49 +0200 Received: from [127.0.1.1] (localhost [IPv6:::1]) by tip-bot2.lab.linutronix.de (Postfix) with ESMTP id BDA291C04CF; Wed, 22 Apr 2020 14:17:36 +0200 (CEST) Date: Wed, 22 Apr 2020 12:17:36 -0000 From: "tip-bot2 for Alexey Budankov" Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: perf/core] perf/core: open access to probes for CAP_PERFMON privileged process Cc: Alexey Budankov , James Morris , Arnaldo Carvalho de Melo , Alexei Starovoitov , Andi Kleen , Igor Lubashev , Jiri Olsa , Namhyung Kim , Peter Zijlstra , Serge Hallyn , Song Liu , Stephane Eranian , Thomas Gleixner , intel-gfx@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, linux-man@vger.kernel.org, x86 , LKML In-Reply-To: <3c129d9a-ba8a-3483-ecc5-ad6c8e7c203f@linux.intel.com> References: <3c129d9a-ba8a-3483-ecc5-ad6c8e7c203f@linux.intel.com> MIME-Version: 1.0 Message-ID: <158755785633.28353.17624268753935462706.tip-bot2@tip-bot2> X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the perf/core branch of tip: Commit-ID: c9e0924e5c2b59365f9c0d43ff8722e79ecf4088 Gitweb: https://git.kernel.org/tip/c9e0924e5c2b59365f9c0d43ff8722e79ecf4088 Author: Alexey Budankov AuthorDate: Thu, 02 Apr 2020 11:47:01 +03:00 Committer: Arnaldo Carvalho de Melo CommitterDate: Thu, 16 Apr 2020 12:19:08 -03:00 perf/core: open access to probes for CAP_PERFMON privileged process Open access to monitoring via kprobes and uprobes and eBPF tracing for CAP_PERFMON privileged process. Providing the access under CAP_PERFMON capability singly, without the rest of CAP_SYS_ADMIN credentials, excludes chances to misuse the credentials and makes operation more secure. perf kprobes and uprobes are used by ftrace and eBPF. perf probe uses ftrace to define new kprobe events, and those events are treated as tracepoint events. eBPF defines new probes via perf_event_open interface and then the probes are used in eBPF tracing. CAP_PERFMON implements the principle of least privilege for performance monitoring and observability operations (POSIX IEEE 1003.1e 2.2.2.39 principle of least privilege: A security design principle that states that a process or program be granted only those privileges (e.g., capabilities) necessary to accomplish its legitimate function, and only for the time that such privileges are actually required) For backward compatibility reasons access to perf_events subsystem remains open for CAP_SYS_ADMIN privileged processes but CAP_SYS_ADMIN usage for secure perf_events monitoring is discouraged with respect to CAP_PERFMON capability. Signed-off-by: Alexey Budankov Reviewed-by: James Morris Tested-by: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: Andi Kleen Cc: Igor Lubashev Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Serge Hallyn Cc: Song Liu Cc: Stephane Eranian Cc: Thomas Gleixner Cc: intel-gfx@lists.freedesktop.org Cc: linux-doc@vger.kernel.org Cc: linux-security-module@vger.kernel.org Cc: selinux@vger.kernel.org Cc: linux-man@vger.kernel.org Link: http://lore.kernel.org/lkml/3c129d9a-ba8a-3483-ecc5-ad6c8e7c203f@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo --- kernel/events/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index 74025b7..52951e9 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -9397,7 +9397,7 @@ static int perf_kprobe_event_init(struct perf_event *event) if (event->attr.type != perf_kprobe.type) return -ENOENT; - if (!capable(CAP_SYS_ADMIN)) + if (!perfmon_capable()) return -EACCES; /* @@ -9457,7 +9457,7 @@ static int perf_uprobe_event_init(struct perf_event *event) if (event->attr.type != perf_uprobe.type) return -ENOENT; - if (!capable(CAP_SYS_ADMIN)) + if (!perfmon_capable()) return -EACCES; /*