Hacker News new | past | comments | ask | show | jobs | submit login
The curious case of the Raspberry Pi in the network closet (2019) (blog.haschek.at)
329 points by thunderbong on Jan 8, 2024 | hide | past | favorite | 139 comments



I saw the title and instantly thought of the "Load bearing mac mini" at Twitter.

In our server closet there was a mac mini sitting on another rack mounted server and plugged directly into a switch. IT found it, asked around and nobody knew what it was, so they unpugged it. Immediately the whole of engineering and support were basically offline.

Despite the thing looking suspicious as possible, I had set this thing up as an employee a year before. We were not allowed direct network access to our hosted prod network so as a "stop gap" I setup a SSH tunnel that listened on the mini's IP. At first we used this for access to the support web interface so it could be taken off the internet. At the time my request for a server was rejected. One by one more things got added to the list of things proxied over the device, eventually including basically all internal pages, git access, and about a dozen other random services. I finally got it moved into the server room, but not to real hardware. Once we built a DC we got peered access and the mini finally died.


Also proving yet again that the best way to find out if something is in use is to unplug it and see who complains.


It's an effective way, but generally a very bad one. I used to work in telecoms, and some idiot took down a tunnel between the UK and Germany carrying 1kB/s of RADIUS traffic because someone (the idiot) owned the link it ran on and had failed to record the formal allocation of this tunnel to a production customer-facing public access WiFi service I ran. I on the other had remembered to record his telephone number and his boss's telephone number, and a certain amount of screaming went on. Moral: before doing a scream test, make sure your own documentation is watertight.


So-called "scream test."


Chesterton yelling from miles away "that's my damn fence, you moron!"


There was an article by Microsoft back in November about their scream tests - https://www.microsoft.com/insidetrack/blog/microsoft-uses-a-...


They have about 8 layers of useless customer service acting as ear muffs to deafen the noise, is the problem I’ve had when screaming at them.


I once took over a decommissioning project of a DMZ set up for a connection to a third party no longer used. Everything documented showed that all connections were no longer active.

Step 1 was to do the ‘scream test’. Some how the enterprise routed the most random traffic through there as we took offline random servers and people’s desktops. Turns out the screaming that happens is at you for making things break instead of a pat on the back for discovering bad networking.


The information technology equivalent of popping pimples.


One of the last contracts I worked, they provided such awful hardware that the company and employees ended up BYOD. Not enough memory for a modern IDE to start up levels of awful.

As the project ramped down they ended up having to buy an iMac off of us. Someone stopped using it and before the case even got cold I had installed a CI build agent on it to run Karma tests. Which ended up being invaluable but also never managed to get replaced with a real piece of hardware. So they just dragged that thing around as the project went into maintenance.


> so as a "stop gap"

There's Nothing as Permanent as a Temporary Solution™:)


As immortalized by my favorite case[0] from the codeless code (based on real code [1] from Apollo 11).

[0] http://thecodelesscode.com/case/234

[1] https://github.com/chrislgarry/Apollo-11/blob/master/Luminar...


Somewhat relatex XKCD: https://xkcd.com/2730/


I always thought the load bearing Mac mini was a myth, it's such an impossible story and it's been so widely shared. I guess it's just a case of programmers taking the easiest route and having it backfire.


Things like this happen all the time.

"Shadow IT" is the official name for circumstances that lead to this and it's the consequence of:

A) Deprioritising "non-urgent" but "important" tasks consistently

and

B) IT being bureaucratic and/or unable to allocate budget

I had a Mac Pro (trashcan) at Ubisoft that was the only way people were able to play our studios live game from within the office. (Ubisoft had a "NO OUTBOUND CONNECTIONS TO INTERNET" policy for Studios)

That same Mac Pro was running our internal slack bot to run Maintenances (and, insult people).

I left Ubisoft 5 years ago, as far as I know that Mac Pro is still plugged in on my former desk chugging along, last time I asked my former manager about it was last year.

----

At another company (now owned by Oracle), we had an internal IRC (this was before Slack) and nobody thought about it.

One day it went down, and traceroute had indicated it was in our server room; after checking every single server we could not find it, until someone noticed an ethernet cable that went through a run into the floor but didn't come back out.

After opening the suspended floor we noticed a laptop running Solaris. That was our IRCd and the OS had an uptime of close to 8 years.


