Game Development Security

O

oddball6a

Guest
I have been trying very hard not to rant about this subject this week. Very hard indeed. My own suppressive instincts have come to thier end so I will write on this subject once, and hopefully in a place that it may accomplish something constructive.

For the past week, we in the general gaming community have heard from countless sources including Gabe himself that Half Life 2 source code was leaked. Some of us (being the curious, sometimes malicious souls that we are) have actually gotten our grubby little paws on the code, even if many of those who have it could never understand it. At first, we all felt shock, i mean who had ever heard of an event like this striking a game developer this openly before? And then incredulity, i mean its not like its every day that a Half Life 2-caliber project (arguably one of the highest-profile, most-anticipated projects in the history of electronic gaming) has a security breach of this nature. And finally, curiosity and anger roll in. Who would be willing to interfere with such a project? Who would be willing to risk exposing themselves to criminal sanctions in order to get a bit of source code? Why? And, most importantly, how the heck could they do it? I mean, a huge developer like valve with such a high profile project HAS to have great security, right?

Sorry, folks, the unfortunate reality is that all is not what it seems.

Having been a gamer most of my life, I know that most of us expect that game development companies know what they are doing all the time. We dont have to worry about the stupid realities of commercial business infringing on our awesome gaming projects. Who cares about corporate espionage until it strikes close to home? We automatically assume that our favorite gaming house has these bases covered, that they know how to take care of thier network and thier assets. Because of our own fan-boy statuses and the high profile nature of the project, we ascribe virtues of safety, security, and such to a company's resources without really knowing.

The last year and a half, as I have gradually come inside the industry to work Information Technology has really been an Eye opener for me. From what I understand and can sift out of reports, and what I know about the industry today, I can tell you that it may not be entirely the fault of the grunt day-to-day IT guys in the Network Operations Center, the Network Administrator's cubicle, or the Datacenters which are entirely to blame. Indeed, some of this security breach must ultimately be laid at the feet of management and the tendency for Game Developers to overlook internal security.

Most game developers these days employ a (relatively) simple networking model where there are a few points of external access. On these points of access, there may be security devices in the way of state-based packet inspection algorythms, bastion hosts to handle individual functions (mail proxy server, HTTP proxy, instant message proxy, etc), protocol-based directives (certain traffic is restricted to certain network segments or machines), and Network Address Translation (using non-publicly-routable IP addressing for internal infrastructure) to protect the internal network from external harm. Few companies these days pay particular attention to securing individual development teams, the myriad internal computing resources updates, or penetration detection within a network. Fewer still actually dedicate IT resources to network security.

Im not saying that this is criminal or that I think that people who have this problem are idiots, I am simply saying that it IS a problem which is often not seen until it bites people in the delicate rear such as we see here. I mentioned a minute ago that the IT professionals which do the actual day to day work may not be entirely to blame. Most game development firms dedicate a very small expenditure to IT Departments because the IT department is probably one of the worst capital costs for a firm from which it is guarenteed there will be little or no revenue stream unless the company plans on offering application hosting to business partners or investing in a similar service not central to the corporate product line. This lower level of resource spending means that some places have to be cut short. It may mean 1 security analyst instead of 2 or 3. It may mean that the Network Administrator or Internetworking professional has to take over non-dedicated security duties in addition to primary function. This tends to compromise company security. Further, software nowadays is so difficult to patch and keep current particularly accross many desktops that you can scan a particular network and find at least a 50% difference accross your enterprise infrastructure in versioning of desktops, productivity software, and internet related applications. The aforementioned lack of resources means that companies often cant dedicated IT support time to updating machines accross the enterprise or deploying a form of Operating System/Application version management.

