|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 143
|
Linux in palla : nessuna protezione ?
Ieri con un mio amico abbiamo fatto una prova. Gli ho creato un utente normale( con bash ) sul mio pc , e si è collegato tramite telnet. Ha creato un programma in c nel suo spazio utente ( /home/utente ) che fa un ciclo infinito ( in cui si alloca esponenzialmente memoria con malloc e poi divide il processo con la fork ). Risultato : si impalla tutto il mio pc , X bloccato , nessuna possibilità da parte mia di killare il processo .
Abbiamo provato anche a farlo senza X , stesso risultato. Possibile che non ci sia la possibilità da parte dell'amministratore di un sistema di avere almeno un po' di memoria riservata per killare i processi che creano casini come quello ( tra l'altro è un processo uutente , non un processo di sistema !!!) ? Soluzioni ? Si potrebbe togliere l'uso di gcc , ma allora un utente che ci entra a fare nel suo spazio ? ![]() Seconda soluzione : dare l'accesso solo a persone totalmente fidate , ma possibile che non ci sia un qualche controllo ? Si potrebbe fare un errore anche se si è fidati. A voi la parola. Ciao Fly
__________________
We are accidents... ...waiting.... ...Waiting to Happen.... [From There There- Radiohead ] |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
ulimit
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 143
|
ok , questa sembra una soluzione buona , ma con un utente con totale accesso al pc che magari per errore fa un processo simile , il sistema non riesce a tutelarsi in qualche modo ?
__________________
We are accidents... ...waiting.... ...Waiting to Happen.... [From There There- Radiohead ] |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Normalmente i limiti sono ampi nelle distribuzioni, per consentire al (presumibilmente unico) utente di usare tutte le risorse della macchina. Ovviamente per un sistema server devi imporre dei limiti per gli utenti.
Nulla di strano, ulimit tra l'altro è unix-standard, non solo di linux.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 143
|
ok , grazie delle pronte risposte ^_^
Ti scoccio con un'altra domanda : quali sono i limiti da mettere per un utente standard ? ![]()
__________________
We are accidents... ...waiting.... ...Waiting to Happen.... [From There There- Radiohead ] |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Dipendono dalle risorse della macchina e dal numero di utenti, ovviamente. Per evitare il "fork bomb" (il programma che hai testato) devi mettere limiti sul numero massimo dei processi, ma non è l'unica protezione (ad es. per limitare i "memory bomb" puoi mettere limiti sulla memoria usata). Ce ne sono un buon numero, puoi vedere con ulimit -S -a e ulimit -H -a i limiti correnti rispettivamente soft (modificabili dall'utente) e hard (limiti assoluti).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:35.