DNS spoofing

From האנציקלופדיה היהודית
Jump to: navigation, search

DNS spoofing, נקראת גם הרעלת DNS‏ (DNS poisoning או DNS cache poisoning), היא סוג של תקיפת סייבר בה מושחת מידע בשרת DNS ומוכנס מידע בזיכרון המטמון של מפענח השמות (DNS Resolver), ובכך נגרמת החזרת כתובת IP לא נכונה עבור בקשת פענוח שם תחום לכתובת. תקיפה קיברנטית זו עשויה לאפשר לתוקף לבצע התקפת אדם בתווך ולנתב תנועה ברשת אל המחשב האישי של התוקף.

DNS

שרת DNS מתרגם כתובת קריאה (human-readable) של שם תחום (כגון jewiki.org.il) לכתובת IP נומרית המשמשת כדי לנתב תקשורת בין שני צמתים ברשת. באופן כללי, אם שרת אינו יודע תרגום לכתובת מסוימת, הוא יבקש משרת אחר שייתן לו תרגום, והליך זה יתבצע באופן רקורסיבי. כדי לשפר יעילות וזמן-ביצוע, שרת בדרך כלל יזכור תרגום כתובות בזיכרון מטמון למשך זמן מסוים. פירוש הדבר הוא שאם הוא יקבל בקשה לתרגום כתובת שכבר נמצאת בזיכרון המטמון, הוא ישלוף אותו משם במקום לבצע בפועל את התרגום על ידי כך שישאל את השרת המתאים מה התרגום הנכון לאותה הכתובת, וזאת עד מועד פקיעת זיכרון המטמון.

אם שרת DNS מקבל תרגום כתובת שגוי, הוא זוכר אותה (במטמון) לצורכי אופטימיזציה של ביצועים, וכעת הוא מוגדר "מורעל", ויספק את התרגום השגוי בכל פעם שיבקשו ממנו לתרגם את אותה הכתובת. פירוש הדבר ש-DNS מורעל ייתן כתובת IP שגויה ובכך יסיט תקשורת לאתר של מחשב אחר (בדרך כלל של התוקף)[1].

אבטחה ומניעת התקפות

ניתן למנוע התקפות רבות של הרעלת מטמון על שרתי DNS על ידי כך שנגרם לשרתי DNS להיות חשדניים יותר בנוגע למידע שמועבר אליהם משרתי DNS אחרים, ולהתעלם מרשומות DNS מוחזרות שאינן קשורות ישירות לשאילתה הנשאלת. לדוגמה, BIND מגרסה 9.5.0-P1[2] ומעלה, מבצעות בדיקות אלו[3].

הכנסת אקראיות בקביעת הפורט של השרת המבקש, יחד עם שימוש מספרים אקראיים מאובטחים קריפטוגרפית לבחירת הפורט השולח וה-bit‏-16 של ה-nonce הקריפטוגרפי, יכולים להנמיך משמעותית את הסיכוי להצלחת התקפת DNS race.

עם זאת, כאשר נתבים, חומת אש, שרת פרוקסי וכשרים אחרים מבצעים NAT, או ביתר פירוט PAT (‏port address translation), הם עלולים לדרוס את הפורט של השרת השולח כדי לעקוב אחר המצב של הקישור. כאשר משנים פורטים של השולח, מכשירי PAT יכולים להסיר אקראיות מהפורט השולח שמומש על ידי ה-Name Servers ומפרשים אחרים.

DNS מאובטח (DNSSEC) משתמש בחתימה דיגיטלית חתומה עם תעודה דיגיטלית (public key certificate) לקביעת אמינות המידע. DNSSEC מסוגל לסתור התקפות הרעלת DNS, ועם הזמן הוטמע במערכות קיימות. בשנת 2010 מומש DNSSEC בשרתי השורש (zone server) של האינטרנט[4].

סוג התקפה כזה יכול להיות מטופל בשכבת התעבורה או שכבת היישום על ידי ביצוע ולידציה מקצה לקצה, לאחר שהתקשרות אירעה. דוגמה מובהקת לכך היא שימוש ב TLS וחתימה דיגיטלית. לדוגמה, על ידי שימוש ב-HTTPS במקום HTTP, משתמשים יכולים לבדוק האם החתימה הדיגיטלית של שרת היא טובה ושייכת לבעלים המצופים של האתר. באופן דומה, תוכנת secure shell המאפשרת גישה מרחוק בודקת חתימות דיגיטליות בנקודות קצה (אם ידועות) לפני שמתקדמים עם ה-session. לתוכנות שמורידות עדכונים באופן אוטומטי, היישום יכול להטמיע בתוכו התעודה הדיגיטלית מקומית ולוודא מולה את החתימה הדיגיטלית שנמצאת בתוך העדכון.

ראו גם

הערות שוליים


שגיאות פרמטריות בתבנית:הערות שוליים

לא נמצא templatedata תקין

  1. ^ Son, Sooel; Shmatikov, Vitaly. "The Hitchhiker’s Guide to DNS Cache Poisoning". Cornell University. בדיקה אחרונה ב-3 באפריל 2017. .
  2. ^ "BIND Security Matrix". ISC Bind. בדיקה אחרונה ב-11 במאי 2011. .
  3. ^ "ISC Bind Security". ISC Bind. בדיקה אחרונה ב-11 במאי 2011. .
  4. ^ "Root DNSSEC". ICANN/Verisign. עמ' 1. בדיקה אחרונה ב-5 בינואר 2012. 

NivdakVeushar.png