From patchwork Tue Aug 21 00:04:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schaufler, Casey" X-Patchwork-Id: 10571427 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DA51E921 for ; Tue, 21 Aug 2018 12:15:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D0FAC29F7C for ; Tue, 21 Aug 2018 12:15:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C4D3C29F9E; Tue, 21 Aug 2018 12:15:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from uhil19pa10.eemsg.mail.mil (uhil19pa10.eemsg.mail.mil [214.24.21.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E9E9129F9D for ; Tue, 21 Aug 2018 12:15:16 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by uhil19pa10.eemsg.mail.mil with ESMTP; 21 Aug 2018 12:15:16 +0000 X-IronPort-AV: E=Sophos;i="5.53,269,1531785600"; d="scan'208";a="15037543" IronPort-PHdr: 9a23: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 X-IPAS-Result: A2AbBAAmAXxb/wHyM5BaHQEBBQELAYUgEhYSjFujaRSBXxIYFIg9NhYBAgEBAQEBAQIBbCiCNSSCXwMDAQI3FCAOAwkBAUAICAMBLRURBwcLBRgEgwGCAqcQimCGUYQfP4N2hHkBEgGFdwKNTTCNCAcCggIEjVILFY45kzOBSA4jYXFNI1CCaYIlF443T32MHYI6AQE Received: from tarius.tycho.ncsc.mil (HELO tarius.infosec.tycho.ncsc.mil) ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 21 Aug 2018 12:15:15 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7LCFEdg023668; Tue, 21 Aug 2018 08:15:15 -0400 Received: from tarius.infosec.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w7L04mpA033215 for ; Mon, 20 Aug 2018 20:04:48 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7L04la9014327 for ; Mon, 20 Aug 2018 20:04:47 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AaBgDBVntbfSNjr8ZdHgEGDIUxFhKYGJgkgXoLhGwCg00hNhYBAgEBAQEBAQIUAQEWOoVnAwOBCVFXBxKDIoICqROKZIZRgkeBWD+DdosEAo13jQUHAoIABI1RCxWOOJMogUgBL4FTTSODOYIlF443HzCPCwEB X-IPAS-Result: A1AaBgDBVntbfSNjr8ZdHgEGDIUxFhKYGJgkgXoLhGwCg00hNhYBAgEBAQEBAQIUAQEWOoVnAwOBCVFXBxKDIoICqROKZIZRgkeBWD+DdosEAo13jQUHAoIABI1RCxWOOJMogUgBL4FTTSODOYIlF443HzCPCwEB X-IronPort-AV: E=Sophos;i="5.53,267,1531800000"; d="scan'208";a="350580" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 20 Aug 2018 20:04:47 -0400 IronPort-PHdr: 9a23:KSO1lBQ8j7fISDz1I6b13InQXdpsv+yvbD5Q0YIujvd0So/mwa6zYhSN2/xhgRfzUJnB7Loc0qyK6/+mATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfbF/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlSgHLSY0/mHJhMJtgqxVoxWvqB5xw4PPfI2ZKOBzcr/HcN8GWWZMWNtaWSxbAoO7aosCF/QMMvxDr4bjp1oFsAawChWsBOz11z9IiHv20rMg0+88FgzJwBYvH8kQv3XUttn1L7sdUeCvw6nVwzXDa+1Z2S3m5YjJdBAhve+DXbZqfcXNzkkvEhrIg1ONooLmJzOYzvkBvmyY4uZ6SO6iiW4qpxt1rzWr3MshhInEi4QIwV7e7yp52pw6JdigRU57f9GkFJxQujmUN4tzWcMiRm5otzwmxrEap5K3ZSkKx4g7yBLFZfyHdpKE4hPlVOaNPzh4gGhpd664hxa36USgy+v8Wdeo0FtSsyZIltrBumoQ2xHR6sWLUP9w80O71TuB1w3f8uRELlo1larfJZ4h2Lkwlp8LvEvfBCD2g1v5ja+MekU/5ueo6/7oYqjopp+YKYB0kBrzMqUomsyjH+s4NhICUHSc+eS5zLHj51H2QK1Wjv0qlanUqIvaKtofpq64BQ9Vz4ki5g2jDzamzNsYnX4HIEhDeBKclYflIV7OIPfmDaT3v1P5kzpxwf3Ce73oGJnAKHnFn5/lfK1h8Ahb0Ac10tlb49RfDbRFaPbyXFLh8d/VFBk0NySqzOv9TtZwzIUTXSSIGKDdeKfTt0KYo/kiKPSWZZME/TP6J+Uh6tbwgnIj31wQZ6+k2d0Qcn/8Vu9rJ0SffGrEnsYKEWBMuBE3CuPtlhnKWjdIamf0RKk87yw1DI+8JYbFWo2pxreG2WPzEpRIayZGA1aXHHHAdoOYVvNKYyWXZodtnzoJWL7nV8kt0hqtnA7817djaOHT/2lQtojiz8R44cXXlBcv5Xp1CdiQ1yeGSGQw1moSRTYw9KR+p1FtjFaFzaV8xfdfEI99/fRMBywzLpPNh9dxC9nvVAbMZJ/dQ1+9T8TgGjoxR88/x9IUS0d7B9imyBvE2nz5UPcui7WXCclsoern1H/rKpMlxg== X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0GjBQDBVntbfSNjr8ZdHgEGDIUxFhKYGZgkgXoLhGwCg04hNhYBAgEBAQEBAQIBAQIQAQEWOi+CNSKCYgMDgQlRVwcSgyKCAqkTimSGUYJHgVg/g3aLBAKNd40FBwKCAASNUQsVjjiTKIFIAS+BVE0jgzmCJReONx8wjwsBAQ X-IPAS-Result: A0GjBQDBVntbfSNjr8ZdHgEGDIUxFhKYGZgkgXoLhGwCg04hNhYBAgEBAQEBAQIBAQIQAQEWOi+CNSKCYgMDgQlRVwcSgyKCAqkTimSGUYJHgVg/g3aLBAKNd40FBwKCAASNUQsVjjiTKIFIAS+BVE0jgzmCJReONx8wjwsBAQ X-IronPort-AV: E=Sophos;i="5.53,267,1531785600"; d="scan'208";a="7622026" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2018 00:04:46 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 20 Aug 2018 17:04:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,267,1531810800"; d="scan'208";a="250527755" Received: from cschaufl-mobl.amr.corp.intel.com ([10.252.136.122]) by orsmga005.jf.intel.com with ESMTP; 20 Aug 2018 17:04:45 -0700 From: Casey Schaufler To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, casey.schaufler@intel.com, dave.hansen@intel.com, deneen.t.dock@intel.com, kristen@linux.intel.com, arjan@linux.intel.com Date: Mon, 20 Aug 2018 17:04:40 -0700 Message-Id: <20180821000444.7004-2-casey.schaufler@intel.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180821000444.7004-1-casey.schaufler@intel.com> References: <20180821000444.7004-1-casey.schaufler@intel.com> X-Mailman-Approved-At: Tue, 21 Aug 2018 08:10:45 -0400 Subject: [PATCH v3 1/5] LSM: Introduce a hook for side-channel danger X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP There may be cases where the data maintained for security controls is more sensitive than general process information and that may be subjected to side-channel attacks. An LSM hook is provided so that this can be check for where the system would take action should the current task have potential access to the passed task. Signed-off-by: Casey Schaufler --- include/linux/lsm_hooks.h | 7 +++++++ include/linux/security.h | 1 + security/security.c | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index a08bc2587b96..fd2a7e6beb01 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -698,6 +698,11 @@ * security attributes, e.g. for /proc/pid inodes. * @p contains the task_struct for the task. * @inode contains the inode structure for the inode. + * @task_safe_sidechannel: + * Check if a side channel attack is harmless for the current task and @p. + * The caller may have determined that no attack is possible, in which + * case this hook won't get called. + * @p contains the task_struct for the task. * * Security hooks for Netlink messaging. * @@ -1611,6 +1616,7 @@ union security_list_options { int (*task_prctl)(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5); void (*task_to_inode)(struct task_struct *p, struct inode *inode); + int (*task_safe_sidechannel)(struct task_struct *p); int (*ipc_permission)(struct kern_ipc_perm *ipcp, short flag); void (*ipc_getsecid)(struct kern_ipc_perm *ipcp, u32 *secid); @@ -1897,6 +1903,7 @@ struct security_hook_heads { struct hlist_head task_kill; struct hlist_head task_prctl; struct hlist_head task_to_inode; + struct hlist_head task_safe_sidechannel; struct hlist_head ipc_permission; struct hlist_head ipc_getsecid; struct hlist_head msg_msg_alloc_security; diff --git a/include/linux/security.h b/include/linux/security.h index 3410acfe139c..69a5526f789f 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -366,6 +366,7 @@ int security_task_kill(struct task_struct *p, struct siginfo *info, int security_task_prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5); void security_task_to_inode(struct task_struct *p, struct inode *inode); +int security_task_safe_sidechannel(struct task_struct *p); int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag); void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid); int security_msg_msg_alloc(struct msg_msg *msg); diff --git a/security/security.c b/security/security.c index 4927e7cc7d96..353b711e635a 100644 --- a/security/security.c +++ b/security/security.c @@ -1165,6 +1165,11 @@ void security_task_to_inode(struct task_struct *p, struct inode *inode) call_void_hook(task_to_inode, p, inode); } +int security_task_safe_sidechannel(struct task_struct *p) +{ + return call_int_hook(task_safe_sidechannel, 0, p); +} + int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag) { return call_int_hook(ipc_permission, 0, ipcp, flag); From patchwork Tue Aug 21 00:04:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schaufler, Casey" X-Patchwork-Id: 10571425 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7338813B6 for ; Tue, 21 Aug 2018 12:15:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6A43F29F7C for ; Tue, 21 Aug 2018 12:15:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5E50D29FA0; Tue, 21 Aug 2018 12:15:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from uhil19pa10.eemsg.mail.mil (uhil19pa10.eemsg.mail.mil [214.24.21.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ED8D229F7C for ; Tue, 21 Aug 2018 12:15:14 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by uhil19pa10.eemsg.mail.mil with ESMTP; 21 Aug 2018 12:15:13 +0000 X-IronPort-AV: E=Sophos;i="5.53,269,1531785600"; d="scan'208";a="15037534" IronPort-PHdr: 9a23:PNNUCxZpLXicm/uhnr39dNT/LSx+4OfEezUN459isYplN5qZosq5bB7h7PlgxGXEQZ/co6odzbaO7Oa4ASQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTahY75+Ngm6oRnMvcQKnIVuLbo8xAHUqXVSYeRWwm1oJVOXnxni48q74YBu/SdNtf8/7sBMSar1cbg2QrxeFzQmLns65Nb3uhnZTAuA/WUTX2MLmRdVGQfF7RX6XpDssivms+d2xSeXMdHqQb0yRD+t4b1rSBv1gykZMTA3/nzchshpgK5GvB6tohpyyJPWbo6ILvpzZqPTc80US2RCWcheVSJBDJ6kb4YNEuYMM+lXoJXyqVQQthuzHhWsCeH1xzNUnHL6wbM23uI8Gg/GxgwgGNcOvWzKodrvL6cdT+C0x7TVwzrfb/NZwyr96IbMch8/u/GHQLV9ftbLxkk0CQzEjk+cqZf5MDOVzOsNrmab7+5+WuK1kGMnqgdxoiSxyccokIXGmoUVylXd+Ch/3Y07JsW4RVZmbdOrH5ZcrSGXO5ZsTs88TGxkpjw2xqAetZKmeCUHy44rywPdZvGHaYSF5hbuWPyfLDp4gn9uZaixiAyo8Ue6z+3xTsy00FFXoSVbitTMrXUN1wDL6siAV/t94l+t2TaR2ADX7eFJOVw0mrDBK54g374wjYAfsUXFHi/4n0X2l7GZeVk+9ui06+XofrXmppiGO49ylg7+Kbghlta6AeQ5NggCR2mb+eKi273/5UD1XbpHg/IsnqTZrZzWP9oXq6GnDwNPz4ov8xO/AC2n0NQck3kHNlVFeBefgojyJV7OJPH4DfGig1WjiTtk3PfGPqDnAprRMHfDi6zsfap96kFAyAozyspT55RPCr4bOv7zVUjxtMLAAh8jLwO02/rnCMl61o4GW2KPBamZP7nOsV+I/O0vJfKBZI0SuDb7Lvgq/eXujWMnll8HZqmlx5wXaGq3Hv5+OUWWfWLsgssdEWcNpgc+Tu7qh0eeXj5QfHayWKQ85jAlCI+9A4fDQp2tgbOa0yemGJ1Wen1GBkqLEXfyeIWOQ+0MZz6KIs99jjwEUqCsSoEg1RGqsQ/11aBnI/Ha+iIGqJ3j08J16PfLlREo8jx0DdqS3H2RT21umWMIXTA21rhloUNh0leDzbR4g/tAGNNO+/xJVwA6NZjAz+BnEN3yRBzOfs2ISFenRdWmBys9TtQvzN8Se0x9Acmtjgjf3yq2BL8Yj6GEBIAu/aLGxHX+O8F9y3Pa26Y7lFkmXtFDNWu4ia5j7wLTHZLGk12Fl6a2cqQRxDDC9H+ZwmqUvUFYSxV9Ub3fUnAFZ0vWtsz55kfYQLCyF7srKAxBydSNKqFScN3mkU1GROv/ONTZe2+xmH2/BRWPxrORd4fqeH8S3CbaCEgZiQwT+myGNQcmDCe7v23eFCBuFU7oY0706+ZxtWm7Tk4qwAGQdEBuzaa6+hsPifybUfMT0aoOuD09pDVsAFa9w9XWBsKapwV8YapRetw94FJI1G7DsQxyIICgJbh4hlECawR3o1/u1xJvB4Vbn8gqtnQqzBFuKa+Dy1NBcTSY3J71OrLNLGn+5havZLDK2lvGytaZ5r8P6Ogkq1XkpAyoGFAt83F709ZLyXuc/Y7HDBQMXpLrSUk36h16q6vdYikn6IPezWdsPrWssj/ex9IpA/MoyhChf9dbNKOLChTyHtYACMewMuwqnEKlbhUePOBd7KQ0Jd+pd+Oa2K63O+ZthCymjWVb74Bh1UKM7TBwRfLI35YCxfGY0RCKVzP9jFenqM/3g4dEaSsVHmqlxijuHJRRabFqfYYXFWeuJNW6xtF/h572R35U7UWjCE0C2M+ofxqSclP80BZL1UQPoHynnyq4wCBvkz0zqKqQwjDOyfz4dBUbIm5LWHVijVD0LIiuiNAaWEyoYBYzlBS54kb7ybNWpL9iL2bPWkdEZS/2L3ttUqGorLqNf9ZP6I80sSVQSOm8Yk6VSrjmoxYB0CPsAW1exCs9dz60ppX1hRt6iHiSLHxrtnrWZdlwxQvD5NzbXfNRxiAJRDR8iTbJHlizJd+p/cmKmJfZqe2+SnmhWYNJcSnw14+Aryy75XBwARKjgf+zlNrnERI10SDlzdVqUzvHrArkaInxy6u6Kf5nflVvBFLk9cp6HJxxn5AuhJEWxHcaho+Z/XwZnmfvKd9bw77xbGIRRT4XxN7Y+BDl11d+LnKN3I/2SnSdwtdhZtWjbGMZwCQ949pNCKeO47xOhTF1rUagrQLNffh9mS8QyfU0534cn+EJvw8twz6TAr8MAEZYOjbsmA6Q79Ckq6VXZnigfqSs1EZkmtChFr6CqBlGWHnlYpciATNw7sJnPVLJynLz7oXkd8fMbdIPrBKbiQzNj+5LJ5ItjfoFmTBoOXrjsnE/ze40kwBu14mgvIebM2Vt4L65AhlAOz37fcMc5Czijb1EkcaQw4CvGY5hFy4RU5T0SPKkCjUSte7oNwyWCj0ztm+bGabDHQ+Y8Epmt2zAHIu1OHGRJXkZ0dJiSQKcJENBng8bQi82npkjFgCl3Mbhalt25igN5l7krRtB0vlnOAL4XmfbpQeocSs0SIOFIBpN8A5N+13ZMdeA4eJ3HiFY+IChrQOWJ2OHZwVIF3wJWleeC1HtJLau+cLA8++eBuakKPvOe7qOo/REV/iU3ZKvzpdm/zGUO8qUP3liAPo72kxYUH9kBcvWgDQPRDYRly7XaM6bvhi88DVtrs+j6PTrRB7v5YyXBrRIPtVg4Q62jrmYOu6XnCZ2NzBY1pYWyn/JzLgQx1kSii50ezmqC7QAujbHTLjMla9PEx4bdyRzOdNU76I72wlBI9TbitT017FmiP46EE1FVVv/lcGqfsEFP2a9NFbbC0mRL7SGOSfHw8fpbqOgUbdQlvlbtwWsuTaHFE/uJjaDlznpVhC3NuFMiCCbPABAt4ymdxZtCHTjTMj4ZRGhN993lzI2y6UuhnzWLW4cLSR8c0RVo72T7SJYhutwFndE7npiI+mElTiW7/XEKpYWtvtrBzp7m/hc4Hsk17tf9DtES+BtmCvOst5upEmrku+RxTV9VBpDsTVLhIWQvUV+I6rZ8IJAWXXF/B4X62WfFQgKrcN/CtLzo6BQ1sTPlKXrJTdY7d3U5tUTCNLOKM2bMHosKgHmGD/ODAQYSj6rO3nfh1ZDn/CS7HGVqIY1qoT0kpoUVrBbTEA1Fu8dCkl9AdMCJ5F3XjU5nrGFiM4I5GGzowPPS8VAuZDLTPWSAe/gKDyBl7lLewMIwa/kLYQULoD0xlZtakd7nIvXAErdRspCojd7bg8zrkRN62ZxQXEu20L/awOt/H8SGeSynhEolgt0ef4t+yv041crOlrKozM9kE02mdX/nz+Rdj/wLKCrUIFZDSr0qlI9MpThQwZ6dQeyh1BrNC/YR7JNiLttbXtrhxHYuZtOH/5cUKJFbQQMyvGQYvUnzU5Tqj67xUNd4+vKF4dinhMwcZGwt3JAxx5jbNktKKzMJapJy19Qhr6Ovi6oze0+3Q4eJkYX/2yJYiIIvlIHNqU+LSqy4uNs8RCCmydEeGUUTfUqpvNq+V8jNOuYyiLh07hDKke3N+OFNK6WoGnAmtSOQl8p2EMIilNJ/b5o3sc/a0CUTVwgzKONFxQVMsrPMRpaYNRU9HXIZymBrPvNzoxvP4WmDO/oV++PuLwTgkK+EwYjB54M4dgZHpmwzEHYKt/qLLEYyRUs4ATrIEuKDPFSdR2WjjgIuMC/w4Vx3YVHITEdG2p9Oz2t5rnLvg8qnOaDXNAub3cAWIsEN245WM29my5dpHROFCC53P8DxgWe6DHxvTjfDD75b9V/fviUfg9sBMuw+Toh76i8kUTX/YnGJ2HmKdRivcfC6fkAqJadDPNbVqJws1vGm4ZCWXylTWrPEd+zJ5j/b4ksbNP0CnamUlyxkT01VcLxMMyrLqeWnQHiXZxUv5WD3DA/Kc+9ESkTGhlqq+4f5KJ8ZAgDY5shbh7rrAk+NrKwLxmG3dm0RGatMzRWReFFzeqmf7xX0zYsbuiixXslVJ461eq3/lARRJELiBHeyu2uZodEXij1BnNdfwLPpTckmGh6LOoyxPkwwA/Qu1kGLz+LbPBpaHBDv9wkH1ySO2h2CmwiS1+flofD4w+s37EO/yRGhdpU1/NKsGTmtJ/FfD2sQLCrqYnSsyc4bNgmpbFxPpLnIsSYsZPRgCDfTIPQswCeVy66D+RVmt5VIC1CQflInXoqOcsJuIZb7koxTMg+LaRVCKYwvrCqdSZkDSkKwC8FUIOA2ScPgvug17vfjRicapIiPwIYsJ9amNsSTzZ2Yj8CpK+kT4jWlWiERXYQLQgO8wtM/xwPlpVsfu/7/YXEVplMxCBKo/hsSCvECoFo90fnSmGRmVX4VOiunPGo3Q1IyPLhycUUWBl6CUdB3elWjVcoJKtxK6YOoo7AqiWIel/ivGLx1OumI0FcydXPd13kFoXKqHb8XzYH+X0TWI9P0m3QGooUkwplcqYkvlFMLJqhekbk6Dwu355pEKWgVcC321Ylqm4LSDykE9VdF+1rsk/bVTN+bp+3r5XlPoldTXVL+J2BsVtZlltiMzKhw5pGN85N+iIMXCRIoTiFptu9VtBM2c9sAJ8QOdp/v3D9GL1aN5SPv3I2vaHgxWHD9zA6rli62C25G7WkQOJB420eBgIpKnyCqkk1EeQj7Hrd/0vQslBw4+dbHKKAjVtwoDZ6GpBBGCpJ2WqiL1RpQ3lMq/9aJ7jNc8xAX/kyYgeiOx4kGv482EyJ5kV0km3nYyFpswta5iTdXxU1VSYJg7figzseqtq9NT8dUZJIYi0rbz3ZJAKDhSBXoBFfZlloW58DBNZF9asb3YxJ8cXcUkusNTsKXBp5NgI/y/Zfk1BMsFmAcyDHEQWoberPsgFwfcqJqs6pKO/0/AZBioPiquw49qMDR3O8mQK3WtDes5X8tsCWuUuSaaf4KfOzbWXGTDjWghC6na0kAIXS/yjPLApbLIF3yXwlYZf9Dm7LOQ5JJ7kBK0paUqB6bs5GovtBas9hd6sI9rVhBhWdRhPgAIavtuVJLk7PRTTCKCWM6vCwrpjX7bPDUujgesyNx3HcTqJsIph66Cf0G7H20Y9f4EX6wPFt+V1mSVLeKSCOsMzhJh8X5MmlbkbiuoYpHTbWDZprnnri2FxPd80NQyKw6JQY0pRZ6HTuRu1kzkj/qupS96Nr6YMv+bBm1d+0JbvOKfRdqUJnABmUBgBx+5UoHmd+R35eYvUQKPfXcqQVl8bupP7rF6YP8h2a5/RZacfbJ0HGgsS/CzCdRgZekwgdsjMaNRWT1+KblKBoU8qlovL52k016VikMhEG1Kxt5ZuD+qeQv+DXbgDRzLYeVajoR8PzsqwstFmP5f0gj7MBZmt1bBC5H+cHS84d3GDgzbowwi42FMPDBb3g8uZZV30lhjLgh4x9H1IOF/MMB7WL4ZhRnmc2muzeLN0WcblOmn2RGh6gE78Cz2Or6iSMLWl9mB7Ozw3/QWO97V/xty94QjHAz9T9nUpPULm4G0NSUzCuOU9ivzOFJBDou8bvuaQp8EE2NXTptN2Tm2unJLNXGMr/KNuHISYqoFIXjZsxRsGg2I0AHdqyPs0R8XFkYffE7WOkjTNBqb9dh4XC+sGV5unXHX64gqKGqbWC3ixXx2MkslE47tCgMvDO6MOQQ/S0yWkeUyd/txHGXx6vpbzRt0oUNlCT0EfXhIwKOclU3Xw/1kHg+OgjT8w8+R5bFobBffwCoy78OCf6wFaYedI3VTKe3yFRHl3rDVlyALI8137ovMLViXfQ/EUlRoZseEz8nhx7Fpg2J00r5lgWxCoDDAcMZAuUDLGtH0vlK5ULWVIEaRSd07iwYr030lFrwrOz+O/TavRxB6gKNvZdiA6ChkRUGpISsa0DXb19el5d9KjMpgjhCojqRObmlXsuNfKvRsBV7MEZu2Ek4gmhWxqq8Y1D4KoDiJCUaq5EZoDBvMFi70h94z4CbShNgAVigBO4VuAcv/rv4t/BsJqn8uyuTroiR/0L9xgoAGRzl5nwj04todHZ0+dRUYPUhp758A9TP36GooDa3AdgKeAWMYKkYK5g92kbJygZP38OMt6Wa/4y4iBzNDXT40dPAtgLZdMePcrChRpYikv3V7FP7sDbAEOXC59vd8A06Gr60D418YEmXebm9DC2JIvf4kpIP/NbjSVgjcnCpeYOwfbIDygX+3aZYQBvwiye05mNF+rw/eKUxdHRVlMGHS02U4BGKTqA4wOnRe21lJP3XQOS8MPzhowxdF6ITHyrgKsFqrpMEfJHiijjxTdRCIb1h+6Ovtq37GtXsUFHEJpt7RLbBapTJJJ7OQ73lsOzXEhzGjP/eN3IdhopoOeW3uAM4+FkOEvka44bJRYEy7zh5HpQSQtuT6X2sUiFUuILY9tmU+jErnFT6YJvMaMPO0KdpJPypDdStF82GBMpaKM3rjFCeEnBgglVW6fsuLEekQYdUN95uUpJGW2uImI+4yTIWb5SjKmLB/wf6i+TQbAWU0V0LiN+RAu42Zt2e7uznPBIrn1Jkzh4oPgrzzxmXgWztTfrp6IX1jIq4Ku4uykZuXxZUuWelD/FCVJHzPsUlqocE3Li5kanYHkfbYv9/KVnJd7++oY/+Xg/ZwssfzEeV+S6Fy7wl7+IApCIsN9EgB6NucPObaK8LCQLMrQ9yAnjR2Rm0gXFnRZn6m0LQjK64N8jPoW9Nt4vxjC0FmjDaFYM/qRJvdP0tVERUOQ2aVJhwGNk0sWcWC0NRcrPFHgxjgglb2VEbZ1C5QUdF6kyjTaCprNG8R0MYDfIDoSl/ZHdncXS1nk+Stdl3XnbprCDhpM20H1lnM507iGOuHQObeDYVdFjAmTr3IdF1eP+f+mtsvwASIZ+yrShVfgCMtO5+Wu3w5VnQUmlya4bH1WnMe8P3LDbUz2qSWeAQ+SEb3CMnyolMk71/RSoNVM3aMJWoEI8MebPnYBcmBP7UbN1RySQolnbwHYlMewEawJl8LugLg8HVugcY62cLPIizfs/DlQka37SATAwDPe7t0GkmIw9MHJlpQ3+YOLw4kXlPcGUFx0sD4HXtNhy9Oa8S2bHPmVviFV2PU9p56LEGl8srO5AYtOUmtTNg9lTz+EIbbFuPDc7t9pVnZhsrcGP3cOLdwzB5orjLtHS5P6DCrvQyFpuMmpTSbcIJxj+54wnMNo0QZXSG6dUuVIXAq1+CJAoKWq39KhyNw51Wg/XeLmwxMLto6bDapZSqnLQqE52ICDXuDUCzOC5SUpwaJXuz3boIYssSzRpq9xrFwsgHY1TFsdGpA2iR9adgqOyjfe1+kVnq6kLt7b9DrbB09Hq8Z92Ws1x7FeGLX7qD6lin0phg/761vzJyZTgT9jpedoZWux2WEbEbKPLGsO0LTfYaZG0QFJP77PJiOExaR6Wfi2sGvPeuQ== X-IPAS-Result: A2AbBAAmAXxb/wHyM5BaHQEBBQELAYUgEhYSjFujaRSBWhcYFIg9NhYBAgEBAQEBAQIBbCiCNSSCXwMDAQIkExQgDgMJAQFACAgDAS0VEQcHCwUYBIMBggKmXTOKYIpwP4hvARIBhXcCjU0wjQgHAoICBI1SCxWOOZMzgUgIKWFxTSNQgmmCJReON099jB2COgEB Received: from tarius.tycho.ncsc.mil (HELO tarius.infosec.tycho.ncsc.mil) ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 21 Aug 2018 12:15:11 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7LCF9hD023658; Tue, 21 Aug 2018 08:15:11 -0400 Received: from tarius.infosec.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w7L04mxQ033216 for ; Mon, 20 Aug 2018 20:04:48 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7L04laA014327 for ; Mon, 20 Aug 2018 20:04:48 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AbBgDBVntbfSNjr8ZdHgEGDIUxFhKYGJgkgXoLhGwCg00hNRcBAgEBAQEBAQIUAQEWOoVnAwMnYlFXBxKDIoICqGAzimSJGIFYP456Ao13jQUHAoIABI1RCxWOOJMogUMCM4FTTSODOYIlF443HzCPCwEB X-IPAS-Result: A1AbBgDBVntbfSNjr8ZdHgEGDIUxFhKYGJgkgXoLhGwCg00hNRcBAgEBAQEBAQIUAQEWOoVnAwMnYlFXBxKDIoICqGAzimSJGIFYP456Ao13jQUHAoIABI1RCxWOOJMogUMCM4FTTSODOYIlF443HzCPCwEB X-IronPort-AV: E=Sophos;i="5.53,267,1531800000"; d="scan'208";a="350581" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 20 Aug 2018 20:04:47 -0400 IronPort-PHdr: 9a23:FWprnxDP+1p8KhoWZFraUyQJP3N1i/DPJgcQr6AfoPdwSPX9p8bcNUDSrc9gkEXOFd2Cra4c1KyO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglUhjexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykCoJNyA3/nzZhMJzi6xUohyhqgdjz4LIeoyZKOBzcr/Bcd4cWGFPXtxRVytEAo6kcYYAFfEBMvhYroLgulUBsRu+ChOxBOPhzj9HmGX21rA93us9Cw7GxxIvHtIUvHTPsNr1NL0dUf27zKnM0zrDdehb2Tb76IjUbB8hpeuAUq53ccrU0EQiER7OgFaIqYH9Ij+Y0ucAv3KG4+diVe+jkWoqpgVrrjWhxsohjJTCiJgPxVDe7yp5xZ44Jd2mR05/Zt6pCJVQtySBN4tzTcMtWX1ktDokxrEfuJ60YDQFxI4pxx7acfCHco6I4g79W+aVOzt3mHVleLenixaz90iv1PH8W9Gp3FtOrSdJiMTAu3IN2hDJ7sWKTuFx80mh1DqX0gDc8OBEIUQ6larBLJ4hx6Y9mYYJvkTYACD3mF/6jLSKeUUk4Oeo9urnYrH4qZ+GLIJ0iwf+Mrgwlcy7G+g3Lg8OX22D9eSmyLLj5VH5QKlNjvAuianWrpTaJcUdpq6kDA5YyZoj6hajADem19QUh38HLElfdx6dgIjpPE/Oc7jECqK8jk6qnTMux/ncMrDnA5PCBnzCi6v6O7Fl5khDwQ43i9tY4tYcDrAHPeK2WULrstHcJgE2PhbywOv9Dth5kIQEVibHBq6fLbOXqlKD+/guP/jJYYgZpTLwA+Yq6uSojnIjn1IZO66z0t9fc328H/J7M22FcHHshZEHCm5MsQ0gCKThgUaPQHhIbHa7Qqw46ysTCYS6AIOFTYeoxPSN1Tm2WJ1fYHtLDHiNF2vlc8OPXPJIIC6fJMJslHoYE7SmQIwJ1BeyuQu8wL1iaqLX4CwDqZ/l/Nx04fDD0xA06TFwSc+a1iXFRnt2l2UgQz4wwbA5oEphx1PF2q990NJCEtkGzPpSXxZyDpXcxvF0D93oElbKd8yEWRC9SdWvHD81Q8gZwtkSbkI7ENKn2EOQlxG2CqMYwuTYTKc/9bjRiiD8 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0GjBQDBVntbfSNjr8ZdHgEGDIUxFhKYGZgkgXoLhGwCg04hNRcBAgEBAQEBAQIBAQIQAQEWOi+CNSKCYgMDJ2JRVwcSgyKCAqhgM4pkiRiBWD+OegKNd40FBwKCAASNUQsVjjiTKIFDAjOBVE0jgzmCJReONx8wjwsBAQ X-IPAS-Result: A0GjBQDBVntbfSNjr8ZdHgEGDIUxFhKYGZgkgXoLhGwCg04hNRcBAgEBAQEBAQIBAQIQAQEWOi+CNSKCYgMDJ2JRVwcSgyKCAqhgM4pkiRiBWD+OegKNd40FBwKCAASNUQsVjjiTKIFDAjOBVE0jgzmCJReONx8wjwsBAQ X-IronPort-AV: E=Sophos;i="5.53,267,1531785600"; d="scan'208";a="7622027" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2018 00:04:47 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 20 Aug 2018 17:04:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,267,1531810800"; d="scan'208";a="250527768" Received: from cschaufl-mobl.amr.corp.intel.com ([10.252.136.122]) by orsmga005.jf.intel.com with ESMTP; 20 Aug 2018 17:04:46 -0700 From: Casey Schaufler To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, casey.schaufler@intel.com, dave.hansen@intel.com, deneen.t.dock@intel.com, kristen@linux.intel.com, arjan@linux.intel.com Date: Mon, 20 Aug 2018 17:04:41 -0700 Message-Id: <20180821000444.7004-3-casey.schaufler@intel.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180821000444.7004-1-casey.schaufler@intel.com> References: <20180821000444.7004-1-casey.schaufler@intel.com> X-Mailman-Approved-At: Tue, 21 Aug 2018 08:10:45 -0400 Subject: [PATCH v3 2/5] X86: Support LSM determination of side-channel X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP When switching between tasks it may be necessary to set an indirect branch prediction barrier if the tasks are potentially vulnerable to side-channel attacks. This adds a call to security_task_safe_sidechannel so that security modules can weigh in on the decision. Signed-off-by: Casey Schaufler --- arch/x86/mm/tlb.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index 6eb1f34c3c85..8714d4af06aa 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -270,11 +271,14 @@ void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next, * threads. It will also not flush if we switch to idle * thread and back to the same process. It will flush if we * switch to a different non-dumpable process. + * If a security module thinks that the transition + * is unsafe do the flush. */ - if (tsk && tsk->mm && - tsk->mm->context.ctx_id != last_ctx_id && - get_dumpable(tsk->mm) != SUID_DUMP_USER) - indirect_branch_prediction_barrier(); + if (tsk && tsk->mm && tsk->mm->context.ctx_id != last_ctx_id) { + if (get_dumpable(tsk->mm) != SUID_DUMP_USER || + security_task_safe_sidechannel(tsk) != 0) + indirect_branch_prediction_barrier(); + } if (IS_ENABLED(CONFIG_VMAP_STACK)) { /* From patchwork Tue Aug 21 00:04:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schaufler, Casey" X-Patchwork-Id: 10571423 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B781913B6 for ; Tue, 21 Aug 2018 12:15:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ACEF529F7C for ; Tue, 21 Aug 2018 12:15:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A0A3729F9D; Tue, 21 Aug 2018 12:15:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from ucol19pa09.eemsg.mail.mil (ucol19pa09.eemsg.mail.mil [214.24.24.82]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A355729F7C for ; Tue, 21 Aug 2018 12:15:13 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.53,269,1531785600"; d="scan'208";a="758891520" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by ucol19pa09.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 21 Aug 2018 12:15:06 +0000 X-IronPort-AV: E=Sophos;i="5.53,269,1531785600"; d="scan'208";a="15037516" IronPort-PHdr: 9a23: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 X-IPAS-Result: A2BzBAAmAXxb/wHyM5BaHgEGDIMgggASFhKMW45FlSQUgWIPGBSIPTUXAQIBAQEBAQECAWwogjUkgl8DAwECJBMUIA4DCQEBQAgIAwEtFREHBwsFGASDAYICpl0zimCGUYQfP4ESgl0HhHEIARIBhXcCjR4vMI0IBwKCAgSNUgsVjjmTM4FDAzNhcU0jUIJpgiUXjjdPDHGMHYI6AQE Received: from tarius.tycho.ncsc.mil (HELO tarius.infosec.tycho.ncsc.mil) ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 21 Aug 2018 12:15:05 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7LCF4os023645; Tue, 21 Aug 2018 08:15:05 -0400 Received: from tarius.infosec.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w7L04nIS033217 for ; Mon, 20 Aug 2018 20:04:49 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7L04laB014327 for ; Mon, 20 Aug 2018 20:04:48 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AeBgDBVntbfSNjr8Zdg1GCERYSmBiDBZUfFIFmC4RsAoNNITUXAQIBAQEBAQECFAEBFjqFZwMDJ2JRVwcSgyKCAqhgM4pkhlGCR4FYP4ESgl0HhHGGEwKNGV6NBQcCggAEjVELFY44kyiBQgE1gVNNI4M5giUXjjcfMAyOfwEB X-IPAS-Result: A1AeBgDBVntbfSNjr8Zdg1GCERYSmBiDBZUfFIFmC4RsAoNNITUXAQIBAQEBAQECFAEBFjqFZwMDJ2JRVwcSgyKCAqhgM4pkhlGCR4FYP4ESgl0HhHGGEwKNGV6NBQcCggAEjVELFY44kyiBQgE1gVNNI4M5giUXjjcfMAyOfwEB X-IronPort-AV: E=Sophos;i="5.53,267,1531800000"; d="scan'208";a="350582" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 20 Aug 2018 20:04:48 -0400 IronPort-PHdr: 9a23:6coGSBM58+L3FShihOol6mtUPXoX/o7sNwtQ0KIMzox0I/r7rarrMEGX3/hxlliBBdydt6obzbKO+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZLebxlKiTanfb9+MAi9oBnMuMURnYZsMLs6xAHTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0yRD+s7bpkSAXwhSkHKTA37W/ZhM93gq1ZrhKsvABzz5LObY2JLvdyYr/RcNUHTmRBRMZRUClBD5uiYoQVFOoOI+ZZpJTgqVQSrRuxHxSsBO3ryjBWnH/9wKo33Pg7HgHdwgMhH8gCsG/Io9X1LqgSTO61zK3WwjXZdP5W2DH96JTWfRAlu/2DQbVwcc/IxEQpCgjLjU2QpJT4Mz6R1ekBqXWX4uhgWO61j2Mqrxt9rzavy8oql4LHnJgaykre+iV82Is1JcO3SEp8YdO8HptQsjqaN455Qsw4X21kpDg2xqQHuZGnYCcG0ponxxvFZ/yGdYiI/gzsVOKLLThkg3Jlfaqzhxe08Ue+1u3xTtS43VJJoyZfj9XBtHAA2wbX58WDUPdw8Ees1S6K1w/J6+FEJU40lbDcK54k2rM/ioAcsV/dES72gkn2l7OZdkU+9ei15eTnZqvppoWHOo91jAH+LrohmsilDeskNQgOWnCX+f6g27374U35XLJKg+UtkqbHtJDaJMIbprO2AgJOzoYi6wqwDzeh0NgCm3kHN0hKdAiIj4juJVGdaMz/WPSymVKhlHJrzurKM7vgBJrlKnnYjKyneq5w7VFVzA51xtdao9pQC7ccMLfwV1X3udjwEBA0KUq3zvzhBdE70ZkRHSqLA6mEIObJvFSV/OMzMqyJY4MIvDvVNfco/bjtgGU/lFtberOmmdMMZXS5GOl2C1mIanrrxNEaGCEFuRR6BOfjk1CTFyVYZ3+vUaYx/Bk6Dp6rCcHIQYXpyLCIwir9HpRQfW1AIlGKDXrsMY6DXrNEZC+UL8Jn1CBCWb+qSKcg0w2jsEnxzL8jZunO+zYEuJTL0Nlz+v2VlBcu+DgyBMOYlymEVWN9mEsMRjkrzOZ+p1BwzhGI1q0rreZfEIl47uhEQ08BPp7V0uJ+Bsq6DgnIZdqYDk2tQty7DzU8VPowxcMDZwB2HND03UOL5DajH7JAz+/DP5cz6K+Jh3U= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0GmBQDBVntbfSNjr8Zdg1GCERYSmBmDBZUfFIFmC4RsAoNOITUXAQIBAQEBAQECAQECEAEBFjovgjUigmIDAydiUVcHEoMiggKoYDOKZIZRgkeBWD+BEoJdB4RxhhMCjRlejQUHAoIABI1RCxWOOJMogUIBNYFUTSODOYIlF443HzAMjn8BAQ X-IPAS-Result: A0GmBQDBVntbfSNjr8Zdg1GCERYSmBmDBZUfFIFmC4RsAoNOITUXAQIBAQEBAQECAQECEAEBFjovgjUigmIDAydiUVcHEoMiggKoYDOKZIZRgkeBWD+BEoJdB4RxhhMCjRlejQUHAoIABI1RCxWOOJMogUIBNYFUTSODOYIlF443HzAMjn8BAQ X-IronPort-AV: E=Sophos;i="5.53,267,1531785600"; d="scan'208";a="7622028" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2018 00:04:47 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 20 Aug 2018 17:04:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,267,1531810800"; d="scan'208";a="250527780" Received: from cschaufl-mobl.amr.corp.intel.com ([10.252.136.122]) by orsmga005.jf.intel.com with ESMTP; 20 Aug 2018 17:04:46 -0700 From: Casey Schaufler To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, casey.schaufler@intel.com, dave.hansen@intel.com, deneen.t.dock@intel.com, kristen@linux.intel.com, arjan@linux.intel.com Date: Mon, 20 Aug 2018 17:04:42 -0700 Message-Id: <20180821000444.7004-4-casey.schaufler@intel.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180821000444.7004-1-casey.schaufler@intel.com> References: <20180821000444.7004-1-casey.schaufler@intel.com> X-Mailman-Approved-At: Tue, 21 Aug 2018 08:10:45 -0400 Subject: [PATCH v3 3/5] LSM: Security module checking for side-channel dangers X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP The sidechannel LSM checks for cases where a side-channel attack may be dangerous based on security attributes of tasks. This includes: Effective UID of the tasks is different Capablity sets are different Tasks are in different namespaces An option is also provided to assert that task are never to be considered safe. This is high paranoia, and expensive as well. Signed-off-by: Casey Schaufler --- MAINTAINERS | 6 ++ include/linux/lsm_hooks.h | 5 + security/Kconfig | 1 + security/Makefile | 2 + security/security.c | 1 + security/sidechannel/Kconfig | 60 +++++++++++ security/sidechannel/Makefile | 1 + security/sidechannel/sidechannel.c | 162 +++++++++++++++++++++++++++++ 8 files changed, 238 insertions(+) create mode 100644 security/sidechannel/Kconfig create mode 100644 security/sidechannel/Makefile create mode 100644 security/sidechannel/sidechannel.c diff --git a/MAINTAINERS b/MAINTAINERS index 3119bba7971c..d078d6a5b471 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -13066,6 +13066,12 @@ F: drivers/slimbus/ F: Documentation/devicetree/bindings/slimbus/ F: include/linux/slimbus.h +SIDECHANNEL SECURITY MODULE +M: Casey Schaufler +L: linux-security-module@vger.kernel.org +S: Maintained +F: security/sidechannel/ + SMACK SECURITY MODULE M: Casey Schaufler L: linux-security-module@vger.kernel.org diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index fd2a7e6beb01..d48e4a085fe2 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -2088,5 +2088,10 @@ void __init loadpin_add_hooks(void); #else static inline void loadpin_add_hooks(void) { }; #endif +#ifdef CONFIG_SECURITY_SIDECHANNEL +void __init sidechannel_add_hooks(void); +#else +static inline void sidechannel_add_hooks(void) { }; +#endif #endif /* ! __LINUX_LSM_HOOKS_H */ diff --git a/security/Kconfig b/security/Kconfig index c4302067a3ad..28cb7b2939ee 100644 --- a/security/Kconfig +++ b/security/Kconfig @@ -237,6 +237,7 @@ source security/tomoyo/Kconfig source security/apparmor/Kconfig source security/loadpin/Kconfig source security/yama/Kconfig +source security/sidechannel/Kconfig source security/integrity/Kconfig diff --git a/security/Makefile b/security/Makefile index 4d2d3782ddef..d0c9e1b227f9 100644 --- a/security/Makefile +++ b/security/Makefile @@ -10,6 +10,7 @@ subdir-$(CONFIG_SECURITY_TOMOYO) += tomoyo subdir-$(CONFIG_SECURITY_APPARMOR) += apparmor subdir-$(CONFIG_SECURITY_YAMA) += yama subdir-$(CONFIG_SECURITY_LOADPIN) += loadpin +subdir-$(CONFIG_SECURITY_SIDECHANNEL) += sidechannel # always enable default capabilities obj-y += commoncap.o @@ -25,6 +26,7 @@ obj-$(CONFIG_SECURITY_TOMOYO) += tomoyo/ obj-$(CONFIG_SECURITY_APPARMOR) += apparmor/ obj-$(CONFIG_SECURITY_YAMA) += yama/ obj-$(CONFIG_SECURITY_LOADPIN) += loadpin/ +obj-$(CONFIG_SECURITY_SIDECHANNEL) += sidechannel/ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o # Object integrity file lists diff --git a/security/security.c b/security/security.c index 353b711e635a..777919349751 100644 --- a/security/security.c +++ b/security/security.c @@ -80,6 +80,7 @@ int __init security_init(void) capability_add_hooks(); yama_add_hooks(); loadpin_add_hooks(); + sidechannel_add_hooks(); /* * Load all the remaining security modules. diff --git a/security/sidechannel/Kconfig b/security/sidechannel/Kconfig new file mode 100644 index 000000000000..af9396534128 --- /dev/null +++ b/security/sidechannel/Kconfig @@ -0,0 +1,60 @@ +config SECURITY_SIDECHANNEL + bool "Sidechannel attack safety extra checks" + depends on SECURITY + default n + help + Look for a variety of cases where a side-channel attack + could potentially be exploited. Instruct the switching + code to use the indirect_branch_prediction_barrier in + cases where the passed task and the current task may be + at risk. + + If you are unsure how to answer this question, answer N. + +config SECURITY_SIDECHANNEL_UIDS + bool "Sidechannel check on UID" + depends on SECURITY_SIDECHANNEL + default n + help + Assume that tasks with different effective UIDs may be + subject to side-channel attacks. As most task switching + occurs between tasks with different effective UIDs this + can have a significant performance impact. + + If you are unsure how to answer this question, answer N. + + +config SECURITY_SIDECHANNEL_CAPABILITIES + bool "Sidechannel check on capability sets" + depends on SECURITY_SIDECHANNEL + default n + help + Assume that tasks with different sets of privilege may be + subject to side-channel attacks. Potential interactions + where the attacker lacks capabilities the attacked has + are blocked. + + If you are unsure how to answer this question, answer N. + +config SECURITY_SIDECHANNEL_NAMESPACES + bool "Sidechannel check on namespaces" + depends on SECURITY_SIDECHANNEL + depends on NAMESPACES + default n + help + Assume that tasks in different namespaces may be + subject to side-channel attacks. User, PID and cgroup + namespaces are checked. + + If you are unsure how to answer this question, answer N. + +config SECURITY_SIDECHANNEL_ALWAYS + bool "Sidechannel assumed to always be possible" + depends on SECURITY_SIDECHANNEL + default n + help + Assume that all tasks may be subject to side-channel attacks. + Always instruct the system to use countermeasures regardless + of the potential impact. + + If you are unsure how to answer this question, answer N. diff --git a/security/sidechannel/Makefile b/security/sidechannel/Makefile new file mode 100644 index 000000000000..f61d83f28035 --- /dev/null +++ b/security/sidechannel/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_SECURITY_SIDECHANNEL) += sidechannel.o diff --git a/security/sidechannel/sidechannel.c b/security/sidechannel/sidechannel.c new file mode 100644 index 000000000000..4da7d6dafdc5 --- /dev/null +++ b/security/sidechannel/sidechannel.c @@ -0,0 +1,162 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Side Channel Safety Security Module + * + * Copyright (C) 2018 Intel Corporation. + * + */ + +#define pr_fmt(fmt) "SideChannel: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_SECURITY_SIDECHANNEL_ALWAYS +static int sidechannel_task_safe_sidechannel(struct task_struct *p) +{ + return -EACCES; +} +#else +/* + * safe_by_uid - Are task and current sidechannel safe? + * @p: task to check on + * + * Returns 0 if the tasks are sidechannel safe, -EACCES otherwise. + */ +#ifdef CONFIG_SECURITY_SIDECHANNEL_UIDS +static int safe_by_uid(struct task_struct *p) +{ + const struct cred *ccred = current_real_cred(); + const struct cred *pcred = rcu_dereference_protected(p->real_cred, 1); + + /* + * Credential checks. Considered safe if: + * UIDs are the same + */ + if (ccred != pcred && ccred->euid.val != pcred->euid.val) + return -EACCES; + return 0; +} +#else +static inline int safe_by_uid(struct task_struct *p) +{ + return 0; +} +#endif + +/* + * safe_by_capability - Are task and current sidechannel safe? + * @p: task to check on + * + * Returns 0 if the tasks are sidechannel safe, -EACCES otherwise. + */ +#ifdef CONFIG_SECURITY_SIDECHANNEL_CAPABILITIES +static int safe_by_capability(struct task_struct *p) +{ + const struct cred *ccred = current_real_cred(); + const struct cred *pcred = rcu_dereference_protected(p->real_cred, 1); + + /* + * Capabilities checks. Considered safe if: + * current has all the capabilities p does + */ + if (ccred != pcred && + !cap_issubset(pcred->cap_effective, ccred->cap_effective)) + return -EACCES; + return 0; +} +#else +static inline int safe_by_capability(struct task_struct *p) +{ + return 0; +} +#endif + +#ifdef CONFIG_SECURITY_SIDECHANNEL_NAMESPACES +/** + * safe_by_namespace - Are task and current sidechannel safe? + * @p: task to check on + * + * Returns 0 if the tasks are sidechannel safe, -EACCES otherwise. + */ +static int safe_by_namespace(struct task_struct *p) +{ + struct cgroup_namespace *ccgn = NULL; + struct cgroup_namespace *pcgn = NULL; + const struct cred *ccred; + const struct cred *pcred; + + /* + * Namespace checks. Considered safe if: + * cgroup namespace is the same + * User namespace is the same + * PID namespace is the same + */ + if (current->nsproxy) + ccgn = current->nsproxy->cgroup_ns; + if (p->nsproxy) + pcgn = p->nsproxy->cgroup_ns; + if (ccgn != pcgn) + return -EACCES; + + ccred = current_real_cred(); + pcred = rcu_dereference_protected(p->real_cred, 1); + + if (ccred->user_ns != pcred->user_ns) + return -EACCES; + if (task_active_pid_ns(current) != task_active_pid_ns(p)) + return -EACCES; + return 0; +} +#else +static inline int safe_by_namespace(struct task_struct *p) +{ + return 0; +} +#endif + +/** + * sidechannel_task_safe_sidechannel - Are task and current sidechannel safe? + * @p: task to check on + * + * Returns 0 if the tasks are sidechannel safe, -EACCES otherwise. + */ +static int sidechannel_task_safe_sidechannel(struct task_struct *p) +{ + int rc; + + /* + * Easy optimizations + */ + if (p == current || p->pid == current->pid) + return 0; + + rc = safe_by_uid(p); + if (rc) + return rc; + rc = safe_by_capability(p); + if (rc) + return rc; + rc = safe_by_namespace(p); + if (rc) + return rc; + return 0; +} +#endif /* CONFIG_SECURITY_SIDECHANNEL_ALWAYS */ + +static struct security_hook_list sidechannel_hooks[] __lsm_ro_after_init = { + LSM_HOOK_INIT(task_safe_sidechannel, sidechannel_task_safe_sidechannel), +}; + +void __init sidechannel_add_hooks(void) +{ + pr_info("Extra sidechannel checks enabled\n"); + security_add_hooks(sidechannel_hooks, ARRAY_SIZE(sidechannel_hooks), + "sidechannel"); +} From patchwork Tue Aug 21 00:04:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schaufler, Casey" X-Patchwork-Id: 10571421 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3E44921 for ; Tue, 21 Aug 2018 12:15:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BE16429F7C for ; Tue, 21 Aug 2018 12:15:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B221829F9E; Tue, 21 Aug 2018 12:15:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from upbd19pa08.eemsg.mail.mil (upbd19pa08.eemsg.mail.mil [214.24.27.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 18A1129F7C for ; Tue, 21 Aug 2018 12:14:58 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by upbd19pa08.eemsg.mail.mil with ESMTP; 21 Aug 2018 12:14:57 +0000 X-IronPort-AV: E=Sophos;i="5.53,269,1531785600"; d="scan'208";a="15037493" IronPort-PHdr: 9a23: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 X-IPAS-Result: A2CFAwAmAXxb/wHyM5BaHAEBAQQBAQoBAYUgEhYSjFuORZU4gVoXGBSIPTgUAQIBAQEBAQECAWwogjUkgl8DAwECJBMUIA4DCQEBQAgIAwEtFREHBwsFGASDAYICpl0zimCKcD+BEoJdhQABEgGFdwKNTTCNCAcCggIEjVILFYE+hyeFVJMzgVghYXFNI1CCaYIlF443T32MHYI6AQE Received: from tarius.tycho.ncsc.mil (HELO tarius.infosec.tycho.ncsc.mil) ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 21 Aug 2018 12:14:56 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7LCEqAR023632; Tue, 21 Aug 2018 08:14:54 -0400 Received: from tarius.infosec.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w7L04n4i033218 for ; Mon, 20 Aug 2018 20:04:49 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7L04mkW014331 for ; Mon, 20 Aug 2018 20:04:48 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AcBgDBVntbfSNjr8ZdHgEGDIUxFhKYGIMFlxkLhGwCg00hNxUBAgEBAQEBAQIUAQEWOoVnAwMnYlFXBxKDIoICqGAzimSJGIFYP4ESgl2LCwKNd40FBwKCAASNUQsVgT6HJ4VTkyiBVyGBU00jgzmCJReONx8wjwsBAQ X-IPAS-Result: A1AcBgDBVntbfSNjr8ZdHgEGDIUxFhKYGIMFlxkLhGwCg00hNxUBAgEBAQEBAQIUAQEWOoVnAwMnYlFXBxKDIoICqGAzimSJGIFYP4ESgl2LCwKNd40FBwKCAASNUQsVgT6HJ4VTkyiBVyGBU00jgzmCJReONx8wjwsBAQ X-IronPort-AV: E=Sophos;i="5.53,267,1531800000"; d="scan'208";a="350583" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 20 Aug 2018 20:04:48 -0400 IronPort-PHdr: 9a23:TZvgoBV8Kch0oU/5q8O5z4M1gYHV8LGtZVwlr6E/grcLSJyIuqrYbRKHt8tkgFKBZ4jH8fUM07OQ7/i/HzRYqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba9wIRmssQndqtQdjJd/JKo21hbHuGZDdf5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2Ao/8LrrgXMTRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VDK/5KptVRTmijoINyQh/W/XlMJ+kaxVrhGmqRN9zY7Ze52ZOOZkc6/BZ94WWXZNU8BMXCJBGIO8aI4PAvIfMOlCtInyuVsPpgajCwawBOPg0CJIhnHy3aIkyeQqDAbL0xA6ENIVrnvVrM/5NLwOXuC11qbI0DvDb/dI1jfn84XIcxYhoe2SUrJ0a8be1U4vFwbcg1iWtIfrPCuV2/wQv2Wf7OdsT/+jhmwnpg1rpjWiwt0gh4fJi48T11vK7z92wJwvKt29UEN7YcCrEJ9XtyyCOYt2R9giQ2RnuCkg1rEKpYC3cDELyJs72xHTcfKHc42S7hLiUuaRPSl3hHZ/dL2jgBay9FCsyuz6VsaqzFZHtjdJn93Pu3wXyhDe6MiKRuF580qlwzqC2QDe5vlBIU8ulKrbL5AhwqQ3lpoWqUnMAjX5mF7og66WbEkk4fSn6+T9bbX7qJ+cM5F7ihvlP6QvnMy/Hfo3MgwUU2eH/uS80aXv/VflT7VSkv02jq7ZvYjBJcsFoq65AglV0pss6hukEzen0MgXnXkALF5ffhKHlJLmN0vBIPD/E/fsy2irxTRm3fbLOvjhC4/BI37ClrjJebdm91UazxI+y89W45YSAbYEZLr3W0nspJnbAwU/Pgic3enqEpN+25kYVGbJBbWWdOvWsFmV9qc0LuKRfo4JqXP4LPQ44/PGk3A0gxkecLOv0J9Rb2q3Wrx9LkGYZ2f8qssQGmcN+AwlRarlj0PGGTVafHujGbk35jgmBoarF6/CQJyghPqK2yL/VpFfeG0AClmKCnruX4SCR/oILimVJ4spnjECWLWnDZNn2Raltyf7zaZqKqzf/Shc/ZH51cNp6uv7kRA06CwyDsKB3mXLRGZx2isBXT0/2oh7oEpg2hGC17R1h7pTEtkAyelOV1IRPIXR3qRBAND7RwzFc83BHF2vWdi3Ryo6TtsszdsDeW58HcmvilbI2C/8UOxdrKCCGJFhqvGU5HP2Pcsok3s= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0GlBQDBVntbfSNjr8ZdHgEGDIUxFhKYGYMFlxkLhGwCg04hNxUBAgEBAQEBAQIBAQIQAQEWOi+CNSKCYgMDJ2JRVwcSgyKCAqhgM4pkiRiBWD+BEoJdiwsCjXeNBQcCggAEjVELFYE+hyeFU5MogVchgVRNI4M5giUXjjcfMI8LAQE X-IPAS-Result: A0GlBQDBVntbfSNjr8ZdHgEGDIUxFhKYGYMFlxkLhGwCg04hNxUBAgEBAQEBAQIBAQIQAQEWOi+CNSKCYgMDJ2JRVwcSgyKCAqhgM4pkiRiBWD+BEoJdiwsCjXeNBQcCggAEjVELFYE+hyeFU5MogVchgVRNI4M5giUXjjcfMI8LAQE X-IronPort-AV: E=Sophos;i="5.53,267,1531785600"; d="scan'208";a="7622029" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2018 00:04:48 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 20 Aug 2018 17:04:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,267,1531810800"; d="scan'208";a="250527793" Received: from cschaufl-mobl.amr.corp.intel.com ([10.252.136.122]) by orsmga005.jf.intel.com with ESMTP; 20 Aug 2018 17:04:47 -0700 From: Casey Schaufler To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, casey.schaufler@intel.com, dave.hansen@intel.com, deneen.t.dock@intel.com, kristen@linux.intel.com, arjan@linux.intel.com Date: Mon, 20 Aug 2018 17:04:43 -0700 Message-Id: <20180821000444.7004-5-casey.schaufler@intel.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180821000444.7004-1-casey.schaufler@intel.com> References: <20180821000444.7004-1-casey.schaufler@intel.com> X-Mailman-Approved-At: Tue, 21 Aug 2018 08:10:45 -0400 Subject: [PATCH v3 4/5] Smack: Support determination of side-channel X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Smack considers its private task data safe if the current task has read access to the passed task. Signed-off-by: Casey Schaufler --- security/smack/smack_lsm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 91750205a5de..85dc053e610c 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -2299,6 +2299,23 @@ static void smack_task_to_inode(struct task_struct *p, struct inode *inode) isp->smk_inode = skp; } +/** + * smack_task_safe_sidechannel - Are the task and current sidechannel safe? + * @p: task to check on + * + * A crude value for sidechannel safety is that the current task is + * already allowed to read from the other. + * + * Returns 0 if the tasks are sidechannel safe, -EACCES otherwise. + */ +static int smack_task_safe_sidechannel(struct task_struct *p) +{ + struct smack_known *skp = smk_of_task_struct(p); + struct smack_known *ckp = smk_of_task_struct(current); + + return smk_access(ckp, skp, MAY_READ, NULL); +} + /* * Socket hooks. */ @@ -4718,6 +4735,7 @@ static struct security_hook_list smack_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(task_movememory, smack_task_movememory), LSM_HOOK_INIT(task_kill, smack_task_kill), LSM_HOOK_INIT(task_to_inode, smack_task_to_inode), + LSM_HOOK_INIT(task_safe_sidechannel, smack_task_safe_sidechannel), LSM_HOOK_INIT(ipc_permission, smack_ipc_permission), LSM_HOOK_INIT(ipc_getsecid, smack_ipc_getsecid), From patchwork Tue Aug 21 00:04:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schaufler, Casey" X-Patchwork-Id: 10571419 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9E059921 for ; Tue, 21 Aug 2018 12:11:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B04629F60 for ; Tue, 21 Aug 2018 12:11:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7E00529F78; Tue, 21 Aug 2018 12:11:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from USFB19PA13.eemsg.mail.mil (uphb19pa10.eemsg.mail.mil [214.24.26.84]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B605929F60 for ; Tue, 21 Aug 2018 12:11:53 +0000 (UTC) Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by USFB19PA13.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 21 Aug 2018 12:11:51 +0000 X-IronPort-AV: E=Sophos;i="5.53,269,1531785600"; d="scan'208";a="17238701" IronPort-PHdr: 9a23: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 X-IPAS-Result: A2AcBACuAHxb/wHyM5BaHQEBBQELAYUgEhYSjFujfYFaFxgUiD03FQECAQEBAQEBAgFsKII1JIJfAwMBAiQTFCAOAwkBAUAICAMBLRURBwcLBRgEgwGCAqZhM4pginA/g2+FAAESAYV3Ao1NMI0IBwKCAgSNUgsVjjmTM4FXImFxTSNQgmmCJReON099jB2COgEB Received: from tarius.tycho.ncsc.mil (HELO tarius.infosec.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 21 Aug 2018 12:11:49 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7LCAk0c023537; Tue, 21 Aug 2018 08:11:07 -0400 Received: from tarius.infosec.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w7L04nm5033221 for ; Mon, 20 Aug 2018 20:04:49 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w7L04nBU014334 for ; Mon, 20 Aug 2018 20:04:49 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AbBgDBVntbfSNjr8ZdHgEGDIUxFhKYGJoeC4RsAoNNITcVAQIBAQEBAQECFAEBFjqFZwMDJ2JRVwcSgyKCAqhgM4pkiRiBWD+Db4sLAo13jQUHAoIABI1RCxWOOJMogVchgVNNI4M5giUXjjcfMI8LAQE X-IPAS-Result: A1AbBgDBVntbfSNjr8ZdHgEGDIUxFhKYGJoeC4RsAoNNITcVAQIBAQEBAQECFAEBFjqFZwMDJ2JRVwcSgyKCAqhgM4pkiRiBWD+Db4sLAo13jQUHAoIABI1RCxWOOJMogVchgVNNI4M5giUXjjcfMI8LAQE X-IronPort-AV: E=Sophos;i="5.53,267,1531800000"; d="scan'208";a="350584" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 20 Aug 2018 20:04:49 -0400 IronPort-PHdr: 9a23:kVai7B9j5NvES/9uRHKM819IXTAuvvDOBiVQ1KB21eocTK2v8tzYMVDF4r011RmVBdqds6oMotGVmpioYXYH75eFvSJKW713fDhBt/8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1Ifn+FpLPg8it2O2+55/ebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTFUACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMMvrRr42RDui9b9mRh/2hikaOTA382bZhc5+jK9AvB6tuwZyz5LObY2JKPZzeL7Wc9MARWpGW8ZcTzJMDZmnb4QRD+sKIPtWoJX9p1QUsBu+Cw2sC/31yjRVgXL5wbc10/8/HgDGxgAgBM4BsHTOo9XoOqcSVf66zLPTwDXCafNWxSny6IzSfh89pvGMWKt9fMzMwkcsDwPIlkicpIjmMj+Py+gAsWiW4/BkWO+rkWIqpQF8rz6yzck2kIbJnJgaylXc+CV53ok1Idq4RVZ1Yd6hC5tQsi6aOJFqTs8+XW1koSc6xaEatpKhcigKzY4rxx/Za/ybbYeI5gjvW/qWITd9nH5lebS/iAiu8UW41+HxUsq53ExXoidHktTArHQA2hjJ5sWJSvZx5kKh1iyO1wDX5OFEO0c0la/DJpE92LEwjYQcsETZEi/thEr2jLWZdlgq+uis9evneK7rpp6aN49olA7+Nr4ildC4AeQ9KgQORXSU+fyg1L3/+k30WK5KgeMykqnYtpDaOMsaq7WlAw5Vzokj6xG/Ay2g0NQDh3YLNl1FeBWZj9uhB1abI/3iC/q7xlSlijtmwfHAMZXlA47RNT7EiLrnYr957whXzw93hdRe4Y9ET7IMOvT+Xmfvu9HCSBw0KQq5x6DgEto5nocfX3+fR7SUO77IsEOZo+coL/SIaacLtzvnbfso/fjjiTk+g1BZNbKk2ZoRdWCQAuVtI0LfZ2HlxNgGDyNCtQMlQf2sk1aCWCNdY3uod6M6+jw/TomhCMOLSomzjfqB1SGgE5t+Z2ZaB1TKGnDtM82IVvEBZSTUPoltlTcHfbmnV4IlkxqpsUuyyKBmNfbZ/AUctJT+xJ504fHekVc58jkwR82H0WiLZ2V1mH4YAT4wwK1750d6zwSty6991tdRDtFCr8hCUg4nO5rR1aQuANnpVxOHZdyJQUuoRti8KTA3Ut81hdQJZhAuSJ2Zkhnf0n/yUPcunLuRCcls/w== X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0GkBQDBVntbfSNjr8ZdHgEGDIUxFhKYGZoeC4RsAoNOITcVAQIBAQEBAQECAQECEAEBFjovgjUigmIDAydiUVcHEoMiggKoYDOKZIkYgVg/g2+LCwKNd40FBwKCAASNUQsVjjiTKIFXIYFUTSODOYIlF443HzCPCwEB X-IPAS-Result: A0GkBQDBVntbfSNjr8ZdHgEGDIUxFhKYGZoeC4RsAoNOITcVAQIBAQEBAQECAQECEAEBFjovgjUigmIDAydiUVcHEoMiggKoYDOKZIkYgVg/g2+LCwKNd40FBwKCAASNUQsVjjiTKIFXIYFUTSODOYIlF443HzCPCwEB X-IronPort-AV: E=Sophos;i="5.53,267,1531785600"; d="scan'208";a="7622030" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2018 00:04:48 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 20 Aug 2018 17:04:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,267,1531810800"; d="scan'208";a="250527805" Received: from cschaufl-mobl.amr.corp.intel.com ([10.252.136.122]) by orsmga005.jf.intel.com with ESMTP; 20 Aug 2018 17:04:47 -0700 From: Casey Schaufler To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, casey.schaufler@intel.com, dave.hansen@intel.com, deneen.t.dock@intel.com, kristen@linux.intel.com, arjan@linux.intel.com Date: Mon, 20 Aug 2018 17:04:44 -0700 Message-Id: <20180821000444.7004-6-casey.schaufler@intel.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180821000444.7004-1-casey.schaufler@intel.com> References: <20180821000444.7004-1-casey.schaufler@intel.com> X-Mailman-Approved-At: Tue, 21 Aug 2018 08:10:45 -0400 Subject: [PATCH v3 5/5] SELinux: Support SELinux determination of side-channel X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP SELinux considers tasks to be side-channel safe if they have FILE__READ access. Signed-off-by: Casey Schaufler --- security/selinux/hooks.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index a8bf324130f5..992f2402edaa 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -4219,6 +4219,14 @@ static void selinux_task_to_inode(struct task_struct *p, spin_unlock(&isec->lock); } +static int selinux_task_safe_sidechannel(struct task_struct *p) +{ + struct av_decision avd; + + return avc_has_perm_noaudit(&selinux_state, current_sid(), task_sid(p), + SECCLASS_FILE, FILE__READ, 0, &avd); +} + /* Returns error only if unable to parse addresses */ static int selinux_parse_skb_ipv4(struct sk_buff *skb, struct common_audit_data *ad, u8 *proto) @@ -7002,6 +7010,7 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(task_movememory, selinux_task_movememory), LSM_HOOK_INIT(task_kill, selinux_task_kill), LSM_HOOK_INIT(task_to_inode, selinux_task_to_inode), + LSM_HOOK_INIT(task_safe_sidechannel, selinux_task_safe_sidechannel), LSM_HOOK_INIT(ipc_permission, selinux_ipc_permission), LSM_HOOK_INIT(ipc_getsecid, selinux_ipc_getsecid),