Daniel Marczydło

Daniel Marczydło Software Engineer,
Trener IT

Temat: Zabezpieczanie przed niepowołanym dostępem.

Witajcie
Mam następujące pytanie. Czy podrzuci ktoś jakiś pomysł na zabezpieczenie aplikacji przed niepowołanym dostępem?
Otóż napisałem aplikację która posiada wiele kont firmowych.

Dla przykładu:
Firma X ma swój login i hasło. I przy pomocy swojego konta jej pracownicy wykorzystują aplikację.
Firma X dostaje konto terminowo (np. na 3 miesiące). Po upływie czasu konto jest dezaktywowane.
Do konta mają dostęp wszyscy pracownicy (często jest wiele placówek w wielu miastach)

Problem jaki występuje to:
- jak zabezpieczyć aplikację, żeby firma X nie przekazała danych firmie Y tak aby firma Y korzystała z aplikacji podając się za firmę X?
Co odpada?
Adresy IP, bo pracownicy mogą być w różnych lokalizacjach, lub mieć dostęp do aplikacji np. z domu.
Czy istnieje w ogolę jakaś możliwość zabezpieczenia przed dostępem?

Aplikacja napisana w cakephp

konto usunięte

Temat: Zabezpieczanie przed niepowołanym dostępem.

Temat rzeka. Ale można by zrobić np. dwustopniową autoryzację, z wykorzystaniem chociażby telefonu tego kto się loguje, oczywiście musiałby być w serwisie zarejestrowany numer jako zaufany. Po prostu user loguje się na login i hasło a po tym na jego telefon zostaje wysłany SMS z losowym hasłem sesji, które następnie wpisuje w drugim kroku. To samo można by zrobić z wykorzystaniem choćby skrzynki email użytkownika i email jako zaufany i na mail wysyłać to hasło sesji. Więc nawet jak ktoś z firmy Y zna hasło i się zaloguje, to i tak będzie musiał w drugim kroku wpisać to hasło sesji którego nie będzie znał, bo skąd, kiedy to jego telefon nie jest zarejestrowany jako zaufany, to samo dotyczy skrzynki mail.
Daniel Marczydło

Daniel Marczydło Software Engineer,
Trener IT

Temat: Zabezpieczanie przed niepowołanym dostępem.

O email myślałem,
Problem jest taki, że email jest podawany jako główna skrzynka firmowa (lub skrzynka działu HR) do której niestety nie mają dostępu wszyscy pracownicy.

Co do SMS. Też odpada z 2 przyczyn:
1. Koszty
2. Konto jest 1. A pracowników może być np 100. Jeden telefon?

Największym problemem staje się fakt że konto jest 1 a może w jednym czasie wejść wiele pracowników z różnych obszarów geograficznych. Ten post został edytowany przez Autora dnia 08.03.16 o godzinie 15:53

konto usunięte

Temat: Zabezpieczanie przed niepowołanym dostępem.

Dlatego w oknie logowania oprócz użytkownik i hasło (czyli np. email firmowy albo jakaś nazwa admina i hasło) należałoby jeszcze dodać email pracownika który byłby po prostu sprawdzany czy aby na pewno jest autoryzowany. Jeśli tak to w drugim kroku hasło które przyjdzie na mail i które trzeba wpisać. Chociaż to też raczej jest częściowa ochrona, dlatego napisałem że to temat rzeka.Ten post został edytowany przez Autora dnia 08.03.16 o godzinie 16:09

Temat: Zabezpieczanie przed niepowołanym dostępem.

Ewentualnie możesz użyć własnych certyfikatów instalowanych na konkretnych komputerach ale podejrzewam, że to też nie przejdzie.
Więc inaczej tego nie zrobisz zwłaszcza jeżeli koszt smsa (7 gr) to jest problem.

konto usunięte

Temat: Zabezpieczanie przed niepowołanym dostępem.

To nie jest wcale takie proste, bo zakładając zwyczajną nieuczciwość gościa który jest faktycznie pracownikiem firmy, gość z konkurencji może przecież otrzymać nie tylko login i hasło ale i np. numer telefonu jak i ten wygenerowany klucz, jeśli tylko zaraz po pierwszym kroku wyśle SMS do nieuczciwego gościa z tą prośbą i lipa bo się zaloguje. Można by tu jeszcze wykorzystać np. krótki czas na zalogowanie np. 30 sekund jako ważność danych z sesji, tak żeby ograniczyć to ryzyko bo ten kto ma przy sobie telefon przy takim założeniu wyrobi się w czasie, ten z konkurencji już niekoniecznie. Może i certyfikaty, może nawet specjalna firmowa przeglądarka której nie ma konkurencja. Wydaje mi się że bliżej tu jednak do paranoi niż do bezpieczeństwa.

Są jeszcze inne sposoby, ja mam np. w panelu administracyjnym własnej strony www coś takiego, że jest tylko 3 podejścia na zalogowanie, gdyby ktoś próbował się włamać a 3 krotnie błędnie wpisze login albo hasło, dalszy dostęp zostanie uniemożliwiony na jakiś czas (to po IP) a ja jeszcze otrzymam powiadomienie e-mail i zawsze mogę zmienić hasło. To opiera się o zabezpieczenie typu antiflood, napisałem sobie taki moduł. Też można coś takiego wykorzystać, w niektórych przypadkach.
Daniel Marczydło

Daniel Marczydło Software Engineer,
Trener IT

Temat: Zabezpieczanie przed niepowołanym dostępem.