> Shadow IT

Universities seem to install unlimited hurdles to achieving anything. The stuff staff and students do within the network to make shit work is amazing.


Yet they forget to put a password to BIOS so I am able to write this comment from a school computer, on NixOS running from a USB drive. Though I'd probably crack it even if they did.


Don’t forget IT ignorance. A lot of places IT is full of Microsoft MVPs that have no understanding of the needs of people developing in and for Linux systems.


Ah, never attribute to malice or incompetence that which can be attributed to the pain response from trying to secure a heterogeneous OS environment.


Ding ding ding. So much friction from this factor alone.


I would have thought so too, before I worked on a team where we had our own load-bearing Mac Mini installed at a client site - in that case, load-bearing for A/V reasons (no one was able to get PulseAudio working in time).

Client's IT loved to unplug that thing.


> request was denied

> mac mini proxy server

I love that the programmer's solution is more expensive than doing it the right way had OP's request been approved.


... At the end of the the deal with had two mac mini's with auto fail over configured via health checking. Thank goodness we got rid of the service provider that refused to let us pair with the network. Once that happened the networking team could just do normal peering with a standard router.

But yea, in the early days that mac sat on my desk. It only got moved when I pointed out the issue to our new security team and their jaw hit the floor. =)


I think it was pretty common in the 2000s when devs could't provision machines/VMs without asking for permission


Also when you could just plug something into a switch and a) the port is active and b) it goes unnoticed.

Probably still the case in a lot of startups.


Most startups I deal with these days don't even have offices anymore, let alone network ports. =)

But yea.. same deal with wifi. Its amazing how often the wifi password is posted on something visible. In fact I have found the password in so many public images which means somebody on the street could just connect to the wifi network fomr the street.


That's only a denial of service issue, not a security issue. Wifi is too cheap to meter


Unknown persons getting onto the company wifi is not a security concern?


It shouldn't be. Treat the network as public, require credentials for any access whether it comes from inside or outside.


With work from home the security perimeter is the machine. All networks are untrusted.


Correct. Company wifi is just like any other network. Why would there be any services on it that don't use encryption and authentication?


In the context of this thread - how many startups do you think strictly adhere to best practices?


In this context, almost all of them? The whole concept of a "secure network" is very enterprisey


> I guess it's just a case of programmers taking the easiest route and having it backfire.

Or a case of IT not actually providing needed services. That, too, is more common than it should be.


I consider the labelmaker to be a crucial item of sysadmin gear. :)


To ensure no one will ever touch it, you can pull the hardware equivalent of adding a comment to a piece of code:

// AUTOGENERATED DO NOT DELETE


We have a labelmaker in our hackerspace. The box containing it has a label on it "Please do not print unnecessary labels". Below it is a label reading "ok". :)


Hey friends, use 802.1X for your datacenters and enterprise (certificate) wifi auth so you can audit and rotate credentials to prevent... exactly this problem. Everything else iot-like gets a very limited VLAN / alternate WiFi network.


From the OP on Reddit at the time:

Good points. The problem is, there are over 1000 people coming and going every day, the site has a BYOD strategy and the IT team is 4 people. We tried implementing 802.1X for LAN devices but it was soo much overhead that we dropped that.

The thing of this case is that the person was only able to place the Pi there because he had a key to the network closet. That's game over no matter how many security protocols you implement

We did change the server passwords though


OP here. What I didn't mention in the article is that this actually happened in a public School (small-ish for US standards as there are just ~1000 students and 100 teachers)

Hard to get the budget for serious switching hardware, even harder to get people who know how to manage them as I'm just an external contractor but can't exceed the alotted budget for my work there


OP posted a bit more info in this Reddit thread for anyone curious:

https://www.reddit.com/r/sysadmin/comments/agij7x/remember_t...



Is WiGLE a thing people know about? How does that work, its a service that listens to all publicly available wifis in the country? I understand how it could be possible in theory but how is it actually practical?


Data is crowdsourced and contributed by users. On a much larger scale, Apple and Google collect data from iOS and Android devices to power their WiFi/mobile tower based geolocation services.

Android's Location Services: https://support.google.com/android/answer/3467281#location_a...

iOS's Location Services: https://support.apple.com/en-gb/102515

