Security in UPS Software?
Anonymous Coward asks: "Does anyone have experience with UPS software that has an eye towards security? i want an alternative to APC's 'Powerchute for Linux'. I've just discovered that Powerchute opens multiple ports and there are no options to turn this 'feature' off. What is even worse is that APC Support has announced no plans to address the issue. This means that if your firewall is running Powerchute, you might have security issues. Another example of the lax security: Powerchute requests root priveliges on install and has a certain 3-letter
default password that anyone could guess within 5 minutes! Can anyone help with suggestions for alternative software?" Hmmm... I wonder if I accidentally put the default password in the text of this story.
I dealt with them years ago, when I discovered that their Powerchute software was vulnerable to DoS. I discovered it like a lot of people - saw port 6667 bound, thought "What the hell is this server doing listening on an IRC port?", fired up mIRC, and watched Powerchute die silently. Their response at the time was that they expected it to be behind a firewall, and didn't really consider network security to be their problem. I'd love to find the email, but it's been years and I don't know where I'd have put it. I guess they've changed their tune now, but I still haven't seen their products improve much.
Someone should set up a test box with this software and then sue APC once they get hacked....
-- Argel
My advice is to carefully firewall that machine with iptables. Block any network activity on the port that doesn't originate from the localhost. Also, be sure to filter spoofed packets.
Or simply write your own damn software. How hard can it be to snoop the traffic on the serial line that connects to the UPS and reverse engineer the protocol?
NUT talkes with APC and friends. It's GPL'ed and works.
http://www.exploits.org/nut/
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
ipchains/iptables/ ... are your friend!
Every server should have it's own firewall script anyway that only allows incoming traffic on a limited set of ports.
My root password is 1-2-3-4-5.
That sound like a combination that an idiot would have on his luggage.
-Peter
The solution is simple: Filter the ports, chmod -s some stuff, and call it a day.
The default password access page could easily be bypassed by anyone who knew the directory tree and the IP address of the workstation / UPS.
This was fixed a few weeks after the article came out for some reason.
Take a careful look at the software for ANY Web-controlled devices (including routers and toasters) for ugly surprises before running it on your network.
Tech Public Policy stuff
Large UPS's are almost always SNMP Rev1 Managed. No security. Add that plus the recent spate of attacks on high-level security providers who use unsecured SNMP...
Yes, it really is just a f%*kup waiting to happen.
"Personally I think I'll just risk some hackers seeming I'm down to 90% battery levels..."
Perhaps you also wouldn't mind some silly hackers shutting down the UPS completely, or performing self-tests, or putting it in maintenance bypass, etc., either. All of this can be done from powerchute.
"A terrorist is someone who has a bomb but doesn't have an air force." -William Blum
There is an optional cgi monitoring program that by default will listen on port 7000 I believe.
www.apcupsd.org
I use it and I do not think it opens any other ports except that one and as I said you don't need to have the cgi on. There is a powerchute clone. It is open source so if it does open a port up you can close this.
Oh the only other reason you may have ports is if you have slave machines and a master on one ups and you want the master to shut the slaves down. The slaves and masters all have to open communications so that they can be told to shutdown. I think in apcupsd if you have no slaves then this is not an issue.
Only 'flamers' flame!
I've written APC monitoring software. Just contact them for the communication protocol for the model you're using. When I was writing it, it was as simple as opening a com port and reading and writing characters. It was a bit screwy though because you'd query for a long string of info and if there was an alert during the response you'd get the alert interspersed with query data. But overall it's not hard.
- Sig this!
It is possible to wire your own cable; depending on your model of UPS and whether your computer asserts DTR on powerup you may not be able to achieve full functionality. Eg, http://www.eng.auburn.edu/users/doug/ups.html
You may also like to google for "APC" "wiring scheme", as quite a few people have tackled rolling their own cables and code for this problem.
Hey wait.. That's the combination on MY luggage.
Cool! Amazing Toys.
Debian has both "powstatd" and "powstatd-crypt" packages. It's also one of the easiest UPS monitors I ever tried to set up (a nice test script can show how your cable responds to various events on the UPS, so no more guessing). The powstatd-crypt version allows a master (with the cable plugged in) to notify slaves via an encrypted channel. That is, of course, optional.
Best of all, it's Free Software.
-- Don't Tase me, bro!
If you haven't already, you probably want to check out NUT, as mentioned above. I've never used it with a non-APC UPS, but according to NUT's compatibility list, it has support for quite a variety of UPS hardware.
If NUT doesn't support your hardware, you may find others there interested in developing a driver. You also may find it easier to get your UPS manufacturer to contribute a copy of its protocol docs to the project than to you individually.
Change the default password. It's easy and fun.
Firewall the ports you don't want it to use. If your firewall runs upsd, you're a moron, but you can still firewall those ports on whichever interface you want -- that's what a firewall does.
Now, let's ask ourselves: why would a program which can shut down your computer in the event of a power failure, and which listens on a serial port need root permissions to install???
Christ!
- A.P.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
GTRacer
- My root password is 1-2-3-4-5.
**********
Isn't that the kind of password an idiot would have on his luggage?
-Ed
Ed Wedig
Graphic design services
docbrown.net
GTRacer
- I've changed the password
Defending IP by destroying access to it? That makes sense, RIAA/MPAA. Go to the corner until you can play nice!
I started to read this, because I thought the article was about the software that UPS the shipping company gives large customers to allow entry directly into their systems.
Not some lame battery pack.