From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E786BC04FF3 for ; Fri, 21 May 2021 21:49:59 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5B1DA613DB for ; Fri, 21 May 2021 21:49:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5B1DA613DB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=paul-moore.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=linux-audit-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-434-ndWK3hjIOgu_YHezB6ChkQ-1; Fri, 21 May 2021 17:49:56 -0400 X-MC-Unique: ndWK3hjIOgu_YHezB6ChkQ-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 20FB2803621; Fri, 21 May 2021 21:49:53 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DE16C5D9D5; Fri, 21 May 2021 21:49:52 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 02EFD1801028; Fri, 21 May 2021 21:49:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 14LLnnpH020370 for ; Fri, 21 May 2021 17:49:49 -0400 Received: by smtp.corp.redhat.com (Postfix) id 73FC810B7C8B; Fri, 21 May 2021 21:49:49 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F3BC10BBCD4 for ; Fri, 21 May 2021 21:49:46 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1D24A83395A for ; Fri, 21 May 2021 21:49:46 +0000 (UTC) Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-517-2NJpMqMVOwOrfYj2gBxLfg-1; Fri, 21 May 2021 17:49:43 -0400 X-MC-Unique: 2NJpMqMVOwOrfYj2gBxLfg-1 Received: by mail-qv1-f52.google.com with SMTP id e8so7940849qvp.7 for ; Fri, 21 May 2021 14:49:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:date:message-id:user-agent :mime-version:content-transfer-encoding; bh=rnbRWaK3S2pNJ8BuaJG2JWJsS1i7bhrZxXnssJvgZhA=; b=tupt/aK+An1YKXxajvT5Ok7i2XkoUEds5U6QVZeKLDzU+Fh/2+B5JjYMURU4s02h0S DX47gSOJKOMOrkLaq0eEdF41ZMC9/KVY49IQSdLAMHUJdVvPSEyM52okEwCoKXnmLp7T GihD/k/Zh9pFtDbgTLZ45Z7gNH1dM1RVJyEM6Lz1kKkF16kMHXEIv7IaWkFnIET1hwqz 1FAOVSETinQiXepGbAOxN7l85aiADEPeMR2KRt3nRaww9xZDlCGItoDZZhh9WnwxBz+1 AGkdWowzqzU50DRndf9m+RfnhHftC+ETGvtcBwtobI12S0aJQABk0v2hVGrn7jACt7Za SLXg== X-Gm-Message-State: AOAM533jlrWhr/PsrTSuHoqzLRsQfBqqn/hKGZRMdhNHFXsyxpFpTOL9 /HRRdhAyRlhCgj5J4xdhLIR7 X-Google-Smtp-Source: ABdhPJxeykuSzKF4Ef2u3A55uIH3hhoAOxzj8OlMe3fTY2qtbfs+nxISBoK03j9mFD3TGDQhJV4KRg== X-Received: by 2002:a05:6214:c6c:: with SMTP id t12mr15192850qvj.34.1621633783282; Fri, 21 May 2021 14:49:43 -0700 (PDT) Received: from localhost (pool-96-237-52-188.bstnma.fios.verizon.net. [96.237.52.188]) by smtp.gmail.com with ESMTPSA id f13sm4912251qkk.107.2021.05.21.14.49.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 May 2021 14:49:42 -0700 (PDT) Subject: [RFC PATCH 0/9] Add LSM access controls and auditing to io_uring From: Paul Moore To: linux-security-module@vger.kernel.org, selinux@vger.kernel.org, linux-audit@redhat.com, io-uring@vger.kernel.org, linux-fsdevel@vger.kernel.org, Kumar Kartikeya Dwivedi , Jens Axboe , Alexander Viro Date: Fri, 21 May 2021 17:49:41 -0400 Message-ID: <162163367115.8379.8459012634106035341.stgit@sifl> User-Agent: StGit/1.1 MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: linux-audit@redhat.com X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=linux-audit-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Earlier this week Kumar Kartikeya Dwivedi posted a patchset switching io_uring over to the anonymous inode variant that allows for LSM controls. While nice, the patchset left the actual LSM controls as an exercise for the reader. The posting can be found using the lore link below: https://lore.kernel.org/io-uring/CAHC9VhS=PDxx=MzZnGGNLwo-o5Og-HGZe84=+BBtBCZgaGSn4A@mail.gmail.com/T/#mde8c5120f3b8e34a5a3b18229b8c563a7855fd20 As fate would have it, I had been working on something very similar, in fact the two patches from Kumar mirrored two in my own patchset. This patchset, while still a bit crude, does include an attempt at adding the LSM and audit support necessary to properly implement LSM based access controls for io_uring. I've provided the SELinux implementation, Casey has been nice enough to provide a Smack patch, and John is working on an AppArmor patch as I write this. I've mentioned this work to the other LSM maintainers that I believe might be affected but I have not heard back from anyone else at this point. If any of the other LSMs would like to contribute a patch to this patchset I will happily accept it; I only ask that you post it to the LSM list and make sure I am on the To/CC line. I think it would be nice to try and wrap this up as soon as possible for the obvious reasons. The individual patches provide an explanation of the changes involved so I'm not going to repeat that here, but I will caution you that these patches are still rather crude, perhaps more than a RFC patchset should be, but it seemed prudent to move this along so I'm posting these now. Any review that you can provide would be helpful. Also, any pointers to easy-to-run io_uring tests would be helpful. I am particularly interested in tests which make use of the personality option, share urings across process boundaries, and make use of the sqpoll functionality. As a point of reference, this patchset is based on v5.13-rc2 and if you want to follow along via git I'll be making updates to the git tree/branch below (warning I will be force-pushing on this branch given the early/rough nature of these patches). git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git (checkout branch "working-io_uring") Thanks in advance, -Paul --- Casey Schaufler (1): Smack: Brutalist io_uring support with debug Paul Moore (8): audit: prepare audit_context for use in calling contexts beyond syscalls audit,io_uring,io-wq: add some basic audit support to io_uring audit: dev/test patch to force io_uring auditing audit: add filtering for io_uring records fs: add anon_inode_getfile_secure() similar to anon_inode_getfd_secure() io_uring: convert io_uring to the secure anon inode interface lsm,io_uring: add LSM hooks to io_uring selinux: add support for the io_uring access controls fs/anon_inodes.c | 29 ++ fs/io-wq.c | 4 + fs/io_uring.c | 25 +- include/linux/anon_inodes.h | 4 + include/linux/audit.h | 17 + include/linux/lsm_hook_defs.h | 5 + include/linux/lsm_hooks.h | 13 + include/linux/security.h | 16 + include/uapi/linux/audit.h | 4 +- kernel/audit.h | 7 +- kernel/auditfilter.c | 4 +- kernel/auditsc.c | 481 ++++++++++++++++++++++------ security/security.c | 12 + security/selinux/hooks.c | 67 ++++ security/selinux/include/classmap.h | 2 + security/smack/smack_lsm.c | 64 ++++ 16 files changed, 650 insertions(+), 104 deletions(-) -- Linux-audit mailing list Linux-audit@redhat.com https://listman.redhat.com/mailman/listinfo/linux-audit