Pysa, מנתח סטטי של Python המוצע על ידי פייסבוק

פייסבוק הציגה מנתח סטטי בקוד פתוח בשם "Pysa"»(מנתח סטטי פייתון) שהוא נועד לזהות נקודות תורפה בקוד פייתון.

פיזה מספק ניתוח זרימת נתונים כתוצאה מביצוע קוד, אשר מאפשר לך לזהות פגיעות ובעיות פוטנציאליות רבות של פרטיות הקשורה לשימוש בנתונים במקומות בהם הם לא אמורים להופיע.

למשל, פיזה יכול לעקוב אחר השימוש בנתונים חיצוניים גולמיים בשיחות שמבצעות תוכניות חיצוניות, בפעולות קבצים ובבניית SQL.

כיום אנו משתפים פרטים אודות Pysa, כלי ניתוח סטטי בקוד פתוח שבנינו כדי לאתר ולמנוע בעיות אבטחה ופרטיות בקוד Python. בשנה שעברה שיתפנו כיצד יצרנו את Zoncolan, כלי ניתוח סטטי המסייע לנו לנתח מעל 100 מיליון שורות קוד פריצה ועזר למהנדסים למנוע אלפי בעיות אבטחה אפשריות. הצלחה זו עוררה אותנו בפיתוח Pysa, שהוא ראשי תיבות של Python Static Analyzer.

Pysa משתמש באותם אלגוריתמים לבצע ניתוח סטטי ואפילו לשתף קוד איתו זונקולן. כמו זונקולן, פיזה עוקב אחר זרימת נתונים דרך תוכנית.

המשתמש מגדיר מקורות (מקומות שמקורם נתונים חשובים) וכן כיורים (מקומות בהם נתוני המקור לא אמורים להסתיים).

עבור יישומי אבטחה, סוגי המקורות הנפוצים ביותר הם מקומות שבהם נתונים הנשלטים על ידי המשתמש נכנסים ליישום, כגון מילון ג'נגו.

מקלטים נוטים להיות הרבה יותר מגוונים, אך יכולים לכלול ממשקי API המריצים קוד, כגון eval, או ממשקי API אשר ניגשים למערכת הקבצים, כגוןos.open

פיזה מבצע סבבי ניתוח חוזרים לבניית תקצירים כדי לקבוע אילו פונקציות מחזירות נתונים ממקור ולאילו פונקציות יש פרמטרים שבסופו של דבר פוגעים בכיור. אם Pysa מגלה שבסופו של דבר מקור מתחבר לכיור, הוא מדווח על בעיה. 

עבודת מנתח זה מסתכם בזיהוי מקורות נתונים נכנסים ושיחות מסוכנות, שבהן אין להשתמש בנתונים המקוריים.

Pysa עוקב אחר העברת הנתונים דרך שרשרת קריאות הפונקציות ומשייך את הנתונים המקוריים למקומות שעלולים להיות מסוכנים בקוד.

מכיוון שאנו משתמשים במסגרות שרת פייתון בעלות קוד פתוח כמו Django ו- Tornado עבור המוצרים שלנו, Pysa יכולה להתחיל להיתקל בבעיות אבטחה בפרויקטים המשתמשים במסגרות אלה כבר מההפעלה הראשונה. השימוש ב- Pysa למסגרות שעדיין אין לנו כיסוי הוא בדרך כלל פשוט כמו הוספת מספר שורות תצורה כדי לספר ל- Pysa היכן הנתונים נכנסים לשרת.

פגיעות נפוצה שזוהתה על ידי Pysa היא נושא הפניה מחדש פתוח (CVE-2019-19775) בפלטפורמת ההודעות של Zulip, הנגרמת על ידי העברת פרמטרים חיצוניים לא נקיים בעת הצגת תמונות ממוזערות.

ניתן להשתמש ביכולות מעקב זרימת הנתונים של Pysa כדי לאמת את השימוש במסגרות נוספות ולקביעת תאימות למדיניות השימוש בנתוני המשתמש.

לדוגמה: ניתן להשתמש ב- Pysa ללא תצורות נוספות לאימות פרויקטים באמצעות המסגרות ג'נגו וטורנדו. Pysa יכול לזהות גם נקודות תורפה נפוצות ביישומי אינטרנט, כגון החלפת SQL ו- scripting בין אתרים (XSS).

בפייסבוק משתמשים במנתח כדי לאמת את הקוד של שירות האינסטגרם. במהלך הרבעון הראשון של שנת 2020 סייעה פיזה בזיהוי 44% מכל הבעיות שנמצאו על ידי מהנדסי פייסבוק בבסיס הקוד בצד השרת של אינסטגרם.

בסך הכל זוהו בתהליך 330 בעיות של אימות שינוי אוטומטי באמצעות Pysa, 49 (15%) מהם הוערכו כמשמעותיים ו- 131 (40%) לא היו מסוכנים. ב -150 מקרים (45%) הבעיות יוחסו לתגובות כוזבות.

המנתח החדש תוכנן כתוספת לערכת הכלים לאימות סוג פייר והוא ממוקם במאגר שלך. הקוד שוחרר ברישיון MIT.

בסופו של דבר אם אתה רוצה לדעת יותר על זה, אתה יכול לבדוק את הפרטים בפוסט המקורי. הקישור הוא זה.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.