Кто и почему создает вредоносные программы
Вопрос, который волнует многих пользователей — кому есть выгода создавать вредоносные программы? Почему сегодня практически любой гаджет подвержен проникновению вируса? Какие цели преследуют те, кто создает подобные программы? К сожалению, в каждой сфере (будь то новые технологии или искусство), приносящей деньги, появляются мошенники. Не избежали этого и компьютерные технологии. Но развивалось мошенничество постепенно и сначала имело другие предпосылки.
Обычное хулиганство
Большая часть вирусов и вредоносных программ (наподобие троянов) раньше были спрограммированы обычными учениками или студентами. Молодые люди, только освоившие азы программирования, хотели понять, на что они способны, но не нашли более разумного применения своих знаний. До сих пор многие подобные программы появляются только как способ самовыражения их разработчиков. Радует то, что распространяются по сети они не так часто: авторы, в большинстве своем, просто забывают о них или рассылают исключительно производителям антивирусов.
Вторая часть авторов вредоносных программ также состоит из молодого поколения. Они (обычно студенты) пишут легкие и неграмотные вирусы забавы ради. Подобное сетевое хулиганство приносит этим хакерам удовольствие.
Самая опасная часть — третья. Компьютерные хулиганы выросли и набрались опыта. Теперь они запускают очень хитрые «профессиональные» вирусные программы. Их алгоритмы сложны, а это значит, что обнаружить их будет сложно. Часто атакам таких программ подвергаются коммерческие организации и компании.
Особняком от всех находится четвертая часть создателей вирусов. Это своего рода исследователи, которые хотят понять, на что способна компьютерная система. Их вирусы очень сложные. Пишутся они ради «научного интереса» и почти никогда не распространяются (только в теоретической форме, на специальных форумах, где авторы делятся идеями). Но если такой вирус попадет от «исследователя» к «хулигану», он может получить широкое распространение в сети.
Сейчас практически перестали создаваться вирусы ради вирусов как таковых. Молодежь, увлеченная компьютерами, теперь больше внимания уделяет онлайн-играм, и не написанию программ. Доля вирусов, наподобие троянских, занимает всего 5 процентов среди всех. Остальная масса преследует куда более опасные интересы, чем простое «хулиганство»
Мелкие кражи
С тех пор, как начали набирать популярность платные интернет-ресурсы, появились и те, кто хотел завладеть доступом к ним, но не имел на это средств. Начали распространяться программы, которые воровали регистрационные данные (логин и пароль) пользователей и передавали их своему создателю, который мог теперь получить доступ к платному ресурсу.
С развитием компьютерных игр программы начали писаться и для того, чтобы завладеть виртуальной собственностью игрока. Эта собственность в дальнейшем используется самим мошенником или перепродается. Есть и второй тип подобных вирусов: они крадут файлы установленных на зараженный компьютер платных программ. В таком случае создатель вируса получает их в свое пользование бесплатно.
Также достаточно часто игры на компьютерах заражают таким образом, чтобы по ходу игрового процесса пользователю «вылазило» навязчивое сообщение с просьбой зарегистрироваться в онлайн казино и сделать туда депозит. Нередко закрыть это окно очень даже проблематично. Во избежание таких казусов играйте дома с антивирусом или же выбирайте лучшие игровые клубы.
Криминал
Самыми опасными создателями вредоносных программ считаются те хакеры, которые создают их ради собственной наживы. Незаконное завладение чужими денежными ресурсами — основная цель подобной категории авторов. Они могут быть как одиночками, так и собираться в целые «профессиональные» группы. Разберемся в основных видах криминальной деятельности таких создателей.
Рассылка спама
Для подобных целей хакеры создают специальные «зомби-сети», которые сделаны из троянских утилитов для самостоятельной работы в сети. Они получают от создателя образец спам-сообщения и адреса, куда его нужно отправить. Так как троянской программой заражены десятки (сотни, тысячи) компьютеров, невозможно определить, с какого именно компьютера отправлено спам-сообщение. Заблокировать адрес тоже не получится, так как компьютеров, отправляющих спам, слишком много. Получается, что сперва хакер заражает троянским прокси-сервером множество компьютеров, а затем уже с них происходит рассылка.
Атаки серверов
С помощью создания сети, описанной выше, появляется еще одна вредоносная программа. Все сервера имеют ограничение по возможности обработки запросов. Если запросов слишком много, то сервер «падает». Чтобы достичь этой цели, хакеры создают ложные запросы. Таким образом, настоящие пользователи не могут получить доступ к ресурсу, который атакован, так как он перегружен ложными запросами. Часто этим способом устраняют конкурентов (например, онлайн-казино), прибыль которых пропорциональна стабильной работе ресурса. Злоумышленники также могут потребовать выкуп за прекращение атаки.
Платные звонки и СМС
Хакер создает программу, которая предназначена для звонков или отправки сообщений с чужих мобильных номеров без ведома хозяина. В это же время, с местной телефонной компанией заключается договор на оказание платных услуг ее пользователя. Конечно, компания не знает, что платные услуги будут оказаны без разрешения владельца телефона. После этого на платные номера совершаются звонки с зараженных смартфонов или отправляются СМС. Деньги, списанные со счета владельца сим-карты, отправляются к злоумышленнику.
Кража денег из кошельков и банковских карт
Программы направлены на списание средств с электронных кошельков («Киви», «Вэб-мани» и т.д.). Сперва они собирают информацию о данных владельца кошелька, а затем отправляют ее своему создателю, который этими данными пользуется, чтобы присвоить себе денежные средства.
На сегодня это самая популярная деятельность криминальных хакеров. Удар наносится по банковским счетам человека или компании. Разными способами хакеры добывают информацию о логине и пароле владельца карты, а затем используют данные в своих целях. Способов получить логин и пароль множество:
Программы-шпионы, которые считывают данные с клавиатуры при подключении к интернет-банкингу.
Психологические атаки: человеку высылают сообщение об угрозе (или выигрыше) и просят ввести данные, чтобы «обезопасить» счет (или перевести выигрыш).
Копии диалоговых окон банка. Пользователь карты не замечает, что вводит данные не в своем личном кабинете, а в копии, созданной мошенником.
Шантаж
Программа находит все данные пользователя и зашифровывает их, после чего пользователь получает уведомление о «невозможности восстановить файлы». Злоумышленник предлагает расшифровщик за определенную плату. Также подобные вирусы могут переносить файлы в хорошо зашифрованный архив, а оригиналы удалять. Тогда хакер продает пароль от архива.
Существует еще масса способов, которые используют мошенники ради своей выгоды. Это и кража информационных баз или документации, распространение навязчивой рекламы, продажа «антивирусников» от шпионских программ, которых на самом деле нет.
Важно помнить, что все эти действия незаконны и преследуются органами власти РФ.
Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер
Хакерский мир можно условно разделить на три группы атакующих:
1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.
2) «Byuers» — не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.
3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.
Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.
Зачем ИБ-персоналу эти сомнительные навыки?
Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.
Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.
Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.
Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.
Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:
1. [DllImport("user32.dll")] 2. 3. public static extern int GetAsyncKeyState(Int32 i);
Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:
Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:
1. while (true) 2. < 3. Thread.Sleep(100); 4. for (Int32 i = 0; i < 255; i++) 5. < 6. int state = GetAsyncKeyState(i); 7. if (state == 1 || state == -32767) 8. < 9. Console.WriteLine((Keys)i); 10. 11. >12. > 13. >
Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.
Умный кейлогер
Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.
Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.
Вторая версия кода:
1. while (true) 2. < 3. IntPtr handle = GetForegroundWindow(); 4. if (GetWindowText(handle, buff, chars) >0) 5. < 6. string line = buff.ToString(); 7. if (line.Contains("Gmail")|| line.Contains("Facebook - Log In or Sign Up ")) 8. < 9. //проверка клавиатуры 10. >11. > 12. Thread.Sleep(100); 13. >
Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.
Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.
Еще более умный кейлогер
Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.
Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:
1. //Ищем почтовый адрес 2. ^[\w!#$%&'*+\-/=?\^_`<|>~]+(\.[\w!#$%&'*+\-/=?\^_`<|>~]+)*@((([\-\w]+\.)+[a-zA-Z])|(([0-9]\.)[0-9]))$ 3. 4. 5. //Ищем пароль 6. (?=^.$)(?=.*\d)(?=.*[a-zA-Z])
Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.
Для C# это выглядит так:
1. Regex re = new Regex(@"^[\w!#$%&'*+\-/=?\^_`<|>~]+(\.[\w!#$%&'*+\-/=?\^_`<|>~]+)*@((([\-\w]+\.)+[a-zA-Z])|(([0-9]\.)[0-9]))$"); 2. Regex re2 = new Regex(@"(?=^.$)(?=.*\d)(?=.*[a-zA-Z])"); 3. string email = "[email protected]"; 4. string pass = "abcde3FG"; 5. Match result = re.Match(email); 6. Match result2 = re2.Match(pass);
Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.
Бесплатно и полностью не обнаружим
В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.
Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?
Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.
В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.
Основная цель этой статьи – показать, что используя одни только антивирусы вы не сможете полностью обеспечить безопасность на предприятии. Нужен более глубинная оценка действий всех пользователей и даже сервисов, чтобы выявить потенциально вредоносные действия.
В следующих статья я покажу, как сделать действительно не обнаружимую версию такого ПО.
- Varonis
- неструктурированные данные
- вредоносное по
- информационная безопасность
Зачем пишут компьютерные вирусы
Часто проблемы с современным ПО вызывается вирусами – небольшими вредоносными программами. С этим согласна большая часть пользователей. А вот единого мнения о том, зачем пишут компьютерные вирусы, пока не существует.
Статьи по теме:
- Зачем пишут компьютерные вирусы
- Что такое вирус?
- Является ли вирус живым организмом
Популярные антивирусные программы в своих базах насчитывают тысячи записей. Откуда берутся вирусы, да еще и в таких количествах – очень занимательный вопрос. Кто и зачем их пишет?
Зачем пишутся вирусы: версии, мифы, реальность
Версия первая – мифическая. Сторонники этой версии утверждают, что вирусы пишут те же компании, которые занимаются выпуском антивирусных программ, чтобы не стать безработными. Ведь антивирусы станут просто не нужны, если всех «вредителей» переловить и обезвредить. А так – создавай вредоносное ПО, а следом антивирусную защиту. Но эта версия не находит ни одного достоверного подтверждения. Более того, риск для компании слишком велик. Если ее «поймают на горячем» и действительно докажут, что она занимается созданием вирусов, то объем неприятностей трудно будет вообразить.
Версия вторая – хулиганская. Согласно этой версии вирусы пишут школьники, студенты, начинающие программисты. Цель у них разная. Кто-то хочет просто самоутвердиться, показать перед друзьями, какой он умный. Кто-то просто занимается мелкими кражами паролей и логинов, а затем выманивает деньги за их возврат. На самом деле такие вирусы пишутся просто. Из-за нехватки знаний и опыта у студента они содержат кучу ошибок и называются «пионерскими». Такое вредоносное ПО редко бывает полностью работоспособным и легко нейтрализуется любой антивирусной программой.
И наконец, третья версия – коммерческая. По этой версии вредоносное ПО создается грамотными знающими программистами, которые великолепно разбираются в защите современного программного обеспечения. А цель весьма банальная – деньги, которые, как известно, не пахнут. Именно этого вредоносного ПО сейчас больше всего в интернете.
Способы получения нечестной прибыли
Одним из способов для получения денег является программа тип winlock (блокировка windows). Такой вирус блокирует работу ОС, пугает огромным баннером на весь экран с требованием заплатить определенную сумму на указанный электронный кошелек. При этом баннер обещает мгновенную разблокировку в случае оплаты, но кроме потери денег это ни к чему не приведет. Чтобы избавиться от такого вируса, нужно просканировать систему антивирусом через БИОС и удалить его.
Еще один способ – рассылка спама. «Нехорошие» рекламодатели оплачивают рассылку рекламы с троянской программой внутри. Данный вирус может воровать данные от электронной почты (с которой потом будет идти поток спама), а может использовать IP-адреса для регистрации нужного количества аккаунтов для рекламы.
Совет полезен?
Статьи по теме:
- Существует ли вирус, который может сломать процессор
- Что такое компьютерный вирус «Чернобыль»
- Как уничтожить вирус
Добавить комментарий к статье
Похожие советы
- Что делать, если обнаружен вирус
- Как найти вирус без антивируса
- Как распространяются вирусы
- Что такое вирус MERS и чем он опасен
- Как защитить компьютер от вируса
- Как определить, что сайт с вирусом
- Почему люди чихают
- Почему вирусы называют внутриклеточными паразитами
- Как определить, есть ли в компьютере вирус
- Как действует вирус Flame
- Откуда берутся перфекционисты?
- Почему антивирус не вылечит зараженный компьютер
Новые советы от КакПросто
Рекомендованная статья
Как происходит заражение компьютера вирусом
Наиболее слабое звено в цепи компьютерной безопасности — это сам пользователь. Наличие установленного на компьютере.
При подготовке материала использовались источники:
https://www.anti-malware.ru/ost1/2019-03-13/29137
https://habr.com/ru/companies/varonis/articles/302458/
https://www.kakprosto.ru/kak-902885-zachem-pishut—kompyuternye-virusy