DJB felhívása

Címkék

Daniel J. Bernstein (qmail, djbdns, daemontools, stb. szerzője) egyfajta felhívást intézett a UNIX(szerű) kernelek fejlesztőihez egy disablenetwork() elnevezésű függvény megvalósítására.A függvény meghívása az addig létrejött socketek kivételével meg kell, hogy gátolja a futó programot a hálózati kommunikációban. Ez azt jelentené, hogy minden, disablenetwork() után meghívott bind(), connect(), sendto(), vagy socket() hívás EACCESS hibával térne vissza.

Kivételt képeznének az AF_UNIX socket műveletek, mivel azok nem hálózati, hanem fájlrendszer szinten dolgoznak, tehát nincs miért tiltani őket. A disablenetwork korlátozásai visszavonhatatlanok, öröklődnek a fork() és exec() hívásokon át.

Bernstein a probléma megoldására saját kútfőből és mások levelei alapján eddig nyolc lehetséges megoldást talált:

  • disablenetwork()
  • jail() - FreeBSD
  • ptrace()
  • systrace - OpenBSD/NetBSD
  • selinux
  • pf - OpenBSD/NetBSD csomagszűrő
  • iptables - Linux csomagszűrő
  • RLIMIT_NOFILE

Bernstein szerint a fentiek közül egyik sem igazán jó és hordozható megoldás, leszámítva a disablenetwork() hívást, mivel az direkt erre a célra lenne kialakítva, így a megvalósítás talán széles körűen el tud majd terjedni.

DJB disablenetwork() lapja

Hozzászólások