html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Компьютерные атаки

Специалист по Computer Science Денис Гамаюнов рассказывает о распространенных компьютерных атаках, методах защиты от них и неразрешимости проблемы остановки

ПостНаука рассказывает о современных технологиях в проекте «Банк знаний», созданном совместно с Корпоративным университетом Сбербанка.

Виды компьютерных атак

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

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

Компьютерные атаки эксплуатируют некоторые заведомо существующие в системе уязвимости. И уязвимости бывают трех типов: проектирования, реализации и настройки. То есть система может быть нормально сделана, но плохо настроена, установлена неправильно, функционировать долгое время без администраторов и так далее. Также система может устареть и не получать обновления. В итоге результатом неправильной настройки могут быть уязвимости. Например, вы купили коробочку Wi-Fi-роутера домой и просто поставили ее. А именно этот конкретный производитель оказался таким, что у него для всех устройств указан один пароль по умолчанию, дающий доступ к административному интерфейсу. То есть пользователь может даже не знать, что есть какой-то веб-интерфейс и что если зайти по IP-адресу на эту машинку, то там будет система управления этим роутером. Пароли по умолчанию — это очень простая уязвимость, классический пример неправильной настройки. Периодически даже проводятся такие исследования, когда специалисты сканируют весь интернет, ищут машины конкретного производителя, подключенные к интернету с паролем по умолчанию, и вычисляют, сколько из тех машин, которые нашли, имеют пароль по умолчанию.

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

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

Если говорить про процентное соотношение между видами атак по числу эпизодов, то чаще всего встречаются атаки типа социальной инженерии. Если вообще чего-то бояться в этом смысле в повседневной жизни, то опасаться нужно как раз их. На любого простого человека или даже банк вряд ли будет нападать кто-то целенаправленно. Большинство банков, которые функционируют даже в России, если не говорить про топ-10, сравнительно редко сталкиваются с целенаправленными компьютерными атаками. Чаще их беспокоят те, кто пытается как-то взломать банкоматы, как правило, физически или с применением специальных технических средств (скиммеров и так далее).

Постоянная угроза

Направленные атаки принято разделять по степени мотивированности человека или организации, которая их осуществляет: от самых простых атак, когда студент ради интереса ломает какой-то сайт, до взлома банковских систем. Несколько лет назад был очень популярен термин APT – advanced persistent threat, то есть постоянная угроза. Под этим обычно подразумевают государства или государственные службы, которые целенаправленно пытаются атаковать и скомпрометировать другую большую государственную или частную организацию. В этих случаях идет большая, может быть, на миллионы долларов операция, которая длится несколько лет с целью украсть какие-то данные или что-то сломать.

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

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

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

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

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

В 1990-е годы был взлет надежд на технологию автоматической генерации программ. И там, если бы это действительно заработало, был шанс получить программы, которые не содержат в себе ошибок. Но сегодня это, к сожалению, не работает. У IBM был такой большой пакет, который даже сейчас используется в некоторых компаниях, Rational Rose. В нем есть такой UML — язык описания программ, с помощью которого можно описать любую программу в виде блоков, связанных между собой. На основе этого описания генерируется уже собственно код, который потом загружается на целевую аппаратную платформу, например, в виде прошивки. Но это используется в достаточно узких областях, где программы все-таки не так часто меняются и дописываются. Например, прошивки стиральных машин, холодильников, авиационная и космическая инженерия. Но даже в космической области мы часто видим, как что-то не запускается и не работает из-за ошибок в программе.

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

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

DoS-атаки

Атаки DoS (denial of service/em>) — это атаки на отказ в обслуживании, которые стали одним из способов вымогательства. Обычно это опасно для тех бизнесов, которые зависят от своего сайта, как, например, онлайн-магазин. Если он не работает, простаивает, то нет клиентов, а следовательно, нет денег. И такие сайты атакуют с целью получить выкуп за прекращение атаки.

