Prelekcje na PTaQ i ŁódQA - BDD-Security

Opublikowany: 20-04-2014 16:20 przez Krystian

Do tej pory nie miałem okazji prowadzić publicznych prezentacji dla większych grup słuchaczy, za wyjątkiem rzecz jasna prezentacji wewnątrz-firmowych (np. na temat "Ataków Socjotechnicznych"). Nie brakowało mi rzecz jasna chęci, ale głównie czasu, a przede wszystkim dobrego tematu. W końcu celem prelekcji powinno być przedstawienie czegoś ciekawego, podzielenie się wiedzą, lub interesującym pomysłem. Robienie prezentacji nie powinno być celem samym w sobie.


Pomysł na temat prelekcji znalazłem jakiś czas temu. Pewien kolega z branży podsunął mi linka do pewnego mało znanego frameworka. Zainteresowała mnie nietypowość tego rozwiązania, nietypowość połączenia istniejących, świetnie znanych rozwiązań w celu osiągnięcia czegoś zupełnie nowego. BDD-Security, bo o nim mowa to mieszanka z pogranicza dwóch światów - zautomatyzowanego testowania aplikacji webowych oraz testowania bezpieczeństwa aplikacji webowych. Z pierwszego świata wzięto koncepcję scenariuszy zdefiniowanych w domain-specific language, za którym stoją mechanizmy sprawdzające funkcjonalności witryny (np. logowanie do systemu, zmiana ustawień profilu itd.). W tym konkretnym przypadku postawiono na znany i popularny jBehave. Ze świata bezpieczeństwa wzięto OWASP ZAPa, do którego można się podpiąć tworząc scenariusze przypadków testowych.


Efekt tego połączenia jest niezwykle interesujący, ponieważ obok scenariuszy testujących typowe działania platformy można napisać też scenariusze testujące m.in.: otwarte porty na testowanym hoście, jakość połączenia SSL (długość klucza, dostępne wersje, dostępne algorytmy szyfrujące), można też puszczać skrypty testujące podatności XSS i SQLi. Możliwe staje się uruchamianie tego typu testów każdej nocy, w efekcie każdego ranka lider projektu może zobaczyć, że np. 4% scenariuszy związanych z bezpieczeństwem zalicza faila.


To właśnie powtarzalność i czytelność jest główna zaletą BDD-Security. Większość firm dopiero na ostatniej prostej decyduje się na testy bezpieczeństwa przygotowywanej platformy (o ile w ogóle!). BDD-Security pozwala na wplecenie testów bezpieczeństwa do cyklu wytwarzania oprogramowania, co może znacząco podnieść poziom bezpieczeństwa projektu.


Oczywiście nie można tego dostać za nic. Trzeba wyasygnować zasoby ludzkie, aby stworzono scenariusze testujące bezpieczeństwo i je na bieżąco rozwijano/aktualizowano. Nie trzeba chyba dodawać, że osoby wyznaczone do tej funkcji muszą posiadać wiedzę z pogranicza QA i Web App Security. Na szczęście sam framework posiada multum przydatnych scenariuszy, co redukuje nakład pracy. Ponadto całość jest przygotowana zgodnie z Page Object Pattern, dzięki czemu podpięcie testów pod konkretną witrynę nie zabiera wiele czasu. Jest to też ogromny plus ponieważ przeniesienie istniejących testów BDD-Security do kolejnych firmowych projektów staje się zadaniem trywialnym. Skoro już przy plusach jesteśmy to muszę dodać, że podpięcie testów BDD-Security do narzędzi ciągłej integracji (np. Jenkinsa) jest po prostu banalne.


Tyle o samej treści moich prelekcji. Jeśli chodzi o kwestie organizacyjne to pierwsze wystąpienie miałem w Łodzi na spotkaniach ŁódQA, zaś drugie na PTaQ (Poznań Testing and Quality Group). Przed prezentacją na PTaQ postanowiłem materiały przenieść z PowerPointa na Prezi (link do prezentacji (dla zainteresowanych)). Była to dobra decyzja ponieważ osoba, która widziała obie prelekcje stwierdziła, że zrobiłem niesamowity postęp jakościowy. Nie wiem na ile to zasługa samego Prezi (który pozwala na przygotowanie efektownych prezentacji przy niewielkim nakładzie pracy), a na ile mojego nabycia ogłady i odwagi po pierwszym wystąpieniu (-;


W każdym razie z całą pewnością nie były to moje ostatnie prelekcje! Najbliższa odbędzie się prawdopodobnie na meet.php, czyli na spotkaniach Poznańskiej społeczności PHP, a dotyczyć będzie bezpieczeństwa Symfony2.


See ya soon, bro
Brak komentarzy