Windows Ağını Anlamak_WFP

  • Windows Ağını Anlamak_WFP

Windows Ağını Anlamak

  • Windows Ağını Anlamak

WFP

Terim Açıklamaları

https://learn.microsoft.com/en-us/windows/win32/fwp/object-model https://learn.microsoft.com/en-us/windows/win32/fwp/basic-operation https://learn.microsoft.com/en-us/windows-hardware/drivers/network

callout: Bir callout, Windows Filtreleme Platformu’nun yeteneklerini genişleten işlevler sağlar. Callout, bir GUID anahtarı ve callout’u benzersiz şekilde tanımlayan bir dizi callout fonksiyonundan oluşur. callout driver: Callout driver, Windows Filtreleme Platformu’na callout’lar kaydeden bir sürücüdür. Callout driver, bir filtre sürücüsü türüdür. callout function: Callout fonksiyonu, Windows Filtreleme Platformu tarafından belirli bir görevi yerine getirmek için çağrılan bir fonksiyondur. Callout fonksiyonu, bir callout ile ilişkilidir. filter: Bir filtre, Windows Filtreleme Platformu tarafından filtreleme işlemleri gerçekleştirmek için çağrılan bir fonksiyon setidir. Filtre, bir GUID anahtarı ve filtre’ı benzersiz şekilde tanımlayan bir dizi filtre fonksiyonundan oluşur. filter engine: Filtreleme motoru, Windows Filtreleme Platformu’nun filtreleme işlemlerini gerçekleştirdiği bileşendir. Filtreleme motoru, Windows Filtreleme Platformu’na kaydedilen filtre fonksiyonlarının çağrılmasından sorumludur. filter layer: Bir filtre katmanı, Windows Filtreleme Platformu tarafından filtreleme işlemleri gerçekleştirmek için çağrılan bir fonksiyon setidir. Filtre katmanı, bir GUID anahtarı ve filtre katmanını benzersiz şekilde tanımlayan bir dizi filtre katmanı fonksiyonundan oluşur.

Dispatcher kuyruğu, geri aramayı mümkün olduğunca hızlı bir şekilde tetikler, kuyruk dolana kadar beklemeye gerek yoktur. Bu nedenle gerçek zamanlılığı karşılayabilir. Kullanıcı geri araması yavaş olduğunda, engellenen paketler mümkün olduğunca bir sonraki kuyruğa eklenir, kuyruk limiti 256’dır. Daha fazla engellenen paket sistem tarafından önbelleğe alınır, kabaca yapılan testler önbellek kapasitesinin 16500 olduğunu gösterir, sistem önbellek kapasitesi makine performansına ve yapılandırmaya göre farklılık gösterebilir. Kullanıcı geri araması paketleri işlerken iki paket varlığı vardır: İç çekirdek paketi, geri arama kuyruğu işlendikten sonra birlikte serbest bırakılır. Bu nedenle geri arama yavaş olduğunda, bir geri arama yürütmesi en fazla sistemin 256 paket önbellek kapasitesini kilitler. Geri aramadaki kopyalama, tek bir paket işlendikten sonra hemen serbest bırakılır.

FwppNetEvent1Callback içinde paketler kopyalanarak monte edilir, orijinal paket üzerinde herhangi bir işlem yapılmaz, bu nedenle işe herhangi bir etkisi olmaz.

Abonelikler, işlenecek paket sayısını azaltmak için şablon filtreleri kullanabilir:

https://learn.microsoft.com/en-us/windows/win32/api/fwpmtypes/ns-fwpmtypes-fwpm_net_event_enum_template0

filterCondition

FWPM_FILTER_CONDITION0 yapılarından oluşan, farklı filtre koşullarını içeren bir dizi (kopyalanmış filtre koşulları bir hata üretir). Eylemin gerçekleştirilmesi için tüm koşullar doğru olmalıdır. Başka bir deyişle, koşullar AND’lenir. Hiçbir koşul belirtilmemişse, eylem her zaman gerçekleştirilir.

Aynı filtreyi kullanamazsınız Tüm filtreler arasındaki ilişki “ve"dir, hepsinin karşılanması gerekir Microsoft belgelerinde sekiz filtre desteklendiği belirtiliyor, aslında desteklenen filtreler daha fazla olabilir.

FWPM_CONDITION_IP_PROTOCOL

RFC 1700’de belirtildiği gibi IP protokol numarası. FWPM_CONDITION_IP_LOCAL_ADDRESS

Yerel IP adresi. FWPM_CONDITION_IP_REMOTE_ADDRESS

Uzak IP adresi. FWPM_CONDITION_IP_LOCAL_PORT

Yerel taşıma protokolü port numarası. ICMP için mesaj tipi. FWPM_CONDITION_IP_REMOTE_PORT

Uzak taşıma protokolü port numarası. ICMP için mesaj kodu. FWPM_CONDITION_SCOPE_ID

Arayüz IPv6 kapsam tanımlayıcısı. İç kullanım için ayrılmıştır. FWPM_CONDITION_ALE_APP_ID

Uygulamanın tam yolu. FWPM_CONDITION_ALE_USER_ID

Yerel kullanıcının kimliği. Sistemde zaten kayıtlı abonelikleri numaralandırırken iki abonelik bulduk, sessionKey GUID’lerini inceleyerek kim tarafından kaydedildiğini doğrulayamadık, bunları analiz ederek iki aboneliğin şu işlevleri uyguladığını keşfettik:

Tüm FWPM_NET_EVENT_TYPE_CLASSIFY_DROP paketlerine abone olundu ve tüm atılan paketler istatistiklendi. Tüm FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW paketlerine abone olundu, bu trafik istatistikleri için kullanılabilir. Bu iki abonelikte kullanılan condition filter, FWPM_CONDITION_NET_EVENT_TYPE (206e9996-490e-40cf-b831-b38641eb6fcb) idi, bu da filtreleme sağlayan filtrenin Microsoft belgelerinde bahsedilen 8’in dışında daha fazla olduğunu gösterir.

Daha fazla araştırma, kullanıcı modu çağrısı arayüzünün yalnızca drop olaylarını yakalayabildiğini, drop olmayan olayların çekirdek modunda elde edilmesi gerektiğini gösteriyor, bu yüzden mikro izolasyon FWPM_CONDITION_NET_EVENT_TYPE’yi olayları almak için kullanamaz.