Есть только это пространство, полностью знакомое, в котором нет никаких неожиданностей.
Оно полностью освещено, каждый сантиметр под присмотром.

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

Но как понять чья рука его держит?

Это наёмник, который и глазом не моргнёт перед выстрелом, или дошкольник, который едва удерживает пистолет, и выстрел из которого его самого убьёт?

Кажется, вступление получилось намного интереснее самой статьи.

Давайте я попробую ещё раз, менее литературно.

Работа над ошибками


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

Годы прошли, но часть вопросов, которые были подняты в моём дипломе, до сих пор меня волнует.
Я более чем уверен, что я очень многое упустил в классификации нарушителей и хотел бы увидеть ваши мысли по этому поводу в комментариях.

Теперь точно начало


Можно ли использовать классификации нарушителей безопасности иначе, кроме как для создания модели нарушителя безопасности?

Мой диплом был в частности о том, что да, можно.

Но для начала давайте разберемся с определениями.

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

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

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

Классифицируем?


Итак, мы пришли к классификации хакеров по опасности для системы. Ну а как можно классифицировать? Да можно взять три градации: «низкая опасность», «средняя опасность» и «высокая опасность».

Всё, разобрались. Спасибо, что прочитали мою небольшую статью, я рад, что вы потратили на неё своё время.

На самом деле мы потихоньку приближаемся к проблеме, которая меня волнует: можно ли автоматизированно классифицировать хакеров?

Поэтому сначала посмотрим что есть сейчас.

Мне удалось найти два основных подхода:

  • по ресурсам;
  • по знаниям.

А теперь посмотрим что же мне в них не нравится.

Классификация по ресурсам


Эту классификацию можно найти у ФСТЭК. Если быть точнее, то классифицируют они не самих нарушителей, а их потенциал:

  1. Нарушители с базовым (низким) потенциалом.
  2. Нарушители с базовым повышенным (средним) потенциалом.
  3. Нарушители с высоким потенциалом.



В нарушители третьей категории отнесены «Специальные службы иностранных государств (блоков государств)».

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

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

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

Либо уже при расследовании инцидента экспертным методом определить сколько сил и средств было затрачено и сколько человек в этом участвовало.

Классификация по знаниям


Такая классификация обычно выглядит как-то так:

  1. Скрипт-кидди.
  2. Хацкеры.
  3. Хакеры высокого уровня.



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

Так в чём проблема?


Проблема в том, что нельзя дать написать атакующему какой-нибудь ЕГЭ.

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

Детектировать инструментарий?


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

Т.е., по сути, я говорю о том, что такая система подвержена ошибкам и первого, и второго рода (как завышение опасности, так и занижение).

Может проще?


Есть ещё метод, который я использовал в своём дипломе — использование CVE, а если быть точнее, то CVSS.

В описании уязвимости CVSS есть такая строка как «сложность эксплуатации».

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

Кажется, идеально: смотрим какие уязвимости эксплуатирует хакер, ищем их в базе и присваиваем хакеру оценку опасности. Так что же мне и тут не нравится?

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

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

Вместо выводов


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

Быть может Хабр подскажет по каким критериям можно классифицировать хакеров? Быть может я пропустил очевидный подход?

А самое главное — нужно ли это вообще?

Быть может этот пост будет полезен студентам, которые выбирают тему для диплома.

Не смотря на чрезвычайно простую постановку вопроса («как определить уровень хакера?») дача ответа совершенно не очевидна.

Чем-то похоже на машинное зрение и распознавание образов.

Только намного скучнее.

