SecOps Online MeetUp #5

Jeszcze w sierpniu wziąłem udział w wydarzeniu SecOps Online MeetUp #5, gdzie standardowo opowiedziałem co nieco o bezpieczeństwie aplikacji, DevSecOps oraz automatyzacji.

Poruszyłem również kwestię narzędzi, które można zapuścić na własne aplikacje żeby zobaczyć co w trawie piszczy.

Kilka dni temu dostałem link do nagrania na YouTube. Polecam. ✌️

BTW. Jako uzupełnienie zachęcam do ściągnięcia mojego darmowego e-booka DevSecOps: Podstawy Automatyzacji Bezpieczeństwa

Podsumowanie miesiąca: maj i czerwiec 2020

Właśnie jestem w pociągu do Katowic. Dwie godziny z hakiem do zużycia więc postanowiłem w końcu nadrobić zaległości i napisać podsumowanie zbiorcze dla maja i czerwca. Co prawda LTE na tej trasie pozostawia wiele do życzenia i pisanie jest toporne, ale albo teraz albo nigdy.

Retrospekcja maja i czerwca

Co udało mi się dowieźć:

  • Wypuściłem pierwszą edycję Akademii Bezpiecznego Kodu i pomimo tego, że jest to tylko jedna pozycja to żeby ją zrealizować musiał się wydarzyć szereg innych akcji

Czego nie udało mi się dowieźć:

Pole do poprawy jest, potok dodatkowych projektów również. Jak to mówi mój dobry kolega fraktal rodzi fraktal.

Aplikacje w obiegu

W maju i czerwcu kontynuowałem namiętne używanie Endela, Qbserve, oraz Auto Sleep. Do rotacji dołożyłem również aplikację Freedom.

Warto wspomnieć, że w maju Endel miał update i dorobił się nowych trybów muzycznych.

Freedom

Tak wygląda zablokowany Instagram

Freedom aplikuje nam proxy na poziomie systemu i w momencie kiedy ustawimy sobie blok czasowy to wycina nam dostęp do niechcianych stron na poziomie sieci. Działa zarówno na macOS jak i iOS.

Sposób nie jest idealny (na macOS można po prostu ubić proces, a na iOS VPN wyłącza się czasami sam z siebie), ale jeżeli sami ze sobą jesteśmy szczerzy to nie będziemy oszukiwać.

Reasumując

Zarówno maj jak i czerwiec uważam za udane. Co prawda nie udało mi się zrealizować wszystkiego co chciałem. Ba! Nie udało zrealizować się nawet połowy, jednak na koniec dnia wiem, że (1) zrealizowałem to co było dla mnie najważniejsze (odpalenie Akademii) oraz (2) coraz lepiej rozumiem temat produktywności.

W chwili obecnej mamy już drugą połowę lipca i jest lepiej niż było, a więc progres (a o to w życiu chodzi) jest kontynuowany. Usprawnianie procesu idzie czasami lepiej, czasami gorzej, ale cały czas idzie do przodu.

Slow but steady wins the race.

Podsumowanie miesiąca: kwiecień 2020

Pod koniec 2019 roku zacząłem odnosić wrażenie, że często jestem zajęty, a nie produktywny (pomimo tego, że pracuję całkiem sporo to nie dowożę tyle ile chcę i mogę). W związku z tym na początku tego roku postanowiłem przebudować od podstaw proces mojego działania.

Styczeń poświęciłem na obserwację tego, w jaki sposób pracuję, z jakich narzędzi korzystam, listowanie dostępnych opcji, i ogólne myślenie o tym, co może się u mnie sprawdzić. Po tym wszystkim postanowiłem, że narzędzi zmieniać nie będę i zostanę przy metodologii GTD, posiłkując się aplikacją Things jako głównym źródłem prawdy (miejsce, w którym ląduje wszystko, co przerabiam).

Jako uzupełnienie w niektórych projektach korzystam z kanbana poprzez Trello, ale podjąłem decyzję o mocnym ograniczeniu tego narzędzia.

Things ma tę wadę, że działa jedynie w ekosystemie Apple. Jednocześnie jest to również jego zaleta, ponieważ jest świetnie zgrany zarówno z macOS, jak i iOS. Dla przykładu: integracja skrótów pozwala bardzo szybko dodawać zadania z referencjami do różnego rodzaju zasobów w systemie (pliki, notatki, URL-e, et cetera), co BARDZO przyśpiesza dodawanie rzeczy „na później”.

