News for hackers. Stuff that matters.
[dead]
Re:Faker.js is now a community controlled project by hn_throwaway_99 on Sunday January 16, 2022 @07:50PM (#29962136)
That's BS. Mark didn't just remove it or make it "non-functional". He deliberately changed the code to run in a infinite loop and halt any code that pulled it in. That seems exactly like the definition of a Trojan to me.
Re:Faker.js is now a community controlled project by bawolff on Sunday January 16, 2022 @07:54PM (#29962163)
I wouldn't call that a trojan. It is being an asshole though.
Re:Faker.js is now a community controlled project by hn_throwaway_99 on Sunday January 16, 2022 @08:19PM (#29962302)
It's a DoS attack disguised as other, useful software. That's exactly what a Trojan is.
Re:Faker.js is now a community controlled project by encryptluks2 on Sunday January 16, 2022 @10:35PM (#29963065)
It isn't disguised as anything. If you included a random module in your application package manager, and allowed it to update itself and run scripts then liability is on you for not verifying it and checking the license to see if they provided any warranty.
Re:Faker.js is now a community controlled project by bawolff on Monday January 17, 2022 @12:49AM (#29963706)
But is this really a "warranty" issue? Sounds more like a fraud issue (ianal).

Given it was done with the intention of messing up other people's computers which the maintainer did not have legit access to - maybe its even a CFAA criminal hacking issue (ianal).

Anyways, there's a huge difference between accidentally doing something and doing something with the specific intention of hurting someone else. Sure you can disclaim responsibility for accidents & negligence, but i'm pretty sure you can't disclaim responsibility for intentionally malicious conduct in a contract, certainly you wouldn't be able to do so if it was criminal conduct (IANAL).

Re:Faker.js is now a community controlled project by shadowgovt on Sunday January 16, 2022 @10:56PM (#29963158)
Funny how well that has worked until one person comes along and uses it to break people's software intentionally.

At the very least, Marak is an example of why we can't have nice things. None of us are obligated to applaud him for that.

Re:Faker.js is now a community controlled project by encryptluks2 on Monday January 17, 2022 @12:09AM (#29963523)
If someone hands out free food on the corner with a sign that says you aren't entitled to it and so you get used to getting free food there. In fact, you've found ways to save on your budget because of it. You also optimized your route home from work to get there at the most convenient time.

One day, you show up and they have a sign up that says... No more free food, vote for Bernie. Are you really the type to complain that now you have to pay for food again or find someone else to give you free food, and throw a fit that their vote for Bernie sign is a trojan?

Re:Faker.js is now a community controlled project by shadowgovt on Monday January 17, 2022 @09:49AM (#29967042)
It's software, not consumable carbohydrates. Easily copied infinitely once created. Nobody is arguing he doesn't have to stop making it. Nobody is even arguing he doesn't have the right to delete his tepos. What he did was intentionally poison the templates to trigger automated updates to break other people's software, and that's just not okay. Forget the machines... It's simply misanthropic behavior.
Re:Faker.js is now a community controlled project by bawolff on Monday January 17, 2022 @12:31AM (#29963638)
But he didn't withdraw his offering he sabotaged it.

I guess the metaphor would be if you gave out free food all the time with a sign saying people aren't entitled to it, and then one day decided to add laxatives to it because you felt the people were ungrateful.

Which would land you in jail for a long time no matter what the sign said.

Re:Faker.js is now a community controlled project by encryptluks2 on Monday January 17, 2022 @09:59AM (#29967151)
No, the person giving free free food here did not go up to people's houses saying here is free food still, eat it cause it is yummy and safe. The people getting the free food showed up cause they felt entitled, grabbed whatever they could find and said... oh, this isn't the free food that I'm used to getting here... oh, and I forgot to read the sign that has been there all along.
Re:Faker.js is now a community controlled project by shadowgovt on Monday January 17, 2022 @11:38AM (#29968354)
This analogy doesn't work the way you want it to. What you are describing would be literally illegal.

The person who put up the free food and the sign, after it was proven that they willfully poisoned the food (which is the only way I can interpret intentionally encoding an infinite loop in your testing library), would be liable for assault. You cannot just put up a sign that says "taker beware" to indemnify yourself from liability, especially after establishing the pattern that the food is safe.

If you ever wondered why grocery stores throw out perfectly good food (and sometimes padlock their dumpsters) rather than donate it to shelters, it's because this is how society works. They have to be clear that even food being thrown away is not intended to be free for the taking because if a pattern becomes established of people eating safe food out of a grocery store dumpster and one day that food is not safe, the grocery store can be held liable for injuries. Even if the grocery store never wanted anyone to use that food. The hard part would be proving the store intentionally poisoned it... But if that proof were made, the law is clear on who is responsible for the harm caused, and it's not the people eating out of the dumpster.

The underlying philosophical principle that underpins all of this legal precedent is "Don't intentionally cause harm." Marak broke that principle. Thank God Marak was only writing npm libraries and didn't own a grocery store.

This entire story, from the initial changes through the breakages through third parties intervening to mitigate their services being used to cause the breakages through other third parties stepping in to take responsibility to continue maintaining the code that had become vital, is one big open source community success story. The community interpreted intentional harm as damage and routed around it. And that was always one of the intended benefits of the open source approach, right? That the creator of the software can't ruin your day because they feel like it? Whether that creator is an evil corporation refusing to open their proprietary code, or a rogue actor deciding to take a sledgehammer to the pipeline... Open source mitigates the harm caused by both.

Re:Faker.js is now a community controlled project by torstenvl on Sunday January 16, 2022 @07:53PM (#29962154)
> That seems exactly like the definition of a Trojan to me.

Link to even one report of Marak getting inside someone else's system.

Re:Faker.js is now a community controlled project by hn_throwaway_99 on Sunday January 16, 2022 @08:18PM (#29962294)
You seem to be misunderstanding what a Trojan is. From Wikipedia:

> In computing, a Trojan horse is any malware that misleads users of its true intent. The term is derived from the Ancient Greek story of the deceptive Trojan Horse that led to the fall of the city of Troy.

> Trojans generally spread by some form of social engineering; for example, where a user is duped into executing an email attachment disguised to appear not suspicious (e.g., a routine form to be filled in), or by clicking on some fake advertisement on social media or anywhere else.

Marak disguised his malicious DoS attack as previously released useful software. I am completely baffled why people are defending his actions, at all. He could have easily just pulled down his repo, that would have been totally within his rights. Releasing malicious software under the guise of something else is not.

And the fact that people are quoting the license of "no implied warranty" is irrelevant. The law does not look kindly on those that act with malicious intent, regardless of what a license agreement says. For example, if he changed the repo to instead encrypt your hard drive, I guarantee he'd be going to jail. While thankful this was just a DoS attack and not something more serious, it was attack all the same.

Re:Faker.js is now a community controlled project by torstenvl on Monday January 17, 2022 @01:09AM (#29963817)
> You seem to be misunderstanding what a Trojan is. From Wikipedia...

Wikipedia doesn't define industry terms, especially in one-off throwaway lines without citations.

The Jargon File clearly defines a Trojan as something that (1) breaks your security and (2) is disguised as something benign.

http://www.catb.org/jargon/html/T/Trojan-horse.html

Unless you can show Marak Squires breached these folks security systems, it simply is not a Trojan.

(As a separate point, a claim that something distributed as source code is "disguised" simply cannot be in good faith.)

By claiming it is a Trojan, you are accusing Marak Squires of a potential felony by accessing a computer system without authorization. Making serious accusations like that should require some evidence. I don't see any.

Re:Faker.js is now a community controlled project by encryptluks2 on Monday January 17, 2022 @12:14AM (#29963549)
They didn't disguise anything. It was MIT licensed, so you could have forked it long ago. You got used to the source you were using being useful, and so you felt entitled that they would maintain it in a way that was appropriate for your standards based on what you felt entitled to. The thing is with open source projects like this, no one owes you anything but it is too hard to admit that for many people.
Re:Faker.js is now a community controlled project by labster on Sunday January 16, 2022 @07:55PM (#29962167)
No one reads licenses lol. The intent is the same as a trojan: making software malfunction for the intent of either economic gain or geopolitical goals. Intent matters; there is a fundamental difference between shipping crappy code for fun, and making good code break without warning for thousands of users.
Re:Faker.js is now a community controlled project by torstenvl on Sunday January 16, 2022 @07:58PM (#29962181)
> The intent is the same as a trojan

A Trojan is where the attacker gains direct access to a protected system. It is a back door disguised as an innocuous file. The whole point of the Trojan Horse was the Greeks hiding inside of it to get into Troy.

Where is your evidence that Marak Squires gained access to any of the systems that downloaded and used his packages?

Re:Faker.js is now a community controlled project by fault1 on Sunday January 16, 2022 @08:24PM (#29962342)
I think there is two aspects of the word "trojan", but it does not imply "remote command and control", it's often that, but more broadly it means something that is disguised as one thing, but is not.

For example, one of the first trojans was: https://en.wikipedia.org/wiki/EGABTR