Hacker -=-=-=-= Thus spake the master programmer: "When you have learned to snatch the error code from the trap frame, it will be time for you to leave." -- Geoffrey James, "The Tao of Programming" K napsání tohoto článku me přiměla následující reakce nejmenovaného pana X: - Pokud potřebujete levně WWW a gateway, je asi nejlepší Linux - Linux ..... to je ten hackerský operační systém? - ano. - Tak to ne! Nic od kriminálníků instalovat nebudeme. My potřebujeme seriózní program. Toto mínění o hackerech je poměrně rozšířené. Těžko takovému človeku pak vysvětlíte, že Linux je jeden z nejspolehlivějších operačních systémů vůbec. Největší zásluhu na této pověsti nemají samotní hackeři, ale noviny. Je asi mnohem lukrativnější vydat článek "Neznámý hacker napadl banku", než článek "hacker naprogramoval gcse pro egcs". Proto bych se rád ohlédl po tom, kdo vlastně hackeři jsou. Samozřejmě, že každý si pod tímto slovem představuje něco jiného a tak je to spíše téma na větší sociologickou studii. Přesto ale existuje několik oficiálních zdrojů, o které se lze opřít. Asi nejznámější je Jargon - The New Hacker's Dictionary, které vydává MIT press a v online verzi jej najdete na http://www.ccil.org/jargon. Tento dokument obsahuje nejenom výkladový slovník všech základních výrazů hackerského slangu (který je nezvykle bohatý (kde jinde by měl smysl dialog: "There is a bug in this ant farm!" "What do you mean? I don't see any ants in it." "That's the bug." )), ale obsahuje i rozsáhlý úvod do podstaty hackerství a v sekci Bibliography najdete odkazy na několik dalších děl zabývajících se tématem. Například odkaz na nádherné dílko The Tao of programming, které jsem vpodstatě celé odcitoval v mé rubrice. Začneme trochou historie. Hackeři se objevili hned ve 40. a 50. letech zároveň s prvními počítači. Byly učiněny první velké objevy na poli informatiky jako: as soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs. -- Maurice Wilkes, designer of EDSAC, on programming, 1949 To několik lidí přimělo trávit více času v práci než ostatní a po nocích studovat taje nového oboru. Jejich práce se stala jejich největším a většinou jediným koníčkem a ten začal ovlivňovat jejich způsob myšlení. A právě oni se staly prvními hackery. Sály s počítači samozřejmě nebyly temnými kriminálními doupaty, a vědci v bílých pláštích kolem měli daleko k sfetovaným teenagerům. okrádající všechny kolem. Hacker samozřejmě většinou nefetuje, protože jeho činnost vyžaduje většinou plné vědomí. A proč používat chemické drogy, když se může oddávat závislosti na počítači. Proto zde novinová představa neobstojí. Průměrný hacker té doby tedy zákonitě musel být "seriozní" vědecký pracovník. (jinak by se k mašině prostě nedostal) Od ostatních se vyznačoval hlavně tím, že znal stroj do posledního šroubku (i když někdy mu nějaký ten magický přepínač utekl :) a bez problémů byl schopen z výpisu paměti po pádu systému najít chybu a opravit ji v mikrokódu. Označení hacker by tedy nemělo být pomluvou ale jakýmsi titulem. Člověk by se neměl prohlásit za hackera sám, ale počat, až jej za něj začnou považovat ostaní. Zároveň to není věc, za kterou by se měl stydět. Pod rukama nejznámějších hackerů (jako jsou Ken Thompson, Richard M. Stallman, nebo Linus Torwalds) vzniklo samozřejmě mnoho užitečných věcí - UNIX, C, GNU a mnoho free softwarových programů. Díky síti, která pomalu začala propojovat počítače i hackeři spolu začali více mluvit a vznikla tak vlastně celá nová klutura se svými ideály, vtipy i jazykem. Tyto odlišnosti pravděpodobne způsobili nepochopení ostatními. Průměrný hacker na otázku: Ty ale nejses lamer, že ne? odpoví ano podle logického schématu: if (!lamer) ano else ne ale normálního člověka odpověď přinejmenším zmate. Dialogy jako: Hi! How are things going? (just fine, thank you...) Great! Say, could I bother you for a question? (you just asked one...) Well, how about one more? (one more than the first one?) Yes. (you already asked that...) [at this point, Alphonso gets smart... ] May I ask two questions, sir? (no.) May I ask ONE then? (nope...) Then may I ask, sir, how I may ask you a question? (yes, you may.) Sir, how may I ask you a question? (you must ask for retroactive question asking privileges for the number of questions you have asked, then ask for that number plus two, one for the current question, and one for the next one) Sir, may I ask nine questions? (go right ahead...) Normální lidi totálně odradí. Jedno takové nedorozumění. Další špatný vliv na pověst hackerů mělo rozšíření osobních počítačů a vznik pirátských BBS a warezáckých sajtů. Zde se opravdu najde velké množství lidí, kteří se zabývají výhradně prolamováním různých systémů. Ti ale alespoň podle New Hackers Dictionary nejsou opravdovými hackery, protože jednak se většinou vůbec nesetkali s opravdovým operačním systémem a také člověk, který nezná lepší využití pro své vědomosti prostě hackerem nemůže být. Přesto, že se často samozvaně za hackery prohlašují, měli by se důsledně označovat termínem cracker. Kdyby noviny psaly "neznámý cracker napadl banku", všechno by bylo vpořádku. Jedná se opravdu o odlišnou skupinu lidí. Samotné crackování je poměrně jednoduchou záležitostí. Na internetu existuje několik dobře známých míst (například www.rootshell.com), kde najdete podrobný návod a pokud si umíte najít tu správnou díru a přeložit program, máte vyhráno. Asi nejklasičtějším příkladem takových chyb je buffer owerflow, kde si program vyhradí na data na zásobníku nějaké místo, ale dostane víc. Data přetečou kam nemají, změní co nemají a program udělá to, co cracker chce. Přečtete si tedy, jakému programu máte zadat jaký dlouhý vstup a už na Vás mrká vězení (#) rootovského shellu (a posléze možná i vězení opravdové). Nevyžaduje to tak hlubokou znalost problematiky, hako by hacker měl mít. Ani samotné servery s těmito informacemi nejsou ilegální, protože jsou nenahraditelným pomocníkem správců sítí, kteří tam najdou i informace jak dané díry zalátat. Většina z nich Vás zavazuje k tomu, že informace na nich obsažené použijete pouze pro výukové účely. Pokud neznáte metody, jak crackování funguje, asi těžko mu můžete účině čelit. Ukázková security hole Je pravda, že poněkud složitější je po sobě zamést stopy, aby rozzuřený správce sítě crackera nenašel. Také vytváření vlastních exploitů, stejně jako prolamování ochran u her vyžaduje znalost assembleru. Přesto to ale není nijak složité. Sám se považuju u assembleru na Intelu spíše za nováčka (nikdy jsem se ho nijak výrazně neučil a nenapsal v něm program delší než 20KB), ale umím to. Na hledání životů u her také existují velmi účinné pomůcky - například gametools či gamewizards. S nimi pouze program přerušíte pokaždé, kdy ve hře ztratíte, nebo dostanete život a oni porovnají změny v paměti, najdou správné místo a potom pomocí hardwarových breakpointů najdou instrukci, která paměť mění. Tuto instrukci vyhodit z programu je už většinou hračkou - a crack je na světě. Je pravda, že pokud je program napsaný tak, aby se crackoval těžko, je situace zajímavější. Podle vlastní zkušenosti ale můžu ríct, že tomu většinou tak není. K mému údivu vždy objevím hesla v textové podobě v některém souboru apod. O technikách crackování by to asi už stačilo stačilo, aby někdo nedošel k závěru, že se zde snažím vychovat nové crackery. Tímto považuju téma crackování v této rubrice na vyčerpané. Opravdový hacker by měl nejenom znát metody crackování popsané výše (rozumný hacker ale tuto zkušenost použije spíš k tomu, aby jeho programy byly bezpečné, nebo v situaci, že roztržitý kořen zapomene heslo). Každy hacker by měl dobře rozumět UNIXu, sítím, programovaní v C, assembleru, hardwaru a mnoho dalším věcem. Nejdůležitější ale je, aby rád a s chutí dělal dobré programy, bez zbytečných čekací smyčky, megabajty nepoužitých dat a jsou pokud možno zdarma. Prostě a jednodušše musí udržovat jistou hackerskou etiku, kterou lze pěkně vyčíst z příběhu opravdového programátora Mela. V poslední době dochází k promíchávání hackerů ze světa UNIXu s lidmi odkojenými warezem a crackováním a proto záleží na každém, do které skupiny se hodlá zařadit. Jestli bude trávit čas hledáním hesla u her, nebo hledáním chyby v kernelu. Myslím, že hodně crackerů to děla jen proto, že neví, co dělat lepšího a jsou znechuceni komerčním sofwarem. A proto je free sofware pro ně možností... Pokud opravdu chcete vědět, zda jste se stali hackerem, můžete se pokusit udělat hacker test. Definice hackera z New Hacker's Dictionarry Happy hacking - HH - výheň