рдЬрдЯрд┐рд▓рддрд╛
рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреЗрд╡рд▓ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рднреВрдорд┐рдХрд╛ рдкреНрд░рдгрд╛рд▓реА (RBAC / SELinux) рдХреА рд╕реНрдерд╛рдкрдирд╛ рдирд╣реАрдВ рдХреА рд╣реИред рд╢рд╛рдпрдж, рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рднреА рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ ... :) рдореИрдВ, рдЖрдЦрд┐рд░рдХрд╛рд░, рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ, рдФрд░ рд╣рдореЗрд╢рд╛ рдкреНрд░рд╢рд╛рд╕рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдЧрд░ рд╣рд╛рд░реНрдбрдбреЗрди рдореЗрдВ рдХреБрдЫ рдЬрдЯрд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдФрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рднреВрдорд┐рдХрд╛ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред
рд▓реЗрдХрд┐рди рдЬреЛ рдХреБрдЫ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛, рд╡рд╣ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓рддрд╛ рд╕реЗ, рдЬрд▓реНрджреА, рдПрдХ рдмрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмрдврд╝рд╛рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдлреА рдордЬрдмреВрдд рдкреНрд░рднрд╛рд╡ рджреЗрддрд╛ рд╣реИ!
рд╕реНрдерд┐рд░рддрд╛
рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореИрдВ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдШрд░ рдкрд░ рдФрд░ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╡рд░реНрдгрд┐рдд рд░реВрдк рдореЗрдВ рд╣рд╛рд░реНрдбрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рд╣рд╛рд░реНрдбрди рдХреА рд╡рдЬрд╣ рд╕реЗ рдЙрдирдХреЗ рдХрд╛рдо рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рд▓реЗрдХрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдиреМрдХрд░рд╛рдиреА рд╕реЗ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рджреЗрдЦреАред
рдЬреЗрдВрдЯреВ рдмрд┐рд▓реНрдб рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╕рдВрдХреБрд▓ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреБрдЫ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, XWindow рдХреЗ рд▓рд┐рдП рдПрдЯреАрдЖрдИ рдЬрд▓рд╛рдК рд▓рдХрдбрд╝реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЧреИрд░-рдХрдареЛрд░ рдЬреАрд╕реАрд╕реА рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдерд╛ (рд╕рдВрдХреБрд▓ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЬреАрд╕реАрд╕реА рдХреЗ рд╕реНрд╡рдд: рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ рдереА)ред рдареАрдХ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдкрд░ рднреА рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ, рд▓реЗрдХрд┐рди рдПрдХ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВред рдЕрдм рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВред рдпрд╛рдиреА рдЖрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрдареЛрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдЖрдк рднреВрд▓ рдЧрдП - рдЖрдк рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдмрд╕ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рдФрд░ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред :)
рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛
рд╣рд╛рдВ, рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрдареЛрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА chpax / paxctl рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд▓реЗрдХрд┐рди рдЧреЗрдВрдЯреВ рдореЗрдВ, рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреИрдХреЗрдЬ рдХреЗ рд╕реНрдерд╛рдкрдирд╛ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди chpax / paxctl рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдЗрд╕ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде (рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рд╣реИ), рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╣рд╛рд░реНрдбрдиреЗрдВрдЯ рдЧреЗрдВрдЯреВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдХрд░реНрдиреЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдерд╛)ред
рдЙрддреНрдкрд╛рджрдХрддрд╛
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реВрдВ рддреЛ рдореИрдВ рдЦреБрдж рдирд╣реАрдВ рдорд╛рдкрддрд╛ рдерд╛ред рд╣рд╛рдВ, рдФрд░ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдорд╛рдкрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ - рдЖрдк рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ 3-4% рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдиреБрдХрд╕рд╛рди рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рд╢рдд рд╕реЗ рднреА рдХрдо рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди, рдлрд┐рд░ рд╕реЗ, рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕реБрд╡рд┐рдзрд╛рдУрдВ" рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк SeLinux рдпрд╛ RBAC рдХрд╛рдЯрддреЗ рд╣реИрдВ - рддреЛ рдЖрдк рдЗрди 3-4% рдХреЛ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЙрдирдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред :(
рджреГрд╖реНрдЯрд┐рдЧрдд рд░реВрдк рд╕реЗ - Hardened рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣реЛрдо рдорд╢реАрди рдкрд░ рдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдмреЗрд╢рдХ, -O2 рд╕реНрд╡рд┐рдЪ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рд╢рд╛рдпрдж рдЦреЛ рдЧрдпрд╛ рдерд╛ред
рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрди рджреЛ рдореЗрдВ рд╕реЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп "рдЧрд▓рдд" рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддреЗ рд╕рдордп:
[ ] Paging based non-executable pages
[*] Segmentation based non-executable pages
рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдмреНрд░реЗрдХред рдЕрдм рдореБрдЭреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рдЬреЛ рдореБрдЭреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдзреАрдорд╛ рдХрд░рдирд╛ рдкрд╕рдВрдж рдерд╛)ред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреА рдорд╢реАрдиреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рдЕрдкрдиреЗ рд╕рдордп рдХреЗ рдПрдХ- рджреЛ рдШрдВрдЯреЗ рд╣рд╛рд░реНрдбреЗрди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдФрд░ рдорд╢реАрди рдХреЗ рд╕рдордп рдХреЗ рдПрдХ рджрд┐рди (рдЬрдм рддрдХ рд╕рд┐рд╕реНрдЯрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) рдЦрд░реНрдЪ рдХрд░рдХреЗред
"рдЕрдкрдиреЗ рд▓рд┐рдП рд╕реЛрдЪреЗрдВ, рдЕрдкрдиреЗ рд▓рд┐рдП рддрдп рдХрд░реЗрдВ - рд╣реЛрдирд╛ рдпрд╛ рди рд╣реЛрдирд╛ред"
рдкреНрд░рд╛рд░рдВрднред рджреВрд╕рд░рд╛ рднрд╛рдЧред рддреАрд╕рд░рд╛ рднрд╛рдЧред