Hello,
Working with Sugar for quite some time I have noticed a number of big and small security items and issues which worry me a lot.
Maybe someone of the Sugar team can comment on them and hopefully most of my worries are unbased.
1) PASSWORD PROBLEM
What does someone prevent from just guessing a users password?
When someone uses Sugar for a email campaign then he usually sends out thousands emails that all include the internet URL of our used Sugar installation.
So after one email campaign thousands of people know the URL of this Sugar installation. What prevents a competitor from just trying to guess the password of your users?
As far I a saw Sugar does not much to protect itself against this.
- There is no password policy like minimum password length that can be enforced.
- Users are not forced to change their password
So the admin does not know the user have updated their passwords at all or still have "pass" or "changeme" as password.
- I haven't seen a method that prevents someone from guessing huge numbers of password.
Writing a little script that tries to login and that guesses passwords is a no brainer.
Most kids will write something like this in a few minutes.
Yes, Sugar logs failed password attemts but once someone is it - its a plain simple to remove this logs and erase all traces.
Its clear to us that writing a small script that guesses password is very easy to do.
Once you got access with an admin account (as many people will leave their admin user called "admin" so this is propably no big deal), you can install a small module that patches the system with a backdoor and that will remove all your traces.
And if someone does this on the Sugar system of a competitor then he will see all the quotes and communiations with customer. I'm sure many will find this information very interesting and usefull....
I think it would be better if Sugar would povide the following:
- Per default easy seperation of internal and external Sugar
For Sugar systems that are installed on the internet I want to be able to protect them with something like a client side SSL sertificate or password and still be able to run an email campaing.
I want to be able to run an email campaing without publishing the URL of my company Suger system and login page to the world.
-Some sort of password strength enforcement
We all know that users are lazy.
Without some enforcement most password will be just the first name of the user or of his wife. Such simple password provide us no protection at all! Guessing and breaking into so simple password is only a matter of minutes.
- Some sort of login disabling and email warning on break in attemts.
We need some security measument that disables the login after a certain number of failed attempts. With the current system I can write a SOAP client that tries hundreds of password per second. When I run this over the weekend I'm nearly certain to get in someones Sugar install. And once I'm in, I have no problem to remove all my the traces and logs.
- Remove everything that help attackers
Per default Sugar writes its logfile in the main webserver folder.
On a default Sugar installation the whole world can download this logfile.
Amoungs other information this logfile will contain the login names of people using this Sugar installation.
2) Document Security
As far as I can see the current security system of Sugar is fully based on obscurity.
All the documents are fully accessable to the webserver.
As soon as the id of an Sugar document is knows its fully accesable to anyone.
Basicly everybody worldwide can read the documents in Sugar when the id is known.
Neither password nor login are needed for this.
Isn't this a big conseptional weakness?
You could easely fix this if Sugar would not store its documents in the root webserver folder but if Sugar would store the files in a parallel folder which is not directly accesable with a browser. This way you could allways controll that on access the rights and permissions to see the document are all fullfilled.
3) PHP file security
The "index.php" is the entry page for mostly all user accesses.
Depending on the access numberous other PHP source files will be loaded and executed by this file.
All hunderds of different PHP files are placed in the webserver folder they are all directly accessable with a webbrowser.
Direkt loading and of these files is or course a big security risk as by directly accessing the files, people can easely go around the login and password routines and create havoc. Each of the files tries to protect itself against direct loading by checking some status variables.
But how secure is this?
There are hundreds of files..
If this check is forgotten in just one you can have big security issue.
A file of thrid party module could accidently forgets to protect each file against this.
So certainly don't check all available Sugar modules to prevent such a case, do you?
And what if if a user accidently runs his webserver in a backward
compatible mode that allows direct setting of variables from the browser.
Will this protection then work at all?
Isn't having include files laying the main webfolder the number one amateur error, which broke the neck of so many home grown php programs?
Wouldn't it be much more simple to move all PHP source files and include files out of the folder which is directly accesable for the webbrowser?
4) Constant write access to all the source files needed
Per default Sugars PHP files will be fully writeable by the webserver.
And Sugar requires that all the PHP source files are writeable to be able to install a patch. I have to admit that this requirement scares me a lot.
That the files are writeable is no risk as long as all the PHP files are error free.
But I saw "hickups" in Sugar file upload routines creating "C:" directories and "c:documents" folders inside the main Sugar folder. I don't know how one of our users was able to produce this hickups and if they were created SOAP or normal Sugar uploads as was not able to reproduce them myself. But I think having all the Source files writeable is a big conceptional weakness.
Couldn't any bug in a upload routine this way easely be exploited to take over the System?
I'm really concerned by all this thoughts.
I hope that I'm somewhat wrong with my thoughts and if not I hope that you look at the items.
Many thanks in advance
Gunnar


LinkBack URL
About LinkBacks



Reply With Quote


Bookmarks