Minimální práva pro aplikaci běžící na WIN10

Minimální práva pro aplikaci běžící na WIN10
« kdy: 15. 10. 2019, 20:38:52 »
Zdavím,
pod jakými minimální právy ve Windowsu by měla běžet aplikace na PC? Řekněme, že na tom PC běží REST server a potřeboval bych, aby běžela pod minimální právy. Jaká práva by to měla být?

Děkuji


PanVP

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #1 kdy: 15. 10. 2019, 22:28:00 »
Předně, to je široký pojem.

Jedná se o program nebo službu?
Plnotučnou síťovou službu pustíš pod "NT AUTHORITY\NetworkService" resp. SID: S-1-5-20
Případně, pokud by ti to stačilo "NT AUTHORITY\LocalService" resp. SID: S-1-5-19
To je asi lepší řešení.
Rozdíly si nastuduješ, Googlovat umíš.

Upozorňuji, že tvůj instalátor by měl:
Detekovat použitý firewall, pokud je WidloFW, tak do něj navrtat díry, pro ostatní vyvolat hlášku "Zdá se, že váš systém nepoužívá výchozí firewall, prosím ujistěte se, že port 12345 TCP/UDP je otevřený".

Pokud můžeš, nevydávej se cestou vytváření lokálních účtů.
Jednak je to prasečina, vytvářet mrtě špatně zabezpečených lokálních účtů a jednak tě to bude zlobit, protože svéprávný admin lokální účty nemilosrdně vyřezává. Povýšení oprávnění je v případě samostatného účtu podobně snadné.
Vytvoření samostatného lokálního účtu se možná nevyhneš, ale je lepší jít standardní cestou.

Spusť si modul "Služby", tj. začni psát Služby nebo services.msc a podívej se, jak to mají udělané profíci.
Mně tu toho bloatware běží dost, všelijaké prasečiny telemetrie Nvidia, tiskárna, Adobe, .NET... ale nemám tu ani extra lokální účet.

Pokud můžeš nevydávej se cestou programu, který by se pouštěl po spuštění.
Změní se ti uživatelé a budeš koukat. To je záležitost Windows 95. Služba oproti tomu je obvyklý způsob.

A dej pozor na limit připojení u desktopových Windows, jednak abys nenarazil na strop, pak budeš koukat, že ti to neběží a jednak i kvůli porušení licence.

Device connections. You may allow up to 20 other devices to access the software installed on the licensed device for the purpose of using the following software features: file services, print services, Internet information services, and Internet connection sharing and telephony services on the licensed device. You may allow any number of devices to access the software on the licensed device to synchronise data between devices. This section does not mean, however, that you have the right to install the software, or use the primary function of the software (other than the features listed in this section), on any of these other devices.

Upozorňuji, že je povoleno připojení až dvaceti zařízení pro vybrané služby a neomezený počet zařízení pro synchronizaci dat se zařízením, vyjma použití jako desktopového operačního systému jako serveru. Ono to nevychází jen z tohoto úryvku, chce si to EULA přečíst celou, tohle je doporučení, protože EULA se mění a pokud chceš poskytovat licenci software pro Widlows, měl by ses řídit jejich pravidly. Pokud nechceš, piš pro Apple, ale řiď se jejich pravidly. Nebo piš software pro Linux, ale tam se taky musíš řídit pravidly. A jestli to chceš mít licenčně v pořádku, měl bys do své EULA dát obvyklé fuckoff věty.

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #2 kdy: 15. 10. 2019, 22:59:03 »
Díky za odpověd. Omlouvám se, pokusím se to trošku přiblížit.
Jedná se o aplikac, která by měla běžet na lokální síti na nějakém PC, čili by zřejmě postačilo, aby ta aplikace běžela jen pod nějakým účtem, které bude mít hodně omezené pravomoce. Nebo to není dobré řešení?

PanVP

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #3 kdy: 15. 10. 2019, 23:51:09 »
Aplikace? Nedoporučuji? Služba!
https://simplicable.com/new/application-vs-service

A použil bych jeden z uvedených účtů, tj. už z existujících, rozhodně bych nic nevytvářel, pokud se tomu půjde vyhnout.

Služba běžící pod účtem S-1-5-20 nebo S-1-5-19 je naprosto obvyklý způsob, běžný, používané řešení.

Na Linuxu je běžné pro roztodivné účely vytvářet extra uživatele, pod kterými daná věc běží.
Na Windows je obvyklé pro roztodivné účely používat předdefinované účty služeb, pod kterými daná služba běží.

I na Windlo$ je službu možné spustit pod ručně vytvořeným uživatelem, ale to je cesta do pekla. (IMHO)

Nicméně, jak to teď pozoruji, možná byste si měl něco přečíst o službách na Windows, asi bych tím i začal.

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #4 kdy: 16. 10. 2019, 02:17:54 »
Nicméně, jak to teď pozoruji, možná byste si měl něco přečíst o službách na Windows, asi bych tím i začal.
A nebo zagooglit string NSSM


PanVP

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #5 kdy: 16. 10. 2019, 03:23:46 »
NSSM

To jako vážně? Tohle NSSM?
https://nssm.cc/

Tak proti tomu mám úplně všechno, jako jeden z argumentů uvedu, že to je naštěstí už poměrně dlouho mrtvé.

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #6 kdy: 16. 10. 2019, 10:22:05 »
Pokud by vám práva v rámci LocalService či NetworkService přišla vysoká, můžete si je ještě snížit (např. snížit integrity level, odstranit nějaká ta privilegia z tokenu...), ale pak je třeba být opatrný, protože ta služba začne mít tak nízká práva, že ne všechno bude fungovat (např. máte jen velmi omezené možnosti zápisu do souborového systému atd.).

Něco z toho může služba provést na začátku své existence (pokud prostě chcete, aby ji nikdo nemohl snadno zneužít, pokud nad ní třeba vzdáleně převezme kontrolu), něco by mohlo jít zařídit i při instalaci (pro tu integrity level možná bude stačit nastavit ji u souboru služby, ale v těchto podmínkách jsem nikdy nezkoušel).

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #7 kdy: 16. 10. 2019, 10:41:14 »
jako jeden z argumentů uvedu, že to je naštěstí už poměrně dlouho mrtvé.

To je fakt kvalitni argument, tak diky ;-)

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #8 kdy: 16. 10. 2019, 12:29:58 »
Dalsou moznostou je to nasadit na IIS, vtedy aplikacia dostane vlastneho pouzivatela a tomu nastavit pristupy tak ako treba.

PanVP

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #9 kdy: 16. 10. 2019, 14:28:39 »
To je fakt kvalitni argument, tak diky ;-)

Haha, nojo no :-D
Ale proč se o někom hádat, jestli umí to či ono, když je mrtvej :P

Já bych řekl, že mi tam vadilo to, vy ono, hádali bychom se.
Úmrtí projektu je ten typ argumentu, který má řekněme jistou váhu  ;D


Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #10 kdy: 16. 10. 2019, 19:16:21 »
To je fakt kvalitni argument, tak diky ;-)
Úmrtí projektu je ten typ argumentu, který má řekněme jistou váhu  ;D

Tak kdyz jiny nemate, tak pak urcite ;-)

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #11 kdy: 16. 10. 2019, 20:07:00 »
Trochu jsem si pro sebe googlil protože mne něco podobného možná čeká (mám v dlouhodobém plánu zkusit napsat jednu servisu), třeba to tazateli pomůže, případně to někdo rozvede více :)

Po delším googlení "NT AUTHORITY\NetworkService" atp jsem narazil na pojem "Windows service isolation" - ale nic moc popis k tomu,jen že je to od Vist výše a že to používá třeba mssql.
A po další delší době jsem našel - Virtual accounts "NT SERVICE\ServiceName"  a pro doménu "Managed accounts"
A k tomu se už dá googlit lépe:
https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/service-accounts
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd548356(v=ws.10)?redirectedfrom=MSDN

"Virtual accounts" jsou jako jako NT AUTHORITY\NetworkService ale je to izolovaný "uživatel" jen pro tu službu, ale nemusí se řešit hesla, ale jdou nastavovat práva např pro adresáře.
Jen škoda že není i alernativa pro NT AUTHORITY\LocalService (nebo jsem ji nenašel)

PanVP

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #12 kdy: 17. 10. 2019, 01:42:13 »
Tak kdyz jiny nemate, tak pak urcite ;-)

Tak rozhodně se vám výborně daří zakrývat fakt, že tu radíte používat letitý a neudržovaný software tím, že na mě házíte, že nemám argumenty. Tak určitě ;D  ;D

Jestli vy náhodou nepracujete převážně v PHP  ;D

PS: Očekávám, že se dočkám osobního útoku, ale nikoliv odpovědi, proč používat letitý a neudržovaný sofware.
« Poslední změna: 17. 10. 2019, 01:46:23 od PanVP »

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #13 kdy: 17. 10. 2019, 10:10:22 »
letitý a neudržovaný software

Vite ze at zopakujete souslovi "letitý a neudržovaný software" kolikrat chcete, stejne jako argument neziska vetsi vahu?

PanVP

Re:Minimální práva pro aplikaci běžící na WIN10
« Odpověď #14 kdy: 17. 10. 2019, 13:15:58 »
stejne jako argument neziska vetsi vahu

No výborně, tak povídejte, proč to používat, i když to na Window 10  ;D

Mimochodem, zkuste tohle:
A) Stáhnete ze stránek https://nssm.cc/download verzi z roku 2017, verze 2014...v době W10...ehmm
B) Rozablíte, otevřete stránky Virustotal a požádáte o ověření buď Win32 nebo Win64
C) Získáte takový pěkný alarm:
https://www.virustotal.com/gui/file/682f1025b4c410ae78b1c5bdc4de7ad315f2eff292c66947c13969930028c98d/detection

Mimochodem, Fortinet na mě kulí oči, co že to sem tahám.

Ale teď vážně, proč to používat?