Witaj!

Mam na imię Marek i zajmuję się zawodowo oprogramowaniem, ze szczególnym uwzględnieniem jego jakości i bezpieczeństwa. Moją podstawową dziedziną są aplikacje internetowe.

Chociaż sam nie poświęcam już tak wiele czasu programowaniu, wykorzystuje moją wiedzę w kontroli procesu tworzenia oprogramowania:

  • Kontrola i zapewnienie jakości
  • Bezpieczeństwo systemów i aplikacji
  • Zarządzanie projektami informatycznymi

Ponieważ mam zarówno zawodowe jak i akademickie doświadczenie w tych obszarach, wykorzystuje je do osiągnięcia jak najlepszych rezultatów - a także do przygotowywania metod i narzędzi które pozwolą tworzyć lepsze oprogramowanie w przyszłości.

Zawodowo

Moje zawodowe i akademickie doświadczenia zawsze przeplatały się ze sobą. W 1996 roku ukończyłem studia na Akademii Górniczo-Hutniczej (kierunek Elektronika) i wyjechałem na stypendium do Bristolu (Wielka Brytania). Na podstawie prowadzonych tam przez rok badań i po złożeniu rozprawy uzyskałem w 2000 roku tytuł Master of Science.

Po powrocie do kraju 1997 pracowałem najpierw w firmie Ericsson Polska - jako Sales Engineer, a następnie Project Leader. Pod koniec 1998 roku przeszedłem do pracy w Comarch w Krakowie, początkowo jako Key Account Manager, a następnie Dyrektor Handlowy.

Po kilku latach zdecydowałem się jednak porzucić karierę w korporacji na rzecz satysfakcji jaką daje praca na własny rachunek. Od tego czasu zajmuję się różnymi projektami, m.in. kontrolą realizacji wdrożeń i tworzenia systemów informatycznych, badaniem kodu aplikacji itp. Od 2004 roku odpowiadam np. za rozwój i funkcjonowanie systemów przetwarzania danych IMS / CMS Group w Egipcie. Od 2008 roku we współpracy z firmą Securing pracuję nad rozwojem metod badania i oceną bezpieczeństwa aplikacji

Dużą radość sprawia mi też praca naukowa i działalność akademicka. Kontakt ze studentami oraz prowadzone badania powalają utrzymać otwartość na nowe koncepcje, stawiają też ciągłe wyzwania które nie pozwalają 'spocząć na laurach'. Staram się łączyć badania z pracą zawodową, prowadzę wykłady m.in. z przedmiotów takich jak "Zarządzanie Projektami" "Bezpieczeństwo/Ochrona danych" czy "Technologie Internetowe". W 2008 roku obroniłem na Akademii Górniczo-Hutniczej pracę doktorską w dyscyplinie informatyka.

Bezpieczeństwo

Atak typu 'Stored XSS'

Poniższy przykład przedstawia sposób działania wariantu 'stored' ataku typu Cross Site Scripting (w skrócie XSS). W poszczególnych krokach opisany został sposób postępowania atakującego (nazwijmy go umownie 'Jaś') oraz skutki dla atakowanego użytkownika (Małgosia).

1. Jaś znajduje podatny serwis WWW

Podstawowym warunkiem zadziałania tego ataku jest błąd w oprogramowaniu serwera lub aplikacji/serwisu WWW, polegający na tym, że dane przychodzące od użytkowników nie są wystarczająco dokładnie sprawdzane. Serwis WWW musi też udostępniać użytkownikom możliwość dołączania swoich treści, na przykład w postaci komentarzy do artykułów.

Your browser does not support SVG

2. Wysłanie na serwer złośliwego kodu

Korzystając z dostępnych funkcji serwisu, Jaś wysyła komentarz do artykułu - zawierający jednak poza normalną treścią również kod programu (z reguły w języku JavaScript). Jeżeli serwer nie sprawdzi dokładnie co przysłał Jaś, może włączyć cały przesłany przez niego komentarz razem z kodem do swojej strony.

Your browser does not support SVG

3. Nieświadomy użytkownik pobiera stronę serwisu

Inny użytkownik (wspomniana Małgosia), łączy się z tym samym serwisem. Otwierając stronę w przeglądarce otrzymuje ją wraz z komentarzami użytkowników - a więc i z kodem Javascript Jasia.

Your browser does not support SVG

4. Złośliwy kod na komputerze użytkownika

Strona zostaje załadowana do przeglądarki, przeglądarka wykonuje wszystkie skrypty z załadowanej strony - w tym ten dołączony przez Jasia. Skrypt ten może w szczególności zmodyfikować działanie strony na komputerze Małgosi, bądź też odczytać z jej komputera poufne dane (wpisywane hasła, identyfikatory sesji itp.) i przesłać je Jasiowi. Należy bowiem pamiętać że "jeśli zły człowiek przekona cię do uruchomienia swojego programu na twoim komputerze - to nie jest już całkiem twój komputer"

Your browser does not support SVG

Podsumowanie

Podatność serwisu internetowego na atak typu Stored XSS wynika z błędów po stronie serwisu - niewystarczającego sprawdzania (walidacji) nadchodzących od użytkowników danych, przyjmowaniu ich i włączaniu do generowanych stron. Konsekwencje ponosi jednak nie bezpośrednio serwis, ale inni jego użytkownicy.

Metody obrony - użytkownicy

Typowy użytkownik internetu ma ograniczone możliwości ochrony przed tego typu atakiem. Rozwiązaniem jest teoretycznie wyłączenie w przeglądarce interpretera JavaScript, ale ponieważ ogromna ilość serwisów de facto wymaga JavaScript do poprawnego działania, jest to rozwiązanie drastyczne. Pragmatycznym podejściem jest korzystanie z aktualizowanej wersji przeglądarki internetowej - oraz nie korzystanie z wielu zakładek równocześnie przy logowaniu do ważnych serwisów (np. bankowości internetowej). W pewnych przypadkach możliwe jest bowiem odczytanie danych (np. ciasteczek) przez skrypt z jednej zakładki w innej.

Metody obrony - administratorzy serwisów

Podstawową metodą obrony jest przede wszystkim walidacja danych wejściowych oraz 'escape-owanie' znaków specjalnych przed ich wyświetleniem na stronie czy zapisem do bazy. Dodatkową zalecaną metoda jest ustawienie flagi HttpOnly dla wszystkich ciasteczek zawierających wrażliwe dane (np. identyfikator sesji). Więcej praktycznych informacji znaleźć można na OWASP XSS Prevention

Kontakt

(+48) 500 169 262
marek@zachara.name

Uwaga studenci!

Proszę w kontaktach ze mną korzystać z adresu: mzachara@agh.edu.pl - pozwoli mi to na lepszą organizację korespondencji.
Informacje o terminach i miejscu konsultacji znajdują się tutaj.

 

Uwaga: Nie wyrażam zgody na zbieranie, przetwarzanie ani wykorzystywanie znajdujących się w tym serwisie danych osobowych i/lub kontaktowych do celów marketingowych, w tym oferowania sprzedaży jakichkolwiek dóbr i/lub usług