По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Начиная с 2013 года по планете Земля начали свое победное шествие программы шифровальщики, требующие выкуп. Начал этот злостный хайп шифровальщик Cryptolocker, а затем были слышны такие громкие имена как Petya, NotPetya, WannaCry и иже с ними. Мы хотели бы показать и объяснить механизмы работы подобного вида зловредного ПО, так как первичный источник заражения в организации обычно одинаковый и являет собой спам письмо – ниже, в последовательных шагах объясним, как, почему и зачем ОНО это делает. Само заражение, подробно и без приукрас. Конечный пользователь получает письмо как-будто бы от его начальника, в котором находится ссылка на популярный облачный сервис - Битрикс24, Salesforce, ZenDesk и так далее. По ссылке открывается окно браузера и направляет пользователя на сайт, который выглядит вполне нормально и являет собой лэндинг для эксплойт кита. До загрузки страницы, веб-сервер, на котором находится эксплойт-кит, начинает коммуникацию с компьютером жертвы и пытается понять какая версия Java используется для использования эксплойта в уязвимой версии. Когда кто получает подтверждение уязвимости конкретной версии, эксплойт начинает свою работу и, в случае успеха, он загружает на рабочую станцию некий .EXE файл, и он начинает выполняться. Экзешник создаёт дочерний процессы, который включает в себя процесс vssadmin.exe (теневую копию). Данный процесс удаляет имеющиеся теневые копии на компьютере жертвы и создаёт новые. Теневые копии, создаваемые самой ОС Windows, позволяют восстановить информацию - и поэтому WannaCry всеми силами пытается снизить вероятность восстановления файлов. Далее WannaCry использует исполняемый PowerShell файл для распространения своих копий по системе и запускает шифрование файлов с определенными расширениями. Дочерний процесс powershell.exe создает ещё три копии оригинального зловредного кода - сначала в директории AppData, затем в Start и в корневом каталоге диска C: . Данные копии используются совместно с модификациями регистра для автоматического перезапуска WannaCry после перезагрузки системы и различных событий. После шифрования файлов на компьютере, малварь отправляет ключ шифрования и другую информацию в командный центр (C2). Далее жертва получает сообщение, причем это может быть как банальное информирование пользователя о шифровке файлов и инструкций о передаче выкупа, так и установке другого зловредного ПО, например для кражи учётных данных. Как правило, для усиления эффекта, на экране компьютера появляется таймер обратного отсчёта с указанием дедлайна, когда нужно отправить выкуп. Если не отправить вовремя, ключ для расшифровки будет уничтожен - то есть больше не останется шансов на восстановление вашей информации. Обычно, оплата выкупа означает то, что вам пришлют ключ для расшифровки - но это совершенно точно не означает, что сам зловредный файл тоже удалится с машины жертвы. Обычно, в таких случаях нужно привлечь вашу службу ИБ или ИТ. И, как уже было сказано выше, очень часто шифровальщики используются как некая маскировка более глубокой атаки на организацию - то есть кража учётных записей, персональных данных и прочие. Наш посыл прост – не открывайте подозрительных ссылок! Особенно, если они пришли по электронной почте от людей, от которых не должно подобное приходить – руководитель компании и так далее. Старайтесь более ответственно относится к времяпрепровождению в Интернете, и тогда ИТ-службе (а это скорее всего вы и есть) будет гораздо спокойнее жить.
img
Языки сценариев пользуются большей популярностью для автоматизации определенных задач. Кроме того, языки сценариев являются менее ресурсоемкими по сравнению с традиционными языками программирования. Они не требуют этапа компиляции и вместо этого интерпретируются. Например, программа Java должна быть скомпилирована перед запуском, тогда как приложение, написанное на языке сценариев, таких как Python, JavaScript или PHP, не требует компиляции. В Java-программировании сначала создаются файлы классов, а затем отображаются выходные данные. Напротив, в Python все коды выполняются во время запуска скрипта, поэтому языки программирования компилируются, тогда как языки сценариев интерпретируются. Языки сценариев относятся к определенному типу, который используется для предоставления инструкций через код веб-браузерам или автономным приложениям. Они делают кодирование более простым и быстрым, поэтому они широко используются в веб-разработке. Языки сценариев также используются в операционных системах для создания и автоматизации файлов запуска, игр, программного обеспечения статистического анализа, офисных приложений и многих других. Они могут эффективно работать в нескольких средах. Вот список наиболее популярных языков сценариев, с которых можно начать знакомиться с миром программирования. 1. JavaScript JavaScript - наиболее популярный язык сценариев, используемый разработчиками. Он следует спецификации ECMAScript, которая отвечает за определение стандартов. Этот язык разработан компанией Sun Microsystems и увидел свет в 1995 году. Крупные организации, такие как PayPal, Walmart и Netflix, созданы на основе JavaScript. Такие технологические гиганты, как Facebook и Google, вложили большие средства в этот язык. JavaScript широко используется для создания веб- или мобильных приложений, инструментов командной строки, сетевых приложений реального времени, таких как службы потоковой передачи видео, игры и т.д. Можно сказать, JavaScript является базовой технологией для создания современных веб-сайтов с уникальными функциями. Ранее JavaScript использовался только для работы в браузере, но теперь существуют фреймворки на основе JavaScript, такие как Node, которые позволяют использовать JavaScript в бэкэнде. Есть несколько популярных JavaScript фреймворков для фронтэнда, вроде Angular и React. Преимущества JavaScript: Простота в изучении и внедрении Много возможностей для работы в качестве фронтэнда, бэкэнда или фулстек разработчика. Одно из самых активных сообществ разработчиков Обеспечивает отличную интерактивность веб-сайтов Легко справляется с высокой нагрузкой и пропускной способностью сервера Возможность эффективной работы с другими языками программирования для создания разнообразных приложений 2. Python Python - второй по популярности скриптовый язык в настоящее время. Python создал Гвидо ван Россум, и первый релиз вышел в 1991 году. Код на Python прост в чтении, он похож на английский. Чтобы начат работу с Python достаточно создать файл с расширением .py, написать сам скрипты и, наконец, запустить этот файл, чтобы выполнить инструкции указанные в нем. Код в скриптах python исполняется сверху вниз, один за другим. Руководство для начинающих с примерами по изучению Python можно прочесть здесь. Разработчики в основном используют скрипты Python для автоматизации ежедневных задач, создания отчетов, обеспечения безопасности и т.д. Задачу автоматизации с Python можно выполнять за меньшее количество кода, чем в любых других языках программирования, таких как Java, C++. Преимущества Python: Очень легок в изучении Портативный, может работать на любой платформе, как Windows/Mac/Linux Может дополняться компонентами на других языках программирования Огромное сообщество поддержки Обеспечивает поддержку программирования GUI Может легко интегрироваться с другими языками программирования, вроде C, C++ и т. д. Богатый набор библиотек и модулей для больших функциональных возможностей 3. PHP PHP - это серверный язык сценариев, который является языком для создания динамических и интерактивных веб-страниц. PHP расшифровывается как гипертекстовый препроцессор. Он является открытым и бесплатным для использования. Даже если это язык, который может делать почти все, что может язык программирования, он в основном используется для выполнения логики на стороне сервера. Когда вы нажимаете кнопку входа на странице входа в Facebook, логика, которая позволяет вам войти в ваш аккаунт, выполняется на PHP. Руководство для начинающих с примерами по изучению PHP можно прочесть здесь. С помощью PHP можно создавать динамичные и красивые веб-страницы; можно собирать данные из формы, созданной в формате HTML, и использовать их для шифрования данных. Из множества функциональных возможностей PHP можно использовать PHP для создания простого приложения CRUD, которое расшифровывается как создание, чтение, обновление и удаление. Такие компании, как Википедия и Facebook, используют PHP, так как он может легко обрабатывать миллионы трафика. Преимущества PHP: Широко используемый и чрезвычайно гибкий язык Поддерживает несколько типов баз данных (MySQL, PostgreSQL, NoSQL) Поддержка нескольких типов серверов (Apache, TLS сервер) Обеспечение эффективной производительности веб-сайтов с интенсивным трафиком Предоставляет разработчикам больше возможностей управления, значит удобен для разработчиков Совместимость с большинством операционных систем и простота интеграции с несколькими технологиями 4. R R в основном используется для статистических вычислений и графики. Он широко используется аналитиками данных, учеными и статистиками. Этот язык сценариев используется через интерпретатор командной строки. R обычно называют языком науки о данных. Разработчики пишут сценарии на R для выполнения нескольких команд за один раз; это экономит много времени. Здесь сценарий представляет собой набор команд, который обычно включает в себя комментарии о том, для чего предназначен каждый фрагмент кода. Сценарий R должен быть сохранен с расширением .r. Преимущества R: Активное сообщество, поддерживающее этот язык сценариев Поддержка векторных операций Он поставляется с тысячами готовых к использованию пакетов Кроссплатформенна Наилучшим образом подходит для сложных статистических вычислений Мощные графические возможности 5. Ruby Ruby является одним из самых гибких языков программирования, и он сходит с вашего пути, если вы не кодируете так, как хотите. Создатели Ruby вложили много работы, чтобы сделать его максимально простым в использовании. Ruby может спасти тебя от набора большого количества кода. Гибкость Ruby позволила разработчикам создать невероятно инновационное программное обеспечение. Есть такие инструменты, как Chef, которые Facebook использует для автоматизации своей конфигурации сервера, или SAS, который помогает обеспечить стиль для веб-сайтов Pandora, и самое главное, Ruby разрабатывает Ruby on Rails, который, возможно, является самым популярным в мире веб- фреймворком. Airbnb и Kickstarter, как и многие другие компании, используют Ruby on Rails, в разработке своих свои веб-сайтов. Преимущества Ruby: Можно выполнять задачу за меньшее количество кода, по сравнению с другими языками программирования. Помогает ускорить разработку программного обеспечения Хорошо подходит для автоматизации тестов Предоставляет множество встроенных инструментов и библиотек, помогающих разработчикам Следует кодированию по конвенции строго в соответствии со стандартами 6. Perl Perl - язык программирования с открытым исходным кодом и огромным сообществом программистов, библиотек и ресурсов. Он имеет очень мощную встроенную структуру регулярного выражения, благодаря чему программисты и решают использовать Perl для массовой обработки текста. Perl не зависит от платформы и также используется для генерации HTML-страниц. Perl носит прозвище «Швейцарский нож скриптового языка» благодаря своей гибкости и мощи. Преимущества Perl: Относительно мало ключевых слов, простая структура и простота в изучении Поддержка широкого спектра аппаратных платформ с одним и тем же интерфейсом Обеспечивает поддержку всех коммерческих баз данных CPAN (Comprehensive Perl Archive Network), архив библиотеки Perl, включает в себя тысячи готовых модулей Поддержка автоматического управления памятью и сбора мусора Включает простые методы отладки 7. Groovy Groovy очень похож на Java. Он имеет Java-подобный синтаксис, и, если вы уже знаете Java, вам будет легче изучать его. Это мощный динамический язык с эстетической типизацией и статической компиляцией. Groovy разработан, чтобы быть менее подробным, чем Java. Синтаксис менее сложен и следует простой структуре без ненужных точек с запятой. Преимущества Groovy: Поддерживает как статическую, так и динамическую типизацию Поддержка существующих библиотек Java Сценарии Groovy могут иметь операторы без объявлений классов Легко интегрируется с существующими приложениями Java Поддержка списков, карт, регулярных выражений 8. Bash Язык сценариев Bash также известен как Bourne Again Shell. Это язык программирования сценариев оболочки, где команды оболочки выполняются через сценарий оболочки с расширением .sh. Эти команды оболочки используются на терминале с интерпретатором оболочки. В сценарии оболочки bash необходимо добавить полный путь к исполняемому двоичному файлу bash. Преимущества Bash: Самый простой способ автоматизации повседневных задач Кроме односимвольных параметров командной строки оболочки, она также поддерживает многосимвольные Выполняет все файлы запуска при запуске системы Соответствует стандарту оболочки и инструментов IEEE POSIX P1003.2/ISO 9945.2 9. PowerShell Windows PowerShell - оболочка командной строки, созданная Microsoft. Системные администраторы главным образом используют его для администрирования ОС Windows и приложений. Он построен на платформе .NET. Команды, используемые в Windows PowerShell, называются командлетами. Преимущества PowerShell: Очень легко для изучения и внедрения Предоставляет объектно-ориентированные языковые функции Простая автоматизация множества задач администрирования Нет необходимости определять тип переменной в PowerShell Позволяет выполнять задания в фоновом режиме на локальных или удаленных компьютерах Использование фоновой интеллектуальной службы передачи (BITS) поддерживает передачу файлов Написанные сценарии можно использовать повторно
img
Метрические веса TOS K1 K2 K3 K4 K5, выданные командой в режиме конфигурации маршрутизатора EIGRP, может быть использована для установки K-значений, используемых EIGRP в своем расчете. Параметр TOS был предназначен для использования маркировки качества обслуживания (где TOS обозначает тип служебного байта в заголовке IPv4). Однако параметр TOS должен быть равен 0. На самом деле, если вы введете число в диапазоне 1 - 8 и вернетесь назад, чтобы изучить свою текущую конфигурацию, вы обнаружите, что Cisco IOS изменила это значение на 0. Пять оставшихся параметров в команде metric weights - это пять K-значений, каждое из которых может быть задано числом в диапазоне от 0 до 255. Предыдущие статьи из цикла про EIGRP: Часть 1. Понимание EIGRP: обзор, базовая конфигурация и проверка Часть 2. Про соседство и метрики EIGRP Следующие статьи из цикла: Часть 3. Конвергенция EIGRP – настройка таймеров Часть 4. Пассивные интерфейсы в EIGRP Часть 5. Настройка статического соседства в EIGRP Часть 6. EIGRP: идентификатор роутера и требования к соседству Например, представьте, что в нашем проекте мы обеспокоены тем, что нагрузка на наши линии может быть высокой в разы, и мы хотим, чтобы EIGRP учитывал уровень насыщения линии при расчете наилучшего пути. Изучая полную формулу расчета метрики EIGRP, мы замечаем, что наличие ненулевого значения для K2 приведет к тому, что EIGRP будет учитывать нагрузку. Поэтому мы решили установить K2 равным 1, в дополнение к K1 и K3, которые уже установлены в 1 по умолчанию. Значения К4 и К5 сохранится на уровне 0. В приведенном ниже примере показано, как можно настроить такой набор K-значений. OFF1#conf term Enter configuration commands, one per line. End with CNTL/Z . OFF1(config)#router eigrp 1 OFF1(config-router)#metric weights 0 1 1 1 0 0 OFF1(config-router)#end Первый 0 в команде metric weights 0 1 1 1 0 0, показанной в приведенном выше примере, задает значение TOS равное 0. Следующие пять чисел задают наши пять K-значений: K1 = 1, K2 = 1, K3 = 1, K4 = 0, K5 = 0. Этот набор K-значений теперь будет учитывать не только пропускную способность и задержку, но и нагрузку при выполнении расчета метрики. Однако есть проблема. Обратите внимание на сообщения консоли, появляющиеся после нашей конфигурации. Оба наших соседства были разрушены, потому что маршрутизатор OFF1 теперь имеет другие K-значения, чем маршрутизаторы OFF2 и OFF3. Напомним, что соседи EIGRP должны иметь соответствующие K-значения, а это означает, что при изменении K-значений на одном EIGRP-спикер маршрутизаторе, вам нужен идентичный набор K-значений на каждом из его соседей EIGRP. Как только вы настроите соответствующие K-значения на этих соседях, то каждый из этих соседей должен соответствовать K-значениям. Как вы можете видеть, в большой топологии может возникнуть значительная административная нагрузка, связанная с манипуляцией K-значением. Преемник и возможные маршруты преемников Одна из причин, по которой EIGRP быстро восстанавливает соединения в случае сбоя маршрута, заключается в том, что EIGRP часто имеет резервный маршрут, готовый взять на себя управление, если основной маршрут уходит в down. Чтобы убедиться, что резервный маршрут не зависит от основного маршрута, EIGRP тщательно проверяет резервный маршрут, убедившись, что он соответствует условию осуществимости EIGRP. В частности, условие осуществимости гласит: Маршрут EIGRP является возможным маршрутом-преемником, если его сообщенное расстояние (RD) от нашего соседа меньше возможного расстояния (FD) маршрута-преемника. Например, рассмотрим топологию, показанную на следующем рисунке, и соответствующую конфигурацию, приведенную ниже. Обратите внимание, что сеть 10.1.1.8/30 (между маршрутизаторами OFF2 и OFF3) доступна из OFF1 через OFF2 или через OFF3. Если маршрутизатор OFF1 использует маршрут через OFF2, он пересекает канал связи 1 Гбит/с, чтобы достичь целевой сети. Однако маршрут через OFF3 заставляет трафик пересекать более медленное соединение со скоростью 100 Мбит/с. Поскольку EIGRP учитывает пропускную способность и задержку по умолчанию, мы видим, что предпочтительный маршрут проходит через маршрутизатор OFF2. Однако, что делать, если связь между маршрутизаторами OFF1 и OFF2 обрывается? Есть ли возможный преемственный маршрут, который может почти сразу заработать? Опять же, мы видим, что маршрутизатор OFF1 будет использовать возможный маршрут преемника через маршрутизатор OFF3. Однако, прежде чем мы убедимся в этом, мы должны подтвердить, что путь через OFF3 соответствует условию осуществимости. Возможное условие преемника выполнено на маршрутизаторе OFF1 Просто в силу того, что маршрут через маршрутизатор OFF3 (то есть через 10.1.1.6) появляется в выходных данных команды show ip eigrp topology, выполненной на маршрутизаторе OFF1, мы делаем вывод, что путь через OFF3 действительно является возможным маршрутом-преемником. Однако давайте рассмотрим выходные данные немного более внимательно, чтобы определить, почему это возможный маршрут-преемник. Во-первых, рассмотрим запись из выходных данных в приведенном выше примере, идентифицирующую последующий маршрут (то есть предпочтительный маршрут): via 10.1.1.2 (3072/2816), GigabitEthernet0/1 Часть выходных данных via 10.1.1.2 говорит, что этот маршрут указывает на адрес следующего прыжка 10.1.1.2, который является маршрутизатором OFF2. На интерфейсе GigabitEthernet0/1 часть выходных данных указывает, что мы выходим из маршрутизатора OFF1 через интерфейс Gig0/1 (то есть выходной интерфейс). Теперь давайте рассмотрим эти два числа в скобках: (3072/2816). Стоимость 2816 называется зафиксированная дистанция (reported distance (RD). В некоторых литературных источниках это значение также называется advertised distance (AD). Эти термины, синонимы, относятся к метрике EIGRP, сообщенной (или объявленной) нашим соседом по EIGRP. В данном случае значение 2816 говорит нам, что метрика маршрутизатора OFF2 (то есть расстояние) до cети 10.1.1.8/30 равна 2816. Значение 3072 на выходе - это допустимое расстояние маршрутизатора OFF1 (FD). FD вычисляется путем добавления RD нашего соседа к метрике, необходимой для достижения нашего соседа. Поэтому, если мы добавим метрику EIGRP между маршрутизаторами OFF1 и OFF2 к RD маршрутизатора OFF2, мы получим FD (то есть общее расстояние), необходимое для того, чтобы OFF1 добрался до 10.1.1.8/30 через маршрутизатор OFF2. Кстати, причина, по которой маршрутизатор OFF1 определяет наилучший путь к сети 10.1.1.8/30, - это via via router OFF2 (то есть 10.1.1.2) В отличие от маршрутизатора OFF3 (то есть 10.1.1.6), потому что FD пути через OFF1 (3072) меньше, чем FD пути через OFF2 (28,416). Далее рассмотрим запись для возможного последующего маршрута из приведенного выше примера: via 10.1.1.6 (28416/2816), GigabitEthernet0/2 Часть выходных данных via 10.1.1.6 говорит, что этот маршрут указывает на адрес следующего прыжка 10.1.1.6, который является маршрутизатором OFF3. На интерфейсе GigabitEthernet0/2 часть результатов показывает, что мы выходим из маршрутизатора OFF1 через интерфейс Gig0/2. Эта запись имеет FD 28 416 и RD 2816. Однако прежде, чем EIGRP просто слепо сочтет этот резервный путь возможным преемником, он проверяет маршрут на соответствие условию осуществимости. В частности, процесс EIGRP на маршрутизаторе OFF1 запрашивает, является ли RD от маршрутизатора OFF3 меньше, чем FD последующего маршрута. В этом случае RD от маршрутизатора OFF3 составляет 2816, что действительно меньше, чем FD преемника 3072. Поэтому маршрут через маршрутизатор OFF3 считается возможным преемником маршрута. Чтобы утвердить эту важную концепцию, рассмотрим топологию, показанную ниже. Процесс EIGRP на маршрутизаторе OFF1 изучил три пути для достижения сети 10.1.1.0/24. Однако далее EIGRP должен определить, какой из этих путей является маршрутом-преемником, какие (если таковые имеются) пути являются возможными маршрутами-преемниками, а какие (если таковые имеются) пути не являются ни преемником, ни возможным маршрутом-преемником. Результаты расчетов EIGRP приведены в таблице ниже. Примеры расчетов Feasible Successor Используя приведенную выше таблицу в качестве рассмотрения, сначала рассмотрим путь маршрутизатора OFF1 к сети 10.1.1.0/24 через маршрутизатор OFF2. С точки зрения маршрутизатора OFF2, расстояние до сети 10.1.1.0/24 - это расстояние от OFF2 до OFF5 (которое равно 5000) плюс расстояние от OFF5 до сети 10.1.1.0/24 (которое равно 1000). Это дает нам в общей сложности 6000 для расстояния от маршрутизатора OFF2 до сети 10.1.1.0/24. Это расстояние, которое маршрутизатор OFF2 сообщает маршрутизатору OFF1. Таким образом, маршрутизатор OFF1 видит RD 6000 от маршрутизатора OFF2. Маршрутизатор OFF1, затем добавляет расстояние между собой и маршрутизатором OFF2 (который равен 10 000) к RD от OFF2 (который равен 6000), чтобы определить его FD для достижения сети 10.1.1.0/24 составляет 16 000 (то есть 10 000 + 6000 = 16 000). Процесс EIGRP на маршрутизаторе OFF1 выполняет аналогичные вычисления для путей к сети 10.1.1.0/24 через маршрутизаторы OFF3 и OFF4. Ниже приведены расчеты, которые привели к значениям, приведенным в таблице. Затем маршрутизатор OFF1 проверяет результаты этих вычислений и определяет, что кратчайшее расстояние до сети 10.1.1.0/24 проходит через маршрутизатор OFF2, поскольку путь через OFF2 имеет самый низкий FD (16 000). Этот путь, определяемый как кратчайший, считается следующим маршрутом. Затем маршрутизатор OFF1 пытается определить, соответствует ли любой из других маршрутов условию выполнимости EIGRP. В частности, маршрутизатор OFF1 проверяет, чтобы увидеть, что RD от маршрутизаторов OFF3 или OFF4 меньше, чем FD последующего маршрута. В случае OFF3 его RD в 11 000 действительно меньше, чем FD последующего маршрута (который составляет 16 000). Таким образом, путь к сети 10.1.1.0 /24 через OFF3 квалифицируется как возможный маршрут-преемник. Однако маршрут через OFF4 не подходит, потому что RD OFF4 из 18 000 больше, чем 16 000 (FD последующего маршрута). В результате путь к сети 10.1.1.0/24 через маршрутизатор OFF4 не считается возможным маршрутом-преемником. Мы изучили K - значения, теперь почитайте про конвергенцию EIGRP и настройку таймеров
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59