Pysa, een statische analyzer voor Python aangeboden door Facebook

Facebook heeft een open source statische analysator geïntroduceerd genaamd "Pysa»(Python Static Analyzer) dat is ontworpen om mogelijke kwetsbaarheden in Python-code te identificeren.

pysa biedt gegevensstroomanalyse als resultaat van code-uitvoering, die stelt u in staat om veel potentiële kwetsbaarheden en problemen te identificeren van privacy gerelateerd aan het gebruik van gegevens op plaatsen waar deze niet zouden mogen verschijnen.

Bijvoorbeeld Pysa kan het gebruik van onbewerkte externe gegevens in oproepen volgen die externe programma's uitvoeren, in bestandsbewerkingen en in SQL-constructies.

Vandaag delen we details over Pysa, een open source statische analyse-tool die we hebben gebouwd om beveiligings- en privacyproblemen in Python-code te detecteren en te voorkomen. Vorig jaar hebben we gedeeld hoe we Zoncolan hebben gemaakt, een statische analyse-tool die ons helpt meer dan 100 miljoen regels hackcode te analyseren en ingenieurs heeft geholpen duizenden potentiële beveiligingsproblemen te voorkomen. Dat succes inspireerde ons om Pysa te ontwikkelen, wat een afkorting is voor Python Static Analyzer.

Pysa gebruikt dezelfde algoritmen om statische analyses uit te voeren en zelfs code te delen met zoncolan. Net als Zoncolan, Pysa volgt gegevensstromen door een programma.

De gebruiker definieert zowel bronnen (plaatsen waar belangrijke gegevens vandaan komen) als sinks (plaatsen waar de brongegevens niet mogen eindigen).

Voor beveiligingstoepassingen zijn de meest voorkomende typen bronnen plaatsen waar door de gebruiker beheerde gegevens de toepassing binnenkomen, zoals het Django-woordenboek.

Ontvangers zijn doorgaans veel gevarieerder, maar kunnen API's bevatten die code uitvoeren, zoals evalof API's die toegang hebben tot het bestandssysteem, zoalsos.open

Pysa voert iteratieve analyserondes uit om abstracts te maken om te bepalen welke functies gegevens uit een bron retourneren en welke functies parameters hebben die uiteindelijk een sink raken. Als Pysa ontdekt dat een bron uiteindelijk verbinding maakt met een gootsteen, meldt het een probleem. 

Analyzer werk het komt neer op het identificeren van inkomende databronnen en gevaarlijke oproepen, waarbij de originele gegevens niet mogen worden gebruikt.

Pysa bewaakt de doorgang van gegevens door de reeks functieaanroepen en koppelt de oorspronkelijke gegevens aan potentieel gevaarlijke plaatsen in de code.

Omdat we open source Python-serverframeworks zoals Django en Tornado gebruiken voor onze eigen producten, kan Pysa beveiligingsproblemen tegenkomen in projecten die deze frameworks vanaf de allereerste keer gebruiken. Het gebruik van Pysa voor frameworks waarvoor we nog geen dekking hebben, is over het algemeen net zo eenvoudig als het toevoegen van een paar configuratieregels om Pysa te vertellen waar de gegevens naar de server komen.

Een veelvoorkomende kwetsbaarheid geïdentificeerd door Pysa is een open omleidingsprobleem (CVE-2019-19775) in het Zulip-berichtenplatform, veroorzaakt door het doorgeven van onreine externe parameters bij het weergeven van miniaturen.

De mogelijkheden van Pysa voor het volgen van gegevensstromen kunnen worden gebruikt om het gebruik van extra frames te valideren en om de naleving van het beleid voor het gebruik van gebruikersgegevens te bepalen.

Bv Pysa zonder aanvullende configuraties kan worden gebruikt om projecten te verifiëren met behulp van de frameworks Django en Tornado. Pysa kan ook veelvoorkomende kwetsbaarheden in webapplicaties identificeren, zoals SQL-substitutie en cross-site scripting (XSS).

Op Facebook wordt de analyzer gebruikt om de code van de Instagram-service te verifiëren. In het eerste kwartaal van 2020 hielp Pysa bij het identificeren van 44% van alle problemen die door Facebook-ingenieurs in de server-side codebasis van Instagram werden gevonden.

Tijdens het proces zijn in totaal 330 problemen geconstateerd van de geautomatiseerde verificatie van wijzigingen met behulp van Pysa, waarvan er 49 (15%) als significant werden beoordeeld en 131 (40%) niet gevaarlijk waren. In 150 gevallen (45%) werden de problemen toegeschreven aan false positives.

De nieuwe parser is ontworpen als een add-on voor de Pyre-verificatietoolkit en wordt in uw repository geplaatst. De code wordt vrijgegeven onder de MIT-licentie.

Eindelijk als je er meer over wilt weten, je kunt de details in het originele bericht bekijken. De link is dit.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.