Luty był pewnego rodzaju eksperymentem, gdzie wprowadziłem pierwszą wersję procesu planowania tygodni i miesięcy na podstawie wysokopoziomowego spojrzenia stworzonego w postaci mapy myśli (do mapowania myśli korzystam z aplikacji XMind).

Proces wygląda tak, że w każdą niedzielę w Things pojawia się projekt „Retrospekcja: tygodniówka” z zadaniami takimi jak:

  • Przegląd systemu (tj. wszystkiego co mam w Things),
  • Przegląd newsów (via RSS, korzystam z Inoreader),
  • Procesowanie artefaktów zbieranych z sieci przez cały tydzień w Instapaper,
  • Przegląd treningu (obecnie zatrzymany ponieważ siłownie są zamknięte),
  • Przegląd wysokopoziomowego spojrzenia (rzut okiem na wspomnianą powyżej mapę myśli),
  • Ocena poprzedniego tygodnia (leci do Evernote),
  • Plan tygodnia następnego (zaplanowanie zadań w Things).

Natomiast pod koniec każdego miesiąca (np. wczoraj) przechodzę przez projekt „Podsumowanie i planowanie kolejnego miesiąca” składającego się z:

  • Podsumowania poprzedniego miesiąca (szczegółowo w Evernote, luźno tutaj na blogu),
  • Przegląd wysokopoziomowego spojrzenia (tak jak wyżej),
  • Planowanie kolejnego miesiąca (rozpiska planu w Evernote i dodanie/modyfikacja odpowiednich projektów/zadań w Things).

Marzec i kwiecień upłynęły na doskonaleniu powyższych procesów i dowożeniu zaplanowanych projektów oraz zadań, które z nich wynikały.

Na chwilę obecną jest lepiej niż było, ale jeszcze nie osiągnąłem stanu, w który celuję. Bill Gates powiedział kiedyś, że większość ludzi przecenia to, co jest w stanie zrobić w rok, a nie docenia tego, co jest w stanie zrobić w ciągu dekady. W pełni się z tym zgadzam. Wiem, że przeceniałem ilość projektów i zadań, jakie jestem w stanie wykonać w danej jednostce czasu (dzień, tydzień, miesiąc). Nad tym problemem cały czas pracuję i zakładam, że do końca tego roku planowanie będzie trafne w większości przypadków (75% skuteczności będę uważał za sukces).

Retrospekcja kwietnia

Co udało się dowieźć:

Czego nie udało się dowieźć:

Nowe appki w obiegu

W kwietniu zacząłem korzystać z trzech nowych aplikacji: Endel, Qbserve, i Auto Sleep. Poniżej krótkie opisy każdej z nich.

Endel App

Różne tryby generowania melodii w aplikacji Endel

Pracując lubię słuchać muzyki. Do tej pory najczęstszym wyborem była muzyka klasyczna (Bach, Chopin, Liszt), muzyka elektroniczna (Tycho i Boards of Canada), oraz różne soundtracki z gier i filmów (World of Warcraft, Blade Runner, Mr. Robot, i tym podobne). Wszystko grało poprzez Spotify.

Na początku kwietnia postanowiłem wypróbować aplikację Endel, która generuje melodię na podstawie kilku zmiennych takich jak pogoda (lokalizacja via GPS) czy rytm serca (via Apple Watch).

Eksperyment uważam za udany – odkąd zacząłem korzystać z Endel to Spotify włączyłem dokładnie 2 razy. Jedyny minus to szybkie zżeranie baterii, ale jakoś będę musiał z tym żyć.

Qbserve

Qbserve sprytnie zlicza czas spędzony na komputerze

Jednym z największych problemów pracy przy komputerze są rozpraszacze dostępne na wyciągnięcie ręki. Jako pierwszy krok do rozwiązania tego problemu postanowiłem zmierzyć czas, jaki spędzam w różnych aplikacjach i na stronach WWW.

Po miesiącu zbierania statystyk wyszło, że na głupoty poświęcam więcej czasu niż na pracę (taką wisienką na torcie było 15h spędzonych na wykopie). Tak czy siak, podstawą jest świadomość. Teraz wiem ile czasu przelatuje mi przez ręce i podejmuję kroki, aby to optymalizować (konkretny sposób omówię po fazie testowania za miesiąc lub dwa).

Auto Sleep