So, we end up with situations like the one that Half Life has been hurt by. An outdated application (Microsoft Outlook) was installed on a sensitive machine (apparently Gabe's) which had direct access to sensitive company information (the Half Life 2 source tree). There was no internal security on the source tree that we know of. There was no internal security on the machine that we are aware of. There was no segregation or sequestering of Developing network segments. And finally, it is apparent there was no version control software for keeping sensitive machines up to date. These multiple faults all contributed to the success of the recent attack and the compromise of sensitive information.

I, for one, hope this not only serves to make Valve aware of the need for information technology security, but between this attack, the recent Email worms, and blaster, more enterprises and particularly game developers take heed of recent events.

How do I think this could have been prevented? Implement multilayered security. Try to do some security forecasting for major projects. Allow a larger margin to be spent on IT resources, it pays off in the long run in avoiding events like this even if no revenue from these expeditures are showing on the balance sheet. Isolate development partially.

Ok, first, the external security. Use enterprise-level network address translation to segregate your internal infrastructure from the internet. Use protocol based proxying. Put high profile externally accessible machines on a DMZ. Use active intrusion detection (cisco makes good software for this, checkpoint used to be pretty good but are now falling slightly behind in terms of implemented technology.)

Preplan your network model. With NAT, you can build a network structure you need. Spend the extra money on layer 3 switches and build a flexible network which assigns entire ranges of class C addresses to individual company functions. Remember that using NAT with the 192.168 range allows you to use 2^16 addresses since the range is Class B. You have plenty of address space at little to no cost, so spread it around. Management should have thier own subnet. Accounting/finance should have thier own subnet. Each Development team should have thier own subnet. Common Corporate infrastructure should be on its own "server" subnet. This allows more flexibility with routing and securing access between corporate areas. Yes, it takes a little more to set up, and some foresight, but it makes events like this more difficult by segregating access points. Compromise a machine in finance and there shouldnt be any danger to development teams or development servers.

Many people in the past week have been running around "why werent the developers on a LAN"? Well, most game companies are not willing to accept the loss of productivity and the annoyance that complete segregation entails. What could have been done (since theoretically our developers are on thier own network segment, RIGHT?) is implement a segment-specific proxying and filtering. Certain common network assets are accessible, very little else can get in or out inside the company. No one that is not DIRECTLY related to that project's development has the ability to penetrate the network isolation. However developers still have internet access, can still email, and still have a reasonable level of security.

Implement product version management. There are online services to assist with this as well as stand-alone internal network products which work as a client-server system, downloading updates to a central server and then deploying them internally to company machines. Something as simple as this could have saved all this time and trouble. When gabe connected into the network, the version management sensed the network connection, requested the latest update check from the central server, and just like that outlook security fixes are patched and gabe is asked to please reboot.

There is no silver bullet, no perfect security solution short of an Adaptive Packet Destruction Filter (a pair of wire cutters for those of you not familiar with internetworking). People who are absolutely determined will eventually penetrate something. Its the job of IT and IT management to limit that exposure and make the network penetration as difficult as possible with as little impact as the IT department can possibly get away with.

This wont affect game sales but it definitely cost Valve some reputation, a huge dose of embarassment, and put thier shader routines into the wild. Valve failed this time. Dont fire your IT grunts. Hire a couple new ones. Buy some version management software, plan for an infrastructure rebuild after this game releases. Make sure it doesnt happen again.
 
wow oddball6a, that was one hell of a post, are you touting for a job to sort out the network security at VALVe?

;-)

I suspect VALVe will already be implementing some of what you mention, especially having someone dedicated to IS management.
 
A really good post, something else than some 12 year old ranting "why d1d th0se n44bs h4\/3 a pc to teh inrtnet?!?!11!?"

So basically what you're saying is that to save money, security wasn't what it should be?
So have they neglected their security duties and would a company as Havok have a chance in a lawsuit?
 
Originally posted by PvtRyan

So basically what you're saying is that to save money, security wasn't what it should be?
So have they neglected their security duties and would a company as Havok have a chance in a lawsuit?

