Impedisci l'esecuzione di applicazioni specifiche come amministratore


13

sfondo

La maggior parte dei toolkit di installazione ha la possibilità di avviare, automaticamente o in altro modo, programmi esterni dopo l'installazione. Ciò viene spesso visualizzato nel programma di installazione tramite opzioni come "Mostra file Leggimi" o "Avvia programma".

Problema

Il problema è che molti di questi programmi di installazione sono scarsamente codificati e non rilasciano le autorizzazioni in modo appropriato. Ad esempio, l'avvio automatico dell'applicazione o l'apertura della home page dell'applicazione nel browser, spesso comporta l' avvio dell'applicazione o del browser con i privilegi di amministratore dell'installatore o un livello di integrità UAC "Alto"!

Ciò ha il potenziale per aprire violazioni della sicurezza, aprendo l'applicazione installata o una pagina Web (e possibilmente componenti aggiuntivi del browser), che ora sono in esecuzione con autorizzazioni elevate.

(Questo è il motivo per cui consiglio vivamente di non scegliere mai le opzioni di avvio automatico durante l'installazione del software.)

Domanda

Esiste un modo per impedire che determinate applicazioni (come un browser Web) vengano mai avviate con privilegi di amministratore, ovvero un privilegio di rilascio automatico basato sul nome del processo?

windows  uac 

2
Mi piace molto questa domanda. Ci sono prodotti per aumentare i diritti per i processi basati su percorso, hash, ecc. Mi piacerebbe vedere qualcosa che abbandona automaticamente i diritti per, per esempio, iexplore.exe, firefox.exe, chrome.exe, ecc.
Patrick Seymour

1
Se il programma di spawn ha i diritti di amministratore, non potrebbe semplicemente annullare qualsiasi cosa ti venga in mente ed eseguirlo comunque? :)
Ƭᴇcʜιᴇ007,

1
Immagino che potrebbe, ma sarei sorpreso se un installatore dicesse "Ehi, navigherai nella nostra home page come amministratore, amico!" e applicato continuamente tali permessi. Non credo che comprerei software da una società del genere, a condizione di poterlo scoprire.
Patrick Seymour,

Risposte:


2

Concordo, in linea di principio, con la risposta "RUNAS".

Mi sembra che ciò che vuoi sia limitare automaticamente le istanze del processo secondario se sono in esecuzione come amministratore.

Ci sono un paio di approcci. Tuttavia, sono / possono essere drastici e non sono per l'amministratore timido perché l'overhead è fastidioso. Faranno il lavoro, comunque.

Mostra solo Approccio uno a meno che non ne vengano richiesti altri :

Per ogni applicazione che si desidera limitare:

right click the executable and go to **PROPERTIES**
go to the **SECURITY** tab
click **ADVANCED** at the bottom
click **ADD** at the bottom
type **ADMINISTRATORS** for the name. if you have a domain then adjust appropriately
press **OK** to get the custom settings for the administrator's group
check the **DENY** checkbox next to "TRAVERSE FOLDER/ EXECUTE FILE" permission (2nd on the list)
hit OK and so-on until you've closed the properties entry for that file.

Ora, i membri del gruppo amministratori non possono eseguire quel file. Possono tornare indietro e modificare le autorizzazioni per deselezionarlo in modo da poterlo eseguire, ma devono farlo consapevolmente.

Inoltre, poiché sei preoccupato che ciò si verifichi durante un programma di installazione, ti consigliamo di fare la stessa procedura per "l'utente" del SISTEMA , che funziona anche (efficacemente) anche come amministratore, poiché questo account può essere utilizzato durante alcune installazioni ( le credenziali di un account "ADMIN" di Windows possono essere utilizzate per ottenere un token di credenziali di SISTEMA ... ma questo è molto al di là di ciò a cui questa domanda è indirizzata).

Ecco alcune foto di come farlo su Windows 7:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


1

Dovresti essere in grado di raggiungere il livello di diritti più basso con dropmyrights o psexec.

La parte difficile sembra consistere nel realizzarlo automaticamente quando un programma di installazione genera una nuova istanza dell'applicazione.

Per questo, sospetto che dovrai almeno modificare le associazioni dei file per tutti i tipi di file rilevanti e anche per gli URL, anticipando il tuo comando esistente con il comando psexec per esempio.

