Cyberbezpieczeństwo okiem programisty

CompTIA Security+ SY0-701 – ściąga

C

Data ostatniej aktualizacji: 2025-05-07.

1.0 General Security Concepts

1.1 Compare and contrast various types of security controls.

Porównaj ze sobą i wskaż różnice pomiędzy różnymi formami kontroli bezpieczeństwa, których zadaniem jest zapobieganie, wykrywanie oraz minimalizowanie skutków różnych typów zagrożeń.

1.2 Summarize fundamental security concepts.

Streść fundamentalne zagadnienia związane z bezpieczeństwem.

1.3 Explain the importance of change management processes and the impact to security.

Wyjaśnij znaczenie procesu zarządzania zmianami oraz jego wpływ na bezpieczeństwo.

1.4 Explain the importance of using appropriate cryptographic solutions.

Wyjaśnij istotę i wagę stosowania odpowiednich rozwiązań kryptograficznych.

2.0 Threats, Vulnerabilities, and Mitigations

2.2 Explain common threat vectors and attack surfaces.

Na egzaminie należy wykazać się znajomością i zrozumieniem przedstawionych poniżej zagrożeń i wektorów ataku.

Human vectors/social engineering

  • Bardzo często najsłabszym ogniwem całego systemu bezpieczeństwa jest jego użytkownik, czyli człowiek.
  • Właśnie dlatego ataki wykorzystujące inżynierię społeczną (lub inaczej socjotechnikę) są bardzo często stosowane – ponieważ są skuteczne.
Phishing
  • Jedna z najpopularniejszych metod oszustwa polegająca na podszywaniu się pod zaufaną instytucję lub osobę (np. bank, firmę kurierską czy osobę publiczną) celem nakłonienia ofiary do wykonania jakiejś czynności z korzyścią dla atakującego.
  • Przykład: wiadomość email, która wygląda jakby była wysłana przez naszego usługodawcę z prośbą o pilne zalogowanie się do systemu. Jednakże link umieszczony w mailu, zamiast do prawdziwej strony logowania, kieruje nas do strony spreparowanej przez oszustów.
Vishing
  • Skrót od voice phishing, czyli phishing za pośrednictwem komunikacji głosowej (telefonicznej oraz VoIP).
Smishing
  • Skrót od SMS phishing, czyli rodzaj oszustwa wykorzystujący wiadomości SMS (Short Message Service).
  • Zasady są podobne do pozostałych form phishingu, z tą różnicą, że fałszywe wiadomości są przesyłane za pośrednictwem protokołu SMS.
Impersonation
  • Jeden z fundamentów inżynierii społecznej.
  • W dosłownym tłumaczeniu jest to udawanie kogoś innego niż się jest w rzeczywistości i stanowi absolutną podstawę udanego ataku socjotechnicznego.
  • Często atakujący podszywa się pod personę, która stoi wyżej w hierarchii organizacji niż osoba atakowana.
  • Jest to czynnik psychologiczny, który może wywierać dodatkową presję na ofiarę i przez to będzie łatwiej nakłonić ją do zrobienia tego czego chce oszust.
Pretexting
  • Kolejny z filarów udanego ataku socjotechnicznego, polegający na zbudowaniu zmyślonej, ale brzmiącej wiarygodnie historii, która ma na celu przekonanie ofiary do wykonania określonych działań.
  • Mówiąc krótko: atakujący musi mieć dobry pretekst, żeby ofiara dała się przekonać.
Watering hole
  • Jeśli organizacja jest bardzo dobrze chroniona, atakujący ma bardzo nikłe szanse powodzenia w bezpośrednim ataku. W takim przypadku jest zmuszony zmienić strategię i zastosować technikę, którą można przetłumaczyć jako zatruty wodopój bądź atak u wodopoju.
  • Ta strategia polega na określeniu miejsca, poza atakowaną organizacją, gdzie zazwyczaj gromadzą się i przebywają jej członkowie. Może to być miejsce fizyczne, takie jak kawiarnia chociaż częściej jest to zewnętrzny serwis internetowy (third party).
  • Kolejnym krokiem jest atak na zidentyfikowany cel pośredni, który jest słabiej chroniony. Polega zazwyczaj na zainfekowaniu strony złośliwym oprogramowaniem, dzięki czemu istnieje duże prawdopodobieństwo, że członkowie organizacji również zostaną zainfekowani i da to atakującemu upragniony dostęp do instytucji docelowej.
