How WhatsApp fights Spam & Abuse
SPAM ON WHATSAPP
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ Unwanted
▸ Commercial
▸ High-volume
▸ Automated
▸ From Malicious Accounts
SPAM ON WHATSAPP
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ Unwanted
▸ Commercial
▸ High-volume
▸ Automated
▸ From Malicious Accounts
SPAM ON WHATSAPP
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ Unwanted
▸ Commercial
▸ High-volume
▸ Automated
▸ From Malicious Accounts
SPAM ON WHATSAPP
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ Unwanted
▸ Commercial
▸ High-volume
▸ Automated
▸ From Malicious Accounts
SPAM ON WHATSAPP
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ Unwanted
▸ Commercial
▸ High-volume
▸ Automated
▸ From Malicious Accounts
REDUCE TO EASIER PROBLEM
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ Spam?
▸ Spam account? (No passwords = no ATO)
▸ Automated? (High-volume = automated)
▸ Spam client? (automated = script or emulator)
Faster
Less effective
GENERAL WORKFLOW
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
Action
Classify
Allow? Ban?
user age: 3 hours
# messages 30sec: 2
…
GENERAL WORKFLOW
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
Action
Allow? Ban?
user age: 3 hours
# messages 30sec: 2
…
Classify
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
TRAINING DATA
Features | Label |
user age=5280 days, # messages 30sec=0… | Ham |
user age=2 minutes, # messages 30sec=10… | Spam |
user age=3 months, # messages 30sec=2… | Ham |
… | … |
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
TRAINING DATA
Features | Label |
user age=5280 days, # messages 30sec=0… | ??? |
user age=2 minutes, # messages 30sec=10… | ??? |
user age=3 months, # messages 30sec=2… | ??? |
… | |
TRAINING LABELS
▸ Need source of truth for labels in classifier training
▸ Multiple mechanisms: (I will mention top 3)
▸ People we eventually caught
▸ “Spam App” detection
▸ Manually label cluster
(Users writing to WhatsApp support etc..)
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
TRAINING LABELS
▸ Need source of truth for labels in classifier training
▸ Multiple mechanisms: (I will mention top 3)
▸ People we eventually caught
▸ “Spam App” detection
▸ Manually label cluster
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
TRAINING LABELS
▸ Need source of truth for labels in classifier training
▸ 2 mechanisms:
▸ People we eventually caught
▸ “Spam App” detection
▸ Manually label cluster
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
?
Server
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
SPAM VENDORS STOPPED
TRAINING LABELS
▸ Need source of truth for labels in classifier training
▸ Multiple mechanisms:
▸ People we eventually caught
▸ Spam App detection
▸ Manually label clusters
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
Clustered on similar profile picture
Number | Profile_pic | Spam reports |
+7-xxxxxxx | | 4 |
+7-xxxxxxx | | 0 |
+7-xxxxxxx | | 10 |
+7-xxxxxxx | | 2 |
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
TRAINING DATA
Features | Label |
user age=5280 days, # messages 30sec=0… | Ham |
user age=2 minutes, # messages 30sec=10… | Spam |
user age=3 months, # messages 30sec=2… | Ham |
… | … |
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
TRAINING DATA
Features | Label |
??? | Ham |
??? | Spam |
??? | Ham |
… | … |
BEHAVIORAL FEATURES
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ How do spammers generate actions?
▸ How do others respond to those actions?
▸ Classify this behavior - no access to content is fine
FEATURES: REPUTATIONAL
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ "How many people have been seen on your ASN?
What % are banned?"
FEATURES: REPUTATIONAL
▸ "How many people have been seen on your ASN?
What % are banned?"
ASN:
20 total
12 banned
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
FEATURES: REPUTATIONAL
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ "How many people have been seen on your Netblock?
What % are banned?"
ASN:
20 total
12 banned
Netblock: 8 total
5 banned
FEATURES: REPUTATIONAL
▸ "How many people have been seen on your Phone Prefix?
What % are banned?"
ASN:
20 total
12 banned
Netblock: 8 total
5 banned
Phone Prefix: 30 total
23 banned
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
FEATURES: REPUTATIONAL
▸ "How many people have been seen on your ASN?
What % are banned?"
▸ Generalize “ASN”: “netblock”, “phone number prefix”, etc
▸ Generalize “banned”: “reported as spam”, etc
▸ Forces attacker to buy more things
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
FEATURES: PROBABILITY
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
▸ “Probability that someone with phone country code X is seen from network country Y”
▸ Generalize each (carrier, language, etc)
Built on META ML INFRA
What kind of models do we run
Inference time Latency matters
Defense in depth
YOU DON’T NEED CONTENT FOR SPAM DETECTION
▸ 3 keys to success:
▸ Good behavioral features
▸ Good labeling: Spam Reports + Spam App detection
▸ Solid infrastructure
HOW WHATSAPP REDUCED SPAM WHILE LAUNCHING E2E
CREDITS
https://www.youtube.com/watch?v=LBTOKlrhKXk
A talk from my colleague Matt Jones, on how WhatsApp fights spam. Slides were adapted from this talk