Live data from Hacker News

Someone attacked our company

usefathom.com

51–60 of 112 posts

Re: Someone attacked our company

#51

Interesting that they won’t use Cloudflare due to competition in the analytics space. It makes me realize that there actually isn’t a legitimate competitor to Cloudflare and they are dominating right now.

Isn't Netlify a major competitor to Cloudflare?

As a customer of both, everything about the way Netlify operates seems half-assed.

Re: Someone attacked our company

#52
post #29
post #3

What would the motivation be for such an attack? Any thoughts on who could be behind it?

Some proxy engaged by the competition?

Since they seem to be some sort of analytics service bundled into client webpages, it's possible they are getting incidentally slammed by someone trying to attack one of their clients.

Re: Someone attacked our company

#53

Earlier quoted context omitted.

Well, it's your money... I'd be happy to help make this more efficient though (at no charge of course). Offhand I'd say "web server which accumulates data and uploads it to S3 every N requests or M seconds" would probably get you what you need at a tiny fraction of the cost of "lambda which posts to SQS". Create an AMI and toss it at an autoscaling group and you really won't need to worry about scaling issues either.

I bet you could set up something way cheaper. And I'm certain you know 10x more than me regarding servers, hardening, configuration, etc. And I'm certain you enjoy servers! For us, the cost works and we have appropriate margin for it. The cost savings aren't worth the extra "we have to monitor these servers" thoughts. Our approach is 100% emotional.

I would say this goes beyond emotional. You only have finite resources. You have chosen to spend some money to avoid spending time and effort. That's a very reasonable call. Businesses do this all the time when they hire more staff.

Re: Someone attacked our company

#54
post #29

Earlier quoted context omitted.

Some proxy engaged by the competition?

Since they seem to be some sort of analytics service bundled into client webpages, it's possible they are getting incidentally slammed by someone trying to attack one of their clients.

I've seen something similar actually for our client-embedded web plugin, a web crawler hits a client's site and I see 6x traffic hit AWS WAF periodically - fortunately the brunt is rate-limited.

I'd be almost certain that AWS' staff looked at the logs to determine this, they would've sorted it in 20 minutes by seeing a load of requests coming from a specific host.

Re: Someone attacked our company

#55

I'd be checking for bugs in the js -- particularly as might be triggered from a bot environment that one or more of your customers might use to test their site or observe their sites latency response ... puppeteer with setRequestInterception configured to block responses in the right way maybe https://github.com/puppeteer/puppeteer/blob/v5.5.0/docs/api.... . I can imagine nightmares along those lines that could persu…

I fully believe this was a DDOS attack. But, this is good advice. If you think you're getting DDOS'd, check for the number of unique IPs against your own user pool. Probably a lot more people introduce bugs into their codebase that DDOS's their own app than get repeatedly targeted by a well-funded attacker as above.

Re: Someone attacked our company

#56

Earlier quoted context omitted.

Isn't Netlify a major competitor to Cloudflare?

Vercel is good too. And I've heard great things about BunnyCDN. Cloudflare does a lot though.

BunnyCDN is amazing. But their product isn't a 1:1 replacement for Cloudflare.

Re: Someone attacked our company

#57
Loved this post, thanks for the detailed write-up. As a solo-SaaS-founder I have a persistent, but very mild anxiety of something like this happening. The attacks we've received have been comparably mild and easy to mitigate.

Boggles my mind who the heck thinks Fathom is valuable enough to target with such a persistent series of attacks.

Re: Someone attacked our company

#58
Advantage comes with those who attack, not defend. Attackers will always find new ways to attack and eventually break-in. Be ready for this. As history shows, crackers (DDoS'ers) always win if the price for your head is high enough (money or fame).

Re: Someone attacked our company

#59
Hey as a (way smaller) competitor of yours, I honestly feel you.

I understand you may not want my advice. But anyways, here it goes :)

I have dealt with similar issues too at my full-time job. We ingest data in the billions range too, and our costs are a lot lower than what you describe.

* On the public endpoint, can you move the first point of contact closer to the edge? You want to block requests before they even reach your ingestion pipeline. If not, add a few geographical Load Balancers with the sole job of accepting requests before forwarding them to your Lambda. Divert traffic at the DNS level using a geo routing policy on Route53.

* Are you also hitting DynamoDB for every request as part of your spam system? I found it quite expensive on-demand, unless you provision capacity. We used to pay tens of thousands per month for DynamoDB in the past, when a single Redis instance would have done it. Specially if it's temporary, non-critical data such as spam detection.

* Do you batch the incoming events before triggering SQS?

* How are your networking costs going? They tend to creep up in the AWS bills too.

It just sounds to me you clearly need something in-between the public endpoint and those Lambdas. But maybe I'm missing some info. Otherwise you're going to keep paying for capacity that a "traditional" server could handle, without costing you more for each request.

If you can't fight back, and don't want real requests to be lost, put a server at the battle-front, and buffer all raw HTTP requests into a queue made for this (like Kinesis). You can then process events and recover the data at your own pace. I did this in the past, and could handle 60k+ req/s with 2 instances on AWS. I used a simple Go tool to capture the traffic https://github.com/buger/goreplay

Also, at my full-time job we use Kinesis to buffer all analytics events, it's cheaper than SQS and handles billions of data points per month. This also keeps the ingest rate constant, but you seem to already do that with your workers.

Full disclosure: I'm Anthony from http://panelbear.com/ , and I just want to offer honest help.

Re: Someone attacked our company

#60
Great you guys suffered, learned and survived this attack.

You have done what only few small shops would or could and this knowledge will be a valuable asset. You can expect a lot of requests for help / information based on your write up. Prepare some canned answers and a cool presentation you can whip out when needed.

Post reply on HN