-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!plix.pl!newsfeed
1.plix.pl!news.icm.edu.pl!news.onet.pl!.POSTED!not-for-mail
From: Michal Kleczek <k...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Aplikacje bazodanowe - bezpieczeństwo
Date: Wed, 29 Jun 2011 09:49:32 +0200
Organization: http://onet.pl
Lines: 136
Message-ID: <iuelec$u2l$1@news.onet.pl>
References: <4e09cf5c$0$2438$65785112@news.neostrada.pl> <iuck48$ijr$1@news.onet.pl>
<iucmsh$ue8$4@solani.org> <iucnvv$1hp$1@news.onet.pl>
<iucp8s$83e$1@solani.org> <iucq9m$ake$1@news.onet.pl>
<qtrn2yav8xs.1n3xvs8cc6ljm$.dlg@40tude.net>
NNTP-Posting-Host: 77-252-124-164.ip.netia.com.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8Bit
X-Trace: news.onet.pl 1309333772 30805 77.252.124.164 (29 Jun 2011 07:49:32 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 29 Jun 2011 07:49:32 +0000 (UTC)
User-Agent: KNode/4.4.10
Xref: news-archive.icm.edu.pl pl.comp.programming:191229
[ ukryj nagłówki ]Zbigniew Malec wrote:
> On Tue, 28 Jun 2011 17:00:07 +0200, Michal Kleczek wrote:
>
>>> Bo granulacja kontroli dostępu w DBMS często nie przystaje do granulacji
>>> potrzebnej do implementacji kontroli dostępu.
>>
>> I to jest czesto dobry argument.
>> Z drugiej strony mozna sie zastanawiac, czy moze inny (oferujacy
>> odpowiednie narzedzia/granulacje) DBMS jest lepszym rozwiazaniem?
>> Oraz czy przypadkiem _rzeczywiscie_ nie przystaje.
>
> Nie ma co tego na DBMSa zwalać, bo zwyczajnie nie jesteś w stanie osiągnąć
> wystarczającej elastyczności.
Tzn. czego np?
Dobry DBMS oferuje duza elastycznosc jesli chodzi o zarzadzanie dostepem do
danych - w koncu to system zarzadzania bazami danych.
Taki Oracle daje chocby VPD.
Ale i bez tego daje sie sporo osiagnac - chocby:
http://technet.microsoft.com/en-us/library/cc966395.
aspx
> Moduł zarządzania użytkownikami DBMS jest
> projektowany pod zupełnie inne zastosowania i jako taki nie nadaje się do
> wykorzystania w aplikacji.
A to niby dlaczego?
Wydaje mi sie, ze jest dokladnie odwrotnie - modul zarzadzania uprawnieniami
w DBMS jest projektowany dokladnie po to, zeby wielu uzytkownikow moglo
korzystac z roznych (przeznaczonych dla nich) podzbiorow danych w bazie
danych.
> Użytkownicy aplikacji to są "dane", a nie
> element funkcjonalny bazy.
A to niby dlaczego?
> Podstawowym kryterium wyboru DBMS na pewno nie
> jest to, czy można użyć jego modułu zarządzania użytkownikami w swojej
> aplikacji.
>
Jest jednym z wielu kryteriow, ktore wynikaja z wymagan dot. sytemu.
>>> Jak chcesz zorganizować
>>> prawo do odczytu danych (np. faktur czy zamówień) związanych z jednym
>>> tylko klientem dla opiekuna tego klienta?
>>>
>>
>> Chocby widoki?
>
> Można, ale po co? Żeby osiągnąć odpowiednią elastyczność i tak będziesz
> musiał dobudować tyle infrastruktury, że dodatkowa tabelka z użytkownikami
> nie robi żadnej różnicy.
>
Nie bardzo rozumiem o co chodzi z ta dodatkowa tabelka z uzytkownikami.
Natomiast jesli chodzi o "dobudowe infrastruktury", to i tak musisz _gdzies_
te zabezpieczenia zaimplementowac. Moim zdaniem:
1) Bedzie taniej wykorzystac to, co juz jest zaimplementowane w DBMS
2) Bedzie _bezpieczniej_ uzywac zabezpieczen w DBMS, bo wszelkie rozwiazania
"custom made" w aplikacji nie moga byc tak dobrze zweryfikowane pod katem
bezpieczenstwa jak DBMS z polki.
>>>> Wielokrotnie uzywalem narzedzi w rodzaju np. SQL Navigator lub Crystal
>>>> Reports do dostepu do danych w srodowiskach gdzie nie do wszystkich
>>>> danych w bazie danych moglem miec dostep. Mialem swoje konto w DBMS z
>>>> przypisanymi uprawnieniami i tyle.
>>>
>>> Nie rozumiem. Miałeś nie mieć dostępu w aplikacji FooBarBaz do pewnych
>>> danych, ale uzyskiwałeś go bo łączyłeś się z bazą ręcznie zamiast używać
>>> FooBarBaz?
>>>
>>
>> Mialem nie miec dostepu do pewnych danych _niezaleznie_ od tego jakiej
>> aplikacji uzywam do dostepu.
>> Podobnie jak mam nie miec dostepu do danych w katalogu /home/iksinski
>> niezaleznie od aplikacji jakiej uzywam.
>
> W przypadku osób generujących raporty z bazy, albo w inny sposób
> korzystających bezpośrednio z danych zawartych w bazie danych naturalne
> jest korzystanie z użytkowników bazodanowych. W przypadku aplikacji
> korzystającej z tych danych za pośrednictwem serwera aplikacji (albo
> grubego klienta) już takie naturalne to nie jest, bo użytkownik jest od
> tej bazy odseparowany i jego tożsamość, to jest tylko kojelny parametr w
> wykonywanych zapytaniach, a nie element funkcjonalny aplikacji.
Sa przynajmniej dwa problemy z tym rozumowaniem:
1. To jest tylko przesuniecie rozwiazania problemu z DBMS do aplikacji.
Klopot polega na tym, ze weryfikacja oprogramowania pod katem bezpieczenstwa
jest droga i co za tym idzie aplikacja jest znacznie bardziej narazona na
bledy niz DBMS (najlepszym przykladem sa wszystkie ataki typu SQL injection
- wbudowanie zabezpieczen w DBMS chroni dane przed atakami wykorzystujacymi
bledy w aplikacjach).
2. W przypadku aplikacji typu "gruby klient" - jak zapewnic, ze dostep do
danych bedzie sie odbywal _tylko_ przy pomocy tejze aplikacji?
3. Jak rozwiazac problem wielu aplikacji korzystajacych z jednej bazy
danych. Kazda ma swoj wlasny system zabezpieczen?
>
>> W wiekszosci zastosowan komputerow przedmiotem ochrony sa _dane_ (pomijam
>> przypadki, gdzie chroni sie dostep np. do zewnetrznych urzadzen).
>> Z punktu widzenia bezpieczenstwa danych zezwolenie na to, zeby kazda
>> aplikacja definiowala _swoj wlasny_ model ochrony danych jest ryzykowny.
>
> Rezygnację całkowitą z uprawnień nadawanych przez DB można uznać za
> nierozsądną, ale nie można też popadać w przesadę. Typowy wzorzec ich
> wykorzystania to tworzenie użytkowników pod dane aplikacje i udostępnianie
> tym użytkownikom pewnego podzbioru obiektów w bazie. Pozdbiór ten w
> założeniach ma tworzyć spójne API dostępu do danych z punktu widzenia
> danej aplikacji.
> Ja bym wręcz zaryzykował twierdzenie, że utożsamianie użytkowników
> aplikacji z użytkownikami DB zmniejsza bezpieczeństwo, bo zamiast mieć
> jednego dobrze opisanego użytkownika na poziomie bazy danych (a więc w
> warstwie dostępu do danych), trzeba dbać o poprawne opisanie wszystkich
> jej (aplikacji) użytkowników.
Od tego DBMS maja na przyklad RBAC lub inne mechanizmy ulatwiajace
zarzadzanie uprawnieniami i uzytkownikami (grupy itp). Niczym sie to nie
rozni od zabezpieczania dostepu do danych na dyskach sieciowych (w koncu
system plikow to taki DBMS).
> W opisanym przeze mnie typowym przypadku
> uprawnienia użytkowników aplikacji są odseparowane od uprawnień samej
> aplikacji a co za tym idzie łatwiej jest postawić wyraźną granicę, co
> aplikacji wolno a czego jej nie wolno.
>
Ale jak zapewnic separacje uprawnien uzytkownikow w ramach aplikacji majacej
(z powodu wymagan funkcjonalnych) dostep do zbioru danych bedacego
nadzbiorem danych dostepnych kazdemu uzytkownikowi tejze aplikacji? To tylko
przesuniecie problemu i - poprzez wprowadzenie kolejnego mechanizmu
zabezpieczen - niepotrzebna komplikacja systemu.
--
Michal
Następne wpisy z tego wątku
- 29.06.11 08:01 Stachu 'Dozzie' K.
- 29.06.11 08:40 Mariusz Kruk
- 29.06.11 08:24 Michal Kleczek
- 29.06.11 08:37 Mariusz Kruk
- 29.06.11 08:42 Michal Kleczek
- 29.06.11 08:52 Mariusz Kruk
- 29.06.11 09:13 Michal Kleczek
- 29.06.11 09:14 b...@n...pl
- 29.06.11 09:28 Michal Kleczek
- 29.06.11 09:40 Mariusz Kruk
- 29.06.11 09:33 Michal Kleczek
- 29.06.11 09:22 Mariusz Kruk
- 29.06.11 09:39 Lukasz
- 29.06.11 09:50 Michal Kleczek
- 29.06.11 09:59 Mariusz Kruk
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-16 W telefonie brak szufladki na drugą kartę SIM
- 2024-12-16 Szukam monitora HDMI ok. 4"
- 2024-12-16 Poznań => Key Account Manager <=
- 2024-12-16 Akwarium w aucie
- 2024-12-16 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-12-16 Warszawa => Expert Recruiter 360 <=
- 2024-12-16 Gdańsk => System Architect (background deweloperski w Java) <=
- 2024-12-16 Warszawa => Key Account Manager <=
- 2024-12-16 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-16 Białystok => Analityk w dziale Trade Development (doświadczenie z Po
- 2024-12-16 Warszawa => Programista Microsoft Dynamics 365 Business Central <=
- 2024-12-16 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2024-12-16 Szczecin => Key Account Manager (ERP) <=
- 2024-12-16 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-16 Gdańsk => Specjalista ds. Sprzedaży <=