מאגר PyPI מכיל קוד שעלול להיות לא בטוח

חוקרים מאוניברסיטת טורקו (פינלנד) הוכרז לאחרונה את תוצאות הניתוח הם עשו לחבילות במאגר על ידי PyPI לשימוש במבנים שעלולים להיות מסוכנים העלולים ליצור פגיעויות. בניתוח ש בוצעו כ -197.000 חבילות וזוהו 749.000 בעיות אבטחה אפשריות.

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

מתוך 749 אלף הבעיות שזוהו, 442 אלף (41%) סומנו כקטינים, 227 אלף (30%) כמסוכנים במידה בינונית ו -80 אלף (11%) כמסוכנים.

מערך הנתונים מבוסס על תמונת מצב של כל החבילות המאוחסנות במדד חבילת Python (PyPI) ...

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

חלק מהחבילות יוצאות מן הכלל ומכילות אלפי בעיות: לדוגמה, 2589 בעיות נמצאו בחבילת PyGGI, הקשורות בעיקר לשימוש במבנה "לנסות-מלבד-לעבור", ו -2356 בעיות נמצאו בחבילת appengine-sdk. יש גם הרבה בעיות בחבילות genie.libs.ops, pbcore ו- genie.libs.parser.

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

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

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

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

בין הפקדים המשמשים במחקר:

  • שימוש בפונקציות שעלולות להיות לא בטוחות exec, mktemp, eval, mark_safe וכו '.
  • תצורה לא מאובטחת של זכויות גישה לקבצים.
  • חבר תקע רשת לכל ממשקי הרשת.
  • שימוש בסיסמאות ובמפתחות מוצפנים.
  • שימוש בספרייה זמנית מוגדרת מראש.
  • שימוש בפאס והמשיכו במנהלי חריגים מסוג סגנון כל.
  • הפעל יישומי אינטרנט המבוססים על מסגרת האינטרנט Flask עם מצב איתור באגים מופעל.
  • שימוש בשיטות לא מאובטחות לניטרול הנתונים.
  • שימוש בפונקציות hash של MD2, MD4, MD5 ו- SHA1.
  • שימוש במצפני DES לא בטוחים ובמצבי הצפנה.
  • שימוש ביישום HTTPSConnection לא מאובטח בגרסאות מסוימות של Python.
  • ציון הקובץ: // schema ב- urlopen.
  • השתמש במחוללי מספר פסאודו אקראי בעת ביצוע משימות הצפנה.
  • שימוש בפרוטוקול Telnet.
  • שימוש במנתחי XML לא מאובטחים.

בנוסף, מוזכרת זיהוי של 8 חבילות זדוניות בספריית PyPI. חבילות בעיות הורדו יותר מ -30 פעמים לפני שהוסרו. כדי להסתיר פעילות זדונית ולהימנע מאזהרות מנתח סטטיות פשוטות על חבילות, השתמשנו בקידוד חסימות עם קוד באמצעות פורמט Base64 וביימנו את הביצוע לאחר פענוח על ידי קריאה ל- eval.

הקוד שנמצא בחבילות noblesse, genesisbot, הן, suff, noblesse2 ו- noblessev2 ליירוט מספרי כרטיסי אשראי וסיסמאות המאוחסנים בדפדפני Chrome ו- Edge, כמו גם העברת אסימוני חשבון מהאפליקציה דיסקורד ושליחת נתונים מהמערכת, כולל צילומי מסך של תוכן מסך. ... חבילות pytagora ו- pytagora2 כללו את היכולת להוריד ולהפעיל קוד הפעלה של צד שלישי.

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


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

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

*

*

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