לאחרונה פורסם מידע בנוגע לזיהוי שבע פגיעויות בחבילת Dnsmasq, המשלבת פותר DNS לאחסון במטמון ושרת DHCP, בעל שם הקוד DNSpooq. בעיות אלו מאפשרות התקפות מזויפות של מטמון DNS או גלישות מאגר שעלולות להוביל להרצת קוד מרחוק על ידי תוקף.
למרות ש- Dnsmasq הוצא לאחרונה משימוש כרזולוטור ברירת מחדל בהפצות לינוקס סטנדרטיות, הוא עדיין בשימוש באנדרואיד ובהפצות ייעודיות כמו OpenWrt ו-DD-WRT, כמו גם בקושחה של נתבים אלחוטיים רבים. בהפצות סטנדרטיות, שימוש מרומז ב-dnsmasq אפשרי; לדוגמה, בעת שימוש ב-libvirt, ניתן להתחיל לספק שירות DNS במכונות וירטואליות או להפעיל אותו על ידי שינוי הגדרות בקונפיגורטור NetworkManager.
בהתחשב בכך שתרבות עדכון הנתבים האלחוטיים משאירה מקום רב לרצוי, חוקרים חוששים שהבעיות שזוהו עלולות להישאר בלתי פתורות במשך זמן רב ולהפוך למטרה להתקפות אוטומטיות על נתבים כדי להשתלט עליהם או להפנות משתמשים לאתרים זדוניים מזויפים.
ישנן כ-40 חברות המסתמכות על Dnsmasq , ביניהן Cisco, Comcast, Netgear, Ubiquiti, Siemens, Arista, Technicolor, Aruba, Wind River, Asus, AT&T, D-Link, Huawei, Juniper, Motorola, Synology, Xiaomi, ZTE ו-Zyxel. ייתכן שמשתמשים במכשירים אלה לא יומלצו להשתמש בשירות העברת שאילתות DNS המובנה.
החלק הראשון של הפגיעויות שהתגלו ב-Dnsmasq מתייחס להגנה מפני התקפות הרעלת מטמון DNS, המבוססות על שיטה שהוצעה בשנת 2008 על ידי דן קמינסקי.
הפגיעויות שזוהו הופכות את ההגנה הקיימת ללא יעילה ומאפשרות זיוף של כתובת IP של דומיין שרירותי במטמון. השיטה של קמינסקי מתמרנת את הגודל הזניח של שדה הזיהוי של שאילתת ה-DNS, שהוא רק 16 סיביות.
כדי למצוא את המזהה הנכון הדרוש לזיוף שם המארח, מספיק לשלוח כ-7.000 בקשות ולדמות כ-140.000 תגובות מזויפות. ההתקפה מסתכמת בשליחת מספר רב של חבילות מזויפות המקושרות ל-IP אל פותר ה-DNS עם מזהי עסקאות DNS שונים.
הפגיעויות שזוהו מפחיתות את רמת האנטרופיה הצפויה מ-32 סיביות לדרישת ניחוש של 19 סיביות, מה שהופך מתקפת הרעלת מטמון לריאליסטית למדי. יתר על כן, הטיפול של dnsmasq ברשומות CNAME מאפשר לו לזייף את מחרוזת רשומת ה-CNAME, תוך זיוף יעיל של עד תשע רשומות DNS בו זמנית.
- CVE-2020-25684: חוסר אימות של מזהה הבקשה בשילוב עם כתובת IP ומספר יציאה בעת עיבוד תגובות DNS משרתים חיצוניים. התנהגות זו אינה תואמת ל- RFC-5452, הדורש שימוש בתכונות בקשה נוספות בעת התאמת תגובה.
- CVE-2020-25686: היעדר אימות של בקשות ממתינות בעלות אותו שם, מה שמאפשר שימוש בשיטת יום ההולדת לצמצם משמעותית את מספר הניסיונות הנדרשים לזיוף תגובה. בשילוב עם הפגיעות CVE-2020-25684, תכונה זו יכולה להפחית משמעותית את מורכבות ההתקפה.
- CVE-2020-25685: שימוש באלגוריתם hash לא אמין CRC32 בעת אימות תגובות, במקרה של הידור ללא DNSSEC (SHA-1 משמש עם DNSSEC) ניתן להשתמש בפגיעות כדי להפחית משמעותית את מספר הניסיונות בכך שהיא מאפשרת לך לנצל דומיינים שיש להם אותו חשיש CRC32 כמו תחום היעד.
- מערכת הבעיות השנייה (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 ו- CVE-2020-25687) נגרמת על ידי שגיאות הגורמות להצפת מאגר בעת עיבוד נתונים חיצוניים מסוימים.
- עבור נקודות התורפה CVE-2020-25681 ו- CVE-2020-25682, ניתן ליצור ניצולים שעלולים להוביל לביצוע קוד במערכת.
לבסוף, צוין כי הפגיעויות טופלו בעדכון Dnsmasq 2.83 , וכפתרון עוקף, מומלץ להשבית את DNSSEC ואת אחסון השאילתות במטמון באמצעות אפשרויות שורת פקודה.
מקור: https://kb.cert.org