Dealing with MacOS extended file attributes

A year or so ago, I ran into a mysterious issue whereby I couldn’t add new machines to my .ssh/known_hosts file. A few days ago, after restoring from Time Machine “the wrong way” (copying some directories directly out of the filesystem on the Time Machine backup) I ran into them again.

Symptoms: I couldn’t add new host keys to my known hosts file, nor could I remove old ones.

Directory listing:

-rw-r--r--@ 1 me  staff  16588 10 Mar 20:59 .ssh/known_hosts

The trailing @ means the file has extended attributes. After some work with a search engine, I found out I wanted to use the xattr command, or perhaps “ls -lO@”. Either way, the attributes preventing me from modifying the files were:

com.apple.metadata:_kTimeMachineNewestSnapshot
com.apple.metadata:_kTimeMachineOldestSnapshot

Running the appropriate incantation of xattr -d on the affected files (it wasn’t just my known_hosts file) worked a treat.

Mein Name ist

My name is Mike Patterson. That’s almost what it says on my birth certificate; it actually says Michael. It also says Michael on my university ID card. There’s some other very similar variants on pieces of government ID, some include my middle initial or full name. Few people use Michael and fewer still even have reason to know my middle name. I’ve no real reason to use any other name, save for convenience – both my own, and for other people. Mike, as you might know, is a pretty common name, particularly amongst North American males, and doubly so amongst those of my generation.

Depending on context, I have a lot of other names to which I might respond. Depending on the context, I might also not respond, as they tend to be, well, contextual.

At work I’m usually just Mike, but I might be mpatters. That used to be my email address and it will still work, but I now tend to publish mike.patterson. I also use that for email addresses elsewhere, sometimes; my alumni forwarding account, for instance. Since my name is published in our directory as Michael though, some people do call me that, and I don’t bother correcting them. I might not immediately respond though.

On Twitter, I’m snowcrashmike, but nobody uses that anywhere else. Some very old IRC hands might know me as kraig, and I used that on MUDs. I also go by kraig on LiveJournal and Dreamwidth, and some people who met me first through those communities tend to use it as my name, even in voice conversations. In some web communities and games (Forumwarz, for example) I’m generally kraig or kraigu, but sometimes kraigus.

In the very long ago, I used to use BlackSpy as a BBS handle, but that was too overloaded when I switched to IRC. Nowadays on IRC networks I tend to use kraigu. My Steam name varies, I usually set it to earless wondercat, but I often play with it: earless wunderkatze, earless dyingcat (I do a lot of dying in online games), fearless wondercat, feared blundercat, beerless wondercat… well, you get the idea. But usually people call me just earless or wondercat in in-game voice chat, it makes things easier.

Sometimes, in certain circles, I might be just [. I don’t even remember what my FIDONet handle was.

I’m old enough that things like IRC were fairly new when I was coming of age, and young enough that identity is really a fairly slippery thing. I’m old enough to still value some privacy and think that for some people it matters quite a lot, young enough to realise that not using your real name doesn’t mean you can’t be found. I’m experienced enough to know that a middle ground is very difficult to find, wordly enough to know that different cultures approach “true names” in vastly different ways, and finally, practical enough to not really care what name it is that people actually prefer – I try to find out what it is, and use that.

I think realnameonly policies are unnecessarily invasive, don’t do what proponents claim they do, and insensitive. In short, I think they’re misguided at best, generally no better than security theatre, and at worst, just flat-out stupid. Nobody else has the right to tell me who I am, nor do they have the right to tell anybody else who they should be.

packetfu followup

I went back to packetfu today (see here for my first talk about it) for a large collection of pcaps I have (about 30GB worth) hoping to use it to help me quickly get an overview of what I’ve seen.

Fortunately, a lot of the hoops I had to jump through previously are now non-issues; using gem to install pcaprub and packetfu itself made it dead simple. Even more fortunately, I didn’t bother trying it on my Mac initially, guessing – correctly, as it turns out – that RAM usage would go through the roof. I ^C’ed my test ruby script, pasted from my first post on the subject, after it hit 7.5GB resident on my 8GB test machine. I have Ruby 1.9.1 on that box, so I don’t think there’s much more I can do to optimise. Sadly, I guess I’m stuck with tcpdump and looping shell scripts for the time being, and I’ll try to follow up with the author, although I don’t know what help I can provide.

What is a driveby download?

If you fall victim to malware, you might hear that the vector for infection is a “driveby download.” What is a driveby download, and how does it happen?

A driveby download is when you inadvertently or mistakenly download software. It may or may not actually execute, and it may or may not actually leave a persistent installation behind post-execution. Whether it does either or both of these things can depend on your user’s permissions on your computer, and also on the presence of software vulnerabilities. Driveby downloads may take advantage of vulnerabilities in your operating system or installed applications in order to perform a privilege escalation attack, where they can gain greater control over your computer than your current user actually has permissions for.

The most common way to fall victim to a driveby download is to visit an otherwise-innocent website that has been somehow compromised by an attacker. Like privilege escalation, there are many ways an attacker may do this, but the common feature is generally some Javascript in the page that causes your browser to redirect to a new website, often without you being aware that it’s happened. Javascript is not the only attack method; some attackers may also or instead use Java applets or ActiveX controls to deliver software.

Even if a driveby does not actually permanently install software, it can still cause damage. It may execute in memory only, and be used to send spam, conduct network scanning, or any other activity that a normal user of the system might perform. Some malware might, for example, connect to all your network drives and enumerate files you can see while logged in, evaluating them for confidential or personal information of a certain sort, and deliver those files back to the attacker.

Credential theft, mitigations thereof

It was with some interest that I read an Infosec Island post about forcing transport security whilst connecting to various websites, but I want to counter-recommend some advice given.

The information on STS is correct, so far as I know – I don’t use the plugin myself – but it was with a bit of horror that I noted the author recommended using a VPN as partial mitigation against this attack.  We considered and rejected this advice for our own advisory (my own nearly identical blog post on it is here) when discussing Firesheep.

A VPN may be configured with a split tunnel – that is, traffic destined for the organisation hosting the VPN goes through the secure tunnel, but other traffic does not.  In other words, a split tunnel VPN does nothing to protect you against credential theft of the sort being discussed.

Our own VPN will be configured in such a manner, which is counter to the practise at many large companies, but which we believe is the only workable way when scaling out to thousands of users with uncontrolled access points.  The last thing we want is for our VPN to be hammered by BitTorrent traffic the instant somebody forgets, or for people to complain to us that their home network stops working as soon as they fire up the VPN.

Before following Mr. Coates’ advice, find out how your VPN works.  The illusion of security is worse than none at all.