In fact, Google provides it as a paid API: https://developers.google.com/maps/documentation/geolocation..., but you require BSSID's and not just SSID names to try to curb abuse.


Mozilla also has such a service although I believe they're deprecating it. You can still query it today, but as a privacy measure you need to include the MAC of 3+ SSIDs to get location info, since otherwise you could check the SSIDs from probe scans of passerby to locate their homes.


Google street view cars also collect WiFi data (or at least used to): https://europe.googleblog.com/2010/04/data-collected-by-goog...


Wigle is not a thing that people know about. It isn't a secret (at all) -- in fact, it was created in part to raise awareness about the problems associated with open-by-default consumer wireless routers.

But, like (say) RIPE Atlas, it just isn't very commonly known.

Data in Wigle is collected mostly by wardriving, which (in a nutshell) is just driving around and passively recording the information that WiFi access points are shouting about themselves to whoever is listening.

The data is collected by volunteers, but it is not strictly free. The way that the project is funded is by selling the data to companies who use it for geolocation services.

Regular folks can do some basic searches on the dataset without cost, though, which is what the author has done here.


It's data comes from people who do "Wardriving" https://en.wikipedia.org/wiki/Wardriving


It's crowdsourced... You drive around and collect data for it and send it in.


One of the guys behind the project, bobzilla, worked for me in a previous life. Great guy; fond of tea.


It's obviously not public data, but satellites have been wardriving WiFi for over a decade.



Thanks! Macroexpanded:

The curious case of the Raspberry Pi in the network closet (2019) - https://news.ycombinator.com/item?id=29965110 - Jan 2022 (262 comments)

The curious case of the Raspberry Pi in the network closet - https://news.ycombinator.com/item?id=18919129 - Jan 2019 (154 comments)


> Comment using SSH! Info

> ssh rogueraspi@ssh.blog.haschek.at

Now that's cool haha!


Fun (or I guess "fun" depending on the outcome here) detective story. But would be nice to have the context of what sort of company this Pi was found at. What might be a motive to be tracking devices and be inside the network?


OP provided a little bit of more context in another comment. It was a public school.


Well that is worrying in a way I didn't expect


i have seen redteams do this for persistence


Plot twist: it was company's jenkins and payroll cronjob server. The other "proper" CI server was always stuck on some Java+Angular monster pipeline.


Where’s the follow up? I want to know what happened next with legal….



court records are public. They don't mention any names, but I'd poke around and see what you can find.


OP here. Court records are thankfully not public in europe and it's even illegal to name names in public (unless it's about a public figure)

As far as I know there also were no court proceedings as this was handled internally


Hard to take the article seriously with so many inaccuracies. I cannot shake the feeling that the writer tried to make more of this than there is by exaggerating.

"almost as powerful as the Rasberry Pi itself: the nRF52832-MDK. A very powerful wifi, bluetooth and RFID reader."

First of all, the puny little Cortex-M is no where near as powerful as the rPi. Second of all, nRF52 series does not do WiFi, and third of all, RFID will not work without the coil plugged in (which it is not in the picture), and in any case only has a range of an inch at best.


It’s still not clear to me whether the pi was malicious or not?


Discreet hacked together device located in comms room, installed by former employee during a time when they were leaving the company.

Malicious is implied.


At a previous job we had a Beaglebone mysteriously show up in our DC. We noticed it buried behind some network cables and immediately unplugged it. (Not) Coincidentally, we had gone through a merger a few months prior, and the new corporate IT team had come out (from clear across the country) right after the acquisition to get a feel for how our IT infrastructure was setup. The day after we unplugged the Beaglebone we got a pissed off call from one of the corporate IT guys, turns out he had installed it there to gather some network metrics/statistics or something like that when he had come out a few months prior and didn't tell any of of our network admins or sysadmins, but somehow it was our fault for not magically knowing what the suspicious SBC in our DC was.


That's when you call CISO in, so they can tell: "No. By our corporate policy, any device not approved by the local IT department is not allowed on our network"

That's one of the biggest roles of the CISO, and that's why their rank is so high despite often having much fewer direct reports than other CxO's - so they can stop crazy stuff from happening, even if it comes from high-ranking people.


I think the comment may be implying it isn't clear if they were successful in whatever malicious activity they were trying to do or what that activity was.

