Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[flagged] Banner ads on CNN.com contain keyloggers (twitter.com/brannondorsey)
157 points by braxxox on July 17, 2018 | hide | past | favorite | 79 comments


Sites bemoan ad blockers but then take no responsibility for the ads that are shown. That needs to change - it’s not like print advertising.


Right? Imagine IRL advertising that would break into your house and put up advertising posters or plant listening devices.


Seems more taking a plant to your house while knowing it will listen to you, while there is plant that won't listen to you but that you have to pay for.

That listening device is the cost of the plant... don't like it? Then pay to avoid it...

It's that simple, there's no alternative. They have to pay to make that content and send it to you. If it's not advertising that pay for it, that cash won't appear out of thin air. Someone needs to pay for it and if it's not an advertiser that does, it needs to be you.

There's plenty of news agency that offer paid membership without ads, go for them.

There's plenty of people that can't afford to pay or that just doesn't have the means to. I remember the amount of content I was able to learn because advertising was subsidizing it. My parent were sadly against paying on the internet and I'm far from being the only one that learned that way.


I don’t think I would like that at all.


> Sites bemoan ad blockers but then take no responsibility fo the ads that are show. That needs to change - it’s not like print advertising.

It has been changing and improving for years.

Your statement is true for the ad content for sure. (Though sites do take flack for inappropriate ad content, just like print publications have.)

This is irrelevant to the OP’s link, though, since it’s not a keylogger and keyloggers aren’t actually possible.

Ads are subject to the security rules imposed by the browser, and for the most part every abuse that ads have attempted have been shut down. Sometimes not as fast as we’d like, I admit, but for the most part I think the system is working.

Ads can no longer play audio, they can’t see data passing between me and the site they’re embedded into, they can’t abuse popups anymore, etc., etc.. Every time an advertiser comes up with some new annoying way to try and get extra attention, the good folks designing the web and making the browsers patch the hole.

I like that the web standards and browsers, and laws to some extent, are where the responsibility lies, and I wouldn’t want to have individual sites taking responsibility for the security of ads.

As for bemoaning ad blockers, at least keep in mind the ads in ad-supported free content is their revenue stream, and that the majority of ads aren’t malicious. Personally, I’d love to see a better free business model than ad-supported free content. In the mean time, paying directly for ad-free content, and putting up with ads are our main options.


We couldn't even trust them to not play sound blasting ads at 1am let alone with this.


Change or not, I think the trend is not to trust ads anymore. I question whether or not it’s feasible in the long term to sustain a model based on tracking people, selling their data, and calling that “advertising.”

Oh and if you want to see what CNN is crapping out without the cruft, lite.cnn.io works well.


Surveillance is not advertising.


I can hear them responding with something like:

Surveillance is helpful information gathering and customer profiling in order to understand customer needs better. This enables us to put more relevant ads in front of your eyes. It also helps us to understand when is most convenient to sneak in the middle of the night and harvest your and your family's vital organs, as permitted by the service agreement you signed.


Bad ads appear with every ad network, and ad networks are lazy to stop it because they know that sites will take all the blame (your comment is a great example). Pop into /r/adops sometime (or the associated slack channel) and watch site owners working nonstop to try to find a solution to this problem. It's mostly a game of whack-a-mole at this point with no real long-term solution in sight.


Google's monopoly status means it fulfills 90+% of the ads. I can guarantee you that CNN has no control. There is no competition. So, erm, maybe the onus is on Google?


Surely a company as big as CNN can run their own ad service instead of contracting it out. Do they pass the buck like this for ads on their TV channel?


They probably do run it. Just they are looking for the highest paying ads that don't have a boob in them or a penis. If the highest paying ad is a keylogger, that's generally not what they're looking for when they're filtering it out.


Is this confirmed to be Google ads? Because otherwise the comment is needlessly misleading.


According to a comment below the JavaScript originated from CNN and was likely used for debugging.


CNN absolutely has control. CNN could vote with their dollars and use a different ad platform.


Which other ad server and ad intermediation service would you recommend?


I don't know, I'm not in the business of specifying and choosing ad services.


I think you could name multiple competitive players in lots of areas that aren't your core business. You can't name any others in ad services because Google is a monopolist.


> I think you could name multiple competitive players in lots of areas that aren't your core business. You can't name any others in ad services because Google is a monopolist.

That is totally silly - What in the world makes you think I think about the advertisement industry more than the absolute minimum amount possible?

Anyway, the other options are:

- They run their own ad platform - They don't run ads


Do you have any proof that the ad was served by Google or are you just guessing? I was under the impression they had checks to prevent this.


Tons of malvertising comes through Google. When one company owns the whole space, finding just one vulnerability is enormously economically attractive.


>Tons of malvertising comes through Google.

Can you cite that as your previous accusation was already proven to be incorrect.

