Archive

Archive for July, 2009

My schedule for BlackHat and Defcon Las Vegas

July 28th, 2009 2 comments

Yesterday, I spent some of the hours that I was stuck in a metal tube above the Atlantic Ocean to pull together my schedule for BlackHat and Defcon coming Wednesday to Sunday. The schedule I pulled together combined with my plans to do (semi) life blogging from the conference for Cupfighter.net is actually quite mad so I fully expect to have to skip some of the activities listed below.

Wednesday 29 July 2009 (BlackHat)

Thursday 30 July 2009 (BlackHat)

Friday 31 July 2009 (Defcon)

Saturday 1 August 2009 (Defcon)

Sunday 2 August 2009 (Defcon)

Certificate warnings don’t work

July 27th, 2009 No comments

As reported here: http://www.goodgearguide.com.au/article/312438/security_certificate_warnings_don_t_work_researchers_say

“In a laboratory experiment, researchers found that between 55 percent and 100 percent of participants ignored certificate security warnings, depending on which browser they were using (different browsers use different language to warn their users).

“Everyone knew that there was a problem with these warnings,” said Joshua Sunshine, a Carnegie Mellon graduate student and one of the paper’s co-authors. “Our study showed dramatically how big the problem was.” …

The researchers first conducted an online survey of more than 400 Web surfers, to learn what they thought about certificate warnings. They then brought 100 people into a lab and studied how they surf the Web.

They found that people often had a mixed-up understanding of certificate warnings. For example, many thought they could ignore the messages when visiting a site they trust, but that they should be more wary at less-trustworthy sites.

“That’s sort of a backwards understanding of what these messages mean,” Sunshine said. “The message is validating that you’re visiting the site you think you’re visiting, not that the site is trustworthy.”

Categories: CaCert, Security Tags: ,

A fascinating Linux kernel vulnerability

July 21st, 2009 1 comment

My collegue Otto Jongerius pointed me to this interesting story from the Internet Storm Center.

Source code for a exploit of a Linux kernel vulnerability has been posted by Brad Spengler (Brad is the author of grsecurity). I have to tell you right now – this was one of the most fascinating bugs I’ve read about lately.

Why is it so fascinating? Because a source code audit of the vulnerable code would never find this vulnerability (well, actually, it is possible but I assure you that almost everyone would miss it). However, when you add some other variables into the game, the whole landscape changes.

While technical details about this are a bit complex, generally what’s happening can be easily explained. The vulnerable code is located in the net/tun implementation. Basically, what happens here is that the developer initialized a variable (sk in the code snippet below) to a certain value that can be NULL. The developer correctly checked the value of this new variable couple of lines later and, if it is 0 (NULL), he just returns back an error. The code looks like this:

struct sock *sk = tun->sk;  // initialize sk with tun->sk

if (!tun)
return POLLERR;  // if tun is NULL return error

This code looks perfectly ok, right? Well, it is, until the compiler takes this into its hands. While optimizing the code, the compiler will see that the variable has already been assigned and will actually remove the if block (the check if tun is NULL) completely from the resulting compiled code. In other words, the compiler will introduce the vulnerability to the binary code, which didn’t exist in the source code. This will cause the kernel to try to read/write data from 0×00000000, which the attacker can map to userland – and this finally pwns the box. There are some other highly technical details here so you can check your favorite mailing list for details. Here is a video of the exploit:

YouTube Preview Image

Brad was able to even bypass SELinux protections with this and LSM.

The fix for this is relatively easy, the check has to be done before assigning the value to the sk structure.
Fascinating research that again shows how security depends on every layer, and how even very expensive source code audit can result in missed vulnerabilities.

Categories: Security Tags: , ,

Using Google Voice in Amsterdam

July 21st, 2009 1 comment

his-masters-voice

I recently got my invitation to sign up for Google Voice (previously known as Grand Central) but was confronted with a couple of challenges. The first one being that the service is not offered outside the US yet. Since I’ve been living abroad for the last few years, I’ve gotten used to finding myself on the wrong side of the “geo-fence” that sites put up, using your IP address to determine whether you might be in the US or not. So to begin the process of responding to the invitation email, I needed to proxy my web browser traffic thru a server in the US (there are scores of anonymizing proxies and plain-old-vanilla proxies, but I’m lucky to have friends with computers with reasonably low latency ping times). Once that was done, I began the 4 step process of registering a phone number so that I could get on with finding out what GV can do.

So many choices for phone numbers, but fortunately they came up with an interesting combination of methods to choose an available number. You can search by zip or area code of course, and you can also search by text string. What better way to make your Google Voice phone number easy to remember or say to someone than to look for your favorite phrase or handle/call-name. Since physical location does not matter so much these days, why not pick a phone number that hails from “Pocahontas, Mississippi?”

