По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
  Недавно я просматривал некоторые общедоступные репозитории Google на их GitHub. И я заметил, что у них есть репозиторий для непрерывного фаззинга. Я понятия не имел, что такое фаззинг, не говоря уже о непрерывном.   Что же такое фаззинг? Фаззинг (иногда его называют нечетким тестированием) – это способ автоматического тестирования программного обеспечения. Обычно фаззер вводит в программу большое количество неправильных или случайных входных данных. Таким образом пытаются вызвать сбои, ошибки, утечки памяти и т.д. Обычно фаззинг лучше всего работает с программами, которые принимают входные данные, такие как веб-сайты, которые могут запрашивать ваше имя или возраст. Можно попробовать вводить самые различные строки, чтобы попытаться вызвать какие-то проблемы, например, что-нибудь вроде такого: «Power?????????????????? ? ?h ? ??» (это когда-то вызвало аварийный сбой iOS), «??????h??e???????? ???????N??e??z?????p??????e????r????????d??????i??????a?????n?? ?????h??i??v?????-?????m???i????n???? ????????????f ????????c?????????a?????????s?.?? ?Z????????a?????l?????g????????o??.?», «?» или «undefined». В целом идея фаззинга заключается в том, чтобы попытаться найти пограничные случаи в кодовой базе. Его используют для того, чтобы убедиться, что синтаксический анализ данных, их прием, сохранение и чтение не вызывают ошибок.  Это довольно полноценный тест, поскольку вы можете протестировать весь процесс хранения, например, пробела нулевой длины (U+200B в Юникоде) на своем сайте, чтобы проверить, возникнут ли какие-то проблемы.  Некоторые пытаются внедрить код в поля ввода (это часть фаззинга, которая называется «внедрение кода»), например,  в качестве имени.  Злоумышленники не заинтересованы в том, чтобы вы тестировали нестандартный ввод, так как вы можете обнаружить ошибки, которые нарушают работу приложения, а они могли бы использовать их для кражи данных или повторного сбоя в вашем приложении/сервере.  На GitHub есть список под названием «Big List of Naughty Strings» («Большой список сомнительных строк»). Это список строк, которые с большей долей вероятности вызовут проблемы.  Вы можете взглянуть на некоторые в файлах .json и .txt и почитать некоторые комментарии, чтобы понять, почему именно эти строки вызывают проблемы.  Например, некоторые строки написаны вверх ногами «u?op?p?sd?». Есть строки, которые могут быть помечены как ненормативная лексика или как неприемлемые, но на самом деле они к этому не имеют никакого отношения (это называется проблемой Скантропа). И даже есть такие строки, которые могут раскрыть системные файлы, если они вдруг будут проанализированы плохо настроенным синтаксическим анализатором XML.  Кто использует фаззинг? Как я уже говорил, фаззинг используется в процессе тестирования программного обеспечения для поиска ошибок в ваших программах. Но он также применяется в кибербезопасности и при взломах. Что касается применения в кибербезопасности, то здесь хакеры пытаются пересечь границу доверия. Граница доверия – это место в компьютерных системах, где данные из доверенного источника передаются из одной области в другую.  В качестве примера давайте представим, что вы получаете имя пользователя в клиентской части, убеждаетесь, что оно является допустимым, а затем передаете его на серверную часть. Ваша граница доверия – это воображаемая линия, по которой данные передаются от клиента к серверу.   Если ваша серверная часть просто «доверяет» данным и не проверяет их (поскольку клиент уже проверил их!), то это может стать проблемой. В случае, если хакеры смогут пройти проверку клиента, они станут поставщиками доверенных входных данных и смогут попытаться вставить туда вредоносные строки.  Именно в этой ситуации фаззинг может посодействовать выборочной проверке, чтобы убедиться, что вы можете выявлять эти проблемы. Допустим, кто-то должен был фаззить Google Chrome. Один из способов это сделать – запустить браузер в инструменте отладки для того, чтобы отслеживать команды, которые выполняет Chrome, и профилировать его управление памятью. Позже хакеры направляют программу Chrome, за которой они наблюдают, на один из своих серверов. Их серверы создают миллионы различных веб-страниц, которые Chrome будет загружать. Все эти веб-страницы немного отличаются с точки зрения JS, CSS и HTML. Это нужно для того, чтобы попытаться сломать Chrome, который профилируют хакеры.  Эти хакеры могут осмысленно запускать эти автоматические тесты в течение нескольких месяцев, собирать огромный список журналов Chrome (сбои, любые переполнения памяти и т.д.) и пытаться выяснить, что вызвало сбой.  Просто заставить Chrome «рухнуть» не является их конечной целью. Как только эти хакеры узнают, какие входные данные вызывают сбои, они также могут выяснить, почему эти данные вызывают сбои, и проанализировать, могут ли они использовать эти эксплойты, чтобы исполнить свой зловещий план, или получить доступ к чему-то, к чему доступа у них не должно быть.  На сегодняшний день Google фаззит свои приложения на 30 000 виртуальных машинах! Таким образом, вы вряд ли добьетесь какого-либо успеха, поскольку они очень сильно постарались.  OSS-Fuzz от Google обнаружил более 25 000 ошибок в коде Google Chrome и примерно 22 000 ошибок в других общедоступных кодовых базах, которые используют OSS-Fuzz. Итак, вернемся к основному заголовку. Кто использует фаззинг? Держу пари, что почти все компании, которые должны защищать свои цифровые активы или информацию, либо наймут тестировщиков для фаззинга своих продуктов, либо будут делать это самостоятельно.  Заключение Я надеюсь, что эта статья помогла вам понять, что такое фаззинг и для чего он применяется.  
img
Привет, дорогой читатель! На этапе траблшутинга системные администраторы прибегают к просмотру и анализу лог – файлов Asterisk. В статье поговорим про причины отбоя вызова (hangupcause) в Asterisk, как их найти в лог – файле и что они означают. Поиск Hangupcause Подключаемся к нашему серверу IP – АТС по SSH. Открываем консоль и вводим следующую команду: [root@asterisk ~]# grep -e '[CALLID].*HANGUPCAUSE' /var/log/asterisk/full Здесь CALLID - это идентификатор вызова. Найти его очень просто. В лог – файле введите номер звонящего/вызываемого абонента и найдете примерно вот такую запись (в примере поиск осуществляется по номеру 89123456789): [2017-02-08 18:58:03] VERBOSE[18823][C-00000009] pbx.c: Executing [recordcheck@sub-record-check:11] Goto("Local/89123456789@from-internal-00000007;2", "startrec") in new stack Находим запись выше. Здесь, [C-00000009] - является идентификатором вызова. После того, как Вы нашли hangupcause, его необходимо понять. Переходим к следующему шагу – интерпретация. Все причины отбоя вызова в Asterisk Ниже, в таблице, мы составили причины отбоя вызова и соответствующие для них коды SIP ответов с небольшим описанием: Код отбоя (hangupcause) Полученный SIP - ответ Описание 1 410 Unallocated (unassigned) - неназначенный номер. Данная ошибка указывает, что вызываемый номер назначения не может быть вызван, по причине отсутствия маршрута до него. Как правило, данную ошибку возвращает провайдер телефонных услуг. Например, при звонка зарубеж, данная ошибка может возвращаться из-за отсутствия маршрута к номеру назначения. 2 500 No route to specified transit network - ошибка индицирует о том, что оборудование, сгенерировавшее данную ошибку получило запрос запрос на маршрутизацию вызова через неизвестную ей транзитную сеть. Вполне возможно, что данная сеть в целом не существует. 3 404 No route to destination - чисто "сетевая" ошибка. Обозначает отсутствие коннективити (маршрутизации) между сетями инициатора вызова и вызываемого абонента. 4 500 Send special information tone - вызываемый абонент не может быть вызван по причинам "долгосрочного характера", и звонящий должен получить специальный звуковой тон. 5 500 Misdialled trunk prefix - сигнализирует о том, что к вызываемому номеру был подставлен ошибочный телефонный префикс. 6 500 Channel unacceptable - проблемы на канале связи. Как правило это сетевая проблема. 7 500 Call awarded and being delivered in an established channel - индикация того, что пользователь получил входящий вызов и что пользователь уже имеет аналогичный вызов 8 500 Prefix 0 dialed but not allowed - префикс в начале номер "0" не разрешен 9 500 Prefix 1 dialed but not allowed - префикс в начале номер "1" не разрешен 10 — Prefix 1 not dialed but required - префикс "1" подставлен в начало номера, но не является требованием 11 — More digits received than allowed, call is proceeding - в вызываемом номере передано больше цифр, чем позволено на оборудовании передающим данный код отбоя 16 BYE Normal call clearing - вызов был закончен естественным образом (кто - то из абонентов положил трубку) 17 486 User busy - индицирует, что вызываемый абонент не может принять вызов, так как находится в состоянии "Занят" (есть активный разговор) 18 480 No user responding - вызываемый абонент не ответил на сообщение о вызове (инициации) в течение определенного времени 19 480 T.301 expired: – User Alerted, No answer from user - аппарат вызываемого абонента звонил, но он не ответил на звонок 21 603 Call rejected - вызов отклонен 22 480 Number changed to number in diagnostic field - индицирует о том, что вызываемый номер более не существует. В сообщение так же может быть включен новый номер вызываемого абонента 23 — Reverse charging rejected - вариант, когда за звонок платит принимающая вызов сторона. Данное сообщение обозначает отклонение такого вызова. 24 — Call suspended - оборудование получило запрос на приостановку вызова 25 — Call resumed - вызов возобновлен (продолжение 24 отбоя) 26 500 Non-selected user clearing - пользователю не был назначен входящий вызов 27 404 Destination out of order - данное сообщение индицирует о том, что телефонная сигнализация не может быть доставлена через выбранный NIC (сетевой интерфейс). В данном случае, проблема скорее всего кроется на L1 или на L2 уровне (физический или канальный) 28 484 Invalid number format or incomplete address - неправильный формат вызываемого номера или номер указан не полностью 29 501 EKTS facility rejected by network - проблема на уровне платы - устройство отклонено на уровне сети 30 500 Response to STATUS ENQUIRY - сообщение ответ на запрос о состоянии 31 404 Normal, unspecified - эта причина отбоя используется в случае, если другие причины (более конкретные) не были применены 33 — Circuit out of order - построенный канал связи вышел из строя 34 503 No circuit/channel available - нет доступного для установления соединения канала связи 35 500 Destination unattainable - нет возможности доставить сообщение до получателя 36 500 Out of order - объект функционирует не корректно 37 500 Degraded service - уведомление о том, что сервис находится в некорректном состоянии 38 503 Network out of order - сетевое соединение функционирует не корректно (вероятная проблема на уровне L3) 39 500 Transit delay range cannot be achieved - требуемый диапазон задержки (время обработки, передачи) не может быть достигнут 40 500 Throughput range cannot be achieved - требуемый диапазон пропускной способности (передача сообщения) не может быть достигнута 41 503 Temporary failure - временная неработоспособность сервиса. "Временная" означает то, что пользователь может попробовать еще раз через некоторое время 42 503 Switching equipment congestion - в настоящее время, оборудование коммутации испытывает пиковые значения нагрузки и не может обработать запрос 43 500 Access information discarded - данная причина индицирует о том, что по запросу сеть (L3) не может доставить информацию о доступе к удаленному пользователю 44 503 Requested circuit channel not available - запрошенный канал связи недоступен 45 500 Preempted - данная причина указывает на то, что вызов был прерван 46 500 Precedence call blocked - означает, что вызываемый пользователь занят вызовов с более высоким приоритетом 47 503 Resource unavailable, unspecified - причина, отправляемая в том случае, если ни одна другая не была отправлена 49 500 Quality of service unavailable - использование QoS требование не доступно 50 500 Requested facility not subscribed - пользователь запросил услугу, которую он не может получить по причине отсутствия доступа к ней 51 — Reverse charging not allowed - вариант, когда за звонок платит принимающая вызов сторона не разрешен для данного пользователя 52 — Outgoing calls barred - исходящий вызов запрещен для абонента 53 500 Outgoing calls barred within CUG - данная причина означает, что несмотря то, что пользователь является членом закрытой группы юзеров (CUG - Closed User Groups) для совершения исходящего вызова, ему данная итерация запрещена 54 — Incoming calls barred - входящий вызов запрещен для абонента 55 603 Incoming calls barred within CUG - данная причина означает, что несмотря то, что пользователь является членом закрытой группы юзеров (CUG - Closed User Groups) для приема входящего вызова, ему данная итерация запрещена 56 — Call waiting not subscribed - пользователь не имеет права (не подписан) на услугу "Ожидание вызова" 57 501 Bearer capability not authorized - пользователь запросил расширение пропускной способности канала до оборудования, но не имеет права на подобные итерации 58 501 Bearer capability not presently available - пользователь запросил расширение пропускной способности канала до оборудования, но в данный момент данная функция не доступна 63 503 Service or option not available, unspecified - сообщение сообщает о недоступности услуги в том случае, если другие причины (более конкретные) не были отправлены пользователю 65 501 Bearer service not implemented - служба передачи (переноса) информации не реализована 66 500 Channel type not implemented - устройство, посылающее данную причину не поддерживает указанный типа канала связи 67 — Transit network selection not implemented - не удалось совершить выбор транзитной сети 68 — Message not implemented - данное сообщение не реализовано 69 500 Requested facility not implemented - эта причина указывает на то, что устройство, отсылающее эту причину не поддерживает запрашиваемые дополнительные услуги 70 500 Only restricted digital information bearer capability is available - данное сообщение указывает на то, что пользователь запросил неограниченный доступ к пропускной способности канала связи, но устройство поддерживает только с ограничениями 79 501 Service or option not implemented, unspecified - услуга или опция не реализована (когда другие причины не были отправлены) 81 500 Invalid call reference value - эта причина указывает на то, что устройство, отсылающее эту причину, получило сообщение с идентификатором вызова, который в настоящее время не используется на интерфейсе сети пользователя 82 500 Identified channel does not exist - эта причина указывает на то, что устройство, отсылающее эту причину, получило запрос на использование канала, который не активизирован на сетевом интерфейсе. Например, если пользователь использует в потоке Е1 (PRI) тайм – слоты с 1 по 12, а запросил использовать с 3 по 24 – будет сгенерирована данная причина 83 500 A suspended call exists, but this call identity does not - вызов существует, но отсутствуют идентификаторы для него 84 500 Call identity in use - оборудование получило запрос на приостановление вызова, содержащий идентификатор вызова, под которым вызов уже значится приостановленным 85 500 No call suspended - получен запрос на возобновление вызова с идентификатором звонка, который не числится в списке приостановленных 86 500 Call having the requested call identity has been cleared - получен запрос на возобновление вызова с идентификатором звонка, который был прерван в результате тайм - аута 87 603 Called user not member of CUG - вызываемый абонент не является членом закрытой группы юзеров (CUG - Closed User Groups) 88 404 Incompatible destination - система получила запрос на установление соединения с параметрами, которые не могут быть обслужены 89 — Non-existent abbreviated address entry - не существующий адрес 90 500 Destination address missing, and direct call not subscribed - адрес назначения не указан, а опция директивного вызова недоступна для пользователя 91 500 Invalid transit network selection (national use) - получен индикатор транзитной сети, который имеет неверный формат (в рамках рекомендации Q.931) 92 — Invalid facility parameter 93 Mandatory information element is missing - обязательный элемент информационного сообщения отсутствует 93 500 Message type non-existent or not implemented - получено устройством сообщение не может быть интерпретировано на оборудовании 95 404 Invalid message, unspecified - неправильное сообщение. Используется только тогда, когда другие (более конкретные сообщения) не были отправлены 96 500 Mandatory information element is missing - в полученном оборудованием сообщение отсутствует важное для его обработки поле 97 500 Message type non-existent or not implemented - тоже самое что и 93 код 98 500 Message not compatible with call state or message type non-existent or not implemented - сообщение не совместимо с текущим состоянием звонка или не может быть интерпретировано оборудованием 99 500 Information element nonexistent or not implemented - информационный элемент не существует или не может быть интерпретирован оборудованием 100 500 Invalid information element contents - элемент не может быть интерпретирован. Помимо этого, одно или более полей сообщения были закодировано алгоритмом, который не поддерживает оборудованием. 101 500 Message not compatible with call state - полученное сообщение не соответствует состоянию вызова 102 408 Recovery on timer expiry - процедура восстановления по причине тайм - аута параллельно с алгоритмами обработки ошибок 103 500 Parameter non-existent or not implemented – passed on - параметр не существует или не реализован на оборудовании 111 404 Protocol error, unspecified - ошибка, которая отправляется в случае, если более детальное сообщение не было отправлено 127 500 Internetworking, unspecified - на этапе установления соединения произошел сбой
img
В этом руководстве мы расскажем, как установить KVM и как его использовать, чтобы создать виртуальные машины с такими дистрибутивами как RHEL, CentOS 7 и Fedora 21, основанными на RedHat. Что такое KVM? KVM (Kernel-based Virtual Machine) – это решение для полной виртуализации для Linux на оборудовании Intel 64 и AMD 64, которое включено в основное ядро Linux, начиная с версии 2.6.20. Аппаратные средства работают быстро и стабильно даже при больших нагрузках. Функции KVM KVM обладает большим количеством преимуществ и полезных функций, которые окажутся в Вашем распоряжении, если для установки виртуальной платформы Вы выберете данное программное обеспечение. Гипервизор KVM поддерживает следующие функции: Over-committing – с помощью этой функции можно обеспечить направление большего количества средств центрального процессора и памяти, чем доступно в системе. Thin provisioning – функция позволяет выделить гибкое хранилище и оптимизирует доступное пространство для каждой гостевой виртуальной машины. Disk I/O throttling – функция предоставляет возможность установить ограничение на запросы ввода-вывода диска, отправляемые с виртуальных машин на хост. Automatic NUMA balancing – функция улучшает работу приложений на аппаратных решениях NUMA. Virtual CPU hot add capability – данная функция предоставляет возможность увеличить процессорную память настолько, насколько это нужно работающей ВМ без простоев. Подготовительная работа Убедитесь, что Ваша система имеет расширение аппаратной виртуализации. Для хостов на базе Intel ЦП должен поддерживать расширение виртуализации [vmx]. Чтобы проверить наличие расширения, используйте следующую команду: # grep -e 'vmx' /proc/cpuinfo Для хостов на базе AMD ЦП поддерживает расширение виртуализации [svm]: # grep -e 'svm' /proc/cpuinfo Если вывод отсутствует, убедитесь, что в BIOS включена опция расширения виртуализации. Убедитесь, что модули KVM загружены в ядро (это должно быть загружено по умолчанию). # lsmod | grep kvm Вывод должен содержать kvm_intel для хостов на базе Intel и kvm_amd – на базе AMD. Вам также потребуются доступ уровня root или пользователь с sudo привилегиями, настроенными на Вашу систему. Также убедитесь, что Ваша система обновлена. # yum update Убедитесь, что Selinux в режиме Permissive. # setenforce 0 Шаг 1: Установка KVM Сначала мы установим пакеты qemu-kvm и qemu-img. Эти пакеты предоставляют KVM и image manager доступ на уровне пользователя. # yum install qemu-kvm qemu-img Теперь у Вас есть минимум требований, чтобы установить виртуальную платформу на вашем хосте. Но есть ещё полезные приложения, которые помогают в администрировании платформой: virt-manager (менеджер управления виртуальными машинами) предоставляет GUI-конструктор для управления виртуальными машинами. libvirt-client предоставляет инструмент CL для управления вашей виртуальной средой. Такая утилита называется virsh. С помощью команды virt-install, которую предоставляет программа virt-install, Вы можете создать виртуальную машину, используя CLI (интерфейс командной строки). С помощью библиотеки libvirt сервер и хост могут взаимодействовать с гипервизорами и хост-системами. Давайте установим эти инструменты с помощью следующей команды: # yum install virt-manager libvirt libvirt-python libvirt-client Для пользователей RHEL/CentOS7 также есть дополнительные группы пакетов, которые можно установить, например: Virtualization Client, Virtualization Platform и Virtualization Tools #yum groupinstall virtualization-client virtualization-platform virtualization-tools Демоном виртуализации, который управляет платформой, является libvirtd. Давайте перезапустим его. #systemctl restart libvirtd После того, как Вы перезапустили демона, проверьте его статус с помощью следующей команды: #systemctl status libvirtd Пример вывода libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago Main PID: 25701 (libvirtd) Теперь давайте перейдем к следующему разделу и создадим виртуальную машину. Шаг 2: Создание ВМ с помощью KVM Так как мы установили несколько полезных приложений для управления виртуальными платформами и создания виртуальных машин, одно из них –virt-manager – нам сейчас понадобится. Несмотря на то, что virt-manager является инструментом, основанным на графическом интерфейсе пользователя, из терминала мы можем запускать его так же, как и из GUI. #virt-manager GNOME GNOME Classic После того, как Вы запустите приложение, появится такое окно. По умолчанию менеджер напрямую подключен к localhost. Но Вы можете использовать тот же инструмент, чтобы выбрать другой хост удаленно. Из вкладки File выберите Add Connection и появится следующее окно. Поставьте галочку на Connect to remote host и впишите название или IP (Hostname) удаленного сервера. Если Вам нужно устанавливать соединение с удаленным сервером каждый раз, когда запускается менеджер, то поставьте галочку на Auto Connect. Давайте вернемся к localhost. Прежде чем создавать виртуальную машину, Вы должны решить, где будут храниться файлы. Другими словами, Вам необходимо создать том (виртуальный диск) для вашей виртуальной машины. Правой кнопкой мыши нажмите на localhost и выберите Details, а затем перейдите на вкладку Storage. Затем нажмите кнопку New Volume (Новый том) и введите название вашего нового виртуального диска (тома). В графу Max Capacity (Максимальная ёмкость) введите требующийся вам объем диска. Выбранный объем является реальным объемом Вашего диска, который сразу будет предоставлен с Вашего физического диска после завершения установки. Примечание: технология в области администрирования хранилищ называется thin provision (Тонкое обеспечение). Она используется для выделения только используемого объема хранилища, а не всего доступного объема. Например, Вы создали виртуальный диск размером 60 Гб, но используемого объема у Вас только 20 Гб. С помощью данной технологии жёсткий диск предоставит Вам только 20 Гб, а не 60. Другими словами, выделенный физический объем будет динамически распределяться в зависимости от фактического используемого объема. Знак нового диска появится в списке. Найти Ваш новый виртуальный диск Вы сможете по умолчанию с помощью команды /var/lib/libvirt/images. # ls -l /var/lib/libvirt/images -rw-------. 1 root root 10737418240 Jan 3 16:47 vm1Storage.img Наконец, мы готовы к созданию виртуальной машины. Нажмите на кнопку VM на главном экране, и появится окно. Выберите метод установки для создания ВМ. Мы пока выберем Local install media, а позже обсудим оставшиеся методы. Теперь мы должны выбрать, какой локальный носитель использовать. У нас есть два варианта: Физический CDROM/DVD ISO-образ Давайте выберем ISO-образ и введем его путь. Важно: к сожалению, для тех, кто использует RHEL или CentOS7, здесь есть баг. Он не даёт установить машину с использованием физического носителя CDROM/DVD. Опция просто будет серая: И если Вы наведете курсор, то появится сообщение об ошибке: physical cdrom passthrough not supported with this hypervisor (Физический CDROM не поддерживает данный гипервайзер). Больше информации можете узнать здесь. Снова вопрос про хранилище. Используем виртуальный диск, который мы недавно создали. Он скоро появится. На последнем шаге Вам необходимо дать название виртуальной машине. Если Вы хотите изменить что-то в конфигурации или сделать небольшую адаптацию, поставьте галочку на Customize configuration before install. Затем нажмите на finish и подождите несколько секунд, пока не появится контрольная консоль для вашей гостевой ОС. Готово! Заключение Вы узнали, что такое KVM, как управлять виртуальной платформой с помощью инструментов GUI, как создать виртуальную машину с помощью этого приложения и много других классных штук.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59