[#6548] 1.8.4 p1, warning roundup — Daniel Berger <Daniel.Berger@...>
Hi all,
[#6552] Socket Documentation — zdennis <zdennis@...>
Attached is a patch against the latest socket.c in the ruby_1_8 branch. It covers all Socket
On 11/3/05, zdennis <zdennis@mktec.com> wrote:
Gavin Sinclair wrote:
zdennis wrote:
On 11/9/05, Zach Dennis <zdennis@mktec.com> wrote:
Hi.
[#6558] Method of feeding input to regexp matching — Nikolai Weibull <mailing-lists.ruby-core@...>
I would very much like to be able to provide a Regexp object input from
[#6572] Stack trace consumes information. patch... — Hugh Sasse <hgs@...>
I have just had output like this from rails:
[#6588] Object#clone missing documentation — Eero Saynatkari <ruby-ml@...>
It appears that Object#clone, unlike Object#dup, retains
Hi,
I've attached a documentation patch which tries to address this shortcoming.
Kev Jackson wrote:
[#6602] Re: Unpack Endian Bug — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
Berger, Daniel wrote:
[#6604] Sandboxing without $SAFE — why the lucky stiff <ruby-core@...>
I've been playing with Ruby sandboxing alot over the past several
[#6619] Wildness: Purpose of NOEX_PUBLIC Flag in rb_add_method? — "Charles E. Thornton" <ruby-core@...>
Several Different references to 'noex'
Charles E. Thornton wrote:
[#6625] Array::fill causes segfaults after many calls — noreply@...
Bugs item #2824, was opened at 2005-11-14 23:11
Hi,
[#6629] Strange error messages using DRb/TupleSpace — Eric Hodel <drbrain@...7.net>
Using
[#6636] alarming changes — "Ara.T.Howard" <ara.t.howard@...>
[#6639] Tuple Class — TRANS <transfire@...>
If I put together a good Tuple class for Ruby could it go into core? I
[#6650] REXML Update Please — zdennis <zdennis@...>
I submitted this as an RCR, but I didn't know that RCR's aren't for the stdlib. Matz commented on
Hi,
Yukihiro Matsumoto wrote:
[#6660] Ruby on Neko ? — Nicolas Cannasse <ncannasse@...>
Hi folks,
Nicolas Cannasse wrote:
Florian Growrote:
Nicolas Cannasse <ncannasse@motion-twin.com> writes:
On Sun, 20 Nov 2005, Christian Neukirchen wrote:
[#6672] testing for hardlink with "test(?-, ...)" flawed on Windows — noreply@...
Bugs item #2858, was opened at 2005-11-20 16:35
Hi,
--- nobuyoshi nakada <nobuyoshi.nakada@ge.com> wrote:
[#6684] semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...>
Hi all,
On Tue, Nov 22, 2005 at 08:22:59AM +0900, Stefan Kaes wrote:
Mauricio Fern疣dez wrote:
On Nov 21, 2005, at 4:37 PM, Stefan Kaes wrote:
Eric Hodel wrote:
Hi,
Yukihiro Matsumoto wrote:
mathew wrote:
Stefan Kaes wrote:
On Tuesday 22 November 2005 12:31, Steven Jenkins wrote:
Hi --
>>>>> "m" == mathew <meta@pobox.com> writes:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
On Nov 21, 2005, at 9:37 PM, Stefan Kaes wrote:
Eric Hodel wrote:
URABE Shyouhei wrote:
On Tue, 22 Nov 2005, Stefan Kaes wrote:
Ara.T.Howard wrote:
Hi --
David A. Black wrote:
Hi --
David A. Black wrote:
Hi --
David A. Black wrote:
Hi -
On Tuesday 22 November 2005 15:37, David A. Black wrote:
Hi --
On Tue, 22 Nov 2005, Stefan Kaes wrote:
Mathieu Bouchard wrote:
[#6721] String#index does not work correctly on SuSE10.0 x86_64 — "Kanis, Lars" <Kanis@...>
Hi folks,
[#6798] ruby 1.8.4 preview2 — Yukihiro Matsumoto <matz@...>
Hi,
On Nov 30, 2005, at 8:03 AM, Yukihiro Matsumoto wrote:
>>>>> "E" == Eric Hodel <drbrain@segment7.net> writes:
On Dec 4, 2005, at 4:07 AM, ts wrote:
>>>>> "E" == Eric Hodel <drbrain@segment7.net> writes:
On 11/30/05, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi.
Re: Sandboxing without $SAFE
On 10/11/05, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote: > > I've been playing with Ruby sandboxing alot over the past several > weeks. I've been using remove_const and redefinitions of classes to > limit Ruby rather than $SAFE. I want to offer an interpreter which can > be scripted without needing to learn tainting and still giving the > ability to `eval'. > > Here are the assumptions: > 1. The filesystem is chroot'd or, better yet, a virtual filesystem > implemented in Ruby memory. (Like MockFS.) > 2. Scripts will be monitored for CPU usage and consuming processes will > be killed. > 3. STDERR, STDIN and STDOUT are attached to the user's input and output > (the browser). > 4. The following constants are removed from Object: Continuation, GC, > ObjectSpace, Process. > 5. The following methods are removed or redefined in Kernel: (backtick), > abort, autoload, autoload?, exec, exit, exit!, getc, gets, fork, load, > readline, readlines, require, select, syscall, system, test. > 6. As a part of #1, the following class are redefined to prevent them > from accessing the actual filesystem: File, FileTest, Dir, DBM, > File::Stat. > 7. All communication to the interpreter is done through a UNIXServer > socket, like this: > > s = UNIXServer.open( socket_path ) > # .. removal of all constants (including UNIXServer), loading of libs > while true > Thread.start( s.accept ) do |s| > if cmd = s.gets > s.write eval(cmd) > s.close > end > end > end > > It's a bit more complicated than this, but you get the idea. > > My questions are three: > 1. Are removed constants and methods available elsewhere in the > interpreter? > 2. Could this be distilled into a general practice, as standard as $SAFE? > 3. In general, what am I overlooking? > > _why > > > Oh yeah, I forgot. Use defense in depth. Don't just remove all the ways to get a handle to, say, ObjectSpace, also remove any special abilities ObjectSpace has so that, even if they find a way to get ObjectSpace, ObjectSpace.each_object does absolutely nothing. Make an object of each class (ObjectSpace#each_method allows specifying a class) with no methods except a method_missing that hangs the interpreter (and thwaps other running threads so that they can't, in parallel, skip your trap, perhaps by REALLY hanging the interpreter) so that, even if they get through your first two lines of defenses and get a handle to the 'destroyed' each_object method, they have a good chance of hanging the interpreter when they try to find an object, like GC, that you've hidden. Destroy their abilities not just on the hard, outer shell, but inside as well.