Si Pysa, isang static analyzer para sa Python na inaalok ng Facebook

Ipinakilala ng Facebook ang isang open source static analyzer na tinatawag na "Pysa»(Python Static Analyzer) na kung saan ay idinisenyo upang makilala ang mga potensyal na kahinaan sa Python code.

Pysa nagbibigay ng pagtatasa ng daloy ng data bilang isang resulta ng pagpapatupad ng code, kung saan ay nagbibigay-daan sa iyo upang makilala ang maraming mga potensyal na kahinaan at problema ng privacy na nauugnay sa paggamit ng data sa mga lugar kung saan hindi ito dapat lumitaw.

Halimbawa, Pysa maaaring subaybayan ang paggamit ng hilaw na panlabas na data sa mga tawag na nagpapatupad ng mga panlabas na programa, sa mga pagpapatakbo ng file at sa mga konstruksyon ng SQL.

Ngayon, nagbabahagi kami ng mga detalye tungkol sa Pysa, isang bukas na mapagkukunan na static na tool ng pagtatasa na binuo namin upang makita at maiwasan ang mga isyu sa seguridad at privacy sa Python code. Noong nakaraang taon, ibinahagi namin kung paano namin nilikha ang Zoncolan, isang static tool sa pagtatasa na tumutulong sa amin na pag-aralan ang higit sa 100 milyong mga linya ng hack code at tinulungan ang mga inhinyero na maiwasan ang libu-libong mga potensyal na problema sa seguridad. Ang tagumpay na iyon ay nagbigay inspirasyon sa amin na paunlarin ang Pysa, na isang akronim para sa Python Static Analyzer.

Gumagamit ang Pysa ng parehong mga algorithm upang maisagawa ang static na pagtatasa at kahit na magbahagi ng code sa Zoncolan. Tulad ng Zoncolan, Pysa sinusubaybayan ang daloy ng data sa pamamagitan ng isang programa.

Tinutukoy ng gumagamit ang mga mapagkukunan (mga lugar kung saan nagmula ang mahalagang data) pati na rin ang paglubog (mga lugar kung saan hindi dapat magtapos ang pinagmulang data).

Para sa mga aplikasyon sa seguridad, ang pinakakaraniwang uri ng mga mapagkukunan ay ang mga lugar kung saan ang data na kinokontrol ng gumagamit ay pumapasok sa application, tulad ng diksyunaryo sa Django.

Ang mga tatanggap ay may posibilidad na maging higit na iba-iba, ngunit maaaring isama ang mga API na nagpapatakbo ng code, tulad ng eval, o mga API na nag-a-access sa file system, tulad ngos.open

Gumagawa ang Pysa ng umuulit na mga pag-ikot ng pagtatasa upang makabuo ng mga abstract upang matukoy kung aling mga pagpapaandar ang nagbabalik ng data mula sa isang mapagkukunan at kung aling mga pagpapaandar ang may mga parameter na sa huli ay tumama sa isang lababo. Kung natagpuan ni Pysa na ang isang mapagkukunan sa paglaon ay nag-uugnay sa isang lababo, nag-uulat ito ng isang problema. 

Trabaho ng analyzer kumukulo ito sa pagkilala ng mga papasok na mapagkukunan ng data at mapanganib na mga tawag, kung saan hindi dapat gamitin ang orihinal na data.

Sinusubaybayan ng Pysa ang pagpasa ng data sa pamamagitan ng kadena ng mga tawag sa pag-andar at naiugnay ang orihinal na data na may mga potensyal na mapanganib na lugar sa code.

Dahil gumagamit kami ng mga open source na mga framework ng server ng Python tulad ng Django at Tornado para sa aming sariling mga produkto, maaaring magsimula ang Pysa na makatagpo ng mga isyu sa seguridad sa mga proyekto na gumagamit ng mga balangkas na ito mula sa pinakaunang pagpapatakbo. Ang paggamit ng Pysa para sa mga frame na wala pa kaming saklaw sa pangkalahatan ay kasing simple ng pagdaragdag ng ilang mga linya ng pagsasaayos upang sabihin sa Pysa kung saan papasok ang data sa server.

Ang isang pangkaraniwang kahinaan na kinilala ng Pysa ay isang bukas na isyu sa pag-redirect (CVE-2019-19775) sa platform ng pagmemensahe ng Zulip, sanhi ng pagdaan ng maruming panlabas na mga parameter kapag nagpapakita ng mga thumbnail.

Ang mga kakayahan sa pagsubaybay sa daloy ng data ng Pysa ay maaaring magamit upang patunayan ang paggamit ng mga karagdagang frame at upang matukoy ang pagsunod sa mga patakaran sa paggamit ng data ng gumagamit.

Hal Ang Pysa nang walang karagdagang mga pagsasaayos ay maaaring magamit upang mapatunayan ang mga proyekto gamit ang mga balangkas Django at Tornado. Maaari ding kilalanin ng Pysa ang mga karaniwang kahinaan sa mga aplikasyon sa web, tulad ng pagpapalit ng SQL at cross-site scripting (XSS).

Sa Facebook, ginagamit ang analyzer upang i-verify ang code ng serbisyo sa Instagram. Sa unang isang buwan ng 2020, tinulungan ng Pysa na kilalanin ang 44% ng lahat ng mga problema na natagpuan ng mga inhinyero ng Facebook sa server-side code ng base ng Instagram.

Isang kabuuan ng 330 mga problema ang nakilala sa proseso ng awtomatikong pagbabago ng pag-verify gamit ang Pysa, 49 (15%) na sinuri bilang makabuluhan at 131 (40%) ay hindi mapanganib. Sa 150 mga kaso (45%) ang mga problema ay maiugnay sa maling mga positibo.

Ang bagong parser ay dinisenyo bilang isang add-on sa toolkit ng pag-verify ng uri ng Pyre at inilalagay sa iyong imbakan. Ang code ay inilabas sa ilalim ng lisensya ng MIT.

Sa wakas kung nais mong malaman ang tungkol dito, maaari mong suriin ang mga detalye sa orihinal na post. Ang link ay ito.


Ang nilalaman ng artikulo ay sumusunod sa aming mga prinsipyo ng etika ng editoryal. Upang mag-ulat ng isang pag-click sa error dito.

Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.