Typosquatting
  • Metoda oszukiwania użytkowników wykorzystująca typowe błędy literowe w adresach URL.
  • Innym określeniem tej metody jest URL hijacking.
  • Technika wykorzystuje nieuwagę użytkownika i fakt, że podstawiony adres z literówką wygląda bardzo podobnie do oryginalnego.

2.3 Explain various types of vulnerabilities.

Wyjaśnij różne typy podatności.

Application

Buffer overflow
  • Swego czasu, bardzo popularne było wykorzystywanie podatności związanych z niewłaściwym zarządzaniem pamięci poprzez tzw. przepełnienie bufora (ang. buffer overflow).
  • Atakujący był w stanie wprowadzić więcej danych do aplikacji (input) niż przewidział to jej twórca. Jeśli program otrzymał na wejściu większą liczbę bajtów niż zarezerwowany obszar pamięci (bufor), to mówiąc w przenośni, nadmiarowe bajty wylewały się poza zarezerwowany bufor, nadpisując sąsiadujące komórki pamięci.
  • W większości przypadków, powodowało to błąd naruszenia pamięci (segmentation fault) i zakończenie działania programu. Jednakże okazało się, że w niektórych przypadkach można przepełnić bufor i nadpisać pamięć w taki sposób, żeby program, zamiast się wykrzaczyć, wykonał przekazany na wejściu, specjalnie spreparowany kod. Przeważnie był to tzw. kod wywołania powłoki (shellcode), dający atakującemu dostęp do skompromitowanego systemu (zakładając, że zaatakowany program działał z uprawnieniami administratora systemu).

2.4 Given a scenario, analyze indicators of malicious activity.

Na podstawie podanego scenariusza, zidentyfikuj i przeanalizuj czynniki wskazujące na złośliwe działania.

Malware attacks

  • Malicious software (w skrócie malware), czyli złośliwe/szkodliwe oprogramowanie, definiuje ogół programów komputerowych, których celem jest zazwyczaj wyrządzenie szkód w systemie komputerowym oraz działanie na niekorzyść jego użytkowników.
  • Niezamierzone błędy w aplikacjach, popełnione przez programistów, nie klasyfikują się jako złośliwe oprogramowanie.
  • Granica między poszczególnymi typami malware jest płynna i wiele z nich ma wspólne cechy.
  • Infekcja jednym rodzajem oprogramowania może skutkować instalacją kolejnych typów. Na przykład, koń trojański zainstalowany w skompromitowanym systemie może posłużyć do ściągnięcia i uruchomienia aplikacji typu ransomware w tymże systemie.
Ransomware
  • Złośliwe oprogramowanie blokujące użytkownikowi dostęp do jego danych i żądające zapłaty w zamian za odblokowanie tych danych. Innymi słowy, jest to żądanie okupu (ang. ransom) w zamian za odzyskanie dostępu do swoich zasobów.
  • Oprócz odpowiedniej techniki uniemożliwienia dostępu do danych, bardzo istotnym elementem jest bezpieczny dla atakującego oraz trudny do namierzenia system płatności
  • To w jaki sposób użytkownik zostaje odcięty od swoich plików zależy od rodzaju ransomware’u. Najprostszą formą jest założenie prostej blokady na system i wyświetlenie użytkownikowi odpowiedniej informacji o konieczności zapłaty. Jednakże dużo skuteczniejszą metodą ataku jest szyfrowanie danych ofiary i żądanie opłaty za ich odszyfrowanie (tzw. cryptomalware).
Trojan
  • Złośliwe oprogramowanie, które podszywa się pod użyteczne bądź ciekawe aplikacje, ukrywając przed użytkownikiem swoje szkodliwe funkcje.
  • Często pełni funkcję tylnej furtki (ang. backdoor) w systemie, która umożliwia bezpośredni dostęp do zainfekowanej maszyny nieuprawnionej osobie bądź aplikacji. Dzięki takiej furtce atakujący jest w stanie uzyskać dostęp do systemu bez procesu uwierzytelnienia.
  • RAT (Remote Access Trojan) to rodzaj trojana umożliwiający zdalny dostęp do skompromitowanego systemu. Skrót RAT może również oznaczać Remote Administration Tool, czyli narzędzie do zdalnej administracji systemem. Jedno i drugie daje osobom trzecim zdalny dostęp do systemu, na którym jest zainstalowany oraz zapewnia prawie pełną kontrolę nad tym systemem.
Worm
  • W odróżnieniu od standardowych wirusów, robak (ang. worm) jest w stanie sam się replikować, bez ingerencji użytkownika.
  • Robaki wykorzystują różne niezałatane luki bezpieczeństwa w systemach operacyjnych, usługach sieciowych lub aplikacjach. Dzięki temu są w stanie samodzielnie rozprzestrzeniać przez sieć, od komputera do komputera.
