Π’ΠΈΠΌ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈ ΠΎΠ΄ Π‘Π»ΠΎΠ±ΠΎΠ΄Π½ΠΈΠΎΡ Π£Π½ΠΈΠ²Π΅ΡΠ·ΠΈΡΠ΅Ρ Π²ΠΎ ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌ ΠΎΠ±ΡΠ°Π²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ Π°Π»Π°ΡΠΊΠΈ Kasper Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΠ΄ ΠΊΠΎΠ΄ Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΠΈΠ½ΡΠΊΡ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π° ΠΈΡΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠ»Π°ΡΠ°ΡΠ° Specter ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ. ΠΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΎΡ Π°Π»Π°ΡΠΊΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Apache 2.0.
ΠΠ° ΠΏΠΎΡΡΠ΅ΡΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠ°Ρ Π½Π°ΠΏΠ°Π΄ΠΈ ΠΊΠ°ΠΊΠΎ Spectre v1, ΠΊΠΎΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π΄Π° ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄ΠΈ ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π΅ ΠΏΡΠΈΡΡΡΡΠ²ΠΎ Π²ΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π½ΠΈΠ·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (Π³Π°ΡΠ΅ΡΠΈ), ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ . ΠΠ° ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ°, ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π° Π΄Π° Π³ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ°ΠΊΠ²ΠΈΡΠ΅ Π³Π°ΡΠ΅ΡΠΈ Π²ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠΎΡΠΎΠ° ΡΡΠ²ΡΠ΄ΡΠ²Π° Π΄Π΅ΠΊΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π³ΡΠ°Π½ΠΊΠ°ΡΠ° Π½Π΅ Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ ΠΈ Π³ΠΈ Π²ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π²ΠΎ Π½ΠΈΠ²Π½Π°ΡΠ° ΠΏΡΠ²ΠΎΠ±ΠΈΡΠ½Π° ΡΠΎΡΡΠΎΡΠ±Π°, Π½ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π·Π°Π²ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ ΠΈ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈΡΠ΅ Π±Π°ΡΠ΅ΡΠΈ ΠΈ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½ Π·Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΎΠ΄ Π½ΠΈΠ² ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ΅ΠΎΡΡΠ°Π½Π°ΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΡΠ΅ΠΊΡ ΠΊΠ°Π½Π°Π»ΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ.
ΠΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ Π³Π°ΡΠ΅ΡΠΈ Π·Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π½Π° Spectre, Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π·Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ ΡΠ΅ΠΌΠΈ, ΠΏΠΎΠΊΠ°ΠΆΠ°Π° ΠΌΠ½ΠΎΠ³Ρ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π»Π°ΠΆΠ½ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠ²ΠΈ, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠ²Π°Π° ΠΌΠ½ΠΎΠ³Ρ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈ Π³Π°ΡΠ΅ΡΠΈ (Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ°Π° Π΄Π΅ΠΊΠ° 99% ΠΎΠ΄ Π³Π°ΡΠ΅ΡΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½ΠΈ ΡΠΎ ΡΠ°ΠΊΠ²ΠΈ Π°Π»Π°ΡΠΊΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π° Π½Π°ΠΏΠ°Π΄ΠΈ , Π° 33% ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ Π³Π°ΡΠ΅ΡΠΈ ΠΊΠΎΠΈ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ Π½Π°ΠΏΠ°Π΄ Π½Π΅ Π±ΠΈΠ»Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½ΠΈ).
ΠΠ° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠΎΡ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈ Π³Π°ΡΠ΅ΡΠΈ, ΠΠ°ΡΠΏΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΡΠΎ Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΈΡΠΊΠΎΡΠΈΡΡΠΈ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ΅ΠΊΠΎΡ ΠΎΠ΄ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π½Π°ΠΏΠ°Π΄ΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠ»Π°ΡΠ°ΡΠ° Specter - ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠΎΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΎΠ΄ Π½Π°ΠΏΠ°ΡΠ°ΡΠΈΡΠ΅ Π²ΠΎ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈ ΡΡΡΡΠΊΡΡΡΠΈ Π·Π° Π΄Π° ΡΠ΅ Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΠ°ΠΏΠ°Π΄ΠΈ ΠΎΠ΄ ΠΊΠ»Π°ΡΠ°ΡΠ° LVI), Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π° ΡΠ΅ Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π°Π°Ρ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈ) ΠΈ ΠΏΡΠΎΡΠ΅ΠΊΡΠ²Π°Π°Ρ Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° Π½Π° ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈΠ»ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ MDS).
ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅, ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Kasper ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° LLVM. ΠΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΅ΠΌΡΠ»ΠΈΡΠ° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ Π·Π° Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΠΎΡΠΊΠ°, ΠΊΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° Π³ΡΠ°Π½ΠΊΠ° Π½Π° ΠΊΠΎΠ΄, Π° ΠΏΠΎΡΠΎΠ° ΡΠ΅ Π²ΡΠ°ΡΠ° Π²ΠΎ ΠΏΡΠ²ΠΎΠ±ΠΈΡΠ½Π°ΡΠ° ΡΠΎΡΡΠΎΡΠ±Π° ΠΏΡΠ΅Π΄ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ Π³ΡΠ°Π½ΠΊΠ°ΡΠ°. Kasper, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° ΡΠΈΠΌΡΠ»ΠΈΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΎΡΡΠ²Π΅ΡΡΠΊΠΈ ΠΈ Ρ Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈ, Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈΡΠ΅ ΠΈ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈΡΠ΅ Π΅ΡΠ΅ΠΊΡΠΈ ΠΈ Π²ΡΡΠΈ fuzz ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ Π΄Π΅ΡΡΡΠ²Π° Π½Π° Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ. ΠΠ° Π΄Π° ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π°Ρ ΡΠ΅ΠΊΠΎΠ²ΠΈΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΠΎΡΡΠ°ΡΠ° DataFlowSanitizer Π·Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° ΠΠΈΠ½ΡΠΊΡ, Π° Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π·Π°ΠΌΠ°ΡΡΠ²Π°ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ syzkaller.
Π‘ΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΠΈΠ½ΡΠΊΡ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Kasper ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ 1379 ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΏΠΎΠ·Π½Π°ΡΠΈ Π³Π°ΡΠ΅ΡΠΈ ΠΊΠΎΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ Π²ΠΎΠ΄Π°Ρ Π΄ΠΎ ΠΈΡΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅. ΠΠ°Π±Π΅Π»Π΅ΠΆΠ°Π½ΠΎ Π΅ Π΄Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Π±ΠΈ ΡΠ°ΠΌΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ² ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°Π°Ρ ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π½ΠΎ Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΡΡΠΎΠΈ ΡΠ΅Π°Π»Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ, Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ΅ΠΎΡΠ΅ΡΡΠΊΠ°, ΡΠ°Π·Π²ΠΈΠ΅Π½ Π΅ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ Π·Π° Π΅Π΄Π΅Π½ ΠΎΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΡ, ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΡΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ.
ΠΠ·Π²ΠΎΡ: opennet.ru