Dzisiaj powracamy do zagadnień związanych z bezpieczeństwem aplikacji webowych. Przez kilka następnych postów będę pisał o XSS. Oprócz SQL Injection, XSS jest jednym z “popularniejszych” ataków przeprowadzanych na aplikacje webowe. O ile zasada działania może wydawać się prymitywna, to wiele stron, nawet tych z czołówki (np. Amazon), były podatne na XSS. Co więcej, tak jak SQL Injection, wykorzystanie XSS może spowodować całkowite przejęcie kontroli nad aplikacją. Nie należy więc traktować luki XSS jako...
Po ostatnim poście powinno być jasne dlaczego i kiedy warto używać CORS. Przedstawiony przykład pokazywał dwa kluczowe nagłówki: origin oraz Access-Control-Allow-Origin. W praktyce jednak, może zdarzyć się, że przeglądarka wyśle dodatkowy pakiet, tzw. “prefight”. Przeglądarki omijają ten etap, gdy następujące warunki sa spełnione:Zapytanie jest typu GET, HEAD lub POSTW nagłówku nie ma innych zapytań niż Accept, Accept-Language, Content-Language lub Content-TypeContent-Type ma wyłącznie wartości takie ja...
Programowanie rozproszone 3376 dni, 14 godzin, 7 minut temu 164 źrodło rozwiń
Dzisiaj chciałbym rozpocząć nowy cykl o bezpieczeństwie aplikacji webowych. Niejednokrotnie o tym pisałem już, ale były to luźno powiązane ze sobą wpisy. Od tego wpisu chciałbym to zmienić i przedstawić bardziej dogłębnie tą tematykę. Pierwsze wpisy będą stanowiły całkowite podstawy, ale mam nadzieję, że również bardziej zaawansowani programiści znajdą coś ciekawego w tym (np. wykorzystywane narzędzia). Na końcu mam zamiar przedstaw...
Przemysław Walkowski Kontynuując temat bezpieczeństwa, chce zająć się tematem certyfikatów ich tworzeniem i obsługą. Omówię co to jest PKI, CA, X.509. To o czym nie wspomniałem w ostatnim poście a może przydać się w tym poście to wiedza o tym, że algorytm asymetryczny z kluczem publicznym i prywatnym ma możliwość szyfrowania danych przy pomocy klucza publicznego jak i prywatnego. Gdy zaszyfrujemy dane kluczem prywatnym, będziemy mieć możliwość...
Sztuka programowania 3497 dni, 3 godziny, 5 minut temu 447 źrodło rozwiń
Przemysław Walkowski Bezpieczeństwo jest szerokim tematem i ma jeden poważny minus nigdy się do końca nie wie czy to co się wie na temat bezpieczeństwa jest wystarczające do tego by powiedzieć, że aplikacja, którą napisaliśmy jest bezpieczna. Zawsze się znajdzie, ktoś kto powie, że jakieś zabezpieczenie jest słabe lub niewystarczające. Mimo tego, podstawy trzeba znać, poniżej opisuje podstawy zabezpieczeń aplikacji C#. Z części 1...
Sztuka programowania 3519 dni, 21 godzin, 14 minut temu 439 źrodło rozwiń
Domyślne ustawienia UAC w Windows 7 (a także Windows 8) nie zapewniają nam niestety pełnego bezpieczeństwa. Istnieje kilka znanych sposobów ‘ataku’ na UAC, które pozwalają na wykonanie kodu z podniesionymi uprawnieniami bez konieczności potwierdzania komunikatów UAC. Spróbuję opisać jeden z nich, który wydaje mi się szczególnie interesujący ze względu na wykorzystane mechanizmy. Konfiguracja UAC Po instalacji systemu domyślnie mamy ustawiony poziom 3 (Rys 1), który jest o jeden szczebelek niżej od najw...
Atak Cross-Site Request Forgery (w skrócie CSRF lub XSRF) polega na wykorzystaniu nieświadomego niczego użytkownika, który w danym momencie zalogowany jest do serwisu będącego celem ataku, do wysłania żądania spreparowanego przez hakera. Takie żądanie może na przykład zmieniać dane użytkownika użytego do ataku, na takie, które później będą mogły być wykorzystane przez atakującego do zalogowania się do serwisu. W dzisiejszym poście, chciałbym pokazać jak zabezpieczyć się przed tego typu atakiem w aplikac...
autor: W ramach kontynuacji serii wpisów związanych Managed Add-in Framework (MAF / System.AddIn) ([1], [2], [3], [4]) chciałbym pokazać przykład pokazujący, w jaki sposób MAF rozwiązuje problem z izolacją ładowanych wtyczek, tak by nie pozwolić na uruchomienie niebezpiecznego kodu. Tak jak pisałem wcześniej jedną z zalet MAF-a jest możliwość uruchamiania wtyczek w środowisku izolowanym, teraz przyjrzymy się w jaki sposób można to zrealizować. Podobne doświadczenie (jednak bez wykorzystania MAF) przep...
Poniedziałek, styczeń 30. 2012Niekonsekwencje w ASP.NETAutor:Paweł Goleń | Data:2012-01-30 21:48 | Kategorie:Security, WebApps | Brak komentarzy | Brak Śladów Na ostatnim spotkaniu OWASP w Krakowie jedna z prezentacji dotyczyła zapobiegania XSS w aplikacjach tworzonych w ASP.NET. Z prezentacją można zapoznać się t...
autor: Jakiś czas temu pracowałem nad aplikacją WWW, która między innymi zajmowała się wysyłaniem SMS'ów. SMS'y wysyłałem przy pomocy Web Service'u udostępnionego przez operatora. Aby wysłać taki SMS musiałem uwierzytelnić się korzystając z infrastruktury klucza publicznego - dokładniej mówiąc aby wysłać wiadomość musiałem przedstawić certyfikat podpisany przez operatora. Jak to zazwyczaj bywa testy przy użyciu serwera WWW wbudowanego w Visual Studio powiodły się. Niestety po zainstalowaniu apli...
Kilka dni temu Sławek napisał tekst o ukrywaniu kodu i skorzystał z klasy DynamicMethod, dzięki której generował kod IL w trakcie wykonania programu. Był również na tyle uprzejmy, że podesłał mi przykładowy kod, dzięki któremu zaoszczędziłem trochę czasu i mogłem zająć się od razu konkretem. Mam nadzieję, ze nie będzie na mnie zły jak wrzucę całościowo część tego kodu, dostępnego również w jego notce... :) Dla przypomnienia zatem, Sławkowi zależało na ukryciu szczegółów metody GetValue, tak, aby po dezas...
Może nie takie prawdziwe, ale takie malutkie i niewinne :-) (a może nie takie niewinne?). Do napisania tego postu zainspirował mnie niedawno przeczytany inny post, pokazujący, jak można zmusić .NET do zrobienia czegoś co nie powinniśmy mieć możliwości zrobić. Jako, że mój post będzie związany z małą zagadką/konkursem na razie linka do inspiracji nie podam. Sposób jest w pełni legalny w .NET bo i program się kompiluje bez żadnych sztuczek. F5 i działa….Zadanie Zadanie będzie z typu akademickich, nie będzi...
Kilka dni temu ostrzegaliśmy przed atakiem na webaplikacje pisane w ASP.NET. Dziś znamy już szczegóły błędu, a Microsoft potwierdził zagrożenie. Poniżej prezentujemy jak zabezpieczyć się przed atakiem.Atak na ASP.NET (demonstracja) Błąd, tak jak pisaliśmy kilka dni temu, korzysta z tzw. wyroczni, czyli polega na wysyłaniu zaszyfrowanych zapytań do serwera i wyłapywaniu różnic w jego odpowiedziach — różne kody błędów świadczą o tym, czy serwer poprawnie rozszyfrował wiadomość. Na tej podstawie można wycią...
Microsoft przyznał w końcu, że aplikacje webowe stworzone przy pomocy praktycznie dowolnej wersji środowiska ASP.NET są podatne na atak typu Padding Oracle. Oznacza to, że w zależności od konkretnej aplikacji, intruzowi może udać się przykładowo uzyskanie dostępu do zawartości zaszyfrowanych ciasteczek i innych danych sesyjnych. Około 25% wszystkich aplikacji webowych bazuje na ASP.NET, w związku z...
Sposób w jaki ASP.NET szyfruje ciastka nie jest bezpieczny. Szyfrowanie można złamać, co w konsekwencji pozwala atakującemu na wgląd w prywatne dane sesji użytkownika webaplikacji pisanych w ASP.NET. Szacuje się, że na atak podatnych jest 25% wszystkich webaplikacji na świecie.Ataki Padding Oracle Błąd wynika z niepoprawnej implementacji AES-a w trybie CBC (Cipher Block Chaining) — jest ona podatna na atak Oracle Padding, pozwalający na odszyfrowanie danych bez znajomości klucza. Odnalezienie właściwego ...
Framework WIF dostarcza ujednolicony model zabezpieczeń. W łatwy sposób można przełączać się między tokenami generowanymi na podstawie loginu\hasła czy CardSpace – kod pozostaje niezmienny. Zainteresowanych zapraszam mojego ostatniego artykułu: http://msdn.microsoft.com/pl-pl/library/ff720168.aspx
.NET Framework pozwala na łatwe wczytywanie, uruchamianie i wykorzystywanie obcych assembly. Należy jednak pamiętać, że nie wolno mieć pełnego zaufania do cudzego kodu. Ma to jeszcze większe znaczenie gdy dopuszczamy sytuację, w której pozwalamy na wykonywanie kodu, którego nigdy nie testowaliśmy, z którym nigdy nie mieliśmy do czynienia. Oczywiście w takim przypadku otrzymujemy bardzo dobre wsparcie ze strony .NET Framework, a mianowicie obsługę tzw. Domen aplikacji. Domena aplikacji (ang. Application...
Programowanie rozproszone 5281 dni, 3 godziny, 21 minut temu 84 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Bezpieczeństwo tworzonych serwisów to podstawowa sprawa, która powinna odgrywać znaczącą już od samego początku projektu. W tym artykule skupimy się na bezpieczeństwie związanym z infrastrukturą – jak ograniczyć dostęp nieuwierzytelnionym użytkowników. Większość bindingów ma wbudowane możliwości związane z bezpieczeństwem – może to być SSL, IPsec, może też ich nie być wcale. wsDualHttpBinding to przykładowy bin...
Programowanie rozproszone 5309 dni, 15 godzin, 36 minut temu 42 źrodło rozwiń
Minął luty, więc większość z nas staje jak co roku przed koniecznością wypełnienia i dostarczenia do urzędu skarbowego rocznego zeznania podatkowego. Zastanówmy się czy rozwiązania umożliwiające złożyć PIT elektronicznie, są dobre? Co z oprogramowaniem wspomagającym, czy możemy mu zaufać?
"Bezpieczeństwo w WCF" - pojęcie takie wydaje się oklepane i opisane na wszelkie możliwe sposoby. Tyle materiałów, tyle blogów, artykułów, książek...
Architektura 5439 dni, 4 godziny, 45 minut temu 123 źrodło rozwiń