Web site security
Web site security got some press last month when it was revealed that hackers had broken into a system at the Tang Center and stolen thousands of Social Security numbers. The mechanism for that break-in was a “SQL injection attack“; without getting too geeky, SQL injection is an all-too-common vulnerability, caused when your application doesn’t check the input it’s receiving from the user. If the application doesn’t check the input, it’s often possible to trick the system into doing something it’s not supposed to do.
The important thing to note is that the machine which had the SQL injection vulnerability was not the same as the machine which held the social security numbers. The hackers broke into a low-security system, and used that as a platform to find and attack a high-security system. The trust relationship between the systems allowed the hackers to escalate their privileges on the insecure system and get at some very high-value data.
It turns out that there is a ton of code with similar vulnerabilities out there on web pages, including on the departmental sites we host on the college web server. It is almost guaranteed that PHP code written by someone who doesn’t understand the security implications will be vulnerable to this kind of attack. Our web server has been under almost constant attack for the past two months, and at least three different departmental sites have been compromised. Once the site is compromised, the hackers attempt to escalate their privileges (looking for confidential data), and try to use our server to support spamming, phishing, and other nefarious activities. All of these things are more likely to work when the activity is coming from a berkeley.edu (trusted) machine than when it’s coming from an ultranet.ru (suspicious) machine.
We’re doing what we can to reduce the ability for these hackers to escalate their privileges through our servers, but we have little control over the quality of the code on departmental web sites. Our server hosts web sites for dozens of departments (75 unique domains at last count), and once a department is set up on our server, it can write and upload whatever code it wants. The people running web sites for departments range from serious geeks to relative novices, so some of them are just fine in terms of security, while others are wide open.
If we see that you have vulnerable code that is being attacked or exploited, we’ll contact you and ask you to fix it. Many departments who have vulnerable code don’t have anyone on staff who knows how to fix it–the fix is usually not very difficult, but it does require understanding of the issues. If you don’t know how to deal with the issue, our web team can also fix security problems, charging on an hourly basis.
