Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SECURITY] Zarządzanie pamięcią w Linuksie
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW
View previous topic :: View next topic  
Author Message
kneczaj
Apprentice
Apprentice


Joined: 13 Oct 2006
Posts: 169
Location: Zamosc

PostPosted: Fri Sep 19, 2008 5:47 am    Post subject: [SECURITY] Zarządzanie pamięcią w Linuksie Reply with quote

Powiedzmy, że użytkownik "janek" otwiera firefoksa. Czy janek może za pomocą innej aplikacji zobaczyć jakie dane znajdują się w pamięci RAM zarezerwowanej dla firefoksa? Czy inny użytkownik zalogowany w tym samym czasie może podejrzeć za pomocą odpowiednich aplikacji co znajduje się w pamięci zarezerwowanej dla firefoksa uruchomionego przez janka? Czy użytkownik root ma takie uprawnienia? Mówiąc "innych aplikacji" chodzi mi o aplikacje specjalnie stworzone w celu odczytywania surowych danych z pamięci, respektujące jednak zabezpieczenia systemu Linux.

Oczywiście chodzi mi o "surowe" dane. Wiadomo, że każde dane mają jakąś strukturę, ale załóżmy, że osoba próbująca odczytać to co znajduje się w pamięci RAM ma odpowiednią wiedzę tak aby odtworzyć całą strukturę danych na podstawie odczytu "surowych" danych z pamięci RAM.

Arfrever: Ortografia
Back to top
View user's profile Send private message
Raku
Bodhisattva
Bodhisattva


Joined: 28 Feb 2004
Posts: 2375
Location: Poland

PostPosted: Fri Sep 19, 2008 8:24 am    Post subject: Re: [SECURITY] Zarządzanie pamięcią w Linuksie Reply with quote

kneczaj wrote:
Powiedzmy, że użytkownik "janek" otwiera firefoksa. Czy janek może za pomocą innej aplikacji zobaczyć jakie dane znajdują się w pamięci RAM zarezerwowanej dla firefoksa? Czy inny użytkownik zalogowany w tym samym czasie może podejżeć za pomocą odpowiednich aplikacji co znajduje się w pamięci zarezerwowanej dla firefoksa uruchomionego przez janka?


Tak. Jest cała masa tych aplikacji o wspólnej nazwie exploit.

Quote:
Czy użytkownik root ma takie uprawnienia? Mówiąc "innych aplikacji" chodzi mi o aplikacje specjalnie stworzone w celu odczytywania surowych danych z pamięci, respektujące jednak zabezpieczenia systemu Linux.

Tak, root ma takie uprawnienia.
_________________
raku

Powered by Archlinux ;-)
Back to top
View user's profile Send private message
kneczaj
Apprentice
Apprentice


Joined: 13 Oct 2006
Posts: 169
Location: Zamosc

PostPosted: Fri Sep 19, 2008 8:31 am    Post subject: Reply with quote

Quote:
Tak. Jest cała masa tych aplikacji o wspólnej nazwie exploit.

Chodzi mi raczej o to czy exploity uruchamiane z uprawnieniami zwykłego użytkownika (nie roota) mogą coś odczytać z obszaru pamięci, którego używa program uruchomiony z uprawnieniami innego użytkownika. Oczywiście to wszystko nie wykorzystują, żadnych bugów w kernelu.
Back to top
View user's profile Send private message
SlashBeast
Moderator
Moderator


Joined: 23 May 2006
Posts: 2727

PostPosted: Fri Sep 19, 2008 9:24 am    Post subject: Reply with quote

Na chłopski rozum nie mogą, ale dla pewności możesz używać grsecurity+pax
Back to top
View user's profile Send private message
ncl
n00b
n00b


Joined: 24 Oct 2006
Posts: 42

PostPosted: Fri Sep 19, 2008 10:32 am    Post subject: Reply with quote

Quote:
Chodzi mi raczej o to czy exploity uruchamiane z uprawnieniami zwykłego użytkownika (nie roota) mogą coś odczytać z obszaru pamięci, którego używa program uruchomiony z uprawnieniami innego użytkownika. Oczywiście to wszystko nie wykorzystują, żadnych bugów w kernelu.

Czy nie taki jest wlaśnie sens tej całej zabawy z exploitami?

Użytkownik A uruchamia exploit dla programu działającego z (e)uidem użytkownika B. Jasne, że może mieć wtedy dostęp do pamięci tego procesu. Nawet więcej. Jeśli ma możliwość wykonania własnego kodu w kontekście tego procesu to "staje się" użytkownikiem B i ma jego wszystkie uprawnienia.
Back to top
View user's profile Send private message
kneczaj
Apprentice
Apprentice


Joined: 13 Oct 2006
Posts: 169
Location: Zamosc

PostPosted: Fri Sep 19, 2008 10:46 am    Post subject: Reply with quote