Funzionerà fintanto che il programma di installazione tenta di aprire il file / url con l'applicazione associata anziché specificare l'eseguibile da eseguire. Se il percorso dell'eseguibile viene specificato esplicitamente, suppongo che sarebbe necessario sostituire l'eseguibile standard con un eseguibile shim che esegue il comando desiderato.


1

Una cosa che ci manca qui è che Internet Explorer e Windows Explorer NON POSSONO avere le loro autorizzazioni elevate (a meno che tu non faccia un hack del registro). Non conosco Firefox, Chrome, ecc. Ma se provi a eseguire Internet Explorer come amministratore, accetteranno felicemente le tue credenziali ma in realtà non eleveranno le autorizzazioni. Questa è una funzionalità di sicurezza di Windows Vista e versioni successive. Inoltre, l'unico modo in cui UAC non è attivo (a meno che non sia stato disattivato) è se si è effettuato l'accesso all'account amministratore incorporato. Solo perché qualcosa è stato installato con autorizzazioni elevate, ciò non significa che il programma di installazione possa assegnare a quel programma autorizzazioni elevate. Le autorizzazioni sono determinate dall'account con cui è stato eseguito il programma. L'unico modo in cui un programma può essere eseguito con autorizzazioni elevate senza che tu lo sappia è se,


1
RUNAS /trustlevel:<TrustLevel> program

/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.
/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.

This requires an elevated command prompt.

Spiegazione / Step by Step

  1. Apri il menu Start e digita cmd sulla barra di ricerca
  2. Fare clic con il tasto destro sul prompt dei comandi e selezionare Esegui come amministratore Digitare:

    RUNAS /showtrustlevels
    
  3. Scegli un livello di attendibilità adatto alla tua applicazione, dove si Xtrova il livello di fiducia che desideri utilizzare e digita:

    RUNAS /trustlevel:X "Application target"
    

Non penso che funzionerà. Per utilizzare RunAs per far funzionare la finestra del browser risultante con diritti limitati, è necessario eseguire il programma di installazione (tramite RunAs) con diritti limitati. Ciò causerebbe probabilmente il mancato funzionamento dell'installer.
Patrick Seymour,

bene se volessi farlo in questo modo cambieresti la variabile d'ambiente per il tuo browser per includere il comando RUNAS / trustlevel, allora il browser si avvierà sempre nel livello di affidabilità selezionato, è improbabile che tu debba mai eseguire il browser in un situazione elevata ... merita una riflessione
David McGowan il

Cambiare la variabile d'ambiente è un po 'una missione, richiederà la creazione di un semplice exe per sostituire l'originale che contiene una semplice chiamata al vero eseguibile con il comando RUNAS incluso. come ho detto, un po 'di missione potresti semplicemente copiare l'indirizzo con cui si apre la finestra del browser e quindi chiudere e riavviare il browser e digitare l'indirizzo
David McGowan,

0

ho cercato diverse soluzioni e posso già dirti che i manifesti delle applicazioni o i flag di appcompat non funzioneranno (sì, questa non è una vera risposta ma volevo ancora condividerla;))

ciò che potrebbe essere vicino a ciò che stai cercando è il cosiddetto livello di integrità , può essere impostato all'interno del filesystem (ACL) e ha un effetto sul token che il processo sta trattenendo

questo articolo spiega come far funzionare un exe sempre a "basso livello di integrità"

un altro approccio sarebbe uno strumento di terze parti, come un monitor di processo in tempo reale che verrebbe utilizzato da uno scanner di virus o da un firewall applicativo, ma non conosco nessuno che possa essere configurato in questo modo.


2
puoi ignorare la mia risposta, ho appena provato quel metodo e non ha funzionato :(
weberik

0

Puoi usare AppLocker.

Credo che questo sia disponibile in Windows 7 Enterprise, Ultimate e Server 2K8 e versioni successive. Non sono sicuro di Windows 8 ma presumo che sia lo stesso (Enterprise e Ultimate).

Puoi configurare AppLocker andando in criteri di gruppo:

Configurazione computer -> Impostazioni di Windows -> Impostazioni di sicurezza -> Criteri di controllo delle applicazioni -> AppLocker -> Regole eseguibili.

Fare clic destro e "Crea una nuova regola ..."

Qui è possibile bloccare l'esecuzione di specifici eseguibili da parte di utenti o gruppi selezionati. Nel tuo esempio, potresti scegliere di negare l'esecuzione di Internet Explorer da parte del gruppo Administrators.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.