По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Семантическое управление версиями (или семвер) – это формальное соглашение для определения номера версии новых выпусков программного обеспечения. Стандарт помогает пользователям программного обеспечения понять серьезность изменений в каждом новом дистрибутиве. Проект, использующий семантическое управление версиями, объявляет основной номер версии (major), дополнительный номер версии (minor) и номер исправления (patch) для каждого выпуска. Строка версии 1.2.3 указывает на основную версию под номером 1, дополнительную версию под номером 2 и исправление под номером 3. Номера версий такого формата широко используются как программными пакетами, так и исполняемыми файлами конечных пользователей, такими как приложения и игры. Однако не каждый проект точно следует стандарту, установленному semver.org. Спецификация была создана для решения проблем, вызванных несовместимостью методов управления версиями между программными пакетами, используемыми в качестве зависимостей. Под «пакетом» и «зависимостью» мы подразумеваем библиотеку кода, предназначенную для использования в другом программном проекте и распространяемую диспетчером пакетов, таким как npm, composer или nuget. Это именно то применение семантического управления версиями, которое мы рассматриваем в этой статье. Major, Minor и Patch Важно понимать значение трех задействованных компонентов. Вместе они намечают путь разработки проекта и соотносят влияние каждого нового выпуска на конечных пользователей. Major number (основной номер версии) – основной номер указывает на текущую версию общедоступного интерфейса пакета. Он увеличивается каждый раз, когда вы вносите изменения, которые требуют от существующих пользователей вашего пакета обновления их собственной работы. Minor number (дополнительный номер версии) – дополнительный номер указывает на текущую функциональную версию вашего программного обеспечения. Он увеличивается всякий раз, когда вы добавляете новую функцию, но не меняете интерфейс вашего пакета. Он сообщает пользователям о том, что были внесены значительные изменения, но пакет полностью совместимым с предыдущими версиями с предыдущим дополнительным номером. Patch number (номер исправления) – номер исправления увеличивается каждый раз, когда вы вносите какое-то незначительное изменение, которое не влияет на общедоступный интерфейс или общую функциональность вашего пакета. Его чаще всего используют для исправления ошибок. Потребители всегда должны иметь возможность не задумываясь установить последнюю версию исправлений. Семантическая структура версии выпуска лучше всего моделируется в виде дерева. Наверху у вас изменения общедоступного интерфейса, каждое из которых отображается на основном номере. Каждая основная версия имеет свой собственный набор дополнительных версий, в которые добавляются новые функции без нарушения совместимости с предыдущими версиями. И наконец, дополнительные версии могут время от времени отлаживаться путем исправления некоторых ошибок. Откуда начинать? Большинство проектов должны начинаться с версии 1.0.0. Вы публикуете свой первый общедоступный интерфейс и первоначальный неизмененный набор функций. И поскольку вам еще не приходилось вносить никаких исправления, то и версия исправления – 0. Теперь давайте посмотрим, что же происходит, когда вы вносите изменения в свой пакет. После вашего первоначального выпуска вы получаете отчет об ошибке от пользователя. Когда вы выпустите исправление, то правильный номер версии уже будет 1.0.1. Если бы вы затем выпустили еще одну версию с исправлением ошибок, то вы бы увеличили номер исправления до 2, т.е. номер версии уже был бы 1.0.2. Тем временем вы также работали над новой интересной функцией. Это совершенно необязательно, поэтому пользователям не нужно ничего делать для обновления. Вы выпускаете эту версию как 1.1.0. – создана новая функциональная среда, но ее еще ни разу не исправляли. К сожалению, скоро приходят отчеты об ошибках, и среди ваших пользователей начинает распространяться версия 1.1.1. Несколько месяцев спустя вы решили провести реорганизацию кода всего проекта. Некоторые функции были удалены или теперь доступны через объединенный интерфейс. Если вы выпустите эту работу, то люди, использующие текущую версию вашего пакета, должны будут внести серьезные изменения в свой проект. Пришло время опубликовать 2.0.0. в вашем репозитории пакетов. Поддержание старых веток Увеличение какого-либо номера в вашей строке версий не создает точку невозврата. После публикации 1.1.1 вы могли обнаружить ошибку, присутствующую в 1.0.2. Используя ветки в вашей системе контроля версий, вы можете произвести исправления в обеих версиях. В итоге вы получите 1.1.2 и 1.0.3. Точно также вы можете поддерживать ветку 1.х вашего проекта, несмотря на выпуск 2.0.0. Может показаться странным публиковать 1.1.2 после 2.0.1, но это вполне нормальная практика. Семантическое управление версиями не создает линейный постоянно увеличивающийся номер версии; наоборот, оно предназначено для использования в качестве части модели разработки ветвления, которое использует простоту установки исправлений, предлагаемую системами управления исходным кодом, такими как Git. Опубликованные версии должны быть неизменяемыми. После того, как вы создали версию 2.4.3, вы не можете «обновить» его, просто добавив дополнительный код в ту же строку версии. Вы должны присваивать новый номер версии каждому выпуску, чтобы пользователи всегда могли получить доступ к каждой конкретной версии вашего пакета. Обработка пакетов, находящихся в стадии разработки Как правило, вы всегда обновляете основную версию своего пакета всякий раз, когда вносятся изменения, несовместимые с предыдущими версиями. Когда вы находитесь в стадии разработки, то ваша кодовая база может дорабатываться очень быстро, что приводит к публикации множества основных версий. Вы можете этого избежать, рекламируя свой проект как 0.y.z. Значение 0 в качестве основной версии означает, что ваш пакет неустойчив. Обычные правила в отношении совместимости с предыдущими версиями тут не применяются, поэтому вы можете выпускать новые версии, увеличивая только дополнительный номер и номер исправления. Это значит, что вы можете использовать 1.0.0 для обозначения первой «завершенной» версии вашего программного обеспечения. Вы также можете добавить дополнительные «идентификаторы» в конец строки версии, используя дефис в качестве разделителя: 1.0.0-alpha.1. Вы можете использовать такой вариант для того, чтобы четко обозначить альфа- и бета-версии. Точно также вы можете включить метаданные сборки, добавив символ +: 1.1.0-alpha.1+linux_x86. Заключение Согласованное использование семантического управления версиями помогает пользователям быть уверенными в вашем проекте. Они могут четко видеть, как развивается ваша кодовая база и нужно ли им самим провести какую-то работу, чтобы идти в ногу со временем. Объявление строки семантической версии необходимо при публикации в диспетчере наиболее популярных пакетов. Тем не менее, в конечном счете, вам решать, какие номера вы устанавливаете для каждого нового выпуска. Соблюдение стандарта четко сообщает о ваших намерениях пользователям и сводит к минимуму риск непреднамеренного нарушения чужой работы.
img
Прокси сервер - это элемент сетевой инфраструктуры, который выполняет роль посредника между клиентским компьютером (терминал, браузер, приложение), находящимся во внутренней сети и другим сервером, который живёт во внешней сети или наоборот. Прокси сервер может применяться для решения следующих задач: усиление безопасности защита приватности балансировка нагрузки на посещаемый ресурс Как можно использовать прокси сервер Прокси сервер принимает и передает запросы от клиентов (которые могут находиться как во внутренней так и во внешней сети) к различным сетевым службам и обеспечивает их передачу целевым серверам. При этом, клиент может даже не знать о том, что взаимодействие осуществляется через прокси сервер. Принимая запросы от клиента прокси сервер может либо: сразу передать их на запрашиваемый ресурс, либо сразу вернуть клиенту запрашиваемый ресурс из своего кэша, либо отказать в доступе к запрашиваемому ресурсу. Всё это делает прокси сервер очень важным элементом сетевой архитектуры. Основные возможности, которыми обладает прокси сервер перечислены ниже: Получение доступа к определенным ресурсам (в том числе заблокированным по каким-либо причинам) - во многих компаниях доступ в Интернет для сотрудников происходит только через прокси сервер. Это делается для того, чтобы пользователь не посещал ресурсы, не разрешенные политикой компании. Однако, прокси также может использоваться и для обхода блокировок. Прямой доступ к ресурсу может быть заблокирован, а к прокси – нет. Таким образом, если обращаться к заблокированному ресурсу через прокси, то можно получить к нему доступ. Правда, в зависимости от того где территориально расположен прокси, скорость доступа может пострадать. Анонимизация IP адреса клиентского компьютера - обращаясь к какому-либо ресурсу через прокси, можно скрыть свой реальный IP адрес, так что “вычислить по IP” вас будет гораздо сложнее. Блокировка вредоносного трафика и определенных ресурсов в сети - мы можем использовать прокси не только для обхода, но и для проведения блокировок. Об одном из таких способов с использованием роутера MikroTik, мы рассказывали статье. Ведение журнала сетевых подключений - прокси позволяет нам отслеживать все сетевые подключения, которые через него проходят. Мы можем включить логирование событий прокси и отправлять их на какое-нибудь LM-решение для последующего анализа. Прокси сервера бывают двух видов: Прямой (Forward) - прямой прокси - это такой промежуточный сервер, которых находится между клиентом и сервером назначения, которому обращается клиент. Чтобы получить контент с сервера назначения, клиент отправляет запрос прокси-серверу с указанием сервера назначения в качестве цели, а прокси запрашивает контент и возвращает его клиенту. Клиент должен быть специально настроен (например, можно указать прокси в браузере) для использования такого прокси для доступа к другим сайтам. Обратный (Reverse) - обратный прокси, напротив, выглядит для клиента, как обычный веб-сервер. Никаких специальных настроек на клиенте не требуется. Клиент делает обычные запросы на получение контента, которые отправляются в пространство имен обратного прокси. Затем прокси решает, куда отправить эти запросы, и возвращает контент так, как если бы он и был сервером назначения. Типичным примером использования обратного прокси-сервера является предоставление пользователям в Интернете доступа к серверу, который находится за межсетевым экраном. Обратные прокси-серверы также можно использовать для балансировки нагрузки между несколькими внутренними серверами или для обеспечения кэширования для более медленного внутреннего сервера. Кроме того, обратные прокси-серверы можно использовать просто для переноса нескольких серверов в одно и то же пространство URL. Использование прокси для усиления безопасности корпоративной инфраструктуры Многие компании имеют ресурсы, которые выставлены в публичную сеть и доступны каждому внешнему пользователю. Это может быть просто сайт компании или сервис, за счёт которого она зарабатывает деньги (например - интернет магазин). Самой большой угрозой для таких ресурсов является угроза взлома. Прокси сервер добавляет дополнительный, “буферный” уровень безопасности между защищаемым ресурсом и внешним трафиком. Таким образом, злоумышленники могут получить доступ к вашему прокси серверу, но не смогут подключиться к серверу, на котором действительно работает защищаемый ресурс, где хранятся ваши данные. Это может значительно уменьшить вероятность взлома ресурса. Контроль пользователей при использовании Интернета Ни одна компания не хочет, чтобы сотрудники получали доступ к незащищенным или неуместным веб-сайтам через корпоративную сеть. Поэтому при построении сетевой архитектуры, администраторы часто принимают решение воспользоваться возможностями прокси сервера. Когда доступ пользователей к Интернету осуществляется через прокси-сервер, сетевые администраторы легко могут контролировать, какие устройства будут иметь доступ и какие сайты эти устройства смогут посещать. С помощью прокси-сервера можно заблокировать нежелательный контент, а также любые сайты, нежелательные для посещения сотрудниками компании в рабочее время. Включив логирование на прокси, сетевые администраторы могут даже отслеживать, к какому контенту и когда обращаются сотрудники для внутренних целей. Многие сотрудники службы безопасности используют это для отслеживания потенциальных незаконных действий или нарушений политик безопасности. Балансировка нагрузки на корпоративные ресурсы Ничто так не раздражает клиента, чем веб-сайт компании, который тормозит и падает, в самый неподходящий момент. Если ресурс популярный, то нагрузка на него может быть колоссальной и сервер, обеспечивающий работу ресурса, может просто не справиться с потоком запросов от клиентов. Прокси серверы, облачные сервисы и технологии пиринга помогают исключить подобные ситуации. Особенно актуально это для ресурсов, данные и контент которых хранятся на множестве серверов, распределенных по всему миру. У пользователей из разных стран может быть разная скорость доступа к ресурсу. В таком случае, прокси сервер может использоваться для создания единого веб-ресурса, который будет служить единой точкой доступа. Прокси будет осуществлять балансировку запросы к каждому целевому серверу, чтобы ни один из них не перегружался. Все это работает в фоновом режиме, чтобы обеспечить бесперебойное обслуживание клиентов ресурсов. Прокси-серверы можно также легко использовать для увеличения скорости и экономии полосы пропускания в сети за счет сжатия трафика, кэширования файлов и веб-страниц, к которым обращаются несколько пользователей, и даже - удаления рекламы с веб-сайтов. Это освобождает полосу пропускания в загруженных сетях.
img
Так как технология VoIP базируется на технологии IP и использует Интернет, она так же наследует все её уязвимости. Последствия этих атак, умноженные на уязвимости, которые следуют из особенностей архитектуры сетей VoIP, заставляют задуматься о способах усиления защиты и тщательном анализе существующей сети IP . Более того, добавление любого нового сервиса, например, голосовой почты в недостаточно защищенную инфраструктуру может спровоцировать появление новых уязвимостей. Риски и уязвимости, наследованные из IP сетей. Плохой дизайн сети Неправильно спроектированная сеть может повлечь за собой большое количество проблем, связанных с использованием и обеспечением необходимой степени информационной безопасности в VoIP сетях. Межсетевые экраны, к примеру, являются уязвимым местом в сети, по причине того, что для правильного функционирования VoIP сети необходимо открывать дополнительные порты, и межсетевые экраны, не поддерживающие технологию VoIP, способны просто оставлять открытыми ранее используемые порты даже после завершения вызовов. Уязвимые IP АТС и шлюзы Если злоумышленник получает доступ к шлюзу или АТС, он так же получает доступ к захвату целых сессий (по сути – возможность прослушать вызов), узнать параметры вызова и сети. Таким образом, на безопасность АТС необходимо обратить наибольшее внимание. Убытки от таких вторжений могут достигать значительных сумм. Атаки с повторением пакетов Атака с повторением пакета может быть произведена в VoIP сети путем повторной передачи серии корректных пакетов, с целью того, что бы приёмное устройство произвело повторную обработку информации и передачу ответных пакетов, которые можно проанализировать для подмены пакетов (спуфинга) и получения доступа в сеть. К примеру, даже при условии зашифрованных данных, существует возможность повторения пакета с логином и паролем пользователем пользователя, и, таким образом, получения доступа в сеть. Риски и уязвимости, характерные для VoIP сетей Подмена и маскировка пакетов Использование подменных пакетов с неправильным IP-адресом источника могут использоваться для следующих целей: Перенаправление пакетов в другую сеть или систему Перехват трафика и атака «man-in-the-middle» (рисунок ниже) Маскировка под доверенное устройство - «Перенос ответственности» за атаку на другое устройство Фаззинг(Fuzzing) - Нагрузка системы пакетами с не полностью корректной информацией , что вызывает ошибки в работе системы при их обработке, например такие как задержки при работе, утечки информации и полный отказ системы Сканирование на предмет возможных уязвимостей - Сканирование портов может дать злоумышленнику начальные данные для проведения полноценной атаки, такие как модели операционных систем, типы используемых сервисов и приложений. При нахождении уязвимого сервиса злоумышленник может получить доступ к управлению всей сетью, и, как следствию, к возможности причинить большой ущерб. Низкая надежность по сравнению с традиционными сетям - Для достижения качественной связи, пакетам, содержащим голосовую и видео нагрузку присваивается высокий приоритет в механизмах качества обслуживания QoS (качества обслуживания). Однако, надежность VoIP и сетей передачи данных стремится к 99,9%, что ниже чем степени надежности в традиционных телефонных сетях, у которых данный параметр стремится к 99,999%. Конечно, разница не столь велика, однако за год эта разница выливается в дополнительные 8.7 часа, во время которых система не работает. Но необходимо понимать, что далеко не каждому предприятию это может повредить. Атаки DDoS(Distributed Denial of Service) - Атаки DoS и DDoS происходят когда злоумышленник посылает крайне большие объемы случайных сообщений на одно или несколько VoIP устройств из одного или нескольких мест (DoS и DDoS соответственно). Атака из нескольких мест используется с помощью «зомби» - скомпрометированные сервера и рабочие станции, которые автоматически посылают вредоносные запросы в соответствии с потребностями злоумышленника. Успешной такая атака считается в момент, когда количество запросов превышает вычислительную мощность объекта, в следствие чего происходит отказ в обслуживании для конечных пользователей. VoIP системы особенно уязвимы для таких атак, т.к они имеют высокий приоритет в технологии обеспечения качества обслуживания QoS, и для нарушения их работы требуется меньшее количество трафика нежели для обычных сетей передачи данных. Примером DoS атаки против именно VoIP сети может быть атака при множественной передачи сигналов отмены или установления вызова, которая так же имеет название SIP CANCEL DoS атака. CID спуфинг - Один из типов атак с подменой пакетов построен на манипуляциях с идентификатором звонящего (Caller ID или CID), который используется для идентификации звонящего до ответа. Злоумышленник может подменить этот идентификатор текстовой строкой или телефонным номером и может использоваться для осуществления различных действий, вредящих сети или владельцу предприятия. Кроме того, в VoIP сетях нет возможности скрыть этот идентификатор, т.к телефонные номера включены в заголовках пакетов в протоколе SIP. Это позволяет злоумышленнику со сниффером пакетов, например tcpdump узнать телефонные номера даже если они имеют параметр «private» у сервисного провайдера. Заключение - Использование IP-телефонии приносит огромное количество пользы для любой организации – решение на базе VoIP более масштабируемы, легко интегрируемы и их стоимость ниже классических решений. Однако, любая организация, внедрив VoIP решение должна быть в курсе возможных угроз и предпринимать всевозможные усилия для увеличения степени информационной безопасности в сети. Были перечислены лишь некоторые методы атак, но необходимо понимать, что часто используются комбинации атак и практически ежедневно разрабатываются новые атаки. Но понятно уже сейчас, что за данной технологией будущее и она вряд ли уступит пальму первенства другой технологии в обозримом будущем.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59