Libseccomp: рдмрдЧ: рдУрдкрдирдПрдордкреА рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рд╕рд┐рддре░ 2017  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: seccomp/libseccomp

рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдХреА рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдкреНрд░рдХреГрддрд┐ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрдард┐рди рдмрдирд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ seccomp_omp.c.gz рдкрд░ рдЖ рдЧрдпрд╛ -O0 -ggdb -fopenmp рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред

рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдереНрд░реЗрдб рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖рд┐рджреНрдз рд╕рд┐рд╕реНрдХрд▓ рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдорд░ рдЬрд╛рддрд╛ рд╣реИред

$ ./seccomp_omp -t 1 -k 0      
86195973
[1]    10103 invalid system call (core dumped)  ./seccomp_omp -t 1 -k 0

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдзрд┐рдХ рдзрд╛рдЧреЗ рджрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

$ ./seccomp_omp -t 2 -k 0
86198868
86195973
86200317
^C

рдХрд╛рд░реНрдпрдХреНрд░рдо рдорд╛рд░рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдмрд╕ рдХреБрдЫ рднреА рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдиреБрдХрд╕рд╛рди рд╣реБрдЖ рд╣реИ рдХрд┐ SIGSYS рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ, рдФрд░ рдЗрд╕реЗ рд╣реИрдВрдбрд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛?

рдпрд╣ рдПрдХ libseccomp рдореБрджреНрджрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдореВрд▓ рдХрд╛рд░рдг рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ seccomp, рд╕рд┐рдЧреНрдирд▓ рдФрд░ рдереНрд░реЗрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реВрдВред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдХреБрдЫ рдЕрд░реНрде рдирд┐рдХрд╛рд▓ рдкрд╛рдПрдВрдЧреЗред

рд╕рднреА 19 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдиреЛрдЯ: рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЗ рдЕрдЪреНрдЫреЗ рд▓рд┐рдЦрд┐рдд рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ

рдЗрд╕рдХреА рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░рдХреГрддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ SCMP_FLTATR_CTL_TSYNC рдлрд╝рд┐рд▓реНрдЯрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ?

рдореИрдВрдиреЗ SCMP_FLTATR_CTL_TSYNC рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдереНрд░реЗрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ seccomp рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд░реНрдиреЗрд▓ рдХреЛ рд╡реИрд╕реЗ рднреА рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдпрд╣ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ)ред рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдореЗрдВ SCMP_FLTATR_CTL_TSYNC рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ (рдЬреЛ рдХрд┐ рдкреИрдбреЗрдВрдЯрд┐рдХ рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХреЗ рд╕рд╛рде 100 рд╕реЗ рдХрдо рд▓рд╛рдЗрди рд╣реИ)ред

рдареАрдХ рд╣реИ, рдореИрдВ рдмрд╕ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдирдП рдзрд╛рдЧреЗ рдкреИрджрд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдирд╛)ред рдореБрдЭреЗ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдмрд╣реБрдд рдЬрд▓реНрдж рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рди рдорд┐рд▓реЗред

рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИ рдХрд┐ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рд▓реЛ!

рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, ./seccomp_omp -t 1 -k 0 , openmp рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдереНрд░реЗрдб рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП openmp рдЙрд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдЖрдорддреМрд░ рдкрд░ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдореЗрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ seccomp_run_filters() рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП syscalls рдХреЛ рджреЗрдЦрдХрд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛, рдореИрдВрдиреЗ __NR_write() рдФрд░ __NR_madvise() рдкрд░ рдПрдХ рдХреЙрд▓ рджреЗрдЦреА, рдЬрд┐рд╕рдиреЗ seccomp рдХреЛ рдХрд░реНрдиреЗрд▓ рдХреЛ рдереНрд░реЗрдб рдХреЛ рдорд╛рд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред

рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, ./seccomp_omp -t 2 -k 0 , openmp рд▓реВрдк рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдУрдкрдирдПрдордкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рддрдм рд╕реНрдкрд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм seccomp_run_filters() рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рд░ рд╕реЗ syscalls рджреЗрдЦрддреЗ рд╣реИрдВред __NR_mmap(), __NR_mprotect(), __NR_clone(), __NR_futex(), рдФрд░ рдЕрдзрд┐рдХ syscalls рдХреЛ madvise() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрдд: рджреЛ рдзрд╛рдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдВрддрдд: рдореИрдбрд╡рд┐рд╕ () рдХрд╣рддрд╛ рд╣реИ рдФрд░ seccomp рдЙрд╕ рдзрд╛рдЧреЗ рдХреЛ рдареАрдХ рд╕реЗ рдорд╛рд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдУрдкрдирдПрдордкреА рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рджреВрд╕рд░рд╛ рдереНрд░реЗрдб рдореИрдбрд╡рд┐рдЬрд╝ () (рдФрд░ рдорд╛рд░реЗ рдЬрд╛рдПрдБ) рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдереНрд░реЗрдб рдлрд╝реНрдпреВрдЯреЗрдХреНрд╕ () рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЗрдб рдереНрд░реЗрдб рд╕реЗ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдПрдХ рдзрд╛рдЧрд╛ рдорд╛рд░рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдзрд╛рдЧрд╛ рдбреЗрдЯрд╛ (рдореГрдд рдзрд╛рдЧреЗ рд╕реЗ) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрднреА рдирд╣реАрдВ рдЖрдПрдЧрд╛ред

