Hai bisogno di privilegi elevati in fase di esecuzione se l'applicazione utilizza COM?

1

Non ho familiarità con le varie opzioni disponibili quando si ha a che fare con componenti COM. Un sistema legacy nella nostra azienda ha pubblicato un'API COM con una dll in modalità mista per consentire ai componenti .NET di interagire con esso.

Permette anche al sistema legacy di funzionare fuori dal processo.

Tuttavia, quando si imposta una semplice app di Windows, sembra che sia l'installazione che del normale utilizzo del programma necessiti di Privilegi dell'amministratore .

Questa è una conseguenza intrinseca nel decidere di usare COM? È qualcosa che dovremmo modificare nella registrazione COM? Non ne so molto, ma so che esiste una separazione a livello di utente / macchina.

O dovrei guardare al sistema legacy e supporre che la richiesta di privilegi di amministratore provenga da qualcosa che fa "dall'altra parte" della COM?

    
posta Tormod 13.12.2016 - 12:07
fonte

2 risposte

3

COM è il nucleo di uno standard di interfaccia binaria, che consente a applicazioni e librerie di diversi tipi di comunicare tra loro.

Anche se ha alcune funzionalità di sicurezza, è improbabile che le incontri. Con alcune eccezioni, la chiamata al codice COM è essenzialmente la stessa della chiamata ad es. Codice C da Python, o qualsiasi bind cross-language. Ci sono buone probabilità che ci siano componenti chiave .net framework che sono wrapper attorno ai servizi di base windows, collegati tramite COM, il che significherebbe che un'applicazione potrebbe usare COM senza che il suo sviluppatore lo sappia.

Non ho mai usato funzioni di sicurezza COM, ma penso che lo sapresti se fosse così. Le caratteristiche sono per la configurazione di sistemi utente / ruolo / sicurezza complessi, e questo dovrebbe essere ben documentato altrimenti sarebbe praticamente impossibile accidentalmente collegarlo tutto correttamente in un'applicazione.

Ciò che è molto più probabile è che i particolari componenti COM che stai utilizzando richiedono autorizzazioni elevate per fare qualsiasi cosa stiano facendo. La COM risale al 1993, nel frattempo è stata incorporata in un sacco di cose, molte delle quali non sono state riproducibili con autorizzazioni limitate, il che era di per sé un grosso problema quando Vista è diventato operativo, e in seguito. Questo è particolarmente probabile quando dici che hai a che fare con un componente legacy.

Dovresti assolutamente dare un'occhiata al componente legacy e vedere se sta facendo alcune delle classiche manovre di troublemaking come scrivere file nelle directory di sistema Program o windows.

    
risposta data 14.12.2016 - 07:15
fonte
2

COM ha un set di funzionalità di sicurezza . A seconda di come lo si è configurato, l'accesso al componente potrebbe richiedere autorizzazioni elevate o potrebbe non esserlo; il componente stesso potrebbe richiedere autorizzazioni elevate o non lo è, oppure potrebbe impersona un utente con privilegi elevati anche se lo chiami da un utente che non dispone di tali privilegi.

    
risposta data 14.12.2016 - 01:08
fonte

Leggi altre domande sui tag