Programista pasjonat z zamiłowaniem do bezpieczeństwa komputerowego i niskopoziomowych aspektów informatyki. Autor książki "Zrozumieć Programowanie", redaktor naczelny i twórca eksperymentalnego magazynu Paged Out!, a także licznych artykułów, publikacji, podcastów oraz wystąpień poświęconych wspomnianym tematom. W 2013 roku odebrał w Las Vegas (wspólnie z Mateuszem Jurczykiem) nagrodę Pwnie Award w kategorii „Najbardziej innowacyjne badanie naukowe” z dziedziny bezpieczeństwa komputerowego. Współzałożyciel i były kapitan zespołu Dragon Sector”, jednej z najlepszych drużyn Capture The Flag na świecie. Przewodniczący Rady Programowej konferencji PWNing. Od 2010 roku mieszka w Zurychu, gdzie pracuje dla firmy Google jako Technical Lead / Manager.
Niewielka miejscowość w Kantonie Zurych w Szwajcarii.
37
Jeszcze na studiach pracowałem w jednej z polskich firm antywirusowych (ArcaBit). Po roku przeszedłem do hiszpańskiej firmy Hispasec (znanej m.in. z VirusTotal), a po kolejnych ponad 3 latach do Google, gdzie pracuje od około 10 lat.
Zawsze mieszanych/łączonych/multiclass. W ArcaBit był to programista / reverse-engineer, w Hispasec security researcher / pentester / malware analyst / programista (prawdziwy full-stack, od driverów, do webów i aplikacji mobilnych) / lokalny menedżer / czy nawet skręcacz mebli :). W Google oficjalnie jestem na stanowisku Software Engineer + Tech Lead / Manager jednym z wielu zespołów bezpieczeństwa (a w praktyce do wszystkiego wymienionego doszła jeszcze np. elektronika, jak i kilka innych rzeczy).
Poza pracą (patrz wyżej) dwa razy w tygodniu streamuje na YouTube, a poza tym tworzę magazyn Paged Out!, i troszkę pomagam przy magazynach Programista i Programista Junior. Oprócz tego jeśli mam czas (co niestety zdarza się rzadko) gram w CTFy z zespołem Dragon Sector. A także zasiadam w radach programowych dwóch polskich konferencji - PWNing i CONFidence.
Haven (mój główny komputer): https://gynvael.coldwind.pl/haven2.html
Aurora Nanoleaf
Tak. Głównie YubiKey - polecam :)
SysInternals / Microsoft ZoomIt
PC/Laptop: Windows jako główny OS desktopowy + Ubuntu Server na VM. Serwery/VPSy: Ubuntu Server. Czemu? Osobiste preferencje :)
Przede wszystkim dlatego, że mój setup powstał jeszcze przed pojawieniem się WSL/WSL2, i póki co nie miałem dobrego powodu by go zmigrować. Poza tym WSL nie wspierał pewnych używanych przeze mnie ficzerów Linuxa (np. obsługi różnorodnych systemów plików).
Mam dość unikatową konfigurację, która łączy niektóre zalety Windowsa z Linuxem. Więcej o tym można poczytać tutaj: https://docs.google.com/document/d/1bq3lXdB2G4Mr2xVSxGdx6icleV7bfWbDUQUOuXzftTY/edit?usp=sharing
Głównie IDA, choć czasem korzystam z Binary Ninja i Ghidra. Do tego ndisasm (z pakietu NASM) i Capstone.
Fiddler i cała masa ad hoc skryptów w Pythonie.
Brak. Patrz również: https://www.youtube.com/watch?v=I6yNRMcdXKE
Tak. Na różnych komputerach różne rzeczy. Czasem też szyfrowanie konkretnych katalogów / plików dodatkowo.
Nie korzystam z pwntools z dwóch powodów:
1. Mam własny mini-framework z którego korzystam (który ma jakieś 1% ficzerów pwntools, ale na moje potrzeby wystarcza).
2. Co próbuje podejść do pwntools, to coś mi nie działa :(
Najczęściej mam do czynienia z Pythonem, C/C++, JavaScript oraz Asemblerem x86. Oprócz tego przez lata mniej lub więcej pisałem w bardzo wielu językach, m.in. w PHP, Perl, Java, Turbo Pascalu, różnych odmianach BASICa, czy bardziej specjalistycznych jak mIRC Script czy eScript. Zdarzało mi się też pisać kilkuset-linijkowe skrypty w batch (.bat) i Bash.
Praktycznie w ogóle nie znam języków funkcyjnych. Nie dotykałem również ani Rust (choć jest na todo-liście), ani C#. Niektórymi językami bawiłem się tylko przez krótką chwilę (np. Go lang). Oczywiście w ogóle nie miałem do czynienia z masą innych języków, ale o te kilka wymienionych jestem najczęsciej pytany.
Przygodę z programowaniem zacząłem mając 6 lat.
Atari BASIC <3
Nie posiadam żadnych certyfikatów, i w mojej konkretnej działce nie czuje potrzeby ich posiadania (z mojego ograniczonego doświadczenia certyfikaty są neutralne, tj. ani nie pomagają w zdobyciu pracy, ani też nie przeszkadzają). YMMV.
Z mojego punktu widzenia certyfikaty są przydatne w dwóch przypadkach:
1. Jeżeli chcemy podjąć pracę w firmach/instytucjach, które takich certyfikatów wymagają, lub w firmach świadczących usługi na rzecz wspomnianych firm/instytucji.
2. Jeżeli chcemy posiadać certyfikat, lub wykorzystać zdobycie certyfikatu jako swoisty motywator do nauki.
W takich przypadkach bardzo zachęcam do zdobycia certyfikatów o których marzymy :)
Go bawiłem się jedynie od razu po jego wyjściu - napisałem prosty raytracer (https://gynvael.coldwind.pl/?id=249) i na tym moja przygoda z ty językiem się skończyła. Wydawał się być natomiast fajną alternatywą do C w niektórych zastosowaniach (i zdecydowanie bezpieczniejszą)
Język-pułapka. Jeden z moich ulubionych języków programowania, ale żeby pisać w nim bezpiecznie trzeba w zasadzie zrobić z niego doktorat.
Dwa bardzo dobre źródła wiedzy o tym języku:
Specyfikacja: https://isocpp.org/files/papers/N4860.pdf
C++ Core Guidelines: https://github.com/isocpp/CppCoreGuidelines
Domyślna implementacja jest generalnie powolna (VM bez JIT + GIL), ale sprawdza się nieźle dla wątków typu I/O bound. Do tego pokaźna kolekcja łatwych do zainstalowania bibliotek, przejrzysta a jednocześnie bardzo wygodna i ekspresyjna składnia, jak i popularność w security/hackingu sprawia, że to jeden z moich ulubionych języków.
Bardzo popularny obecnie język, który powstawał czysto organicznie w świecie przeglądarek przez wiele lat, przez co można w nim znaleźć wiele dziwnych decyzji projektowych. Osobiście lubię JS, ale... to jest język po przejściach i wymaga zarówno cierpliwości jak i miłości ze strony programisty.
Rust jest na mojej todo-liście, ale jeszcze do niego nie dotarłem :(
Nie mam pojęcia co to - foxtrot to tu wrzucił, więc to wszystko jego wina.
Nic nie wiem o językach funkcyjnych :(
Ogólnie szybki i bezpieczny język, tylko bardzo rozwlekły. Kiedyś w Javie pisałem więcej, teraz co najwyżej czytam kod.
W C# prawie nic nie pisałem - zdarzyło mi się co najwyżej debugować lub czytać kod. Wyglądał OK.
Wygląda jak skrzyżowanie Pythona z Perlem. Ruby głównie "czytałem" na CTFach, więc za dużo o nim nie umiem powiedzieć.
Krótka odpowiedź: Jeśli jeszcze nie pracujesz w momencie pisania matury w IT, to bardzo zachęcam do pójścia na studia - choćby po to, że da to więcej czasu na rozwój/skillowanie we własnym zakresie.
Dłuższa odpowiedź: https://gynvael.coldwind.pl/?id=337
Nie mam zdania na ten temat - obie wersje mają swoje wady i zalety.
Tak. Przy czym musisz sobie odpowiedzieć na dwa dość przyziemne pytania:
Czy będziesz mieć odpowiednią ilość wolnego czasu w ciągu doby aby poświęcić ją na programowanie/haking? Zarówno programowanie jak i hacking wymagają MASY nauki zanim w ogóle dojdzie się do poziomu juniora.
Czy dasz radę przetrwać za pensje juniora? Po przebranżowieniu się na programistę/bezpiecznika trochę potrwa zanim dojdzie się do poziomu senior/staff/etc.
Poza tym tylko dodam, że wraz z wiekiem rośnie łatwość przyswajania bardziej abstrakcyjnych tematów - więc być może osobom dorosłym będzie łatwiej nauczyć się programowania niż dzieciom (choć jest to tylko taka moja nie zweryfikowana w żaden sposób hipoteza).
To było daawno temu, jak jeszcze panowały inne zasady. Pisałem matury z języka polskiego (pisemna+ustna), matematyki (pisemna), fizyki (ustna), oraz angielskiego (ustna).
https://www.youtube.com/watch?v=9I5RAWGWj7I
https://www.freecodecamp.org/news/so-you-want-to-work-in-security-bc6c10157d23/
https://lcamtuf.blogspot.com/2016/08/so-you-want-to-work-in-security-but-are.html
http://ifsec.blogspot.com/2018/02/so-you-want-to-work-in-security-and-for.html
https://gist.github.com/mubix/5737a066c8845d25721ec4bf3139fd31
https://research.checkpoint.com/2020/i-want-to-learn-about-exploitation-where-do-i-start/
https://gynvael.coldwind.pl/?lang=en&id=664
https://gynvael.coldwind.pl/?id=659
https://gynvael.coldwind.pl/?id=427
A także przegląd mojej biblioteczki:
https://www.youtube.com/watch?v=VApXVLKi7uI
David Weber - seria o Honor Harrington (militarne sci-fi)
Anne Bishop - cykl The Black Jewels (dark fantasy)
Jim Butcher - cykl The Dresden Files (urban fantasy)
Michał Cholewa - cykl Algorytmy Wojny (militarne sci-fi)
Mercedes Lackey - dowolne książki z serii o królestwie Valdemar / świecie Velgarth (fantasy)
Przed OSDev ;)
Po raytracingu ;)