Megosztás a következőn keresztül:


JEA biztonsági szempontok

A JEA segít a biztonsági helyzet javításában azáltal, hogy csökkenti a gépek állandó rendszergazdáinak számát. A JEA PowerShell-munkamenetkonfigurációval hoz létre egy új belépési pontot a felhasználók számára a rendszer kezeléséhez. Azok a felhasználók, akiknek rendszergazdai feladatok elvégzéséhez emelt szintű, de nem korlátlan hozzáférésre van szükségük a géphez, hozzáférést kaphatnak a JEA-végponthoz. Mivel a JEA lehetővé teszi ezeknek a felhasználóknak a rendszergazdai parancsok teljes rendszergazdai hozzáférés nélküli futtatását, ezeket a felhasználókat eltávolíthatja a kiemelt jogosultságú biztonsági csoportokból.

Futtató fiók

Minden JEA-végpont rendelkezik egy kijelölt futtató fiókkal, amely alatt a csatlakozó felhasználó műveleteinek végrehajtása történik. Ez a fiók konfigurálható a munkamenet-konfigurációs fájlban, és a választott fiók jelentős hatással van a végpont biztonságára.

A futtató fiók konfigurálásának ajánlott módja a virtuális fiókok. A virtuális fiókok egyszeri, ideiglenes helyi fiókok, amelyeket a csatlakozó felhasználó a JEA-munkamenet időtartama alatt használ. A munkamenet leállítása után a virtuális fiók megsemmisül, és többé nem használható. A csatlakozó felhasználó nem ismeri a virtuális fiók hitelesítő adatait. A virtuális fiók nem használható a rendszer más eszközökkel való elérésére, például távoli asztalon vagy nem korlátozott PowerShell-végponton keresztül.

A virtuális fiókok alapértelmezés szerint a helyi Rendszergazda istrators csoport tagjai a gépen. Ez a tagság teljes körű jogosultságot biztosít számukra a rendszeren lévő bármi kezeléséhez, de nincs jogosultságuk a hálózaton lévő erőforrások kezelésére. Amikor a felhasználó a JEA-munkamenetből csatlakozik más gépekhez, a felhasználói környezet nem a virtuális fiók, hanem a helyi számítógépfiók környezete.

A tartományvezérlők különleges esetnek számítanak, mivel nincs helyi Rendszergazda istrators csoport. Ehelyett a virtuális fiókok tartományi Rendszergazda tartoznak, és kezelhetik a címtárszolgáltatásokat a tartományvezérlőn. A tartomány identitása továbbra is korlátozott azon a tartományvezérlőn, ahol a JEA-munkamenet példányosítása megtörtént. Úgy tűnik, hogy minden hálózati hozzáférés a tartományvezérlő számítógép-objektumából származik.

Mindkét esetben hozzárendelheti a virtuális fiókot adott biztonsági csoportokhoz, különösen akkor, ha a feladat helyi vagy tartományi rendszergazdai jogosultságok nélkül is elvégezhető. Ha már van definiálva egy biztonsági csoport a rendszergazdák számára, adja meg a virtuális fiók tagságát az adott csoportnak. A virtuális fiókok csoporttagságának korlátozása a munkaállomásokon és tagkiszolgálókon található helyi biztonsági csoportokra korlátozódik. A tartományvezérlőken a virtuális fiókoknak tartományi biztonsági csoportok tagjainak kell lenniük. Miután a virtuális fiókot hozzáadta egy vagy több biztonsági csoporthoz, már nem tartozik az alapértelmezett csoportokhoz (helyi vagy tartományi rendszergazdákhoz).

Az alábbi táblázat összefoglalja a virtuális fiókok lehetséges konfigurációs beállításait és az ebből eredő engedélyeket:

Számítógép típusa Virtuális fiók csoportkonfigurációja Helyi felhasználói környezet Hálózati felhasználói környezet
Tartományvezérlő Alapértelmezett Tartományi felhasználó, a <DOMAIN>\Domain Admins Számítógépfiók
Tartományvezérlő A és B tartománycsoportok Tartomány felhasználója, tagja,<DOMAIN>\A<DOMAIN>\B Számítógépfiók
Tagkiszolgáló vagy munkaállomás Alapértelmezett Helyi felhasználó, a BUILTIN\Administrators Számítógépfiók
Tagkiszolgáló vagy munkaállomás C és D helyi csoportok Helyi felhasználó, tag <COMPUTER>\C és <COMPUTER>\D Számítógépfiók

A biztonsági naplózás és az alkalmazásesemény-naplók megtekintésekor láthatja, hogy minden JEA-felhasználói munkamenetnek egyedi virtuális fiókja van. Ez az egyedi fiók segít nyomon követni a JEA-végponton végrehajtott felhasználói műveleteket az eredeti felhasználóhoz, aki a parancsot futtatta. A virtuális fiókok nevei a formátumot WinRM Virtual Users\WinRM_VA_<ACCOUNTNUMBER>_<DOMAIN>_<sAMAccountName> követik: Ha például a Contoso tartomány Alice felhasználója újraindít egy szolgáltatást egy JEA-végponton, a szolgáltatásvezérlő-eseményekhez társított felhasználónév az lenneWinRM Virtual Users\WinRM_VA_1_contoso_alice.

A csoport által felügyelt szolgáltatásfiókok (gMSA-k) akkor hasznosak, ha egy tagkiszolgálónak hozzá kell férnie a hálózati erőforrásokhoz a JEA-munkamenetben. Ha például egy JEA-végpontot használ egy másik gépen üzemeltetett REST API-szolgáltatáshoz való hozzáférés szabályozására. A REST API-k meghívásához könnyű függvényeket írni, de az API-val való hitelesítéshez hálózati identitásra van szükség. A csoport által felügyelt szolgáltatásfiókok használata lehetővé teszi a második ugrást, miközben szabályozhatja, hogy mely számítógépek használhatják a fiókot. A gMSA biztonsági csoportjának (helyi vagy tartományi) tagsága meghatározta a gMSA-fiók érvényes engedélyeit.

Ha egy JEA-végpont gMSA használatára van konfigurálva, úgy tűnik, hogy az összes JEA-felhasználó műveletei ugyanabból a gMSA-ból származnak. A műveletek egy adott felhasználóra való visszakövetésének egyetlen módja, ha azonosítja a PowerShell-munkamenet átiratában futtatott parancsokat.

Az átmenő hitelesítő adatokat akkor használja a rendszer, ha nem ad meg futtató fiókot. A PowerShell a csatlakozó felhasználó hitelesítő adataival futtat parancsokat a távoli kiszolgálón. Az átmenő hitelesítő adatok használatához közvetlen hozzáférést kell adnia a csatlakozó felhasználónak a kiemelt felügyeleti csoportokhoz. Ez a konfiguráció NEM ajánlott a JEA-hoz. Ha a csatlakozó felhasználó már rendelkezik rendszergazdai jogosultságokkal, megkerülheti a JEA-t, és más hozzáférési módszerekkel kezelheti a rendszert.

A standard futtató fiókok lehetővé teszik bármely olyan felhasználói fiók megadását, amely alatt a teljes PowerShell-munkamenet fut. A rögzített futtató fiókokat (a -RunAsCredential paraméterrel együtt) használó munkamenet-konfigurációk nem JEA-tudatában vannak. A szerepkör-definíciók már nem a várt módon működnek. A végpont elérésére jogosult összes felhasználóhoz ugyanaz a szerepkör van hozzárendelve.

Ne használjon RunAsCredential-t JEA-végponton, mert nehéz a műveleteket adott felhasználókra visszakövetni, és nem támogatja a felhasználók szerepkörökhöz való hozzárendelését.

WinRM-végpont ACL

A rendszeres PowerShell-remoting végpontokhoz hasonlóan minden JEA-végpont külön hozzáférés-vezérlési listával (ACL) rendelkezik, amely szabályozza, hogy ki hitelesíthető a JEA-végponttal. Ha helytelenül van konfigurálva, előfordulhat, hogy a megbízható felhasználók nem férnek hozzá a JEA-végponthoz, és a nem megbízható felhasználók hozzáférhetnek. A WinRM ACL nincs hatással a felhasználók JEA-szerepkörökhöz való leképezésére. A leképezést a végpont regisztrálásához használt munkamenet-konfigurációs fájl RoleDefinitions mezője szabályozza.

