tiistai 31. lokakuuta 2017

AppLocker

Yleistä

AppLocker on Windowsin ominaisuus, jonka avulla voidaan hallita loppukäyttäjien sovellusohjelmien suorittamista. Ominaisuuden avulla voidaan mm. sallia tai evätä esim. .exe -tiedostojen, skriptien, Windows Installer -tiedostojen tai DLL:n käyttö. AppLocker esiteltiin Windows 7 Enterprise versiossa. AppLocker laajentaa jo aiemmin käytössä ollutta Software Restriction ominaisuutta.

Software Restriction ominaisuus toimii ns. Black listing periaatteella eli ohjelmat ovat oletusarvoisesti sallittuja, ellei niitä erikseen Software restriction politiikan avulla kielletä. Applocker toimii White listing periaatteella, eli sovellukset ovat oletusarvoisesti kiellettyjä, ellei niitä AppLocker sääntöjen avulla sallita.

Applocker on tuettu seuraavissa Windows versiossa

- Windows 7 Enterprise, Ultimate

- Windows 8/8.1 Enterprise

- Windows 10 Enterprise, Education

- Windows Server 2012, 2012 R2, 2016

AppLockerin avulla on mahdollista estää myös sellaisten sovellusten käyttö/asentaminen jotka asentuvat ilman järjestelmänvalvojan oikeuksia esim. käyttäjän profiilikansioon. (esim. Firefox selain)

On myös huomioitava, että AppLockerin tehokas käyttö edellyttää, että käyttäjillä ei ole käytössään Järjestelmänvalvojien oikeuksia. Järjestelmänvalvojan oikeuksilla on mahdollista suorittaa ohjelmakoodia Kernel-tilassa, jolloin AppLockerin käyttö on mahdollista estää.

Applockerin avulla voidaan AppLocker sääntöjen avulla hallita, mitä ohjelmia käyttäjät voivat suorittaa. Sovelluksen suorittaminen hyväksytään (tai kielletään) joko sen julkaisijan, sen tiedosto sijainnin tai tiedoston tarkistussumman perusteella.

Sääntöihin voidaan lisätä poikkeuksia jolloin esim. tietyssä kansiorakenteessa olevan alikansion sisältämien sovelluksien suorittaminen on sallittu, vaikka kansiorakenteen muissa kansiossa olevien sovelluksien suorittaminen kielletäänkin.

1

2

Käyttöönotto

Applocker edellyttää, että työasemissa on käynnissä Application identity (AppIDSvc) palvelu. Palvelun voi käynnistää esim. ryhmäkäytännön avulla.

Application identity / Sovellustiedot palvelun käyttöönottaminen:

Luo tarvittaessa uusi ryhmäkäytäntö AppLocker omaisuutta varten esim. AppLocker asetukset nimisenä.

Avaa Ryhmäkäytäntö -editori ja siirry kohtaan Computer Configuration\Windows Settings\Security Settings.

Avaa Application identity ja aseta se käynnistymään automaattiesti

3

HUOM: Windows 10 käyttöjärjestelmän aiemmissa versiossa oli ongelma joka saattoi estää Application Identity palvelun automaattisen käynnistämisen ryhmäkäytännöllä. Versiosta 1703 alkaen ongelmaa ei kuitenkaan ole.

Palvelun pystyy ongelmallisissa Windows 10 työasemissa käynnistää komennolla sc config appidsvc start= auto

Komento voidaan ajaa työasemissa esim. startup -skriptin avulla.

Varmista että ryhmäkäytäntö pakottaa Application identity / Sovellustiedot palvelun käynnistymään.

Avaa em. Ryhmäkäytäntöobjekti ja siirry sijaintiin Computer – Configuration – Windows Settings – Security Settings – Application Control Policies – AppLocker. Valitse Properties.

Enforcement asetus vahvistaa juuri tässä ryhmäkäytäntöobjektissa olevat asetukset käyttöön tilanteessa jossa sama määritys on asetettu eri tavalla, useammassa kuin yhdessä ryhmäkäytäntöobjektissa.

Enforcement välilehdellä voidaan erikseen asettaa sääntöjen vahvistus (Enforce, Audit only) suoritettaville tiedostoille, asennuspaketeille, skripteille ja Universal sovelluksille.
Aseta Enforcement asetus käyttöön Suoritettaville tiedostoille (Executable rules) ja Universal sovelluksille (Packaged app Rules)

4

HUOM: Valinta Audit only ei aseta sääntöä voimaan vaan ainoastaan ilmoittaa säännön toiminnasta Tapahtumienvalvonnassa (Application and Services Logs – Microsoft – Windows – Applocker)

Luo seuraavaksi oletussäännöt suoritettaville tiedostoille. Napsauta hiirellä Executable Rules päällä ja valitse pikavalikosta Create Default Rules. Komento luo alla näkyvässä kuvassa olevat kolme oletusarvoista sääntöä suoritettaville tiedostoille.

5

Edellä luotuihin oletussääntöihin voidaan luoda poikkeuksia tuplanapsauttamalla haluttua sääntöä. Sääntöön tulevat poikkeukset luodaan esille avautuneen Allow Properties ikkunan Exceptions välilehdeltä. Oletussäännöt kannattaa luoda koskemaan myös .msi (Windows Installer) ja .appx (Packaked app Rules) tyyppisiä tiedostoja.

HUOM: Vältä luomasta yksittäisiin tiedostoihin ja hash-arvoihin perustuvia sääntöjä koska niiden hallinnointi ja aktiivinen ylläpitäminen on huomattavan vaikeaa. Pysyttele siis tiedostosijaintiin perustuvissa eli Path tai varmenteisiin perustuvissa eli Certificate säännöissä.

