I have 3 components in my system:
- COM Object - Provide Services to application that has func1(), func2()
- App1 - Trusted Application that need to use the com object funcs (1 and 2)
- App2 - Malicious application, not authorized to use func1(), can use func2() it is not harmful.
How can the COM Object can "authenticate" App1 and allowing it to use func1() and func2() and deny access to func1() from App2 ?
One way to do it is by allowing only Administrators users to access func1() but this is not a good solution because of security best practice: run with least privileged user. App1 will only need admin to access to the COM Object, any security hole in App1 will give the attacker Admin access.
How can this be solved?