ie8 fix
madison

Zero Day

Ryan Naraine, Emil Protalinski and Dancho Danchev

Googler ships exploit to defeat DEP

By | March 1, 2010, 12:01pm PST

Summary: A prominent security researcher has released an exploit that uses a new technique to defeat ALSR + DEP on Microsoft’s Windows operating system.

A prominent security researcher has released an exploit that uses a new technique to defeat DEP (Data Execution Prevention) on Microsoft’s Windows operating system.

The exploit, released by Google security researcher “SkyLined,” uses the ret-into-libc technique to bypass DEP and launch code execution attacks on x86 platforms.

SkyLined (real name Berend-Jan Wever) is best known for introducing heap-spraying in Web browsers, a technique used in exploits to facilitate arbitrary code execution.  He previously worked at Microsoft before leaving in 2008 to work on security Google’s Chrome browser.

follow Ryan Naraine on twitter

“I am releasing this because I feel it helps explain why ASLR+DEP are not a mitigation to put a lot of faith in, especially on x86 platforms,” SkyLined wrote on his blog.  ”32-bits does not provide sufficient address space to randomize memory to the point where guessing addresses becomes impractical, considering heap spraying can allow an attacker to allocate memory across a considerable chunk of the address space and in a highly predictable location,” he added.

The code in this exploit shows how to abuse this to perform a ret-into-libc attack when you can predict or, through information leakage, determine the location of modules (exe, dll) in the process’ memory.

The source code for the Internet Exploiter 2 exploit has been posted online [zip file].

Microsoft introduced ASLR (Address Space Layout Randomization) + DEP in Windows Vista, touting them as significant anti-exploit mechanisms but researchers have spent the better part of the last year finding ways around these mitigations.

At the 2008 Black Hat conference, hackers Mark Dowd and Alex Sotirov demonstrated the new methods to get around ASLR and DEB by using Java, ActiveX controls and .NET objects to load arbitrary content into Web browsers.

IMPORTANT UPDATE:

Berend-Jan Wever wrote in to make it clear that this exploit does not bypass ASLR.  He also stressed that there is nothing in the exploit that is not public knowlege or easy to produce from public knowledge.

“It’s an example of how to implement a known attack, not a new technique,” he said.

He also made it clear that he did not release the code as a Google employee, but as an individual.

Kick off your day with ZDNet's daily e-mail newsletter. It's the freshest tech news and opinion, served hot. Get it.

Topics

Ryan Naraine is a journalist and social media enthusiast specializing in Internet and computer security issues.

Disclosure

Ryan Naraine

The most important disclosure is of my employment with Kaspersky Lab as a member of the global research and analysis team. Kaspersky Lab is a global company specializing in anti-malware and secure content management technologies. I do not own stocks or other investments in any technology company.

Biography

Ryan Naraine

Ryan Naraine is a journalist and social media enthusiast specializing in Internet and computer security issues. He is currently security evangelist at Kaspersky Lab, an anti-malware company with operations around the globe. He is taking a leadership role in developing the company's online community initiative around secure content management technologies.

Prior to joining Kaspersky Lab, Ryan was Editor-at-Large/Security at eWEEK, leading the magazine's and Web site's coverage of Internet and computer security issues and managing the popular SecurityWatch blog, covering the daily threats, vulnerabilities and IT security technologies. He also covered IT security, hacker attacks and secure content management topics for Jupiter Media's internetnetnews.com.

Ryan can be reached at naraine SHIFT 2 gmail.com. For daily updates on Ryan's activities, follow him on Twitter.

192
Comments

Join the conversation!

Just In

RE: Googler ships exploit to defeat ASLR DEP
lovedong 12th Sep
thanks so much for subbing this! replica watches
0 Votes
+ -
that ASLR on 32 bit systems can be bypassed by brute force. It is still useful to have as an extra layer of defense though. It is also another reason to move to 64 bit systems where it is currently still difficult to do.
0 Votes
+ -
you can't use brute force in an hard-coded exploit
thanks so much for subbing this! replica watches
0 Votes
+ -
Good find
WinTard Updated - 1st Mar 2010
The more we are made aware of potential security holes, the more we can defend against them.

At some point however, this begs the question: Is there any security at all?

I believe the best security is your own intelligence and what you do with it.