Jestem w trakcie czytania książki Why We Sleep i co prawda problemów ze spaniem nie mam (do higieny snu przywiązuję wagę od wielu lat), ale chciałem przebadać jakość swojego snu.

Po kilku nocach przespanych z Apple Watch wyszło, że nie jest tak różowo jak mi się wydawało głównie pod kątem długości snu. Będę to poprawiał w tym i kolejnych miesiącach.

Reasumując

Pierwszy kwartał roku 2020 z bonusem w postaci kwietnia zleciał głównie na tworzeniu i optymalizacji procesu. Jest lepiej niż było, ale nie jestem jeszcze tam gdzie chcę być. Plan na maj jest już wstępnie ułożony. Teraz czeka mnie jeszcze przerzucanie projektów i zadań do Things oraz nadanie priorytetów.

Iterate upon success. 👋

OWASP Application Security Verification Standard 4.0

Na początku marca pojawiła się nowa wersja OWASP Application Security Verification Standard (ASVS), który jest de facto podstawowym narzędziem w ocenie bezpieczeństwa aplikacji zarówno na naszym podwórku jak i za granicą.

Zmian względem poprzedniej wersji 3.0.1 wydanej w 2016 roku jest sporo, zarówno od strony samych wytycznych jak i ogólnego “ducha” dokumentu. W związku z tym postanowiłem wypisać co ciekawsze punkty, lecimy!

  • Wyrównanie wytycznych “V2: Authentication” oraz “V3: Session Management” ze standardem NIST 800-63-3 Digital Identity Guidelines — świetny ruch, standardy branżowe powinny mieć punkty wspólne wszędzie gdzie tylko można;
  • Zmiana układu sekcji, która pomaga w dodawaniu/usuwaniu odpowiednich wytycznych z zakres audytu (np. jeżeli aplikacja nie korzysta z JSON Web Tokens to cała sekcja związana z JWT może zostać w prosty sposób pominięta);
  • Zmapowanie podatności do odpowiednich rodzajów wyznaczonych przez Common Weakness Enumeration (CWE), oczywiście w miarę możliwości bo nie wszystko da się przełożyć 1:1;
  • Wyrównanie całości poziomu 1 (L1) z wymogami OWASP Top 10 2017 (jedynym wyjątkiem jest tutaj A10 czyli logowanie) co ułatwia adoptowanie Top 10 bo pieczemy dwie pieczenie na jednym ogniu;
  • Poziom 1 (L1) w nowej wersji ASVS zapewnia zgodność z Sekcjami 6.5+ standardu PCI DSS 3.2.1 innymi słowy — implementując ASVS na poziomie 1 spełnimy wymagania związane z Sekcjami 6.5+ standardu PCI DSS w projektach, które tego  wymagają;
  • Zmiana podejścia do architektury aplikacji z monolitów server-side na to co dzisiaj jest już chlebem powszednim czyli: server-less API,  functional programming na produkcji, producenci (API) i cały wachlarz konsumentów (desktop, web, mobile), chmury, kontenery, CI/CD i związana z tym wszystkim kultura DevSecOps;
  • Porzucenie kontrolek związanych z aplikacjami mobilnymi na rzecz standardu OWASP Mobile Application Security Verification Standard;
  • Zapewnienie możliwości przetestowania całego poziomu 1 (L1) podejściem black-box bez dostępu do dokumentacji, kodu źródłowego, deweloperów et cetera. Jedynym wyjątkiem jest A10 (Top 10), które wymaga zrzutów ekranu, wywiadów i ogólnego dowodu na logowanie.

Ponadto da się wyczuć mocny nacisk na:

  1. Testowanie podejściem hybrydowym wszystkich trzech poziomów (w dokumencie brzmi to jak zwykły white-box);
  2. Automatyzację wszystkiego co można z poziomu potoku CI/CD (np. narzędzia SAST i DAST powinny być używane w trybie ciągłym już na etapie wytwarzania aplikacji, a nie dopiero w momencie oceny podatności czy testu penetracyjnego).

Osobiście bardzo podoba mi się uwypuklenie podnoszenia poprzeczki w procesie wytwórczym oprogramowania, oraz zabranie głosu w sprawie ograniczeń związanych z podejściem black-box połączonej z rekomendacją hybrydowej oceny bezpieczeństwa aplikacji wychodzącej poza sam dostęp do instancji aplikacji i włączającej również przegląd kodu źródłowego czy wywiady z deweloperami.