"Neglect" thier security? I wouldnt say so. I would be willing to bet that thier security was on par with the rest of the industry. The problem here is that thats not saying much. The higher profile the project is, really the tighter the security should become. Particularly on a project with such huge investments in it. They have had 5 years with this project. A mere week or two could have been taken with proper planning ahead of time to implement security. Even padding that a standard 50% to account for the screw-up factor everpresent in IT, 3 and a half weeks is reasonable to make sure that your primary project is not compromised. During that tiime, the outages would be only intermittent and most of the hassle would be on the IT department anyway. And it doesnt have to be all at once, staged network migration is possible as well.

As for whether or not they were "negligble" in legal terms, without more details of the internal security setup, its impossible to tell. They may have taken "reasonable" percautions, just werent careful enough.

Realize that unless you completely remove internet access from a machine it is never 100% secure. If people ARE dedicated enough, they will get in. At that point it becomes damage control. Software version control and proper network segmentation could have lessened the impact of this breech but (apparently) neither was there.
 
Gabe:
"Hmm, I just got an e-mail from an out-of-office employee with a file he needs me to add to SourceSafe. I'll need to get them from my e-mail computer... to my "super private internal network SourceSafe-access computer"... let's see, do we have any floppy discs around? no? um... maybe george in art has an extra CD-R I can borrow... ok now... aw crap, my 'secure' computer has a CD burner on it but my 'internet' computer doesn't. For chist sake. ok let's see, i'll send the whole company an e-mail asking which of them have a CD burner on their 'internet' computer, and then e-mail it to them, and then get them to burn it, then take it back to my 'secure' computer.... ok, whew, it's all done, and it only took me 20 FRIKING MINUTES to copy a damn file over."
 
Originally posted by dscowboy
Gabe:
"Hmm, I just got an e-mail from an out-of-office employee with a file he needs me to add to SourceSafe. I'll need to get them from my e-mail computer... to my "super private internal network SourceSafe-access computer"... let's see, do we have any floppy discs around? no? um... maybe george in art has an extra CD-R I can borrow... ok now... aw crap, my 'secure' computer has a CD burner on it but my 'internet' computer doesn't. For chist sake. ok let's see, i'll send the whole company an e-mail asking which of them have a CD burner on their 'internet' computer, and then e-mail it to them, and then get them to burn it, then take it back to my 'secure' computer.... ok, whew, it's all done, and it only took me 20 FRIKING MINUTES to copy a damn file over."

20 minutes to copy a file > 2 and a half weeks of embarassing entreaties to the community, an FBI investigation, untold lost income due to cheat penetration, etc

And in reality, this would not be the probelm you envision. Part of the job of IT is to get people the hardware and resources to get the job done. If network security changes means that gabe needs a CD burner, than they get him a CD burner.

In reality, it wouldnt be that extreme. He would still be able to interact as normal and such an extreme example would hardly be called for. Even so, if 20 minutes of effort is what it takes, then that is what it takes.

!(20 minutes) == public corporate embarassment
 
I'll give ya a thumbs up just for the page length if anything.
 
Well spoken.

/me calls and fires the network admin at valve
 
No wait, here's a better one:

Valve's Accountant/Controller: "Ok, the 50 'private network' worstations, plus the new network hardware, setup fees, maintenance fees to the vendors, and time lost to inefficiency are going to cost us around $300,000 this year, and around 100k each year afterwards. So to maintain our current financial outlook, we'll need to lay off about 4 or 5 employees. So, which of your friends do you want to sack?"

People act like investing a load of cash into security and infrastructure is no problem. "Gosh, why didn't Valve think of MY ingenious idea?!" Give it a rest. Security costs money. I work at an $80 software company which has, from what I have read of Valve's network, a nearly identical level of security. There are few software companies on the planet who feel it's worth enough to invest in a private network for their source code.

Obviously in HINDSIGHT, Valve should've had better security. If a stray bullet goes through the window of your Ford Tempo and you die, then YOU SHOULD'VE INVESTED IN A $200,000 BULLETPROOF CAR. You can't base all your decisions on what might possibly maybe could happen, you have decide how much risk you're going to accept.
 
