{"id":349,"title":"Windows GPO Tabanl\u0131 Uygulama Engelleme: Kullan\u0131c\u0131 Ba\u011flam\u0131nda G\u00fcvenlik Sertle\u015ftirmesi","content":"<p>Bu yap\u0131land\u0131rma,&nbsp;<strong>Kullan\u0131c\u0131 Ba\u011flam\u0131nda Uygulama Engelleme<\/strong> stratejisi ile LOLBins ve bilinen k&ouml;t&uuml; ama&ccedil;l\u0131 yaz\u0131l\u0131mlar\u0131n &ccedil;al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 engelleyerek sald\u0131r\u0131 y&uuml;zeyini minimize eder.<\/p>\n<h2>Temel GPO Yap\u0131land\u0131rmas\u0131<\/h2>\n<h3>1. Yeni GPO Olu\u015fturma<\/h3>\n<pre><code class=\"language-powershell\"># PowerShell ile GPO olu\u015fturma\nNew-GPO -Name \"W11-User-Application-Blocking\" -Comment \"LOLBins ve malware engellemesi\"\n\n# OU'ya ba\u011flama\nNew-GPLink -Name \"W11-User-Application-Blocking\" `\n           -Target \"OU=Users,DC=contoso,DC=local\" `\n           -LinkEnabled Yes `\n           -Order 1\n<\/code><\/pre>\n<h3>2. Loopback Processing Yap\u0131land\u0131rmas\u0131<\/h3>\n<pre><code>Computer Configuration &rarr; Policies &rarr; Administrative Templates &rarr; System &rarr; Group Policy\n&rarr; \"Configure user Group Policy loopback processing mode\" = Enabled (Merge mode)\n<\/code><\/pre>\n<h2>&nbsp;Security Filtering Yap\u0131land\u0131rmas\u0131<\/h2>\n<h3>PowerShell ile G&uuml;venlik Filtreleme<\/h3>\n<pre><code class=\"language-powershell\"># GPO Security Filtering ayarlama\n$GPO = Get-GPO -Name \"W11-User-Application-Blocking\"\n\n# Varsay\u0131lan \"Authenticated Users\" kald\u0131r\nSet-GPPermission -Name $GPO.DisplayName `\n                  -TargetName \"Authenticated Users\" `\n                  -TargetType Group `\n                  -PermissionLevel None\n\n# Standart kullan\u0131c\u0131lar\u0131 ekle\nSet-GPPermission -Name $GPO.DisplayName `\n                  -TargetName \"Domain Users\" `\n                  -TargetType Group `\n                  -PermissionLevel GpoApply\n\n# Local Users ekle (SID kullanarak)\nSet-GPPermission -Name $GPO.DisplayName `\n                  -TargetName \"S-1-5-32-545\" `\n                  -TargetType Group `\n                  -PermissionLevel GpoApply\n\n# Hari&ccedil; tutulacak gruplar (Read only izni)\n$ExcludedGroups = @(\n    \"Domain Admins\",\n    \"Enterprise Admins\",\n    \"IT-Helpdesk\",\n    \"Security-Admins\"\n)\n\nforeach ($group in $ExcludedGroups) {\n    Set-GPPermission -Name $GPO.DisplayName `\n                      -TargetName $group `\n                      -TargetType Group `\n                      -PermissionLevel GpoRead\n}\n<\/code><\/pre>\n<h2>Engellenecek Uygulamalar Listesi<\/h2>\n<h3>Kategorize Edilmi\u015f Engelleme Listesi<\/h3>\n<pre><code class=\"language-powershell\"># Tam engelleme listesi\n$BlockedApplications = @{\n    # Script Motorlar\u0131 ve Shell'ler\n    \"ScriptEngines\" = @(\n        \"powershell.exe\",\n        \"pwsh.exe\",\n        \"powershell_ise.exe\",\n        \"wscript.exe\",\n        \"cscript.exe\",\n        \"mshta.exe\",\n        \"cmd.exe\",\n        \"bash.exe\",\n        \"wsl.exe\"\n    )\n    \n    # \u0130ndirme\/C2 LOLBins\n    \"DownloadC2\" = @(\n        \"bitsadmin.exe\",\n        \"certutil.exe\",\n        \"curl.exe\",\n        \"ftp.exe\",\n        \"tftp.exe\",\n        \"xwizard.exe\"\n    )\n    \n    # Kurulum\/Proxy-Execution\n    \"ProxyExecution\" = @(\n        \"msiexec.exe\",\n        \"installutil.exe\",\n        \"regsvr32.exe\",\n        \"rundll32.exe\"\n    )\n    \n    # Persistence\/Lateral Movement\n    \"PersistenceLateral\" = @(\n        \"schtasks.exe\",\n        \"wmic.exe\",\n        \"winrs.exe\",\n        \"cmdkey.exe\",\n        \"reg.exe\"\n    )\n    \n    # Bilinen Malware\/Ara&ccedil;lar\n    \"KnownMalware\" = @(\n        \"agenttesla.exe\",\n        \"darkcomet.exe\",\n        \"havoc.exe\",\n        \"masscan.exe\",\n        \"meterpreter.exe\",\n        \"mimikatz.exe\",\n        \"mimilib.dll\",\n        \"msfvenom.exe\",\n        \"mythic.exe\",\n        \"nanocore.exe\",\n        \"ncat.exe\",\n        \"netcat.exe\",\n        \"nmap.exe\",\n        \"nping.exe\",\n        \"pathping.exe\",\n        \"pcalua.exe\",\n        \"pubprn.vbs\",\n        \"remcos.exe\",\n        \"revenge_rat.exe\",\n        \"sekurlsa.exe\",\n        \"sliver.exe\",\n        \"teamserver.exe\",\n        \"token.exe\",\n        \"vbc.exe\",\n        \"wevtutil.exe\",\n        \"winexe.exe\",\n        \"wusa.exe\",\n        \"xwizard.exe\",\n        \"wlrmdr.exe\",\n        \"zmap.exe\"\n    )\n}\n<\/code><\/pre>\n<h2>GPO Registry Ayarlar\u0131<\/h2>\n<h3>Registry.pol Dosyas\u0131 Olu\u015fturma<\/h3>\n<pre><code class=\"language-powershell\">function Create-AppBlockingRegistry {\n    param(\n        [string]$GPOName = \"W11-User-Application-Blocking\"\n    )\n    \n    $regPath = \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\"\n    \n    # Komut sat\u0131r\u0131 eri\u015fimini engelle\n    Set-GPRegistryValue -Name $GPOName `\n        -Key $regPath `\n        -ValueName \"DisableCMD\" `\n        -Type DWORD `\n        -Value 2\n    \n    # Registry edit&ouml;rlerini engelle\n    Set-GPRegistryValue -Name $GPOName `\n        -Key $regPath `\n        -ValueName \"DisableRegistryTools\" `\n        -Type DWORD `\n        -Value 1\n    \n    # Run men&uuml;s&uuml;n&uuml; devre d\u0131\u015f\u0131 b\u0131rak\n    Set-GPRegistryValue -Name $GPOName `\n        -Key $regPath `\n        -ValueName \"NoRun\" `\n        -Type DWORD `\n        -Value 1\n}\n<\/code><\/pre>\n<h2>Software Restriction Policies (SRP) Yap\u0131land\u0131rmas\u0131<\/h2>\n<h3>PowerShell ile SRP Olu\u015fturma<\/h3>\n<pre><code class=\"language-powershell\">function Configure-SoftwareRestrictionPolicies {\n    param(\n        [string]$GPOName = \"W11-User-Application-Blocking\"\n    )\n    \n    # SRP i&ccedil;in temel path\n    $srpPath = \"HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows\\Safer\\CodeIdentifiers\"\n    \n    # Varsay\u0131lan g&uuml;venlik seviyesi (Unrestricted)\n    Set-GPRegistryValue -Name $GPOName `\n        -Key $srpPath `\n        -ValueName \"DefaultLevel\" `\n        -Type DWORD `\n        -Value 262144\n    \n    # Her bir engellenecek uygulama i&ccedil;in hash rule olu\u015ftur\n    $ruleGuid = 0\n    foreach ($category in $BlockedApplications.Keys) {\n        foreach ($app in $BlockedApplications[$category]) {\n            $ruleGuid++\n            $guidString = \"{\" + [guid]::NewGuid().ToString().ToUpper() + \"}\"\n            \n            # Path rule olu\u015ftur\n            $rulePath = \"$srpPath\\0\\Paths\\$guidString\"\n            \n            Set-GPRegistryValue -Name $GPOName `\n                -Key $rulePath `\n                -ValueName \"ItemData\" `\n                -Type String `\n                -Value \"*\\$app\"\n            \n            Set-GPRegistryValue -Name $GPOName `\n                -Key $rulePath `\n                -ValueName \"SaferFlags\" `\n                -Type DWORD `\n                -Value 0\n        }\n    }\n}\n<\/code><\/pre>\n<h2>ADMX Template Olu\u015fturma<\/h2>\n<h3>Custom ADMX Template<\/h3>\n<pre><code class=\"language-xml\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;policyDefinitions xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"\n                   xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n                   revision=\"1.0\"\n                   schemaVersion=\"1.0\"\n                   xmlns=\"http:\/\/schemas.microsoft.com\/GroupPolicy\/2006\/07\/PolicyDefinitions\"&gt;\n  \n  &lt;policyNamespaces&gt;\n    &lt;target prefix=\"w11block\" namespace=\"Microsoft.Policies.W11ApplicationBlocking\" \/&gt;\n  &lt;\/policyNamespaces&gt;\n  \n  &lt;resources minRequiredRevision=\"1.0\" \/&gt;\n  \n  &lt;categories&gt;\n    &lt;category name=\"W11_App_Blocking\" displayName=\"$(string.W11_App_Blocking)\"&gt;\n      &lt;parentCategory ref=\"windows:System\" \/&gt;\n    &lt;\/category&gt;\n  &lt;\/categories&gt;\n  \n  &lt;policies&gt;\n    &lt;policy name=\"BlockLOLBins\" \n            class=\"User\" \n            displayName=\"$(string.BlockLOLBins)\"\n            explainText=\"$(string.BlockLOLBins_Help)\"\n            key=\"Software\\Policies\\W11Block\"\n            valueName=\"BlockLOLBins\"&gt;\n      &lt;parentCategory ref=\"W11_App_Blocking\" \/&gt;\n      &lt;supportedOn ref=\"windows:SUPPORTED_Windows_10_0\" \/&gt;\n      &lt;enabledValue&gt;\n        &lt;decimal value=\"1\" \/&gt;\n      &lt;\/enabledValue&gt;\n      &lt;disabledValue&gt;\n        &lt;decimal value=\"0\" \/&gt;\n      &lt;\/disabledValue&gt;\n    &lt;\/policy&gt;\n  &lt;\/policies&gt;\n&lt;\/policyDefinitions&gt;\n<\/code><\/pre>\n<h2>Test ve Do\u011frulama<\/h2>\n<h3>Test Script'i<\/h3>\n<pre><code class=\"language-powershell\">function Test-ApplicationBlocking {\n    [CmdletBinding()]\n    param(\n        [string]$TestUser = \"testuser@domain.local\"\n    )\n    \n    # Test edilecek uygulamalar\n    $testApps = @(\n        @{Name=\"PowerShell\"; Path=\"powershell.exe\"; Command=\"-NoProfile -Command Write-Host 'Test'\"},\n        @{Name=\"CMD\"; Path=\"cmd.exe\"; Command=\"\/c echo Test\"},\n        @{Name=\"CertUtil\"; Path=\"certutil.exe\"; Command=\"-?\"}\n    )\n    \n    Write-Host \"Testing Application Blocking for: $TestUser\" -ForegroundColor Cyan\n    Write-Host \"=\" * 50\n    \n    foreach ($app in $testApps) {\n        try {\n            # RunAs ile test\n            $credential = Get-Credential -UserName $TestUser\n            $process = Start-Process -FilePath $app.Path `\n                                    -ArgumentList $app.Command `\n                                    -Credential $credential `\n                                    -PassThru `\n                                    -Wait `\n                                    -ErrorAction Stop\n            \n            if ($process.ExitCode -eq 0) {\n                Write-Host \"\u274c $($app.Name): NOT BLOCKED\" -ForegroundColor Red\n            } else {\n                Write-Host \"\u2705 $($app.Name): BLOCKED\" -ForegroundColor Green\n            }\n        }\n        catch {\n            Write-Host \"\u2705 $($app.Name): BLOCKED (Exception)\" -ForegroundColor Green\n        }\n    }\n}\n<\/code><\/pre>\n<h2>Rollback Plan\u0131<\/h2>\n<h3>Acil Durum Geri Alma<\/h3>\n<pre><code class=\"language-powershell\">function Emergency-Rollback {\n    param(\n        [string]$GPOName = \"W11-User-Application-Blocking\"\n    )\n    \n    # GPO'yu devre d\u0131\u015f\u0131 b\u0131rak\n    $GPO = Get-GPO -Name $GPOName\n    $GPO.GpoStatus = \"AllSettingsDisabled\"\n    \n    # GPO linklerini kald\u0131r\n    Get-GPOReport -Name $GPOName -ReportType Xml | \n        Select-Xml -XPath \"\/\/LinksTo\/SOMPath\" | \n        ForEach-Object {\n            Remove-GPLink -Name $GPOName -Target $_.Node.InnerText -Confirm:$false\n        }\n    \n    # Kullan\u0131c\u0131larda zorla g&uuml;ncelleme\n    Invoke-Command -ComputerName (Get-ADComputer -Filter *).Name -ScriptBlock {\n        gpupdate \/force\n    }\n    \n    Write-Host \"Emergency rollback completed!\" -ForegroundColor Yellow\n}\n<\/code><\/pre>\n<h2>Monitoring ve Raporlama<\/h2>\n<h3>Event Log \u0130zleme<\/h3>\n<pre><code class=\"language-powershell\"># AppLocker\/SRP event monitoring\nfunction Get-BlockedApplicationEvents {\n    param(\n        [int]$Hours = 24\n    )\n    \n    $startTime = (Get-Date).AddHours(-$Hours)\n    \n    # Event ID'ler\n    # 865: SRP blocked\n    # 866: SRP warning\n    # 8003: AppLocker blocked\n    \n    Get-WinEvent -FilterHashtable @{\n        LogName = 'Application'\n        ID = 865, 866, 8003\n        StartTime = $startTime\n    } | Select-Object TimeCreated, Id, Message, UserId |\n        Export-Csv \"BlockedApps_$(Get-Date -Format 'yyyyMMdd').csv\"\n}\n<\/code><\/pre>\n<h2>&Ouml;nemli Uyar\u0131lar<\/h2>\n<h3>Kritik Dikkat Edilmesi Gerekenler<\/h3>\n<ol>\n<li>\n<p><strong>rundll32.exe Engelleme<\/strong><\/p>\n<ul>\n<li>Bir&ccedil;ok sistem fonksiyonu rundll32 kullan\u0131r<\/li>\n<li>Engellemeden &ouml;nce kapsaml\u0131 test yap\u0131n<\/li>\n<li>Alternatif: Yaln\u0131zca belirli DLL'lere izin verin<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>msiexec.exe K\u0131s\u0131tlamas\u0131<\/strong><\/p>\n<ul>\n<li>Windows Update'ler etkilenebilir<\/li>\n<li>SCCM\/Intune da\u011f\u0131t\u0131mlar\u0131 bozulabilir<\/li>\n<li>&Ccedil;&ouml;z&uuml;m: Sistem hesaplar\u0131 i&ccedil;in istisna<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>wevtutil.exe<\/strong><\/p>\n<ul>\n<li>Log toplama sistemleri etkilenebilir<\/li>\n<li>SIEM entegrasyonlar\u0131 kontrol edilmeli<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>\u0130leri Seviye Yap\u0131land\u0131rmalar<\/h2>\n<h3>AppLocker ile Entegrasyon<\/h3>\n<pre><code class=\"language-xml\">&lt;AppLockerPolicy Version=\"1\"&gt;\n  &lt;RuleCollection Type=\"Exe\" EnforcementMode=\"Enabled\"&gt;\n    &lt;FilePublisherRule Id=\"a61c8b3c-a27f-4c8b-8e8a-8b4e62d8565f\" \n                       Name=\"MICROSOFT WINDOWS OPERATING SYSTEM\" \n                       Description=\"\" \n                       UserOrGroupSid=\"S-1-1-0\" \n                       Action=\"Allow\"&gt;\n      &lt;Conditions&gt;\n        &lt;FilePublisherCondition PublisherName=\"O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US\" \n                                ProductName=\"MICROSOFT&reg; WINDOWS&reg; OPERATING SYSTEM\" \n                                BinaryName=\"*\"&gt;\n          &lt;BinaryVersionRange LowSection=\"*\" HighSection=\"*\"\/&gt;\n        &lt;\/FilePublisherCondition&gt;\n      &lt;\/Conditions&gt;\n      &lt;Exceptions&gt;\n        &lt;!-- LOLBins exception listesi --&gt;\n        &lt;FilePathCondition Path=\"%SYSTEM32%\\certutil.exe\"\/&gt;\n        &lt;FilePathCondition Path=\"%SYSTEM32%\\bitsadmin.exe\"\/&gt;\n      &lt;\/Exceptions&gt;\n    &lt;\/FilePublisherRule&gt;\n  &lt;\/RuleCollection&gt;\n&lt;\/AppLockerPolicy&gt;\n<\/code><\/pre>\n<h2>Sonu&ccedil; ve &Ouml;neriler<\/h2>\n<p>Bu GPO tabanl\u0131 uygulama engelleme stratejisi:<\/p>\n<ul>\n<li>\u2705 Kullan\u0131c\u0131 seviyesinde g&uuml;&ccedil;l&uuml; kontrol sa\u011flar<\/li>\n<li>\u2705 LOLBins sald\u0131r\u0131 vekt&ouml;rlerini minimize eder<\/li>\n<li>\u2705 MITRE ATT&amp;CK T1218 tekniklerini engeller<\/li>\n<li>\u2705 Zero Trust prensipleriyle uyumludur<\/li>\n<\/ul>\n<p><strong>Kritik Ba\u015far\u0131 Fakt&ouml;rleri:<\/strong><\/p>\n<ol>\n<li>Test ortam\u0131nda kapsaml\u0131 validasyon<\/li>\n<li>Kademeli da\u011f\u0131t\u0131m stratejisi<\/li>\n<li>\u0130stisna y&ouml;netimi prosed&uuml;rleri<\/li>\n<li>S&uuml;rekli monitoring ve iyile\u015ftirme<\/li>\n<\/ol>\n<p>v<\/p>","excerpt":"Bu yap\u0131land\u0131rma,\u00a0Kullan\u0131c\u0131 Ba\u011flam\u0131nda Uygulama Engelleme stratejisi ile LOLBins ve bilinen k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131mlar\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 engelleyerek sald\u0131r\u0131 y\u00fczeyini minimize eder.","created_at":"2025-11-26 17:47:33","updated_at":"2026-09-08 00:39:21","category_id":6,"view_count":747,"reading_time":6,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-11-26 14:47:33","featured_image":"resimyok.jpg","slug":"windows-gpo-tabanli-uygulama-engelleme-kullanici-baglaminda-guvenlik-sertlestirmesi","category_name":"Sistem","category_slug":"sistem"}