Podsumowując nowa wersja ASVS bardzo dobrze wpasowuje się w dzisiejszy sposób wytwarzania, działania, i utrzymywania aplikacji. Jest to krok w dobrym kierunku, który był potrzebny już od dłuższego czasu (3 lata w IT to długo). Kudos w stronę autorów!

Podsumowanie roku 2018

Przeszło dwa tygodnie temu zaczął się rok 2019 i z okazji tego faktu postanowiłem streścić kilka tematów, które zadziały się na przestrzeni minionego roku. Bardziej dla siebie niż innych — na pewno będzie fajnie przeczytać kilka takich podsumowań za kilka lat. Let’s go!

Kariera

W zeszłym roku zacząłem odchodzić od implementacji na rzecz architektury i szeroko rozumianego procesu (eliminacja podatności na etapie wytwarzania oprogramowania poprzez implementację Secure SDL czy DevSecOps). Dalej uważam to za słuszną drogę — gaszenie pożarów jest nieoptymalne. Jako społeczność powinniśmy się skupić na podnoszeniu poprzeczki poprzez (1) usprawnianie procesu wytwarzania oprogramowania (Secure SDL / DevSecOps), (2) automatyzację wykrywania podatności (np. poprzez fuzzing), oraz (3) implementacji mechanizmów bezpieczeństwa eliminujących całe klasy podatności (np. różne odsłony mechanizmu CFI). Pojedyncze podatności schodzą na drugi plan. (W tym artykule Bruce Schneier zadał pytanie “Are vulnerabilities in software dense or sparse?” obawiam się, że na chwilę obecną odpowiedzią jest dense).

Poza tym miałem okazję występować publicznie aż 7 razy na krajowych konferencjach dotyczących technologii: Code Europe (Warszawa, Poznań), 4Developers (Gdańsk, Wrocław), What The [email protected] (Warszawa), oraz AlligatorCon (Kraków). Slajdy z większości wystąpień można pobrać z GitHuba.

Plakietki konferencyjne z większości wydarzeń, w których uczestniczyłem.

Last but not least pomiędzy pracą, własnymi projektami, oraz wystąpieniami publicznymi zdobyłem również trzy certyfikaty branżowe (OSCP, OSWP, i eCRE). Osobiście nie wierzę w udowadnianie kompetencji poprzez certyfikaty (znam za dużo osób bez żadnych certyfikatów, które ”znają się na robocie”), ale moje widzimisię nie pokrywa się ze spojrzeniem polskiego rynku więc robię to co trzeba zrobić 🤷‍♂️. Niestety jako osoba z latami doświadczenia, we wszystkich kursach do których podszedłem i skończyłem z sukcesem (3/3) wartością dodaną jest jedynie papierek. Zdecydowaną większość materiału (pi*drzwi 95+%, gdzie pozostałe procenty to tips & tricks) znałem już przed kursami.

Start-up (stealth-mode)

W 2018 zacząłem również pracę nad start-upem technologicznym związanym z cyberbezpieczeństwem. Docelowym modelem biznesowym jest Software-as-a-Service dla B2B. Na tę chwilę jestem ja i jeden techniczny co-founder. Całość jest w tzw. stealth-mode, mamy już MVP i publiczną betę planujemy pod koniec 2019Q1 albo początek 2019Q2.

Trening

Progres był, ale nie tak duży jak zakładałem. Powód? Za małe skupienie na progresowaniu ciężaru połączone ze słabym trzymaniem michy. Skończyło się na następujących 1RM przy wadze w okolicach 70kg:

  • Siad 110kg (1.57xBW)
  • Martwy ciąg 155kg (2.21xBW)
  • Ławka 70kg (1xBW)

Upper-body ma duże lagi w stosunku do lower-body — wiem i zacząłem to naprawiać (obecny trening skupia się mocno wokół upper kosztem lower).

Warszawa

W marcu 2018 upłynął rok odkąd zamieszkałem w Warszawie (co samo w sobie było zakończeniem mojej kilkuletniej tułaczki po świecie). Rok w Warszawie (wkrótce dwa!) i dalej jestem zadowolony z wyboru. Polska nie jest idealna jednak z doświadczenia wiem, że ideałów nie ma. Dobrze mi tu gdzie jestem.

2019

Planów, celów, projektów, et cetera na rok 2019 jest pod dostatkiem. Zachęcam do obserwacji (Twitter & Linkedin) bo będzie się działo! 💪