Originally posted by dscowboy
No wait, here's a better one:

Valve's Accountant/Controller: "Ok, the 50 'private network' worstations, plus the new network hardware, setup fees, maintenance fees to the vendors, and time lost to inefficiency are going to cost us around $300,000 this year, and around 100k each year afterwards. So to maintain our current financial outlook, we'll need to lay off about 4 or 5 employees. So, which of your friends do you want to sack?"

People act like investing a load of cash into security and infrastructure is no problem. "Gosh, why didn't Valve think of MY ingenious idea?!" Give it a rest. Security costs money. I work at an $80 software company which has, from what I have read of Valve's network, a nearly identical level of security. There are few software companies on the planet who feel it's worth enough to invest in a private network for their source code.

Obviously in HINDSIGHT, Valve should've had better security. If a stray bullet goes through the window of your Ford Tempo and you die, then YOU SHOULD'VE INVESTED IN A $200,000 BULLETPROOF CAR. You can't base all your decisions on what might possibly maybe could happen, you have decide how much risk you're going to accept.

I work IT for a game development company, actually. I understand the costs involved. Before working at my current position, i was a server technician for Manugistics working with arrays of Dell Poweredge servers. I understand the costs involved here and frankly they are less than you think. With proper planning, a phased changeover can take place in the normal replacement of networking hardware. You can implement network segmentation slowly and version control is just software to be installed on desktops. Yes it takes time but not that much per desktop and the licenses are cheap compared to things like this.

Most of what I noted is just reconfiguring existing enterprise hardware or upgrading said hardware, a process which is done on a continuing basis anyway with corporate infrastructures.

And frankly, its not like valve has cash troubles, so they can afford to drop some money into IS without hardly blinking. If investing $200,000 into hardware changes, software implementation, and IT time (which you pay for anyway so thats not really an added cost) means that you properly protect a $50million asset, i would think it would be worth it, wouldnt you?
 
Originally posted by oddball6a

!(20 minutes) == public corporate embarassment

Well great, why don't you get in your shiny time machine and tell Valve someone's trying to hack them with an Outlook exploit!

Like I said, you look really smart in hindsight. But it's all about the odds. Historically, what are the chances that source-code will be leaked through a standard network? How many software projects have ever had their source code leaked because of lax network security? 1 in 10,000? Let's say 1 in 1000 just to be silly. What is the financial loss to Valve now that the source code is out? Let's say they waste a million USD in preventing cheats and in legal issues. What is the cost of creating a separate network for development? Llike I outlined above, around 300k.

THUS
There is a 1/1000 chance of them losing 1 million USD. To negate that chance, they would need to spend 300k. $1,000,000 / 1000 = $1000. Not worth the cost.

"Valve should've had a secure network!", yeah that sounds really great AFTER we all know they were hacked. The odds of getting hacked however don't support that decision.
 
Originally posted by dscowboy

"Valve should've had a secure network!", yeah that sounds really great AFTER we all know they were hacked. The odds of getting hacked however don't support that decision.

I am sorry to say it but you are mistaken again. The odds of something being hacked are DIRECTLY proportional to its profile, particularly in internet media. In addition, the odds go up markedly when there are already known security threats being comitted (e.g. denial of service attacks).

We know that this is a high profile project. Arguably one of the highest profile in history just by its sheer impact on the gaming world.

We know that valve was getting some problems before in the form of DoS.

We can assume that this is not the first incursion attempt that valve has had to face.

We know that the problem of version control and version exploitation was recently made high profile by blaster and other recent email worms.

We know for sure that the network infrastructure was not changed to address these problems.

We know there was no intrusion detection systems in place to detect unwarranted traffic. (Something that should be there as a matter of course for a company this size, anyway.)

