
\documentclass[czech]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{luainputenc}
\usepackage[a5paper]{geometry}
\geometry{verbose,tmargin=2cm,bmargin=4cm,footskip=2cm}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setcounter{secnumdepth}{0}

\makeatletter
\usepackage[czech]{babel}
\usepackage{fancyhdr}
\pagestyle{fancy}

% zajistí, že se názvy kapitol a sekcí nebudou sázet velkými písmeny
%\renewcommand{\chaptermark}[1]{\markright{\thechapter\ #1}}
%\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}

% Nastaví styl záhlaví pro sudé i liché stránky
\fancyhf{} % smaže aktuální nastavení záhlaví a zápatí
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\fancyfoot[LE,RO]{\begin{center}\thepage \end{center}}

\renewcommand{\headrulewidth}{0pt} % tloušťka linky hlavičky
\renewcommand{\footrulewidth}{0pt} % tloušťka linky patičky
\addtolength{\headheight}{1.2pt} % prostor pro záhlaví

\fancypagestyle{plain}{
  \fancyhead{} % na prázdných stránkách nechci záhlaví
  \renewcommand{\headrulewidth}{0pt} % ani linku
}

% nastavení odsazení pro kapitolu (chapter), lze použít pro cokoli
\usepackage{titlesec}
\titleformat{\chapter}[display]
    {\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

\makeatother

\usepackage{babel}
\begin{document}

\title{Úvodní znalosti o hackingu a crackingu}


\author{Antonín Neumann}

\maketitle

\chapter{Základní pojmy}


\section{Hacker }

Hacker je počítačový specialista nebo programátor, který má detailní
znalosti systému. Tento dokáže dokonale používat a dokonce si ho umí
přizpůsobil podle svých potřeb. Často se tento termín zaměňuje s pojmem
cracker, to ale není správné označení. Jako další možné označení hackerů
je možné považovat „white hacker“ či lépe „white hat hacker“.


\section{Cracker}

Cracker je člověk, který své počítačové znalosti používá k průnikům
do systémů za účelem škodit nebo ke svému vlastnímu prospěchu. Takový
člověk má obsáhlé znalosti o bezpečnosti, fungování počítačů, kryptografii
a podobně. Rovněž se můžeme setkat s označením „black hacker“ nebo
přesněji „black hat hacker“. 


\section{Hacking versus cracking }

Hacking se zabývá zkoumáním fungování systémů a procesů, které s tím
souvisí. Hackerům jde především o získávání informací. Je pravda,
že občas proniknou někam, kde nemají co pohledávat (například do systémů
FBI apod.), ale vždy je to za účelem získání nějakých informací, které
většinou dávají ve prospěch veřejnosti. Hacker má totiž často velmi
odlišné chápání o proprietárního softwaru a utajování informací než
většina světových zákonů. Často jsou také hackeři najímáni různými
společnosti, aby odhalili a pomohli opravit bezpečností chyby v jejich
softwaru nebo vnitrofiremních systémech. 

Naproti tomu stojí cracking neboli prolamování, jak by mohl znít český
překlad, který se zabývá především průnikem do systémů za účelem osobního
prospěchu nebo získání větší moci. Může jít například o crackování
her, aby šli hrát bez zakoupení originálního média, nebo o prolamování
programů ke kterým je nutné si koupit licenci. Dalším druhem crackingu
je ten odehrávající se online na síti, zde jde útočníkovi většinou
o získání přístupových údajů k nějakým Vašim účtům, nejčastěji těm
bankovním. Pro získání Vašich citlivých údajů cracker využívá mnoho
technik jako například phishing, sociální inženýrství, XSS nebo Injection.
Některé si dále podrobněji představíme.


\chapter{Techniky průniků do systémů}


\section{Malware}

Malware je souhrné označení pro skupinu programů, které slouží ke
vniknutí, nakažení nebo poškození počítačového systému. Tento výraz
je složeninou anglických slov pro zákeřný software (malicious software).
Do této skupiny patří zejména trojské koně, počítačové viry a červy
a různé druhy spyware a adware programů.


\section{Trojský kůň }

Jedná se o skrytou část programu (aplikace), s jejíž existencí a funkčností
by povětšinou uživatel nesouhlasil. Název pro tento typ malware pochází
z řecké mytologie o dobytí města Tróje řeckou armádou.

Trojský kůň může být šířen jako samostatný program, například spořič
obrazovky nebo jiný jednoduchý nástroj, a nebo může být přidán do
již existující aplikace, například nelegální kopie nějakého software
šířeného pomocí internetových fór nebo peer-to-peer sítí. Z tohoto
důvodu velká část softwarových společností poskytuje ke svým produktům
tzv MD5 hash, který ověřuje pravou identitu toho daného programu nebo
aplikace.

Funkce trojských koní může být velmi různorodá, nejznámější jsou keyloggery,
backdoor (zadní vrátka), spam server atd.

Trojské koně s funkcí zadních vrátek slouží ke zpřístupnění Vašeho
počítače útočníkovi, ten na tom posléze může vydělat peníze tím, že
z Vašeho počítače bude rozesílat nevyžádané obchodní e-maily nebo
Váš počítač zapojí do nějakého botnetu za účelem pronajmutí k DDoS
útoku. Trojský kůň se na rozdíl od počítačového viru nedokáže sám
replikovat a dostat na další počítače nebo do jiných programů.


\section{Počítačový virus}

Počítačový virus je program, který se dokáže replikovat, tj. vytvářet
kopie sebe sama tzv. potomky a ke své existenci potřebuje nějaký jiný
soubor nebo program tzv. hostitele. Některé viry, respektive jejich
potomci mohou být tzv. polymorfní, to znamená, že každá generace viru
je trochu odlišná od té předchozí (potomek se liší od svého rodiče),
čímž se může zhoršit jejich odhalitelnost různými antivirovými programy.

Virus může na infikovaném počítači vykonávat různé druhy úkonů, například
mazat nějaké důležité soubory na disku, měnit jejich obsah atp. Ovšem
moderní operační systémy dnes poskytují celkem dobrou ochranu v podobě
administrátorských účtů a řízení uživatelský účtu tzv. ACL (Access
Control List), kdy ke změně nějaké důležité části systému potřebujete
administrátorská práva. Z tohoto důvodu se také doporučuje používat
při běžné práci počítač jen s omezenými právy (toto se týká hlavně
OS Windows, jelikož u Linuxu tento systém funguje již řadu let).

Virus se na rozdíl od počítačového červa, nedokáže sám šířit mezi
počítači, tuto činnost musí vykonat, většinou nevědomky, sám uživatel
a to zkopírováním nakaženého souboru nebo programu z jednoho počítače
na druhý.


\section{Počítačový červ }

Je program, který je schopen automatického rozesílání svým kopií na
jiné počítače. Po napadení systému převezme kontrolu nad síťovou komunikací
a začne ji využívat ke svému šíření. Sekundární funkcí červa je většinou
nést nějaký „náklad“ (anglicky payload), který vykoná v napadeném
počítači nějakou další činnost. Nejčastěji jsou jako náklad nošeny
viry nebo trojské koně.

První počítačový červ, vytřený J. F. Schochem a J. A. Huppem, byl
určený k monitorování vytížení procesorů počítačů připojených k síti
a v případě nečinnosti jim zadat nějakou úlohu. Některé další červy
odstraňovali jiný malware nalezený v počítači a stahovali bezpečností
aktualizace opravující chyby v softwaru. Takže původním účelem červů
nebylo škodit, ale spíše pomáhat.


\section{Spyware a keylogger}

Spyware je program sloužící k odesílání různých dat z počítače útočníkovy
bez vědomí uživatele.

Keylogger je software (existují ale i hardwarové keyloggery), který
snímá stisknutí jednotlivých kláves a ukládá je. Softwarový keylogger
je většinou považován za druh spyware, jelikož bez odeslání stisknutých
kláves, které zaznamenal, je téměř k ničemu. Existují ovšem i keyloggery,
které uživatelé používají vědomě za účelem zjištění činností prováděných
s počítačem během jejich nepřítomnosti.


\section{Phishing }

Phishing je typ útoku tzv. sociálního inženýrství, slovo pochází z
anglického slova „fishing“ neboli rybaření, protože nahodíte udičku
(rozešlete zprávu) a čekáte kolik rybek se chytne (kolik uživatelů
zadá své údaje).

Princip útoku spočívá v hromadném rozeslání zpráv, například e-mailem,
ve kterých se účastník vydává nejčastěji za nějakou bankovní instituci
nebo administrátora populární služba a informuje uživatele o nutnosti
zadat nebo změnit jeho heslo u dané služby, případně cokoliv jiného,
co uživatele přiměje k zadání svých přístupových údajů. 

Ve zprávě je také uveden odkaz na stránky, které vytvořil sám útočník
a má je pod svojí plnou kontrolou. Tato stránka je velmi často na
první pohled k nerozeznání od oficiální stránky služby, které se útok
týká. 

Uživatel, domnívajíce se že je na oficiálních stránkách služby, zadá
do formuláře svoje přihlašovací údaje, po odeslání formuláře útočník
často přesměruje uživatele tentokráte na skutečné stránky služby,
přičemž uživateli se zdá jako by se nic nestalo a zadá-li své přihlašovací
údaje podruhé, normálně se ke službě přihlásí. Tím je pro něj záhada
vyřešena a víc se tím většinou nezabývá. Zadáním přístupových údajů
ještě na útočníkových stránkách ovšem dojde k jejich odeslání přímo
do rukou útočníka, který s nimi poté může libovolně naložit.

Naštěstí tyto útoky pocházejí nejčastěji od zahraničních útočníků
a překládají se za pomoci strojových překladů, které hlavně pro češtinu
nejsou ještě stoprocentní a tak většina lidí při přijetí takové zprávy
zpozorní a své citlivé údaje nikam nezadá.


\section{XSS (Cross-site scripting)}

XSS je metoda narušení webové stránky podstrčení vlastního JavaScriptového
kódu za pomocí využití bezpečnostních chyb ve skriptech, především
neošetření vstupních dat zadávaných uživateli. Ten typ útok můžeme
rozdělit na dva typy, lokální nebo také nestálý (non-persistent) a
stálý (persistent, stored).

Lokální typ útoku je založený na modifikaci URL adresy a zobrazuje
se pouze na počítači, který vstoupil na stránku pomocí takto změněné
URL adresy.

Perzistentní typ útoku změní data pro všechny uživatele, kteří si
stránku otevřou. Činí tak nejčastěji ve spojení s databází, do které
je útočníkům škodlivý kód neošetřený uložen a zobrazuje se tak při
každém načtení stránky.

Zatímco první typ útoku většinou není nijak nebezpečný a používá se
spíše k pobavení nebo zmatení uživatele, nejčastěji někoho známého.
U druhého typu je to horší a v konečném důsledku může dojít k narušení
bezpečnosti celé služby nebo ke ztrátě nějakých citlivých dat.

Zamezení těmto útokům není nijak složité, stačí jen důsledné ošetřovat
všechny vstupy do aplikace tzv. escapováním. V PHP je k tomuto účelu
funkce htmlspecialchars.


\section{SQL Injection}

SQL injection je podobně jako XSS útok, založena na podsunutí vlastního
kódu (v tomto případě SQL dotazu) skrze neošetřený vstup. V tomto
typu útoku může útočník použít a jakýkoli SQL dotaz, který databáze
umožňuje.

Ukládá-li aplikace například komentáře od uživatelů do databáze a
nemá ošetřený vstup proti SQL injection, může útočník místo svého
vzkazu vložit do formuláře svůj SQL dotaz. Tento dotaz poté může z
celé databáze zobrazit jakékoli informace, například veškeré informace
o uživatelích, včetně jejich hesel, rodných čísel nebo jiných citlivých
údajů a zobrazit je útočníkovi.

Ochrana před tímto typem útoku je opět velmi jednoduchá a to pomocí
již zmíněného escapování. V PHP je k tomuto účelu připravená funkce
mysql\_real\_escape\_string.


\section{DoS a DDoS útoky}

DoS útok (anglicky Denial of service attack, česky odmítnutí služby)
je technika útoku na internetové služby nebo stránky, při níž dochází
k přehlcení požadavky a pádu, nefunkčnosti nebo nedostupnosti služby
pro ostatní uživatele.

DDoS (Distubuovaný DoS) útok je charakterizován zapojením většího
množství počítačů najednou. Většinou je takový útok vedený z počítačů,
které byli předtím nakaženy nějaký malwarem, takže uživatelé těchto
počítačů vůbec netuší, že se takového útoku účastní.

Dnes asi nejčastějším typem DoS útoku je tzv. SYN flood. Tento typ
zasílá na server mnoho TCP/SYN packetů (ty složí pro zahájení komunikace
mezi serverem a klientem) s padělanou hlavičkou odesílatele. Takovýto
packet je serverem přijat jako běžná žádost o navázání připojení a
server na něj odpoví TCP/SYN-ACK packetem a poté čeká na potvrzující
TCP/ACK packet. Ovšem potvrzující TCP/ACK packet nikdy nedorazí, jelikož
hlavička odesílatele byla falešná, žádost ovšem nějakou dobu blokuje
ostatní legitimní žádosti o připojení. No a je-li takovýchto žádostí
několik tisíc za sekundu vede to velmi rychle k přehlcení a pádu serveru
načež se stává webová služba pro uživatele nedostupnou.

Existují také jiné typy DoS útoků jako například Nukes, Teardrop nebo
Ping-flood.


\chapter{Hackerský manifest}


\section*{Předmluva}

Esej Svědomí hackera (anglicky The Conscience of a Hacker) byla napsána
8. ledna 1986 Loydem Blankeshipem známým jak The Mentor. V současnosti
je tato esej přeložena do mnoho ze světových jazyků a je zkopírována
na bezpočtu internetových stránkách. Esej slouží jako náhled do filozofie
hackerů ze 80. let, v současnosti hlavně jako průvodce začínajících
hackerů. Text obhajuje myšlenky, že by technologie měly být využívány
k rozšiřování našich obzorů a svět by měl zůstat svobodný.


\section*{Úvod}

\emph{Hackerem se člověk nestane, narodí se jím. }

Využíváme existujících služeb bez placení, mohly by být skoro zadarmo,
kdyby nepatřily smelinářským hltounům, a vy nás nazýváte zločinci.
My objevujeme... a vy nás nazýváte zločinci. Dychtíme po vědomostech...
a vy nás nazýváte zločinci. Existujeme bez barvy pleti, bez národnosti,
bez náboženských předsudků a vy nás nazýváte zločinci. Vy stavíte
atomové bomby, vy vedete války, vy vraždíte, podvádíte a lžete nám
a chcete, abysme (sic) věřili tomu, že je to pro naše vlastní dobro,
přesto jsme my zločinci. Následující text byl napsán krátce po mém
zatčení...
\begin{quotation}
Mentor
\end{quotation}

\section*{Svědomí hackera}

Dneska chytli dalšího. Jsou toho plný noviny. \textquotedbl{}Mladík
odsouzen za Skandální Počítačový Zločin\textquotedbl{}, \textquotedbl{}Hacker
zatčen za průnik do banky\textquotedbl{}... 

Zasraný děti. Všechny jsou stejný. 

Ale zkusili jste se někdy s tou svou trojitou psychologií a technomozkem
padesátejch let podívat očima hackera? Položili jste si někdy otázku,
jaká síla ho zformovala, co vytvářelo jeho osobnost?

Jsem Hacker. Vstup do mého světa... 

Můj život začíná školou... Jsem chytřejší něž většina ostatních děcek,
ty kecy co nám vykládají mě nudí...

Zasranej flákač. Všichni jsou stejný. 

Jsem na gymplu nebo na střední. Učitelka už po patnáctý vysvětluje,
jak se krátí zlomek. Chápu to. \textquotedbl{}Ne, slečno Smithová,
nepsal jsem postup. Udělal jsem to z hlavy...\textquotedbl{}

Zasraný děcko. Nejspíš to někde opsal. Všichni jsou stejný. 

Dneska jsem udělal objev. Objevil jsem počítač. Počkej chvíli, to
je skvělý. Dělá to, co chci. A když to udělá chybu, tak je to kvůli
tomu, že jsem něco zvoral. A ne jenom proto, že mě nemá rád... 

...nebo se cítí být mnou ohrožený... 

...nebo si myslí, že jsem vychcanej parchant... 

...nebo že nemám rád učení a neměl bych tu bejt... 

Zasraný děcko. Furt jenom hraje samý hry. Všechny jsou stejný. 

A pak se to stalo... otevřely se dveře do světa... elektronický signál
se řítí telefonní linkou jako heroin žilou narkomana, nachází úkryt
před ubíjející každodenností... nachází board. 

\textquotedbl{}To je to místo... sem patřím...\textquotedbl{} 

Každýho tu znám. I když jsem je v životě neviděl, nikdy jsem s nima
nemluvil, a možná že už o nich nikdy neuslyším... Znám vás všechny...

Zatracený děti. Furt jenom obsazujou linku. Všechny jsou stejný... 

Vsaď prdel, že jsme všichni stejný!

Ve škole jste nás krmili po lžičkách dětským jídlem a my chtěli steak...
kusy masa, který k nám proklouzly byly předžvýkaný a bez chuti. Ovládali
nás sadisti a ignorovali tupci. Bylo pár těch co nás mělo učit a našlo
v nás ochotné žáky, ale těch bylo jako kapek vody v poušti. 

\textquotedbl{}Toto je teď náš svět... Svět elektronů a spínačů, krása
baudu. Využíváme existujících služeb bez placení, mohly by být skoro
zadarmo, kdyby nepatřily smelinářským hltounům, a vy nás nazýváte
zločinci. My objevujeme... a vy nás nazýváte zločinci. Dychtíme po
vědomostech... a vy nás nazýváte zločinci. Existujeme bez barvy pleti,
bez národnosti, bez náboženských předsudků a vy nás nazýváte zločinci.
Vy stavíte atomové bomby, vy vedete války, vy vraždíte, podvádíte
a lžete nám a chcete, abysme věřili tomu, že je to pro naše vlastní
dobro, přesto jsme my zločinci. 

Ano, jsem zločinec. Mým zločinem je zvědavost. Mým zločinem je posuzování
lidí podle toho co říkají a co si myslí a ne podle toho, jak vypadají.
Můj zločin je to, že jsem chytřejší než ty, což je věc, kterou mi
nikdy neodpustíš. Jsem Hacker a toto je můj manifest. Můžete zastavit
jednotlivce, ale nemůžete nás zastavit všechny... konec konců, všichni
jsme stejní. 

+++The Mentor+++\cite{blisty}

\pagestyle{plain}
\begin{thebibliography}{10}
\bibitem{dgx}http://phpfashion.com/escapovani-definitivni-prirucka

\bibitem{vrana-1}http://php.vrana.cz/cross-site-scripting.php

\bibitem{vrana-2}http://php.vrana.cz/obrana-proti-sql-injection.php

\bibitem{pan}http://www.panickov.esitex.com/clanky/hacking.html

\bibitem{linuxexpress}http://www.linuxexpres.cz/blog/hacker-vs-cracker

\bibitem{techrep}http://www.techrepublic.com/blog/security/hacker-vs-cracker/1400

\bibitem{blisty}http://blisty.cz/art/14662.html

\bibitem{soom}http://www.soom.cz/

\bibitem{viry}http://www.viry.cz/

\bibitem{e15}http://vtm.e15.cz/nejznamejsi-hackeri-sveta-zacali-utocit-jiz-v-detskem-veku

\bibitem{muni}http://www.fi.muni.cz/usr/jkucera/pv109/2003/xcerveny.htm

\bibitem{sec-portal}http://www.security-portal.cz/clanky/kdo-je-hacker

\bibitem{ms}http://windows.microsoft.com/cs-CZ/windows7/Viruses-frequently-asked-questions\end{thebibliography}

\end{document}
