Re: Secure 2.4.x kernel

2001-12-22 Thread Tom Marshall
On Fri, Dec 21, 2001 at 03:25:04PM -0500, Gary MacDougall wrote:
> Hmmm I don't buy that this *couldn't* be done on the Intel.
> I might be overstepping my knowledge, but I'm sure there
> *must* be a way.

The first method that comes to mind is making the stack segment
non-executable.  IIRC, this is not supported by the x86.  It's a real shame,
because that would immediately stop about 99.9% of all buffer overrun
exploits.

-- 
Absurdity, n.: A statement or belief manifestly inconsistent with one's own
opinion.
-- Ambrose Bierce, "The Devil's Dictionary"



Re: Party with porn stars

2001-12-22 Thread Pollywog




>http://codesorcery.net/docs/spamtricks.html



How does Spamassassin compare to Junkfilter, if anyone has used Junkfilter.
Junkfilter is very good, but I am finding that more spam is getting 
through these days.



--
Andrew



kernel-modul compile/install

2001-12-22 Thread id
hello list,
A question with a security aspect and a genral programming:
today I tryes to compile and install the StMichael kernel module:
  StMichael is a LKM that attempts to detect and divert attempts to install a 
  kernel-module backdoor into a running linux system. This is done by 
  monitoring the init_module and delete_module process for changes in the 
  system call table. Detects most modern LKM's, including KIS. Changes: Fixed 
  a   serious bug that could cause a kernel Oops if StMichael was not the 
  first module loaded into the system.  Homepage:
  http://www.sourceforge.net/projects/stjude. By Tim Lawless

I get it compiled, but coud't load it. So I tryes a real Simple one let us 
call it lkm.c youst to see how kernelmodules work. 
 http://www.linuxdoc.org/LDP/lkmpg/mpg.html ...
---8<--
//#define MODULE
#include 
#include 
#include 

int init_module(void) { printk("<1>Hello World\n"); return 0; }
void cleanup_module(void) { printk("<1>Bye, Bye"); }
---8<--
youst a small kenel modul from a tutorial, I compile it with:
gcc-3.0 -Wall -DMODULE -D__KERNEL__ -DLINUX  -c lkm.c 
-I/usr/src/kernel-headers-2.4.12-686/include/
or:
gcc-2.95 -Wall -DMODULE -D__KERNEL__ -DLINUX  -c lkm.c 
-I/usr/src/kernel-headers-2.4.12-686/include/

Whenn I try to insmod it, Nothing youst this output:
#insmod lkm.o
Warning: loading lkm.o will taint the kernel: no license
Segmentation fault
in the /var/log/mesages I found:
.Dec 22 17:35:15 ingwer kernel:  <1>Unable to handle kernel NULL pointer 
.dereference at virtual address 
Dec 22 17:35:15 ingwer kernel:  printing eip:
Dec 22 17:35:15 ingwer kernel: 
Dec 22 17:35:15 ingwer kernel: Oops: 
Dec 22 17:35:15 ingwer kernel: CPU:0
Dec 22 17:35:15 ingwer kernel: EIP:0010:[<>]Tainted: P
Dec 22 17:35:15 ingwer kernel: EFLAGS: 00010293
Dec 22 17:35:15 ingwer kernel: eax:    ebx: 000a   ecx:   
 edx: 4001600a
Dec 22 17:35:15 ingwer kernel: esi: 40016000   edi:    ebp: c339bf9c  
 esp: c339bf70
Dec 22 17:35:15 ingwer kernel: ds: 0018   es: 0018   ss: 0018
Dec 22 17:35:15 ingwer kernel: Process insmod (pid: 1090, stackpage=c339b000)
Dec 22 17:35:15 ingwer kernel: Stack: cc89114c 40016000   
c339bfa4 0150 0805f640 
Dec 22 17:35:15 ingwer kernel: c01347f3 c339bfa4 c339bfbc 
cc8908d3 c339a000 0805f640 bfffab3c
Dec 22 17:35:15 ingwer kernel:cbaca000 c1306360 c0106e1c bfffea6c 
c0106d2b 0805f640 0150 bfffea6c
Dec 22 17:35:15 ingwer kernel: Call Trace: [sys_stat64+103/116] 
[error_code+52/60] [system_call+51/56]
Dec 22 17:35:15 ingwer kernel:
Dec 22 17:35:15 ingwer kernel: Code:  Bad EIP value.

My kernel #uname -a
Linux ingwer 2.4.12-686 #2 Sat Oct 13 20:13:05 EST 2001 i686 unknown

coud managed kenel modules, I built it my own. This are the first 
kernelmodules I build , StMichel came with a configure script , for lkm.c I 
cut and paste the compiler instructions. None is working.
So where coud I find hints, or anybody an Idear what I make wrong???

thanks ingo



Re: Secure 2.4.x kernel