To say that there was no way to know before hand is untrue. As an IT professional myself, I can tell you that the default stance for a Network Administrator or IS Analyst is to ALWAYS assume something is compromisable and to continue to secure it as much as you can.

I would also like to point out that this rant is leveled at the entire game development industry, using valve as a recent example. Valve's penetration was much deeper than most such attempts get and had a HUGE consequence. It was definitely a very extreme "hack" or "incursion" or whatever you want to call it, which is why it has drawn such attention. Particularly more so for the fact that it was done eploiting a problem that has been in the open media numerous time and had been given ample opportunity for IT to take care of.
 
Originally posted by oddball6a
I work IT for a game development company, actually.

I've worked in IT and developent/analysis for five years, I am also familiar with the costs.

If investing $200,000 into hardware changes, software implementation, and IT time (which you pay for anyway so thats not really an added cost) means that you properly protect a $50million asset, i would think it would be worth it, wouldnt you?

The value of the asset is irrelevant, it's the amount of money that Valve will LOSE because the source code was copied, that's the issue. If they stand to lose $1,000,000, and the chances of geting hacked are 1/1000, or 1/100, or even 1/10, $200,000 is not worth it.
 
Originally posted by oddball6a
We know that this is a high profile project. Arguably one of the highest profile in history just by its sheer impact on the gaming world.

Certainly because of the attack, other high profile game developers realize the chances of being hacked have greatly increased. They will have to take that into account when making their security investments.

Particularly more so for the fact that it was done eploiting a problem that has been in the open media numerous time and had been given ample opportunity for IT to take care of.

It's quite possible (someone correct me if you know otherwise), that Valve does not have a single dedicated IT employee at all, or just has a single guy. I worked for a $50m software company that had no IT department whatsoever. Certain individuals were tech savvy enough to setup and admin servers, but that was not their job.
 
The value of the asset is irrelevant, it's the amount of money that Valve will LOSE because the source code was copied, that's the issue. If they stand to lose $1,000,000, and the chances of geting hacked are 1/1000, or 1/100, or even 1/10, $200,000 is not worth it.
I disagree because it goes beyond just this project. Information security is paramount when you have a product including highly prized assets. In this case, source code. We know that people seek to use it to cheat. We know that people seek to use it to create modifications. It is therefore something which certainly needs to be secured.

If they had moved with a little bit more attention to security in the setup of thier network and such they would not be contemplating any infrastructure changes at this point because the security features would have already been set up and would hence be transparent at this time.

Now, we are talking an investment. And really it is up to valve to decide whether or not it is worth a significant cash investment to protect what is probably one of the most lucrative projects in video gaming history.

Remember that segmented security and version control also benefits beyond just every day hacking. These items can also assist in virus control, browser storms, and all manner of other day to day network and desktop related issues.
 
Originally posted by oddball6a
Remember that segmented security and version control also benefits beyond just every day hacking. These items can also assist in virus control, browser storms, and all manner of other day to day network and desktop related issues.

Obviously they're using sourcecode version control, what made you think otherwise?

If I had been in charge of IT at Valve, I definitely would NOT have created a separate, secure network. Aside from trying to justify the investment, having users yell at me everytime they need to transfer data from one network to the other would get old really quickly. I certainly would have, however, done my best to keep all the workstations and servers current on patches, which appears to have been the source of the problem.
 
Originally posted by dscowboy
Obviously they're using sourcecode version control, what made you think otherwise?

If I had been in charge of IT at Valve, I definitely would NOT have created a separate, secure network. Aside from trying to justify the investment, having users yell at me everytime they need to transfer data from one network to the other would get old really quickly. I certainly would have, however, done my best to keep all the workstations and servers current on patches, which appears to have been the source of the problem.

I would hope they are using sourcode version control but i think you misread my post. I was talking about some of the positive side effects of subnetting, not anything related to source code version control. And the entire time I have stated that the development network should NOT be isolated. It just needs to be logically protected. This includes subnetting. You can do subnetting and then secure subnets without completely eliminating file transfer accross networks. What you usually have is a proxy machine between networks which both sides have access to for file copying between teams.

