Interview With an Adware Author
rye writes in to recommend a Sherri Davidoff interview with Matt Knox, a talented Ruby instructor and coder, who talks about his early days designing and writing adware for Direct Revenue. (Direct Revenue was sued by Eliot Spitzer in 2006 for surreptitiously installing adware on millions of computers.) "So we've progressed now from having just a Registry key entry, to having an executable, to having a randomly-named executable, to having an executable which is shuffled around a little bit on each machine, to one that's encrypted — really more just obfuscated — to an executable that doesn't even run as an executable. It runs merely as a series of threads. ... There was one further step that we were going to take but didn't end up doing, and that is we were going to get rid of threads entirely, and just use interrupt handlers. It turns out that in Windows, you can get access to the interrupt handler pretty easily. ... It amounted to a distributed code war on a 4-10 million-node network."
That the people who makes IT Guys lives difficult and annoying are indeed IT guys.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Some serial killer goes and and murders dozens of innocent people; and we reward him with veneration, books written about him, endless press coverage, etc. Scumbags don't deserve our respect, our veneration, or polite treatment.
SJW: Someone who has run out of real oppression, and has to fake it.
Can't be much of a stretch... he plays the same bumbling, over-the-top idiot in every movie he is in.
-SaNo
I am now more convinced than ever that it is impossible to secure Windows.
he wrote adware.
let me repeat that. he wrote adware.
yes, he is a complete jerk. he worked for a corporation that did evil things. think Godwin's Law. he doesn't deserve a free pass just because you admire his methods.
Theoretically, I'm not opposed to ad-supported programs. If someone is willing to put up with an advertisement in order to use a program for free, go ahead and let them. It's worked for television, radios, and web sites for quite a while (Tivos and Ad-Block aside).
The problem, obviously, is when uninstalling the adware becomes a major hassle. For example, the author described in the interview how you would have to download a special uninstaller from the net, fill out a survey, and allow them to keep a registry key installed permanently. That is bullshit. Uninstalling shouldn't force any remains of the program to be left behind, period. Yes, in this situation it prevents unintentional (or intentional) reinstalls, but that wouldn't be an issue if adware didn't rely on drive-by downloads and was more upfront in what was being installed with the main program.
To maintain some sense of legitimacy, uninstalling shouldn't be more complicated than a few clicks from using the Add/Remove Programs dialog, and not leave behind any of the program's code.
Wow there cowboy... only a very small part of the API is deprecated, the best practices changed a bit once, and only had additions as new features popped, but didn't change much in years... if you crashed the -kernel-, you were using legacy APIs through .NET, not .NET itself, and error handling is very well documented for the most part, and doing a catch all is a (no offense, since .NET is obviously not your primary dev environment) noob way of doing things and is heavily warned against since version 1.
Maybe you fell in the ONE edgecase where it doesn't work well, but 95%+ (probably more) of it works flawlessly, is clearly documented and predictable...even if you go really deep. It becomes a bit more messy when you're interacting with separate products that just happen to have APIs coded in .NET (especially if its not the only language, and thus is probably coded by programmers who have no clue wtf they're doing), and its poorly done... Happens a lot. An example is the SSIS API (thats by Microsoft too), which is in .NET, but was clearly written by C++ gurus...so its a total fucking mess.
From the article:
Um, no. Unconscionability is a pretty ancient principle of contract law. People joke about signing away their first-born child in an unread EULA, but they understand that it's a joke: that term would never be enforced by a court, because allowing contracts of adhesion (like EULAs) signed by non-lawyers in casual circumstances to extract those kinds of concessions from the parties would result in the complete breakdown of society.
So when this guy (and his bosses) talk about how there was "no law around this", they're not fooling anyone, least of all themselves. If I buy a bus ticket and on the back there's some fine print stating that by riding the bus I've agreed to let the driver break into my house and take anything he wants, guess where the bus driver ends up if he tried to exercise his contractual "rights"? In prison. Which is where this guy belongs.
If you've watched enough Ben Stiller movies to have an opinion on which is the "best", not only do I not trust your opinion, I fear for the health and welfare of you and those around you.
Give me Classic Slashdot or give me death!
To get that oh-so-useful uninstaller you had to go to a website, answer a survey, and only then could you download it. If they genuinely wanted to make it easy, they would have put it in Add/Remove Programs, and stuck their survey in there.
I don't know about you, but after getting sketchy software on my machine, the LAST thing I want to do is go to some random website and download even MORE crap. I wouldn't trust that download one bit.
And the bit about "it was also designed to be very difficult for other adware to kick off" is complete hand-waving B.S. It was designed to be very difficult for anti-virus packages and anti-spyware packages too. In fact, anti-malware packages were probably the primary target of the persistence code.
And their distributors were complete scum that Direct Revenue did very little to police. Yeah, they suspended any that were complained about (if the hapless users even had any clue how they got the software), but those rogue distributors would just sign up under a new name.
I can't believe he thought this job was a "net positive" simply because he wiped out the other guys' malware more than he installed. That just means he is a very sneaky coder... That's like a embezzeling salesman saying he was a "net positive" because he generated more profits than he stole. It may be true, but it doesn't make him any less of a scumbag.
SirWired
so let's educate some of you:
we capture someone like frank abagnale, and we go all sharia law on him, as a lot of you propose, and leave him as a bloody stump
then what?
well, there are other frank abagnales out there. how do we detect them and capture them? well, the frank abagnale you just beat to a pulp: he would have made a good tool to do that, ya think?
luckily, in real life, this is exactly what the feds and the banks did. in real life, you capture and use highly intelligent crooks to... drum roll please... capture more highly intelligent crooks. get it?
law enforcement is hard grinding work, it doesn't happen like "death wish" or "dirty harry". i know in some of your justice league of america fantasy lives, delivering justice with a fist and a gun is the way to go. but we'd like to talk about reality, ok?
so to review:
1. we can have justice your way, and beat adware authors to a pulp, or
2. we can have smart justice, and listen carefully to mr. adware author's words, and use those words to catch more adware authors
get it? see the difference? do you want to pursue justice? or do you want to beat people up?
these are mutually exclusive activities, despite your dimwitted fantasy lives
now go crawl back under your rocks mouth breathers. nobody who is actually going to catch and punish cybercriminals in this world is going to think like you do
even the most vile amoral serial killer is useful to keep alive and listen to. simply for matters of brain analysis and psychological study. or, we could put a bullet in his head, scrambling the abnormal brains, and having nothing useful to catch more vile amoral serial killers
dumb violent justice leaves a dumb violent society that knows nothing about the smart and truly vicious criminals in their midst
smart justice is about studying smart criminals, and using them against each other
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Just for fun, consider the following actions a Unitary Programmer might do to your machine. Where would you rate them on the $SCOUNDREL scale, and why?
Playing "CoreWars" is tricky business, and people with even a dim sense of ethics are loathe to try it. But there's one case where none of the above actions are ethically questionable: When the machine's owner does it themselves.
I think the adware author lost sight of that for a while...
Schwab
Editor, A1-AAA AmeriCaptions
If you ask me, Microsoft is complicit in allowing malware to exist because they are unwilling to modernize Windows. They need to start over from scratch on their codebase and have a good hard think about what those APIs and interfaces are going to look like and then stick to it.
And the new version of Windows would be laughed at by non-IT consumers. "Why would I upgrade to the new Windows when all of my stuff doesn't work?" This is part of the argument against Vista, and why some people can't see past the need to break backward compatibility to do things "the right way".
Homonyms are fun!
You're driving your car, but they're riding their bikes there.
Im pretty sure that the majority of cops that became criminals were the hardest to catch. They know all the tricks and what other cops/detectives will be looking for.
What about those that use color of law? It's not terribly surprising that the FBI only receives about 200 complaints of color-of-law, and doesn't investigate, much less prosecute, a single one.
Simply being a police officer offers enormous immunity from the general public accusing you of crimes, and further means that most of your fellow officers won't "rat" on you (instead of being disgusted at your behavior and bringing disrepute to the supposed "profession.")
Please help metamoderate.
Oh yes I will argue with you over that :) You just have to get the parallels right. You can't go and compare the entirety of the API of Windows to a subset of Linux's...if you take all of the GUI APIs, the management APIs, .NET, Win32, etc, then just go and compare to the stuff the Linux kernel exposes... that doesn't work. Add the primary linux GUI environments, the various librairies, all of the integration issues, and you end up being in a fairly similar mess. Gnome alone is such a mess...
"But Gnome isn't part of Linux, you don't have to use it to code in Linux!", well, you don't have to use Win32, and while it tends to hide under many APIs, it is possible to dodge it, for example. The documentation is some of the best on the market (it has to be: if you have an MSDN subscription, and there's an issue with the API, they have to help you out fix your issue, debug your code, and give you patches if a supported API doesn't work as it should... so while part of the API isn't as well documented as others, they're pretty careful that its only the rare edge cases, because it will cost them if you fall on it and have a support subscription...
The old stuff isn't as good as the new, but its similar to what you said of Linux... some stuff gets forgotten and no one uses it anymore. Usually, if you still have to interface with it, its because of legacy code within the company, and that would be true regardless of OS.
Seriously though... .NET isn't cross platform, and it costs to deploy on the server side (unless you use MONO, but thats uncommon). The top notch documentation and API is the ONLY reason it catches on at all. When it came out, it was "new", and very very different (especially C#), and broke a lot of stuff... people would have ditched it faster than you can say "Vista" if you couldn't pick it up in days with MSDN at your side.
You probably just didn't have time to get all of the tools that are standard in a Windows dev environment, while on Linux/Unix, as soon as you sit down in front of a box, you make sure everything you need is there, which is the same thing I do when I sit in front of a Windows box.
I sometimes wonder if there is a way to estimate aggregate "harm" caused by a widely distributed crime. Is it the same to steal 1 minute of time from 1 million people with an automated telemarketing robocall as it is to lock 1 guy in your basement for 2 years (1 million minutes)?
None of them can see the clouds; The polished wings don't care.
This guy is a clear example of a sociopath. He doesn't give a damn about anyone else but himself, and doesn't have one thought about if his actions will cause harm to other people computers. This is the guy that has wasted my time over the years fixing my relatives computers. What a sleazeball.
Virtualization. Microsoft should put out a proper version of windows with a sandbox area for old software.
When our name is on the back of your car, we're behind you all the way!
Have a look at broken window fallacy.
Not everyone wins. Just someone else is paying the price
Of course they're morally bankrupt. However they also play an important role in the ecosystem.
What? How in the hell are malware writers an "important part of the ecosystem"?
This is the Internet, not Wild Kingdom. In nature, real virus infections do indeed serve a natural purpose. On a computer, it serves nothing but the ends of assholes and criminals. There's no justification... none whatsoever... for what these guys do. And don't give me that farcical security argument, either. They're not doing the world any favors by violating other people's computers.
Life is hard, and the world is cruel
So if I buy a door that happens to have a lock with a flaw, it's the fault of the lock maker that my stuff gets stolen? Sorry, but no, the fault lies solely on the shoulders of the thief.
I'm sorry, but why did you buy a door with a lock on it if not to protect against thieves? If someone sells a product that purports to protect you against criminals, and it fails to do as advertised, then that seller has sold a defective product and partially to blame for your loss. To follow your line of logic would absolve locksmiths of any responsibility to make a product that isn't slipshod.
Microsoft thumps its own chest about the safety and security of its system. Their failure to live up to their claims makes them part of the problem and not an innocent bystander.
If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
And if you read the interview, you'd see he's not really evil, like many/most/all serial killers, but a very intelligent young person.
First, what exactly is "evil?" Some people think that one has to cackle and twirl your moustache with glee at being evil for its own sake, but most people who do horrible and evil things to other people have a good justification for their acts: "I was desperate and I needed the money," "I was just following orders," "I'm protecting my family and my country," "Everybody else gets away with doing it," "My evil rids the world of other evils," "If I didn't, then someone else would," "It was just a job," "It's nothing personal," "Stupid people get what they deserve," "It's just survival of the fittest," etc., etc.
Doing something wrong just because you were in a tight spot and put your own needs over others is no more just than doing it just because you enjoyed it. Evil is evil. While I feel sympathy for his poverty and think that we as a society should focus our government's attention more on preventing the root causes of crime than just "deterrence," I feel no real qualms about stringing someone up if they've crossed the line. He had a choice whether to do right and struggle or to do wrong and prosper. He chose the easier of the two paths.
And second, I'd like to point out that most serial killers were "very intelligent young people." Unlike them, he wasn't mentally ill -- just greedy, ethically bankrupt, and too enthralled by the shiny programming challenge.
If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
Can you get me in touch with these people you're advising? I could certainly use some free IT equipment.
No really, I'm serious -- if you know of folks throwing out perfectly functional computers solely because of virus infections, I'd love to have a few of their machines. Heck, they're worth something just for hobbyist spare parts, if nothing else. :)
Cheers,
"What in the name of Fats Waller is that?"
"A four-foot prune."
3.b. Make a clone image of the system to an external hard drive so that next time you can be done in 20 minutes. I recommend clonezilla for this because it's free, boots from a pen drive, supports Windows and Linux, and will save to a USB drive or open Windows share on the network.
4) It is usually a good idea to use something else than Internet Explorer for surfing ;-)
Another good tip is to load a good hosts file. You would be amazed how much it helps. There's no host like localhost. It's cheezy, it's retro, it's cheating. But it doesn't cause cancer.*
*This statement has not been evaluated by the AMA. Void where prohibited. Your mileage may vary. Everything causes cancer.
Help stamp out iliturcy.
"Your views seem to advocate tolerating criminal actions because the criminal can help you"
no. my view advocates a criminal reversing themselves and doing some good with their position. and what incentive does a criminal have for stopping to be criminal? some leniency, redemption, a sense of forgiveness. something all moral codes must have in order to be valid
"Would you let a big criminal run free because he donates a couple million dollars to a law enforcement agency"
no, and it doesn't compare. in your situation, you have a criminal going free by commiting yet another crime: bribery. in my situation, you have leniency towards a criminal by commiting a follow up good deed: helping the authorities catch yet more criminals. understand the difference?
furthermore, i am saying you have no choice on the matter. say a criminal invents or discovers or is among the few people in the world who can do technical feat xyz. he is caught, but other criminals get wind and start using technical feat xyz to commit crimes. do you want to stop the second round of criminals?
or do you want to adhere to your idealism and allow the second round of criminals to go unpunished?
in my world, the second round gets punished harshly, since their special technical knowledge isn't so special anymore, thanks to cooperation of the original criminal. in your world, you sit on the original criminal harshly, and have no way to stop the second round of criminals
not a very superior attitude
criminality in life isn't an aspect of doing one thing wrong, and remaining on ice forever. all mature systems of morality understand that there is an interplay between right and wrong, and someone who does wrong, and later does something right, deserves consideration for that
your attitude meanwhile, is all stick and no carrot. you punish, but you don't reward. no, you need a carrot, and a stick. you need to punish wrong, and you also must provide a path back towards doing the right thing, the carrot
in your harsh sharia law world, you will punish someone and give them no consideration for doing anything later that might help society. in this system, all you do is turn minor criminals into major criminals, because you haven't given them any incentive to ever do anything right ever again in their lives. its a feedback cycle, and it creates a society with more hardened criminals
you speak of incentive for good people to continue being good, and not doing something criminal. yet a genuinely good person needs no such incentive, they already udnerstand right and wrong and the implications. meanwhile, a criminal needs incentive to do good. but your attitude of all punishment no reward just burns those bridges and gives someone who commits minor crimes no reason to ever turn towards doing something good ever again in their life: its all just punishment for them from here on out
redemption and forgiveness figure into every moral code in the world
but apparently, not in yours, making your "morality", or understanding of morality, to be invalid and incomplete
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it