Программные уязвимости
Термин «уязвимость» часто упоминается в связи с компьютерной безопасностью, во множестве самых различных контекстов.
В общем случае, уязвимость ассоциируется с нарушением политики безопасности, вызванным неправильно заданным набором правил или ошибкой в обеспечивающей безопасность компьютера программе. Стоит отметить, что теоретически все компьютерные системы имеют уязвимости. Но то, насколько велик потенциальный ущерб от вирусной атаки, использующей уязвимость, позволяет подразделять уязвимости на активно используемые и не используемые вовсе.
Предпринималось много попыток четко определить термин «уязвимость» и разделить два его значения. MITRE, исследовательская группа, финансируемая федеральным правительством США, занимающаяся анализом и разрешением критических проблем с безопасностью, разработала следующие определения:
Согласно терминологии MITRE CVE:
[...] Уязвимость — это состояние вычислительной системы (или нескольких систем), которое позволяет:
исполнять команды от имени другого пользователя;
получать доступ к информации, закрытой от доступа для данного пользователя;
показывать себя как иного пользователя или ресурс;
производить атаку типа «отказ в обслуживании».
В MITRE считают, что атака, производимая вследствие слабой или неверно настроенной политики безопасности, лучше описывается термином «открытость» (exposure).
Открытость — это состояние вычислительной системы (или нескольких систем), которое не является уязвимостью, но:
позволяет атакующему производить сбор защищенной информации;
позволяет атакующему скрывать свою деятельность;
содержит возможности, которые работают корректно, но могут быть легко использованы в неблаговидных целях;
является первичной точкой входа в систему, которую атакующий может использовать для получения доступа или информации.
Когда хакер пытается получить неавторизованный доступ к системе, он производит сбор информации (расследование) о своем объекте, собирает любые доступные данные и затем использует слабость политики безопасности («открытость») или какую-либо уязвимость. Существующие уязвимости и открытости являются точками, требующими особенно внимательной проверки при настройке системы безопасности против неавторизованного вторжения.
Как обнаружить хакерскую атаку
Есть множество способов воспользоваться большинством уязвимостей. Для хакерской атаки можно использовать один эксплойт, несколько эксплойтов одновременно, неверные настройки программных компонентов или даже программу-бэкдор, установленную в операционную систему в процессе предыдущей атаки.
Из-за этого детектирование хакерской атаки становится не самой простой задачей, особенно для неопытного пользователя. В этом разделе мы постараемся сформулировать советы, способные помочь читателю определить, подвергается ли его компьютер хакерской атаке или же защита компьютера уже была взломана ранее. Помните, что, как и в случае вирусов, никто не дает 100% гарантии, что вы сможете зафиксировать хакерскую атаку подобными способами. Впрочем, если ваша система уже взломана, то вы наверняка отметите некоторые из нижеприведенных признаков.
Windows-компьютеры:
Подозрительно высокий исходящий трафик. Если вы пользуетесь дайлапом или ADSL-подключением и заметили необычно большое количество исходящего сетевого трафика (в частности, проявляющегося, когда ваш компьютер работает и подключен к интернету, но вы им не пользуетесь), то ваш компьютер, возможно, был взломан. Такой компьютер может использоваться для скрытой рассылки спама или для размножения сетевых червей.
Повышенная активность жестких дисков или подозрительные файлы в корневых директориях. Многие хакеры после взлома компьютера производят сканирование хранящейся на нем информации в поисках интересных документов или файлов, содержащих логины и пароли к банковским расчетным центрам или системам электронных платежей вроде PayPal. Некоторые сетевые черви схожим образом ищут на диске файлы с адресами email, которые впоследствии используются для рассылки зараженных писем. Если вы заметили значительную активность жестких дисков даже когда компьютер стоит без работы, а в общедоступных папках стали появляться файлы с подозрительными названиями, это также может быть признаком взлома компьютера или заражения его операционной системы вредоносной программой.
Большое количество пакетов с одного и того же адреса, останавливаемые персональным межсетевым экраном. После определения цели (например, диапазона IP-адресов какой-либо компании или домашней сети) хакеры обычно запускают автоматические сканеры, пытающиеся использовать набор различных эксплойтов для проникновения в систему. Если вы запустите персональный межсетевой экран (фундаментальный инструмент в защите от хакерских атак) и заметите нехарактерно высокое количество остановленных пакетов с одного и того же адреса, то это — признак того, что ваш компьютер атакуют. Впрочем, если ваш межсетевой экран сообщает об остановке подобных пакетов, то компьютер, скорее всего, в безопасности. Однако многое зависит от того, какие запущенные сервисы открыты для доступа из интернета. Так, например, персональный межсетевой экран может и не справиться с атакой, направленной на работающий на вашем компьютере FTP-сервис. В данном случае решением проблемы является временная полная блокировка опасных пакетов до тех пор, пока не прекратятся попытки соединения. Большинство персональных межсетевых экранов обладают подобной функцией.
Постоянная антивирусная защита вашего компьютера сообщает о присутствии на компьютере троянских программ или бэкдоров, хотя в остальном все работает нормально. Хоть хакерские атаки могут быть сложными и необычными, большинство взломщиков полагается на хорошо известные троянские утилиты, позволяющие получить полный контроль над зараженным компьютером. Если ваш антивирус сообщает о поимке подобных вредоносных программ, то это может быть признаком того, что ваш компьютер открыт для несанкционированного удаленного доступа.
UNIX-компьютеры:
Файлы с подозрительными названиями в папке «/tmp». Множество эксплойтов в мире UNIX полагается на создание временных файлов в стандартной папке «/tmp», которые не всегда удаляются после взлома системы. Это же справедливо для некоторых червей, заражающих UNIX-системы; они рекомпилируют себя в папке «/tmp» и затем используют ее в качестве «домашней».
Модифицированные исполняемые файлы системных сервисов вроде «login», «telnet», «ftp», «finger» или даже более сложных типа «sshd», «ftpd» и других. После проникновения в систему хакер обычно предпринимает попытку укорениться в ней, поместив бэкдор в один из сервисов, доступных из интернета, или изменив стандартные системные утилиты, используемые для подключения к другим компьютерам. Подобные модифицированные исполняемые файлы обычно входят в состав rootkit и скрыты от простого прямого изучения. В любом случае, полезно хранить базу с контрольными суммами всех системных утилит и периодически, отключившись от интернета, в режиме одного пользователя, проверять, не изменились ли они.
Модифицированные «/etc/passwd», «/etc/shadow» или иные системные файлы в папке «/etc». Иногда результатом хакерской атаки становится появление еще одного пользователя в файле «/etc/passwd», который может удаленно зайти в систему позже. Следите за всеми изменениями файла с паролями, особенно за появлением пользователей с подозрительными логинами.
Появление подозрительных сервисов в «/etc/services». Установка бэкдора в UNIX-системе зачастую осуществляется путем добавления двух текстовых строк в файлы «/etc/services» и «/etc/ined.conf». Следует постоянно следить за этими файлами, чтобы не пропустить момент появления там новых строк, устанавливающих бэкдор на ранее неиспользуемый или подозрительный порт.
Краткая история хакеров
Декабрь 1947 — Вильям Шокли (William Shockley) изобретает транзистор и впервые демонстрирует его работу. Транзистор собран из множества проводов, изоляторов и вкраплений германия. Согласно результатам опроса, недавно проведенного на сайте CNN, транзистор оценивается как важнейшее открытие XX века.
1964 — Томас Курц (Thomas Kurtz) и Джон Кемени (John Kemeny) создают BASIC, и по сей день один из самых популярных языков программирования.
1965 — В США в постоянном использовании находится порядка 20000 компьютерных систем. Большая их часть - производства International Business Machines (IBM).
1968 — Основана компания Intel.
1969 — Основана компания AMD.
1969 — В стенах агентства ARPA (The Advanced Research Projects Agency) создана ARPANET, сеть-предвестница интернета. Четыре первых узла ARPANET располагаются в университетах Лос-Анджелеса, Санта-Барбары, Юты и Стэндфордском исследовательском институте.
1969 — Intel начинает производство модулей оперативной памяти объемом 1KB (1024 байта).
1969 — Кен Томпсон (Ken Thompson) и Дэннис Ритчи (Dennis Ritchie) начинают работать над созданием операционной системы UNICS. Томпсон за один месяц пишет первую версию UNICS на компьютере с 4КБ памяти. Позже UNICS переименовывают в UNIX.
1969 — MIT (Massachusetts Institute of Technology) становится домом первых компьютерных хакеров, пытающихся переписывать программы и совершенствовать сами компьютеры с целью ускорить их работу.
1969 — В Хельсинки родился Линус Торвальдс (Linus Torvalds).
1970 — Компания DEC представляет PDP-11, одну из наиболее популярных моделей компьютеров того времени. Некоторыми из них пользуются и по сей день.
1971 — Джон Дрейпер (John Draper), известный как Cap'n Crunch, взламывает телефонные системы при помощи игрушечного свистка из коробки с кукурузными хлопьями.
1971 — В сети ARPANET создан первый email-клиент. Его автор Рэй Томлисон решает использовать символ «@» для разделения имени пользователя и доменного имени.
1972 — Ритчи и Кернингхэм переписывают UNIX на C, языке программирования, изначально созданном с целью облегчения переноса программ с одной компьютерной платформы на другую.
1972 — NCSA разрабатывает утилиту telnet.
1973 — Гордон Мур (Gordon Moore), председатель совета директоров Intel, формулирует знаменитый «Закон Мура», согласно которому число транзисторов в центральных процессорах удваивается каждые 18 месяцев. Этот закон остается справедливым уже более 30 лет.
1973 — Представлен протокол FTP.
1974 — Стивен Борн (Stephen Bourne) разрабатывает первую полноценную оболочку для UNIX.
1975 — Билл Гейтс (Bill Gates) и Пол Ален (Paul Allen) основывают компанию Microsoft.
1976 — 21-летний Билл Гейтс пишет «Открытое письмо любителям», в котором осуждает модель программного обеспечения с открытыми исходными кодами и компьютерное пиратство.
1 апреля 1976 — Основана компания Apple Computers.
1977 — Билли Джой (Billy Joy) выпускает BSD, новую UNIX-подобную операционную систему.
1979 — Microsoft получает от AT&T лицензию на исходный код UNIX и создает собственную версию этой операционной системы, получающую название Xenix.
1981 — Создана система доменных имен (Domain Name System, DNS).
1981 — Microsoft покупает права на операционную систему DOS и переименовывает ее в MS-DOS.
1982 — Основана компания Sun Microsystems. В будущем Sun станет наиболее известна благодаря своим процессорам SPARC, операционной системе Solaris, файловой системе NFS и языку Java.
1982 — Ричард Столмэн (Richard Stallman) начинает разработку бесплатной версии UNIX, которую обозначает сокращением «GNU», расшифровывающимся как «GNU's Not Unix».
1982 — Писатель Вильям Гибсон (William Gibson) вводит в обиход термин «киберпространство» (cyberspace).
1982 — Опубликованы спецификации протокола SMTP, simple mail transfer protocol. В настоящее время SMTP является наиболее распространенным протоколом обмена электронной почтой в интернете.
1982 — Скот Фальман (Scott Fahlman) изобретает первый смайлик: «».
1983 — Путем разделения ARPANET на несколько самостоятельных гражданских и военных сетей создается интернет.
1983 — Том Дженнигс (Tom Jennings) создает FidoNet. Сеть Fido становится наиболее популярной в мире общедоступной компьютерной сетью на последующие 10 лет, вплоть до повсеместного распространения интернета.
1983 — Кэвин Поулсен (Kevin Poulsen), известный под псевдонимом Dark Dante, арестован за проникновение в ARPANET.
1984 — Основана компания CISCO Systems.
1984 — Фред Коэн (Fred Cohen) разрабатывает первые компьютерные вирусы и вводит ставший ныне стандартным термин «компьютерный вирус».
1984 — Эндрю Танненбаум (Andrew Tannenbaum) создает Minix, бесплатный клон UNIX, основанный на архитектуре модульных микроядер.
1984 — Билл Ландреф (Bill Landreth), известный как The Cracker, обвинен во взломе компьютерных систем и получении незаконного доступа к информации NASA и Министерства обороны США.
1984 — Apple представляет Macintosh System 1.0.
1985 — Ричард Столмэн основывает Free Software Foundation.
15 марта 1985 — Зарегистрирован первый домен интернета - Symbolics.com.
Ноябрь 1985 — Microsoft выпускает Windows 1.0 по цене 100 USD за копию.
1986 — В США принят The Computer Fraud and Abuse Act.
1986 — Арестован член группы Legion of Doom Лойд Бланкеншип (Loyd Blankenship), известный как The Mentor, после чего он публикует ныне знаменитый «Манифест хакера».
1988 — Изобретен CD-ROM.
1988 — Запущен сервис IRC (Internet Relay Chat).
Ноябрь 1988 — Роберт Моррис (Robert Morris) создает и выпускает в сеть первый интернет-червь, который заражает и «подвешивает» тысячи компьютеров в США из-за ошибки в своем коде. Этот червь известен в наши дни под названием Morris.
1989 — В CERN Labs, в Швейцарии, разработана концепция WWW.
1990 — Сеть ARPANET прекращает свое существование.
1990 — Кэвин Поулсен (Kevin Poulsen) взламывает телефонную систему в Лос-Анджелесе, чтобы стать победителем в радио-конкурсе, в котором разыгрывается Porsche 944.
1991 — Филипп Циммермэн (Philip Zimmerman) выпускает PGP, мощную бесплатную утилиту-шифровальщик. Программа быстро становится наиболее популярной шифровальной утилитой в мире.
1991 — Появляются слухи о компьютерном вирусе под названием Michaelangelo, механизмы разрушения в котором активируются 6 марта.
17 сентября 1991 — Линус Торвальдс (Linus Torvalds) выпускает первую версию Linux.
1992 — Группа фрикеров (телефонных хакеров) Masters of Deception арестована благодаря доказательствам, собранным посредством подслушивающих «жучков».
1993 — Выпущен веб-браузер Mosaic.
1993 — Microsoft выпускает Windows NT.
1993 — Выпущена первая версия операционной системы FreeBSD.
23 марта 1994 — Шестнадцатилетний Ричард Прайс (Richard Pryce), известный как Datastream Cowboy, арестован и обвинен в незаконном доступе к хранящейся в компьютере информации.
1994 — Владимир Левин (Vladimir Levin), русский математик, взламывает сеть Citibank и крадет $10 млн.
1995 — Дэн Фармер (Dan Farmer) и Вице Винема (Wietse Venema) выпускают SATAN, автоматический сканер уязвимостей, который становится популярным хакерским инструментом.
1995 — Крис Лэмпрехт (Chris Lamprecht), известный как Minor Threat, становится первым человеком, которому запрещают доступ в интернет.
1995 — Sun выпускает Java, язык компьютерного программирования, созданный с целью свободного переноса уже скомпилированных программ с одной платформы на другую.
Август 1995 — Выпущен Microsoft Internet Explorer. Впоследствии IE станет наиболее незащищенным веб-браузером и любимой мишенью практически всех вирусописателей и хакеров.
Август 1995 — Выпущена ОС Windows 95.
1996 — IBM выпускает OS/2 Warp version 4, мощную мультизадачную операционную систему с графическим пользовательским интерфейсом, соперничающую с недавно выпущенной Microsoft Windows 95. Несмотря на то, что OS/2 более надежна и стабильна, чем Windows 95, она будет понемногу терять поддержку разработчиков и через несколько лет прекратит свое существование.
1996 — Выпущен ICQ, первый известный интернет-пейджер.
1996 — Тим Ллойд (Tim Lloyd) закладывает программную бомбу с часовым механизмом в компании Omega Engineering в Нью-Джерси. В результате атаки компания теряет 12 млн USD и более 80 сотрудников лишаются работы. Ллойда приговаривают к 41 месяцу тюремного заключения.
1997 — Опубликованы спецификации формата DVD.
1998 — Два китайских хакера-близнеца, Джинлон Хао (Hao Jinglong) и Джинвен Хао (Hao Jingwen), приговорены китайским судом к смерти за взлом компьютерной сети банка и кражу 720 тысяч юаней (примерно 87 тысяч USD).
18 марта 1998 — Эхуд Тенебаум (Ehud Tenebaum), почтенный хакер, известный под кличкой The Analyzer, арестован в Израиле за взлом множества важных компьютерных сетей США.
1998 — Появился вирус CIH. CIH стал первым компьютерным вирусом, стирающим содержимое flash-памяти BIOS компьютера, повреждающим компьютер так, что он больше не включается. CIH развеял миф о том, что компьютерные вирусы не могут навредить компьютерным комплектующим.
26 марта 1999 — Появился вирус Melissa.
2000 — Канадский хакер-тинейджер, известный как Mafiaboy, осуществляет DoS-атаку на сайты Yahoo, eBay, Amazon.com и CNN, делая их недоступными. Позже его приговаривают к восьми месяцам заключения в тюрьме для несовершеннолетних.
2000 — Корпорация Microsoft признает, что из ее сети был украден код нескольких еще не выпущенных версий операционной системы Windows.
2000 — ФБР арестовывает двух русских хакеров, Алексея Иванова и Василия Горшкова. Арест проводится после длительной и сложной операции, включавшей в себя заманивание хакеров в США с целью «демонстрации их хакерских навыков».
Июль 2001 — Появляется червь CodeRed. Червь заражает сотни тысяч компьютеров по всему миру в течение нескольких часов.
2001 — Microsoft выпускает Windows XP.
18 июля 2002 — Билл Гейтс анонсирует программу Trustworthy Computing, представляющую новую стратегию разработки программ компании Microsoft, направленную на повышение безопасности выпускаемых продуктов.
Октябрь 2002 — Неизвестными хакерами запущена мощная атака на 13 корневых доменных серверов интернета. Цель - полностью остановить работу DNS во всем интернете.
2003 — Microsoft выпускает Windows Server 2003.
29 апреля 2003 — Новый Скотланд-Ярд арестовывает Хтан Линн (Lynn Htun) на лондонской выставке InfoSecurity Europe 2003. Считается, что Линн сумел незаконно проникнуть в несколько важных компьютерных сетей, вроде сетей Symantec и SecurityFocus.
6 ноября 2003 — Microsoft объявляет награду в 5 млн USD за поимку хакеров, использовавших уязвимости в выпущенных компанией программах.
7 мая 2004 — В северной Германии арестован Свен Яшан (Sven Jaschan), автор сетевых червей Netsky и Sasser.
Сентябрь 2004 — IBM представляет самый быстрый в мире суперкомпьютер. Его стабильная производительность составляет 36 триллионов операций в секунду.