On Fri, Aug 29, 2014 at 10:40 AM, Alexander Burger <a...@software-lab.de> wrote:
>
> The 'repl' in the PicoLisp release has about the same security as an SSH
> session (if it is used via an SSL session). With the standard role and
> permission system, you have a good control about who is allowed to use
> it.

The idea here is not access to the REPL, but (quote from the Tcl ref):
«safe to execute an arbitrary script from your worst enemy without
fear of that script damaging the enclosing application or the rest of
your computing environment.»

> Then, the most glaring security risks are the 'call' and 'pipe'
> functions, and the pipe functionalities of 'in', 'out' and 'load'. They
> allow a REPL user to directly access the interlying system. If these
> were disabled (can probably done on the Lisp level in the 'repl'

How would you disable them? Would this be ok?
(de annihilate @ (mapcar '((sym) (set sym NIL)) (rest)))
Then call it this way (I think that I understand now why low level functions
should evaluate their args):
(annihilate 'call 'pipe ...)

> function itself), attackers cannot call external commands or processes
> any more (can they?).

This is the delicate/time consuming part: testing, trying to crack a
«safe» interp.

> But then an attacker could still read many files. So perhaps disable all
> I/O functions? How far it makes sense to go?

No idea, but the Tcl guys may have think about this a lot. From the ref:

«««
The following commands are hidden by interp create when it creates a
safe interpreter:
cd encoding exec exit
fconfigure file glob load
open pwd socket source
These commands can be recreated later as Tcl procedures or aliases, or
re-exposed by interp expose.
The following commands from Tcl's library of support procedures are
not present in a safe interpreter:
auto_exec_ok auto_import auto_load
auto_load_index auto_qualify unknown
»»»

I also thought about resources. For showcase purposes, a computation
running more than 5 seconds should be killed. What do you think?

I'm also asking the question in the context of Emulisp. If ever there
is a platform like
http://jsbin.com/ supporting PicoLisp, what «in browser» operations will be
safe to allow?


chri

-- 

http://profgra.org/lycee/ (site pro)
http://delicious.com/profgraorg (liens, favoris)
https://twitter.com/profgraorg
http://microalg.info
--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to