All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Moore <pmoore@redhat.com>
To: Daniel Jurgens <danielj@mellanox.com>
Cc: "chrisw@sous-sol.org" <chrisw@sous-sol.org>,
	"paul@paul-moore.com" <paul@paul-moore.com>,
	"sds@tycho.nsa.gov" <sds@tycho.nsa.gov>,
	"eparis@parisplace.org" <eparis@parisplace.org>,
	"dledford@redhat.com" <dledford@redhat.com>,
	"sean.hefty@intel.com" <sean.hefty@intel.com>,
	"hal.rosenstock@gmail.com" <hal.rosenstock@gmail.com>,
	"selinux@tycho.nsa.gov" <selinux@tycho.nsa.gov>,
	"linux-security-module@vger.kernel.org"
	<linux-security-module@vger.kernel.org>,
	"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
	Yevgeny Petrilin <yevgenyp@mellanox.com>
Subject: Re: [PATCH 05/12] selinux: Implement Infiniband PKey "Access" access vector
Date: Fri, 1 Jul 2016 14:58:59 -0400	[thread overview]
Message-ID: <CAGH-KgvS7jvd4yiO-BGyqCbuZEwbXbjE61s2B7G6r=rOZse7iw@mail.gmail.com> (raw)
In-Reply-To: <DB6PR0501MB2261BC286E974CFE76B1E901C4250@DB6PR0501MB2261.eurprd05.prod.outlook.com>

