לפני כשבוע בערך הביצה הקטנה בטוויטר שוב רחשה בגלל גילוי נאה של מומחה לאבטחת מידע בשם אדין יוסופוביץ'. הוא בדק קבצי תמונה מפייסבוק ב-hex editor וראה שהם מוסיפים מידע לכל תמונה ומדובר במידע מוצפן הכולל את שם המשתמש ונעשה בכל תמונה שהיא.
כתבתי על כך מאמר נאה ל'הארץ' כמיטב המסורת (למי שלא יודע, בנוסף לעבודתי הסדירה בורייזון, אני גם כתב לענייני טכנולוגיה ב'הארץ') וחשבתי להרחיב כאן על ענייני הסטגנוגרפיה – לאנשים טכניים יותר.
אז סטגנוגרפיה, למי שלא יודע, זו אמנות הכתיבה המכוסה (זה פירוש השם – סטגנו זה כיסוי וגרפיה זו כתיבה) ובגדול זה אומר להעביר מידע בצורה סודית. מה זאת אומרת? בקריפטוגרפיה אנו מצפינים את המידע אך לא מסתירים אותו. כל אחד יכול לדעת שאני מעביר מידע מוצפן ומטרת הקריפטוגרפיה היא לא להסתיר את עובדת קיום המידע, רק למנוע מאנשים לחטט שם בלי מפתח הצופן המקורי. מטרת הסטגנוגרפיה היא להסתיר את עובדת העברת המידע.
דוגמה? אחת הדוגמאות שאני ממש אוהב היא אקרוסטיכון. קחו למשל את הכתבה המהממת הזו על דוגמנית שנעצרה על העלמת מס. בזמן פרסום הכתבה, שם הדוגמנית היה אסור לפרסום, אבל הכתב השתמש באקרוסטיכון כדי לשדר את המידע החוצה כאשר הוא חבוי בטקסט.
כמובן שבעולם המחשוב יש לנו דרכים יותר מעניינות. הדרך שיוספוביץ' מצא היא דרך כזו. מה שקורה הוא שאפשר להוסיף לקבצים מסוימים (במיוחד תמונות) מידע בינארי בסוף שלהם. כאשר אנו מציגים את התמונה בדפדפן/עורך תמונות – בגלל שהתוכנה שמציגה את התמונה לא יודעת מה לעשות איתו – היא מתעלמת ממנו. כאשר אנו שומרים את התמונה – היא נשמרת עם המידע הזה כמובן.
בואו ונדגים. תורידו תמונה כלשהי. לא משנה איזו. בואו ונצמיד לה טקסט. איך? ניצור קובץ טקסט פשוט ונשים את התמונה ואת הטקסט באותה תיקיה. עכשיו נמזג אותם מבחינה בינארית – נוסיף את הטקסט לתחתית התמונה. איך?
בחלונות נפתח את ה-CMD שלנו ונקליד:
copy /b picture.jpg + data.txt hidden-data.jpg
אם יש לנו לינוקס/מק אז:
cat picture.jpg data.txt > hidden-data.jpg
נראה שנוצרה לנו תמונה בשם hidden-data.jpg. אם תפתחו אותה, לא תבדילו בינה לבין תמונה אחרת. הנה התמונה שאני יצרתי:
אבל יש בתמוה הזו מידע אחר. איך נמצא אותו? בשביל זה אנחנו צריכים להסתכל על המקור הבינארי. אבל כיוון שאף אחד מאיתנו לא יודע להסתכל על 0 ו-1, אנו נסתכל על ה-hex. אפשר לעשות את זה, תאמינו או לא, בעורך אונלייני. נסו את זה למשל – פשוט תעתיקו את כתובת התמונה אליו ותראו את המסר הסודי.
כמובן שזו דרך יחסית נאיבית, אבל זו דרך. והיא עובדת. אפשר לעשות דברים כאלו לקבצים נוספים. וכמובן שכל סקריפט יכול לקרוא את המידע הזה. וכן, יש לזה לא מעט שימושים. עכשיו אתם יודעים שזה לא קסם וגם איך עושים את זה. תודו שזה מגניב.
כמובן שזה לא סוד גדול ויש ספריות לא מעטות בהמון שפות שעוסקות בכתיבה וקריאה של מידע כזה. גם ניתן להכניס מידע כזה באופן לא פיראטי אלא בצורה מסודרת במקומות שנועדו להכניס מידע כזה.
10 תגובות
שאלת תם בעקבות הפוסט – האם בעצם זה כלי שמאפשר ליירט תמונה המופצת ברשתות כגון וואטסאפ, ואז להגיע (שוב, תיאורטית – כי הקושי האנושי ברור גם הוא) למפיץ ההודעה ולהצליב את הנתון עם המכשיר שאיתו צולמה התמונה?
ידוע שהמשטרה מגיעה תוך שניה לאנשים שמפיצים תמונות בוואצפ. עכשיו אנחנו מבינים איך…
אני קצת מפקפק שהייתה כוונה באקרוסטיכון של הדוגמנית.
זה לא אות ראשונה של כל משפט או אפילו של כל פסקה ואני משער שאם משנים את המימדים של החלון מאבדים את היישור שמאפשר לקרוא את השם.
אני לא יודע איך האתר נראה כשהכבה פורסמה
היום זה לא מתאים מבחינת השורות
https://www.bizportal.co.il/general/news/article/419915
זו גם דרך לעקוב אחר הפרת זכויות יוצרים
דרך מקובלת על ידי ארגוני טרור להעביר מידע.
תוכנה שקוראת תוים במיקומים (offsets) ידועים מראש (המיקומים משתנים מיום ליום). מי שרוצה לשלוח את המידע מצפין אותו בתוך תמונה שהוא מעלה לרשת. מקבלי ההודעה מורידים את התמונה ומריצים עליה את התוכנה שיוצרת מחדש את המסר הסמוי.
בסרטים בעיקר. בפועל יש להם דרכים יותר פשוטות להעביר מידע, כפי שכל אחד היה משתמש. למשל הפעם ההיא שהתפרסם שהם תקשרו באמצעות תיבת טיוטות של אותה תיבת מייל וכך שרותי סריקת מיילים שנשלחים לא עלו על זה. סטגנוגרפיה בפשיעה יותר שימושית במקרה של מסרים חד פעמיי כגון קריאה לפעולה (כמו במילואים אצלנו)
ניסיתי להריץ את זה ועבד לי. אך לאחר מכן ניסיתי להעביר את התמונה דרך הוואטסאפ ולראות אם עדיין המסר נשאר אך ללא הצלחה. האם עשיתי משהו לא נכון? או שזו ההצפנה של וואטסאפ שהפריעה למסר לעבור? ואם כן אז איך ההצפנה של פייסבוק לא מפריעה לו לעבור? או שזה מוטמע…
ההצפנה של פייסבוק יוצרת את זה לכן זה לא נמחק
א. וואטסאפ ממירה את התמונה. כנראה שהאלגוריתם שלהם לוקח רק את הקטע של התמונה מהבינארי בלי כל ה Headers ולכן שינויים בקובץ לא יעברו למעט השינוי שלהם.
ב. פייסבוק עושים את הסטגנוגרפיה בצורה יותר חכמה מלהדביק בסוף עוד קובץ.