The next challenge was a bit tougher, the service needs at least one phone number to ring you on when you get a call to your GV number. That number has to be a US number (due to the way calls are charged in the US versus Europe. [I found an interesting discussion about this and how it impacts the possibility of deploying GV in Europe.

With some blind optimism, I entered my US efax/j2 number, hoping that when they called it to request the two digit verification code currently displayed on my browser, they might provide an alternative method for me to verify that I own/use the phone number in question in their voicemail message. Nope.

So my options at this point were to either setup a Skype-in number for something like 15 euros for 3 months so that I could answer the automated GV phonecall, or ring a friend in the US, give his number and send him the verification code so that I could finish the registration process. You will correctly guess that I opted for the latter.

Finally I get to see the interface, check out the settings page, and read the little help buttons that explain exactly what the “do not disturb” checkbox does (this is something that I need to use of course, so that my friend does not get called each time I receive a call to my GV number). I have to say that there are only a few advantages to using Google Voice as an expat over simpler services like efax/j2. One of them, however, is pretty darn helpful. Voicemail transcripts. Although the technology still  has a ways to go before being 100% (most speech to text systems fail to get near 100% really, so who can blame them at this point), you certainly can get the gist of a message by reading the transcript. The transcribed words that the system is sure about are in black text, and the words which the system had doubts about are in a lighter shade of grey. And just like a karaoke machine, the highlighting of the message text in red underline as you listen to the audio voicemail message is kind of fun in it’s own right. What I’m not entirely sure about though is how or why the transcript engine/system decides that a transcript is not possible. The first GV voicemail message that I left for myself was marked “Transcript not available.”

Being the responsible beta user that I am, I immediately clicked on the feedback link to let them know of my question about the criteria under which a transcript might not be available. This took me to a nice little Google docs form for providing feedback. Ok, I’m game. A simple email form is not enough control over what folks put into the feedback, so I write up my question, I hit submit and get a cheeky little reply saying that an unexpected error occurred, they are rather embarassed about it of course, and that I can rest assured that geeks have been notified that the error took place. So much for my first interaction with the community of GV developers.

One more thing worth mentioning is the GV mobile application. Having a blackberry (or iPhone) means that I can (and did) download the GV mobile application, giving me the equivalent of visual voicemail for free on the service. This is nice. Of course if I want to listen to the voicemails, I need to download them first, but that is to be expected. The real time saving feature here is not necessarily being able to listen to my GV messages whereever I happen to be, but instead the sheer time saved by being able to see who the message is from and read the transcription in just a few seconds.

Oh and I suppose being able to send and receive SMS/text messages for free with my friends and family in the US is also a perk. They intend, I supposed, to eat some of Skype’s lunch in this kind of “messaging for free” model. I wonder if they plan to have an API exposed so that I can do this with a script? I admit that I’m not the real target audience subscriber for Google Voice, but I’m on board at the moment and am thinking that it has some nifty features (I didn’t even mention the widgets/gadgets that you can use where the person never knows what your GV number is… nice for security/anonymity).

Question: Anyone else trying to integrate GV into their point of presence without being in the US at the time?

Citrix HDX Mediastream for Flash Demo / Tutorial

July 14th, 2009 No comments

Citrix recently released a webinar by Derek Thorslund on Citrix Flash HDX, check it out here: http://www.citrix.com/tv/#video/635

I was pretty impressed when trialling Flash HDX myselfs… seeing is believing ;) The movies below are not mine, but linked from youtube.com. It’s worth trialling yourselfs, you won’t be disappointed.

YouTube Preview Image
Flash HDX Demo on XenApp

YouTube Preview Image
Flash HDX Demo on XenDesktop 3 (vs VMWare view 3)

Download the Technology preview of Citrix HDX Mediastream for Flash here.

Aladdin eToken and Windows 7

July 14th, 2009 26 comments

Check comments below for a solution to this issue! Thanks to Daniel Verbruggen!

While testing the Aladdin eToken (USB form Factor Smart Card) with PKIClient 5.0 on windows 7, I discovered that the certificates are no longer published into the “Personal Certificate Store”.
Which makes the eToken quite useless for now on Windows 7. I can however logon to the Windows 7 system using the eToken. But for all other purposes like VPN, website authentication etc it cannot be used since Windows 7 does not offer you to pick an certificate to authenticate with.
The Smart Card device forwarding still works, over RDP and also within XP Mode on Windows 7.

I dropped Aladdin an email and asked them for timelines and Windows 7 support, but until now, nothing but silence. I will update this post when I know more. In the meanwhile if you’ve got a workaround… please drop a comment.

etoken windows 7eToken and PKIClient 5.0 on Windows 7

etoken-xpmodeeToken and PKIClient 5.0 on Windows 7 with XP-Mode.

Related issues:

Cisco VPN, Windows 7 and eToken
Website Authentication, Windows 7 and eToken

Windows 7 UAC whitelist: Code-injection Issue

July 14th, 2009 No comments

Interesting insights on the new Windows 7 UAC… (http://www.pretentiousname.com/misc/win7_uac_whitelist2.html)

Win 7 UAC Code-Injection: Summary

On 5th February 2009 I wrote a proof-of-concept program to demonstrate a security flaw in Windows 7′s UAC, under default settings with beta build 7000 (also confirmed on 7022). This simply copied a file to Program Files without the user’s consent. In other words, it performed a file copy to a protected location, bypassing UAC.

“So what? All it does is copy a file?”

On 9th February 2009, to show the implications of being able to copy to System32 and Program Files, I created a second proof-of-concept program which uses the original exploit to open up a hole which in turn allows it to run any command or program with full elevation without itself requiring elevation or the user’s consent.

All of this is done without using the SendKeys or RunDll32 holes which were found earlier in February. It is done using a method which can attack almost any Windows executable and which is inherent to the changes Microsoft have made to UAC in Windows 7.

The proof-of-concept works on unmodified installs of Windows 7 beta build 7000 (and confirmed on 7022), both 32-bit and 64-bit versions, at default settings.

Setting UAC to its highest level, or using a non-admin account, will prevent the proof-of-concept from working by forcing it to display a UAC prompt. However, neither of those are defaults in the current Windows 7 betas.

As well as discussing the proof-of-concept code I argue that:

  • Microsoft should either admit that local process elevation is a problem and make Windows 7 more secure by default or admit that the Windows 7 default UAC settings are security theater (as they offer no protection) and anti-competitive (as they are inflicted on third-party code despite local elevation supposedly being a non-issue).
  • If there is to be a UAC whitelist, or the equivalent of one, then it should be up to the user which Microsoft and third-party software is on it. Users should not be forced to expose themselves to risks from software they do not use. Conversely, if reducing UAC prompts in frequently-used software is needed to stop people disabling UAC entirely then that applies to third-party software as much as to bundled software (especially once a machine is past the “setup” phase).
  • UAC itself was a good API and a good design that was given a bad name because of the way it was used by Microsoft’s application-level code (such as Explorer and Control Panel). Accordingly, the user experience of having UAC enabled could have been vastly improved by changing the application-level code without opening a huge hole in UAC.
  • Microsoft created these problems themselves and, rather than fixing them properly, have taken the easy way out, unnecessarily making UAC less secure in the process. At the same time Microsoft expect third-party vendors to do a better job than they bothered to do using the API which they themselves designed.

If you’re already shouting, “But it’s only a beta!” then there’s a section for you, too. :-)

And, for the record, I like Windows and much of what Microsoft do, in general. I even like UAC (the API, not the way it has been used). I wrote this page because I care about the platform not because I get a kick out of attacking something Microsoft have done. I call things as I see them. I attack and criticise some of what Microsoft do and I support and defend Microsoft other things that they do.

From: http://www.pretentiousname.com/misc/win7_uac_whitelist2.html

List of binaries which are allowed “auto-elevation” :

http://www.withinwindows.com/2009/02/05/list-of-windows-7-beta-build-7000-auto-elevated-binaries/

vSphere 4 Labmanager released

July 14th, 2009 No comments

VMware has released Labmanager for Vpshere 4. http://www.vmware.com/products/labmanager/

VMware vCenter Lab Manager is the ideal solution for IT organizations who want to provide self-service provisioning and management capabilities to internal teams. Policy-based access control reduces administrative burden for IT, lowers infrastructure management costs and empowers project teams to deliver applications more quickly and with greater agility.

Deliver Higher Service Levels and Lower Infrastructure Costs

Lab Manager offers unique capabilities to simplify management of the internal cloud for dev/test:

  • Self Service Portal – Provides on-demand access to a library of virtual machine configurations for end users while eliminating time-consuming provisioning tasks for IT by 95%.
  • Automated Resource Management – Allows dynamic allocation of resources in a multi-team environment, enforces quotas and access rights, and reclaims unused infrastructure services.
  • Enterprise Scalability – Provides long-term return on investment with a scalable architecture for worldwide deployment, best in class performance and seamless integrations with in-house and 3rd party solutions.
  • Categories: VMWare, vSphere 4 Tags: , ,

    Citrix Community Featured!

    July 3rd, 2009 No comments

    While checking the statistics of our blog I saw some referrals from http://community.citrix.com.
    We are listed as a Citrix Community featured website! We are very happy to see this, especially because this blog is very young! The first posts are from June 2009.

    We will try not to disapoint you. We have some very interesting projects comming-up which involve very mission critical XenApp and XenDesktop environments. We will post our hands-on experiences here! So stay tuned ;) !

    System Center Operations Manager: Version Control

    July 3rd, 2009 3 comments

    The current version of System Center Operations Manager 2007 doesn’t use version control for management packs. If you manage complex environments and use lot of custom monitoring, it would be nice to see when there is something changed and even better: easily fall back to your previous version in case an error slipped in. Another benefit of version control is you have exported management packs ready to import in other environments: i.e. between acceptance and production or between customers in case you are managing multiple customers like we do.

    I’ve written some scripts to automatically export all your unsealed management packs if there is something changed, write a version number and email the new managementpack with a summary of all differences.

    Another script will import your version controlled management packs (if there is something changed).

    Scripts are updated on 12-11-2009

    Read more…