Like were they snooping for something they could whistle-blow, or where they trying to gain access to financial accounts? What was the extent of damage possible by the setup? Are there ways to mitigate such damage now knowing a pi with such loaded software may be in wider distribution and might be installed somewhere on your network?


Maybe they just wanted to keep their Quake3 server running?


This. The intenet was that the machine COULD be used for ill. Just because it hadn't yet doesn't absolve the person.


And the application was called "logger" lol


This is probably all the author could write without creating a huge legal problem for their employer. The text suggests that clearly.


A number of years ago at a previous job we had building security doing a sweep of our building with a big heavily antenna'd device because some sort of unauthorized wifi access point showed up.

Never found out what came of it, but I wondered then as I do now if someone had just enabled AP mode on their phone.


This seems weird - most places would have dozens of wifi APs within range of their network unless they were very remote.


I don’t think it’s uncommon for people to use their phone AP so as not to use the corporate network. There are even legitimate uses like checking external connectivity.


It’s almost as if the person didn’t think for a second about someone discovering it… all those traces. Unless it was a set up, fake AP (anyone can create a hotspot quickly on their phone with any SSID). Either a complete reckless amateur or a total set up I am thinking.


When we fire people we terminate ALL access. Digital and physical. When the call from HR comes in, your keycard is immediately disabled. If you left personal belongings, we'll box them up and give them to you.


As an European, I thought that's only something people did for movies, I learned not long ago that it's actually reality in the US. In Poland you can leave on the spot if you arrange it with the company (e.g. for a severence package). Otherwise by law you are expected to work for a month or two after getting fired (or when changing jobs). This has some benefits for both employer and employee. The employee has time to find a new job and doesn't get cut off from income on the spot so he's unlikely to burn bridges on his way out. For employer the benefit is the same but also the company gets extra time to prepare a replacement for the fired employee.


It is wild how people in one of the richest and developed country have so little working rights and are ok with it.

Especially wild if you consider health insurance is tied to the employment.

3-6 months notice period is standard in EU countries. Unless you are sabotaging or always drunk there are no ways they will fire you quickly.


People in leading positions who leave for competitors get told to not show up again, but of course get paid so it is a paid holiday.


To be fair, these rights extend in both directions. This may seem extreme from an employer -> employee direction, but I have the right to do the same in reverse: I could call my manager at 8:30AM tomorrow morning and quit on the spot with no justification.

At Will employment cuts both ways.


Except the power dynamic and consequences are (usually) totally different:

Company fires their employee at 8:30AM on the spot: Employee is now without income and likely health insurance and his ability to pay rent, buy food and merely exist might now be in jeopardy.

Employee quits at 8:30AM on the spot: Company is at worst set back a bit until they backfill that job. At best they don't even notice. Unless that employee was some keystone that held the whole business together, there is no existential threat to the company.


In addition to that, it's considered "unprofessional" to leave without giving at least 2 weeks notice.


I don't think I'm being arrogant to think that my employer would have a harder time replacing me than I would them.


If that's actually the case then you're in an extremely fortunate position, and probably something like the top 2% of the income distribution.


It is not fair. Fair is when you write resignation letter or receive a termination letter and continue to work for the next 3-6 months. That is fair!

Ps: without at will system you can simply stop showing off at work with the same results.


Where things get very strange is when companies enact these same policies on people who give notice.

I'm a software developer. I'm hired, retained, and often promoted on my ability to look at situations, contemplate actions, and predict their consequences. If I have a piece of paper in hand that announces my resignation, I've been interviewing for weeks, signing acceptance letters, stalking my boss trying to figure out when in the next 36-72 hours I can get him alone and show him the piece of paper.

If I can manage all of that without my head catching on fire, then if I meant the company harm it would have already been accomplished prior to cornering my boss. I have probably known for days that my time here is up. We don't just wake up one morning to a phone call telling us we have a new job.


Unless there is a contract saying otherwise (or union agreement if in a union) you could show up to work at your job tomorrow to be told you’re fired and escorted out of the building.

For well paying jobs it’s pretty rare unless you do something bad. Obviously if they just did that to random people it would really hurt morale and other workers may want to leave.

But it’s legal. On the other side, with similar exceptions, on any day you can walk into your job and say goodbye forever and never come back.


