Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2671435ybb; Mon, 30 Mar 2020 10:36:03 -0700 (PDT) X-Google-Smtp-Source: ADFU+vugij+Ge3hpuipsvaNfkLLaaY3kO/hKwtFfP6+EGa9p5u9ojDnutdwHH0I2rYlxqwTX8a4O X-Received: by 2002:a05:6808:90f:: with SMTP id w15mr361716oih.0.1585589763058; Mon, 30 Mar 2020 10:36:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585589763; cv=none; d=google.com; s=arc-20160816; b=BM3coqdsSkUzwVpjywmJDokoXPfyuo5Pgv54FLwCdsr/8x0H5QcjJgDu8mVCTxIAlm fkDCoim4Xs1H8TMd6HM8qkcRTxVtGJGkn5TbKKCM5HmGhdQhq5vBVOhj4EZ23tmGjphu Ipyiy7PUPQOyycQvNKQpUjf9QlCVGctSJfi20M5qF7RhurCxnSsti9uvoj2np+DAM/n3 +XAm4jjgWxF+XMrDDQxQthwHJP0yZLzSScN5w/UE8ZZZetNh8xLbU7lXHRyluq+83rpo 1QFOTGK+Z56Lp444Me67uNr/BqbzsIkBQ9oyaAHxcoj3W7kR297r7lQ7gDzZuE2m10hv 1arA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=muZ7cPZFQ8cxw9nf/MmRBFJ/dzmezYL1BINaJ/MaYNA=; b=Fm2UR8KVOlSK7kCUHpQNztVfFAjMUh7mIsCLUkBpxDAT4HJNAb2khLO3rx2OfB84Lh edFflX1GixaKtUDb9vkShUKkBRGS7OEImdA4QRU1PwzCd2YyWZj+fYqccrggCUkkSXr7 9DCtgJqlmTDPpnLVVld568XYlytImWovuJPp3BbCA5YtbVhBWOArIjUN3NoHpE0uY6MY sfGLFVW83iD+YCnr3N+weU6UkAsoRKKQ8djTSAKSotXfHGwIBvcyxPWpkvPx2LEqFrYM Mv7k8U4XEdJsbi90kClL5NO8pFvkOcdmLcphA/WijMzKzdKL/9Ff+8BuqhWdG622kV3p DLDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@paul-moore-com.20150623.gappssmtp.com header.s=20150623 header.b=fEdNo5qK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y1si6589963oti.52.2020.03.30.10.35.49; Mon, 30 Mar 2020 10:36:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@paul-moore-com.20150623.gappssmtp.com header.s=20150623 header.b=fEdNo5qK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729573AbgC3Rer (ORCPT + 99 others); Mon, 30 Mar 2020 13:34:47 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:43736 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727302AbgC3Req (ORCPT ); Mon, 30 Mar 2020 13:34:46 -0400 Received: by mail-ed1-f65.google.com with SMTP id bd14so21695141edb.10 for ; Mon, 30 Mar 2020 10:34:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paul-moore-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=muZ7cPZFQ8cxw9nf/MmRBFJ/dzmezYL1BINaJ/MaYNA=; b=fEdNo5qKKvxYhCP9NHWm118eInVbYHUVNwSOC4xHDnWpu70fOgff1QB89wCE21CvbD a1EWOOJ5rriEIzg5k5GQTAr7ElZZyZAgGckmHIicOJbVOP/DW8h+TCXUA/zxWmrAulJT TzTFtnXZlldBAUGz7xmSjI8pIsaQ9NfyHgnDEfjeqSfkOlz3ml1gJkgmvdP7hktfBzBj ZfQVEfu0EYd4CN9mXOISk6OHvwhXY1+OF09B0du7yHvMCUXFy4ZBIq2Rxy8iNWop8yq8 A2BVHvbVmNGDlbZrJmtZFTUFPjFT+K4vVZyCePI1oAzysXL9fNLqJB9h8lzP0o6aY+Mg M+nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=muZ7cPZFQ8cxw9nf/MmRBFJ/dzmezYL1BINaJ/MaYNA=; b=tTQkWDSQbtF/FIMFir3fzRnyBJpmDGCAT6YF0ji9in61hl/IG4GzUR/77gXlKjWJQm EaOkGq5T04YaRM96jrYr6Xh74uzssjq8tj+ChXhr6jDl4l6wRqQxwHYrQ4m0qfV37Gvp LI49txq+7AJb3J/kgiN7+tvRYZrBW3UnGgmCqWNeHrfqnOwkVACN1qmGXcScUeZv3E8v xbvwBeGRQZdaCLLZA461vhQBv3eqJ8wn0g5hkWmvI2rGdxfmyW3JkRoxuUDOdMfpRz5l KIf3T+hEgZGih+LhzcCAGW/H900Y64pDCfIicOAprCqw+SAaX6rBEMvb55qZ37jjtAKL jcMw== X-Gm-Message-State: ANhLgQ3Rq+5YQykkCGYDtExRtPdrSR+5Dk6qIb8ZcnpSHs6XmcbGzc5m TH3rh9jH6JPIOeLmOrugcp0/MAB1D3fMIZcrW6Jy X-Received: by 2002:aa7:db56:: with SMTP id n22mr12348353edt.269.1585589683740; Mon, 30 Mar 2020 10:34:43 -0700 (PDT) MIME-Version: 1.0 References: <20200318212630.mw2geg4ykhnbtr3k@madcap2.tricolour.ca> <20200318215550.es4stkjwnefrfen2@madcap2.tricolour.ca> <20200319220249.jyr6xmwvflya5mks@madcap2.tricolour.ca> <20200324210152.5uydf3zqi3dwshfu@madcap2.tricolour.ca> <20200330134705.jlrkoiqpgjh3rvoh@madcap2.tricolour.ca> <20200330162156.mzh2tsnovngudlx2@madcap2.tricolour.ca> In-Reply-To: <20200330162156.mzh2tsnovngudlx2@madcap2.tricolour.ca> From: Paul Moore Date: Mon, 30 Mar 2020 13:34:34 -0400 Message-ID: Subject: Re: [PATCH ghak90 V8 07/16] audit: add contid support for signalling the audit daemon To: Richard Guy Briggs Cc: nhorman@tuxdriver.com, linux-api@vger.kernel.org, containers@lists.linux-foundation.org, LKML , dhowells@redhat.com, linux-audit@redhat.com, netfilter-devel@vger.kernel.org, ebiederm@xmission.com, simo@redhat.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, Eric Paris , mpatel@redhat.com, Serge Hallyn Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 30, 2020 at 12:22 PM Richard Guy Briggs wrote: > On 2020-03-30 10:26, Paul Moore wrote: > > On Mon, Mar 30, 2020 at 9:47 AM Richard Guy Briggs wrote: > > > On 2020-03-28 23:11, Paul Moore wrote: > > > > On Tue, Mar 24, 2020 at 5:02 PM Richard Guy Briggs wrote: > > > > > On 2020-03-23 20:16, Paul Moore wrote: > > > > > > On Thu, Mar 19, 2020 at 6:03 PM Richard Guy Briggs wrote: > > > > > > > On 2020-03-18 18:06, Paul Moore wrote: > > > > > > > > > > > > ... > > > > > > > > > > > > > > I hope we can do better than string manipulations in the kernel. I'd > > > > > > > > much rather defer generating the ACID list (if possible), than > > > > > > > > generating a list only to keep copying and editing it as the record is > > > > > > > > sent. > > > > > > > > > > > > > > At the moment we are stuck with a string-only format. > > > > > > > > > > > > Yes, we are. That is another topic, and another set of changes I've > > > > > > been deferring so as to not disrupt the audit container ID work. > > > > > > > > > > > > I was thinking of what we do inside the kernel between when the record > > > > > > triggering event happens and when we actually emit the record to > > > > > > userspace. Perhaps we collect the ACID information while the event is > > > > > > occurring, but we defer generating the record until later when we have > > > > > > a better understanding of what should be included in the ACID list. > > > > > > It is somewhat similar (but obviously different) to what we do for > > > > > > PATH records (we collect the pathname info when the path is being > > > > > > resolved). > > > > > > > > > > Ok, now I understand your concern. > > > > > > > > > > In the case of NETFILTER_PKT records, the CONTAINER_ID record is the > > > > > only other possible record and they are generated at the same time with > > > > > a local context. > > > > > > > > > > In the case of any event involving a syscall, that CONTAINER_ID record > > > > > is generated at the time of the rest of the event record generation at > > > > > syscall exit. > > > > > > > > > > The others are only generated when needed, such as the sig2 reply. > > > > > > > > > > We generally just store the contobj pointer until we actually generate > > > > > the CONTAINER_ID (or CONTAINER_OP) record. > > > > > > > > Perhaps I'm remembering your latest spin of these patches incorrectly, > > > > but there is still a big gap between when the record is generated and > > > > when it is sent up to the audit daemon. Most importantly in that gap > > > > is the whole big queue/multicast/unicast mess. > > > > > > So you suggest generating that record on the fly once it reaches the end > > > of the audit_queue just before being sent? That sounds... disruptive. > > > Each audit daemon is going to have its own queues, so by the time it > > > ends up in a particular queue, we'll already know its scope and would > > > have the right list of contids to print in that record. > > > > I'm not suggesting any particular solution, I'm just pointing out a > > potential problem. It isn't clear to me that you've thought about how > > we generate a multiple records, each with the correct ACID list > > intended for a specific audit daemon, based on a single audit event. > > Explain to me how you intend that to work and we are good. Be > > specific because I'm not convinced we are talking on the same plane > > here. > > Well, every time a record gets generated, *any* record gets generated, > we'll need to check for which audit daemons this record is in scope and > generate a different one for each depending on the content and whether > or not the content is influenced by the scope. That's the problem right there - we don't want to have to generate a unique record for *each* auditd on *every* record. That is a recipe for disaster. Solving this for all of the known audit records is not something we need to worry about in depth at the moment (although giving it some casual thought is not a bad thing), but solving this for the audit container ID information *is* something we need to worry about right now. -- paul moore www.paul-moore.com