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.
Nyissa meg a Helyi csoportházirend-szerkesztőt:
gpedit.mscHa 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.mscLé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;
-
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.
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-GridViewEz 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-gridviewEgy 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.