Zabezpieczanie aplikacji internetowych

Na 9fingers przewinęło się już mnóstwo zagadnień na temat SQL Injection lecz nie zauważyłem tematów traktujących szerzej o zagadnieniu jakim jest ochrona aplikacji internetowych.

Jestem w trakcie pisania portaliku i chciałbym się zabezpieczyć przed każdą możliwością, ale nie wiem jak problem ugryźć bo po wpisaniu w google słów kluczowych z tematu nic ciekawego nie wyskakuje.

Stąd prośba do was co, gdzie i jak się przed tym zabezpieczyć

2 lata, 2 miesiące temu | edytowane przez: lqc 3965112

  • 2 lata, 2 miesiące temu
    edytowane przez: rzientek
    Pytanie społeczności

    11

    Tak w skrócie najbardziej jak się da możemy sobie podzielić typy ataków na:

    1. Code Injection polega na wstrzykiwaniu złośliwego kodu do niezabezpieczonej strony, osoba atakująca może np. modyfikować bazę i w tym wypadku mamy do czynienia z SQL Injection. Można się zabezpieczyć poprzez stosowanie w php strip_tags - usuwa znaczniki PHP i HTML z danego ciągu, addslashes - dodaje znak \ przed znaki takie jak: ”, ’,\ i NULL, które mogą być użyte w niecnych celach, preg_match sprawdza zadany łańcuch pod względem zgodności z podanym wyrażeniem regularnym, htmlspecialchars - konwertuje znaki specjalne na znaczniki HTML np. & na &amp. Do tego typu ataków należą również ASP Injection, PHP Injection, Shell Injection, HTML/Script Injection.
    2. XSS (Cross-site scripting) opisane przez przedmówcę - zabezpieczenie poprzez filtrowanie treści i przekazywanych zmiennych np za pomocą wyżej wymienionej funkcji strip_tags, stosowanie sesji do uwierzytelnienia użytkownika zamiast plików cookie i kilka innych ważnych spraw, o których można poczytać w internecie bo jest tego dość dużo.
    3. Path Traversal jest to atak polegający na dostaniu się do pliku lub katalogu na serwerze teoretycznie niedostępnego. Wszystkie udostępniane pliki powinny znaleźć się poniżej katalogu ze stroną (przeważnie jest to katalog public_html lub www). Od strony kodu wprowadzić kontrolę nad wprowadzaną treścią tak jak w przypadku Code Injection np. poprzez funkcję preg_match. Jeszcze do tego przydatny artykuł nawet z przykładami stron podatnych na ten atak.
    4. CSRF (Cross-Site Request Forgery) - nieświadome zmuszeniu użytkownika do wykonania jakieś określonej akcji w trakcie trwania uwierzytelnionej sesji. Obronnie można stosować systemy dodatkowej autoryzacji, można również dodać do formularza ukryte dodatkowe pole, zawierającego indywidualny identyfikator wykonywanej operacji.
    5. SQL Injection z punktu 1 jest tak szeroko opisywany, że zbędny jest tutaj komentarz. Najpopularniejszą metodą jest używanie funkcji mysql_real_escape_string a resztę można doczytać w internecie. Więcej też w manualu z php.
    6. Session Poisoning i Session Hijacking czyli przechwytywanie sesji, na 9fingers już o tym było. Obronnie nie należy przesyłać identyfikatora sesji jako URL, warto stosować własne mechanizmy obsługi sesji i ogólnie do wszystkich trzymać się zasad bezpiecznego programowania i myśleć o zabezpieczeniu serwisu w trakcie jego budowy.

    W PHP do filtrowania danych służą funkcje, których opis można znaleźć w manualu.

    Oczywiście dodam, że stosowanie trudnych haseł dostępu do strony, ftp itd. powinny być standardową procedurą. Dodatkowe zabezpieczenia typu SSL też się przydadzą.

    To chyba najpopularniejsze typy ataków jakie mi przychodzą do głowy.

  • 2 lata, 2 miesiące temu
    edytowane przez: kwiateusz
    Pytanie społeczności

    2

    lqc ale tu nikt raczej nie wymaga żeby pisać poematów na ten temat, a raczej sucho przedstawić np ze jest atak xss ktory polega

    na osadzeniu w treści atakowanej strony kodu (zazwyczaj JavaScript), który wyświetlony innym użytkownikom może doprowadzić do wykonania przez nich niepożądanych akcji. Skrypt umieszczony w zaatakowanej stronie może obejść niektóre mechanizmy kontroli dostępu do danych użytkownika.

    (za wikipedią)

    I pozwala on na np kradzież sesji poprzez wywołanie odpowiedniego javascriptu ktory odpyta Twój serwer a on zapisze sobie weszelkie dane ktore przekazesz, albo np będzie wykonywał jakas akcje przy wejsciu na strone co przy zwykłym użytkowniku jest nieszkodliwe, a przy userze z uprawnieniami admina uruchomi link usuwania tematu.

    Zastosowań jest wiele i moim celem jest tylko pokazać że jest coś takiego jak xss, a co jak i dlaczego to niestety musisz juz sobie wyszukać bo jak lqc wspomniał to temat rzeka

    polecam link

  • 2 lata, 2 miesiące temu
    edytowane przez: Novakov
    Pytanie społeczności

    1

    Jeśli dobrze zrozumiałem pytanie to musisz zadbać o ty by użytkownik miał dostęp tylko do tego do czego powinien mieć dostęp. Hasła w bazie danych powinny być w miarę możliwości hashowane. Kiedyś trafiłem na taką listę: ASP.NET MVC security checklist Wydaje mi się, że niektóre z przedstawionych punktów można przenieść na inne technologie

  • 2 lata, 2 miesiące temu
    edytowane przez: dvdus
    Pytanie społeczności

    1

    do asp jest poradnik od microsoftu, wart dogłębnego przeczytania a 90% atakow zostanie wyeliminowane (acz warto wiedze poszerzac tez o inne jezyki bo jak wiadomo microsoft i zabezpieczenia to nie sa slowa zbyt zwiazane ze sobą) http://msdn.microsoft.com/en-us/library/ms998274.aspx

  • 2 lata, 2 miesiące temu
    edytowane przez: Robert89
    Pytanie społeczności

    1

    Na pewno nie da się w 100% zabezpieczyć strony przed atakiem. Można wprowadzić filtrowanie danych wprowadzanych przez użytkownika, szyfrowanie, hashowanie haseł itd. Ale wciąż nasłabszą stroną wszystkich zabezpieczeń jest czynnik ludzki. Ludzie są na tyle naiwni, że można im podesłać sfałszowaną stronę, i poprosić o logowanie. Oczywiscie nie każdy się na to nabierze, ale znam osoby, które poproszone o zalogowanie "w celu weryfikacji danych", zalogują się na sfałszowanej stronie... A dane logowania idą na e-mail oszusta, i gotowe. Przed tym nie możemy się zabezpieczyć. Mozna tylko informować użytkowników.

    Trudne do wykrycia i zabezpieczenia są także ataki typu Man in the middle. Więc jak widać - nie samym SQLem da się włamać. SQL injection to najprostsza metoda dla laików, i przed takimi włamaniami można się zabezpieczyć chociażby filtrując dane z formularzy.

  • 2 lata, 2 miesiące temu
    edytowane przez: lqc
    Pytanie społeczności

    1

    Bardzo dobrym materiałem jest krotki pdf http://www.dagma.com.pl/pub/File/centrum_wiedzy/phion_airlock_CW.pdf czytając go naświetlił mi wszystko w miare dobitnie

  • 2 lata, 2 miesiące temu
    edytowane przez: lqc
    Pytanie społeczności

    0

    Chyba najbardziej wrażliwym punktem serwisów/aplikacji internetowych jest moment w którym otrzymuje się i przetwarza dane podane przez użytkownika. Najpopularniejsza metodą z tego co wiem (w PHP) jest korzystanie z mysql_real_escape_string().

    Następnym krokiem jest szyfrowanie istotnych danych jak np. hasła użytkowników.

    W jakim stopniu jest to wystarczające? Powinno zatrzymać większość niechcianych gości, ale problem stanowi mniejszość, która jest w temacie naprawdę obeznana, a na szczęście ponad połowa zajmuje się zabezpieczaniem. Natomiast pozostałych tylko to spowolni.

    Aby złamać zabezpieczenia stworzone przez człowieka inny człowiek potrzebuje tylko odpowiedniej ilości czasu.

  • 2 lata, 2 miesiące temu
    edytowane przez: lqc
    Pytanie społeczności

    0

    Gdyby temat się sprowadzał do przeczytania tutoriala gdzieś na stronie, to specjaliści nie zarabialiby kroci. Na początek możesz sobie przeczytać: Bezpieczeństwo systemów komputerowych.

    To nie jest forum dyskusyjne, tylko portal Q&A. Na twoje pytanie nie da się odpowiedzieć w sensownej ilości tekstu - spokojnie starczy na kilka książek. Przed czym dokładnie się chcesz zabezpieczyć? Prosiłbym o jakieś bardziej konretne pytanie.

  • 2 lata, 2 miesiące temu
    edytowane przez: timoo
    Pytanie społeczności

    0

    Polecam obejrzeć te filmiki

    Po obejrzeniu 13 wideo-tutoriali poznałem tyle metod ataku, ze aż sam się przestraszyłem - jaka odpowiedzialność na nas spoczywa. Wydaje się, że strona jest już zabezpieczona, a uw-team udowadnia, ze wciąż jednak można się włamać, tyle że inną metodą. Polecam jeszcze raz te filmiki - na pewno uświadomią Ci, na co zwrócić uwagę przy zabezpieczaniu strony.

  • 2 lata, 2 miesiące temu
    edytowane przez: zlotylesk
    Pytanie społeczności

    0

    wartym odnowtowania jest jeszcze html injection, niby taki mało znaczacy ataczek, a moze wiele namieszać zaczynajac od popsucia layoutu, konczac na instalacji szkodliwego oprogramowania jesli komus uda sie dolaczyc iframe

Zaloguj się, aby dodać swoją odpowiedź