6 

7

Ohjelman asentaminen halutaan estää kuitenkin kaikissa tilanteissa.

Lataa Mozilla Firefox selaimen asennuspaketti ja kokeile sen asentamista työasemassa johon AppLocker ryhmäkäytännön asetukset on otettu käyttöön.

Varmista että edellä luotu AppLocker ryhmäkäytäntö on määritetty käyttöön työasemassa oletus säännöin (Default Rules). Kokeile käynnistää Mozilla FireFox ohjelman asennus.

8

Oletussääntöjen täydentäminen

Oletussääntöjä joudutaan yleensä kuitenkin täydentämään muilla AppLocker säännöillä ja mahdollisesti myös oletussääntöihin lisättävillä poikkeuksilla.

Selvitetään ensin, onko työaseman paikallisella Käyttäjät (Users) ryhmällä kirjoitusoikeuksia johonkin C:\Windows kansion alikansioon. Jos käyttäjät pystyvät kopioida suoritettavan tiedoston johonkin Windows kansion alikansioon, saavat he sitä kautta oikeuden suorittaa kyseisien tiedoston tästä kansiosta (vrt. Mozilla Firefox ohjelma)

Lataa Sysinternals AccessChk ohjelma jolla edellä mainittu tarkistus voidaan suorittaa. Sijoita sovellus esim. C:\Temp kansioon.

Avaa järjestelmänvalvojan komentokehote tai PowerShell ikkuna ja anna komento: C:\Temp\accesschk -w -s Käyttäjät C:\Windows

Accesschk tulostaa näytölle ne Windows kansion alikansiot johon Käyttäjät ryhmällä on kirjoitusoikeus. Nämä kansiot ovat C:\Windows\Temp ja C:\Windows\tracing

Sama komento voidaan kohdentaa myös ”C:\Program Files” kansioon.

9

Ohjelman löytämät kansiot tulee asettaa poikkeuksina AppLocker oletussääntöihin.

Avaa Ryhmäkäytäntöeditorin avulla edellä luotu AppLocker asetukset ryhmäkäytäntö. Avaa oletussääntö joka sallii kaikkien (Everyone) suorittaa ohjelmia Windows kansiosta. Siirry em. säännön Exceptions välilehdelle ja lisää seuraavat poikkeukset:

C:\Windows\temp\*
C:\Windows\tracing\*

Muutoksen jälkeen käyttäjät eivät voi lisätä ohjelmia em. kansioihin (ja tämän jälkeen suorittaa niitä sieltä)

10

Julkaisija tietoon perustuvat (Publisher) säännöt

Publisher tyyppisien sääntöjen avulla voidaan sovelluksen suorittaminen estää ohjelman julkaisijan nimen perusteella. Valittavissa ovat seuraavat vaihtoehdot:

Any Publisher: Sovelluksen suorittaminen sallitaan, olipa julkaisija mikä/kuka tahansa

Publisher: Sovelluksen suorittaminen sallitaan Publisher kentässä olevan tiedon perusteella. Oikea tieto voidaan hakea selaamalla halutun julkaisijan .exe tyyppiseen tiedostoon.

Product Name: Sovelluksen suorittaminen sallitaan Product Name kentässä olevan sovelluksen nimen perusteella.

File Name: Sovelluksen suorittaminen sallitaan Product Name kentässä olevan tiedoston nimen perusteella.

File version: Sovelluksen suorittaminen sallitaan File Version kentässä olevan tiedoston versiotiedon perusteella.

Any Publisher rajoitus ei siis käytännössä rajoita sovelluksen käynnistämistä ollenkaan (kaikki varmenteella varustetut sovellukset sallitaan), kun taas File version asetuksen avulla sovelluksen käynnistäminen voidaan rajata versiokohtaisesti.

11

Verkkolevyasemien (levylinkkien) lisääminen sallittuihin sijainteihin.

Jossain tilanteissa käyttäjien on pystyttävä suorittamaan sovelluksia verkkosijainneista. Tällöin olemassa oleviin sääntöihin on lisättävä poikkeus, joka sallii sovelluksien suorittamisen verkkosijainnista. On huomattava, että ensin tulee jakamisen/ntfs oikeuksin kieltää käyttäjiä lisäämästä tiedostoja ko. sijaintiin. Tällä tavalla estetään käyttäjiä suorittamasta ko. sijainnista muita kuin ns. hyväksyttyjä sovelluksia.

12

Säännöt lisätään seuraavasti

Avaa edellä luotu AppLocker asetukset niminen ryhmäkäytäntö ja lisää sääntö Executable Rules alle.

Määritä Conditions kohdassa Path kenttään levyasematunnus josta haluta sallia sovellusten suorittamisen. On huomioitava, että on luotava erikseen sääntö jokaiselle tavalle, jolla kyseistä jaettua kansiota voidaan kutsua (kts. alla näkyvä kuva)

13

Muuta huomioitavaa

Pysyttele path ja publisher säännöissä. Älä kiellä sovellusta toimimasta tiedostonimen vaan tiedostosijainnin perusteella. Esimerkiksi File hash tyyppisen sääntö olisi päivitettävä joka kerta kun kyseinen tiedosto päivittyy. File hash tyyppinen sääntö on tätä työläs ylläpidettävä.

HUOM: Applocker ei ”ymmärrä” järjestelmämuuttujia joten esim. jos halutaan sallia Netlogon (%logonserver%) jaosta tapahtuva ohjelmien suorittaminen, on palvelimet erikseen sallittava AppLocker säännön avulla käyttäen palvelimien Netbios -nimiä.

Erityiskiitokset Sami Laiholle loistavasta aiheeseen liittyvästä materiaalista Pluralsight sivustolla.