selinux policy for slurmatos, the atos logo, atos codex, atos consulting, atos worldgrid, worldline,...

32
26-09-2017 © Atos SELinux policy for Slurm Gilles WIBER - CEA Mathieu BLANC –CEA M’hamed BOUAZIZ - Atos Liana BOZGA - Atos

Upload: others

Post on 15-Jul-2020

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

26-09-2017

© Atos

SELinux policy for Slurm

Gilles WIBER - CEA

Mathieu BLANC –CEA

M’hamed BOUAZIZ - Atos

Liana BOZGA - Atos

Page 2: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Cyber security in HPC

▶ SELinux presentation

– SELinux basics and benefits

– How it works

– Challenges

▶ SELinux Performance Results

▶ SELinux for Slurm

– Slurm architecture

– Confined processes

– Confined features

▶ Future work

SELinux policy for Slurm

2

Page 3: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

Cyber Security in HPC

Page 4: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ HPC have become increasingly desirable targets to attackers

▶ HPC protection includes:

– Protecting the set of distributed resources (network access, compute nodes, storage…)

– Ensure infrastructures, users, data, and jobs are running securely

▶ Standard security must be enhanced to address issues of HPC security

Securing an HPC?

4

Page 5: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ The issues related to HPC security are not exactly like general computer security

– Addressing and implementing traditional security solutions is the base for HPC (large and heterogeneous environment)

– Maintaining and monitoring cluster security is a challenge due to large-scale skill requirements and production constraints

– Keeping performance (or very low impact) is mandatory

Encountered challenges

5

Page 6: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Identity and authorization management must be put in place / managed (Kerberos, LDAP, etc)

– the solution must scale

▶ Confine and monitor network traffic

– To maximize computing resources availability

▶ The HPC should be perceived as one system, not as a set of systems

– Multi-level security must be put in place (in-deep security)

– Component security in addition to global security

=> Securing HPC services using SELinux

6

Mitigating HPC threats

Page 7: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

SELinux Presentation

Page 8: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Security-Enhanced Linux released by the NSA

– integrated into the Linux Security Modules (LSM) framework standard kernel

– implements MAC (Mandatory Access Control) based security policies

– provides service and user confinement

▶ Policy is the heart of SELinux

– A set of rules determines security and access permissions for everything in the system

– Defined by Types, Domains, Identities, Roles and Access with associated transitions

– Expertise is required to write/adapt policies (SELinux, service behavior, system calls, etc)

▶ Using a policy is simple and doesn’t need an expertise in SELinux

General introduction

8

Page 9: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Reduce vulnerability against privilege escalation attacks

▶ Can be used to enforce data confidentiality and integrity control

▶ Provide fine-grained access control

▶ To reach that goal all processes and files are labeled with a specific type

Benefits of running SELinux

subject Hooks LSM

object

AVC: denied

SELinux Policy

action request

eg: a process

eg: read

eg: file Verify access rights

No

Yes allow?

9

Page 10: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Red Hat 7.x provides SELinux targeted policies for standard UNIX services

▶ In a HPC context, resources are distributed

– SELinux protects local resources for each node

– A global policy will be loaded even if all services are not installed

10

Using SELinux in a HPC?

Linux Kernel

syslogd sshd … slurmctld … slurmd

Page 11: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

SELinux Performance Results

Page 12: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

12

Suite tests description

Name Type Parallelism IO

MPI_Init MPI MPI Aucun

MPI_STREAM Memory MPI/OpenMP Aucun

IMB MPI MPI Aucun

HPCC MPI MPI Aucun

OpenMPBench OpenMP OpenMP Aucun

SHOC GPU CUDA/OpenCL/MPI Aucun

IOR I/O bandwidth MPI POSIX/MPIIO/HDF5

b_eff_io I/O bandwidth MPI MPI-IO

metarates I/O bandwidth MPI POSIX

mdtest I/O bandwidth MPI POSIX

Abinit_Compilation I/O bandwidth Aucun POSIX

SPECViewPerf Visualization Aucun Aucun

Abinit Compute code MPI POSIX/MPIIO

WRF Compute code MPI NETCDF/POSIX

NAMD Compute code MPI POSIX

Page 13: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

13

Compute codes

Page 14: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

14

Lustre IOR tests (write bandwidth)

Page 15: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

15

mdtest: files creation

Page 16: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

16

mdtest: files stat

Page 17: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

17

HPCC: latency and bandwidth

Page 18: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ SELinux impact:

– No impact on pure compute code (even with GPU)

– Average 3% to 4% degradation on latency

– I/O:

• No impact on I/O bandwidth

• More than 100% degradation on metadata management