Also interesting is the fact this particular exploit doesn't work on x64 platforms. Perhaps indicating the necessity to migrate ASAP to 64-bit platforms? Well they don't cost any more financially to acquire? Most if not all CPUs sold in the last 24 months are 99% 64-bit compliant? As a matter of fact, try to find a 32-bit CPU only in any recent PC/netbook/notebook/desktop/blade/whatever?

So what's the hold-up?

~~~~~~~~~~~
There is no security on this earth; there is only opportunity.
~ General Douglas MacArthur
0 Votes
+ -
Like humans, like machines
klumper 1st Mar 2010
At some point however, this begs the question: Is there any security at all?

Keep On Going

For every crime, there's retribution
And every valley has a mountainside
No, I don't like to trade just to be happy
That kind of deal won't turn out right
See it ain't good to stare inside yourself too long
For every true thing there's one more lie
But I won't worry, 'cause if I'm living on borrowed time
I'll just try to keep on the way I'm going


--Bob Welch (Fleetwood Mac)
0 Votes
+ -
There is a hold-up?
AzuMao 1st Mar 2010
Do some people still use a 32-bit OS nowadays? o_O
Is an old Pentium 4 HP machine that simply wouldn't do 64-bit because of the motherboard in it.
0 Votes
+ -
Do people still use 32 bit?
Franciscus101 2nd Mar 2010
Some of us have no choice. some apps simply will not run in 64 bit mode. I still have some I wrote back in the DOS days, and they are 16 bit. Will NOT run in 64 bit, not even in a dos box
0 Votes
+ -
I really think this is where microsoft should
focus their efforts for new OSs. They want to
get rid of the backwards compatibility issue,
vitualization can fix that. Its a bigger
footprint on your hard drive, but at least you
don't have the old code containing old security
issues hanging around.

Imagine if all you had to do was click
virtualize in XP or '95 or 1.0 or DOS 6.22 and
it would just work. Better yet, maybe it could
autodetect somehow. 8bit, 16bit, 32bit, 64bit,
128bit, who cares, just virtualize the machine
you need.
0 Votes
+ -
I second that.
914four 2nd Mar 2010
That would be awesome, and it would make sense. Which means it's highly unlikely to happen until someone else does it first...
0 Votes
+ -
Actually, that's the problem.
AzuMao 2nd Mar 2010
Windows will happily run 32 bit programs (by switching the processor into compatibility mode) and thus reduce the address space to.. 32 bits (1 of which is reserved), making it
easy to search.

So that if there's a vulnerability in that program, band-aids like ASLR will not be able to mask it.
0 Votes
+ -
If you use an HLL like C this is as trivial as recompiling it with the x86-64 flag set. If you wrote it in assembly language, it's probably so small it won't be much trouble rewriting some of it anyways.
0 Votes
+ -
No! Really? Awesome!
Wintel_BSOD 2nd Mar 2010
Now tell all the developers that.

Adobe? Adobe?
0 Votes
+ -
They already did.
AzuMao 2nd Mar 2010
Just didn't bother with Windows because nobody
uses it who cares about security.
0 Votes
+ -
People Still use 32bit computers
pmwpaul@... 3rd Mar 2010
Because they can't afford a new computer and os every year. I'd love to get a win7 machine but I can't afford it.

Security costs money. The span between the haves and the have-nots is growing.
1st off, I'm late on the subject matter. I have a 64bit proc in my HP laptop (used for betas and testing) I dual booted a 120gb hdd with Win7 32bit and 64bit, 60gb each partition. Installed all updates at that time to both. 1st thing i noticed was the lack of proper drivers for the 64bit.

Once drivers were fixed, installed all required programs in the 32bit without a problem. I got to do the same thing to the 64bit Win7 and hit a wall. 70% of the programs needed werent installable and a 64bit version doesnt exist.

But like shadfurman said, virtual environment was a fix but silly in my case. So needless to say, I stuck with the 32bit version.
0 Votes
+ -
Eh?
AzuMao 6th Mar 2010
Even Windows has had 64 bit right since, like,
2005 (including drivers).

And of course, everything in the Linux world has
been 64 bit since way before then.
0 Votes
+ -
...mostly because of the lack of 64 bit Flash.
Google Chrome, Firefox, Safari and IE are all
32 bit browsers on Windows. Which means that
the address space is limited and thus susceptible to this weakness.

