[langsec-discuss] Basic results?

Peter Bex Peter.Bex at xs4all.nl
Tue May 27 18:48:10 UTC 2014


On Tue, May 27, 2014 at 08:31:39PM +0200, Sven Kieske wrote:
> It's nice you mention this filter.
> 
> I may add that this is also used by the command line tool "tc"
> which in turn is used by e.g. libvirt and many more tools
> to accomplish traffic control (quality of service) on many modern
> network devices and cloud platforms.

Cool, that one is new to me.

> PS: I got a question regarding languages which do just allow a limited
> number of recursions or loops within one given program:
> 
> Could this feature not be easily bypassed if I can store
> intermediary results e.g. in a file and just re-run the code
> with these results as an input, again and again?

If the "load" operation is a procedure call, that would count as
a procedure call, eventually resulting in depletion of allotted
resources.  In a language which is implemented in terms of explicit
continuations, every invocation of a continuation could decrease
the amount of available "fuel" to run the program, eventually getting
terminated, no matter what you do.  In languages without explicit
continuations (or instruction pipeline?), but with a baroque set of
control flow operators you'd probably have to ensure that you build
this notion into every such operator.

The CHICKEN Scheme system has an extension library which does something
like this.  (more concretely: it relies on the implicit continuations
generated by the interpreter and hooks into that, rather than performing
its own CPS transformation).  That's the "sandbox" egg:
http://wiki.call-cc.org/eggref/4/sandbox

Please note that this egg has never been the subject of a serious review
of its security attributes, so there are likely to be flaws in it, but
it's a nice proof of concept.

Cheers,
Peter
-- 
http://www.more-magic.net


More information about the langsec-discuss mailing list