Комментарии (37)


  1. iig
    10.11.2019 21:59
    +2

    "по каким критериям можно классифицировать хакеров?"


    По любым. По возрасту, образованию, месту жительства, росту… Статье УК, по которой обвиняется… Смотря для чего нужна классификация — этого я не понял.


    1. Samouvazhektra
      10.11.2019 22:23

      +1. Для чего и зачем их нужно классифицировать?


      А самое главное — нужно ли это вообще?

      Этот вопрос должен был встать в первую очередь.


      Плюс ваши варианты классификации актуальны на очень непродолжительное время. скрипт-кидди может вырасти до профессионала… а может просто бросить это дело. Крутой специалист может переодеть шляпу и стать добропорядочным ИБ-специалистом с женой и детишками.


      С точки зрения иб гораздо важнее классифицировать угрозы и подверженные им объекты по степени риска.


      1. Darmstadtium Автор
        10.11.2019 22:46

        Это планировалось как дополнительный инструмент.
        Т.е. условно система могла бы в какой-то момент сказать, что «слушай, я тут атаки начала фиксировать от „серьёзных ребят“, а потом резко прекратила, ты бы аудит провёл, может они уже внутри, а мы не в курсе?». Или «там к атаке готовятся DDOSеры, но они чё-т слабенькие, не парься».

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


        1. Samouvazhektra
          10.11.2019 22:51

          ну тогда это не хакров надо классифицировать, а масштабность, агрессивность и изощренность атаки


          1. Darmstadtium Автор
            11.11.2019 00:35

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

            Давайте попробуем классифицировать атаки. Но в данном случае предложенные категории не подойдут (по моему мнению).

            Масштабность.
            Предположим, я нахожу уязвимость в какой-нибудь IoT-штуке. Допустим, в прошивке жёстко прописан админский пароль. Я пишу скрипт и получаю доступ ко всем устройствам, до которых смог дотянуться. И по итогу больше миллиона устройств сходят с ума. Масштабно? Да, вроде бы да. Говорит ли это о моих способностях? Да нет, я просто был первым, кто в прошивку залез.
            Или про другую масштабность идёт речь?
            О количестве привлеченных ресурсов? Тогда там может оказаться совсем не один хакер, как вычленить из группы уровень конкретного хакера? Или нам необходимо рассматривать хакерскую группировку как единую сущность по аналогии с физическими и юридическими лицами?

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

            Изящность в принципе субъективная вещь.
            Я не очень большой профессионал в игре в шахматы. Это связано с тем, что мне тяжело в шахматах просчитывать больше, чем на два хода вперед, но дело, скорее всего, в недостатке практики.
            Мой любимый приём в игре за чёрных — зеркально повторять шаги белых. Естественно, до тех пор, пока это не опасно. А потом уже действовать по ситуации.
            Такой подход в большинстве случаев назывался «тупостью», «отсутствием фантазии» и т.д. Но не так давно услышал такое мнение, что это довольно забавный ход игры, который выводит противника из себя, заставляет нервничать. Игра на нервах, в общем.
            В зависимости от эксперта оценка конкретного случая будет меняться.
            Для каждой атаки придётся собирать экспертов, которые будут высказывать своё мнение.


            1. Samouvazhektra
              11.11.2019 07:21

              Вы рассматриваете все вышеупомянутые критерии со стороны стороннего наблюдателя. А я со стороны уязвимого объекта, атакуемой инфраструктуры и бизнеса.Были ли это разовые инциденты — типа условной кавычки в запросе. Или За какой-то период времени проехались парой сканнеров, зафиксированы нестандартные запросы к адресам, особенно к адресам к которым вообще не должно быть запросов и т.п. Значит можно предполагать что взялись целенаправлено, и нужно предпринимать дополнительные меры — доп. бекапы/резервные ноды/бан за нестандартные паттерны/сотруднико предупредить, так как при комплексной атаке могу идти не только через инфраструктуру но и соц.инженерией. И в целом не так важно кто там на другой стороне — профессионал или команда лошков но с инструментами, один человек или группа и сколько они готовили эту атаку. Вам не переговоры с ними вести.
              Масштабность — количество объектов атаки за срез времени. Аггресивность — частота (как минимум отражает использование автоматизации или ручные действия), изощренность — количество и сложность различных техник за срез времени. Начинают обычно с самых простых способов и самых очевидных endpoint. Если не прошли, то — либо останавливаются, либо усложняют техники, пробуют другие объекты.


              1. BugM
                11.11.2019 09:09

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


      1. qw1
        10.11.2019 23:27

        Для чего и зачем
        Для рыночных предложений? )))

        «Услуги потомственного хакера 30 lvl, недорого»

        или

        «Защита от хакеров до 40 lvl, фирма AVP, тел. +7-XXX-XXXX-XX-XX спросить Евгения».


        1. user343
          11.11.2019 02:00

          Тогда и в даркнете будут объявления — удаляю защиты до 68 lvl.
          Инструменты — микроволновая печь с бензогенератором (работающая с открытой дверкой) и сверхмощный генератор ЭМ импульсов с радиусом действия 500 м.
          https://vrtp.ru/index.php?act=categories&CODE=article&article=3198


    1. roscomtheend
      11.11.2019 14:21

      Все программисты делятся на завершающих программы по Alt-x, F10 и ESC. Другие критерии деления ошибочны.


      1. iig
        11.11.2019 21:58
        +1

        Про CTRL-C и Alt-F4 забыли.


        1. roscomtheend
          12.11.2019 16:29

          Ctrl-C — аварийное завершение, а Alt-F4 — модный новодел (на момент классификации не шибко популярный, хотя сейчас в енторнетах находится как раз с Alt-F4).


  1. mikechips
    10.11.2019 22:27

    Проблема классификации хакеров по опасности — отсутствие критерия опасности. Всё остальное уже водица.


    1. Darmstadtium Автор
      10.11.2019 22:53

      Воооот… согласен.
      Знал, что место скользкое и всё равно подскользнулся.

      Какой критерий может быть у опасности? Конечно же, ущерб, который может быть системе нанесён.
      А в чём измерить ущерб? Вариантов немного — в деньгах. Либо упущенную прибыль считать от простоя, нарушения функционирования бизнес-процессов и т.д. Либо считать средства, которые нужно потратить на восстановление системы.
      Но почему я не захотел говорить именно об ущербе — он будет меняться от системы к системе, на каждой нужно будет менять «ползунки» ущерба для каждой градации.
      Кто-то может и не заметить лишнего миллиона на вызов специалиста, который поднимет сервер из бекапа, а для кого-то это означает конец бизнеса.

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


      1. mikechips
        10.11.2019 23:08

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


        Ладно, это я уже ушёл в терминологическое копание. Просто триггернулся от заголовка немного. Это как про добро и зло что ль говорить, при этом понимая, что всё зависит от контекста.


        1. Darmstadtium Автор
          10.11.2019 23:19

          Обожаю копание. В ходе «раскопок» можно найти столько интересных камней, о которые ты даже и не планировал спотыкаться.

          В моём понимании название «Проблема классификации хакеров по силе» было бы ещё хуже. Было бы куда больше вопросов.
          Захотел их избежать… в итоге и так плохо, и так плохо.


      1. 255
        11.11.2019 11:13

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

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

        Если в первом случае он массово сканирует сайты, чтобы поживиться аккаунтами, во втором случае целенаправленно атакует именно эту систему.


  1. kababok
    10.11.2019 23:07

    Хакер — он или опасный, или безопасный.


    Лучше градации ещё никто не придумал.


    1. mikechips
      10.11.2019 23:09

      Безопасный хакер…


      1. kababok
        10.11.2019 23:11

        "Ну а куда его ещё?!"


    1. Darmstadtium Автор
      10.11.2019 23:20

      Изначально планировалось классифицировать по «силе».
      Тогда можно было бы делить на «сильных» и на «умных».


      1. kababok
        10.11.2019 23:20

        Это категорически противоречит моим императивам.


  1. Sly_tom_cat
    10.11.2019 23:36

    А мне кажется изначально есть «надклассификация хакеров».
    Ведь исторически это слово использовалось для много чего.

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

    И даже тут нельзя говорить только о black hat не упомянув wait hat.

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


    1. Darmstadtium Автор
      11.11.2019 00:38

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


      1. Sly_tom_cat
        11.11.2019 11:40

        Вы не правильно меня поняли. Я не классифицировать шире предлагаю, я предлагаю назвать вещи своими именами.
        То что вы попытались классифицировать это не классификация хакеров, а классификация авторов атак на информационные системы.


    1. qw1
      11.11.2019 09:46

      wait hat

      — Ты почему ничего не ломаешь?
      — А я wait hat )))


  1. DrPass
    10.11.2019 23:47

    Всё уже давно было классифицировано: zxpress.ru/article.php?id=2650


  1. screwer
    11.11.2019 00:57

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

    Тут ошибка. Зачем эксплуатировать сложную уязвимость, если рядом есть более простая? Сложная начинает представлять интерес если она более опасная или нет простых или (ещё масса вариантов) — сначала требуется выполнить эти условия.


    1. Darmstadtium Автор
      11.11.2019 06:08

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


      1. iig
        11.11.2019 11:15

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


  1. Pochemuk
    11.11.2019 13:02

    А если так:

    По преследуемым целям:

    1. Собственно поиск уязвимостей.
    1а. Из любви к искусству (без дальнейших последствий).
    1б. С целью информирования уязвимой строны (в т.ч. пейнтест по контракту, либо без контракта с расчетом на благодарность).
    1в. Для продажи найденных уязвимостей и эксплойтов третьим лицам.
    2. Непосредственно для кражи.
    2а. Средств из банковского сектора.
    2б. Информации с целью продажи (в т.ч. ПД).
    3. Диверсионная работа по уничтожению и искажению информации (ну, тут уже, скорее, в составе правительственных или аналогичных служб).
    4. Как-то дальше…

    Т.е. по тому признаку, какие кунштюки собирается получать хакер и от кого.


    1. iig
      11.11.2019 17:32

      по тому признаку, какие кунштюки собирается получать хакер и от кого


      Так то в юриспунденции принято классифицировать не намерения, а поступки.


      1. Pochemuk
        11.11.2019 17:42

        Это смотря по какому кодексу. В административном нет понятия намерения. А в уголовном — есть :)


  1. istvan_at
    11.11.2019 18:47

    Есть ещё метод, который я использовал в своём дипломе — использование CVE, а если быть точнее, то CVSS.

    Кажется, идеально: смотрим какие уязвимости эксплуатирует хакер, ищем их в базе и присваиваем хакеру оценку опасности. Так что же мне и тут не нравится?

    А расскажите, пожалуйста, как вы видели этот метод, когда писали диплом?
    Потому что сейчас я не нахожу метод идеальным. Вижу два варианта его применения:
    1. Чистый post-mortem: нас поломали через 0-day, потом, когда уязвимость была исследована, мы смотрим, насколько крут был хакер. Это может быть вполне полезно в контексте оценки рисков, чтобы понять на будущее, нарушителям какого уровня наша организация может быть интересна, но не очень полезно для заявленной вами цели автоматизированной классификации нарушителя в реальном времени.
    2. Мы держим зоопарк ханипотов с уязвимостями разного уровня сложности и даём нарушителям без регистрации и смс поиграть в ctf в обмен на сбор данных об их опасности. Дорого и малоприменимо в большей части ситуаций.

    Тема параметризации атак (частным случаем которой является классификация нарушителя) вообще классная и перспективная, но, имхо, чтобы ей всерьёз заниматься, нужно сидеть на огромной куче биг даты. Т.е. если вы не работаете в mandiant или cisco talos, то максимально можно получить разве что диссертацию, которую после защиты положат на полку и забудут.


    1. Darmstadtium Автор
      12.11.2019 07:38

      Если бы метод был идеальным, то и статью писать не было бы повода.

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

      Диплом был основан на утверждении производителя SIEM OSSIM, что они могут детектировать атаки, а также объединять их в цепочки, причём звеньями этой цепи выступают CVE, которые использовались в ходе атаки.
      Относительно классификации планировалось брать векторы по доступности, целостности и конфиденциальности и присуждать роль разведчика, разрушителя или захватчика (да, именно в таких формулировках). И также по сложности эксплуатации дополнительно присуждалась «сила»: слабый, средний или сильный (использовалась вторая версия CVSS).
      В зависимости от полученной характеристики, например, «средний захватчик» выставлялась возможная цель.
      Если цель не достигалась (или навыков не хватило, или просто атака в процессе), то все равно информация в системе фиксировалась и её можно было использовать.


  1. dustdevil
    12.11.2019 06:34

    На мой взгляд очень напрасно откидываются деньги как универсальный измеритель. В них можно померить практически все. Схема простая: причиненный ущерб (включая не полученную прибыль и репутационые потери)/затраты на ит-безопасность в разрезе времени — один коэффициент. Полученная от атаки прибыль/затраты на подготовку атаки в разрезе времени — второй коэффициент. Количество использованных уязвимостей с градацией по сложности использования — ещё кучка коэффициентов. База — к примеру 100. И получаем что атака крупным бот-нетом, социалка, копание в мусорных вёдрах и физическое проникновение в купе ради 100 баксов за пол года совсем не ровняется покупке ноута и 3 часов времени в интернет-кафе ради n-цати миллионов.


  1. feyd12
    12.11.2019 20:17

    Хакера/группировку можно классифицировать только по размеру нанесённого ущерба, как оценить ущерб — отдельный вопрос классификации. Хакеры не наносящие ущерба в классификации не участвуют))