(IE does comes in a 64 bit version - but sans
Flash).

Note, this is not a *vulnerability* and much
less an *exploit*. It is a way where an
attacker in some cases may exploit a
vulnerability which would otherwise be foiled
by ASLR and DEP.
0 Votes
+ -
Now THAT'S funny.
AzuMao 1st Mar 2010
Windows has worse Flash support than Linux now.. go figure. silly
0 Votes
+ -
is only available in alpha (not even beta) for Linux?

http://labs.adobe.com/technologies/flashplayer10/releasenotes_64bit.html
Flash Player for 64-bit Linux Alpha Release Notes
Updated: July 30, 2009

These release notes document known issues related to the alpha versions of 64-bit Adobe? Flash? Player 10, code named "Astro". Release versions of 32-bit Flash Player 10 for Windows, Macintosh, and Linux platforms are now available from the Flash Player Download Center.

The alpha refresh build of the 64-bit Flash Player 10 for Linux is version 10.0.32.18.

Please uninstall any versions of Flash Player before updating your installation.


Perhaps they Adobe has a beta out now? Who knows? Hmmm, who cares? wink

As for Windows:

Google: http://www.google.com/search?q=adobe+64+bit+flash
Results 1 - 10 of about 13,100,000 for adobe 64 bit flash. (0.07 seconds)

http://kb2.adobe.com/cps/000/6b3af6c9.html
Flash Player support on 64-bit operating systems
Ratings:73 of 129 people found this helpful
Issue

--------------------------------------------------------------------------------
Adobe Flash Player is not supported for playback in a 64-bit browser. However, you can run Flash Player in a 32-bit browser running on a 64-bit operating system.

Reason

--------------------------------------------------------------------------------
Adobe is working on Flash Player support for 64-bit platforms as part of our ongoing commitment to the cross-platform compatibility of Flash Player. We expect to provide native support for 64-bit platforms in an upcoming release of Flash Player following the release of Flash Player 10.1.

Note: To participate in pre-release testing of 64-bit Flash Players see Adobe Labs.

Solution

--------------------------------------------------------------------------------
To use Flash Player to view Flash content on a 64-bit operating system, you must run a 32-bit browser. For details on setting this up for Windows see Microsoft Help & Support.

For details on using Flash Player on Mac OS X 10.6 on 64-bit machines, see:
Flash Player 10 and Mac OS X 10.6 (Snow Leopard)

and

GPU mode support on Macintosh OS X 10.6


I guess the ball's in Adobe's court? Microsoft is ready! And has been ready for a long-long time now.

Did you know the first version of a full 64-bit XP OS came out back in 2001? A full nine years ago? A bit ahead of its time eh? Yeah, there was a serious lack of native 64-bit device drivers back then... Nonetheless, that was NINE years ago!

Of course, Adobe Flash wasn't ready either back then... Alas.

Source: http://en.wikipedia.org/wiki/Windows_XP_editions

~~~~~~~~~~~
Am I not destroying my enemies when I make friends of them?
~ Abraham Lincoln, 1809-1865, 16th President of the United States
0 Votes
+ -
Also, none of those 13,100,000 results mention a 64bit version of Flash for Windows.


And no, I never really looked into Itanic compatibility. Those chips are way out of the price range for anything but niche enterprise applications.
0 Votes
+ -
explaining their lack of 64-bit Flash for Windows?

However, perhaps news for some is this:

http://www.nvidia.com/object/adobe_flashplayer_plus_nvidia.html

FLAWLESS FLASH VIDEO
Put an end to stuttering online videos and enjoy smoother, full screen SD and HD content with an NVIDIA? graphics processor. Adobe Flash Player 10.1 beta is here, with full GPU-acceleration for NVIDIA? ION? and NVIDIA? GeForce?-powered PCs; and support for NVIDIA? Tegra?-powered devices coming soon. Visit these HD Gallery pages from your favorite websites to view GPU-accelerated Adobe Flash 10.1 content. The full production release of Adobe Flash Player 10.1 will be available in 1H 2010.