Spyware
  • Programy szpiegujące zbierające dane użytkownika, bez jego wiedzy.
  • Może to być zwyczajne śledzenie poczynań (np. poprzez rejestrowanie naciśniętych klawiszy) celem zbudowania profilu, który później zostanie sprzedany nieuczciwym reklamodawcom, a w ekstremalnych przypadkach kradzież poufnych informacji, takich jak dane logowania.
Virus
  • Wirus komputerowy (ang. virus) jest rodzajem złośliwego oprogramowania, które jest w stanie samodzielnie się powielać poprzez infekowanie innych plików, ale do zainicjowania procesu replikacji i wykonania pozostałych wpisanych procedur wymagane jest działanie użytkownika, takie jak np. uruchomienie zainfekowanego pliku.
  • To do czego wirus jest zdolny (oprócz replikacji) zależy od intencji, umiejętności i wyobraźni jego autora. Niektóre wirusy cechują się bardzo małą szkodliwością, ponieważ zostały napisane tylko dla zabawy, a inne mogą spowodować nieodwracalne szkody.
Keylogger
  • Keylogger jest oprogramowaniem lub urządzeniem, które przechwytuje i zapisuje klawisze naciśnięte przez użytkownika.
  • W przypadku programowego keyloggera jest on najczęściej zaimplementowany jako część innego złośliwego oprogramowania, takiego jak trojan, RAT (Remote Access Trojan) czy spyware.
  • Keyloggery sprzętowe przyjmują postać niewielkiego urządzenia USB w formie przejściówki, którą wpina się między klawiaturę i port USB. Takie urządzenie zapisuje później wciskane klawisze w swojej pamięci i/lub wysyła zapisane informacje drogą radiową.
Logic bomb
  • Bomba logiczna (ang. logic bomb) to kawałek złośliwego kodu, który wykonuje się jeśli zostanie spełniony warunek określony przez jego twórcę.
  • Najczęściej spotyka się bomby z zapalnikiem czasowym, tj. kod wykonuje się po określonym czasie lub danego dnia (np. w Prima Aprilis), ale nie jest to regułą.
Rootkit
  • Definicja obowiązująca na egzaminie: zestaw narzędzi (ang. kit) umożliwiający uzyskanie i utrzymanie dostępu do systemu, z pełnymi prawami administracyjnymi (ang. root).
  • Inna definicja, którą można znaleźć w internecie: narzędzie programistyczne (bądź zestaw narzędzi), które umożliwia skuteczne ukrycie obecności złośliwego oprogramowania w systemie wraz z jego działalnością. W tym celu stosuje wyrafinowane techniki nadpisywania niskopoziomowych funkcji systemowych, dzięki czemu zainstalowany malware staje się fundamentalnie niewidzialny dla aplikacji, które polegają na tych funkcjach.

2.5 Explain the purpose of mitigation techniques used to secure the enterprise.

Wyjaśnij przeznaczenie technik zapobiegawczych, stosowanych do ochrony organizacji.

