рдкрд░рд┐рдЪрдп
рдЕрдкреНрд░реИрд▓ рдХреЗ рдордзреНрдп рдореЗрдВ, рд╣рдордиреЗ
Android.InfectionAds.1 рдЯреНрд░реЛрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╕рдорд╛рдЪрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдореЗрдВ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдпрд╛ред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ - CVE-2017-13156 (рдЬрд┐рд╕реЗ
рдЬрд╛рдиреВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) - рдЕрдкрдиреЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдП рдмрд┐рдирд╛ рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ CVE-2017-13315 рд╣реИред рдпрд╣ рдЯреНрд░реЛрдЬрди рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Android.InfectionAds.1 рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣рдорд╛рд░реЗ рд╡рд╛рдпрд░рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдпрд╣
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рд╣рдо рднреЗрджреНрдпрддрд╛ CVE-2017-13315 рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рд╣реИред
CVE-2017-13315 рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд╕рдореВрд╣ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо EvilParcel рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛ред рд╡реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛ EvilParcel рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рддреЗ рд╣реИрдВ рд╡реЗ рдЙрдЪреНрдЪ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ;
- рдЬрдм рдЕрдиреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рд╕рдВрдХреНрд░рдорд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдВрдХреНрд░рдорд┐рдд рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде "рд╕реНрд╡рдЪреНрдЫ" рдореВрд▓ рдХреЛ рдмрджрд▓реЗрдВ;
- Android рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рд▓реЙрдХ рдХреЛрдб рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
- Android рдбрд┐рд╡рд╛рдЗрд╕ рд▓реЙрдХ рд╕реНрдХреНрд░реАрди рдкрд┐рди рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА 7 рдЬреНрдЮрд╛рдд рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рд╣реИрдВ:
- рдЕрдХреНрдЯреВрдмрд░ 2017 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд CVE-2017-0806 (рдЧреЗрдЯрдХреАрдкрд░ рд░рд┐рдкреНрд╕ рд╡рд░реНрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐);
- CVE-2017-13286 (рдЕрдкреНрд░реИрд▓ 2018 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд, рд╡рд░реНрдЧ рдЖрдЙрдЯрдкреБрдЯ рддреНрд░реБрдЯрд┐ рдореЗрдВ рддреНрд░реБрдЯрд┐);
- рдЕрдкреНрд░реИрд▓ 2018 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд CVE-2017-13287 (VerifyCredentialResponse рд╡рд░реНрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐);
- рдЕрдкреНрд░реИрд▓ 2018 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд CVE-2017-13288 (PeriodicAdvertizingReport рд╡рд░реНрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐);
- рдЕрдкреНрд░реИрд▓ 2018 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд CVE-2017-13289 (ParcelableRttResults рд╡рд░реНрдЧ рдореЗрдВ рдмрдЧ);
- рд╕реАрд╡реАрдИ-2017-13311 (рд╕реНрдкреИрд░рд╕реЗрдкрд┐рдВрдЧрдЯреЗрдмрд▓ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдмрдЧ), рдордИ 2018 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд;
- CVE-2017-13315 (DcParamObject рд╡рд░реНрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐), рдордИ 2018 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рддред
рд╕рднреА рдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг 5.0 - 8.1 рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдзрдордХреА рджреА рд╣реИ рдХрд┐ рдордИ 2018 рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдЕрджреНрдпрддрди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
EvilParcel рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрд╡рд┐рд▓рдкреИрд░рд╕реЗрд▓ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдореЗрдВ, рд╕рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде, рд╕рд╛рде рд╣реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде, рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдмрдВрдбрд▓ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рд╡рд╛рд▓реЗ рдЬреЛрдбрд╝реЗ рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЖрд╢рдп рдкреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдмрдВрдбрд▓ рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рд░реНрд╕рд▓ рдореЗрдВ рд▓рд┐рдкрдЯреЗ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд (рдХреНрд░рдордмрджреНрдз) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдмрдВрдбрд▓ рд╕реЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ deserialized рд╣реЛрддрд╛ рд╣реИред
рдмрдВрдбрд▓ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рд╣реИ, рдФрд░ рдореВрд▓реНрдп рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдпрд╛ рдХрдВрдЯреЗрдирд░ рдЬрд┐рд╕рдореЗрдВ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдпрд╛ рддрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдкрд╛рд░реНрд╕рд▓реЗрдмрд▓ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрдВрдбрд▓ рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╛рд░реНрд╕рд▓реЗрдмрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд░рдордмрджреНрдз рдФрд░ рдбрд┐рд╕реЗрд░рд┐рдЬрд╝рд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП writeToParcel () рдФрд░ createFromParcel () рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЕрдЪреНрдЫреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдХреНрд░рдордмрджреНрдз рдмрдВрдбрд▓ рдмрдирд╛рдПрдВред рдЖрдЗрдП рдПрдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдЬреЛ рддреАрди рдХреБрдВрдЬреА-рдореВрд▓реНрдп рд╡рд╛рд▓реЗ рдЬреЛрдбрд╝реЗ рдХреЛ рдмрдВрдбрд▓ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░рддрд╛ рд╣реИ:
рдмрдВрдбрд▓ рдбреЗрдореЛ = рдирдпрд╛ рдмрдВрдбрд▓ ();
рдбреЗрдореЛ.рдкреБрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ ("рд╕реНрдЯреНрд░рд┐рдВрдЧ", "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!");
рдбреЗрдореЛ.рдкреБрдЯрдЗрдВрдЯ ("рдЗрдВрдЯреЗрдЧрд░", 42);
Demo.putByteArray ("рдмрд╛рдЗрдЯрдЕрд░реЗ", рдирдИ рдмрд╛рдЗрдЯ [] {1, 2, 3, 4, 5, 6, 7, 8});
рдкрд╛рд░реНрд╕рд▓ рдкрд╛рд░реНрд╕рд▓ = рдкрд╛рд░реНрд╕рд▓.рдмреЙрдЯреЗрди ();
parcel.writeBundle (рдбреЗрдореЛ);
рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдмрдВрдбрд▓ рдорд┐рд▓рддрд╛ рд╣реИ:
рдЪрд┐рддреНрд░рд╛ 1. рдПрдХ рдХреНрд░рдордмрджреНрдз рдмрдВрдбрд▓ рд╡рд╕реНрддреБ рдХреА рд╕рдВрд░рдЪрдирд╛ред
рдЖрдЗрдП рдмрдВрдбрд▓ рдХреНрд░рдорд╛рдВрдХрди рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
- рд╕рднреА рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ;
- рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП 13, рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд▓рд┐рдП 1, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП 0, рдФрд░ рдЗрд╕реА рддрд░рд╣);
- рдЪрд░ рд▓рдВрдмрд╛рдИ рдХреЗ рдбреЗрдЯрд╛ рд╕реЗ рдкрд╣рд▓реЗ, рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд╛рдИ, рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛);
- рд╕рднреА рдорд╛рди 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рдВрд░реЗрдЦрдг рдХреЗ рд╕рд╛рде рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдмрдВрдбрд▓ рдореЗрдВ рд╕рднреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рдореВрд▓реНрдп рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЬрдм рдПрдХ рдХреБрдВрдЬреА рдпрд╛ рдХрд┐рд╕реА рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдВрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рддреЛ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ deserialized рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдкрд╛рд░реНрд╕рд▓реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓рд╛рд╕реЗрд╕ рдореЗрдВ рдЬреЛ Parcelable рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, createFromParcel () рдФрд░ writeToParcel () рд╡рд┐рдзрд┐рдпрд╛рдБ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдЗрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ, CreateFromParcel () рд╡рд┐рдзрд┐ рдореЗрдВ рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд░рд╛рдЗрдЯрдЯреЙрд░реНрдкрд░рд╕реЗрд▓ () рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░ рдХреА рд╡рд╕реНрддреБ рдХреА рд╕реАрдорд╛ рдлрд┐рд░ рд╕реЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдмрд╛рдж рдмрджрд▓ рдЬрд╛рдПрдЧреАред рдФрд░ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдПрд╡рд┐рд▓рдкрд┐рд▓рд░реНрд▓ рднреЗрджреНрдпрддрд╛ рдХреЗ рд╢реЛрд╖рдг рдХреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдмрдирддреА рд╣реИрдВред
рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
class Demo implements Parcelable { byte[] data; public Demo() { this.data = new byte[0]; } protected Demo(Parcel in) { int length = in.readInt(); data = new byte[length]; if (length > 0) { in.readByteArray(data); } } public static final Creator<Demo> CREATOR = new Creator<Demo>() { @Override public Demo createFromParcel(Parcel in) { return new Demo(in); } }; @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeInt(data.length); parcel.writeByteArray(data); } }
рдпрджрд┐ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ 0 рд╣реИ, рддреЛ createFromParcel () рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ int (4 рдмрд╛рдЗрдЯреНрд╕) рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рджреЛ int (8 рдмрд╛рдЗрдЯреНрд╕) writeToParcel () рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред рдкрд╣рд▓рд╛ рдЗрдВрдЯ рд░рд╛рдЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХреЙрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░рд╛ рдЗрдВрдЯ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд░рд╛рдЗрдЯрдмрд╛рдпрд░реЗ () рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ рд╣рдореЗрд╢рд╛ рдкрд╛рд░реНрд╕рд▓ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИ (рдЪрд┐рддреНрд░ 1 рджреЗрдЦреЗрдВ)ред
рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ 0 рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рджреБрд░реНрд▓рдн рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддрдм рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо рддрдм рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбреЗрдореЛ рдСрдмреНрдЬреЗрдХреНрдЯ)ред рдЗрд╕рд▓рд┐рдП, рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдПрдХ рдбреЗрдореЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрдВрдбрд▓ рдореЗрдВ рд╢реВрдиреНрдп рд╕рд░рдгреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
рдЪрд┐рддреНрд░рд╛ 2. рдмрдВрдбрд▓ рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рд╕рд░рдгреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдореЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред
рд╣рдо рд╡рд╕реНрддреБ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ:
рдЪрд┐рддреНрд░ 3. рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдмрд╛рдж рдмрдВрдбрд▓ рд╡рд╕реНрддреБред
рдЖрдЗрдП рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
рдЪрд┐рддреНрд░рд╛ 4. рдмрдВрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдбрд┐рд╕реЗрд░рд░рд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред
рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ? рдПрдХ рдкрд╛рд░реНрд╕рд▓ рд╕реНрдирд┐рдкреЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдЪрд┐рддреНрд░рд╛ 5. рдмрдВрдбрд▓ рдХреЗ deserialization рдХреЗ рдмрд╛рдж рдкрд╛рд░реНрд╕рд▓ рд╕рдВрд░рдЪрдирд╛ред
рдЖрдВрдХрдбрд╝реЗ 4 рдФрд░ 5 рд╕реЗ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдбреАрд░рд┐рдПрд░рд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдЗрдВрдЯ рдХреЛ рдкрд╣рд▓реЗ рд▓рд┐рдЦреЗ рдЧрдП рджреЛ рдХреЗ рдмрдЬрд╛рдп рдХреНрд░рд┐рдПрдЯрдлреНрд░реЙрдорд╕реЗрд▓ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдмрдВрдбрд▓ рд╕реЗ рдмрд╛рдж рдХреЗ рд╕рднреА рдорд╛рди рд╕рд╣реА рд╕реЗ рдирд╣реАрдВ рдкрдврд╝реЗ рдЧрдП рдереЗред 0x60 рдкрддреЗ рдкрд░ рдорд╛рди 0x60 рдЕрдЧрд▓реА рдХреБрдВрдЬреА рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ 0x64 рдкрддреЗ рдкрд░ 0x1 рдХрд╛ рдорд╛рди рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, 0x68 рдкрд░ рдорд╛рди 0x31 рдорд╛рди рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╛рд░реНрд╕рд▓ рдореЗрдВ рдХреЛрдИ рдорд╛рди рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкреНрд░рдХрд╛рд░ 0x31 рд╣реИ, рдЗрд╕рд▓рд┐рдП readFromParcel () рдиреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ (рдЕрдкрд╡рд╛рдж) рдХреА рд╕реВрдЪрдирд╛ рджреАред
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рднреЗрджреНрдпрддрд╛ рдмрди рд╕рдХрддрд╛ рд╣реИ? рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ! рдкрд╛рд░реНрд╕реЗрдмрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓рд╛рд╕реЗрд╕ рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддреНрд░реБрдЯрд┐ рдЖрдкрдХреЛ рдмрдВрдбрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдФрд░ рджреЛрд╣рд░рд╛рдпрд╛ рд╡рд┐рд╡рд░рдг рдХреЗ рджреМрд░рд╛рди рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
Parcel data = Parcel.obtain(); data.writeInt(3);
рдпрд╣ рдХреЛрдб рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдмрдВрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрдордЬреЛрд░ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦреЗрдВ:
рдЪрд┐рддреНрд░рд╛ 6. рдПрдХ рдХрдордЬреЛрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдбрд▓ рдмрдирд╛рдирд╛ред
рдкрд╣рд▓реЗ deserialization рдХреЗ рдмрд╛рдж, рдЗрд╕ рдмрдВрдбрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдВрдЬрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА:
рдЪрд┐рддреНрд░рд╛ 7. рдПрдХ рдХрдордЬреЛрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдбрд▓ рдХреЛ рдбрд┐рд╕рд░реНрд╡рд┐рд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдоред
рдЕрдм рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдмрдВрдбрд▓ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд░рдВрдЧ рджреЗрдВ рдФрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВ:
рдЪрд┐рддреНрд░рд╛ 8. рдкреБрди: рдХреНрд░рдорд╛рдВрдХрди рдФрд░ рдПрдХ рдХрдордЬреЛрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдбрд▓ рдХреЗ deserialization рдХреЗ рдкрд░рд┐рдгрд╛рдоред
рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рдЫрд┐рдкреА рд╣реБрдИ рдХреБрдВрдЬреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди "рд╣рд╛рдп рд╡рд╣рд╛рдБ!") рдмрдВрдбрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА, рдЬреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдереАред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрдВрдбрд▓ рдХреЗ рдкрд╛рд░реНрд╕рд▓ рд╕реНрдирд┐рдкреЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдЪрд┐рддреНрд░рд╛ 9. рдмрдВрдбрд▓ рдХреЗ рдкрд╛рд░реНрд╕рд▓ рд╕рдВрд░рдЪрдирд╛ рджреЛ рдХреНрд░рдорд┐рдХ-рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЪрдХреНрд░реЛрдВ рдХреЗ рдмрд╛рдж рдХрдордЬреЛрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рдеред
рдпрд╣рд╛рдБ EvilParcel рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрдард┐рдд рдмрдВрдбрд▓ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрдордЬреЛрд░ рд╡рд░реНрдЧ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╡рд░реНрдЧ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕ рдмрдВрдбрд▓ рдореЗрдВ рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреА - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯреЗрдВрдЯ, рдЬреЛ рджреВрд╕рд░реЗ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рдмрд╛рдж рд╣реА рдмрдВрдбрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рд╕реЗ рдЖрд╢рдп рдХреЛ рдЫрд┐рдкрд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред
рд╕рдВрдЪрд╛рд▓рди рдИрд╡рд┐рд▓рдкрд░реНрд╕реЗрд▓
Android.InfectionAds.1 рдиреЗ CVE-2017-13315 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреНрд░рдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
2013 рдореЗрдВ, рддреНрд░реБрдЯрд┐
7699048 рдХреА рднреА рдЦреЛрдЬ рдХреА рдЧрдИ, рдЬрд┐рд╕реЗ рд▓реЙрдиреНрдЪ рдПрдиреАрд╡реЗрдпрд░ рдХрд╣реАрдВ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдиреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреА рдУрд░ рд╕реЗ рдордирдорд╛рдиреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдореЗрдВ рдЗрд╕рдХреА рдХреНрд░рд┐рдпрд╛ рдХрд╛ рддрдВрддреНрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЪрд┐рддреНрд░рд╛ 10. рддреНрд░реБрдЯрд┐ рдХреА рдпреЛрдЬрдирд╛ 7699048ред
рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЗ рд╕рд╛рде, рдПрдХ рд╢реЛрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди AccountAuthenticator рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирдП рдЦрд╛рддреЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрдЧ 7699048 рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╢реЛрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ, рдкрд┐рди рдпрд╛ рдкреИрдЯрд░реНрди рд▓реЙрдХ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрдиреНрдп рдЕрдкреНрд░рд┐рдп рдЪреАрдЬреЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╡рд┐рдзрд┐ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
Google рдиреЗ рдЦрд╛рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреА рдордирдорд╛рдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╢реБрднрд╛рд░рдВрдн рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдХрд░ рдпрд╣ рдЕрдВрддрд░ рддрдп рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдЦрд╛рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗрд╡рд▓ рдЙрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЙрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдЬрд┐рд╕рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реНрдерд┐рдд рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
if (result != null && (intent = result.getParcelable(AccountManager.KEY_INTENT)) != null) { int authenticatorUid = Binder.getCallingUid(); long bid = Binder.clearCallingIdentity(); try { PackageManager pm = mContext.getPackageManager(); ResolveInfo resolveInfo = pm.resolveActivityAsUser(intent, 0, mAccounts.userId); int targetUid = resolveInfo.activityInfo.applicationInfo.uid; if (PackageManager.SIGNATURE_MATCH != pm.checkSignatures(authenticatorUid, targetUid)) { throw new SecurityException( "Activity to be started with KEY_INTENT must " + "share Authenticator's signatures"); } } finally { Binder.restoreCallingIdentity(bid); } }
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рдкреНрд░рд╕рд┐рджреНрдз рднреЗрджреНрдпрддрд╛ EvilParcel CVE-2017-13315 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ! рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЙрдиреНрдЪ рдПрдиреАрд╡реЗрдпрд░ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд┐рд╕реНрдЯрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЬрд╛рдБрдЪ рд╕рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдмрдВрдбрд▓ IAccountManagerResponse.onResult () рдореЗрдВ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, onResult () рдХреЛ IPC рддрдВрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрдВрдбрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред OnResult () рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ:
private class Response extends IAccountManagerResponse.Stub { public void onResult(Bundle bundle) { Intent intent = bundle.getParcelable(KEY_INTENT); if (intent != null && mActivity != null) {
рдЗрд╕рдХреЗ рдмрд╛рдж, рдмрдВрдбрд▓ рдХреЛ рдЖрд╢рдп рдХреБрдВрдЬреА рдХреЛ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдмрд┐рдирд╛ рдЬрд╛рдВрдЪ рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╕рд┐рд╕реНрдЯрдо рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдордирдорд╛рдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдВрдбрд▓ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдЗрд░рд╛рджреЗ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдкрд╣рд▓реЗ deserialization рдХреЗ рджреМрд░рд╛рди рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрдм deserialization рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рдпрд╣ рдареАрдХ рдпрд╣реА рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рдПрд╡рд┐рд▓рдкреИрд░рд▓ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдкреВрд░реА рдХрд░рддреА рд╣реИрдВред
рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рднреА рдЬреНрдЮрд╛рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХрдордЬреЛрд░ рдЪрдВрдЪрд▓ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдлрд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрдордЬреЛрд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкреБрди: рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрдВрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдирдП рдЦрд╛рддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдЕрднреА рднреА рдкрд╣рд▓реЗ рдЬреИрд╕реЗ рд╣реА рд╣реИрдВред рдЬрдм рдЖрдк рдЦреЛрдЬрддреЗ рд╣реИрдВ (рдпрд╛ рдирдП) рдХрдордЬреЛрд░ рдкрд╛рд░реНрд╕рд▓ рдпреЛрдЧреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрддреЗ рд╣реИрдВ рддреЛ рднреА рд╡реЗ рдЖрдкрдХреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрднреА рднреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХреНрд░рдордмрджреНрдз рдкрд╛рд░реНрд╕рд▓реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдирд┐рд░рдВрддрд░ рд▓рдВрдмрд╛рдИ рдкрд░ рдирдЬрд░ рд░рдЦрдиреА рд╣реЛрдЧреАред рдФрд░ рдпрд╣ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдирд╡реАрдп рдХрд╛рд░рдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд╣реЛрдВрдЧреА, рдФрд░ EvilParcel рдХреА рдХрдордЬреЛрд░рд┐рдпрд╛рдВ Android рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреАред
рдЖрдк рд╣рдорд╛рд░реЗ
Dr.Web Security Space рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ EvilParcel рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "рд╕реБрд░рдХреНрд╖рд╛ рд▓реЗрдЦрд╛ рдкрд░реАрдХреНрд╖рдХ" рдкрд╣рдЪрд╛рди рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреЗрдЧрд╛ред