on any day you can walk into your job and say goodbye forever and never come back

Except in reality, almost nobody can do that, because they need to eat and pay rent. And if you did, you'd burn a lot of bridges.


Yeah, it's not a symmetrical dynamic at all.

Leaving without notice is a good way to alienate a lot of contacts that most people will really want to maintain. But even beyond that from what I understand most places have policies in place to prevent employees coming back if they've left without notice.

Meanwhile, if my employer fires me without notice and I've got a mortgage, mouths to feed, and/or medical bills, then I don't really have the leverage to say "I'm sorry, by firing me without notice, you are ineligible from asking to rehire me."


At my job they let go of about ~30% of the work force around one year ago. I knew that this theoretically could happen, but this was the first time seeing it myself.

And I am left thinking, if in the future I see a coworker leave on the day by his own choice. I wouldn’t hold it against him. The company has shown how easily they are willing to let go of a huge number of people. Why should I be mad at any of my coworkers if they decide to leave on the day? The company already set the bar for how this works.


That's why it's always good to have a few months of essential living expenses in a savings account if you possibly can. More people could do this than actually do it.

I've quit without notice once in my career. I already had the next job line up though.


Right. I only meant the legality.

There are A TON of people people who would probably love to walk in and quit tomorrow if they had another job lined up or the means to go without one for a short while.


And the health insurance.


That’s why they call it FU money.


"Pretty rare unless you do something bad."

Or there are layoffs.


That’s fair. I was thinking of when they single out a single person.


> you can walk into your job and say goodbye forever and never come back.

when I was an intern, a person next to me just didn't come back one work. And wefound a large-font printout of employment contract with corresponding section highlighted by marker.

I still wonder what made him quit, but as an intern I didn't talk to to people much and didn't care about company politics.


> As an European, I thought that's only something people did for movies, I learned not long ago that it's actually reality in the US

It’s not quite like this in New Zealand, but wow would an employer be foolish to have an employee leave under a cloud and not immediately block all access.

It’s borderline impossible to fire someone here, so it’s not US style lockdown, but cutting access seems basic.


At a minimum in the US the company has to pay you for unused vacation days and send you your outstanding pay within 3 days. Also, if you give two weeks notice they might reasonably can you but pay you for the extra two weeks if they are afraid of looking punitive (a smaller company thing — big companies typically don’t worry about being sued for that kind of thing).

But not always; my kid resigned from AWS in November and they asked him to work the two weeks, even having him push to prod on the second to last day.


I've only ever encountered the unused vacation days and outstanding pay by end-of-week in California. It's certainly not true in several other states.


Unused 7 days of annual PTO. And there are companies with "unlimited" vacation which means no unused vacation.


Yeah unlimited vacation is nothing more than an excuse to avoid paying for unused vacation time.


Unlimited vacation is a marketing bulshit. It is unlimited only if you have really good relationship with your manager.

If I have unlimited vacation - I'll take 4 weeks every month!



Keeping a known-to-be-terminated employee is a huge risk for the employer. People are usually not happy when they lose their jobs which sometimes leads to irrational behaviors (like intentionally sabotaging the no-longer-employer).

I've personally been involved on the employer side of such a situation with an irrational person and it's a pretty scary deal when you're in a small team where each dev has a lot of power.


INAPL but I think is what by default both the employee can expect some weeks after the notification (and depending om the circumstances - have an opportunity to move to another job of similar title and/or pay in the same company) and employer can expect some weeks if nothing unexpected surface up. But both parties can terminate their relationship in the same dame on a mutual agreement.


It strongly depends on the circumstances of the firing, but it's not uncommon to see 'gardening leave': you are technically still employed for an extra month or more, but all your access is revoked and you're basically forced to stay home. Generally it's a good time to start applying for other jobs.


It really depends on the job.

I think even in Europe it's relatively rare to make someone work their notice period if they've been fired due to the risk of retaliation. They just pay them to not work instead. In certain high-risk professions (sales is a big one) you don't even work your notice period if you resign.


It's a very different thing between firing an employee immediately and cutting out access. You can still cut out access without firing the employee. And in many case, it could be a wise thing to do.


I've never met a "European" in real life. Frenchmen, Spaniards, Poles, yes, but never a "European". They only seem to inhabit internet forums.