Notice:

Perhaps a good way to limit metadata access !!!

18

Performance and results

Page 19: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

SELinux for Slurm

Page 20: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

Security vision on Slurm

Slurmd

Slurmctld Slurmdbd

Slurm cmd

Management Nodes

Login nodes

Compute nodes

• root privileges • root Epilog/Prolog scripts • user step jobs • sensitive data

• Slurm user privileges • Slurm scripts • sensitive data

• user domain • open to all users • job submission

20

Page 21: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Securing Slurm Using SELinux requires:

– Confining Slurmd

– Confining Slurmctld

– Confining user commands

– Confining Slurmdbd

– Confining Slurm scripts

▶ Confining services => control accesses to local resources such as:

– network ports, files, directories…

▶ Writing the policy mustn’t affect the work of Slurm -> The policy must ensure that all features of Slurm are preserved

Slurm Policiy definition

21

Page 22: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

22

Confining Slurmd A view on used resources

slurmd

Network

Directories

Files

slurmctld

slurmd.pid

/etc/passwd

port

slurmd

ldap

ephemeral

/var/log/slurm

/proc/cpuinfo

/etc/resolv.conf

/var/spool/slurmd/

dns

process slurmstepd

Epilog/Prolog

Page 23: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

23

Slurmd Domain Creating Slurmd Policy

slurmd slurmd_t

slurmd.pid

/etc/passwd

slurmd

/var/spool/slurmd

/var/log/slurm

Linux SELinux

Ports

Directories

Files slurmd_run_t

auth_read_passwd(slurmd_t)

slurmd_port_t

slurmd_var_spool_t

slurmd_log_t

Epilog/Prolog slurmd_epilog_t

Page 24: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

24

Transition from slurmd_t to slurmstepd_t

slurmd_t Parent process

slurmd_t child process

slurmstepd_t New program

system_u:system_r:slurmd_t

system_u:system_r:slurmstepd_t

fork()

execve()

domain_auto_trans(slurmd_t, slurmstepd_exec_t, slurmstepd_t)

Page 25: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ Prolog/Epilog requires various privileges depending on job requirement

=> to ease implementation, transitions has been implemented (epilog_t)

=> ”open” environment to execute specific actions outside Slurm policy

25

Epilog and Prolog scripts

Epilog/ Prolog

users

slurmd user (root)

slurmctld user (slurm)

compute node

management nodes

login nodes

on execute

Page 26: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

26

Slurm controller Domain A view on used resources

slurmctld

Network

directories

files

slurmctld

slurmctld.pid

/etc/passwd

port slurmd

slurmdbd

ephemeral

/var/spool/slurm

/var/log/slurm

ldap

Page 27: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

27

Slurm controller Domain Creating SELinux Policies

slurmctld slurmctld_t

slurmctld

slurmctld.pid

/etc/passwd

slurmd

slurmdbd

ephemeral

/var/spool/slurm

/var/log/slurm

Linux SELinux

Ports

Directories

Files

slurmctld_port_t

slurmctld_run_t

auth_read_passwd(slurmctld_t)

slurmd_port_t

slurmdbd_port_t

ephemeral_t

slurmctld_var_spool_t

slurmd_log_t

Page 28: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

28

Confining slurmdbd

slurmdbd

Network

Files

slurmctld

slurmdbd.pid

port slurmdbd

process slurmdbd

mysqld

/var/log/slurm

Page 29: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ We defined a policy to confine:

– srun, sinfo, sacct, sbatch, scancel…

▶ Each command runs in a slurm_t domain

▶ Malicious users can’t use compiled commands

– copied or hacked commandes without label

▶ It allows user cmd to access only authorized Slurm ports

29

Confining Slurm user commands

Page 30: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

Conclusion

Page 31: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

| 26-09-2017 | © Atos Slurm User Group

▶ SELinux Slurm policy can be used to enforce security without additional complexity (pre-defined for Red Hat Linux)

– Policy also supports some features and plugins such as: X11 spank plugin, interactive jobs, etc

– Additional work has to be done to extend coverage

▶ SELinux security provides strong protection against Slurm processes threats (privilege escalation, etc) and also on data integrity (database, accounting, etc) without any additional impact on performance

▶ But keep in mind that:

– It is not an all-in-one security solution (part of the a global security design)

– Policy development and update requires tough expertise

31

To conclude…

Page 32: SELinux policy for SlurmAtos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero

Atos, the Atos logo, Atos Codex, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Unify, Yunano, Zero Email, Zero Email Certified and The Zero Email Company are registered trademarks of the Atos group. December 2016. © 2016 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos.

Thanks For more information please contact: [email protected]