Nmap Development mailing list archives
Ncat's Lua socket abstraction - API protection, error behavior?
From: Jacek Wielemborek <wielemborekj1 () gmail com>
Date: Thu, 29 Aug 2013 18:05:55 +0200
Hi, During my last meeting with David, one of the main topics of the talk was the error behavior of Ncat's new Lua socket abstraction. While we agreed in many cases, there's one problem that wasn't solved yet. Since all filter scripts share the same namespace, there's a risk that one filter layer can break another and lead to some nasty crash. There's many ways this could happen - I exposed three global variables (connections, connection_roots and socket) that could be written to, replaced or changed in some other ways. I asked the #lua guys from Freenode for solutions and while there could be some hacks done with userdata, tables and such, they pointed out that there might be no point trying to create a bullet-proof API. I mean, David suggested that I should try to make the table read-only. But then, it's a table, there's setmetatable(), there's rawset(), it wouldn't be hard to walk around this protection. Removing these functions would cripple the standard library. We could also move the variables to registry, but they're reachable there. I heard that even stack isn't completely inaccessible. Securing all the places would take loads of time and due to Lua's transparency, we still couldn't be sure that some strange script wouldn't mess it all up. Perhaps it would be better do define things that just shouldn't be done (like overwriting the registry) and assume that user can't do them by mistake, so there's no point securing them all? I feel quite lost in where to draw the line here. Yours, Jacek Wielemborek _______________________________________________ Sent through the dev mailing list http://nmap.org/mailman/listinfo/dev Archived at http://seclists.org/nmap-dev/
Current thread:
- Ncat's Lua socket abstraction - API protection, error behavior? Jacek Wielemborek (Aug 29)
- Re: Ncat's Lua socket abstraction - API protection, error behavior? Daniel Miller (Aug 29)
- Re: Ncat's Lua socket abstraction - API protection, error behavior? Jacek Wielemborek (Sep 01)
- Re: Ncat's Lua socket abstraction - API protection, error behavior? Patrick Donnelly (Sep 01)
- Re: Ncat's Lua socket abstraction - API protection, error behavior? David Fifield (Sep 03)
- Re: Ncat's Lua socket abstraction - API protection, error behavior? Daniel Miller (Aug 29)