Libseccomp: RFE: "рдЕрдзрд┐рдХрддрдо рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЕрдЧре░ 2015  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: seccomp/libseccomp

рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЕрдЪрд╛рдирдХ рдПрдХ рдирдИ рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

рдпрд╣рд╛рдВ рд╡рд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг perf_event_open() рд╣реИ, рдЬреЛ рдХрдИ рд╕реАрд╡реАрдИ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИред рдЬрдмрдХрд┐ perf рдХрдорд╛рд▓ рдХрд╛ рд╣реИ, рдореЗрд░рд╛ (рдЬреИрд╕реЗ) рд╡реЗрдм рд╕рд░реНрд╡рд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЬ seccomp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдЪреАрдЬ рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╡рд╣ рд╣реИ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рд▓реНрдЯрд░, рдЬреИрд╕реЗ рдХрд┐ 3.10. рдЗрд╕ рддрд░рд╣, рдкреНрд░рддреНрдпреЗрдХ рдирдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред рдХрд░реНрдиреЗрд▓ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдЕрдЪрд╛рдирдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдирдИ рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рдкрд░ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

@pcmoore рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдПрдХ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ arch-x86-syscalls.c ред

enhancement pendininfo prioritmedium

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдХ #286 рдЗрд╕ рдХрд╛рдо рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареЛрд╕ рдореБрджреНрджрд╛ рд╣реИ ... рднрд▓реЗ рд╣реА рд▓рдЧрднрдЧ рдкрд╛рдВрдЪ рд╕рд╛рд▓ рд╣реЛ рдЧрдП рд╣реЛрдВ;)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо syscalls.csv рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ syscall рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдХрдм рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдХрд╛рдо рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ~ 469 рд╕рд┐рд╕реНрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд (!) рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдореМрдЬреВрджрд╛ рд╕рд┐рд╕реНрдХреЛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рдо рдХреЛ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд" рдорд╛рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдордп рдХреЗ рднреЛрд░ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╕рд┐рд╕реНрдХрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВрдЧреЗред рдмреЗрд╢рдХ syscalls.csv рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдирдП рдкрд░рд┐рд╡рд░реНрдзрди рдХреЛ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдХреБрдЫ рдФрд░ рддреНрд╡рд░рд┐рдд рд╡рд┐рдЪрд╛рд░:

  • syscall.csv рдкреНрд░рд╛рд░реВрдк
#syscall (v5.8.0-rc5 2020-07-14),kver_min,x86,x86_64,...
accept,<version>,PNR,43,...

... рдЬрд╣рд╛рдВ <version> рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ "5_8", "UNDEF", рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХрд╛ред

  • рд╕рдВрд╕реНрдХрд░рдг рдЯреЛрдХрди
enum kernel_version {
    KV_UNDEF = 0,
    KV_1_0,
    KV_1_1,
    KV_1_3,
    KV_2_0,
    ...
    KV_5_8,
    _KV_MAX,
};

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

+1
рдЗрд╕рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд▓реА рд╕реВрдЪреА рдХреЛ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

@nmav рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ RFE рдЖрдВрддрд░рд┐рдХ syscall рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрдм syscall рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ Linux рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рди рдХрд┐ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЪрд▓ рд░рд╣рд╛ рдХрд░реНрдиреЗрд▓ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП syscall рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдПрдХ syscall рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк libseccomp рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдпрд╣ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЖрд░реНрдХ/ABI рдФрд░ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реЛ, libseccomp рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдпрд╣ RFE рд▓рдЧрднрдЧ рдкрд╛рдБрдЪ рд╡рд░реНрд╖ рдкреБрд░рд╛рдирд╛ рд╣реИ, рдФрд░ @cgwalters рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХрд▓ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рд╣рд░ рдореИрдВрдиреЗ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рдирд╣реАрдВ рджреЗрдЦреА рдпрд╛ рд╕реБрдиреА рд╣реИред рдХрдИ рдЕрдиреНрдп рдЦреБрд▓реЗ рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░ рдХрдм рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдРрд╕реА рдЪреАрдЬ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧреАред

@cgwalters рдФрд░ @drakenclimber 2020 рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕реЗ WONTFIX рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд▓реБрддреНрдл рдЙрдард╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдпрд╣ рдХрджрдо рдЙрдард╛рдПрдВ, рдореИрдВ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@cgwalters рдФрд░ @drakenclimber 2020 рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕реЗ WONTFIX рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд▓реБрддреНрдл рдЙрдард╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдпрд╣ рдХрджрдо рдЙрдард╛рдПрдВ, рдореИрдВ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореЗрд░реЗ рдХрдИ рдЗрди-рд╣рд╛рдЙрд╕ рдЧреНрд░рд╛рд╣рдХ рдЗрд╕ рд╕рдЯреАрдХ рдХрд╛рд░рдг рд╕реЗ рдЕрдиреБрдорддрд┐ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗ рдПрдХ рдЗрдирдХрд╛рд░ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕рд┐рд╕реНрдХрд▓ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╕рд┐рд╕реНрдХрд▓ рд╣рдорд▓реЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

