рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА

Graudit рдПрдХрд╛рдзрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдбрдмреЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдЪрд╛рдЪрдгреА рдереЗрдЯ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА
рд╕реНрддреНрд░реЛрдд: Unsplash (рдорд╛рд░реНрдХрд╕ рд╕реНрдкрд┐рд╕реНрдХреЗ)

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

рдЕрд░реНрдерд╛рдд, рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдЪреНрдпрд╛ рдЖрдзреБрдирд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддреЗрдордзреНрдпреЗ, рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ. рдПрдХреЗрдХрд╛рд│реА, DevSecOps рд╣реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрдЬреНрдЮрд╛ рджреЗрдЦреАрд▓ рд╕рд╛рджрд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рд╣реЛрддреА. рд╣рд╛ рд╢рдмреНрдж рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рддреАрд▓ рдЕрд╕реБрд░рдХреНрд╖рд╛ рдУрд│рдЦрдгреЗ рдЖрдгрд┐ рджреВрд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреНрдпрд╛ рдорд╛рд▓рд┐рдХреЗрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЛ. рдорд╛рдирдХрд╛рдВрдиреБрд╕рд╛рд░ рднреЗрджреНрдпрддрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдЙрдкрд╛рдп рдЖрд╣реЗрдд рдУрдПрд╕рдПрдПрд╕рдкреА, рдЬреЗ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддреЗрдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рдЖрдгрд┐ рд╡рд░реНрддрдирд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛рдд.

рд╕реНрдЯреЕрдЯрд┐рдХ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЯреЗрд╕реНрдЯрд┐рдВрдЧ (SAST), рдбрд╛рдпрдиреЕрдорд┐рдХ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЯреЗрд╕реНрдЯрд┐рдВрдЧ (DAST), рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡реНрд╣ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЯреЗрд╕реНрдЯрд┐рдВрдЧ (IAST), рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдХрдВрдкреЛрдЭрд┐рд╢рди рдЕреЕрдирд╛рд▓рд┐рд╕рд┐рд╕ рдЖрдгрд┐ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреА рдЖрд╣реЗрдд.

рд╕реНрдЯреЕрдЯрд┐рдХ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдЖрдзреАрдЪ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрдордзреАрд▓ рддреНрд░реБрдЯреА рдУрд│рдЦрддреЗ. рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдореНрд╣рдгреВрдирдЪ рддреНрдпрд╛рд▓рд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореНрд╣рдгрддрд╛рдд.

рдореА рд╕реНрдЯреЕрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрди рдЖрдгрд┐ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреЗ рдореБрдХреНрдд рд╕реНрддреНрд░реЛрдд рд╕рд╛рдзрди рд╡рд╛рдкрд░реЗрди.

рд╕реНрдЯреЕрдЯрд┐рдХ рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рдореА рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓ рдХрд╛ рдирд┐рд╡рдбрд▓реЗ

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

рдЪрд╛рдВрдЧрд▓реА рдореБрдХреНрдд рд╕реНрд░реЛрдд рд╕рд╛рдзрдиреЗ рдиреЗрд╣рдореА рд▓рд╡рдЪрд┐рдХрддреЗрд╕рд╛рдареА рд╡рд╛рдврд▓реЗрд▓реНрдпрд╛ рдЧрд░рдЬрд╛ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдореНрд╣рдгреВрди, рддреЗ рдЬрд╡рд│рдЬрд╡рд│ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рд╡рд┐рд╕реНрддреГрдд рдХрд╛рд░реНрдпреЗ рд╡реНрдпрд╛рдкреВрди. рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╡рд░ рдХрд╛рдо рдХрд░рдд рдЕрд╕рддрд╛рдирд╛ рддреНрдпрд╛рдВрдиреА рдЖрдзреАрдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╢реА рдЕрд╢реА рд╕рд╛рдзрдиреЗ рдЬреЛрдбрдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ.

рдкрд░рдВрддреБ рдЕрд╕реЗ рдХрд╛рд╣реА рд╡реЗрд│рд╛ рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдЦрд╛рджреЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд╣рд╡реЗ рдЕрд╕рддреЗ рдЬреЗ рддреБрдореНрд╣реА рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдЯреВрд▓рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдирд╕рддреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪрд╛ рдХреЛрдб рдлреЛрд░реНрдХ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╣ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╕рд╛рдзрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЖрд╣реЗ.

рдмрд╣реБрддреЗрдХ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪрд╛ рд╕рдореБрджрд╛рдпрд╛рд╡рд░ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рдкреНрд░рднрд╛рд╡ рдкрдбрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдмрджрд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдЕрдЧрджреА рддреНрд╡рд░реАрдд рдЖрдгрд┐ рдмрд┐рдВрджреВрдкрд░реНрдпрдВрдд рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ: рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рд╡рд┐рдХрд╕рдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрднрд┐рдкреНрд░рд╛рдп рдЖрдгрд┐ рд╕реВрдЪрдирд╛рдВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддрд╛рдд, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрд╣рд╡рд╛рд▓рд╛рдВрд╡рд░ рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛ рдЖрдгрд┐ рдЗрддрд░ рд╕рдорд╕реНрдпрд╛.

рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА Graudit рд╡рд╛рдкрд░рдгреЗ

рддреБрдореНрд╣реА рд╕реНрдЯреЕрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рд╡рд┐рд╡рд┐рдз рдореБрдХреНрдд рд╕реНрд░реЛрдд рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛; рд╕рд░реНрд╡ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдХреЛрдгрддреЗрд╣реА рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рд╕рд╛рдзрди рдирд╛рд╣реА. рддреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рд╡рд┐рдХрд╛рд╕рдХ OWASP рд╢рд┐рдлрд╛рд░рд╢реАрдВрдЪреЗ рдкрд╛рд▓рди рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рднрд╛рд╖рд╛ рдХрд╡реНрд╣рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддрд╛рдд.

рдпреЗрдереЗ рдЖрдкрдг рд╡рд╛рдкрд░рдгрд╛рд░ рдЖрд╣реЛрдд Graudit, рдПрдХ рд╕рд╛рдзреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпреБрдЯрд┐рд▓рд┐рдЯреА рдЬреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдХреЛрдбрдмреЗрд╕рдордзреНрдпреЗ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓. рд╣реЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рднрд╛рд╖рд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ, рдкрд░рдВрддреБ рддрд░реАрд╣реА рддреНрдпрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ. рдЧреНрд░реЗрдк рдпреБрдЯрд┐рд▓рд┐рдЯреА рдпреБрдЯрд┐рд▓рд┐рдЯреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЧреНрд░реЕрдбрд┐рдЯ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреА рдПрдХрджрд╛ GNU рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рдкреНрд░рд╕рд┐рджреНрдз рдЭрд╛рд▓реА рд╣реЛрддреА.

рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рд╕рдорд╛рди рд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд - рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╛рдареА рд░рдл рдСрдбрд┐рдЯрд┐рдВрдЧ рдЯреВрд▓ (RATS), Securitycompass Web Application Analysis Tool (SWAAT), рдлреНрд▓реЙрдлрд╛рдЗрдВрдбрд░ рдЖрдгрд┐ рдЕрд╕реЗрдЪ. рдкрд░рдВрддреБ Graudit рдЕрддрд┐рд╢рдп рд▓рд╡рдЪрд┐рдХ рдЖрд╣реЗ рдЖрдгрд┐ рдХрд┐рдорд╛рди рддрд╛рдВрддреНрд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗрдд. рддрдерд╛рдкрд┐, рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпрд╛ рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЬреНрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг Graudit рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдордЧ рддреБрдореНрд╣реА рдпреЗрдереЗ рдЗрддрд░ рдкрд░реНрдпрд╛рдп рд╢реЛрдзреВ рд╢рдХрддрд╛ рдпрд╛ рдпрд╛рджреАрдд.

рдЖрдореНрд╣реА рд╣реЗ рд╕рд╛рдзрди рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдд рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░реВ рд╢рдХрддреЛ, рдХрд┐рдВрд╡рд╛ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рддреЗ рдЙрдкрд▓рдмреНрдз рдХрд░реВрди рджреЗрдК рд╢рдХрддреЛ рдХрд┐рдВрд╡рд╛ рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ. рдпреЗрдереЗ рджреЗрдЦреАрд▓ Graudit рдЪреА рд▓рд╡рдЪрд┐рдХрддрд╛ рд▓рд╛рдЧреВ рд╣реЛрддреЗ. рддрд░ рдкреНрд░рдердо рд░реЗрдкреЛ рдХреНрд▓реЛрди рдХрд░реВрдпрд╛:

$ git clone https://github.com/wireghoul/graudit

рдЖрддрд╛ рдХрдорд╛рдВрдб рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА Graudit рд╕рд╛рдареА рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдмрдирд╡реВ

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

рдЪрд▓рд╛ .bashrc (рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реА рдХреЛрдгрддреАрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓):

#------ .bashrc ------
alias graudit="~/bin/graudit"

рд░реАрдмреВрдЯ рдХрд░рд╛:

$ source ~/.bashrc # OR
$ exex $SHELL

рд╕реНрдерд╛рдкрдирд╛ рдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реА рдХреА рдирд╛рд╣реА рддреЗ рддрдкрд╛рд╕реВрдпрд╛:

$ graudit -h

рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддрддреНрд╕рдо рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕рд▓реЗ рддрд░ рд╕рд░реНрд╡рдХрд╛рд╣реА рдареАрдХ рдЖрд╣реЗ.

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА

рдореА рдорд╛рдЭреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдкреНрд░рдХрд▓реНрдкрд╛рдВрдкреИрдХреА рдПрдХрд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдИрди. рдЯреВрд▓ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдорд╛рдЭрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреНрдпрд╛ рднрд╛рд╖реЗрдд рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрд╣реЗ рддреНрдпрд╛ рднрд╛рд╖реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╛рд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдбреЗрдЯрд╛рдмреЗрд╕ ~/gradit/signatures рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗрдд:

