Mitenkäs debianissa (Sarge) saa annettua tavalliselle käyttäjälle oikeudet määrättyyn I/O -porttiin ?
Esim, jos LPT1:ssä on kiinni omatekoinen laite, niin tuo LPT1:hän näkyy osoitteessa 378h.
Tein pienen testiohjelman, joka ensin pyytää oikeudet ioperm($378,1, 1)
ja sitten pyrkii käyttämään porttia suoralla assemblerosoituksella:
mov EDX,378h
in AL,DX
root -käyttäjänä ohjelmani toimii, tavallisena käyttäjänä ei, vaan valittaa oikeuksien puutteesta.
Miten saan annettua normaalikäyttäjälle oikeudet porttiin 378h ?
Esim, jos LPT1:ssä on kiinni omatekoinen laite, niin tuo LPT1:hän näkyy osoitteessa 378h.
Tein pienen testiohjelman, joka ensin pyytää oikeudet ioperm($378,1, 1)
ja sitten pyrkii käyttämään porttia suoralla assemblerosoituksella:
mov EDX,378h
in AL,DX
root -käyttäjänä ohjelmani toimii, tavallisena käyttäjänä ei, vaan valittaa oikeuksien puutteesta.
Miten saan annettua normaalikäyttäjälle oikeudet porttiin 378h ?
Vastaukset 1
Vanhimmat
Olisi äärimmäinen tietoturvariski antaa normaalien käyttäjien raiskata io-väylää :D
Joku satunnainen wannabe-haksori voisi täten posauttaa vaikka etänä serverikoneen printterin. ainakin teoriassa.
Ja kun io-porttien käsittely on suoraan hardwarella, ei niitä voi tehokkaasti "hookata", eli niiden käytölle ei voi myöntää tarkempia oikeuksia kuin root ... root-käyttäjän käynnistämien softien pcb-tauluun pistetään se IOPL -bitti päälle joten ne pääsee kiinni io-portteihin, et sillee ... mut vittu ei tosiaa mitää tarkempaa kontrollia ole X86-arkkitehtuurissa tohon tietääkseni mahdollista tehdä.
Yks mahdollisuus on, että ajaa softan SUID-root oikeuksilla, ja sitten laskee softan ajo-oikeudet vaikka normaalikäyttäjälle. Kuitenkin softa on käynnistetty IOPL-bitti pystyssä, niin se pääsee kuitennii io-portteihin kiinni. Oon aika varma tästä asiasta.
Mut mihin ihmeesee tarvii normaalikäyttäjä io-porttien manipulaatiota?