Quote:
Użytkownik A uruchamia exploit dla programu działającego z (e)uidem użytkownika B. Jasne, że może mieć wtedy dostęp do pamięci tego procesu. Nawet więcej. Jeśli ma możliwość wykonania własnego kodu w kontekście tego procesu to "staje się" użytkownikiem B i ma jego wszystkie uprawnienia.


Czy to jest zgodne ze wszystkimi zabezpieczeniami Linuksa? Jakoś nie wierzę, że da się tak uruchomić program bez specjalnych hacków. Jeśli jednak da się to zrobić to powiedz jak.
Back to top
View user's profile Send private message
Crenshaw
Guru
Guru


Joined: 23 Jun 2004
Posts: 469
Location: Poland

PostPosted: Fri Sep 19, 2008 10:53 am    Post subject: Reply with quote

kneczaj wrote:
Quote:
Użytkownik A uruchamia exploit dla programu działającego z (e)uidem użytkownika B. Jasne, że może mieć wtedy dostęp do pamięci tego procesu. Nawet więcej. Jeśli ma możliwość wykonania własnego kodu w kontekście tego procesu to "staje się" użytkownikiem B i ma jego wszystkie uprawnienia.


Czy to jest zgodne ze wszystkimi zabezpieczeniami Linuksa? Jakoś nie wierzę, że da się tak uruchomić program bez specjalnych hacków. Jeśli jednak da się to zrobić to powiedz jak.


Sprawdź co to znaczy "exploit". ;)
Back to top
View user's profile Send private message
ncl
n00b
n00b


Joined: 24 Oct 2006
Posts: 42

PostPosted: Fri Sep 19, 2008 10:57 am    Post subject: Reply with quote

Nie no myślalem że zeszliśmy już na temat exploitów. Zakładamy, że skoro dla określonego programu jest napisany exploit to ma on jakąś lukę którą da się wykorzystać. Linux nie wiele ma wtedy do powiedzenia. Chyba, że masz poinstalowane jakieś grsecurity czy inne sprawy. To znacznie zwiększa bezpieczeństwo ale jeśli już exploit zadziała to jest jak powyżej.
Back to top
View user's profile Send private message
kneczaj
Apprentice
Apprentice


Joined: 13 Oct 2006
Posts: 169
Location: Zamosc

PostPosted: Fri Sep 19, 2008 1:36 pm    Post subject: Reply with quote

Są różne wersję "złośliwych" programów na linuksa niektóre nie wykorzystują żadnych luk bezpieczeństwa i aby działać poprawnie muszą być uruchamiane świadomie. Mimo, że należą do grupy "złośliwych" mają pozytywne znaczenie dla rozwoju systemu jak np ten rootkit ;)
http://osnews.pl/rootkit-dla-linuksa-na-licencji-gplv2/

EDIT: Jeszcze dwa pytania:
1. Czy program A może czytać dane programu B z pamięci ram (oczywiście nie przez przypadek) jeśli oba programy są uruchomione przez tego samego użytkownika.

2. Mam dwie aplikacje: demona i klienta który korzysta z tego demona. Demon służy do przechowywania bardzo ważnych danych w pamięci ram (przy wczytywaniu są odszyfrowywane), a klient pobiera od niego te dane jeśli są potrzebne. Czy bezpieczniej jest uruchamiać demona z prawami roota (być może trudniejszy dostęp do zarezerwowanej dla demona pamięci) czy raczej jest to wszystko jedno czy demon uruchamiany jest jako root czy jako ten sam użytkownik, który uruchamia aplikację kliencką?
Back to top
View user's profile Send private message
ncl
n00b
n00b


Joined: 24 Oct 2006
Posts: 42

PostPosted: Fri Sep 19, 2008 3:59 pm    Post subject: Reply with quote

ad 1. poczytaj o pamięci wirtualnej
ad 2. nie znam szczegółów, ale ogólna zasada jest zawsze taka, że to co nie musi to nie powinno chodzić jako root
Back to top
View user's profile Send private message
kneczaj
Apprentice
Apprentice


Joined: 13 Oct 2006
Posts: 169
Location: Zamosc

PostPosted: Fri Sep 19, 2008 7:44 pm    Post subject: Reply with quote

Quote:
ad 1. poczytaj o pamięci wirtualnej

Mówiąc pamięć ram chodziło mi także o pamięć wirtualną, gdyż pamięć wirtualna jest rozszerzeniem ramu i widziana jest przez programy jako ram. Napisałem 'pamięć ram' aby odróżnić ją od pamięci masowych jak twarde dyski czy nośniki wymienne, na których w wielu przypadkach operacje o które pytałem są jak najbardziej możliwe, jeśli tylko uprawnienia danych plików na to pozwalają.

