I mean I did not click a add banner or random picture on a site, and be re directed to a site that strictly hosting the malware instead of opening the picture/banner that was intended to open.
Every time I have been attacked I have had multiple sites open that I thought I could trust. Then out of no where it was installed on my computer, without any other sites being auto-opened.
In some cases, it doesn't matter if you actually click on an ad banner. When your computer calls the webpage you want, and that webpage calls the ad banner server, the ad server sends over the malware which is essentially run by you as a normal process of loading the ad banner in your browser.
It's still somewhat rare, AFAIR. Basically, it's not cnn.com that's been compromised
per se, but it's the ad server that's been compromised. If cnn.com (or whichever website you are visiting) isn't picky or is very lax in keeping tabs on ad servers, then it can hose a lot of people.
-------------------
IF YOU KNOW ABOUT DNS AND HOSTS FILES, PLEASE SKIP NOW
I always recommend a local hosts file in addition to any other set up which I've explained in the past. Basically, if you're unaware, a hosts file is taking advantage of the built-in process that every browser on every platform performs by first looking locally (your computer) for web address resolution.
A hosts file is a text file which is like a simple DNS server on your personal computer. When you type in "www.google.com" into your browser, the browser will first look in your hosts file, then whatever DNS servers your ISP uses to find out what IP address "www.google.com" really is (what it "resolves" to).
If there is no entry in your hosts file, it will move on to the DNS servers.
If there is an entry, it will follow what is written there and ignore any other IP fetching/resolution.
So, an example:
You type in "www.google.com"
No entry in your hosts file.
Your ISP's DNS servers says
8.8.8.8 google.com
Your browser fetches and displays the basic search page of Google.
--------
You type in "www.google.com"
Your hosts file has this written in it:
67.228.115.46 google.com
Your browser fetches and displays the homepage of randi.org even though you typed in "google.com" and wanted to visit Google's page.
Some malware will write in the hosts file, doing this very thing; you'll type in "www.google.com" and since your browser will automatically look in the hosts file first, it will then return whatever IP address is written in the hosts file. But, a hosts file is mainly a good thing if you populate it with ad servers and known malware sites and redirect them to 127.0.0.1.