On Fri, Jul 1, 2016 at 2:21 PM, Daniel Jurgens <danielj@mellanox.com> wrote:
> On 7/1/2016 11:29 AM, Paul Moore wrote:
>> On Thu, Jun 23, 2016 at 3:52 PM, Dan Jurgens <danielj@mellanox.com> wrote:
>>> From: Daniel Jurgens <danielj@mellanox.com>
>>>
>>> Add a type and access vector for PKeys. Implement the qp_pkey_access
>>> and mad_agent_pkey_access hooks to check that the caller has
>>> permission to access the PKey on the given subnet prefix.  Add an
>>> interface to get the PKey SID. Walk the PKey ocontexts to find an entry
>>> for the given subnet prefix and pkey.
>>>
>>> Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
>>> Reviewed-by: Eli Cohen <eli@mellanox.com>
>>> ---
>>>  include/linux/lsm_audit.h                        |  7 ++++
>>>  security/selinux/hooks.c                         | 41 ++++++++++++++++++++++++
>>>  security/selinux/include/classmap.h              |  2 ++
>>>  security/selinux/include/initial_sid_to_string.h |  1 +
>>>  security/selinux/include/security.h              |  2 ++
>>>  security/selinux/ss/services.c                   | 41 ++++++++++++++++++++++++
>>>  6 files changed, 94 insertions(+)
>>>
>>> diff --git a/include/linux/lsm_audit.h b/include/linux/lsm_audit.h
>>> index ffb9c9d..8ff7eae 100644
>>> --- a/include/linux/lsm_audit.h
>>> +++ b/include/linux/lsm_audit.h
>>> @@ -45,6 +45,11 @@ struct lsm_ioctlop_audit {
>>>         u16 cmd;
>>>  };
>>>
>>> +struct lsm_pkey_audit {
>>> +       u64     subnet_prefix;
>>> +       u16     pkey;
>>> +};
>>> +
>>>  /* Auxiliary data to use in generating the audit record. */
>>>  struct common_audit_data {
>>>         char type;
>>> @@ -59,6 +64,7 @@ struct common_audit_data {
>>>  #define LSM_AUDIT_DATA_INODE   9
>>>  #define LSM_AUDIT_DATA_DENTRY  10
>>>  #define LSM_AUDIT_DATA_IOCTL_OP        11
>>> +#define LSM_AUDIT_DATA_PKEY    12
>>>         union   {
>>>                 struct path path;
>>>                 struct dentry *dentry;
>>> @@ -75,6 +81,7 @@ struct common_audit_data {
>>>  #endif
>>>                 char *kmod_name;
>>>                 struct lsm_ioctlop_audit *op;
>>> +               struct lsm_pkey_audit *pkey;
>>>         } u;
>>>         /* this union contains LSM specific data */
>>>         union {
>> Please correct me if I'm wrong, but I don't recall seeing any code in
>> the patchset which actually logs the extra IB information in the audit
>> record, did I miss it?
>
> I didn't make any changes to the audit logging.  The messages look like this.
> [245259.895597] audit: type=1400 audit(1467392186.710:631): avc:  denied  { access } for  pid=27519 comm="ib_write_bw" scontext=root:sysadm_r:sysadm_t:s0 tcontext=system_u:object_r:staff_allowed_pkey_t:s0 tclass=infiniband_pkey permissive=1

So why are you adding fields to the common_audit_data structure?  If
you don't think the IB specific data is worth recording in the audit
log, don't record it in the structure.  If you do believe it is
important to record these IB details, please write the necessary code.

>> I wondered about this earlier in the patchset when we were discussing
>> the policy format, and I'm still wondering; perhaps you can help me
>> understand IB a bit better ...
>>
>> From what I gather, the partition key is the IB security boundary, not
>> the subnet, is that true?  If so, why are we including the subnet with
>> the partition key value/label?  I understand the low/high pkey range
>> as a way of simplifying the policy, but I don't quite understand the
>> point of tying the subnet to the partition key label.  Would you ever
>> want to have multiple labels for a single partition key, or should it
>> be a single label for the partition key regardless of the subnet?
>>
> Each subnet can have a different partition configuration and a node can be on multiple subnets.  By specifying the subnet prefix along with the pkey value the user has flexibility to have different policy for different subnets, instead of a global PKey space that would require coordinating the partition configuration across all subnets.

Perhaps a better explanation of partitions and subnets are in order,
especially for those of like me who are new to IB.

-- 
paul moore
security @ redhat

  reply	other threads:[~2016-07-01 18:58 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-23 19:52 [PATCH 00/12] SELinux support for Infiniband RDMA Dan Jurgens
2016-06-23 19:52 ` Dan Jurgens
2016-06-23 19:52 ` [PATCH 01/12] security: Add LSM hooks for Infiniband security Dan Jurgens
     [not found]   ` <1466711578-64398-2-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-30 14:57     ` Yuval Shaia
2016-06-30 14:57       ` Yuval Shaia
2016-06-30 20:27     ` Paul Moore
2016-06-30 20:27       ` Paul Moore
2016-06-30 21:09       ` Daniel Jurgens
2016-06-30 21:09         ` Daniel Jurgens
2016-06-30 21:27         ` Paul Moore
2016-06-30 21:34           ` Daniel Jurgens
2016-06-30 21:34             ` Daniel Jurgens
2016-06-30 20:33     ` Paul Moore
2016-06-30 20:33       ` Paul Moore
2016-06-30 21:27       ` Daniel Jurgens
2016-06-30 21:27         ` Daniel Jurgens
     [not found]         ` <AM4PR0501MB2257674DEA1F81F53A35AC21C4240-dp/nxUn679hpbkYrVjfdjcDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-06-30 21:30           ` Paul Moore
2016-06-30 21:30             ` Paul Moore
2016-06-23 19:52 ` [PATCH 02/12] selinux: Create policydb version for Infiniband support Dan Jurgens
     [not found]   ` <1466711578-64398-3-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-30 15:01     ` Yuval Shaia
2016-06-30 15:01       ` Yuval Shaia
     [not found]       ` <20160630150140.GB22107-Hxa29pjIrETlQW142y8m19+IiqhCXseY@public.gmane.org>
2016-07-01 12:50         ` Leon Romanovsky
2016-07-01 12:50           ` Leon Romanovsky
2016-07-01 13:49           ` Daniel Jurgens
2016-07-01 13:49             ` Daniel Jurgens
     [not found]             ` <DB6PR0501MB2261C7D467873122250A1F3EC4250-wTfl6qNNZ1NK98U9gK7MJ8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-07-01 20:48               ` Leon Romanovsky
2016-07-01 20:48                 ` Leon Romanovsky
2016-06-30 20:17     ` Paul Moore
2016-06-30 20:17       ` Paul Moore
2016-06-30 20:59       ` Daniel Jurgens
2016-06-30 20:59         ` Daniel Jurgens
     [not found]         ` <AM4PR0501MB22579221434714783B0AFC68C4240-dp/nxUn679hpbkYrVjfdjcDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-06-30 21:18           ` Paul Moore
2016-06-30 21:18             ` Paul Moore
2016-06-30 21:32             ` Daniel Jurgens
2016-06-30 21:32               ` Daniel Jurgens
     [not found]               ` <AM4PR0501MB2257CB8E6F84835315734487C4240-dp/nxUn679hpbkYrVjfdjcDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-06-30 21:37                 ` Paul Moore
2016-06-30 21:37                   ` Paul Moore
2016-06-23 19:52 ` [PATCH 10/12] IB/core: Enforce PKey security on management datagrams Dan Jurgens
     [not found] ` <1466711578-64398-1-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-23 19:52   ` [PATCH 03/12] selinux: Implement Infiniband flush callback Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
     [not found]     ` <1466711578-64398-4-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-30 15:10       ` Yuval Shaia
2016-06-30 15:10         ` Yuval Shaia
2016-06-30 15:44         ` Daniel Jurgens
2016-06-30 15:44           ` Daniel Jurgens
     [not found]           ` <AM4PR0501MB22578AA5FF8B4062F650C581C4240-dp/nxUn679hpbkYrVjfdjcDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-06-30 19:52             ` Paul Moore
2016-06-30 19:52               ` Paul Moore
     [not found]               ` <CAGH-Kgtn0EFxYc+UOvVQk-0Bco0oOG=STZA+aGYza4TmbNXq3A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-30 20:16                 ` Casey Schaufler
2016-06-30 20:16                   ` Casey Schaufler
     [not found]                   ` <13cf2b8b-1d4e-e61f-80fe-110af2a719cf-iSGtlc1asvQWG2LlvL+J4A@public.gmane.org>
2016-06-30 20:24                     ` Paul Moore
2016-06-30 20:24                       ` Paul Moore
2016-06-30 20:39               ` Daniel Jurgens
2016-06-30 20:39                 ` Daniel Jurgens
2016-06-23 19:52   ` [PATCH 04/12] selinux: Allocate and free infiniband security hooks Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
     [not found]     ` <1466711578-64398-5-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-30 15:15       ` Yuval Shaia
2016-06-30 15:15         ` Yuval Shaia
2016-06-30 20:42       ` Paul Moore
2016-06-30 20:42         ` Paul Moore
     [not found]         ` <CAGH-KgvtN8T7e5bKq0jJZvSzrGfFwA2VpmPf5gJuqdLZi6odEw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-30 21:06           ` Casey Schaufler
2016-06-30 21:06             ` Casey Schaufler
2016-06-30 21:48             ` Daniel Jurgens
2016-06-30 21:48               ` Daniel Jurgens
     [not found]               ` <AM4PR0501MB2257ADAB527392547179F779C4240-dp/nxUn679hpbkYrVjfdjcDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-07-01 18:54                 ` Paul Moore
2016-07-01 18:54                   ` Paul Moore
2016-07-01 18:59                   ` Daniel Jurgens
2016-07-01 18:59                     ` Daniel Jurgens
2016-07-01 19:17                     ` Paul Moore
2016-07-01 20:13                       ` Casey Schaufler
2016-07-01 20:46                         ` Daniel Jurgens
2016-07-01 20:46                           ` Daniel Jurgens
     [not found]                           ` <DB6PR0501MB226138FF74D031F6BD1C48C6C4250-wTfl6qNNZ1NK98U9gK7MJ8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-07-01 21:16                             ` Casey Schaufler
2016-07-01 21:16                               ` Casey Schaufler
2016-07-01 22:15                           ` Paul Moore
2016-06-23 19:52   ` [PATCH 05/12] selinux: Implement Infiniband PKey "Access" access vector Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
     [not found]     ` <1466711578-64398-6-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-30 15:23       ` Yuval Shaia
2016-06-30 15:23         ` Yuval Shaia
2016-06-30 15:35         ` Daniel Jurgens
2016-06-30 15:35           ` Daniel Jurgens
2016-07-01 16:29       ` Paul Moore
2016-07-01 16:29         ` Paul Moore
2016-07-01 18:21         ` Daniel Jurgens
2016-07-01 18:21           ` Daniel Jurgens
2016-07-01 18:58           ` Paul Moore [this message]
2016-07-01 19:16             ` Daniel Jurgens
2016-07-01 19:16               ` Daniel Jurgens
     [not found]               ` <DB6PR0501MB22614C80007D7408544B4B30C4250-wTfl6qNNZ1NK98U9gK7MJ8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-07-01 19:26                 ` Paul Moore
2016-07-01 19:26                   ` Paul Moore
2016-07-01 19:57                   ` Daniel Jurgens
2016-07-01 19:57                     ` Daniel Jurgens
     [not found]                     ` <DB6PR0501MB2261C903AB4CE9644604B9E8C4250-wTfl6qNNZ1NK98U9gK7MJ8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-07-01 20:42                       ` Paul Moore
2016-07-01 20:42                         ` Paul Moore
2016-07-11 14:46     ` Stephen Smalley
2016-07-11 19:03       ` Daniel Jurgens
2016-07-11 19:03         ` Daniel Jurgens
     [not found]       ` <1c637b46-7352-b369-4891-4b695ff80b3b-+05T5uksL2qpZYMLLGbcSA@public.gmane.org>
2016-07-12 20:28         ` Paul Moore
2016-07-12 20:28           ` Paul Moore
2016-06-23 19:52   ` [PATCH 06/12] selinux: Add IB End Port SMP " Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
2016-06-30 15:31     ` Yuval Shaia
     [not found]     ` <1466711578-64398-7-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-07-01 18:48       ` Paul Moore
2016-07-01 18:48         ` Paul Moore
2016-06-23 19:52   ` [PATCH 07/12] selinux: Add a cache for quicker retreival of PKey SIDs Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
     [not found]     ` <1466711578-64398-8-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-23 21:59       ` kbuild test robot
2016-06-23 21:59         ` kbuild test robot
2016-06-30 15:41       ` Yuval Shaia
2016-06-30 15:41         ` Yuval Shaia
2016-07-01 18:51       ` Paul Moore
2016-07-01 18:51         ` Paul Moore
2016-06-23 19:52   ` [PATCH 08/12] IB/core: IB cache enhancements to support Infiniband security Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
     [not found]     ` <1466711578-64398-9-git-send-email-danielj-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-06-30 15:47       ` Yuval Shaia
2016-06-30 15:47         ` Yuval Shaia
2016-06-23 19:52   ` [PATCH 09/12] IB/core: Enforce PKey security on QPs Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
2016-06-23 19:52   ` [PATCH 11/12] IB/core: Enforce Infiniband device SMI security Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
2016-06-23 19:52   ` [PATCH 12/12] IB/core: Implement the Infiniband flush callback Dan Jurgens
2016-06-23 19:52     ` Dan Jurgens
2016-06-30 14:43   ` [PATCH 00/12] SELinux support for Infiniband RDMA Yuval Shaia
2016-06-30 14:43     ` Yuval Shaia
2016-06-30 14:47     ` Daniel Jurgens
2016-06-30 14:47       ` Daniel Jurgens
2016-06-29 17:33 ` Paul Moore
2016-06-29 19:09   ` Daniel Jurgens
2016-06-29 19:09     ` Daniel Jurgens
     [not found]     ` <DB6PR0501MB22611E2BA664DD033571AEDEC4230-wTfl6qNNZ1NK98U9gK7MJ8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2016-06-30 15:18       ` Paul Moore

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGH-KgvS7jvd4yiO-BGyqCbuZEwbXbjE61s2B7G6r=rOZse7iw@mail.gmail.com' \
    --to=pmoore@redhat.com \
    --cc=chrisw@sous-sol.org \
    --cc=danielj@mellanox.com \
    --cc=dledford@redhat.com \
    --cc=eparis@parisplace.org \
    --cc=hal.rosenstock@gmail.com \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=paul@paul-moore.com \
    --cc=sds@tycho.nsa.gov \
    --cc=sean.hefty@intel.com \
    --cc=selinux@tycho.nsa.gov \
    --cc=yevgenyp@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.