По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Данная статья посвящена, наверное, самой сложной части начальной части изучения Linux - правам доступа. В данной статье будет рассказано о правах доступа, владельцах файлов, папок. Цели статьи: Просматривать и изменять владельцев объектов. Устанавливать правила доступа к объектам. Понимать право “Execute” Основные команды для работы с правами доступа: chown – установка владельца chgrp – установка группы владельца chmod – установка прав доступа В Windows у нас есть только один владелец файла или папки. Это можно посмотреть в свойствах объекта на вкладке безопасность, дополнительно и там же мы можем сменить владельца. Владелец в Windows по умолчанию обладает полными правами на объект. В Linux все происходит немного по-другому: Любой объект моет иметь своего владельца и группу владельцев, и кроме этого для объекта существуют все остальные пользователи в системе. Это самое существенное различие, что может быть владелец и группа владельцев. И так у меня есть пользователь petya и пользователь siadmin. Теперь посмотрим информацию по этим двум пользователям. Чтобы посмотреть воспользуемся командой id siadmin и id petya. У моего пользователя есть uid, который говорит, что я siadmin и вхожу в группу siadmin. Когда мы создаем нового пользователя группа по умолчанию совпадает с именем пользователя. Т.е каждый пользователь по умолчанию входит в свою собственную группу. Для пользователя petya я создал группу не по его имени. Я создал группу testusers и включил данного пользователя в данную группу и установил данную группу по умолчанию для данного пользователя. Я нахожусь в домашней папке. Набрав команду ls –l мы можем посмотреть список каталогов и файлов, у каждого из них есть владелец и группа владельцев. Эти данные указаны в колонках. Для файла test1.txt владельцем является root и группа владельцев root. Я создал папку Folder и файл test2.txt и назначил владельца и группу владельцев, согласно картинке. Для изменения данных параметров используется команда chown. Данную команду необходимо применять с повышением в привилегиях, через команду sudo. Например, изменим владельца для файла test1.txt. команда будет выглядеть так sudo chown petya test1.txt. Пароль не запросило, т.к я уже его вводил. Как мы видим все успешно отработало. Если раньше был владелец root, то теперь мы видим petya. Для изменения группы мы так же можем воспользоваться командой sudo chgrp testusers test1.txt. Данная команда chgrp используется редко, т.к вполне достаточно знать команду chown. Данная команда умеет менять в том числе и группу. Простой пример изменим группу используя команду chown :testusers file.txt. Просто перед группой ставим знак : который и говорит, что надо заменить группу на указанную. А можно сделать сразу 2 действия chown petya:testusers file1.txt Немного сумбура вносит, что у пользователя группа по умолчанию совпадает с именем пользователя. Но это стандартное поведение Linux, который так заводит группу. Даже суперпользователь root имеет свою группу root. При создании пользователя petya был принудительно включен в группу testusers и она была выставлена по умолчанию для данного пользователя. Еще есть важный момент, который необходимо упомянуть. Это рекурсивное выставление владельцем или группы владельцев на папки или файлы. Т.е если у нас есть папка родительская и в ней дочерние папки и файлы, а то и несколько вложений, а мы хотим изменить владельца или группу владельцев рекурсивно вниз, то команду chown необходимо использовать с ключем –R. Пример: sudo chown –R siadmin:testusers Folder Права доступа Далее вернемся к самой первой картинке. На картинке добавлены подписи на английском языке. Это сделано, для большей наглядности. Потому, что сейчас будем раздавать права на объекты файловой системы файлы, папки и другие объект. Следовательно, права будут присваиваться владельцам, группе владельцев и все остальные. Права для владельцев – это user - (u), права для группы владельцев group - (g), Права для всех остальных other - (o). Для того, чтобы далее разбираться с темой прав, надо запомнить вот такую табличку. В классическом Linux, есть 3 вида доступа к объекту, это право на чтение, право на запись и право на выполнение и различные комбинации из этих прав. Заглавные буквы на верху таблицы отвечают за какое-либо право. Цифрами обозначены значения данных прав. Если мы даем право на чтение, то оно обозначается r--, если чтение и запись то rw-, если даем все права то rwx. Мы можем объединять данные права, как видите в табличке различные комбинации указаны. Всего 8 комбинаций от "нет прав", до "полных прав". Так же данная комбинация может назначаться в виде цифр. Т.е на какой то файл у такого товарища доступ 5, это значить что данный товарищ имеет право читать файл и запускать на выполнение. Посчитать очень просто чтение это - 4 , а выполнение – это 1, а в сумме будет 5 или по другому r-x. Следовательно мы можем назначать, как в цифровом, так и в символьном варианте права. Еще один не маловажный момент мы назначаем права на файл, сразу для всех видов пользователей. Следовательно, указывая права, мы их сразу задаем для владельца, для группы владельца и всех остальных. Права мы можем назначать. Точно так же как на картинке символами rwx или цифрами, согласно табличке. Для лучшего понимания пример: Chmod 750 script - полные права владельцу, чтение и выполнение группе владельца и ничего всем остальным. Когда мы просматриваем права на объекты мы видим символьные обозначения, а там, где нет символа ставится прочерк, который означает, что данное право отсутствует. Право <<rwx rw- r-->> script - полные права владельцу, чтение и запись группе владельца, чтение остальным. Чтобы легче было определять права на объект надо мысленно разделить на блоки по 3 символа. Первый блок — это Владелец, 2-й Блок — это группа владельца и 3-й блок — это другие пользователи. Сhmod u+w script - дать право записи владельцу. Chmod ugo-x script - отобрать у всех право исполнения файла. Посмотреть, какие объекты находятся в директории и их права можно командой ls –la. Так же мы видим владельца и группу владельца. Теперь мы можем понимать первую строчку. Вывод из всего этого, напрашивается следующий. Владелец у объекта файловой системы может быть только один. В группу testusers или другую мы можем добавить кого угодно и они будут следовательно иметь права, как группа владельцев. И, следовательно, все остальные пользователи, т.е не владелец и не входящие в группу, будут относится к категории всех остальных пользователей. Получается Linux нам дает разбить всех на три группы и в соответствии с этим назначить различные права, а Windows ведет себя по-другому и там можно более гибко задавать права. Мы можем создать 100 пользователей и каждому из них дать какие-то свои уникальные права. В Linux тоже это возможно с помощью разных ACL (Access Control List - лист доступа), но это не входит в базовые понятия, которые мы разбираем в рамках данной статьи. Можно заметить ,что для папки спереди появляется символ d. Это d – directory каталог. Может появляться l – link – ссылка и.т.д. Следовательно, можно убирать права указывая у кого, например, забрать выполнение chmod ugo-x test1.txt или мы можем добавить владельцу chmod u+x test1.txt. И третий вариант изменения прав на файл - это полностью перезаписать права на объект chmod 640 test1.txt. Разберемся с правом на execute – выполнение. Понятно становится это права, когда мы имеет дело с каким-то скриптом или бинарником или программой исполняемой. Так же у нас данное право может назначаться на каталог, а каталог мы исполнить не можем. Но тут есть интересный момент, если у вас будет на папку разрешение только на чтение и запись, прочитать папку, переименовать ее т.е поработать с наименованием папки, но в глубь папки вы не сможете зайти. Чтобы зайти во внутрь папки необходимо право execute – т.е выполнение ее. Маска создания файлов и папок В данной части статьи рассмотрим следующий вопрос: Понимание принципов работы и управления масками создания файлов и папок. Основные понятия: umask – маска создания файлов и папок suid – бит запуска от имени владельца sgid – бит запуска от имени группы владельцев sticky – бит защиты содержимого Первое понятие umask - user creation mask - т.е маска с которой создается новая папка или файл, это то с какими правами по умолчанию будут создаваться папки и файлы для данного пользователя. В том случае если не создано каких-то особенных настроек наследования папки. suid – set user id, который позволяет, если установлен на исполняемый файл, то любой пользователь, который запускает, получает права определенные для владельца данного файла. По-другому, позволяет использовать права владельца данного файла, происходит некая подмена вас на владельца этого файла. sgid – set user id, который позволяет, если установлен на исполняемый файл, то любой пользователь, который запускает, получает права определенные для группы владельца данного файла. По-другому, позволяет использовать права группы владельца данного файла, происходит некая подмена вас на пользователя входящего в группу владельца этого файла. Маска это такая интересная штука, которая указывает права по–умолчанию. Она рассчитывается с помощью вычитания из максимальных прав. Примеры вычисления показаны на картинке. Посмотрим, как выглядит это в консоли. Создадим текстовый файл от имени стандартного пользователя touch test10.txt. Мы видим права, которые были выданы по умолчанию 664, соответственно я являюсь владельцем и моя группа. Создадим папку mkdir TestFolder. Выданы права по умолчанию 775. Теперь посмотрим правило действующее. Почему создаются объекты именно с такими правами. Этот параметр находится в профиле в старых версиях, сейчас он перенесен и за данный параметр отвечает утилита pam_umask. Если мы откроем мануал по данной утилите, то мы увидим, что данный параметр находится в /etc/login.defs Видим, что значение umask = 022. – это значение, которое идет по умолчанию во всех дебиан подобных операционных системах. Введем новое значение umask 075. Создадим новый файл touch test20.txt. Получаем права 602. После перезагрузки маска изменится на маску по умолчанию, чтобы маску нужную зафиксировать, необходимо отредактировать файл /etc/login.defs. Следовательно, для нашего пользователя значить маска изменится с 022 на ту маску, которую там пропишем. Нужно обратить внимание, что при создании папки права на выполнение по умолчанию выдаются, а на файл нет. Это связанно с тем, что без данных прав в данную папку невозможно будет зайти, а с файла убираются в целях защиты. Например, если вдруг окажется, что файл – это вредоносный код. Suid, sgid, sticky Рассмотрим оставшийся вопрос. Зачем нужны suid, sgid и sticky, биты и их установка. Suid – устанавливается для файлов. Sgid – устанавливается для файлов и для папок Sticky – устанавливается для папок. У них у всех есть цифровые значения. Их можно назначать точно так же, как и права, можно назначать через rwx или цифирные сочетания, а также т.к есть цифирные обозначения их можно комбинировать. Если мы установили 6 то мы установили suid и sgid. Этот бит через цифры ставится, точно так же, как и права, только ставим дополнительную цифру перед цифрами, означающими права. Так же эти биты можно ставить, через буквы: Chmod u+s script - установка suid Chmod g+s script - установка sgid Chmod o+t script - установка sticky Как мы видим suid добавляется к правам владельца, sguid прибавляется к правам группы владельца. Sticky добавляется к правам всем остальным. Как мы видим создан файл script.run с правами 755 и папка TestFolder 755. Установим suid бит на файл script.run. В настоящее время данный файл может выполнить любой человек. Изменим права на 770 - sudo chmod 770 script.run. Переключимся под пользователя, который не входит в группу siadmin. Например, пользователь su petya. Можно конечно добавить права пользователю petya, но иногда нужно, чтобы файлик запустился из-под Владельца файла. Даже если будут стоять разрешение на запуск данного файла и будет стоять suid, то файл запуститься из под Владельца. Устанавливаем sudo chmod u+s script.run и видим, во-первых, теперь у нас файлик подкрашен красным, данное выделение делает оболочка. Во-вторых, когда мы смотрим права, то видим x заменился на s. И теперь, кто бы не запускал файл, он всегда будет запускать от имени Владельца. Можно подробнее посмотреть через команду stat script.run, которая показывает полную статистику по файлу. Мы можем увидеть, что права стали теперь 4770. Вот эта самая цифра 4 впереди и говорит, что установлен suid бит. Мы аналогично можем убрать suid бит sudo chmod u-s script.run. Все вернулось на свои места. Для чего это нужно, есть некоторые программы которым необходим доступ к аппаратной части. Например ping, который проверяет связь, ему нужен доступ к сетевой карте. По умолчанию права на ping есть только у root, но если мы хотим чтобы все пользователи могли использовать данную утилиту, то мы должны разрешить ее запуск от имени root. Фактически та же самая функция, как и в операционной системе Windows запустить от пользователя. Аналогичным образом работает и sgid, если нам необходимо запускать от группы владельца, то устанавливаем этот бит и можем пользоваться - sudo chmod g+s script.run. Результат наших действий подсвечен желтым. Можно одновременно оба бита установить, следовательно, при выполнении будет и владелец заменен и группа заменена. Это имеет смысл делать, только для исполняемых файлов. Устанавливать на обычный текстовый файл данные биты, смысла конечно же нет. Очень редко, когда применяю оба бита сразу, такое сочетание необходимо если уж сильно кто-то заморачивается с безопасностью или требуется ювелирная настройка прав доступа и запуска. Теперь посмотрим, что с папкой происходит. На папку можно устанавливать sgid и sticky биты. Если мы устанавливаем групповой бит, то он для папок будет менять владельцев всех вложенных файлов на группу владельцев этой папки, т.е это один из вариантов наследования. Создадим файл от пользователя siadmin. Touch file.txt в текущей папки он создается со стандартными правами. Установим sgid на папку TestFolder - Sudo chmod g+s TestFolder. Создадим в ней такой же файл sudo touch TestFolder/file.txt Как мы видим группа осталась прежней. Если пользователю root сказать создать файл в текущем каталоге, то владелец и группа будут root. Теперь про sticky бит. Если установлен sticky бит на папку, то только Владелец данной папки или суперпользователь может удалить из нее файлы. Создадим папку Folder, поставим на нее максимальные права 777. И внутри создадим файл file.txt. Файлик с правами по умолчанию. Поменяем права на данный фал 666. Права на чтение и запись появились теперь у всех. Переключимся на другого пользователя, например, petya. Перейдем в домашний каталог пользователя siadmin - cd /home/siadmin/Folder. Внутри файл txt, который мы создавали. И удаляем rm file.txt. Файл удалился без проблем. Допустим мы хотим защитить от удаления, следовательно, необходимо установить sticky бит - sudo chmod o+t Folder Как видим появилась буква t на месте прав для всех остальных. Создадим еще раз файл touch file1.txt. Даем на данный файл всем права 666. А далее перелогиниваемся под petya. Заходим в папку /home/siadmin/Folder и командой rm file1.txt пытаемся удалить, на что получаем отказ от системы. Несмотря на права 666, система не дает удалить файл. Следовательно, удалить все вложенные объекты может либо root или Владелец папки.
img
Машинное обучение - это метод анализа данных, который автоматизирует построение аналитической модели. Это отрасль искусственного интеллекта, основанная на идее, что системы могут обучаться на основе данных, выявлять закономерности и принимать решения с минимальным вмешательством человека. Эволюция машинного обучения Из-за новых вычислительных технологий машинное обучение сегодня отличается от машинного обучения в прошлом. Оно основывается на распознавании образов и теории, что компьютеры могут обучаться, не будучи запрограммированы для выполнения конкретных задач; исследователи, интересующиеся искусственным интеллектом, хотели посмотреть, смогут ли компьютеры обучаться, основываясь на базе данных. Итеративный аспект машинного обучения важен, так как модели, подвергающиеся воздействию новых данных, способны самостоятельно адаптироваться. Они учатся от предыдущих вычислений для получения надежных и воспроизводимых решений и результатов. Хотя многие алгоритмы машинного обучения существуют уже давно, способность автоматически применять сложные математические вычисления к объемным данным - снова и снова, все быстрее и быстрее - это новейшая разработка. Вот несколько широко разрекламированных примеров приложений машинного обучения, с которыми вы можете быть знакомы: Сильно раскрученная, самоуправляемая машина Google. Суть машинного обучения. Онлайн рекомендации, такие, как у Amazon и Netflix. Приложения машинного обучения для повседневной жизни. Знание того, что клиенты говорят о вас в соцсетях. Машинное обучение в сочетании с созданием лингвистических правил. Обнаружение мошенничества. Одно из наиболее очевидных, важных применений в современном мире. Почему машинное обучение важно? Возобновление интереса к машинному обучению обусловлено теми же факторами, которые сделали анализ данных и Байесовский анализ более популярными, чем когда-либо. Растущие объемы и разнообразие доступных данных, вычислительная обработка, которая является более дешевой и мощной; доступное хранилище для хранения данных - все эти аспекты означают, что можно быстро и автоматизировано производить модели, которые могут анализировать более объемные и сложные данные и обеспечивать быстрые и более точные результаты - даже на очень больших объемах. А благодаря созданию точных моделей у организации больше шансов определить выгодные возможности или избежать неизвестных рисков. Что необходимо для создания эффективных систем машинного обучения? Возможности подготовки данных. Алгоритмы - базовый и продвинутый. Автоматизация и итерационные процессы. Масштабируемость. Ансамблевое моделирование. Интересные факты В машинном обучении, цель называется - «ярлык». В статистике, цель называется «зависимой переменной». Переменная в статистике называется – «функция в машинном обучении». Преобразование в статистике называется – «создание функции в машинном обучении». Кто использует машинное обучение? Большинство отраслей промышленности, работающих с большими объемами данных признали ценность технологии машинного обучения. Подбирая идеи из этих данных - часто в режиме реального времени - организации способны более эффективно работать или получить преимущество перед конкурентами. Финансовые услуги Банки и другие предприятия финансовой индустрии используют технологию машинного обучения для двух ключевых целей: для выявления важных данных и предотвращения мошенничества. Они могут определить инвестиционные возможности или помочь инвесторам узнать, когда торговать. Интеллектуальный анализ данных может также идентифицировать клиентов с профилями высокого риска или использовать кибер-наблюдение, чтобы точно определить признаки мошенничества. Правительство Правительственные учреждения, такие как общественная безопасность и коммунальные службы, особенно нуждаются в машинном обучении, поскольку у них есть несколько источников данных, из которых можно получить информацию для полного понимания. Например, анализ датчика данных определяет пути повышения эффективности и экономии средств. Машинное обучение также может помочь обнаружить мошенничество и минимизировать кражу личных данных. Здравоохранение Машинное обучение является быстро развивающимся направлением в отрасли здравоохранения, благодаря появлению переносных устройств и датчиков, которые могут использовать данные для оценки состояния здоровья пациента в режиме реального времени. Эта технология также может помочь медицинским экспертам анализировать данные для выявления тенденций или «красных флажков», которые могут привести к улучшению диагностики и лечения. Розничная торговля Веб-сайты, рекомендующие товары, которые могут вам понравиться на основе предыдущих покупок, используют машинное обучение для анализа вашей истории покупок. Ритейлеры полагаются на машинное обучение для сбора данных, их анализа и использования для персонализации процесса совершения покупок, проведения маркетинговой кампании, оптимизации цен, планирования поставок товаров, а также для понимания потребностей клиентов. Нефть и газ Поиск новых источников энергии. Анализ минералов в почве. Прогнозирование неисправности датчика НПЗ. Оптимизация распределения нефти, чтобы сделать ее более эффективной и рентабельной. Количество вариантов использования машинного обучения для этой отрасли огромно - и продолжает расти. Транспорт Анализ данных для определения закономерностей и тенденций является ключевым для транспортной отрасли, которая полагается на повышение эффективности маршрутов и прогнозирование потенциальных проблем для повышения прибыльности. Анализ данных и аспекты моделирования машинного обучения являются важными инструментами для компаний доставки, общественного транспорта и других транспортных организаций. Каковы популярные методы машинного обучения? Двумя наиболее широко распространенными методами машинного обучения являются контролируемое обучение и неконтролируемое обучение, но существуют и другие методы машинного обучения. Вот обзор самых популярных типов. Контролируемое обучение Алгоритмы контролируемого обучения изучаются с использованием маркированных примеров, таких как ввод, в котором известен желаемый результат. Например, единица оборудования может иметь точки данных, помеченные как «F» (ошибка) или «R» (работа). Алгоритм обучения получает набор входных данных вместе с соответствующими правильными выходными данными, а алгоритм обучается путем сравнения своих фактических выходных данных с правильными выходными данными, чтобы найти ошибки. Затем он соответствующим образом модифицирует модель. С помощью таких методов, как классификация, регрессия, прогнозирование и повышение градиента, контролируемое обучение использует шаблоны для прогнозирования значений метки на дополнительных немаркированных данных. Контролируемое обучение обычно используется в приложениях, где исторические данные предсказывают вероятные будущие события. Например, он может предвидеть, когда транзакции по кредитным картам могут быть мошенническими или какой клиент страхования может подать иск. Полуконтролируемое обучение Полуконтролируемое обучение используется для тех же приложений, что и контролируемое обучение. Но для обучения оно использует как помеченные, так и непомеченные данные, как правило, это небольшой объем помеченных данных с большим количеством немеченых данных (поскольку немеченые данные дешевле и требуют меньше усилий для их получения). Этот тип обучения может использоваться с такими методами, как классификация, регрессия и прогнозирование. Полуконтролируемое обучение полезно, когда стоимость, связанная с маркировкой, слишком высока, чтобы учесть полностью помеченный процесс обучения. Ранние примеры этого включают идентификацию лица человека по веб-камере. Неконтролируемое обучение Неконтролируемое обучение используется в отношении данных, которые не имеют исторических меток. Система не сказала «правильный ответ». Алгоритм должен выяснить, что показывается. Цель состоит в том, чтобы исследовать данные и найти некоторую структуру внутри. Неуправляемое обучение хорошо работает на транзакционных данных. Например, он может идентифицировать сегменты клиентов со схожими признаками, которые затем могут обрабатываться аналогично в маркетинговых кампаниях. Или он может найти основные атрибуты, которые отделяют сегменты клиентов друг от друга. Популярные методы включают самоорганизующиеся таблицы, отображение ближайших соседей, кластеризацию k-средств и разложение по сингулярным числам. Эти алгоритмы также используются для сегментирования текстовых тем, рекомендации элементов и резко отличающихся значений данных. Усиленное обучение Усиленное обучение часто используется для робототехники, игр и навигации. Благодаря обучению с подкреплением алгоритм с помощью проб и ошибок обнаруживает, какие действия приносят наибольшее вознаграждение. Этот тип обучения состоит из трех основных компонентов: агент (учащийся или лицо, принимающее решения), среда (все, с чем взаимодействует агент) и действия (что может делать агент). Цель состоит в том, чтобы агент выбирал действия, которые максимизируют ожидаемое вознаграждение в течение заданного периода времени. Агент достигнет цели намного быстрее, следуя хорошей политике. Таким образом, цель усиленного обучения состоит в том, чтобы изучить лучшую политику. Каковы различия между интеллектуальным анализом данных, машинным обучением и глубоким обучением? Хотя все эти методы имеют одну и ту же цель - извлекать идеи, шаблоны и зависимости, которые можно использовать для принятия решений - у них разные подходы и возможности. Сбор данных (Data Mining) Интеллектуальный анализ данных можно рассматривать как набор множества различных методов для извлечения информации из данных. Он может включать традиционные статистические методы и машинное обучение. Интеллектуальный анализ применяет методы из разных областей для выявления ранее неизвестных шаблонов из данных. Он может включать в себя статистические алгоритмы, машинное обучение, анализ текста, анализ временных рядов и другие области аналитики. Интеллектуальный анализ данных также включает изучение, практику хранения и обработки данных. Машинное обучение Основное отличие машинного обучения заключается в том, что, как и в статистических моделях, цель состоит в том, чтобы понять структуру данных - подогнать теоретические распределения к хорошо понятным данным. Таким образом, под статистическими моделями стоит теория, которая математически доказана, но для этого необходимо, чтобы данные также соответствовали определенным строгим гипотезам. Машинное обучение развивалось на основе способности использовать компьютеры для проверки данных на предмет структуры, даже если у нас нет теории о том, как эта структура выглядит. Испытанием модели машинного обучения является ошибка проверки новых данных, а не теоретическое испытание, которое подтверждает нулевую гипотезу. Поскольку машинное обучение часто использует итеративный подход для изучения данных, обучение может быть легко автоматизировано. Передача через данные проходит, пока не будет найден надежный шаблон. Глубокое изучение (Deep learning) Глубокое обучение сочетает в себе достижения в области вычислительной мощности и специальных типов нейронных сетей для изучения сложных моделей больших объемов данных. В настоящее время методы глубокого обучения подходят для идентификации объектов в изображениях и слов в звуках. В настоящее время исследователи стремятся применить эти успехи в распознавании образов для решения более сложных задач, таких как автоматический перевод языка, медицинские диагнозы и множество других важных социальных и деловых проблем. Как это работает? Чтобы получить максимальную отдачу от машинного обучения, вы должны знать, как сочетать лучшие алгоритмы с подходящими инструментами и процессами. Алгоритмы: графические пользовательские интерфейсы помогают создавать модели машинного обучения и реализовывать итеративный процесс машинного обучения. Алгоритмы машинного обучения включают в себя: Нейронные сети Деревья решений Случайные леса Ассоциации и обнаружение последовательности Градиент повышения и расфасовки Опорные векторные машины Отображение ближайшего соседа K-средства кластеризации Самоорганизующиеся карты Методы локальной оптимизации поиска Максимальное ожидание Многомерные адаптивные регрессионные сплайны Байесовские сети Оценка плотности ядра Анализ главных компонентов Сингулярное разложение Смешанные Гауссовские модели Последовательное сопроводительное построение правил Инструменты и процессы: Как мы уже знаем, это не просто алгоритмы. В конечном счете, секрет получения максимальной отдачи от ваших объемных данных заключается в объединении лучших алгоритмов для поставленной задачи с: Комплексным качеством данных и их управлением GUI для построения моделей и процессов Интерактивным исследованием данных и визуализацией результатов модели Сравнением различных моделей машинного обучения для быстрого определения лучшей Автоматизированной оценкой группы для выявления лучших исполнителей Простым развертыванием модели, что позволяет быстро получать воспроизводимые и надежные результаты Интегрированной комплексной платформой для автоматизации процесса принятия решений
img
Атака MITM обычно выполняется во внутренней корпоративной сети. Злоумышленник использует этот тип атаки с целью перехвата конфиденциальной информации, которая передается между устройствами. Как вы понимаете, «человек посередине» (Man-in-the-middle) — это просто указание на то, где находится злоумышленник. Он располагается между устройством (устройствами) жертвы и получателем. Машина злоумышленника используется для перехвата всех сообщений между жертвой получателем. Большинство пользователей не знают о незащищенных сетевых протоколах, которые используются для передачи их сообщений от источника к получателю. Эти незащищенные протоколы передают сообщения в виде обычного текста, позволяя злоумышленнику перехватить и просмотреть фактические данные. Чтобы лучше понять, как работает MITM-атака, давайте посмотрим на следующий рисунок: Как показано на предыдущем рисунке, если PC1 захочет отправить какие-либо данные через Интернет, они отправляются на шлюз по умолчанию, которым является R1. Кроме того, для всех коммуникаций, которые происходят в локальной сети, устройства пересылают сообщения, используя MAC-адрес назначения, найденный в кадре, а не IP-адрес назначения. IP-адрес назначения важен только тогда, когда сообщение должно быть переадресовано за пределы локальной сети, например, в другую подсеть или удаленную сеть. Следовательно, когда PC1 захочет отправить сообщение через Интернет, он пересылает сообщение на MAC-адрес назначения, известный как BBBB.BBBB.BBBB, который принадлежит R1. Когда R1 должен пересылать какие-либо сообщения (пакеты) на PC1, он будет использовать MAC-адрес назначения AAAA.AAAA.AAAA. Таким образом, изначально сообщения на машину злоумышленника не отправляются. Злоумышленник может использовать уязвимость в протоколе разрешения адресов (Address Resolution Protocol - ARP), чтобы гарантировать, что все сообщения, которыми обмениваются между PC1 и R1, отправляются через его машину, как показано на следующем рисунке: Протокол ARP работает между уровнем 2 (канальный уровень) и уровнем 3 (уровень Интернета) стека протоколов TCP/IP. Он предназначен для преобразования IP-адреса в MAC-адрес потому, что коммутаторы не могут считывать адресацию уровня 3, например IP-адресацию внутри пакета. Коммутаторы могут только читать MAC-адреса и пересылать кадры на основе MAC-адреса назначения, найденного в заголовке кадра уровня 2. По этой причине ARP необходим в любой сети. Когда устройство, такое как PC1, не знает MAC-адрес целевого хоста, такого как R1, оно будет отправлять ARP-запрос в сеть, спрашивая, у кого есть MAC-адрес для конкретного пункта назначения, как показано на следующем рисунке: Запрос ARP отправляется на все устройства. Только устройство, имеющее IP-адрес назначения, ответит ARP-ответом, содержащим его MAC-адрес, как показано на следующем рисунке: Затем MAC-адрес временно сохраняется в кэше ARP исходного устройства, PC1. Исходное устройство затем вставляет MAC-адрес назначения в заголовок кадра уровня 2 перед размещением сообщения в сети. Коммутатор, который получает сообщение от PC1, проверяет MAC-адрес назначения, найденный в заголовке уровня 2, и пересылает сообщение на хост назначения. Злоумышленник может обманом заставить PC1 поверить в то, что он — это R1, а также заставить R1 думать, что он — это PC1. Злоумышленник может притвориться PC1 для R1 и наоборот. С технической точки зрения злоумышленник выдает себя за другую машину в сети — это называется подменой MAC-адресов. Кроме того, злоумышленник отправит безвозмездное сообщение ARP, содержащее ложное сопоставление IP-адресов и MAC-адресов. Каждое сообщение создается специально для PC1 и R1. Безвозмездное сообщение ARP — это ответ, который не был инициирован запросом ARP. Другими словами, это когда одно устройство отправляет обновление ARP без запроса. Это позволяет злоумышленнику выполнять атаку с подменой ARP и отправлять ложные сообщения ARP устройствам, заставляя их вставлять неверные сопоставления IP-адресов в MAC-адреса в их кэш ARP. Это известная уязвимость, обнаруженная в ARP и TCP/IP. На следующем рисунке показано, как злоумышленник отправляет безвозмездное сообщения ARP на PC1 и R1: Это приведет к тому, что весь трафик между PC1 и R1 будет отправлен на атакующую машину, что приведет к атаке MITM. На следующем скриншоте показан пример инструмента тестирования на проникновение, известного как arpspoof, который используется для отправки бесплатных сообщений ARP на хост-устройства в сети для создания атак MITM: Как показано на предыдущем скриншоте, инструмент постоянно заполняет компьютер жертвы (10.10.10.11) и шлюз по умолчанию (10.10.10.1) ложными сведениями о сопоставлении IP-адресов с MAC-адресами. На следующем рисунке показан захват Wireshark, отображающий ложные сообщения ARP, отправляемые по сети: Обратите внимание, как Wireshark выделил сообщения желтым цветом как подозрительные для изучения. Существует множество функций безопасности уровня 2, которые уже предварительно загружены в коммутаторы Cisco IOS, и все они могут быть реализованы специалистом по безопасности. Вот некоторые из этих функций безопасности: Port security: Port security используется для фильтрации неавторизованных MAC-адресов от входа в интерфейс коммутатора. Dynamic ARP Inspection (DAI): DAI проверяет информацию об адресе IP-to-MAC, найденную в пакете, поступающем в коммутатор. Если будет найдено поддельное сообщение, коммутатор отклонит его, чтобы защитить сеть уровня 2. IP Source Guard: это еще одна функция безопасности, которая позволяет устройствам Cisco разрешать в сети только IP-адреса доверенных источников, предотвращая атаки с подменой IP-адресов.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59