Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Thick client application security (C# <-> SQL Server 2008 Express) .NET 4. Looking for good advice here

Posted on 2010-09-07
8
Medium Priority
?
1,104 Views
Last Modified: 2012-06-21
"Standard" thick client application.
Existing application, this means that major refactoring will take a lot of time. Application is moving from inhouse solution to product. Making it a 3-tier application is not an option at the moment.
I am not intending to overdo the security bit but I do not want to make really basic mistakes. This software will be located at customer locations and I need a good security architecture that we can stand behind.

SQL statements are currently written in the client code. All statements follows "Prepared Statement" format (named parameters), no string concatenations are made. That should prevent SQL injection.

Encrypted connection between client and database
Passwords will be hashed in the client and validated at the database
Sensitive information in SQL Server tables will be encrypted using SQL Server's encryption features
Client will check that the user belongs to a certain Active Directory user group
C# assemblies will be obsfucated, encrypted using some software intended for this use. I was looking at Remotesoft's Salamander but that is not an option anymore. Perhaps {smartassembly}

Here you can get some info on security issued concerning thick clients.
Client/Server Security Assessment and Awareness
Thick Client Application Security

Application has it's own login for the users and uses only one account with the database. Any ideas on this? How do I store database login at the client location? In the resource file?
Other considerations?
0
Comment
Question by:jerra
  • 5
  • 3
8 Comments
 
LVL 20

Accepted Solution

by:
Marten Rune earned 2000 total points
ID: 33617266
You don't

If you want security, deploy your thick application using AD, grant this AD group the necessary rights to the database. If you want to do this correctly, rewrite all sql statements in the thick application to use stored procs instead, with parameters ofcourse. Now grant execute to this AD group on the stored procedures.

You now hava a security solution that relies on kerberos authentication, should a user want to do anything unauthorized, he can't since all he can do is execute the stored procedures designed by you, the underlying tables are of limits for the users in this AD group.

Regards Marten
0
 

Author Comment

by:jerra
ID: 33617317
Thanks!
Ok, with your recommended changes made do you see other obvious security problems?

Just one thought that came to mind. What if the customer doesn't use AD? Just a single computer or two. (argh so much to consider)

0
 

Author Comment

by:jerra
ID: 33617365
Nevermind, we'll think of some way to bundle SQL Server with our software in these cases where the customer doesn't use AD.
0
WatchGuard Case Study: Museum of Flight

“With limited money and limited staffing, we didn’t have a lot of choices in terms of what we could do to bring efficiency. WatchGuard played a central part in changing that.” To provide strong, secure Wi-Fi access within the museum, Hunter chose to deploy WatchGuard’s AP120 APs.

 

Author Comment

by:jerra
ID: 33617383
I am assuming you mean that this type of architecture then uses SSPI connection type?
0
 
LVL 20

Expert Comment

by:Marten Rune
ID: 33618062
Quote: 'I am assuming you mean that this type of architecture then uses SSPI connection type?'

SSPI = integrated = kerberos = Yes! Ofcourse
:-)

Good luck. If you have any more questions, fire away.
//Marten
0
 

Author Comment

by:jerra
ID: 33620610
OK thanks.
When you wrote "deploy your thick application using AD" does it have to be deployed through Group Policy? Can't it be installed normally?
0
 
LVL 20

Expert Comment

by:Marten Rune
ID: 33622156
yea it can, but you are missing the point. the ad group both deployes the app and grants the rights to execute the stored procs. it makes a neat package

\\Maryen
0
 

Author Comment

by:jerra
ID: 33624382
Personally I am not too familiar with AD and how to deploy software using policies but I will pass the information on! Thanks a lot!
0

Featured Post

Cyber Threats to Small Businesses (Part 2)

The evolving cybersecurity landscape presents SMBs with a host of new threats to their clients, their data, and their bottom line. In part 2 of this blog series, learn three quick processes Webroot’s CISO, Gary Hayslip, recommends to help small businesses beat modern threats.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Tech spooks aren't just for those who are tech savvy, it also happens to those of us running a business. Check out the top tech spooks for business owners.
Phishing emails are a popular malware delivery vehicle for attack.  While there are many ways for an attacker to increase the chances of success for their phishing emails, one of the most effective methods involves spoofing the message to appear to …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…

886 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question