Alapértelmezés szerint, ha egy JEA-végpont több szerepkörrel rendelkezik, a WinRM ACL úgy van konfigurálva, hogy minden megfeleltetett felhasználó számára engedélyezze a hozzáférést. Az alábbi parancsokkal konfigurált JEA-munkamenetek például teljes hozzáférést biztosítanak az CONTOSO\JEA_Lev1 és CONTOSO\JEA_Lev2a .

$roles = @{ 'CONTOSO\JEA_Lev1' = 'Lev1Role'; 'CONTOSO\JEA_Lev2' = 'Lev2Role' }
New-PSSessionConfigurationFile -Path '.\jea.pssc' -SessionType RestrictedRemoteServer -RoleDefinitions $roles -RunAsVirtualAccount
Register-PSSessionConfiguration -Path '.\jea.pssc' -Name 'MyJEAEndpoint'

A Get-PSSessionConfiguration parancsmaggal naplózhatja a felhasználói engedélyeket.

Get-PSSessionConfiguration -Name 'MyJEAEndpoint' | Select-Object Permission
Permission
----------
CONTOSO\JEA_Lev1 AccessAllowed
CONTOSO\JEA_Lev2 AccessAllowed

Ha módosítani szeretné, hogy mely felhasználók férhetnek hozzá, futtassa Set-PSSessionConfiguration -Name 'MyJEAEndpoint' -ShowSecurityDescriptorUI az interaktív kérést, vagy Set-PSSessionConfiguration -Name 'MyJEAEndpoint' -SecurityDescriptorSddl <SDDL string> frissítse az engedélyeket. A felhasználóknak legalább meghívási jogosultságokra van szükségük a JEA-végpont eléréséhez.

Létrehozhat egy JEA-végpontot, amely nem képez le meghatározott szerepkört minden olyan felhasználóhoz, aki rendelkezik hozzáféréssel. Ezek a felhasználók elindíthatnak egy JEA-munkamenetet, de csak az alapértelmezett parancsmagokhoz férhetnek hozzá. A JEA-végpontok felhasználói engedélyeit a futtatásukkal Get-PSSessionCapabilitynaplózhatja. További információ: Naplózás és jelentéskészítés a JEA-ról.

Minimális jogosultsági szerepkörök

A JEA-szerepkörök tervezésekor fontos megjegyezni, hogy a színfalak mögött futó virtuális és csoport által felügyelt szolgáltatásfiókok korlátlan hozzáféréssel rendelkezhetnek a helyi géphez. A JEA szerepkör-képességei segítenek korlátozni az adott kiemelt környezetben futtatható parancsokat és alkalmazásokat. A nem megfelelően megtervezett szerepkörök olyan veszélyes parancsokat tehetnek lehetővé, amelyek lehetővé tehetik, hogy a felhasználó kitörjön a JEA határaiból, vagy hozzáférjen a bizalmas információkhoz.

Vegyük például a következő szerepkörképesség-bejegyzést:

@{
    VisibleCmdlets = 'Microsoft.PowerShell.Management\*-Process'
}

Ez a szerepkör-képesség lehetővé teszi a felhasználók számára, hogy a Microsoft.PowerShell.Management modul főnévi folyamatával futtatják a PowerShell-parancsmagokat. Előfordulhat, hogy a felhasználóknak hozzá kell férni a parancsmagokhoz, például Get-Process látniuk kell, hogy milyen alkalmazások futnak a rendszeren, és Stop-Process meg kell ölni a nem válaszoló alkalmazásokat. Ez a bejegyzés azonban lehetővé teszi Start-Processegy tetszőleges program elindítását teljes rendszergazdai engedélyekkel. A programot nem kell helyileg telepíteni a rendszerre. Egy csatlakoztatott felhasználó elindíthat egy programot egy fájlmegosztásból, amely helyi rendszergazdai jogosultságokat biztosít a felhasználónak, kártevőket futtat és így tovább.

