זיהוי רשתות בוטים בטוויטר
נעם רותם ויובל אדם
בוטים / אווטארים /
בובות גרב / כימרות
מתודולוגיה
- הפניה לחשבונות חשודים
- אישור חשבונות לצורך שימוש API
- זיהוי צבירים חשודים
- מחקר ידני ואוטומטי
תקציר הפרקים הקודמים - הרשת הטורקית
תוכן
מטא-דאטה מחשיד
חריקות שפה ותרבות
אנשי קש
רשת חשודה
רשת אורגנית
ציטוטים במדיה
תוכן
הקשר הטורקי
תוצאות
- דיווח לטוויטר
- 142 חשבונות נסגרו
כנסיית האל הכל יכול
רשת הבנות החדשה
עיתונאים - אוכלוסיה בסיכון גבוה
קמפיין פייק ניוז
קמפיין פייק ניוז
חשבון פייק חד-פעמי
- חשבון בעל ותק של מספר שנים
- נקנה מרשת ספאם
- מוסב לאוואטר "לגיטימי"
- טירגוט עיתונאים במינשונים וDM
אי-התאמת עוקבים
תשתית טכנית
איסוף נתונים מטוויטר
- Python
- PostgreSQL
- SQLAlchemy
- Celery
Lifecycle
- קריאות API לטוויטר
- שמירת המידע
- תיוג
- יצוא דוחות (CSV, XLS)
- ממשק ניתוח לאנליסטים
- ויזואליזציות Gephi
מודל לדוגמה
class User(Base):
__tablename__ = 'users'
id = Column(String(20), primary_key=True)
name = Column(String(15), nullable=False)
full_name = Column(Text)
description = Column(Text)
created = Column(DateTime)
location = Column(Text)
protected = Column(Boolean)
followers_count = Column(Integer)
friends_count = Column(Integer)
favourites_count = Column(Integer)
statuses_count = Column(Integer)
listed_count = Column(Integer)
imported = Column(DateTime(timezone=True), default=func.now())
updated = Column(DateTime(timezone=True), onupdate=func.now())
tags = Column(ARRAY(Text), nullable=False,
default=cast(array([], type_=Text), ARRAY(Text)))
followers = relationship('User', secondary=follows,
primaryjoin=id == follows.c.to_id,
secondaryjoin=id == follows.c.from_id,
order_by=follows.c.id,
backref='friends', lazy='subquery')
tweets = relationship('Tweet',
primaryjoin='User.id == foreign(Tweet.user_id)',
backref='user', lazy='subquery', viewonly=True)
__table_args__ = (
Index('ix_user_name_lower', func.lower('name')),
Index('ix_user_tags', tags, postgresql_using='gin'),
)
ספיחים לפרוייקט
מלכודת דבש
דוקסינג
איסוף נתונים
- Browser fingerprinting
- WebRTC de-anonymization
- IP leakage
כיוונים להמשך
- קמפיין מימון המונים
- הרחבת האיסוף והניתוח
שאלות?
Twitter Dev Conf
By Yuval Adam
Twitter Dev Conf
- 1,541