Quote:
ad 2. nie znam szczegółów, ale ogólna zasada jest zawsze taka, że to co nie musi to nie powinno chodzić jako root

Chodzi mi o to żeby w razie gdyby ktoś włamał się na konto zwykłego użytkownika nie mógł w żaden sposób odczytać informacji przechowywanych w pamięci wspomnianego demona. Wydaje mi się, że generalnie trudniej jest się włamać na konto root'a niż na konto zwykłego użytkownika, a więc jeśli demon jest uruchamiany przez root'a to dane które przechowuje on w pamięci są bezpieczniejsze. A może nie ma żadnej różnicy? Oczywiście pomijam tu bezpieczeństwo wspomnianej aplikacji klienckiej, gdyż to inna kwestia, którą wiem jak rozwiązać.
Back to top
View user's profile Send private message
ncl
n00b
n00b


Joined: 24 Oct 2006
Posts: 42

PostPosted: Sat Sep 20, 2008 12:50 pm    Post subject: Reply with quote

ad 1. Ok, nie doczytałem znowu tego w nawiasie (nie przez przypadek). Tak więc może, np. korzystając z ptrace. Jak uruchamiasz gdb to nie potrzebujesz roota nie?

ad 2. Nie i kropka ;) Program nie zyskuje na bezpieczeństwie przez to, że jest uruchomiony z uprawnieniami roota. Za to spada ogólne bezpieczeństwo twojego systemu. Zobacz, że większość programów dbających o bezpieczeństwo nawet jeśli z pewnych względów musi być uruchomiona z uprawnieniami roota to zrzuca te uprawnienia najszybciej jak to możliwe i przechodzi na specjalengo użytkownika z minimalnymi prawami (patrz apache).
Back to top
View user's profile Send private message
master66
n00b
n00b


Joined: 27 Mar 2008
Posts: 36
Location: Kraków

PostPosted: Sat Sep 20, 2008 4:55 pm    Post subject: Reply with quote

To ja jeszcze pytanko od siebie: jak mozna sprawdzic z poziomu kodu zrodlowego programu, ile pamieci wirtualnej wykorzystuje jakis proces? Pytam, bo kiedys mialem napisac taki monitor na jakies laborki na studia i jakos nie moglem sie tego doszukac w zadnej ksiazce czy dokumentacji a jedyne co znalazlem to strukturka rusage i jej pochodne ale tam mi zawsze 0 pokazywalo i lipa...
Back to top
View user's profile Send private message
ncl
n00b
n00b


Joined: 24 Oct 2006
Posts: 42

PostPosted: Sat Sep 20, 2008 7:29 pm    Post subject: Reply with quote

man getrusage:
Quote:
The structure definition shown at the start of this page was taken from 4.3BSD Reno. Not all fields are meaningful under Linux. In Linux 2.4 only the fields ru_utime, ru_stime, ru_minflt, and ru_majflt are maintained. Since Linux 2.6, ru_nvcsw and ru_nivcsw are also maintained.
Może dlatego?

Można odczytać z /proc. Ale oprócz tego, że zwykle będzie działać pod linuksem ma raczej same wady ;).
Back to top
View user's profile Send private message
kneczaj
Apprentice
Apprentice


Joined: 13 Oct 2006
Posts: 169
Location: Zamosc

PostPosted: Sun Sep 21, 2008 5:24 pm    Post subject: Reply with quote

ncl wrote:
ad 2. Nie i kropka ;) Program nie zyskuje na bezpieczeństwie przez to, że jest uruchomiony z uprawnieniami roota. Za to spada ogólne bezpieczeństwo twojego systemu. Zobacz, że większość programów dbających o bezpieczeństwo nawet jeśli z pewnych względów musi być uruchomiona z uprawnieniami roota to zrzuca te uprawnienia najszybciej jak to możliwe i przechodzi na specjalengo użytkownika z minimalnymi prawami (patrz apache).


Czyli najlepiej wzorem apache uruchamiać program na prawach specjalnego dedykowanego mu użytkownika.
Back to top
View user's profile Send private message
Yatmai
Veteran
Veteran


Joined: 12 Nov 2005
Posts: 1501
Location: Kraków

PostPosted: Sun Oct 05, 2008 11:37 am    Post subject: Reply with quote

Tak, żeby czegoś nie napsuł ;)

A propos zaglądania do pamięci innego programu w przypadku gdy oba lecą z tego samego usera, jesteście pewni, że tak bezkarnie mogą sobie zaglądać w notatki?
Bo z tego co wiem, pomijając exploity, to takie zabawy kończą się segfaultem.
_________________
Desktop: [Ath64 X2 2GB DDR2 GF76GT] [amd64] [2.6.29-gentoo] [nVidia] [KDE 3.5.10]
Lapek: [HP nc6000] [i686] [2.6.29-ARCH] [ati-open] [KDE 3.5.10]
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum