Vlákno názorů k článku LIDS - Linuxový systém odhalení průniku 2 od anonym - porad se mi nejak nedostava casu a odhodlani...

  • Článek je starý, nové názory již nelze přidávat.
  • 13. 8. 2003 19:49

    anonymní

    porad se mi nejak nedostava casu a odhodlani soucasne, tak abych si procet, jak je to vlastne napsany, takze prosim o to, aby ste me opravili, pokud se nekde krute seknu

    I
    docela dost linuxovych stroju je na x86, takze kam az mi pamet saha, tak linux a moduly bezi v ring 0 a uzivatelsky procesy v ring 3.

    II
    zpristupneni systemovych volani v userspace (1. rozhranni k jadru) by asi mohly byt realizovany pomoci deskriptoru brany v ldt/gdt toho ktereho procesu (brana s pravy ring 3 ukazujici na ring 0 deskriptor spustitelne stranky:offsetu).

    III
    2. vrstva k rozhranni jadra by asi byly kanaly(vsechny typy souboru) v podobe souboru proc, netlinku, atd. ktery ovsem k vytvoreni a fungovani potrebuji spolupraci jadra.

    IV
    neni mi moc jasny, na kolika mistech, jak a jestli se vubec pouziva sdilena pamet jadra a userspace, ale jestli jo, tak je to 1.5-ta vrstva?

    V
    proces-proces je asi prace ipc syscallu a kanalu podonych 2. vrstve k jadru

    VI
    no a neopravnene ziskavani je asi bud pres syscally donutit jadro aby udelalo nejakou blbost nebo pres zpracovani kanalu proces-jadro nebo proces-proces donutit druhy konec s vetsimi pravy udelat nejakou blbost.

    VII
    no a ted by me zajimalo co vlastne v tomdle scenari dela lids a co rsbac a co skutecne medusa? kam se kdo povesi o co jsou schopny ohlidat.

    VIII
    medusa hadam vlozi svuj kod misto puvodnich syscall-u a ty degraduje na obycejne interni funkce, ktere zavola jen v pripade, ze tomu nastaveni odpovida, tedy brany z ring 3 do ring 0 ukazuji na volani implementovane medusou a dovoli tak naprogramovat si libovolne restrikce, pokud se s tim nekomu chce parat - i kdyz uplne nejradi bych asi v nekterych situacich videl vymazani brany k spustitelnemu ofsetu v ring 0 z ldt a nechat proces bez milosti a moznosti pokracovat padnout(kdo vi jestli to meduza dela?)

    IX
    a dalsi co me zajima, jestli je nektery z techto patchu schopen pracovat s otevrenyma kanalama(vsechny typy souboru, pripadne i to co bude asi technicky nemozne - sdilenou pameti) a detekci stavu budoucich chyb pri zpracovani obsahu techto kanalu. podle toho co jesm slysel o lids by to mohl byt ten pravy bastl, ktery se tim pro konkretni zname pripady snad okrajove zabyva - trefil jsem se aspon priblizne? (+ asciarmor + stackguard a bylo by vystarany?)

  • 26. 8. 2003 18:23

    hkmaly (neregistrovaný)

    II Kdepak, pro syscall se pouziva interrupt, konkretne 0x80.
    III /proc, /dev a podobne nejsou nic jineho nez
    dohoda o tom jak do syscallu read/write vrazit funkcnost navic.
    IV Myslim ze pouze ve funkcich copy_from_user a copy_to_user ... kazdopadne VZDY je to ze strany kernelu
    V proces-proces je mozne realizovat tunou zpusobu. IPC, pojmenovane sockety, fork, ... vite ze pres socket jde poslat file descriptor ?
    VI Nejcasteji jde o kanaly proces-proces, presneji fork.
    VII Predpokladam ze prepisuji syscally.
    VIII Neni to presne, obvykle se nahrazuji funkce, tj syscall zavola to same misto, ktere po par detailech v assembleru skoci na funkci z tabulky. A tuto tabulku lids/meduza meni, alespon to predpokladam.
    Vis ze exit je syscall ? Nejak jsem nepochopil co dosahnes odpojenim procesu od kernelu. Co ho misto toho ukoncit ?
    IX Jak jsem rikal, sdilena pamet se pouziva pouze ze strany kernelu a vsechny soubory jedou pres syscally. Tedy no problem, pokud jsem pochopil.