>When one company owns the whole space, finding just one vulnerability is enormously economically attractive.

Google doesn't own the whole space.


Google ads container keyloggers? I doubt that.


> Google ads container keyloggers? I doubt that.

Just to be clear, I think they are talking about advertisements placed via Google's platform, not ad campaigns by Google.

I think there is only one way to solve this: programmatic ads cannot contain executable code (no access to local storage or network) and ads must come from the same origin as the page they are on. For example, YouTube will host an ad for Subaru on YouTube's servers. The sticking point as people have pointed to me before on HN is fraud. The customer (in this case Subaru) does not trust Google to be honest in counting the number of impressions.

Perhaps what we need is legislation banning this behavior across the board. When no ad vendor is able to allow customers to do what they please on user's web browsers, the customer has no recourse other than to accept that this is not possible. I don't know how such a legislation would work though. Perhaps it needs to be an industry alliance instead of legislation?


Again, I still doubt that Google places ads with key loggers via their platform. Maybe I misunderstand something about how they operate though, and I can't recreate anything close to what the original article shows. In fact, I can't even load cnn.com right now.


It is possible, and thus against their policy, and thus invites the worst of the web to circumvent their detection systems. https://support.google.com/adwordspolicy/answer/6020954?hl=e...


Lots of speculation here, not much analysis, even from lazy gits like me.

Chrome web inspector kindly gives the "Initiator" for every request. In this case it's cnn-header-second.min.js. Load that, and Chrome again kindly detects minified JS and offers to pretty-print it.

The context here appears to be some kind of ad console tool, added by CNN, not by an ad. The relevant function is at https://pastebin.com/EwgPAM6T

It's a bit obfuscated/minified, and they don't seem to have a non-minified version available, so it's not clear exactly what functionality this is enabling.

Either way, not really a keylogger if it's not capturing all keystrokes and shipping them off somewhere.


Functionality is to enable an "AdFuel Creative Review" form when typing "d o h" anywhere on the page. Try it. Then click the blue icon in the lower right.


The tool is for reviewing bad ads and ad stack QA.


This is a prime example of how people so easily accept a headline shared on some news authority to be truth. Even the bright minds at hacker news are duped - just look at all the discussion happening here with the assumption the headline is correct.

The guy who tweeted this jumped to a conclusion, naively shared his discovery, then let it perpetuate leaving numerous victims of an erroneously altered world-view.


I seriously think people shouldn't be able to comment / see comments on HN unless they've at least clicked on the darn link. I took one look at the "keylogger" source code and recognized it.


The point stands, but that's not really a keylogger. It's a library to manage keyboard inputs. Of course, it could also send all key info somewhere externally too.


But in what universe would an individual ad need that? This seems like precisely the sort of thing that a third party ad would be prevented from doing.


Keypress.js doesn't really help creating a keylogger. It does make creating interactive ads easier though.


The 90s called and wants "punch the monkey" back


I'm skeptical that this is a) from a banner ad and not from operation of the site b) a full blown keylogger and not a library included that is used for something like a photo gallery (that may have ads in it)


Also, the file is served from turner.com domain, which is the company who owns CNN.


Scripts from the ad should be iframed no? Doesn't make sense that an ad could run arbitrary JS within the same browsing context as the host.


It doesn't make any sense, but it's very popular.

To be fair, when they're desperate real world newspapers are like this too.

A flush successful newspaper will make a deal of its editorial independence and insist you write "Advertising Feature" in big letters at the top of your full page ad, use a completely different typeface and give your company's name, but when money is tight the guy selling those adverts is under pressure to compromise. What if it says "Sponsored content" rather than "Advertising Feature"? And rather than big letters at the top, how about small disclosure text at the bottom? The typeface could be a very good clone of your normal editorial typeface, and still count as "different" right? And lets have a byline which says "Our staff", that's vague, and the poor reader might think it means it was written by journalists, but it doesn't strictly _say_ that, it just says "Staff" which could be anybody...

This is how internationally famous British newspapers end up running content literally written in Beijing or Moscow to let everybody know how free and wonderful those countries are, using weasel words like "in co-operation with". And if the _actual_ news is a bit awkward? Well, you wouldn't want that lucrative sponsored content deal to lapse would you? Maybe a brief mention on page 14 is enough, even if those newspapers which still have a backbone ran it on their front page.


Are you sure this approach is popular? AFAIK none of the top ad platforms allow you to inject scripts. Do you know any?


And of course this all stems from the fact people have stopped paying for news.


It appears to be getting the keypress.js library from ssl.cdn.turner.com. Not clear if the data is being exfiltrated, though, just by looking at that tweet.


Exactly it is incorrect to jump to the conlusion that they are using a keylogger. I mean, they're loading a JS library that allows to handle keypress events; but if you talk about a keylogger everyone assumes that they're stealing your keystrokes.

What needs to be done is to navigate the site and typing a given char sequence on every page while logging the HTTP traffic, then do a search for that sequence to see if it appears in any request. That's the basic thing you could do to actually verify if there is a keylogger.


>ssl.cdn.turner.com

Obviously bullshit. That's CNNs CDN, not a "banner ad". This guy did not put in the least bit of effort to verify his claims.

The script is included in https://edition.cnn.com/.a/2.103.4/js/cnn-header-second.min....


It appears to be used to set up multi-key hotkeys for debugging. Pressing 'd o h' on the page requests some adfuel console resources.


This is getting upvoted without getting the context.


Here's what is actually being run

http://dmauro.github.io/Keypress/


So basically, it's just an event-capturing interface to what you can do natively in the browser already. It doesn't necessarily mean anything is being logged. The code using the library would need to be inspected—whatever callbacks are being fired, etc.


Why aren't the code snippets in a monospace font? Is there readability ux that thinks this is a good idea?


they look monospace to me

https://i.imgur.com/K5L7xit.png


They are in monospace?


They are on my screen.


How likely is this to be due to accessibility (ie. keyboard-only users) vs. keylogging?


Doesn't seem likely that an advertisement would need to embed that kind of functionality.


What kind of functionality? This is just a generic library for more easily managing keyboard input, JavaScript itself supports the same but in a more clunky way.


How can an add increase accessibility by listening to the keyboard?


Keyboard shortcuts instead of onclick handlers. Unless someone is using Vimium there is no way to use a keyboard to navigate the web without explicitly defined keypress handlers.


How do you envision this to work in practice?

Do I need to read a manual for the ad? Also, the ones that actually are dependant on the keyboard will already use Vimium or something else.


I would suggest their "lite" [1] version. It is compatible with addons like NoScript, uMatrix, uBlock, Canvas Fingerprint Defender, CSS Exfil Protection, Privacy Settings and Self Destructing Cookies. I am using FF 52 ESR. Some of these addons may not work in 58+.

They could improve their HTTP header settings a bit. [2]

[1] - https://lite.cnn.io/

[2] - https://securityheaders.com/?q=https%3A%2F%2Fcnn.com%2F&foll...


Iframed banner ads can’t log keystrokes outside their frame, browsers don’t allow that. And no site in their right mind would include ads that aren’t iframed.

A keylogger would be possible if there was some kind of zero day exploit, but this isn’t that, it sound like the tweeter didn’t do their due diligence. I’m curious how someone gets as far as looking through the minified JavaScript without knowing the browser doesn’t allow that, obviously(?), otherwise all your passwords and information would have been compromised long ago.


as someone who claims they are a programmer and researcher... you would think they would have done some more research on this and also have common sense to know that this isn't a keylogger.


Things like this make me happy that uMatrix exists.


indeed ! keypress.js is blocked on the easyprivacy list as well.


What could an advertiser good to track with key logging? Password to their... CNN account??


A password to an individual's CNN account could easily be their same login to their bank or other more important account.


My guess would be to see what people are typing but not submitting, along with what they're searching for, commenting, etc.


CNN staff and contributors could be the target.


People can buy ads and place their own JS in them I'm guessing... This might go beyond just CNN.


CNN, like the vast majority of news sites, is best viewed with javascript disabled. Pages load 10X faster, scrolling is not jumpy, the CPU doesn't go crazy, and text reads just as well. It is hands down a much improved user experience.


It's not CNN. It's ads.

Advertising has ruined every medium it has ever touched. It will ruin the web. It is only a matter of time. It did not destroy ancient network television overnight. It did not destroy cable tv overnight.

The last time I saw cable tv a few years back, it had become so bad that after a long run of ads, they would then put bugs and walk on people right over the content of the show you were watching. Sometimes obscuring important content within that show.


Which is why NF is so successful and cable is bleeding from the arteries. Consumers want to choose their device, on their schedule, without tampering with the content, and they want good and timely selection of content. They will pay well for this.


cross domain script blocking should be enforceable in all browsers


press shift-control-z on cnn.com and you will get what this supposed keylogger is (hint - its not a keylogger or comgin from an ad) but merely a cnn internal tool..


Dearest Ad Industry,

This is why we run ad blockers. Since you won't regulate your industry, we're fixing the problem for you.

Love,

The Rest of the World.


PS: and please burn in hell, asap.

Sincerely,

Concerned users of the Internet.


takers of the internet?


I’ve noticed CNN has had a crap ton of redirect ads recently...


They come in waves and go away when ad exchanges figure out how to block them. It isn't usually tied to a single publisher, as they are bought and sold across ad exchanges that reach most of the ad funded web. They are extremely difficult for even manual reviewers to spot and reproduce, so the whole industry works to stop them together. Then new ones pop up.




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

Search: