Cracker
Cracker (z ang., dosłownie „łamacz”) – osoba zajmująca się łamaniem zabezpieczeń komputerowych (crackingiem).
Wyróżnia się dwa główne znaczenia tego słowa, zgodnie z którymi działania crackerów polegają na:
- łamaniu zabezpieczeń zamkniętego oprogramowania (zobacz: crack, cracking, CrackMe, patch),
- łamaniu zabezpieczeń serwerów (zobacz: exploit).
Ewolucja znaczenia
[edytuj | edytuj kod]Słowo cracker wywodzi się od angielskiego czasownika crack (łamać). Jego pierwotne znaczenie było w Polsce i Europie związane wyłącznie z łamaniem zabezpieczeń oprogramowania. W tym znaczeniu jest ono rozpowszechnione wśród osób zajmujących się crackingiem i w publikacjach na ten temat (m.in. ziny grup crackerskich). Zgodnie z tym znaczeniem cracker jest osobą, która nie interesuje się zagadnieniami sieciowymi ani nie zna się na nich, gdyż ta wiedza nie jest mu do niczego potrzebna. Kluczowa natomiast jest znajomość asemblera, dzięki której cracker jest w stanie przeanalizować działanie skompilowanego programu i usunąć lub ominąć jego zabezpieczenia. Crackerzy zajmujący się łamaniem zabezpieczeń oprogramowania tworzyli narodowe sceny określane również jako „cracksceny”. W Europie istniała m.in. „crackscena” fińska, francuska, niemiecka, hiszpańska, rosyjska i polska. Sceny te były podzielone na grupy crackerskie często rywalizujące między sobą.
Obecnie słowo cracker używane jest także jako określenie osoby włamującej się na serwery w sposób niezgodny z prawem. Używanie go w tym kontekście propaguje społeczność hakerska, według której stawianie znaku równości między hakerami a włamywaczami sieciowymi (co jest w mediach praktyką nagminną) jest błędne. Według społeczności hakerskiej haker to komputerowy pasjonat o dużej wiedzy, który nie wykorzystuje jej do szkodzenia innym. Crackerem natomiast określają osobę łamiącą zabezpieczenia w celu dokonania przestępstwa (np. kradzieży danych osobowych z serwera).
Różnice w definicji znaczenia kontrowersyjnych słów cracker i haker między społecznościami crackerów i hakerów sprowadzają się do odmiennego wyznaczenia linii podziału. Dla społeczności crackerskiej linię podziału stanowi rodzaj celów ataku (oprogramowanie używane lokalnie lub zdalne systemy za pośrednictwem sieci), dla społeczności hakerskiej moralna ocena działania (tzw. białe i czarne kapelusze). Crackerzy zajmujący się wyłącznie łamaniem zabezpieczeń oprogramowania często podkreślają, że hackerzy nie wiedzą kim są crackerzy i sami nie uznają drugiego znaczenia tego słowa.
Łamanie zabezpieczeń oprogramowania
[edytuj | edytuj kod]Łamanie zabezpieczeń opiera się tu o reverse engineering. Cracker operuje na kodzie binarnym, który poddaje dezasemblacji za pomocą narzędzi takich jak IDA czy w32Dasm i analizie kodu na poziomie asemblera. Często śledzi działanie programu bezpośrednio w pamięci z użyciem debugera (np. SoftICE, OllyDbg). Wymaga to dobrej znajomości architektury procesora, wykorzystywanych przez oprogramowanie funkcji API, a także samego systemu operacyjnego.
Zabezpieczenia kryptograficzne wykorzystujące algorytmy szyfrowania (np. RSA) czy funkcje skrótu (np. MD5) są łamane bardzo rzadko, gdyż zazwyczaj jest to czasochłonne i praktycznie niemożliwe, a zarazem niekonieczne. W takich przypadkach zabezpieczenia obchodzi się, wyłączając ich wywołania w kodzie programu (zwykle wstawiając instrukcje puste, tzw. nopowanie, od ang. no operation). W celu utrudnienia działania crackerom stosuje się kompresję plików binarnych, sprawdzanie sumy kontrolnej, kod polimorficzny, metody ochrony przed dezasemblacją i debugowaniem, a także metody wykrywania debugerów i innych typowych narzędzi wykorzystywanych przez crackerów.
Najczęściej łamane typy zabezpieczeń oprogramowania to: ograniczenia czasowe, ilościowe lub funkcjonalne (wersje trial), tzw. nag screens (ekrany przypominające o niepełnowartościowym oprogramowaniu i kupieniu pełnej jego wersji) i okna reklamowe, numery seryjne, pliki klucza, sprawdzanie obecności klucza sprzętowego lub płyty CD.
Łamanie zabezpieczeń serwerów
[edytuj | edytuj kod]Zwykle łamanie zabezpieczeń sprowadza się do wykorzystania gotowych programów wykorzystujących luki w oprogramowaniu zainstalowanym na serwerze (tzw. exploitów) lub popularnych metod ataku na aplikacje webowe (np. SQL injection). O ile pierwsza metoda wymaga jedynie znajomości wersji oprogramowania na serwerze i może być stosowana bez wiedzy o zasadach wykorzystania luki (częste działanie tzw. script kiddies), o tyle druga wymaga dużej wiedzy i doświadczenia. Stąd o wiele łatwiejsza jest obrona przed script kiddies: w ogólności wystarczy aktualizować w porę wykorzystywane oprogramowanie. Zdolny cracker potrafi natomiast sam przeanalizować serwer pod kątem luk w zabezpieczeniach, pisać własne exploity czy nawet tworzyć zupełnie nowe metody ataku.
Zobacz też
[edytuj | edytuj kod]Literatura
[edytuj | edytuj kod]- Jakub Zemánek: Cracking bez tajemnic, wyd. Helion, Gliwice 2004, ISBN 83-7361-444-3
- Andrzej Kmiecik, Postawy etyczne hakera i krakera, [w:] Marek Sokołowski (red.), Media i edukacja w globalizującym się świecie, Olsztyn 2003, s. 462-469 [1]