Pretty kewl eh? (I've got a GTX295). happy

~~~~~~~~~~~~
The sun, with all those planets revolving around it and dependent on it, can still ripen a bunch of grapes as if it had nothing else in the universe to do.
~ Galileo Galilei
0 Votes
+ -
Adobe Flash 10.0.45.2....
JCitizen 2nd Mar 2010
is not beta anymore, it plays fine on my video card:

AMD Radeon RV6350 Pro (Skyraider) - 512MB
Whoops, this was supposed to be in reply to "That is why I provided the faq link to adobe".
0 Votes
+ -
thanks to Adobe's lameness... Why are they so slow at jumping onto 64-bit code?

Credit to where credit is due. Adobe's Lameness!
0 Votes
+ -
@ WinTard
AzuMao 2nd Mar 2010
When new video games aren't made to work on Linux,
Windows users use it as an excuse to bash Windows.

So why can't I use lack of security in Windows
programs as a reason to bash Windows?
0 Votes
+ -
I use Linux every single day.

However, have you heard of the term 'drew first blood?'

I will never start a fight, but usually will finish it... LOL.

Meaning I see the pros/cons of all OSes / architectures.

As a matter of fact I take pride in being agnostic to brands/oses etc...

I shall simply keep an open mind, and use whatever best tools are at my disposal to accomplish whatever task is at hand...

Simple eh?

Oh, my favorite os isn't Windows or Linux, but QNX... Seriously!

My hobby is debunking FUD, I admit... Hey everybody has got their own kicks?

~~~~~~~~~~~~
It is not who is right, but what is right, that is of importance.
~ Thomas Huxley, 1825-1895, English Biologist

One person standing up for what is right is usually enough to inspire others to follow.
~ Unknown source

The superior man does not set his mind either for anything, or against anything; what is right he will follow.
~ Confucius
BTW, do you manually copy and paste all those quotes into your sig each time you post?
Or did you make a script to randomly put them in?
Bottom line: Don't rely on ASLR and DEP to protect you if you're running a 32 bit Windows process.
0 Votes
+ -
Not an issue in a 64-bit OS
de-void-21165590650301806002836337787023 2nd Mar 2010
As the hacker ... sorry ... Google Researcher stated, his attack works because in a 32-bit OS, there's only a maximum of 2GB shared between all user-mode processes.

On a 64-bit machine, there is a much larger address space to spray. Thus, the chances of his attack working in such a big space is very unlikely.

Again, moving to 64-bit won't necessarily deliver greater performance, but it WILL make you and your software safer through a combination of mandatory signed kernel code, ASLR and DEP.
I increased my ram by 1 gig and upgraded to win7 64 from XP home 32.

The machine runs so much smoother. The only time is slows is when I run VM for XP mode.

The biggest problem for 64 bit is when some IT idiot decides that his program is not causing an error problem. He blames Win7 and demands the user to follow multiple procedures to get the thing to work. As on person asked, how many uninstalls and re-installs does it take for the clowns to realize they have a bug in his software?

I just snail mailed epson because of this. Hopefully, when a non tech reads it, they shoot it up to Management who will then order them to fix the problem.

Seriously though, how many customers does it take to complain about the same problem before someone starts looking to see what is really going on with the program?
0 Votes
+ -
Correction..
AzuMao 2nd Mar 2010
..not an issue with 64-bit programs.

Browsers/JavaScript/Flash are primary attack vectors, and Windows doesn't support 64 bit Flash (and thus not 64 bit browsers).


If there is a vulnerability that lets remote attackers inject code straight into Windows' kernel then you're still screwed, since the best DEP will do is make it crash instead
of being taken over.
0 Votes
+ -
YES, there are many
Joe_Raby 1st Mar 2010
Anybody using an Atom-based netbook will be running a 32-bit OS.

Netbook Atom processors (Z and N200 series) don't support Intel 64. All nettop Atom processors do. Those include the older Atom 230 processor, and it's 2-core version the 330, as well as the new Pine Trail D410, and it's 2-core version, the D510. The new Pine Trail N450 netbook processor also supports Intel 64, but most OEM's will only install a 32-bit version of Windows because they'll likely only include Starter, and offer 1-2GB of RAM (the minimum recommended amount for 64-bit Windows 7 is 2GB too).

I haven't seen very many OEM's offering 64-bit versions of Home Premium on a netbook or nettop, except in some cases where ION-based systems are being sold.

All in all, Pine Trail has become a major disappointment for performance. From what early reviews are showing, so is ION 2.
http://en.wikipedia.org/wiki/Intel_Atom
Intel Atom is the brand name for a line of ultra-low-voltage x86 and x86-64 CPUs (or microprocessors) from Intel, designed in 45 nm CMOS and used mainly in netbooks, nettops, and Mobile Internet devices (MIDs). On December 21, 2009 Intel announced the next generation of Atom processors, including the N450, with total kit power consumption down 40%.


http://www.intel.com/pressroom/archive/releases/2008/20080302comp.htm?iid=tech_atom+pr
The Intel Atom processor is based on an entirely new microarchitecture designed specifically for small devices and low power, while maintaining the Intel? Core? 2 Duo instruction set compatibility consumers are accustomed to when using a standard PC and the Internet.


Which will cost the same or less than the original Z and N200 series, have lower-power consumption, higher computational throughput, basically expect all contemporary netbooks, tablets and low-power mobile computing devices to support it.

Note the Intel Core 2 Duo architecture is 64-bit compliant yet supports natively 32-bit code at the hardware level.

Now for those existing older systems, there is always the availability of 32-bit OSes?

Speaking of cost at the retail level:

A typical entry level $399 desktop for (computer enthusiasts) delivers:
64-bit quad core CPU, 8GB RAM, 750GB HDD for about one or two hours of fun and educational easy kit-building horizon widening experience: http://www.tigerdirect.com/email/WEM2184.asp?SRCCODE=WEM2184TT&cm_mmc=Email-_-Main-_-WEM2184-_-tigeremail

Or if you like ultra-portables, how about $450 for a Dell Vostro 13 (thinner and all aluminum) than an Apple MacBook Air retailing for $1499?

Google: http://www.google.com/search?q=dell+vostro+13
Results 1 - 10 of about 12,700,000 for dell vostro 13. (0.28 seconds)

What's the holdup (to 64-bit)? Certainly not the hardware? Neither the software? So what is it?

~~~~~~~~~~~~
Creativity requires the courage to let go of certainties.
~ Erich Fromm, 1900-1980, German-American Psychologist

When I let go of what I am, I become what I might be.
~ Lao Tzu

The past is a guidepost, not a hitching post.
~ L. Thomas Holcroft

Change is the law of life. And those who look only to the past or present are certain to miss the future.
~ John F. Kennedy

If we open a quarrel between past and present, we shall find that we have lost the future.
~ Winston Churchill
0 Votes
+ -
There isn't one. Also, nice sig.
AzuMao 1st Mar 2010
0 Votes
+ -
The 300 series of Atom processors are 64 bit
0 Votes
+ -
A holdup.
AzuMao 2nd Mar 2010
0 Votes
+ -
netbooks...
PollyProteus 2nd Mar 2010
nt
0 Votes
+ -
Older hardware
Wintel_BSOD Updated - 2nd Mar 2010
If your machines are two years old (or older) with a 2GB to 4GB RAM limitation, you can pretty much kiss 64bit goodbye.

Still a lot of those out there running on 32bit
0 Votes
+ -
Dell Latitude D830 of over 24 months ago...

Specs:
Intel(R) Mobile Core(TM)2 Duo CPU
T9500 @ 2.60GHz
Penryn 45nm Technology
4.0GB Dual-Channel DDR2 RAM
500GB Sata III 7200RPM
Plug and Play Monitor on NVIDIA Quadro NVS 140M
512MB Quadro NVS 140M (Dell)
Resolution 1920x1200 pixels
Width 1920
Height 1200
Bpp 32 bits per pixel
Vertical Refresh 60 Hz
TSSTcorp DVD+-RW TS-L632H
SigmaTel High Definition Audio CODEC

Runs Windows 7 Ultimate x64 like a charm! And all other OSes BTW... wink
  • Flagged
0 Votes
+ -
Well that's fantastic!
Wintel_BSOD Updated - 2nd Mar 2010
One of the few exceptions out there.

Putting 64bit on 4GB of RAM or under is a waste, btw...

But then you're a 'tard so you wouldn't know that.

lol... grin
  • Flagged
0 Votes
+ -
You know of any laptops?..
JCitizen 2nd Mar 2010
that got more RAM? Genius!? lol... grin
  • Flagged
0 Votes
+ -
????
AzuMao 2nd Mar 2010
Video RAM uses up the address space, and some OSs reserve part of the address space for their own use, so you probably won't even be able to use 4GB on a 32 bit system.

Also, it helps performance that general instructions (not just MMX/SSE ones) can work on 64 bits of data at a time, and GPRs can hold 64 bits of data at a time. It also helps having twice as many GPRs. And having a big enough address space to actually make ASLR somewhat useful at masking vulnerabilities. Also, all 64 bit CPUs have at least SSE2, so 64 bit programs are all compiled with at least SSE2 optimizations.
0 Votes
+ -
wrong 64 bit is much more stable....
dougogd@... 2nd Mar 2010
I have had more crashes on any 32 bit version of windows than 64 bit. I run 64 bit 90 % of the time.
32-or-64 bit no matter... Kewl eh?

Now don't knock it until you try it!

There is a Night/Day difference in performance.

In 64-bit, the whole system boots up in under 28 seconds. And resumes from suspend in under 1 second!

In 32-bit, we're looking at well over 1 minute to boot and 13 seconds to resume...

Also in 32-bit you actually waste 1/2 GB RAM and only get 3.5GB RAM through PAE. Why waste? When it's there, therefore 'free'?

Ah, since you are obviously not a 'Tard', you wouldn't know about that, you are oblivious to um, the obvious?

wink
  • Flagged
0 Votes
+ -
You know of any laptops?
Wintel_BSOD 2nd Mar 2010
that got more RAM?

Sure do, sock puppet... lol... grin

http://reviews.cnet.com/laptop-reviews/?filter=500053_15242097_

http://tinyurl.com/y96lasz

http://tinyurl.com/yezqtt8

Just about all the new ones can utilize 64bit. That wasn't the case a couple of years ago.

But you didn't really need me to point that out to you, did you cluetard?

more lol... grin
  • Flagged
0 Votes
+ -
???
Wintel_BSOD 2nd Mar 2010
Video RAM uses up the address space, and some OSs reserve part of the address space for their own use, so you probably won't even be able to use 4GB on a 32 bit system.

That was my point. Why bother putting a 64bit M$ OS on an older laptop that maxes out at 2GB - 4GB of RAM.

M$ upgrades ain't cheap, ya know. You might as well buy a new machine if you're going to go that route.

But even better still, put 64bit Linux on it. happy
  • Flagged
I've got 89 steam games... Plus two Xbox 360, one PS2 and one PS3.

The handle on steam is KAD. Kick Ass Dude or Kick Ass Developer? Who knows? Maybe Kind And Devoted?

Granted they play better on the gaming desktop rather than the laptops...
  • Flagged
0 Votes
+ -
???????
AzuMao 2nd Mar 2010
"Video RAM uses up the address space, and some OSs reserve part of the address space for their own use, so you probably won't even be able to use 4GB on a 32 bit system."

That was my point. Why bother putting a 64bit M$ OS on an older laptop that maxes out at 2GB - 4GB of RAM.

The address space is increased 2^32-fold by using 64 bit programs on a 64 bit OS, eliminating this problem.

M$ upgrades ain't cheap, ya know. You might as well buy a new machine if you're going to go that route.

But even better still, put 64bit Linux on it.


Whichever OS you use will benefit.
Linux more so due to more programs working in 64 bit mode on it.
0 Votes
+ -
@WinTard
AzuMao 3rd Mar 2010
So World of Warcraft, EVE Online, the Call of
Duty series, the Unreal Tournament series, the
Warcraft series, the Counter Strike series, and
all the browser games out there, are all fake
games?

That's just off the top of my head. There are
tons more "Windows only" games out there besides
these that run on Linux.

Not to mention some fairly active ones running
natively like Nexuiz and TA Spring.

I'm not going to bother making a complete list
of either category since you're obviously just
trolling.

Join the conversation!

Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]
ie8 fix
Click Here
ie8 fix

The best of ZDNet, delivered

ZDNet Newsletters

Get the best of ZDNet delivered straight to your inbox

Facebook Activity

White Papers, Webcasts, & Resources
ie8 fix
ie8 fix