Смысл DoS-атаки в том, что любую систему можно завалить просто большим количеством запросов. Можно купить много мощностей где-то в облаке и генерировать с них запросы, но есть более тонкие методы. Есть такие протоколы, как DNS, для разрешения символических имен, доменного имени в IP-адрес. И есть протокол синхронизации времени, называется NTP — network time protocol. Эти два протокола были задизайнены так давно, что в них отсутствуют механизмы проверки источника, а значит, почти кто угодно может сделать запрос, подделав адрес источника запроса, и сервер ответит машине, которой в реальности принадлежит этот адрес.

Как это работает? У каждой машины в интернете есть IP-адрес, и возьмем для примера какой-то сервер времени, с которого синхронизируется, допустим, половина интернета. Соответственно, есть протокол, который позволяет одним пакетом запросить время для синхронизации, и ему сервер отвечает. Также в протоколе есть специальные команды мониторинга, и можно запросить список IP-адресов, которые спрашивали время у сервера времени. Проблема в том, что кто угодно может подделать адрес отправителя, то есть в этом пакете проставить не свой адрес, а кого-то другого.

Как осуществляется DoS-атака? Пусть есть некий сервер, который мы хотим атаковать, и у нас есть 500 зараженных машин. Мы отправляем команду: все 500, спросите, пожалуйста, сервер времени список IP-адресов последних клиентов, подставив в качестве адреса источника адрес жертвы. Соответственно, туда прилетает 500 ответов, каждый из которых содержит адреса сотен других клиентов. На каждый байт запроса атакующий получает сотни байтов, которые сервер времени отправляет на сервер-жертву. Аналогичная атака есть для DNS. Это называется DNS-амплификация, а бывает и NTP-амплификация. То есть можно одну свою команду превратить в тысячи, миллионы пакетов и ответов. В новых версиях на DNS-серверах и NTP-серверах уже от этого есть защиты. Но тем не менее находка каждой такой уязвимости для тех, кто занимается атаками на отказ обслуживания, — это возможность снова дешево кого-то атаковать.

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

Криптографические атаки

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

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

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

Даже можно через микрофон, по звуку компьютера, на котором происходит шифрование, допустим по HTTPS, расшифровать траффик и найти ключ — даже такая экзотика бывает. Еще по излучению, по ЭМИ можно прослушать то, что передается по шине данных. Между памятью и процессором есть шина, и данные по ней в незашифрованном виде ходят, конечно, а ключ лежит где-то в памяти. И если компьютер выключить, в течение где-то секунд 5–10 эту память можно заморозить и прочитать. Она не сразу очищается, так как у ячеек памяти есть какая-то инерция.

USB и FireWire тоже имеют доступ на шину между процессором и памятью. Там такой есть DMA — direct memory access. И драйверы в операционной системе, которые отвечают за устройства FireWire, умеют напрямую ходить к памяти. Поэтому если в этом драйвере найти уязвимость, то можно сделать такой вредоносный донгл, воткнуть его и прочитать всю память, сохранить и уйти, а там уже проанализировать. И опять же вытащить ключи шифрования. И это легко организовать — достаточно прийти, например, на конференцию, вычислить, где находится ноутбук жертвы, на пару минут подойти, воткнуть донгл, потом вытащить, и все. А в протоколе USB существует DMA-доступ, начиная с версии 3.1, — кажется, это как раз тот случай, когда новее не значит безопаснее. Кроме того, USB позволяет создать вредоносный как-бы-флеш-накопитель, который с точки зрения компьютера будет клавиатурой, и специальная прошивка в этом накопителе будет подбирать пароль для входа в систему или набирать команды в операционной системе незаметно для вас, когда вы залогинены. Поэтому лучше не оставлять компьютеры с важной информацией без присмотра. Или возить с собой ноутбук, на котором нет ничего важного.

Читать дальше
Twitter
Одноклассники
Мой Мир

материал с postnauka.ru

1

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • PostNauka
          • математика
          • университет
          • исследования
          • домен postnauka.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции