46% sa mga pakete sa Python sa PyPI repository adunay posibleng dili luwas nga code

Usa ka grupo sa mga tigdukiduki gikan sa Unibersidad sa Turku (Finland) nagpatik sa mga resulta sa usa ka pagtuki sa mga pakete sa PyPI repository alang sa paggamit sa posibleng peligrosong mga konstruksyon nga mahimong mosangpot sa mga kahuyangan. Atol sa pag-analisar sa 197 ka libo nga mga pakete, 749 ka libo nga potensyal nga mga problema sa seguridad ang giila. 46% sa mga pakete adunay labing menos usa sa ingon nga problema. Lakip sa labing kasagarang mga problema mao ang mga kakulian nga may kalabotan sa pagdumala sa eksepsiyon ug ang paggamit sa mga bahin nga nagtugot sa pag-ilis sa code.

Sa 749 ka libo nga mga problema nga nahibal-an, 442 ka libo (41%) ang gimarkahan nga menor de edad, 227 ka libo (30%) ang kasarangan nga mga problema ug 80 ka libo (11%) nga peligro. Ang ubang mga pakete nagbarug gikan sa panon sa katawhan ug adunay liboan ka mga problema: pananglitan, ang PyGGI nga pakete nagpaila sa 2589 nga mga problema, nga nag-una nga may kalabutan sa paggamit sa "try-except-pass" nga pagtukod, ug ang appengine-sdk nga pakete nakakaplag ug 2356 nga mga problema. Daghang mga problema ang anaa usab sa genie.libs.ops, pbcore ug genie.libs.parser nga mga pakete.

Kinahanglan nga matikdan nga ang mga resulta nakuha base sa automated static analysis, nga wala magtagad sa konteksto sa paggamit sa pipila ka mga istruktura. Ang nag-develop sa bandit toolkit, nga gigamit sa pag-scan sa code, nagpahayag sa opinyon nga tungod sa medyo taas nga gidaghanon sa mga sayup nga positibo, ang mga resulta sa pag-scan dili direkta nga makonsiderar nga mga kahuyangan kung wala’y dugang nga pagrepaso sa manual sa matag isyu.

Pananglitan, gikonsiderar sa analisador ang paggamit sa dili kasaligan nga random number generators ug hashing algorithm, sama sa MD5, nga usa ka problema sa seguridad, samtang sa code ang ingon nga mga algorithm mahimong magamit alang sa mga katuyoan nga dili makaapekto sa seguridad. Giisip usab sa analisador ang bisan unsang pagproseso sa eksternal nga datos sa dili luwas nga mga gimbuhaton sama sa pickle, yaml.load, subprocess ug eval nga usa ka problema, apan kini nga paggamit dili kinahanglan nga adunay kalabotan sa usa ka kahuyang ug sa tinuud ang paggamit niini nga mga gimbuhaton mahimong ipatuman nga wala’y hulga sa seguridad. .

Lakip sa mga pagsulay nga gigamit sa pagtuon:

  • Paggamit sa posibleng dili luwas nga mga function exec, mktemp, eval, mark_safe, etc.
  • Dili sigurado nga setting sa mga katungod sa pag-access alang sa mga file.
  • Paglakip sa usa ka socket sa network sa tanan nga mga interface sa network.
  • Ang paggamit sa mga password ug mga yawe hugot nga gipiho sa code.
  • Paggamit sa usa ka gitakda nang daan nga temporaryo nga direktoryo.
  • Paggamit sa pass ug pagpadayon sa catch-all-style nga exception handlers;
  • Paglansad sa mga aplikasyon sa web base sa balangkas sa web sa Flask nga gipagana ang mode sa pag-debug.
  • Paggamit sa dili luwas nga mga pamaagi sa deserialization sa datos.
  • Naggamit sa MD2, MD4, MD5 ug SHA1 hash functions.
  • Paggamit sa dili sigurado nga mga cipher sa DES ug mga mode sa pag-encrypt.
  • Paggamit sa usa ka dili sigurado nga pagpatuman sa HTTPSConnection sa pipila nga mga bersyon sa Python.
  • Pagtino sa file: // scheme sa urlopen.
  • Paggamit sa pseudorandom number generators sa paghimo sa cryptographic nga mga buluhaton.
  • Paggamit sa Telnet protocol.
  • Paggamit sa dili sigurado nga XML parser.

Dugang pa, matikdan nga 8 malisyosong mga pakete ang nakita sa direktoryo sa PyPI. Sa wala pa tangtangon, ang mga problema nga pakete gi-download labaw pa sa 30 ka libo ka beses. Aron matago ang malisyoso nga kalihokan ug laktawan ang mga pasidaan gikan sa yano nga mga static analyzer sa mga pakete, ang mga bloke sa code gi-encode gamit ang Base64 ug gipatuman human sa pag-decode gamit ang eval call.

Ang mga noblesse, genesisbot, mao, nag-antos, noblesse2 ug noblessev2 nga mga pakete adunay code aron ma-intercept ang mga numero sa credit card ug mga password nga gitipigan sa mga browser sa Chrome ug Edge, ingon man ang pagbalhin sa mga token sa account gikan sa Discord application ug pagpadala sa data sa sistema, lakip ang mga screenshot sa sulod sa screen . Ang pytagora ug pytagora2 nga mga pakete naglakip sa abilidad sa pag-load ug pag-execute sa third-party executable code.

Source: opennet.ru

Idugang sa usa ka comment