Z sms-em nie tyle problemem staje się koszt, co fakt że jest 1 konto firmowe.
Dla przykładu.
Jest konto loguje się jako firma X. I teraz mam niby podać nr tel osoby którą mam sprawdzić. Podaje tel dostaje hasło i musiałbym mieć wszystkie telefony wszystkich pracowników w bazie!. To jest nie realne.

Dodatkowo system zakłada, że pracownik dodawany jest do bazy dopiero po wykonaniu jakiejś historii np. zdaje jakiś test. (i wtedy podaje imię, nazwisko, pesel, email etc.) Dostęp do innych danych ma jaki Firma (na tym poziomie nie można ustalić jeszcze czy to Nowak czy Kowalski) .

Rozwiązania jakie już rozważałem to:
- email z tokenem (1 konto odpada)
- sms (odpada z tego samego powodu co email)
- zakres adresów IP (firmy mogą mieć wiele placówek, pracownicy mogą korzystać z domu) adresów IP może być bardzo dużo.

konto usunięte

Temat: Zabezpieczanie przed niepowołanym dostępem.

W tej konfiguracji o której mówisz raczej się nie da. Jak masz jedno konto na x osób logujących się jednocześnie to nie zapanuje nad tym. Rozdzielczość konta per user, zrób własny mechanizm sesji i wyloguj inne osoby które są zalogowany na dane konto (jedna osoba per konto i tak samo jedno jednoczesne logowanie) plus token na email. Inaczej tego nie widzę.

Adrian Stolarski

Wypowiedzi autora zostały ukryte. Pokaż autora
Krystian Rożewicz

Krystian Rożewicz Admin. /
Programista PHP

Temat: Zabezpieczanie przed niepowołanym dostępem.

Nie jest to prosta sprawa.
Jedyne co mi przychodzi do głowy w Twoim problemie to weryfikacja na podstawie wysłania maila z tokenem na adres e-mail walidowany na podstawie domeny firmy X i krótkim czasie życia tego tokena (np. 30 sekund)...
Mimo to i tak istnieje ryzyko, że firma X przekaże dostęp dla Y.

Ostatecznie można się pobawić certyfikatami, że po przekroczeniu określonej liczby stanowisk nie zalogują się nowe osoby... Tutaj pojawia się wspomniany przez Ciebie problem dostępu pracowników z domu...
Podobne opcje to dostęp po skonfigurowaniu VPN'a
Inne opcje walidacja tokenowa (e-mail) określonych czynności...

No, a może lepiej nie robić 1 konta dla firmy X, tylko konta imiennie z uprawnieniami dla pracowników, że firma X występując o nowe konto musi wypełnić specjalny formularz z podaniem adresu e-mail pracownika itd.
Logowanie jednosesyjne na dane konto -> jak ktoś się zaloguje to inna sesja o tym samym loginie się wylogowuje...
Tomasz Krasoń

Tomasz Krasoń Programista php,
Centrum Systemów
Informatycznych Sp z
o.o.

Temat: Zabezpieczanie przed niepowołanym dostępem.

Łe wiem że poniewczasie ale rzadko ostatnio na GL wpadam.
Dajesz firmie X prosty programik który generuje klucz w odpowiedzi na wywołanie - każda firma dostaje swoją wersję.
Możesz to zrobić jak aplikacja na PC lub androida nieważne w sumie i strasznie proste. Logując się dostaję kilkucyfrowy lub znakowy kod, mam go wklepać w programik i dostaję kod do zalogowania. Dosyć proste i w miarę skuteczne. Jeżeli zależy Ci na kontroli prcowników to możesz zaszyć w programie raport do Ciebie, kto go uruchamiał, kiedy, gdzie i zawsze możesz podesłać kierownictwu, że chyba się rozmnożył, jeżeli będą nieprzewidziane wyniki.
Jest to najlepsze możliwe podejście, ale w przypadku mierzenia się z nieuczciwością samych pracowników i tak nie do końca skuteczne. Dla Ciebie pewnie już za późno, bo minęło trochę czasu, ale zostawiam ten wpis dla potomnych, może komuś się przyda :)
Marcin Paweł S.

Marcin Paweł S. programista
C#/SQL/PHP

Temat: Zabezpieczanie przed niepowołanym dostępem.

może stwórz konta dla firm z tym ograniczeniem czasowym ale z prawem do zakładania jeszcze bardziej ograniczonych subkont dla konkretnego pracownika. ograniczenia logowania do jednego IP jednocześnie i informacje o zalogowaniu(czasie pracy zakresie czynności) do konta danej osoby na mailfirmy(i oczywiście nasz), tak żeby firmy same pilnowały swoich pracowników ;].Ten post został edytowany przez Autora dnia 10.05.16 o godzinie 09:21
Tomasz Waryan

Tomasz Waryan Student, Uniwersytet
Pedagogiczny w
Krakowie

Temat: Zabezpieczanie przed niepowołanym dostępem.

Panowie !
Przepraszam, ale nie czytałem wszystkiego, jeśli ktoś już to napisał to zdubluję , sorry ;)

Do Autora:
Rozwiązanie a(soft+net):
pula dostępu

Rozwiązanie b(soft+net):
licznik

Rozwiązanie c(hard):
klucz usb, karta magnetyczna (są po 1zł)

Wiadomo, że nigdy nie zabezpieczysz - dlaczego ?
Wystarczy wirtualizacja i koniec z zabezpieczeniem

Jednak temat bardzo ciekawy-napisz jak go rozwiązałeś :)
PozdrawiamTen post został edytowany przez Autora dnia 10.02.17 o godzinie 12:31

Następna dyskusja:

Zabezpieczenie formularza p...




Wyślij zaproszenie do