Hardening techniques

  • Hardening (w dosłownym tłumaczeniu: hartowanie, utwardzanie) to proces wprowadzania zmian konfiguracyjnych aplikacji, systemu bądź urządzenia celem zwiększenia poziomu ich bezpieczeństwa oraz ograniczenia obszaru podatności na ewentualne ataki.
  • Przed przystąpieniem do procesu utwardzania konfiguracji, istotna jest identyfikacja obszarów, które wymagają poprawy. Poza tym bardzo ważne jest dostosowanie całego procesu do potrzeb naszych i/lub naszej organizacji.
  • Pierwszym krokiem powinno być opracowanie planu operacji hardeningu, który mógłby być wynikiem rzetelnej analizy ryzyka. Posiadanie takiego planu jest bardzo pomocne, ponieważ możemy wtedy skupić się tylko na tych obszarach, które są istotne dla nas.
  • Wielu dostawców (ang. vendors) udostępnia szczegółowe instrukcje, które w klarowny sposób opisują, krok po kroku, w jaki sposób można zabezpieczyć dany produkt. Są to tzw. secure baselines.
  • Oprócz instrukcji udostępnianych przez twórców rozwiązań, w Internecie można znaleźć dedykowane przewodniki opracowane przez firmy trzecie (ang. third parties), społeczności zainteresowane danym produktem, a nawet organizacje rządowe. Na przykład:
  • Starajmy się automatyzować proces weryfikacji naszej aktualnej konfiguracji pod kątem bezpieczeństwa, jeśli tylko jest to możliwe. Przykładowe narzędzia, które mogą nam w tym pomóc:
    • OpenSCAP – zestaw narzędzi open source, opartych o protokół SCAP (Security Content Automation Protocol), których zadaniem jest automatyzacja audytów zgodności z politykami bezpieczeństwa. Do działania wymaga bazy danych z regułami zdefiniowanymi w standardzie SCAP. Umożliwia skanowanie lokalne oraz zdalne.
    • CIS-CAT Lite – kolejne darmowe narzędzie, utworzone przez organizację CIS (Center for Internet Security) do oceny zgodności badanego systemu z zdefiniowanymi wytycznymi bezpieczeństwa. Dostępna jest również wersja płatna (CIS-CAT Pro), która posiada trochę bardziej rozbudowane możliwości.
  • Każdy produkt może wymagać indywidualnego podejścia, ale da się wyodrębnić pewien uniwersalny zestaw dobrych praktyk (ang. best practices):
    1. Regularnie instaluj aktualizacje i poprawki bezpieczeństwa (ang. security patches), kiedy tylko zostaną opublikowane.
    2. Zmień domyślne hasła.
    3. Wyłącz nieużywane usługi.
    4. Zablokuj i wyłącz porty sieciowe oraz protokoły, które są nieużywane.
    5. Odinstaluj zbędne oprogramowanie.
    6. Chroń punkty krańcowe (ang. endpoints) sieci poprzez ich monitorowanie oraz zabezpieczanie za pomocą odpowiedniego oprogramowania.
    7. Szyfruj dane w spoczynku (ang. at-rest) oraz te transmitowane (ang. in-transit) przez sieć.
    8. Ogranicz dostęp do wrażliwych obszarów swojej sieci poprzez jej segmentację.
    9. Jeśli to możliwe, nie pozwalaj na dostęp do swojej sieci przypadkowym urządzeniom.

4.0 Security Operations

4.1 Given a scenario, apply common security techniques to computing resources.

Na podstawie podanego scenariusza, zastosuj odpowiednie techniki zabezpieczające dla wybranych zasobów.

Secure baselines

  • Aby wdrożyć i użytkować nową aplikację lub system w sposób bezpieczny, należy postępować zgodnie z ustalonymi wcześniej, podstawowymi wytycznymi dotyczącymi bezpieczeństwa (secure/security baseline).
  • Jest to przeważnie dokument w postaci przewodnika lub listy kontrolnej (ang. checklist), zawierający informację o sposobie konfiguracji samego rozwiązania oraz środowiska w taki sposób, żeby zapewnić akceptowalny poziom bezpieczeństwa, dostosowany do potrzeb organizacji.
Establish
  • Pierwszym krokiem jest ustalenie i zebranie wszystkich istotnych zaleceń dotyczących bezpieczeństwa, które posłużą jako nasz punkty wyjściowy (ang. baseline).
Deploy
  • Kiedy zebraliśmy już wszystkie istotne dla nas wytyczne, możemy przystąpić do ich wdrażania (ang. deploy).
  • Proces ten polega na dokładnym sprawdzeniu konfiguracji (rozwiązania i środowiska) oraz dostosowaniu ustawień w taki sposób, żeby zgadzały się z przygotowaną wcześniej listą wytycznych.
Maintain
  • Kiedy wszystkie, istotne dla naszej organizacji, wytyczne dotyczące bezpieczeństwa zostały już wdrożone i działają jaka należy, musimy jeszcze pamiętać o ich utrzymywaniu (ang. maintain).
  • Utrzymywanie polega na regularnym sprawdzaniu czy aktualne ustawienia aplikacji/systemu w dalszym ciągu są zgodne z podstawowymi wytycznymi oraz wprowadzaniu ewentualnych poprawek, jeśli coś się rozjeżdża.

Materiały źródłowe

  1. Professor Messer’s CompTIA SY0-701 Security+ Training Course
  2. CompTIA Security+ Study Guide SY0-701 (Mike Chapple, David Seidl)
  3. Hash vs. Checksum: Understanding the Difference and Their Role in Cybersecurity
  4. Hardening od podstaw, czyli jak ze swojej organizacji zrobić twierdzę nie do zdobycia? (Michał Krauzowicz)
Cyberbezpieczeństwo okiem programisty

Łukasz Mieczkowski

Programista, który zainteresował się cyberbezpieczeństwem.

Kontakt

Zapraszam do kontaktu za pośrednictwem mediów społecznościowych.