The wise will insist that ex-employers do this, if not immediately, then over a very small number of hours. If I'm to be let go, I want all of my access to go away ASAP. That means they can't blame me for things that go missing afterward (minus logic bombs and other kinds of criminality that we do not do, ever, ok?). The last thing I want is for, say, a computer to go missing a week after I left but when I still have an office key, or data to be deleted while I still have AWS access. Take my keys, OK?


I've always thought such policy heavy handed and unfair. This article proves that's not the case. I've heard vague stories of someone doing a malicious delete on the way out, but never seen it myself.


I don't think the article proves that. I think these policies can be a bit of a McNamara fallacy[1].

When things go wrong, the benefits of aggressive termination are clear. But when things don't go wrong (vast majority of time), the alternative's benefits are not so clear — employees have more time to hand-off their work, document things that are in their head, better good-will towards the company and its management, etc.

So, because one approach has a clear, measurable benefit (avoid some disasters), and the other approach has un-clear hard-to-measure ones, people sometimes dismiss the hard-to-measure side as unimportant. That's the fallacy.

[1] https://en.wikipedia.org/wiki/McNamara_fallacy


Things like the occurrence in this article only occur because job termination is so heavy handed here. When people are immediately cut off from their income source without warning, in a society with very little social safety net, they get angry and do drastic things.

In many, many other countries, letting someone go is a long process that involves a lot of time for both parties to shore things up and be prepared to move on without incident.


That isn't true. Here in Australia the typical notice period is two weeks.

That means if you want to leave, you write a resignation letter and you have time to hand over like you said.

However the employer might also walk you out of the building and continue to pay you for two weeks. I've seen this happen here. In some companies it depends on the job you're resigning from.

I happen to know my position at my company has the former sort of relaxed notice period, but other positions have the latter sort of strict notice period. It's very strange.


Yes. Some people can become very difficult when they've just lost their job. This is the primary reason why firings are done via e-mail so people can flip out and lose their cool at home.


The article doesn't say they fired him, it said he's an "ex-employee". I've stayed on in an hourly role with several companies I've left to be on-call for questions/problems for a month or 3 after leaving.


If you are fired, sure, but that usually doesn't happen if someone voluntarily leaves. You usually set an end date, and work on transitioning your work during that time.


Depends, some places will just pay you to stay home during your notice period and disable all your access and accounts immediately upon you providing your notice.


You may think so but in IT or especially industries that "have" IT but are not IT, who knows what people/teams have installed or are using without you knowing.


I have a raspberry PI in my room... but this is my email server, my noscript/basic (x)html map server (using OSM tile servers), my web server...

:)

(next step is RV64 hardware with linux, then this RV64 hardware with an ultra-minimal kernel not using gcc/clang compilers).


My apologies for hijacking the thread, but could you please elaborate on your noscript/(x)html map setup ?

How would one even handle zooming and paning in such a case ? With forms ?


https://www.rocketgit.com/user/sylware/lnanohtmltiledmap

Yes, with basic and stupid html forms.

Have a look at links web browser.


If the perp had put this inside something innocuous like a POE injector, and filled it with resin so the SD card could not be easily examined, the device would likely still be there and/or they would not have been caught.


This is why terminating an employee has to be swift and complete. It's just too risky to bet otherwise.


Not that complete, hopefully...


Unless you live in the world of Lethal Company.


“We’re a family in this company… and when you betray the family, there are… consequences…”


They should throw the obfuscated code into chatgpt4 and see if anything meaningful comes up now.


(2019)


Are raspberry pis in communications closets installed by outgoing employees no longer potential threads five years later?


That's not the implication. It's the norm on this site to include the year of an article in the title (if it's not from the current year, or very recently in the preceding year if in January). There are _plenty_ of links in the top 100-or-so that follow this pattern - hell, I see one from 1997 in the top 30 right now. They can still be interesting/relevant/etc. - but it is worthwhile to read them with the knowledge of when they were published, e.g. if you are evaluating technical approaches.


Not if these have been found and removed.


as in most cases like this, the whole thing ended with zero consequences for the perp


I see no sign that that's the case, the article ends on:

> Legal has taken over

Which would imply there were probably consequences.



What I find interesting is the SSH-based comment system (https://blog.haschek.at/2023/ssh-based-comment-system.html) for their blog.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: