Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »
реклама
Интерьеры спальни: фото, проекты - деревянные кровати.

Почтовая рассылка

Подписчиков: 11656
Последний выпуск: 19.06.2015

Техника и философия хакерских атак

Крис Касперски

О чем эта книга

... В моем уме не оставалось места для беспокойства об успехе или провале книги. Было лишь желание работать над ее созданием.

Ф. Херберт. "Еретики Дюны"

Эта книга не предназначена специально для кракеров. Несмотря на то что в ней рассматриваются и даются в виде законченных технологий механизмы атак на широко распространенные системы, эту информацию не следует принимать как руководство к действию. В любом случае правовую ответственность за компьютерный вандализм еще никто не отменял и прежде чем использовать полученные знания на деле, неплохо бы ознакомиться с уголовным кодексом и запастись адвокатом.

Не предназначена эта книга и для разработчиков защит. Я не хотел делать упор ни на одну из социальных категорий, потому что проблемы защиты информации скорее организационные, чем технические. Разработчики ПО не нуждаются в таких книгах и вообще редко прислушиваются к советам по реализации защитных алгоритмов, а хакеры от всего этого просто балдеют и морально разлагаются теряя стимул к развитию.

Термин "хакер" имеет множественные трактовки, которые было бы бессмысленно перечислять здесь и тем более останавливаться на какой-то из них, игнорируя остальные. Но в лучшем значении хакер - это индивидуал, смотрящий в корень и стремящийся разобраться во всем до конца. Для таких людей и предназначена эта книга.

Большая часть этой книги посвящена истории и социологии. Такова уж специфика проблемы защиты информации. Кроме того, знание истории - долг каждого культурного человека. Невозможно глубокое понимание предмета без четкого представления его основ.

Везде, где это только возможно, я буду стремиться к обобщению и постараюсь не акцентировать внимание на конкретных реализациях. Это не означает, что в книге не встретится законченных схем. Напротив, в них не будет в недостатка. Но я не ставлю перед собой цель снабдить хакера готовым инструментарием.

Я даже не буду пытаться научить читателей "ловить рыбу", а рискну пойти немного дальше и дать навыки самообучения. Из любой самой нестандартной ситуации и при самом скудном инструментарии всегда можно найти выход. Типовые схемы часто оказываются бессильными и бесполезными. Любые навыки слишком привязаны к конкретному окружению. В наше время больших перемен уже поздно хвататься за традиционные схемы обучения. На обучение просто нет времени. Большинству программистов приходится осваивать новые технологии "на ходу", и задолго до конца обучения они уже полностью устаревают.

Возьмем популярную платформу Windows, находящуюся в состоянии бурного развития. Разве можно сопоставить его с вялым развитием компьютерных систем только десятилетней давности? Объем электронной документации для сегодняшней платформы Win32 (MSDN) перевалил за отметку одного гигабайта и стремительно продолжает расти!

Системы защиты, заметим, развиваются заметно более медленно и ничего принципиально нового за последние год-два не было придумано или широко внедрено. Это обнадеживает, особенно на фоне деградации качества реализации широко распространенных систем безопасности.

С другой стороны, толковых учебников и изданий по данной тематике тоже не выходило. Это привело к тому, что действительно грамотно спроектированных и качественно реализованных защит сегодня на массовом рынке практически не наблюдается. Большинство авторов, с трудом припоминая школьный курс алгебры, разрабатывают собственные алгоритмы, которые при близком рассмотрении криптостойкими не являются.

Все математическое богатство валяется бесхозным и нетронутым, хотя на рынке достаточно много качественных и вполне современных изданий. Я не стремлюсь повторить уже проделанную работу, а просто буду отсылать по ходу дела к конкретным источникам.

Цель этой книги - научить читателя самостоятельно добывать необходимые ему знания и навыки, порой не имея соответствующей литературы и информации. Современное информационное изобилие приводит к атрофированию навыка самостоятельного получения необходимых знаний. Парадоксально на первый взгляд, но недостаток литературы развивает и тренирует мозги куда лучше, чем ее избыток. Сам я осваивал ассемблер 8086 с помощью утилиты debug.com: кроме нее (и свободного времени) у меня в ту пору не было НИЧЕГО. Логика работы команд изучалась анализом воздействия последних на регистры и память. Эта было утомительное занятие, и свободное владение ассемблером (без учета ряда некритичных команд) ко мне пришло приблизительно через три месяца. Наличие инструкции сократило бы этот срок до двух-трех дней (с учетом знания ассемблера других платформ), но зато не дало бы никаких полезных навыков.

Инструкция исключительно редко бывает исчерпывающей и доступной. Полученные давным-давно навыки актуальны для меня до сих пор, ибо тенденция обратной зависимости качества инструкции от ее объема в последнее время стала угрожающе превращаться из метафоры в реальность.

Главный психологический барьер для многих - это ощущение беспомощности перед компьютером. Человек ощущает не хозяином ситуации, а незадачливым экзаменуемым, наобум пытающимся угадать, чего же от него хочет машина. Знакомая ситуация: вызываемая функция упрямо ведет себя не так, как описано в документации, и не работает.

В данном случае не помешает прибегнуть к дизассемблированию и анализу ситуации, но, возможно, оптимальным окажется другое решение. В любом случае возможны свои нетривиальные варианты. Наивно полагать, что схема "нажал на кнопку - получил банан" работает во всех ситуациях. Или что банан непременно удастся достать с помощью палки либо ящика. А если нет? Если задача не имеет известного и опробованного решения? Вот тогда и приходится действовать, как говорят, "по обстоятельствам". Научить этому читателя - моя задача.

История хакерства

Попытка понять Муаддиба, не поняв его смертельных врагов, - это попытка увидеть правду без знания лжи. Это попытка понять, что такое свет, не зная, что такое тьма. Это просто невозможно.

Принцесса Ирулэн<R>Руководство Муаддиба

"I remember the good old days, when computers were mainframes, analysts were magicians,and programmers punced cards..."

Philip Fites, Peter Johnston, Martin Kratz<R>"Computer viruses crysis".

1. Рассвет. Первые лучи

Первые хакеры появились задолго до возникновения компьютеров, более того задолго до зарождения цивилизации и даже появления человечества. Первым открытием хакеров было удивительное свойство палки, позволявшее использовать ее одновременно как орудие охоты, обороны и многихдругих целях. Нетривиальное, за гранью обычного, восприятие мира - вот главная черта хакеров. Им мало просто видеть предмет в трех измерениях. Для хакеров каждый предмет связан с определенными свойствами и включен в определенные причинно-следственные отношения.

На протяжении всей истории человечества всегда находились люди, которые выходили за рамки господствующих установок и традиций, создавая свою философию и субкультуру. По иронии судьбы хакерство оказалось тесно сплетенным с криминалом. Так было во все века, так и будет до самого последнего вздоха человечества. Почему? Хакер стремится разобраться во всем до конца, понять все до мельчайших подробностей, выйти за область определения объекта, проанализировать и испытать его поведение во всех нештатных ситуациях. От "простого смертного" хакера прежде всего отличает исчерпывающее знание предмета. Абсолютное знание по умолчанию подразумевает абсолютную власть над системой. Очень трудно устоять перед искушением и открывающимися перспективами.

Между взломом компьютерной системы и механического сейфа нет принципиальной разницы, что бы об этом ни говорили. Так что хакеры были всегда и некорректно связывать их существование только с ЭВМ и компьютерными технологиями.

Очередной каприз истории: именно длительная компьютерная анархия позволила легально развиваться широкому кругу личностей, которые в других отраслях прочно ассоциировались с криминалом. Впрочем, и раньшесуществовали радиолюбители, которые обходили электронные системы сигнализации, перехватывали секретные передачи и конструировали удивительные по своей природе устройства.

Между такими радиолюбителями и хакерами нет качественной разницы. Более того, обычно работа с компьютером связана с интересом к электронике, и обычное хакерское любопытство затрагивает не только компьютерные, но и любые другие системы защиты.

Я понимаю, что данная трактовка является моим субъективным мнением и может встретить возражения. И тут мы приходим к обычной лингвистической проблеме. В самом деле, любой термин может менять свое узкое "словарное" значение в ходе развития языка.

Обратимся к лучшему на сегодняшний день исследованию хакерской культуры, Словарю Жаргона Э.С. Рэймонда (заметим, что моя трактовка никак не противоречит традиционной, но лишь расширяет ее):

":hacker: [originally, someone who makes furniture with an axe] n. 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating {hack value}. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in `a UNIX hacker'. (Definitions 1 through 5 are correlated, and people who fit them congregate.) 6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example. 7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations. 8. [deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence `password hacker', `network hacker'. The correct term is {cracker}."

Но в рамках данной книги мы будем говорить исключительно о компьютерных хакерах. По непроверенным историческим данным, компьютеры, изначально созданные для узкоспециализированных военных задач, именно хакерами были восприняты как платформы с поистине безграничными возможностями. В то далекое время математики занимались исключительно гипотетическими машинами, которые имели очень отдаленное отношение к действительности. Воплощенные в металле, инженерные идеи обогнали на десятилетия вперед даже знаменитых математиков. Предложенная дискретная архитектура была совершенна и существует до сих пор, приведя к развитию соответствующей дискретной математики, большей частью описывающей то, что инженеры давно воплотили в жизнь. Так изначально практические компьютерные технологии оставили позади математические модели.

Сегодня нам трудно представить, что было время, когда компьютеры обслуживались технической элитой, решавшей рутинные, "спущенные сверху" задачи. Впрочем, для начальства не было секретом, что свободное (и не только свободное) машинное время использовалось для личных нужд и исследований персонала. Так и зарождалась субкультура людей, которые открыли в грохочущем монстре вторую Вселенную, свое второе Я.

Чудовищное отставание нашей страны в области вычислительной техники, жесткая дисциплина, постоянные репрессии привели к тому, что субкультура хакеров, да и программистов, возникла в стенах лабораторий США и уже оттуда распространилась на весь мир. Как следствие, эта сфера большей частью американизирована, особенно у нас, на фоне массового использования американской, а не "родной" программно-аппаратной базы.

Документированная история американского хакерства берет начало от все того же Словаря Жаргона Рэймонда.

2. Лаборатория искусственного интеллекта в США и PDP-1

"Нет четкой грани между богами и людьми: одни переходят в других".

Ф.Херберт "Мессия Дюны".

Персонал, обслуживавший правительственные компьютеры, относился к работе серьезно и машинное время жестко протоколировалось, поэтому хакерство в то время было настолько экзотической редкостью, что не оставило заметного следа в истории. Нам остается только гадать, а существовали ли в самом деле хакеры во времена машин масштаба ЭНИАКа? Будем надеяться. Достоверно известно лишь то, что уже тогда сотрудников частенько увольняли, за отклонение от технологических режимов работы аппартуры. Было ли это следствием халатности или попытки получить от машины больше, чем предусмотрел ее создатель, уже нельзя установить.

В 1954 году был разработан первый массовый компьютер UNIVAC. Стоимость этого компьютера вполне позволяла ряду корпораций приобрести его для своих нужд. Обычно это были крупные технологические и исследовательские центры.

Впервые доступ к ЭВМ смогли получить гражданские лица. Помимо основной деятельности компьютер загружали бесполезными, но очень любопытными задачами. Появились первые головоломки и компьютерные парадоксы - такие, как программа, которая распечатывает свое содержимое или стирающая сама себя. Не принося никакой материальный выгоды, они имели только познавательную ценность и способствовали развитию информатики как отдельной дисциплины.

В то время всем уже было ясно, что будущее принадлежит этим электронным вычислителям и обеспечить его должны были профессионалы. Но специалисты не возникают сами по себе. Для этого требуется обучение и солидная материальная база. Осознав это, американцы начали поставлять ЭВМ в лучшие институты страны. Первые компьютеры на основе процессора PDP-1 были размещены в подвалах учебных заведений в начале шестидесятых годов. Отсюда и берет свое начало история хакерства.

Но даже в Америке никто не мог предвидеть, к чему это приведет. Новая электроника завоевала сердца тысяч студентов и они были готовы сидеть за машиной круглыми сутками, отказывая себе в еде, сне, отдыхе.

Эти люди и были первыми хакерами, оставившими едва заметный, но все же сохранившийся исторический след. Сложилось так, что хакер прежде всего социально ассоциируется со студентом. По определению, хакер - это человек, располагающий неограниченным свободным временем, которое он проводит наедине с машиной. Иначе и быть не может: копание в недрах железа и операционных систем требует не только определенного склада ума и характера, но и времени.

Коммерческий программист, какими бы не были его наклонности, имеет очень мало шансов стать хакером. Работая по заказу, ограниченному жесткими временными рамками, он просто не в состоянии углубляться в дебри чужеродного кода или ценой трех бессонных ночей сокращать уже до предела оптимизированную программу на один байт.

Это не значит, однако, что все хакеры были исключительно студентами. В те времена темпы развития вычислительной техники существенно отличались от сегодняшних и на разработку ПО отводилось достаточно много времени, так что познавательные эксперименты не были недостижимой роскошью. Особо отметим, что оптимизация тогда была не только показателем "крутости" программиста, но и необходимостью. При существовавших ограничениях памяти, скорости и возможностей периферии на той технике могли программировать лишь гении.

Хакерство на данном этапе ассоциировалось с изящностью программирования и профессионализмом. Компьютеры вызывали чувство глубокого уважения, и никто не мог представить, что когда-то возникнет такое малоприятное явление, как компьютерный вандализм. За машинами работал цвет интеллигенции. Это были культурные парни, и они могли что-нибудь испортить только по ошибке.

Но и на этом фоне заметно выделялась лаборатория искусственного интеллекта MIT (Массачусетский технологический институт Massachusets Institute of Technology), в которой работали сливки компьютерной общественности. Со временем эти люди, разъедутся по другим городам и займутся другой работой, распространяя повсюду свой жаргон и стиль жизни. Но об этом расскажем несколько позже.

Вторым центром хакерства в Америке был Корнеллский университет, расположенный в штате Нью-Йорк. Лояльное отношение к студентам и предоставление "ночного машинного времени" способствовало развитию интереса к вычислительной технике и формированию хакерских традиций. Это поколение навсегда оставило след в истории "звездными войнами", открыв тем самым возможности компьютера как игровой платформы. Первые образцы ANSI-искусства были созданы именно Корнелловскими студентами. И хотя сегодня уже трудно установить, кто первым применил символьный терминал для передачи графического образа, этот человек несомненно был хакером. Способность заставить систему делать то, чего никак не ожидал ее разработчик, поистине заслуживает восхищения. В СССР же картины, созданные на принтерах типа "Ромашка", появились гораздо позже и явно были копиями западных.

Поскольку СССР был тоталитарным государством, хакерство сформировалось здесь с большим опозданием и открыто подражало западной культуре. Доступ студентов к компьютерам был жестко ограничен, и хотя на фоне слабых преподавателей знания отдельных студентов могли показаться достаточно глубокими, эти "выскочки" так и остались в одиночестве.

Последнее явление вообще стало национальной чертой русского андерграунда. Отсутствие клубов и разобщенность людей не способствовали развитию собственной субкультуры.

Центрами возникновения отечественных хакеров стали не нищие ВУЗы, а производственные предприятия и НИИ. Не секрет, что в то время в журналы загрузки машинного времени часто писали "липу", а рабочее время использовали для удовлетворения собственного любопытства.

Но вернемся в подвалы лаборатории MIT. Трудно сказать почему именно здесь сложились благоприятные условия и хакеры росли как на дрожжах. Еще труднее сказать, что заставляло многих людей проводить ночи напролет, отказывая себе во всем, возле грохочущих телетайпов, клацающих реле и перемигивающихся огоньков. Психологи пока не ответили на вопрос, почему одни открывают в компьютере свою Вселенную, а другие не в состоянии увидеть в нем ничего, кроме груды металла, кремния и пластика?

Почему сегодня трудно представить хакера, поклоняющегося системе Windows, но мы совершенно отчетливо видим хакера, прокалывающего дырки на перфокарте? Дело в том, что Windows не является миром, который позволяет выражать собственное Я. В ее создании принимали участие сотни и тысячи людей, каждый из которых вносил часть своего видения мира, - в результате система потеряла общую концепцию и напоминает старый чулан где немало действительно блестящих и красивых инженерных решений скрылись под густым слоем пыли.

Заслуга разработчиков PDP в том, что они смогли создать не только идеологически целостную, но и настолько гибкую архитектуру, что выражение программистской мысли на ней превратилось в сущее удовольствие.

По непроверенным данным, первый PDP-1 был создан именно MIT. Если это верно, то не приходится удивляться, что именно тут сформировалась особая субкультура людей, которые были настоящими волшебниками больших машин. Язык определяет стиль мышления, поэтому мышление программиста постепенно преображается под воздействием используемой архитектуры в образ мышления ее создателя. Это настолько очевидно, что никто из психологов в этом не сомневается.

Немного утрируя можно сказать, что возникновением хакерства - такого, каким мы его знали в 60-х годах, - мы целиком и полностью обязаны человеку-легенде Кену Оулсену (Ken Olsen), основателю компании DEC и ведущему разработчику аппаратного обеспечения. Без сомненья, он был хакером и его образ мышления невольно копировали все пользователи его детища в течение двух десятков лет. Действительно, нужны чертовски нетривиальные мозги, чтобы создать компьютер, который стоил всего 120.000 $, тогда как майнфреймы IBM обходились в миллионы. Конечно, майнфреймы IBM заведомо превосходили PDP, но последняя имела неповторимую архитектуру, сохранившую привлекательность и до сих пор. Даже в наше время суперпроцессоров P PRO немало людей с упоением программируют на ассемблере PDP, используя эмулятор или даже сохранившееся аппаратное обеспечение.

Я не хочу бросать камни в огород других фирм, но шедевр PDP никто из них не повторил, да, похоже, не особо к этому и стремился. Популярность PDP обеспечивает и тот факт, что это машина профессионала и для профессионала. Низкая скорость компенсируется изящностью и гибкостью выражения програмистской мысли. Более того, именно критически низкие ресурсы послужили мощным толчком к глубокому изучению команд процессора и заставили программистов проводить бессонные ночи в поиске нужных комбинаций расположения сотен байт в скудной оперативной памяти. На больших машинах это было попросту ненужно: ресурсов хватало даже для выполнения достаточно "кривого" и необдуманного кода.

Именно в PDP нашли свой рай компьютерные гуру. Ее успех способствовал росту поставок DEC, расширению фирмы, а вместе с ним - возникновению полноводного хакерского течения в лабораториях крупнейших университетов.

Этот процесс оказал решающее влияние на последующее развитие хакерства. Сегодня нам уже не понять психологию людей, работавших на машинах того времени. Средства ввода-вывода, а тем самым и язык общения с машиной, изменились коренным образом.

Клавиатуру и терминал никак нельзя сравнить с тем воистину магическим процессом, когда оператор вручную вводил с пульта программу загрузки, а затем мигающий огоньками исполин заглатывал стопку перфокарт и после длительного размышления выдавал узкой лентой результат, часто даже в двоичном виде.

Люди в белых халатах, стерильный воздух... все это безвозвратно ушло в прошлое и унесло с собой культуру компьютерных жрецов. Сохранившиеся ее элементы утратили прежнее значение. PDP-1 сегодня может быть редким музейным экспонатом, познавательной игрушкой в форме эмулятора или памятником инженерного гения, но живой машиной она не станет уже никогда. Ее дух ушел вместе с хакерами того времени...

Но ростки, пущенные PDP-1, живы и по сей день.

3. Сеть

Ива сгибается под ветром, пока не разрастется и не встанет стеной на его пути. В этом ее предназначение.

Ф. Херберт. "Дюна".

До конца шестидесятых годов хакеров можно было сопоставить с античными Мастерами. Хак ассоциировался с высшим профессионализмом и вытекающей из него культурой поведения. Тесная связь культурного и интеллектуального уровней давно отмечалась психологами. Из этого правила, конечно, бывают исключения, но они редки и не меняют общей картины. А картина до конца шестидесятых годов была следующая - в условиях полной замкнутости и отсутствия какой-либо связи между компьютерными центрами страны каждый программист должен был получить необходимые ему знания САМ. Это был долгий и тернистый путь. Информатика тогда лишь зарождалась, и даже эффективные алгоритмы и приемы еще не были канонизированы и широко известны. Как бы ни был очевиден древовидный поиск или линейная сортировка, но до них нужно было додуматься самому и - увы - далеко не один раз. Как следвствие, все алгоритмы десятки раз открывались заново, прежде чем информация о них успевала дойти до адресатов "естественным" путем - через книги и университеты.

Обмен знаниями происходил только в узких рамках университетских или лабораторных общин. В этих условиях компьютерный вандализм просто не мог возникнуть. "Паршивые овцы" быстро выявлялись и с позором выдворялись прочь. Да и было-то их очень немного. Машинное время и программистский труд очень ценили, и любая мысль о "завешивании" системы казалась кощунственной.

В лексиконе тогдашних хакеров еще не появилось оскорбительное слово "ламер". Не то чтобы среди них не было таковых, но программисты в то время намного лояльнее относились к непрофессионалам. Да и как бы можно было расценить такие оскорбления в тесных коллективах?

Сегодня, на фоне развитых сетевых коммуникаций, когда собеседники едва ли имеют шанс встретиться лицом к лицу в реальной жизни, ситуация кардинально изменилась. Электронное общение принесло вместе с неоспоримыми благами немало проблем, с которыми вынуждены сталкиваться сегодняшние хакеры. Первый камень этого здания был заложен в 1969 году. Тогда по инициативе Управления перспективных исследований Министерства Обороны США - Defense Advanced Research Projects Agency - создается первая вычислительная сеть, получившая название Advanced Research Projects Agency NETwork - ARPAnet.

ARPAnet сразу объединила несколько университетов, находящихся в разных концах США и продолжала стремительно расширяться. По очередной иронии судьбы, эта сеть планировалась не для передачи секретных сведений, а просто для обмена открытой информацией и электронной перепиской, поэтому разграничивающих доступ элементов в ее архитектуре не присутствовало. Это только лишний раз подчеркивает, что еще в конце шестидесятых годов не только не имели представления о вандалах, но даже не могли догадываться о их появлении в обозримом будущем.

Именно этот недосмотр, унаследованный общеизвестной сетью Интернет, привел последнюю к состоянию сегодняшней анархии. Но не будем пока забегать так далеко вперед.

Сеть не только физически соединила компьютеры, но и духовно сплотила работающих за ними людей. Хакеры, привыкшие к малоподвижному образу жизни, порой и не знали, где географически находится их респондент - в соседней лаборатории или в другом штате. Интенсивное взаимодействие сотен и даже тысяч очень неглупых людей послужило невероятно быстрому прогрессу. Для тех времен была характерно открытое обсуждение и распространение технологий и инженерных решений. Любые недочеты быстро исправлялись, и программа (технология) уже в исправленном варианте отправлялась в сеть на следующий цикл доработки.

Времена, когда каждый изобретал свой велосипед, уже уходили в историю. Вместо бессонных ночей, проведенных в попытках решения задачи, теперь время тратили на поиск уже готовой информации в быстро набирающей силы сети. Не будем навешивать ярлыки, но именно эта легкость получения уже готовой информации без понимания ее сути и послужила толчком к появлению в Сети людей, которые ничего не делали сами и только копировали ресурсы других.

Число пользователей ARPAnet продолжало расти, и не всех из них можно было назвать хорошими парнями. Кроме того, ресурсы сети помимо собственно программистов начали использовать для служебной и деловой переписки и люди, далекие от компьютеров.

Прежняя монолитность компьютерного сообщества рухнула. Теперь далеко не каждый человек, сидевший за терминалом, был программистом. Все чаще и чаще он оказывался, выражаясь сегодняшней терминологией, юзером. Успех ARPAnet и совершенствование компьютерных технологий вели к тому, что ЭВМ превращалась в предмет массового спроса и потребления.

Хакерский жаргон становился знаком принадлежности к особой группе - касте компьютерных фанатов. В то время хакерство еще не было модным, и никому и в голову не приходило копировать его профессиональный сленг, да и особой нужды в этом у пользователей еще не было.

В конце шестидесятых годов компьютерные технологии шагнули далеко вперед, заменив телетайпы терминалами, а перфокарты - клавиатурой. Не в меньшей мере это отразилось и на возросших вычислительных мощностях. Машинное время выделялось уже в достаточной мере и позволяло решать задачи, о которых раньше никто и не пытался помышлять.

Ярким примером могут служить первые прототипы будущих вирусов программы-кролики. Не причиняя разрушений, они тем не менее были сконструированы так, что многократно копируя себя захватывали большую часть ресурсов системы, отнимая процессорное время у других процессоров.История их создания доподлинно не известна. Возможно, они явились следствием программной ошибки, которая приводила к зацикливанию и наделяла программу репродуктивными свойствами. Первоначально кролики (rabbits) встречались только на локальных машинах, но с появлением Сети быстро "научились" размножаться по последней. В конце шестидесятых годов была обнаружена саморазмножающаяся по сети APRAnet программа, известная сегодня как CREEPER (вьюнок), которая будто бы была написана Бобом Томасом (Bob Thomas). Вьюнок проявлял себя текстовым сообщением

"I'M THE CREEPER ... CATCH ME IF YOU CAN"<R>("Я КРИПЕР ... ПОЙМАЙ МЕНЯ, ЕСЛИ СМОЖЕШЬ")

и экономно относился к ресурсам пораженной машины, не причиняя ей никакого вреда и разве что слегка беспокоя владельцев. Каким бы безвредным Вьюнок ни казался, но он впервые показал, что проникновение на чужой компьютер возможно без ведома и против желания его владельцев.

С появлением Creeper родились и первые системы защиты. Да, теперь компьютеры стали ценностью, которую следовало охранять не только от воров с отмычками и трейлерами (а на чем еще можно было увезти компьютеры того времени?), но и от разрушительных или злоумышленных команд, проникающих по сети или через магнитные носители.

Первым шагом в борьбе против Вьюнка стал Жнец (REAPER), репродуцирующийся наподобие Creeper-а, но уничтожающий все встретившиеся ему копии последнего. Мы не знаем, чем закончилась борьба двух программ. Так или иначе от подобного подхода к защите впоследствии отказались. Однако копии обеих программ еще долго бродили по сети...

Предназначенная изначально для обучения и обмена информацией Сеть стала открытыми воротами на пути зарождавшегося компьютерного вандализма. Именно та легкость и доступность информации приведет через несколько лет к тому, что безграмотные и озлобленные маньяки получат в руки практически готовые технологии и инструментарий, чтобы потом употребить их для своих черных дел.

Именно Сеть впоследствии вынесет компьютеры из лабораторий и поставит их "персоналками" на рабочие столы; разрушит атмосферу отношений, царившую в компьютерном мире шестидесятых-семидесятых годов. Позже деградация образования и общества уничтожит хакерский дух. Уже в восьмидесятых останутся лишь отдельные одиночки, хакерство как общественное движение прекратит свое существование. Но мы слишком забежали вперед. Вернемся вновь к концу шестидесятых - началу семидесятых годов.

4. Си и UNIX

Легкие мои вдыхают ветер времени. Дующий над мертвыми песками...

Ф.Херберт "Дюна".

В 1969 г. усилиями двух талантливых программистов была создана система, сформировавшая не одно поколение хакеров и заложившая основы современных операционных систем. Я говорю о UNIX, разработанной К.Томпсоном и Д.Ричи, ведущими инженерами Bell Laboratories - подразделения American Telephone & Telegraph (AT&T). UNIX была первой системой, написанной на компилируемом языке. Так и хочется закончить - языке высокого уровня. Но уникальность Си и заключалась как раз в том, что он не походил на существующие в то время гипнотические и алгоритмические языки. Си сочетая в себе возможности низкоуровневого доступа, "отвязанные" от конкретной реализации, больше походил на крос-платформенный ассемблер. Такая идеология языка позволила создавать эффективные компиляторы и получить быстродействующий и компактный код.

Си завоевал сердца многих хакеров своей лаконичностью, краткостью, красотой и гибкостью выражения инженерной мысли.

Понравился он (и активно используется по сей день) и прикладным программистам. Именно поэтому во многих программах столько ошибок. Си все же не является прикладным языком. Для работы с ним нужно тренированное системное мышление. Ничто не убережет программиста от неверных указателей и выхода за рамки массивов. Никто не позаботится завершить строку разделяющим нулем, если программист это явно не укажет в программе.

Но все же Си находится в совсем другой плоскости, чем ассемблер, и никак не освобождает истинных хакеров от знаний последнего. "Родной" язык не может быть вытеснен никакой другой высокоуровневой прослойкой. Пусть он потерял актуальность с появлением Си и быстродействующих процессоров, но в программировании непосредственно железа есть то магическое очарование, которое побуждает многих изучать его даже сегодня - в конце девяностых.

Однако мы опять забегаем вперед. Создатели UNIX, разработавшие ее для своих нужд, вряд ли представляли себе какого джина они выпускают из бутылки. Язык формирует мышление, и эти два хакера определили мышление миллионов людей по крайней мере на два десятилетия вперед. Не секрет, что продукты "внутрифирменного использования" очень часто представляют собой жалкое зрелище, поскольку работодатели редко позволяют вкладывать деньги и ресурсы в изначально некоммерческий продукт. В свете этого шедевр UNIX-а кажется еще больше поразительным и необъяснимым.

Система не только вобрала в себя лучшие по тем временам многопользовательские решения, но была невероятно устойчива в работе и неплохо защищена. Разграничение затрагивало не только пользовательские, но и системные ресурсы. Именно UNIX послужила тем барьером, который приостановил попытки вбрасывания Кроликов в сеть. На несколько лет компьютерный мир вновь обрел устойчивость.

Успех системы позволил AT&T значительно усилить свои позиции на рынке. UNIX, в противоположность системе Windows 90-х годов, не только был удачной платформой, но и дружелюбной к профессионалу средой, развивающей абстрактное мышление, способствующей умственному и в конечном счете культурному развитию.

5. Конец хакеров шестидесятых

"Я не должна бояться. Страх убивает разум. Страх - малая смерть, которая приносит полное уничтожение. Я смотрю в лицо моему страху..."

Ф. Херберт "Дюна".

Шагнем на пару лет вперед. Это были годы в непрерывного совершенстованния технологий программирования и аппаратного обеспечения. Росла вычислительная мощь ЭВМ, емкость переферийных накопителей и быстродействие центрального процессора. Собственно говор, в то время все упиралось скорее в деньги, чем в технологии. Если клиент хотел решать с помощью компьютера серьезные задачи, то получение необходимой машинной мощности зависело только от его кошелька. Производители компьютеров заметно обгоняли в те годы потребности клиентов.

И необходимость в высокопрофессональных программистах и тщательно оптимизированном коде мало-помалу начала отпадать. Ярким подтверждением тому была UNIX, полностью написанная на компилируемом языке. Могли ли программисты представить такое расточительство хотя бы пару лет назад? Си стал первым кирпичом в фундаменте быстрых средств проектирования,на котором сегодня построены такие чисто визуальные системы как Visual Basic и Delphi.

Время обучения программистов резко сократилось, и былые профессионалы становились во многих местах просто не нужны. Было бессмысленно оплачивать их квалификацию, когда множество людей соглашалось работать на куда более худших условиях.

Это вызвало приток специалистов в фирмы, специализирующиеся сугубо на программном обеспечении. А таковые появились во множестве, поскольку UNIX стала кросс-платформенной системой и программы, написанные для одной модели компьютера могли с минимальными переделками работать на любой другой.

И тут началось самое интересное. Если прежде, в отсутствие конкуренции, время, отведенное на разработки, было, как правило, практически не ограничено, а конечная стоимость не критична, то теперь каждый стремился обогнать другого. Это соревнование не проходило безболезненно. И в первую очередь страдал код, вернее его качество. Стремясь снизить издержки, руководство фирм вынуждало инженеров использовать все пути удешевления и ускорения разрабоки.

Если бы этим все и ограничилось, то было бы полбеды, в конце концов настоящий ХУДОЖНИК проявил бы себя и в таких условиях. И код, написанный даже в условиях этой сумбурной спешки настоящим хакером, все равно бы нес в себе долю оригинальности и собственного "я" программиста. Однако, стремясь максимально эффективно использоать труд людей, руководство разделяло коллектив на небольшие группы из трех-пяти человек, каждый из который решал свою локальную задачу, тесно зажатый ее рамками.

Творить и показывать свою индивидуальность в этих условиях стало попросту невозможно. И профессионалы начали потихоньку разбегаться. Кто-то пытался организовать свою фирму, кто-то вообще уходил из программирования, будучи не в силах переломить ситуацию. Одним словом, хакерскому сообществу шестидесятых пришел конец. Уходили хакеры, а вместе с ними как туман рассеивалась их культура. Нет, никогда не вернуть то время, те машины, тот исследовательскый дух, когда компьютеры были еще чисто научной, но никак не коммерческой игрушкой.

Коммерция и жажда наживы поглощала все. Главным критерием становилась скорость написания продукта, какого бы он ни был качества. Любые недостатки и ошибки программного обеспечения не обнаруживаются сразу и всегда есть время их устранить... потом, когда клиент, поверивший рекламе, вложит деньги в ваш товар и приобретет его. Кто первым выбрасывает на рынок продукт, тот и захватывает его. Таков закон. Собственно под "сопровождением ПО" почти любая фирма понимала его доработку и доведение из сырого состояния в некоторое подобие законченного продукта.

Быть может, я сгущаю краски? Каждый имеет право на свою точку зрения и видение ситуации. Нужно быть большим оптимистом, чтобы увидеть хоть что-то хорошее в этой конкурентой борьбе и спекуляции старыми идеями и технологиями, которая просто вышвырнула многих специалистов на обочину дороги. "Крутой поворот", как любит выражаться Билл Гейтс, на этот раз и вправду оказался настолько крутым и непредвиденным, что никто не успел к нему как следует подготовиться.

Весь научно-технический потенциал в то время не хранился за "семью печатями" и мог свободно использоваться кем угодно и как угодно. Этим-то и воспользовались коммерсанты, умело превратив его в живую деньгу, вырученную от продаж компьютеров и программного обеспечения. Зачем было вести свои разработки, когда имелись уже готовые?

Позже, конечно, ситуация изменится, но в самом начале семидесятых она складывалась именно так. Впрочем, профессионалы, инженеры и ученые предвидели, что существующие технологии исчерпают себя в ближайшие несколько лет. Разумеется, компьютерные "магнаты" также это предвидили и были вовсе не в восторге. С некоторым запозданием они все же начали спонсировать частные исследования и нанимать на работу талантливых инженеров, требуя от них только одного - технологий, которых не существовало у конкурентов.

К сожалению, инженерый персонал находился в довольно жестких рамках. Однако некоторая свобода творчества оставалась - впрочем, ею могла пользоваться лишь "верхушка" разработчиков - идеологи проекта. С другой стороны, в этом был определенный здравый смысл. Рядовые инжереры являлись лишь инструментом в руках "архитректора" и чем послушней был этот инструмент,тем удобнее им было управлять.

Невозможно однозначно сказать - плохо это или хорошо. Новое время устанавливало свои законы, подрывая старые устои и ломая судьбы десятков тысяч людей. Автор этой книги считает себя одним из них. Я просто не смог смириться с тем, что работа в любой фирме (особенно крупной и престижной) сделает меня лишь безвольной игрушкой в чужих руках.

С другой стороны, такая организация труда позволяла получать качественно новые результаты, и новые технологии стали плодиться как грибы после дождя. Научный прогресс ускорился, опровергая общеприянятый тезис, что наука и творчество едины. Оказалось, что они даже не взаимосвязаны. Американцы переняли лучшие черты российской плановой экономики и производства и добились при этом подходе впечатляющих результатов.

Хакеры шестидесятых вырождались. Не было больше "больших" машин и открытого духа свободного общения. С каждым днем все больше и больше находок и неординарных решений окутывались мраком коммерческой тайны и тщательно охранялись фирмой от окружающих.

Красивые решения уже никому не были нужны и никого не интересовали. Возможность компьютеров того времени была уже достаточна, чтобы "небрежно" написанный код удовлетворял заказчика по всем параметрам (скорости, объему). "Железо" дешевело куда быстрее программного обеспечения. Легче было купить вчетверо более мощный компьютер для небрежно написанной дешевой программы, чем приобретать для дешевой машины оптимизированный до последнего байта код, стоимость которого в этом случае была бы просто астрономической. Так, к примеру, средняя стоимость UNIX в семидесятых годах составляла шесть - семь тысяч долларов и была доступна далеко не всем желающим.


Части: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
43
02 февраля
bogach4312
0 / / 02.02.2017
Мне нравитсяМне не нравится
2 февраля 2017, 18:31:21
Почитал немного :) больше не осилил, хакерство явно не мое, да и не кажется оно простым делом. Это наверно нужно быть настоящим мастером, что бы ломать различные системы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог