Case: Night Panda
On the night of 20 August our traffic went from 20 thousand requests a day to 8.6 million. Your first thought is "we went viral." We had not. A browser bot introducing itself as Lightpanda was opening every single profile on the site, hiding behind more than 128 thousand different IP addresses. It ran between 00:00 and 06:00 every night — that is, while we slept.
Not content — relationships. They did not care about our posts or reels. What they were after was who follows whom. They would open a user's follower list, visit every person on it, then move on to those people's followers — a textbook crawl that copies a social graph node by node. In short: they did not want Mio's member list, they wanted Mio's nervous system.
24 August, requests hour by hour. The wall on the left is the first wave; the drop at 07:37 is the moment the first rule engaged. The small hill in the middle is the second attempt in costume; after the second drop at 17:00 the line flattens and never rises again.
- All 2,415,456 requests were GETs. Not a single POST. They never touched the login page, the API, the admin panel or the .env file — this was not a break-in, it was a harvest.
- 1,032,423 of the requests came from a follower-list page. The direction was unmistakable: list → profile → that profile's list → repeat.
- They never once requested robots.txt. Nor the sitemap — which would have handed them the entire user list in a single file. They skipped it, because a list of names was not what they needed.
- 96% of the requests came from a real, JavaScript-executing browser rather than a simple script. A commercial proxy pool of 128 thousand IPs plus a browser fleet is not cheap. Somebody budgeted for this.
- 77% of the crawl hit Turkish pages. Not a global bot wandering at random — someone who picked the target deliberately.
- 20 Aug, nightFirst wave
Traffic jumps from 20 thousand to 1.4 million. For one brief moment, everyone looking at the dashboard feels proud.
- 21 AugPeak — 8.6 million
430× normal. Pride gives way to "hold on a second."
- 24 Aug, 07:37The panda goes quiet
The rule kicks in. Lightpanda's final request receives an error page and it never comes back. Not one request after that moment.
- 24 Aug, middayThe costume change
They do not give up. This time they disguise themselves as an ordinary Mac browser and start crawling the exact same pages. Same pages, different costume — meaning there was a human sitting at a dashboard.
- 24 Aug, 17:00Second rule, second door
The costume does not hold either. Traffic drops from 116 thousand an hour to 14 thousand, and stays there.
Case closed. No account data leaked — they read public profile pages that anyone can already see, and reached nothing private. Let us be honest though: we did not walk away clean. At peak load our server threw errors 83 times. If you tried to open the site during those hours and got a blank page — that was why, and we are sorry.
Dear Night Panda: instead of opening 2.4 million pages you could have written "hi, would you share your dataset?" — we would probably have bought you a coffee and said no. Respect for the effort though; assembling 128 thousand IPs is no small feat. Thanks for stopping by, the door is locked now.