2

I'm in a discussion with Information Security team about a legacy Desktop Application accessing a SQL Server database directly using LINQtoSQL.

The Information Security team insists that there are many security vulnerabilities in a Desktop application and a SQL Server with open port to network communication.

As a +10 experience developer I can only list this risks involved:

  1. Unsigned Application: company's authority can't be certified allowing attacker to create a copy of the app with malicious codes.
  2. Unobfuscated code: the attacker can decompile the app change its code an inject malicious codes.
  3. Open port: can be exploited with an stolen SQL SERVER user + password to Data leak

But I know how we can mitigate all this issues instead of spending the enormous effort to migrate the whole desktop app (+8 years old) to (intranet) web app.

Do you guys have further arguments against this client server architecture?

multithr3at3d
  • 12,842
  • 3
  • 32
  • 43
  • It's not about making the desktop app secure; the backend (SQL server or whatever) needs to be secured 2. See my answer and the answers in the other question
  • – multithr3at3d May 02 '20 at 21:25
  • Unless the user has to enter a password each time the app connects to the database, you are storing the information necessary to gain access somewhere. This is, I think, the main issue. That information can be stolen... it doesn't matter if that's stored encrypted because the program is either sending the password encrypted, or decrypting it, which can be reverse engineered or taken from memory. (if storing on user's machine it's a little safer to encrypt using machine's serial number or something like DPAPI). – browsermator Jan 18 '23 at 22:38
  • You also want to keep the number of users and devices with access to the DB down to a minimum. Intranet would have probably 2 or 3 users accounts that can access the DB directly, the app pool identity and maybe an admin or 2.... and of course only one machine can access the DB, the one hosting the intranet. – browsermator Jan 18 '23 at 22:39