טכניקות לזיהוי ולכידת בוטים חמקניים

כשתוכנה מתחברת לשרת HTTP הוא יכולה לדווח לו מי היא, באחד השדות שנקרא user-agent.
הסיבה היא שיתכן שיש לוגיקה ספציפית בצד השרת שמיועדת לדפדפן מסוים (למשל כי יש בו באג שדורש התייחסות שונה מצד השרת).
דפדפנים הם לא התוכנות היחידות שמתחברות לאתרי אינטרנט, גם בוטים (קיצור של רובוטים), הידועים גם בשמות הפחות מחמיאים עכבישים וזחלנים מתחברים.
בוטים לדוגמא הם רובוטים של מנועי חיפוש, שמאנדקסים את הדפים באתר כדי לאפשר חיפוש מהיר.
בוטים אחרים שמפועלים על ידי ספאמרים סורקים את הדפים בחיפוש אחרי כתובות אימייל, או שולחים תגובות ספאם בבלוגים ובמערכות אחרות.
אתרי אינטרנט רבים היום מייצרים את התוכן שלהם בצורה דינאמית, מה שיכול לבלבל ולהעמיס על רובוטים שמנסים לאנדקס את האתר.
בעיה נוספת היא שלפעמים יש חלקים באתר שבעלי האתר לא מעוניין שיאונדקסו על ידי בוטים, למרות שהוא רוצה לאפשר אליהם גישה חופשית לאנשים.
הפתרון לשתי הבעיות הוא קובץ בשם robots.txt, שנמצא בספריית השורש של האתר. הקובץ הזה, שלמרות שלא מוגדר בשום תקן, הפך לסטנדרט להגדרה של איזורים אסורים לבוטים.
הנה הקובץ של גוגל, שאגב יכול לחשוף שרותים מעניינים שלהם.
מטבע הדברים הבוטים הלא לגיטמיים מנסים להסתיר את הזהות שלהם כדי למנוע מהשרת מלהתגונן בפניהם, ולכן מזדהים בעזרת user-agent של דפדפנים נפוצים, בנוסף, בדרך כלל רובוטים כאלו גם לא מתייחסים לקובץ הrobots.txt, אחרי הכל – אם בעל האתר טרח לומר שאסור לבוטים להכנס לאיזור מסויים, אולי זה בדיוק האיזור שאותם בוטים ירצו לסרוק?
כמובן שיש גם בוטים לגיטימיים שפשוט כתובים רע או שמכילים באג שגורם להם להתעלם מהקובץ.
אפשר להשתמש בעובדה שרובוטים זדוניים מתעלמים מקובץ הרובוטים כדי לזהות ואפילו לחסום אותם.
נתקלתי ברעיון כאן.
הרעיון פשוט למדי:
נכניס לקובץ הרובוטים קובץ שאסור לקריאה על ידי רובוטים.
נכניס לדפים שלנו לינק בלתי נראה שמפנה אל אותו קובץ.
מכיוון שהלינק הוא בלתי נראה, אנשים לא יכנסו אליו בטעות.
כל הפעלה של הקובץ הגיעה בעצם מרובוט סורר, מה שיאפשר הוספה שלו לבסיס הנתונים של הרובוטים (הסוררים) וגם חסימה של כתובת האי-פי שלו כדי למנוע ממנו לבצע באתר את מעשיו הנלוזים.
דרך נוספת לזהות בוטים שלא מזדהים בuser-agent שלהם היא באמצעות זיהוי תבנית הכניסות שלהם לאתר.
בוטים נוטים להיות מאוד יסודיים ובדרך כלל סריקה של בוט, במיוחד כזה שלא מזדהה, תהיה בסדר גודל של כמה מאות דפים בכל פעם, בהפרשים קצרים מאוד בין כניסה לכניסה.
אפשר להשתמש בידע הזה כדי לזהות בוטים, מחפשים סדרה ארוכה של כניסות מאותה כתובת אי-פי, כאשר ההפרשים בין כניסה לכניסה קצרים מדי מכדי שזה יהיה סביר שבן אדם ביצע אותם.

אני אממש את שתי הטכניקות באיזה שהוא שלב בFireStats כדי לזהות בוטים שכאלו.
במלכודת הבוטים אני אשתמש כדי לזהות בוטים בזמן אמת, ואילו בטכניקה השניה אני אשתמש כדי לזהות בוטים רטרוקטיבית כדי לנקות את בסיס הנתונים מזבל.

הרעלת זחלנים

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

FireStats 0.9.5-beta

שחררתי את FireStats 0.9.5.
חדש:
* תרגום לעברית
* דפים פופלריים
* תצוגה משופרת של עצי הדפדפנים ומערכות ההפעלה
* דף הכניסה של FireStats עבר מעריכה וניהול ללוח הבקרה.
בנוסף, יש לוגו חדש לFireStats, באדיבות Arun

FireStats logo

ספאם האוס לבית משפט באילינוי: אנחנו צוחקים בכיוון הכללי שלהם.

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

היפופוצב

תינוק-פוטם צעיר בשם אוון אימץ צב בן מאה בשם טורטוייז בתור אמא שלו.
אוון איבד את אימו לאחר שנסחף לים וחזרה אל החוף בעיקבות הצונאמי הגדול שפגע בדרום אסיה והגיע עד חופי קניה בסוף 2004 (אותו צונאמי שקטל מאות אלפי בני אדם).
hipo1
נראה שההיפי הצעיר חיפש לו דמות אם, ונראה גם שהצב הזקן שמח להיות האם הזו.
hipo2

תודה לוולדמיר.

דף בית חדש לFireStats

הקמתי דף בית חדש לFireStats שרץ על trac המצויין.
trac תומך בוויקי, מערכת לניהול באגים ובקשות לשיפור, מערכת לעיון בקוד ועוד.
כדי ליצור ticket או לשנות את הוויקי, צריך להרשם (יש לינק למעלה)
תעיפו מבט.