Aplikační firewall hlídající kaskádu parent PID

Aplikační firewall hlídající kaskádu parent PID
« kdy: 12. 06. 2023, 23:41:15 »
Existuje (aplikační)firewall  pro Linux a Pro Windows, který by uměl násladující funkci? Potažmo mají firewally tuto funkci běžně?

Když v pravidlu je konkrétní aplikace( cesta,hash,... to je jedno), analyzují i sérii Parent PID , kterou aplikaci spustily, a obráceně  aplikují dané kopii pravidel i na aplikace spuštěné danou aplikací? (jsou to 2 případy - dopředně i zpětně)

Cil: znemožnění malwaru obejit omezení firewallu tím, že si spustí komunikační podproces

Modelové příklady:
1. (aplikace pravidel PPID na potomky) i když potomek je whitelistovaný) Mám aplikaci wget.exe, kterou mám whitelistovanou (že se může připojovat kamkoli).  Pokud ale stáhnu a spustím malware (hmm, zamyslel jsem se, kdy naposled .....), který by si něco chtěl stáhnout nepo curl -XPOSTnout, bude chytrý a nebude iniciovat spojení na vlastní triko, ale třeba spustí wget.exe přes %PATH%.. Tady by firewall měl ohlídat, že stejná pravidla se použijí pro wget.exe, jelikož nyní je v roli podprocesu (ačkoli technicky  vždy je každý proces protomek nějakého procesu, holt se to nějak musí rozlišit, nebo explorer.exe,cmd budou whitelistované)

2.
Mám nějakou aplikaci, do které si mohu stáhnout pluginy. nebo aplikace umožňuje skriptování a může dojít třeba rozšířením nebo updatem, "že zvlčí".(neže byse pozměnil hash samotné binárky, ale vir se stáhnul do pluginů.  že díky malware pluginu spustí child process. A teď aby se na child procesy aplikovaly pravidla jako pro neznámé  procesy , i kdyby  třeba  ho uložila pod jménem .byl wget.exe . (Opravdu jde o jiný příklad enež 1, je nutno vzít i v úvahu něco jako POLICY pro aplikace, co nejsou v seznamu.)


JDe to specifikovat i s nějakými nastaveními a flagy, jako kolik úrovní hledat zpět, případě přerušit lookup, pokud se narazí známý PPID, případně vynutit pravidlo, pokud jeden z PPID bude neznámý...?

Navíc nějak je potřeba spravovat priority pravidel.

3. uplně mimo, je možné nějak ve windows a v linuxu zakázat aplikacím (všem nebo vybraným) spouštět podprocesy / nebo (obráceně) určit jména aplikací, které nemohou být (v roli child process) spouštěný nadřazeným procesem ? Něco jako firewall na "fork?" (Jasně, dost by to nabouralo základní smysl a funkci OS), ale jak jinak zakázat :
 - neznámým aplikacím spouštět podprocesy
 - vybraným procesům jako wget,ssh,telnet zakázat aby byly spouštěny neznámými procesy
?


5 Nějak trackovat, soubory vytvořené aplikací, aby dědily pravidla dle aplikace, která je vytvořil (zapsala nadisk)?


---
v příáḱladech mám na mysli aplikační firewall, ten co běží na tom počítači, co má chránit, takové ty zone alarmy, symantecy atd.
« Poslední změna: 15. 06. 2023, 07:02:33 od Petr Krčmář »


oss

  • ***
  • 244
    • Zobrazit profil
    • E-mail
Re:Aplikační firewall hlídající kaskádu "parent PID"
« Odpověď #1 kdy: 13. 06. 2023, 10:11:55 »
Na Windows toto bezne riesia lepsie Antivirusove programy (Defender, Eset).

> uplně mimo, je možné nějak ve windows a v linuxu zakázat aplikacím (všem nebo vybraným) spouštět podprocesy / nebo (obráceně) určit jména aplikací, které nemohou být (v roli child process) spouštěný nadřazeným procesem ?

Na Windowse to ide, urcite to vie AppLocker, vie to ESET, a je mozne ze to ide priamo nastavit cez Group policy.

Na linuxe sa s tym vies vyhrat cez Selinux, no tam to bude horsie, lebo plno linuxovach aplikacii funguju na tom, ze spustaju ine procesy.

Re:Aplikační firewall hlídající kaskádu "parent PID"
« Odpověď #2 kdy: 13. 06. 2023, 12:11:49 »
Je to mozny pomoci control groups. Existuje modul, ktery umoznuje propojit firewall a control groups.
Napr. server ma hlavni upstream interface a backup inserface.
Vytvoris systemd unitu pro backup agenta a specifikues control group konktretni jmeno.
Na FW reknes: na tomhle interface smi odesilat packety pouze procesy z teto control group.

SSHko(a dalsi) pak klidne muzou poslouchat na vsech interfacech, ale stejne jim to bude k nicemu.

PS: naspoledy kdyz jsem to zkousel, tak naslo filtrovat prijimani packetu, jen odesilani. Takze 1. packet demonu prijde vzdy. Odpoved se ale uz neodesle.

Wasper

  • ***
  • 120
    • Zobrazit profil
    • E-mail
Re:Aplikační firewall hlídající kaskádu "parent PID"
« Odpověď #3 kdy: 15. 06. 2023, 02:15:45 »
Přesně tohle je řešitelné přes selinux, jedna z věcí, které umí, je když něco v kontextu např user_t spustilo binárku wget_exe_t tak aby to automaticky nahodilo kontext wget_t, zatímco při puštění z podezrelyprogram_t do nějakého restricted_t.
A každý z těch kontextů může mít jiná práva. Jediný problém je, že je to dost netriviální hračka.

Re:Aplikační firewall hlídající kaskádu parent PID
« Odpověď #4 kdy: 15. 06. 2023, 10:36:01 »
Na Linuxu integraci předchozích dvou případů tj selinux a cgroups + apparmor pravidla pro iptables resi sandbox Firejail