рдЖрдЗрдП рдЗрд╕реЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреЗрдВред рдореИрдВ Oracle рдХреЗ рднреАрддрд░ рдкреВрдЫреВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЙрдард╛ рд╕рдХреВрдВред рд▓реЗрдХрд┐рди @cgwalters (рдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдФрд░) рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдЕрдЧрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рдордп рдФрд░ рд░реБрдЪрд┐ рд╣реИ :)ред

рдареАрдХ рд╣реИ, рдЬрдм рддрдХ рд░реБрдЪрд┐ рд╣реИ, рдореБрдЭреЗ рдЗрд╕реЗ рдЦреБрд▓рд╛ рд░рдЦрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛!

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдХ #286 рдЗрд╕ рдХрд╛рдо рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареЛрд╕ рдореБрджреНрджрд╛ рд╣реИ ... рднрд▓реЗ рд╣реА рд▓рдЧрднрдЧ рдкрд╛рдВрдЪ рд╕рд╛рд▓ рд╣реЛ рдЧрдП рд╣реЛрдВ;)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо syscalls.csv рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ syscall рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдХрдм рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдХрд╛рдо рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ~ 469 рд╕рд┐рд╕реНрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд (!) рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдореМрдЬреВрджрд╛ рд╕рд┐рд╕реНрдХреЛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рдо рдХреЛ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд" рдорд╛рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдордп рдХреЗ рднреЛрд░ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╕рд┐рд╕реНрдХрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВрдЧреЗред рдмреЗрд╢рдХ syscalls.csv рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдирдП рдкрд░рд┐рд╡рд░реНрдзрди рдХреЛ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдХреБрдЫ рдФрд░ рддреНрд╡рд░рд┐рдд рд╡рд┐рдЪрд╛рд░:

  • syscall.csv рдкреНрд░рд╛рд░реВрдк
#syscall (v5.8.0-rc5 2020-07-14),kver_min,x86,x86_64,...
accept,<version>,PNR,43,...

... рдЬрд╣рд╛рдВ <version> рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ "5_8", "UNDEF", рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХрд╛ред

  • рд╕рдВрд╕реНрдХрд░рдг рдЯреЛрдХрди
enum kernel_version {
    KV_UNDEF = 0,
    KV_1_0,
    KV_1_1,
    KV_1_3,
    KV_2_0,
    ...
    KV_5_8,
    _KV_MAX,
};

рдХреНрдпрд╛ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЪреАрдЬрд╝ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдирдП syscalls рдХреЛ рдХрдо рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░ рдХрд░реНрдиреЗрд▓ рд╢рд╛рдЦрд╛рдУрдВ рдЬреИрд╕реЗ рдмреИрдХрдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

Red Hat рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдЙрдирдХреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВред

рдпрджрд┐ RedHat рдХрд┐рд╕реА рдкреБрд░рд╛рдиреЗ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ syscall рдХреЛ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП libseccomp рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреИрдЪ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди # 286 рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ - рдЧреИрд░-рд▓рдЧрд╛рддрд╛рд░ рдХреНрд░рдо рдореЗрдВ syscalls рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП openat2 close_range рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрдпрд╛рд▓реБ рд╣реИ рдореЗрд░реА рдЧрд▓рддреА рдХрд╛)ред

рдпрджрд┐ RedHat рдХрд┐рд╕реА рдкреБрд░рд╛рдиреЗ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ syscall рдХреЛ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП libseccomp рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреИрдЪ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ, syscalls(2) рдореИрдирдкреЗрдЬ рдореЗрдВ рдХреБрдЫ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдХреЛ рдХреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ syscall рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП syscall spelunking рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ - рдПрдХрдорд╛рддреНрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддрд┐-рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдХреБрдЫ рд╕рд┐рд╕реНрдХрд▓ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред

... рдПрдХрдорд╛рддреНрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддрд┐-рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдХреБрдЫ рд╕рд┐рд╕реНрдХреЛ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред

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

рдЗрд╕ @cyphar рдкрд░ рдЖрдк рдЬреЛ рднреА рдорджрдж рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

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

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

kloetzl picture kloetzl  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

vasanthaganeshk picture vasanthaganeshk  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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