For example, gabe is on the development subnet. Gabe needs to give files to finance. Well, gabe has a few options. He can email them if they are small enough. The email goes through a subnet proxy machine and then is sent on to the corporate recipient. If the file is larger, he could copy the file to our theoretical HL2_Team1 server THEN email finance to grab the file. The routing has been set up so that requests from RPC, etc from the finance subnet are only allowed to go to the HL2_Team1, HL2_Team2 servers. So the person from finance grabs the file. Problem solved, security not breached. Easier than tossing a CD by hand, even though it does mean an extra step.

I've seen it work. I've used it before. It works in most cases. Since our theoretical HL2_Team1 server is a bastion host, its been pretty well locked down and is routinely monitored. Its not that difficult and it doesnt have to make life as tough as you make it out to be.
 
keep going u two, im learning more here from ur conversation, then doing my homework :D
 
But it doesn't solve the problem Valve had, as it appears.

1) Gabe's machine is compromised via outlook exploit.

2) Remote desktop control software is secretly installed on Gabe's machine, along with a compression utility.

3) Hacker, as Gabe, accesses SourceSafe, copies the HL2 source tree locally, compresses it, and FTPs it to himself.

Unless SourceSafe is completely inaccessible from the machines people use for internet access, the hacker still would have gotten through.
 
Originally posted by dscowboy
But it doesn't solve the problem Valve had, as it appears.

1) Gabe's machine is compromised via outlook exploit.

2) Remote desktop control software is secretly installed on Gabe's machine, along with a compression utility.

3) Hacker, as Gabe, accesses SourceSafe, copies the HL2 source tree locally, compresses it, and FTPs it to himself.

Unless SourceSafe is completely inaccessible from the machines people use for internet access, the hacker still would have gotten through.

As i noted before, this post was intended for more than just this incident. Application update management would have addressed this issue as I noted up top. Intrusion detection might have tripped over this. And if the devs were disabled from standard FTP protocol access, that might have made a difference (at least made them use a different port). Again. Want to FTP a file? Copy it to the shared server, then upload it/transfer it from outside the secure segement.


The subnetting implementation and other stuff related to the network security model are directed more at internal security and those principles extend not just to valve but beyond them to any other organization, in reality. They are more along the lines of ways to minimize internal risk.
 
Originally posted by oddball6a
As i noted before, this post was intended for more than just this incident. Application update management would have addressed this issue as I noted up top. Intrusion detection might have tripped over this. And if the devs were disabled from standard FTP protocol access, that might have made a difference (at least made them use a different port). Again. Want to FTP a file? Copy it to the shared server, then upload it/transfer it from outside the secure segement.


The subnetting implementation and other stuff related to the network security model are directed more at internal security and those principles extend not just to valve but beyond them to any other organization, in reality. They are more along the lines of ways to minimize internal risk.


I agree with your subnetting ideas. Definitely can create a maintenance headache, but a good system in the long run. And yes, I also agree that if the FTP ports had been blocked from Gabe's internal machine by firewall, the hacker would've had a hard time getting the files out. Could've e-mailed them of course, but creating anonymous e-mail that would accept a file that large would be difficult.
 
Originally posted by dscowboy
I agree with your subnetting ideas. Definitely can create a maintenance headache, but a good system in the long run. And yes, I also agree that if the FTP ports had been blocked from Gabe's internal machine by firewall, the hacker would've had a hard time getting the files out. Could've e-mailed them of course, but creating anonymous e-mail that would accept a file that large would be difficult.

I wonder what valve DOES do. I realize they arent about to publicly announcer thier actions in this matter but it would be nice to see where this goes in terms of dedicated IT staff and IT reorganization. This is one of those "textbook cases" that should serve as a reminder of security principle for training and IT setups in future.
 
Back
Top