2001-12-22 Thread Tom Marshall

On Fri, Dec 21, 2001 at 03:25:04PM -0500, Gary MacDougall wrote:
> Hmmm I don't buy that this *couldn't* be done on the Intel.
> I might be overstepping my knowledge, but I'm sure there
> *must* be a way.

The first method that comes to mind is making the stack segment
non-executable.  IIRC, this is not supported by the x86.  It's a real shame,
because that would immediately stop about 99.9% of all buffer overrun
exploits.

-- 
Absurdity, n.: A statement or belief manifestly inconsistent with one's own
opinion.
-- Ambrose Bierce, "The Devil's Dictionary"


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]




Re: Party with porn stars

2001-12-22 Thread Pollywog



> > http://codesorcery.net/docs/spamtricks.html


How does Spamassassin compare to Junkfilter, if anyone has used Junkfilter.
Junkfilter is very good, but I am finding that more spam is getting 
through these days.


--
Andrew


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]




kernel-modul compile/install

2001-12-22 Thread id

hello list,
A question with a security aspect and a genral programming:
today I tryes to compile and install the StMichael kernel module:
  StMichael is a LKM that attempts to detect and divert attempts to install a 
  kernel-module backdoor into a running linux system. This is done by 
  monitoring the init_module and delete_module process for changes in the 
  system call table. Detects most modern LKM's, including KIS. Changes: Fixed 
  a   serious bug that could cause a kernel Oops if StMichael was not the 
  first module loaded into the system.  Homepage:
  http://www.sourceforge.net/projects/stjude. By Tim Lawless

I get it compiled, but coud't load it. So I tryes a real Simple one let us 
call it lkm.c youst to see how kernelmodules work. 
 http://www.linuxdoc.org/LDP/lkmpg/mpg.html ...
---8<--
//#define MODULE
#include 
#include 
#include 

int init_module(void) { printk("<1>Hello World\n"); return 0; }
void cleanup_module(void) { printk("<1>Bye, Bye"); }
---8<--
youst a small kenel modul from a tutorial, I compile it with:
gcc-3.0 -Wall -DMODULE -D__KERNEL__ -DLINUX  -c lkm.c 
-I/usr/src/kernel-headers-2.4.12-686/include/
or:
gcc-2.95 -Wall -DMODULE -D__KERNEL__ -DLINUX  -c lkm.c 
-I/usr/src/kernel-headers-2.4.12-686/include/

Whenn I try to insmod it, Nothing youst this output:
#insmod lkm.o
Warning: loading lkm.o will taint the kernel: no license
Segmentation fault
in the /var/log/mesages I found:
.Dec 22 17:35:15 ingwer kernel:  <1>Unable to handle kernel NULL pointer 
.dereference at virtual address 
Dec 22 17:35:15 ingwer kernel:  printing eip:
Dec 22 17:35:15 ingwer kernel: 
Dec 22 17:35:15 ingwer kernel: Oops: 
Dec 22 17:35:15 ingwer kernel: CPU:0
Dec 22 17:35:15 ingwer kernel: EIP:0010:[<>]Tainted: P
Dec 22 17:35:15 ingwer kernel: EFLAGS: 00010293
Dec 22 17:35:15 ingwer kernel: eax:    ebx: 000a   ecx:   
 edx: 4001600a
Dec 22 17:35:15 ingwer kernel: esi: 40016000   edi:    ebp: c339bf9c  
 esp: c339bf70
Dec 22 17:35:15 ingwer kernel: ds: 0018   es: 0018   ss: 0018
Dec 22 17:35:15 ingwer kernel: Process insmod (pid: 1090, stackpage=c339b000)
Dec 22 17:35:15 ingwer kernel: Stack: cc89114c 40016000   
c339bfa4 0150 0805f640 
Dec 22 17:35:15 ingwer kernel: c01347f3 c339bfa4 c339bfbc 
cc8908d3 c339a000 0805f640 bfffab3c
Dec 22 17:35:15 ingwer kernel:cbaca000 c1306360 c0106e1c bfffea6c 
c0106d2b 0805f640 0150 bfffea6c
Dec 22 17:35:15 ingwer kernel: Call Trace: [sys_stat64+103/116] 
[error_code+52/60] [system_call+51/56]
Dec 22 17:35:15 ingwer kernel:
Dec 22 17:35:15 ingwer kernel: Code:  Bad EIP value.

My kernel #uname -a
Linux ingwer 2.4.12-686 #2 Sat Oct 13 20:13:05 EST 2001 i686 unknown

coud managed kenel modules, I built it my own. This are the first 
kernelmodules I build , StMichel came with a configure script , for lkm.c I 
cut and paste the compiler instructions. None is working.
So where coud I find hints, or anybody an Idear what I make wrong???

thanks ingo


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]




RE: Secure 2.4.x kernel

