Rozpoczynasz swoją przygodę z bezpieczeństwem? Przeczytałeś kilka książek i wziąłeś udział w kilku kursach. Co powinieneś wiedzieć? Spróbujmy razem odpowiedzieć na pytania, które możesz usłyszeć podczas rozmowy kwalifikacyjnej.
Opublikowano 02.01.2023 18:15
Nie jestem fanem pytań pamięciowych o konkretne przełączniki.
To tylko hipotetycze pytania - potraktuj je jako trening. Mogą one paść podczas rozmowy kwalifikacyjnej na pentestera - ale nie muszą. To bardziej informacja dla Ciebie co powinieneś wiedzieć i co warto doczytać.
Nie wyjaśniam tutaj szczegółowo o co chodzi w danym temacie. Bardziej tłumaczę, dlaczego ja zadałbym takie pytania i co chciałbym sprawdzić przy ich pomocy.
Uwierzytelnianie vs autoryzacja
Te pojęcia są ze sobą często mylone. Powinieneś wiedzieć, że mają różne znaczenia.
Gdzie prowadzi adres 127.0.0.1?
Komunikacja z adresem 127.0.0.1 oznacza wymianę informacji wewnątrz danego hosta.
Sprawdzamy podstawowe wiadomości o sieciach komputerowych. Alternatywnie można zapytać o adres 127.0.0.2
. Powinno paść słowo kluczowe loopback
. Loopback to wirtualne urządzenie sieciowe.
Czym różni się szyfrowanie symetryczne od asymetrycznego?
Podstawowa wiedza z zakresu kryptografii. Czy potrafisz podać przykład wykorzystania algorytmu asymetrycznego?
Różnica między szyfrowaniem a haszowaniem
Pytanie można zadać na wiele sposobów. Jak przechowywać hasła użytkowników w bazie danych? Jak sprawdzić, czy plik nie został zmodyfikowany?
Co oznacza, że HTTP jest protokołem bezstanowym?
Protokół bezstanowy - nie zachowuje żadnych informacji o poprzednich transakcjach. Każde żądanie jest rozpatrywane niezależnie od innych.
Definicja to jedno - zrozumienie to drugie. Czy rozumiesz skąd serwer wie kim jesteś po zalogowaniu?. Dlaczego używamy ciasteczek?
Z jakich elementów składa się żądanie HTTP?
Żądanie HTTP składa się z metody, adresu, wersji protokołu, nagłówków.
Jeżeli używałeś Burpa to wiesz, że mamy żądania GET/POST
. Potrafisz podać popularne nagłówki (cookie, user agent). Wiesz, że są one rozdzielone znakiem CRLF
. Po co nagłówek Content-Length
?
Czym różni się kod błedu 503 od 404 i 301?
Kody błędów to istotna informacja. Wiesz, że informacje diagnostyczne mogą być przydatne. Rozumiesz, jak działają narzędzia w stylu dirbuster.
Czym różni się plik /etc/passwd od /etc/shadow?
Podstawowa wiedza z zakresu Linuxa. Jeżeli rozwiązywałeś jakieś zadania to pewno odczytywałeś plik /etc/passwd
. Można zapytać o inne komendy: chmod
, ls
.
TCP vs UDP
Czy potrafisz wytłumaczyć dlaczego HTTP korzysta z TCP a nie UDP?
Co jest głównym powodem błędów typu SQL Injection?
Jeżeli programista nie używa "prepared statement" tylko łączy dane od użytkownika z zapytaniem może dojść do "wstrzyknięcia" dodatkowych warunków/danych.
Potrafisz wyjaśnić na czym polega SQL Injection. Wiesz co to UNION
, SELECT
i LIMIT
. Kojarzysz pojęcie Blind SQL Injection.
Czy znasz inne rodzaje wstrzyknięć?
SQL Injection to oczywisty typ wstrzyknięcia. Ale istnieją też mniej znane. Sprawdzam, czy je kojarzysz.
Na czym polega zasada najmniejszego uprzywilejowania?
Principle of least privilege - każdy element systemu ma dostęp tylko do tych informacji, które są niezbędne do spełnienia wyznaczonych mu celów/zadań.
Nie tylko znasz definicję, ale potrafisz podać przykład. Jeżeli sekretarka korzysta tylko z emaila nie powinna mieć dostępu do bazy danych lub serwerów produkcyjnych.
Jakie znasz rodzaje ataków XSS?
innerHTML
/eval
).Wiesz co to XSS i dlaczego jest niebezpieczny. Kojarzysz co to onerror
, onclick
. Rozumiesz czym różni się innerHTML
od innerText
.
Użytkownik zapomniał hasła. Czy mogę mu je wysłać mailem?
Nie - bo nie powinieneś go znać 😉
Wiesz, że hasła nie powinny być przechowywane jako plain text
. Potrafisz wyjaśnić procedurę resetowania hasła.
Wytłumacz XXE
XXE - przetwarzanie złośliwego pliku XML może doprowadzić do odczytania zawartości pliku z atakowanej maszyny.
Wiesz, co to XML
. Znasz pojęcie encji
.
Gdzie możemy natrafić na błąd typu Race Condition?
Świetnie, jeżeli znasz moduł Intruder
. Albo Turbo Intruder
. A może potrafisz podać inne przykłady?
Czy korzystałeś z Damn Vulnerable Web Application?
Damn Vulnerable Web Application - specjalnie przygotowana aplikacja która posiada błędy bezpieczeństwa. Można na niej szlifować swoje umiejętności.
Znajomość OWASP
to podstawa. Jeżeli czytałeś - to raczej na pewno natknąłeś się na ten projekt. Nie używałeś? To może zgadniesz na podstawie nazwy.
O co chodzi z numerami CVE?
Common Vulnerabilities and Exposures - identyfikator odpowiadający powszechnie znanym podatnościom, standard ich nazewnictwa.
Odnalezionym błędom można przypisać numery. Wiesz, że firmy podają je w swoich komunikatach. Znasz Exploit Database
(lub inne miejsca).
Na czym polega Bug Bounty?
Bug Bounty - to formalne zaproszenie do zgłaszania odnalezionych podatności. Czasami można za nie otrzymać nagrodę (również finansową).
Znasz popularne platformy (HackerOne
, BugCrowd
). Wiesz, że można czytać (niektóre) raporty innych osób. Może brałeś udział w takim programie (i coś znalazłeś).
Co oznacza pojęcie Google Dorks?
Google Hacking - wykorzystanie zapytań do wyszukiwarki, które pozwalają na odszukanie przydatnych informacji.
Wiesz co to Shodan
. Kojarzysz termin głębokie ukrycie
. Potrafisz stworzyć ukryty plik.
Różnica między testem black box i white box
Może znasz potencjalnie niebezpieczne funkcje w różnych językach. Wiesz co oznacza pojęcie rekonesansu
. Znasz pojęcie certificate transparency log
.
Dlaczego phishing jest niebezpieczny?
Phishing - metoda oszustwa, w której przestępca podszywa się pod kogoś lub coś w celu wyłudzenia informacji (np. loginu i hasła).
Używasz menadżera haseł. Wiesz co to 2FA/U2F.
Czy oprogramowanie open source jest bezpieczne?
To, że oprogramowanie jest Open Source nie oznacza od razu, że jest bezpieczne. Programy tworzą ludzie, którzy popełniają błędy.
Pytanie otwarte, zachęcające do dyskusji. Potrafisz wskazać plusy i minusy projektów open source
. Znasz pojęcie security through obscurity
.
Jakie informacje można znaleźć w certyfikacie SSL?
Certyfikat zawiera:
Rozumiesz po co są certyfikaty. Wiesz, że mają określoną datę ważności. Kojarzysz, że są różne, główne urzędy certyfikacji
. Pewno samemu instalowałeś certyfikat dla BURPa
.
Po co szyfrujemy dyski twarde?
Chronimy dane, które mogą wpaść w ręce przestępców (jeśli ukradną laptopa).
Pytanie otwarte - prowokujące do rozmowy. Wiesz jak działa ekran logowania komputera. Rozumiesz, że można bootować
laptopa z pendrive.
Wyjaśnij mechanizm SOP
SOP - to istotny mechanizm bezpieczeństwa, który określa sposób, w jaki dokument lub skrypt jednego pochodzenia (origin) może komunikować się z zasobem innego pochodzenia. Pozwala to na odizolowanie potencjalnie szkodliwych dokumentów i tym samym redukowane są czynniki sprzyjające atakom.
Origin = protokół, domena i port
. Potrafisz wyjaśnić po co ta izolacja. Znasz pojęcia CORS
, JSONP.
Jakich narzędzi używasz na co dzień?
Alternatywnie: jak wysłać zmodyfikowane żądanie do serwera? Wymienione narzędzia nie mają większego znaczenia. Sprawdzamy, czy wiedza nie jest tylko teoretyczna. Czy potrafisz opisać co robią te narzędzia. Umiesz wykonać daną pracę ręcznie.
Czy adres URL może zawierać login i hasło?
http://hans:[email protected]:8080/demo/example.cgi?land=de&stadt=aa
\__/ \__/ \____/ \_____________/ \__/\_______________/ \______________/
| | | | | | |
| login | host port ścieżka ścieżka
protokół hasło (adres serwera) do zasobu wyszukiwania
Można to pytanie dodatkowo rozszerzyć. Jak nazywa się część po #
. Czy jest ona wysyłana do serwera?
Wymień popularne numery portów
Wiesz co to nmap
. Rozumiesz, że testować można nie tylko aplikacje webowe. Potrafisz wymienić kilka znanych portów.
Co oznacza privilege escalation?
Eskalacja uprawnień -- zdobycie uprawnień do zasobów, które normalnie nie są dostępne.
Rozumiesz, że systemy działają na różnych poziomach uprawnień. Wiesz czym różni się zwykłe konto od konta administratora. Wiesz co to SUID
.
Jak chronisz swoje bezpieczeństwo?
Jeżeli rzeczywiście interesujesz się bezpieczeństwem to pewno zastanawiałeś się jak chronić swoją pocztę. Rozumiesz, że ktoś może się na nią włamać.
Jak przetestować stronę logowania?
Pytanie otwarte - sprawdzające jak myślisz. Strona logowania (to teoretycznie) tylko prosty formularz. Czy rozumiesz jak działa od środka
.
Opisz błąd, który Cię zainteresował
Dowolny exploit/błąd na który natknąłeś się podczas swojej nauki.
Jeżeli rozwiązywałeś jakieś zadania praktyczne musiałeś wykorzystywać gotowe exploity
. Często wymagają one drobnych modyfikacji. Opisując je - wiem, że coś robiłeś.
Jak szukać błędów CSRF?
CSRF - wykonanie żądania do serwera przez przeglądarkę użytkownika. Sprawdzamy czy serwis wykorzystuje nagłówki/parametry anty CSRF. Wysyłamy żądanie bez nich i sprawdzamy, czy się powiodło.
Wytłumaczenie CSRF może być trudne. Spróbuj wytłumaczyć to na przykładzie banku i wysłania przelewu.
Jakie języki są podatne na niebezpieczną deserializację?
Serializacja może być trudna do zrozumienia przez osoby bez znajomości programowania.
Jak przetestujesz aplikację mobilną?
Można zdekompilować aplikację. Można dodać nowy, główny urząd certyfikacji do telefonu. Można przepuścić ruch przez zewnętrzny serwer proxy. Burp Suite.
Aplikacje mobilne to nie coś, co testują początkujący. Taka wiedza może zostać pozytywnie odebrana. Wymaga kilku umiejętności - aby wszystko działało.
Jak sprawdzić czy strona jest podatna na path traversal?
../
..\
A czy wiesz gdzie może wystąpić taka podatność (i dlaczego)?
Co mówi Ci MS08-067?
MS08-067 - Unauthenticated RCE jako SYSTEM z powodu buffer overflow w RPC.
Przecież to historia? Jeżeli robiłeś jakieś boxy (w stylu Hack The Box
) to pewno się na to natknąłeś.
Jak uruchomisz Linuxowe narzędzia jeśli korzystasz z Windowsa?
Jeżeli zaczynasz swoją przygodę z bezpieczeństwem to pewno korzystasz z Windowsa. Jeżeli robiłeś praktyczne zadania to raczej na pewno natknąłeś się na ten problem.
Co powinien zawierać raport z pentestów?
Oczywistym jest, że sam pewno nie tworzyłeś takiego raportu. Ale jeżeli czytałeś opisy błędów - to masz rozeznanie. Co w nich jest a czego tam nie ma.
Czy znasz jakiś język programowania?
Język nie ma znaczenia.
Jeśli nie znasz - to może inaczej poradzisz sobie z problemem. Może znasz jakieś platformy no-code
? Może wykorzystasz jakieś narzędzia z interfejsem GUI
?
Co robi red team?
Red Team - zespół osób, które symulują realistyczne ataki na firmy.
Czy interesowałeś się innymi działkami bezpieczeństwa? A może Reverse Engineering
? Skąd wiesz, że to pentesting jest dla Ciebie najlepszy?