PCSS już pięć lat uczy bezpiecznego programowania

PCSS już pięć lat uczy bezpiecznego programowania
Od 2010 roku pracownicy Zespołu Bezpieczeństwa PCSS realizują coroczne kilkudniowe szkolenia dla programistów w ramach serii projektów europejskich GÉANT, zrzeszających europejskie krajowe sieci badawczo-naukowe. Pierwsza edycja odbyła się w roku 2010 w Poznaniu, następna – w 2011 w Berlinie. Rok później przedstawiciele PCSS gościli w Pradze, a w latach 2013 i 2014 szkolenie ponownie zorganizowano w stolicy Niemiec, w siedzibie DFN (Deutschen Forschungsnetz).
W dniach 28-30 października Paweł Berus, Tomasz Nowak i Gerard Frankowski przygotowali i zaprezentowali programistom m.in. z Wielkiej Brytanii, Niemiec, Litwy, Finlandii i krajów skandynawskich szereg tematów związanych z tworzeniem oprogramowania maksymalnie odpornego na błędy bezpieczeństwa. Już trzeci rok z rzędu mieli okazję samodzielnie przygotować i przeprowadzić cały program szkolenia.

Pierwszego dnia opowiadali między innymi o modelowaniu zagrożeń, bezpieczeństwie mechanizmów wgrywania plików na serwer w aplikacjach Web, a także o podstawach bezpiecznego kodowania w językach Java oraz PHP. Szereg pytań i ćwiczeń w trakcie prowadzonych prezentacji pozwolił nie tylko urozmaicić program szkolenia, ale także rozwinąć interesujące dyskusje na styku obszarów bezpieczeństwa i programowania. Dodatkowo o innym wydarzeniu organizowanym cyklicznie przez PCSS dla społeczności GN3+ (Summer School For Developers) opowiedział Marek Lewandowski z Pionu Usług Sieciowych PCSS.

W drugim dniu szkolenia przekazano informacje m.in. o bezpieczeństwie mechanizmów uwierzytelniania oraz błędach bezpieczeństwa wynikających ze złej implementacji dostępu do obiektów systemu plików, ale podstawową wartością tego dnia była seria intensywnych warsztatów z zakresu podatności występujących w aplikacjach Web (XSS, SQL Injection), a także dotyczących zmienności obiektów w Javie. Uczestnicy mogli samodzielnie zapoznać się z istniejącymi i specjalnie przygotowanymi aplikacjami zawierającymi błędy, a także sprawdzić, w jaki sposób odpowiednie zmiany w kodzie przekładają się na wzrost poziomu bezpieczeństwa implementowanej usługi. Całość została sfinalizowana konkursem HackMe, w ramach którego uczestnicy szkolenia wykorzystywali nabytą właśnie wiedzę do samodzielnego zaatakowania specjalnie przygotowanej, podatnej aplikacji (kilku z nich udało się zresztą osiągnąć główny cel szkolenia, czyli przejęcie laptopa prowadzącego konkurs Pawła). Przybliżenie programistom sposobu postępowania napastników pomoże w wypracowaniu odpowiednich strategii ochrony tworzonego oprogramowania.

Trzeciego dnia skoncentrowano się głównie na statycznej analizie kodu źródłowego. Dyskutowano o wadach i zaletach manualnej oraz automatycznej analizy kodu, opowiedziano o metodykach ręcznej analizy kodu, przytaczając również własne doświadczenia. Całe szkolenie sfinalizowała seria demonstracji i ćwiczeń z wykorzystaniem otwartych i darmowych narzędzi do statycznej analizy kodu (Perl::Critic, findbugs, RIPS).

Oprócz realizacji szkoleń, Zespół Bezpieczeństwa bierze udział w innych pracach związanych z bezpieczeństwem w projekcie GN3+, między innymi realizuje przeglądy kodu źródłowego oprogramowania wytworzonego w projekcie. Z kolei podobne – unikalne w polskich warunkach – szkolenia, o programie profilowanym dla specyficznych potrzeb poszczególnych projektów, PCSS przeprowadził dla programistów w takich projektach jak Krajowy Magazyn Danych 2, e-Podręczniki do kształcenia ogólnego czy SECOR.