2001-12-22 Thread System Administrator

Well hello list, 

it could be, that i'm overstepping my knowledge (and my english).

If i have well understood, one of the problems of bufferoverruns is 
the follwing:

The assembly statement "jsr" (jump to subroutine) puts the return address
on the same stack, where space for local variables is reserved.

So one solution is to seperate these stacks. So it's more a "problem"
of the  C-Compiler (and the number of Address-Register of the CPU and
memory).


So my questions are :

1) Is my problem description right ?
2) On other plattforms (for example on the newer plattforms like ia64)
   are there seperate stacks ?
3) Why is this not done on  the "0x86"-Plattform ?
   (Historical Reasons ? No chance of a step by step migration 
because of the interplay between programms and libarys ?)







On Fri, 21 Dec 2001, Kelly Martin wrote:

> > Hmmm I don't buy that this *couldn't* be done on the Intel.
> > I might be overstepping my knowledge, but I'm sure there
> > *must* be a way.
> 
> > Going back to my 68k days, it would have been fairly easy
> > to write this. Hey, I'm not an Intel assembly/opcode expert,
> > but it seems to me, I think that you could sit something right
> > in on an interrupt that would alert when a fork/exec call
> > was being made -- it wouldn't take a rocket scientist to
> > figure out that if you could take an interrupt/event on
> > this type of sig, you could certainly redirect the behavior
> > or outcome.
> 
> You've misunderstood.  I was stating that it would be hard to _protect the
> stack against overruns_ on the Intel platform.  What you're talking about
> has nothing to do stack protection.  Fork and exec (being syscalls) are
> already handled as software interrupts, so what you're talking about doing
> is what the kernel already does.
> 
> > The examples pointed out (electric fence, st. james etc.) are
> > fine "workarounds", but they all look a little too "patch-like"
> > for it to be something that is "industrial strength".
> > I just think that intercepting the syscalls like fork and exec
> > at the kernel level for anything that is not "privy" should
> > be a feature of the kernel.
> 
> Statements like this lead me to question whether you really know what you're
> talking about.  Electric Fence is a tool for debugging heap overruns and has
> nothing to do with access control in the kernel.  St. Jude is _exactly_ what
> you're claiming is necessary: it's a tool for intercepting syscalls at the
> kernel level.  And, to be honest, where the hell else would you intercept a
> syscall?
> 
> Kelly
> 
> 
> -- 
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
> 
> 



RE: Secure 2.4.x kernel

2001-12-22 Thread System Administrator


Well hello list, 

it could be, that i'm overstepping my knowledge (and my english).

If i have well understood, one of the problems of bufferoverruns is 
the follwing:

The assembly statement "jsr" (jump to subroutine) puts the return address
on the same stack, where space for local variables is reserved.

So one solution is to seperate these stacks. So it's more a "problem"
of the  C-Compiler (and the number of Address-Register of the CPU and
memory).


So my questions are :

1) Is my problem description right ?
2) On other plattforms (for example on the newer plattforms like ia64)
   are there seperate stacks ?
3) Why is this not done on  the "0x86"-Plattform ?
   (Historical Reasons ? No chance of a step by step migration 
because of the interplay between programms and libarys ?)







On Fri, 21 Dec 2001, Kelly Martin wrote:

> > Hmmm I don't buy that this *couldn't* be done on the Intel.
> > I might be overstepping my knowledge, but I'm sure there
> > *must* be a way.
> 
> > Going back to my 68k days, it would have been fairly easy
> > to write this. Hey, I'm not an Intel assembly/opcode expert,
> > but it seems to me, I think that you could sit something right
> > in on an interrupt that would alert when a fork/exec call
> > was being made -- it wouldn't take a rocket scientist to
> > figure out that if you could take an interrupt/event on
> > this type of sig, you could certainly redirect the behavior
> > or outcome.
> 
> You've misunderstood.  I was stating that it would be hard to _protect the
> stack against overruns_ on the Intel platform.  What you're talking about
> has nothing to do stack protection.  Fork and exec (being syscalls) are
> already handled as software interrupts, so what you're talking about doing
> is what the kernel already does.
> 
> > The examples pointed out (electric fence, st. james etc.) are
> > fine "workarounds", but they all look a little too "patch-like"
> > for it to be something that is "industrial strength".
> > I just think that intercepting the syscalls like fork and exec
> > at the kernel level for anything that is not "privy" should
> > be a feature of the kernel.
> 
> Statements like this lead me to question whether you really know what you're
> talking about.  Electric Fence is a tool for debugging heap overruns and has
> nothing to do with access control in the kernel.  St. Jude is _exactly_ what
> you're claiming is necessary: it's a tool for intercepting syscalls at the
> kernel level.  And, to be honest, where the hell else would you intercept a
> syscall?
> 
> Kelly
> 
> 
> -- 
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
> 
> 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]