$ graudit -d ~/gradit/signatures/js.db

рдореНрд╣рдгреВрди, рдореА рдорд╛рдЭреНрдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдордзреАрд▓ рджреЛрди js рдлрд╛рдЗрд▓реНрд╕рдЪреА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЖрдгрд┐ Graudit рдиреЗ рдорд╛рдЭреНрдпрд╛ рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддреЗрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдХрдиреНрд╕реЛрд▓рд╡рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реА:

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА

рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕рдЪреА рддрд╢рд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдЪрд╛рдЪрдгреА рдХрд░реВрди рдкрд╛рд╣реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪреА рд╕реВрдЪреА рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдпреЗрдереЗ.

Graudit рдЪреЗ рдлрд╛рдпрджреЗ рдЖрдгрд┐ рддреЛрдЯреЗ

Graudit рдЕрдиреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ. рдореНрд╣рдгреВрди, рддреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реЗрдгреАрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ. рд╣реЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд┐рдирд╛рдореВрд▓реНрдп рдХрд┐рдВрд╡рд╛ рд╕рд╢реБрд▓реНрдХ рдЕреЕрдирд╛рд▓реЙрдЧрд╕рд╣ рдкреБрд░реЗрд╕реЗ рд╕реНрдкрд░реНрдзрд╛ рдХрд░реВ рд╢рдХрддреЗ. рдЖрдгрд┐ рд╣реЗ рдЦреВрдк рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдкреНрд░рдХрд▓реНрдкрд╛рдд рдЕрдЬреВрдирд╣реА рд╕реБрдзрд╛рд░рдгрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рдореБрджрд╛рдп рдХреЗрд╡рд│ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛рдЪ рдорджрдд рдХрд░рдд рдирд╛рд╣реА рддрд░ рдЗрддрд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рджреЗрдЦреАрд▓ рдорджрдд рдХрд░рддреЛ рдЬреЗ рд╕рд╛рдзрди рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реАрдд рдЖрд╣реЗрдд.

рд╣реЗ рдПрдХ рд╕реБрд▓рдн рд╕рд╛рдзрди рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрддрд╛рдкрд░реНрдпрдВрдд рддреЗ рдХреЛрдбрдЪреНрдпрд╛ рд╕рдВрд╢рдпрд╛рд╕реНрдкрдж рднрд╛рдЧрд╛рдордзреНрдпреЗ рдиреЗрдордХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛рдп рдЖрд╣реЗ рд╣реЗ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рд╡рд┐рдХрд╛рд╕рдХ Graudit рд╕реБрдзрд╛рд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡рддрд╛рдд.

рдкрд░рдВрддреБ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рдпрд╛рд╕рд╛рд░рдЦреА рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдХреЛрдбрдордзреАрд▓ рд╕рдВрднрд╛рд╡реНрдп рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдВрдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ.

рд╕реБрд░реВ рд╣реЛрдд рдЖрд╣реЗтАж

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдореА рдЕрд╕реБрд░рдХреНрд╖рд╛ рд╢реЛрдзрдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдиреЗрдХ рдорд╛рд░реНрдЧрд╛рдВрдкреИрдХреА рдлрдХреНрдд рдПрдХ рдкрд╛рд╣рд┐рд▓рд╛ - рд╕реНрдерд┐рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдЪрд╛рдЪрдгреА. рд╕реНрдЯреЕрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╣реА рдлрдХреНрдд рд╕реБрд░реБрд╡рд╛рдд рдЖрд╣реЗ. рддреБрдордЪреНрдпрд╛ рдХреЛрдбрдмреЗрд╕рдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рд▓рд╛рдЗрдлрд╕рд╛рдпрдХрд▓рдордзреНрдпреЗ рдЗрддрд░ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЪрд╛рдЪрдгреНрдпрд╛ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЬрд╛рд╣рд┐рд░рд╛рддреАрдВрдЪреНрдпрд╛ рдЕрдзрд┐рдХрд╛рд░рд╛рдВрд╡рд░

рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп VPS рдЖрдгрд┐ рдЯреЕрд░рд┐рдл рдпреЛрдЬрдиреЗрдЪреА рдпреЛрдЧреНрдп рдирд┐рд╡рдб рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдкреНрд░рд┐рдп рд╕рдорд╕реНрдпрд╛рдВрдореБрд│реЗ рд╡рд┐рдХрд╛рд╕рд╛рдкрд╛рд╕реВрди рдХрдореА рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓ - рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЕрдкрдпрд╢рд╛рд╢рд┐рд╡рд╛рдп рдЖрдгрд┐ рдЦреВрдк рдЙрдЪреНрдЪ рдЕрдкрдЯрд╛рдЗрдорд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реЗрд▓!

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдбрдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╢реА рд╡рд╛рдкрд░рд╛рдпрдЪреА

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