ืคื™ื™ืกื‘ื•ืง ื”ืฆื™ื’ื” ืืช Pysa, ืžื ืชื— ืกื˜ื˜ื™ ืœืฉืคืช Python

ืคื™ื™ืกื‘ื•ืง ื”ื’ื™ืฉื• ืžื ืชื— ืกื˜ื˜ื™ ืคืชื•ื— ืคื™ื–ื” (Python Static Analyzer), ืฉื ื•ืขื“ ืœื–ื”ื•ืช ื ืงื•ื“ื•ืช ืชื•ืจืคื” ืืคืฉืจื™ื•ืช ื‘ืงื•ื“ Python. ื”ื ืชื— ื”ื—ื“ืฉ ืžืชื•ื›ื ืŸ ื›ืชื•ืกืคืช ืœืขืจื›ืช ื”ื›ืœื™ื ืœื‘ื“ื™ืงืช ืกื•ื’ื™ื ืžึฐื“ื•ึผืจึธื” ื•ืคื•ืจืกื ื‘ืžืื’ืจ ืฉืœื•. ืงื•ื“ ืคื•ืจืกื ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

Pysa ืžืกืคืงืช ื ื™ืชื•ื— ืฉืœ ื–ืจื™ืžื•ืช ื ืชื•ื ื™ื ื›ืชื•ืฆืื” ืžื‘ื™ืฆื•ืข ืงื•ื“, ืžื” ืฉืžืืคืฉืจ ืœื–ื”ื•ืช ืคื’ื™ืขื•ื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืจื‘ื•ืช ื•ื‘ืขื™ื•ืช ืคืจื˜ื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืฉื™ืžื•ืฉ ื‘ื ืชื•ื ื™ื ื‘ืžืงื•ืžื•ืช ืฉื‘ื”ื ื”ื ืœื ืืžื•ืจื™ื ืœื”ื•ืคื™ืข.
ืœื“ื•ื’ืžื”, Pysa ื™ื›ื•ืœื” ืœืขืงื•ื‘ ืื—ืจ ื”ืฉื™ืžื•ืฉ ื‘ื ืชื•ื ื™ื ื—ื™ืฆื•ื ื™ื™ื ื’ื•ืœืžื™ื™ื ื‘ืงืจื™ืื•ืช ืฉืžืฉื™ืงื•ืช ืชื•ื›ื ื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช, ื‘ืคืขื•ืœื•ืช ืงื‘ืฆื™ื ื•ื‘ื‘ื ื™ื™ืช SQL.

ืขื‘ื•ื“ืชื• ืฉืœ ื”ืžื ืชื— ืžืกืชื›ืžืช ื‘ื–ื™ื”ื•ื™ ืžืงื•ืจื•ืช ื ืชื•ื ื™ื ื•ืฉื™ื—ื•ืช ืžืกื•ื›ื ื•ืช ืฉื‘ื”ืŸ ืื™ืŸ ืœื”ืฉืชืžืฉ ื‘ื ืชื•ื ื™ื ื”ืžืงื•ืจื™ื™ื. ื ืชื•ื ื™ื ืžื‘ืงืฉื•ืช ืื™ื ื˜ืจื ื˜ (ืœื“ื•ื’ืžื”, ืžื™ืœื•ืŸ HttpRequest.GET ื‘-Django) ื ื—ืฉื‘ื™ื ื›ืžืงื•ืจ, ื•ืฉื™ื—ื•ืช ื›ืžื• eval ื•-os.open ื ื—ืฉื‘ื•ืช ืœืฉื™ืžื•ืฉื™ื ืžืกื•ื›ื ื™ื. Pysa ืขื•ืงื‘ืช ืื—ืจ ื–ืจื™ืžืช ื”ื ืชื•ื ื™ื ื“ืจืš ืฉืจืฉืจืช ืงืจื™ืื•ืช ื”ืคื•ื ืงืฆื™ื•ืช ื•ืžืฉื™ื™ื›ืช ืืช ื ืชื•ื ื™ ื”ืžืงื•ืจ ืœืžืงื•ืžื•ืช ืฉืขืœื•ืœื™ื ืœื”ื™ื•ืช ืžืกื•ื›ื ื™ื ื‘ืงื•ื“. ืคื’ื™ืขื•ืช ื˜ื™ืคื•ืกื™ืช ืฉื–ื•ื”ืชื” ื‘ืืžืฆืขื•ืช Pysa ืžื–ื›ื™ืจื” ื‘ืขื™ื™ืช ื”ืคื ื™ื” ืคืชื•ื—ื” (CVE-2019-19775) ื‘ืคืœื˜ืคื•ืจืžืช ื”ื”ื•ื“ืขื•ืช Zulip, ื”ื ื’ืจืžืช ืžื”ืขื‘ืจืช ืคืจืžื˜ืจื™ื ื—ื™ืฆื•ื ื™ื™ื ืœื ื ืงื™ื™ื ื‘ืขืช ืขื™ื‘ื•ื“ ืชืžื•ื ื•ืช ืžืžื•ื–ืขืจื•ืช.

ื™ื›ื•ืœื•ืช ื”ืžืขืงื‘ ืื—ืจ ื–ืจื™ืžืช ื”ื ืชื•ื ื™ื ืฉืœ Pysa ื™ื›ื•ืœื•ืช ืœื”ื’ื™ืฉ ืžื•ืขืžื“ื•ืช ืœืืžืช ืืช ื”ืฉื™ืžื•ืฉ ื”ื ื›ื•ืŸ ื‘ืžืกื’ืจื•ืช ื ื•ืกืคื•ืช ื•ืœืงื‘ื•ืข ืขืžื™ื“ื” ื‘ืžื“ื™ื ื™ื•ืช ื”ืฉื™ืžื•ืฉ ื‘ื ืชื•ื ื™ ื”ืžืฉืชืžืฉ. ืœื“ื•ื’ืžื”, Pysa ืœืœื ื”ื’ื“ืจื•ืช ื ื•ืกืคื•ืช ื™ื›ื•ืœื” ืœืฉืžืฉ ืœื‘ื“ื™ืงืช ืคืจื•ื™ืงื˜ื™ื ื‘ืืžืฆืขื•ืช ืžืกื’ืจื•ืช Django ื•- Tornado. Pysa ื™ื›ื•ืœื” ื’ื ืœื–ื”ื•ืช ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื ืคื•ืฆื•ืช ื‘ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜, ื›ื’ื•ืŸ ื”ื–ืจืงืช SQL ื•ืกืงืจื™ืคื˜ ื—ื•ืฆื” ืืชืจื™ื (XSS).

ื‘ืคื™ื™ืกื‘ื•ืง, ื”ืžื ืชื— ืžืฉืžืฉ ืœื‘ื“ื™ืงืช ื”ืงื•ื“ ืฉืœ ืฉื™ืจื•ืช ืื™ื ืกื˜ื’ืจื. ื‘ืจื‘ืขื•ืŸ ื”ืจืืฉื•ืŸ ืฉืœ 2020, Pysa ืกื™ื™ืขื” ืœื–ื”ื•ืช 44% ืžื›ืœ ื”ื‘ืขื™ื•ืช ืฉืžืฆืื• ืžื”ื ื“ืกื™ ืคื™ื™ืกื‘ื•ืง ื‘ื‘ืกื™ืก ื”ืงื•ื“ ื‘ืฆื“ ื”ืฉืจืช ืฉืœ ืื™ื ืกื˜ื’ืจื.
ื‘ืกืš ื”ื›ืœ, ืชื”ืœื™ืš ืกืงื™ืจืช ื”ืฉื™ื ื•ื™ื™ื ื”ืื•ื˜ื•ืžื˜ื™ ืฉืœ Pysa ื–ื™ื”ื” 330 ื‘ืขื™ื•ืช, ืžืชื•ื›ืŸ 49 (15%) ื“ื•ืจื’ื• ื›ืขื™ืงืจื™ื•ืช ื•-131 (40%) ื›ืœื ื—ืžื•ืจื•ืช. ื‘-150 ืžืงืจื™ื (45%) ื”ื‘ืขื™ื•ืช ืกื•ื•ื’ื• ื›ืชื•ืฆืื•ืช ืฉื’ื•ื™ื•ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”