Weboldal keresés

Folyamatkövetés ellenőrzési házirend használata Windows rendszerben


Ebben a cikkben bemutatjuk, hogyan engedélyezheti a folyamatkövető naplózási házirendet a Windows rendszerben, hogy megtudja, milyen programok futnak a számítógépen. Gyakran előfordul, hogy a rendszergazdát arra kérik, hogy adjon tájékoztatást arról, hogy a felhasználó milyen alkalmazásokat futtat, mikor futotta utoljára az adott programot stb. Ez a funkció a rosszindulatú programok és a fenyegetések tevékenységének nyomon követésében is hasznos lehet. Ezeket az információkat a Windows eseménynaplójából kaphatja meg, és kényelmes jelentést készíthet a PowerShell segítségével.

Nyomon követheti a Windows-alkalmazási folyamatok indítási/leállítási eseményeit a folyamatkövető naplózási házirend segítségével.

  1. Nyissa meg a Helyi csoportházirend-szerkesztőt:

    gpedit.msc

    Ha engedélyezni szeretné a folyamatnaplózási házirendet az Active Directory tartományban lévő számítógépeken, használja a tartományi csoportházirend-kezelési konzolt,

    gpmc.msc
  2. Lépjen a következő csoportházirend-objektum szakaszba: Számítógép konfigurációja -> Windows beállítások -> Biztonsági beállítások -> Helyi házirendek -> Audit házirend;

  3. Engedélyezze az Audit process tracking házirendet, és jelölje be a Sikeres jelölőnégyzetet;

    Korábban bemutattuk, hogyan lehet az ellenőrzési események segítségével kideríteni azt a folyamatot, amely a számlazárolási esemény forrása egy számítógépen.

  4. Mentse el a módosításokat, és frissítse a helyi csoportházirend-objektum beállításait a számítógépen a következő paranccsal:

    gpupdate /force

Nyissa meg az Eseménynaplót (

eventvwr.msc

), és bontsa ki a Windows Naplók -> Biztonság. Most, amikor bármely alkalmazás (folyamat) elindul, a Folyamat létrehozása esemény 4688 eseményazonosítóval megjelenik a naplóban.

A new process has been created.

Az esemény információi tartalmazzák a programot futtató felhasználónevet (

Creator Subject

), egy folyamat futtatható fájl neve (

New Process Name

), és egy szülőfolyamat, amelyről az alkalmazás futott (

Creator Process Name

).

Egy folyamatlezáró esemény (

A process has exited

) eseményazonosítója 4689. Korábban bemutattuk, hogyan lehet parancsfájlt futtatni (műveletet végrehajtani), amikor egy alkalmazást futtat/leállítunk a Windows rendszerben ezen események és egy Feladatütemező trigger használatával.

Vegye figyelembe, hogy amikor engedélyezi a fent leírt Folyamatkövetés ellenőrzése házirendet, a folyamatokkal kapcsolatos összes esemény a biztonsági naplóba kerül. Ha csökkenteni szeretné az események számát az Eseménynaplóban, és csak a folyamatlétrehozási eseményekre vonatkozó információkat szeretné elmenteni, letilthatja ezt a házirendet, és csak a speciális naplózási házirend elemet engedélyezheti: Audit Process Creation (Windows beállítások -> Biztonsági beállítások -> Speciális ellenőrzési házirend konfigurációk -> Rendszernaplózási szabályzat -> Részletes követés).

A folyamatlétrehozási beállításokkal (az alkalmazások futtatásának argumentumával) kapcsolatos információk megadásához engedélyezze a Parancssor szerepeltetése a folyamatlétrehozási eseményekben lehetőséget a Számítógép konfigurációja -> Felügyeleti sablonok -> Rendszer -> Folyamatlétrehozás ellenőrzése alatt.

Miután engedélyezte a házirendet, látni fogja, hogy milyen argumentumot használtak a program elindításához a Feldolgozási parancssorban.

Ügyeljen arra, hogy növelje a biztonsági naplófájl maximális méretét (az alapértelmezett méret 20 MB). Ez lehetővé teszi a folyamattörténet hosszabb ideig történő tárolását a Windows rendszerben. Ehhez nyissa meg a Biztonsági napló tulajdonságait, és növelje a Maximális naplóméret (KB) értéket.

Az Eseménynapló szűrőivel elemezheti a felhasználó által futtatott alkalmazásokat. Ez azonban nem túl kényelmes. Az alábbiakban bemutatok néhány PowerShell-szkriptet, amelyek lehetővé teszik, hogy hasznos jelentéseket kapjon a felhasználók által futó alkalmazások előzményeiről. Ebben az esetben a Get-WinEvent parancsot használom az események lekéréséhez az Eseménynaplóból:

$processhistory = @()
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
$events=Get-WinEvent -FilterHashtable @{
LogName = 'Security'
starttime="$today"
ID = 4688
}
foreach ($event in $events){
$proc = New-Object PSObject -Property @{
ProcessName=$event.Properties[5].Value
Time=$event.TimeCreated
CommandLine=$event.Properties[8].Value
User=$event.Properties[1].Value
ParentProcess=$event.Properties[13].Value
}
$processhistory += $proc
}
$processhistory| Out-GridView

Ez a PowerShell-szkript kiválasztja az összes folyamatindítási eseményt a mai napra, és megjeleníti a folyamatok listáját, azok indítási idejét és felhasználóneveit egy Out-GridView táblában.

A Windows folyamatait a PowerShell segítségével kezelheti.

Használhatja a kapott objektumtömböt különböző audit lekérdezések végrehajtásához.

Például:

  • Az összes olyan felhasználó megkereséséhez, aki egy adott alkalmazást futtatott:

    $proc_name="notepad++.exe"
    $processhistory | where-object {$_.ProcessName -like “*$proc_name*”}|out-gridview

  • Egy adott felhasználó által ma futtatott alkalmazások listájának megjelenítése:

    $username="aberg"
    $processhistory | where-object {$_.User -like “*$username*”}|out-gridview

Gyakran használunk ilyen szkripteket az RDS-farm gazdagépein lévő felhasználók által futtatott alkalmazások elemzésére.

Windows rendszerben a futó programok előzményeit a %SystemRoot%\AppCompat\Programs\Amcache.hve fájlban is megtalálhatja. A fájl zárolva van a Windows rendszerben, és csak akkor tekintheti meg, ha LiveCD-ről vagy rendszerindító/telepítő adathordozóról indítja el a számítógépet. A fájl indítási és telepítési/eltávolítási címkéket, valamint végrehajtható ellenőrző összegeket (SHA1) tartalmaz. Ezt a fájlt binárisból szöveges formátumba konvertálhatja harmadik féltől származó eszközök (például regripper) segítségével.

Vegye figyelembe, hogy a PowerShell a futtatott parancsok előzményeit is megőrzi egy szöveges naplófájlban.

Kapcsolódó cikkek