рдореИрдВрдиреЗ рдУрдкрдирдПрдордкреА рдХреЗ рд╕рд╛рде рдЬреНрдпрд╛рджрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдирд╛рдВрддрд░ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдкрд░ рдХреБрдЫ рдЪрд░реНрдЪрд╛ [ рез , реи , рей , ...] рд╣реЛрддреА рд╣реИред рдЕрдВрддрдд: рдпрд╣ рдПрдХ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдмрдЪрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:

  1. рдЕрдкрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ SCMP_ACT_KILL рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП SCMP_ACT_ERROR(5) ред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

  2. рдпрджрд┐ рдЖрдкрдХреЛ рдУрдкрдирдПрдордкреА рдХреА рд╢рдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк pthread_create() рдпрд╛ fork() рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@drakenclimber рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдУрдкрдирдПрдордкреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд┐рд╕реНрдХреЛ рдмрдирд╛ рд░рд╣реА рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдпрд╛ рд╡рд╣ рдПрдХ рдмрдбрд╝рд╛ рдмрд┐рдВрджреБ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИ?

@drakenclimber рдЕрдкрдирд╛ рд╕рдордп рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдПрдХ рдореГрдд рдзрд╛рдЧреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд▓рдХреНрд╖рдгреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреА рд╣реИред

рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП: рдореИрдВ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВ рдУрдкрдирдПрдордкреА рдХреЗ рд╕рд╛рде рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗ рднреА рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдХреБрдЫ рднреА рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рдкрд░рдорд╛рдгреБ рдмрдирд╛рдПрдВред рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдЕрдВрддрддрдГ рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдХреБрдЫ рд╣рдж рддрдХ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ (# 96) рдХреЛ рдорд╛рд░рдирд╛ рд╣реИред

рдХреНрдпрд╛ рдореВрд▓реНрдп рдореИрдВ рдореЗрдВ errno рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП SCMP_ACT_ERROR рдмрд╛рд░реАрдХреА рд╕реЗ рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SECCOMP_RET_KILL_PROCESS ? рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рд╕рднреА рд╕рд┐рд╕реНрдХреЛ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

@pcmoore - рдереЛрдбрд╝реЗред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдУрдкрдирдПрдордкреА рдЕрдкрдиреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЕрдВрджрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рдкрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реИред

@kloetzl - рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ - рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ

ctx = seccomp_init(SCMP_ACT_ERRNO(ENOTBLK));
...
bool kill_process = false;
int rc;
#pragma omp parallel for num_threads(THREADS)
  for (int i = 0; i < THREADS * 2; i++) {
    fprintf(stderr, "%u\n", func(i));
    if (i == K) {
      rc = madvise(NULL, 0, 0); 
      if (rc < 0)
        kill_process = true;
      }   
    // sleep(10);
  }

  if (kill_process)
    goto error;

  seccomp_release(ctx);
  return 0;
error:
  seccomp_release(ctx);
  return -1; 
}

рдХрд┐рд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП SCMP_ACT_ERRNO() рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред SCMP_ACT_ERRNO() рд╕рднреА syscalls рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рдЖрдк рдЪреБрди рд╕рдХреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреМрди рд╕рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдЪреБрдирдирд╛ - ENOTBLK рдХрд╣реЗрдВ - рдПрдХ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ seccomp рдХреЙрд▓ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рд╕реЗ рдЖрдИ рд╣реИред

tl; dr - рд╕рдорд╛рдВрддрд░ рд▓реВрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ, рд▓реЗрдХрд┐рди рд▓реВрдк рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЕрд╕рдлрд▓ рд╕рд┐рд╕реНрдХрд▓ рдХреЗ рдХрд╛рд░рдг рдЖрдкрдХреЛ рд▓реВрдк рдХреЗ рднреАрддрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рдХреНрд╖рд╛рддреНрдордХ рдХреЛрдбрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

@kloetzl - рдореИрдВ # 96 рдЕрдВрдХ рджреЗрдЦреВрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐

рдФрд░ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рдЖрдк рдЪреБрди рд╕рдХреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреМрди рд╕рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдХреЛ рдЪреБрдирдирд╛ - ENOTBLK рдХрд╣реЗрдВ - рдПрдХ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ seccomp рдХреЙрд▓ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рд╕реЗ рдЖрдИ рд╣реИред

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐, madvise рдХреЛ malloc рдХреА рдЖрдВрдд рдореЗрдВ рдЧрд╣рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореИрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ, рдЧреНрд▓рд┐рдмреИрдХ рд╣реИред рддреЛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧреНрд▓рд┐рдмреИрдХ (рдФрд░ рд╕рд┐рд╕реНрдХрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕рд┐рд╕реНрдХрд▓ рдЕрдкрдиреЗ рдореИрди рдкреЗрдЬ рдореЗрдВ рджреА рдЧрдИ рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ?

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдбрд╡рд┐рд╕реЗ рдХреЛ рдореЙрд▓реЛрдХ рдХреА рдЖрдВрддреЛрдВ рдореЗрдВ рдЧрд╣рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореИрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ, рдЧреНрд▓рд┐рдмреИрдХ рд╣реИред рддреЛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧреНрд▓рд┐рдмреИрдХ (рдФрд░ рд╕рд┐рд╕реНрдХрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕рд┐рд╕реНрдХрд▓ рдЕрдкрдиреЗ рдореИрди рдкреЗрдЬ рдореЗрдВ рджреА рдЧрдИ рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ?

рдЖрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрд╣реНрдЪреНрдЪрд╛. рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд▓рд┐рдмреИрдХ рдХреЛрдб рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ:

  • рдпрджрд┐ madvise рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ glibc _рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рднреА рд▓реМрдЯрд╛рдПрдЧрд╛
  • рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЧреНрд▓рд┐рдмреИрдХ рд╕реЗрдХрдХреЙрдореНрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрдиреА рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдЖрдк ENOTBLK рдЬреИрд╕реЗ "рдХрд╕реНрдЯрдо" рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд▓рдВрдмреА рдХрд╣рд╛рдиреА рдЫреЛрдЯреА, рдЧреНрд▓рд┐рдмрдХ рдХреЛ _any_ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЛ рджрдмрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рдХреЛрдб рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ

рдореИрдВ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрдиреЗ рд░рд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдУрдкрдирдПрдордкреА рдХреЗ рд╕рд╛рде рдореЗрд░реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдХрдореА рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рд╣реИ ... рдКрдкрд░ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ KILL_PROCESS рдпрд╣рд╛рдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрд╕ рдореБрджреНрджреЗ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ v2.4 рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреА рдореЗрд░реА рд╕реВрдЪреА рдореЗрдВ рд╣реИред

@pcmoore - рд╣рд╛рдВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ KILL_PROCESS рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рд╣реИред рдореИрдВрдиреЗ KILL_PROCESS рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдКрдкрд░ @kloetzl рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рд╣реИрдВрдЧ рдЕрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдЕрдЬрдЧрд░ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдореЗрдВ рдХреБрдЫ рдЭрдЯрдХреЗ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рдкреИрдЪ рдЖрдЙрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@drakenclimber рдКрд╣, рдкреИрдЪ? рдореБрдЭреЗ рдкреИрдЪ рдкрд╕рдВрдж рд╣реИ :)

рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ KILL_PROCESS рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ: рдореИрдВрдиреЗ рднреА рдЖрд░реНрдХ рдкрд░ libseccomp рдХрд╛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдХ рдХрд┐рдпрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд░рд╛рджреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдареЛрд╕ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рдХрд░реНрдиреЗрд▓ рдкрд░ рдЪрд▓рд╛рдирд╛ рдПрдХ рдмрдбрд╝реА рдЪреБрдиреМрддреА рд╣реЛ рд╕рдХрддреА рд╣реИред

@kloetzl рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣рд╛рдВ, рдЙрдЪрд┐рдд рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреЛрдб рдЬрд┐рддрдирд╛ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдпрд╣ IMHO рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред

рдореИрдВ @drakenclimber рд╕реЗ рдкреАрдЖрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЪреАрдЬреЛрдВ рдкрд░ рдХреБрдЫ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдХреБрдЫ COVID-19 рд╡рд╕рдВрдд рд╕рдлрд╛рдИ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ @kloetzl? рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рдФрд░ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджреЗрдВрдЧреЗ!

рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрдВрдд рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд░реЛрдбрд╝рд╛ рдХреЗ рд╕рд╛рдеред рдЬрдм рдПрдХ рдЕрдорд╛рдиреНрдп рд╕рд┐рд╕реНрдХрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдм рдЕрдзрд░ рдореЗрдВ рд▓рдЯрдХ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛рдп! SCMP_ACT_TRAP рдХреЛрдИ рднреА рдЦрд░рд╛рдм рд╕рд┐рд╕реНрдХрд▓ рдХрд╛ рдирд╛рдо рднреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдУрдкрдирдПрдордкреА рдореЗрд░реЗ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рдереНрд░реЗрдб рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдореБрдЭреЗ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдЗрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред

рдЖрд╣, рд╣рд╛рдБ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдХреЛ libseccomp рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреЗрдж рд╣реИред

рд╣рдореЗрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдмрд╛рдХреА рдХрд╛рдо рдХрд░ рдЧрдпрд╛!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

pcmoore picture pcmoore  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

drakenclimber picture drakenclimber  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pcmoore picture pcmoore  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdstrand picture jdstrand  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

erdumbledore picture erdumbledore  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