Ennek a szerepkör-képességnek egy biztonságosabb verziója a következőképpen nézne ki:

@{
    VisibleCmdlets = 'Microsoft.PowerShell.Management\Get-Process',
                     'Microsoft.PowerShell.Management\Stop-Process'
}

Kerülje a helyettesítő karakterek használatát a szerepkör-képességekben. Ügyeljen arra, hogy rendszeresen ellenőrizze az érvényes felhasználói engedélyeket, hogy lássa, mely parancsok érhetők el a felhasználó számára. További információkért tekintse meg a JEA-ról szóló naplózási és jelentéskészítési cikk hatékony jogosultságok ellenőrzése című szakaszát.

Ajánlott eljárásokra vonatkozó javaslatok

A JEA-végpontok biztonságának biztosításához az alábbi ajánlott eljárásokat javasoljuk:

A PowerShell-szolgáltatók használatának és képességeinek korlátozása

Tekintse át, hogyan használják az engedélyezett szolgáltatókat annak biztosítására, hogy ne hozzon létre biztonsági réseket a konfigurált munkamenetben.

Figyelmeztetés

Ne engedélyezze a fájlrendszer-szolgáltatót . Ha a felhasználók a fájlrendszer bármely részére írhatnak, teljes mértékben megkerülhető a biztonság.

Ne engedélyezze a tanúsítványszolgáltatót. Ha a szolgáltató engedélyezve van, a felhasználó hozzáférhet a tárolt titkos kulcsokhoz.

Ne engedélyezze az új runspace-eket létrehozó parancsokat.

Figyelmeztetés

A *-Job parancsmagok korlátozások nélkül hozhatnak létre új futtatótereket.

Ne engedélyezze a Trace-Command parancsmagot.

Figyelmeztetés

A használatával Trace-Command az összes nyomkövetési parancs bekerül a munkamenetbe.

Ne hozzon létre saját proxy-implementációkat a korlátozott parancsokhoz.

A PowerShell proxyparancsokat tartalmaz a korlátozott parancsforgatókönyvekhez. Ezek a proxyparancsok biztosítják, hogy a bemeneti paraméterek ne veszélyeztessék a munkamenet biztonságát. A következő parancsok proxyi korlátozottak:

  • Exit-PSSession
  • Get-Command
  • Get-FormatData
  • Get-Help
  • Measure-Object
  • Out-Default
  • Select-Object

Ha a parancsok saját implementációját hozza létre, véletlenül engedélyezheti a felhasználók számára a JEA-proxyparancsok által tiltott kód futtatását.

A JEA nem véd a rendszergazdák ellen

A JEA egyik alapelve, hogy lehetővé teszi, hogy a nemminisztrátorok adminisztratív feladatokat végezzenek. A JEA nem véd azokkal a felhasználókval szemben, akik már rendelkeznek rendszergazdai jogosultságokkal. A tartományi Rendszergazda, a helyi Rendszergazda istratorokhoz vagy más magas jogosultságú csoportokhoz tartozó felhasználók más módokon is megkerülhetik a JEA védelmét. Bejelentkezhetnek például RDP-vel, használhatnak távoli MMC-konzolokat, vagy csatlakozhatnak a nem betanított PowerShell-végpontokhoz. Emellett a rendszer helyi rendszergazdája módosíthatja a JEA-konfigurációkat, hogy több felhasználót vegyen fel, vagy egy szerepkör-képességet módosítva kibővítse a felhasználó által a JEA-munkamenetben elvégezhető műveletek hatókörét. Fontos kiértékelni a JEA-felhasználók kiterjesztett engedélyeit, hogy kiderüljön, vannak-e más módok is a rendszerhez való emelt szintű hozzáférés megszerzésére.

A JEA rendszeres napi karbantartáshoz való használata mellett gyakori, hogy igény szerint emelt szintű hozzáférés-kezelési rendszer is van. Ezek a rendszerek lehetővé teszik a kijelölt felhasználók számára, hogy ideiglenesen helyi rendszergazdává váljanak, csak azután, hogy befejeznek egy munkafolyamatot, amely dokumentálja az engedélyek használatát.