Какие бывают сетевые приложения
Эта статья - четвертая в серии статей, предназначенных для помощи читателям оценить риск, которому подвергаются их системы, связанные с Интернет. В первой статье мы установили причины, по которым следует производить техническую оценку риска. Во второй мы приступили к обсуждению методик, которым мы следуем при выполнении этого вида оценки. В третьей статье эти методики обсуждались более подробно, основное внимание было уделено просмотру уязвимостей и наглядности. В этой статье мы обсудим относительно малоизученный аспект безопасности Интернет - обычные Web приложения.
Эта статья - четвертая в серии статей, предназначенных для помощи читателям оценить риск, которому подвергаются их системы, связанные с Интернет. В первой статье мы установили причины, по которым следует производить техническую оценку риска. Во второй мы приступили к обсуждению методик, которым мы следуем при выполнении этого вида оценки. В третьей статье эти методики обсуждались более подробно, основное внимание было уделено просмотру уязвимостей и наглядности. В этой статье мы обсудим относительно малоизученный аспект безопасности Интернет - обычные Web приложения.
Анализ сетевых приложений
Из всех возможных служб Интернета DNS, e-mail и www наиболее популярны. Из них, Web службы - самые сложные и наиболее часто используемые злоумышленниками. Изначально являясь, простой текстовой информационной службой, Web постепенно развилась в очень функциональную диалоговую прикладную платформу, которая используется почти во всех приложениях, как в Интернете, так и во внутренних сетях. Главные продавцы признали силу Web и сделали существенные вклад в развитие ее платформ. Среди них: Sun (Java), Microsoft, открытое общество (PHP) и другие, например, ColdFusion. На базе этих платформ обычному администратору очень легко развивать сложные приложения. Вследствие бурного развития Web все, как по мановению волшебной палочки, вдруг стали программистами. Web приложения часто развивались неквалифицированными и неопытными разработчиками. Даже самые опытные программисты неосознанно делают ошибки, дающие потенциальным злоумышленникам точное направление, где искать уязвимое место, которое им нужно для проникновения в частную сеть. Что же говорить о программистах среднего уровня или даже ниже! Поскольку эти приложения создаются на стандартных платформах, они часто аналогичны и поэтому, как правило, имеют одинаково слабые места в защите.
Как все более и более значимая технология в Интернете, распространенные сетевые приложения должны рассматриваться в каждой оценке безопасности. Хотя имеется проблема: мы знаем, что почти каждый, кто запускает DNS, автоматически запускает BIND (Berkley Internet Name Domain). Таким образом, если BIND имеет уязвимость, она затронет каждого. Уязвимость станет известной общественности, а ее подпись, в конечном счете, обнаружится сканерами уязвимости и попадет в базы данных уязвимостей.
Мы можем проверить системы, используя такие сканеры и определить уязвимость, которая может нас затронуть. А как же поступать с уязвимостями, связанными с самодельным сайтом какого-нибудь клиента мелкой компании, типа Joe Soap Inc.. Обязательно ли включать их в наш сканер уязвимостей? Ответ: нет, потому что Web приложения так часто являются "самодельными", так что их уязвимости, вряд ли станут широко известными, так что каждое приложение нужно рассматривать индивидуально, пытаясь определить ошибки безопасности, возможно сделанные непрофессиональными программистами.
Оценка Web приложений является новым направлением и представляет аналитикам безопасности целый пакет проблем. Ранее известные важные предпосылки, методики и инструменты в этой области не применимы и даже ведущие практики, только начинают понимать все возникающие проблемы, связанные с этими видами систем.
Проверка защиты сетевых приложений
Наше испытание сетевых приложений главным образом основано на принципе "черного ящика", то есть мы исследуем приложения над сетью без доступа к исходной программе. Конечно, не имея доступа к исходной программе, имеется вероятность пропустить что-нибудь важное. Назовем это "фактором нечеткости". Наш собственный план тестирования "нечетких" сетевых приложений состоит из двух частей: первая часть - это простой список вопросов, на которые нужно ответить в процессе рассмотрения приложения, а вторая часть - список банальных программных ошибок, наличие которых нужно проверить.
Хотя каждый программист и, следовательно, каждое приложение уникальны, ошибки, как правило, одни и те же. Мы составили список общих программных ошибок, наличие которых можно проверить, даже находясь над сетью. Детально опишем план тестирования немного позже, а пока нужно кратко напомнить некоторые основные понятия, которые читателю необходимо понимать.
Независимо от используемой платформы, основное большинство приложений имеет подобную основную архитектуру, как изображено ниже:
Рис. 1: Типичная архитектура Web приложения.
На этом рисунке изображена популярная сетевая архитектура для Web приложений. Web-сервер располагается в особо защищенной зоне сети, называемой демилитаризированной Зоной (DMZ). Используются два файрволла: один - чтобы защитить демилитаризованную зону от Интернета, а другой - чтобы защитить внутреннюю сеть от демилитаризованной зоны. Эта архитектура - хорошо продумана системой безопасности и создана для минимизации последствий в случае, когда Web сервер будет взломан. Однако два канала должны быть всегда рабочими в этой архитектуре. Пользователь всегда должен иметь возможность соединиться с web-сервером из Интернета, а web-сервер должен иметь возможность соединиться с сервером базы данных. Эти же два канала использует и нападающий, чтобы получить доступ к внутренней сети.
Сетевые приложения: основные вопросы
Теперь, поняв основы, мы должны понять, как оценить сетевые приложения. Мы также кратко рассмотрели довольно простую, но обычную архитектуру сети. Рассмотрим теперь глубже первую часть плана оценок, о которой говорилось выше. На какие вопросы вы должны ответить, сталкиваясь с изготовленным на заказ сетевым приложением? Эти вопросы весьма просты, но важны, если мы надеемся проникнуть в глубь оцениваемого приложения:
Вопрос 1: Кто эти люди?
Проект и архитектура продукта чаще всего отражают стиль и культуру организации, которая его создала. И обратно, многое можно понять в проекте и архитектуре приложения, если вы понимаете стиль и культуру организации. Мы ищем это понимание на двух уровнях:
Общий: С какой группой мы имеем дело? Какой у них основной бизнес? Каков их стиль и культура?
Частный: Кто разработал и развивал рассматриваемое приложение? Какие они имеют знания, квалификацию, каков их стиль?
Ответы на эти вопросы дадут нам понимание того, как приложение будет построено и где оно может содержать ошибки.
Вопрос 2: Как приложение работает?
На следующем этапе мы должны понять, как рассматриваемое приложение собрано. Вы должны предпринять все усилия, чтобы понять механизм работы приложения. Приведем список важных моментов, которые необходимо рассмотреть:
1.Может ли приложение работать в диалоговом режиме? Если да, то где расположены диалоговые элементы? Не каждый сайт является диалоговым. Кроме того, некоторые сайты более диалоговые, чем другие. Вы должны найти диалоговые элементы сайта и определить, насколько они диалоговые в действительности.
2.Как была построена система? Вспомним прикладные платформы развития, о которых говорилось выше. Каждый план развития имеет свои силы и слабости. Определив и поняв основные компоненты, на которых приложение было построено, мы узнаем, где нужно начинать искать возможную уязвимость.
3.Откуда приложение получает данные? Диалоговое приложение должно получать информацию из каких-то источников. Поскольку сетевые приложения не имеют "гражданства", необходимо найти место хранения данных пользователей. Определение места расположения конечного источника данных многое даст нам в понимании принципа работы приложения и того, как его можно взломать.
5.Как они узнают меня? Многие сайты позволяют работать анонимно, то есть без установления личности, но некоторые сайты предпочитают познакомиться с вами, прежде, чем предоставить вам доступ. Если это так, вам нужно понимать, как происходит установление вашей личности. Какими методами (например, Basic Authentication), и где хранятся данные пользователей (например, в NT SAM).
6.Как они отслеживают состояние? Как только пользователь определен, не имеющее гражданства приложение должно отслеживать пользователя. Отслеживание состояния также необходимо в сложных процессах, когда результаты, полученные на предыдущем шаге, используются, как входные данные на следующем. В каждом случае, отслеживание состояния - область, крайне склонная к ошибкам, и нужно иметь глубокое понимание этого при оценке приложения.
Вопрос 3: Почему они выбрали именно этот способ?
- Лень. Часто выбирается более дешевая и легкая архитектура. Ленивый проект – самый опасный проект.
- Политика. Часто технические люди вынуждены придерживаться некоторых технологий из-за стратегических или политических решений высокого уровня в данной организации. Например, часто можно встретить организации, чьи стратегии придерживаются компании Microsoft или, реже, открытых источников. В этом случае архитектура, как правило, стандартна и хорошо известна.
- Неопытность. Мы уже говорили о том, что многие разработчики Web приложений неопытны и неквалифицированны. Такие разработчики имеют тенденцию "заимствовать" и копировать программы с сайтов и других общественных источников, и склонны допускать глупые, любительские ошибки.
- Сверхопытность. В нашей индустрии специалисты высочайшего класса в своей узкой области, часто пытаются переносить свой опыт на другие области. Определение специфического "конька" разработчика подскажет вам, где можно даже не искать уязвимости, а в каких новых для разработчика областях уязвимости могут находиться.
Вопрос 4: Каковы типичные ошибки данной архитектуры?
Теперь, когда вы имеете общий вид оцениваемой системы, вы можете начать искать возможные ошибки безопасности. Вы просматриваете пути сквозь защиту разработчика в попытках найти ошибки, которые он, возможно, просмотрел. В пятой и заключительной части этой серии статей мы обсудим некоторые обычные категории ошибок программирования и рассмотрим некоторые частные примеры. Теперь, когда мы создали фундамент для понимания того, чем являются сетевые приложения и как они работают, мы можем исследовать, как оценивать их для риска безопасности Интернета, что будет сделано в следующей (и последней) статье в этой серии.
Существует два типа сетевых приложений: чисто сетевые (pure) и обособленные (standalone). Чисто сетевые приложения разработаны для применения в сетях. Использование их на отдельных компьютерах не имеет смысла. Наоборот, обособленные приложения призваны работать на отдельном компьютере. Для расширения возможностей они перестроены для работы в сетях. Примерами обособленных приложений могут служить текстовый процессор и редактор электронных таблиц.
Чисто сетевые приложения
Эти приложения были созданы для использования возможностей сетей. Каждое из них имеет свой отдельный пользовательский интерфейс и требует выполнения некоторой последовательности "сетевых" команд, индивидуальных для каждого приложения.
Ниже приведены некоторые примеры чисто сетевых приложений:
- эмуляция терминала;
- передача файла;
- электронная почта;
- групповые приложения.
Эмуляция терминала была одним из первых чисто сетевых приложений. До появления сетей терминалы использовались для доступа к прикладным программам на больших ЭВМ и миникомпьютерах. Когда на смену терминалам пришли ПК, потребовался метод доступа к прикладным программам на существующих больших ЭВМ и миникомпьютерах. Программа эмуляции терминала позволяет представить ПК для большой ЭВМ как подключенный к ней терминал. Функции центрального процессора (ЦП) ПК становятся прозрачными для пользователя, и ему кажется, что он работает с ЦП большой ЭВМ, к которой данный ПК подсоединен. Эмуляция терминала предоставляет пользователю преимущества двух сред компьютерного мира. Приложения больших ЭВМ и миникомпьютеров могут выполняться на ПК наряду с обычными обособленными приложениями типа текстовых процессоров и электронных таблиц.
Передача файла является основным приложением практически во всех сетях. В некоторых случаях файлы, передаваемые от ПК одного типа к ПК другого типа, требуют перевода из одного формата данных в другой.
Обособленные приложения
Все приложения, описанные выше, являются чисто сетевыми приложениями, разработанными для функционирования в сетевой среде. В последнее время многие известные обособленные приложения были адаптированы для функционирования в среде клиент-сервер.
Примерами могут служить текстовые процессоры, редакторы электронных таблиц, базы данных, презентационная графика и управление проектами.
Когда обособленные приложения адаптируются для работы в сетевой среде, они разбиваются на две части.
Первая часть приложения включает пользовательский интерфейс и связующую обработку и работает на станции-клиенте. Вторая часть приложения, работающая на сервере, включает операции, требующие значительных процессорных затрат.
Поводом к переводу традиционных обособленных приложений в сетевую среду послужили следующие соображения:
- простота использования;
- разделение файлов;
- ограничение ресурсов;
- экономия от масштабирования.
В сетевых версиях приложений используется тот же пользовательский интерфейс, включая команды оператора, что и в предыдущих обособленных версиях. В отличие от чисто сетевых приложений пользователям нет необходимости изучать новые команды для обеспечения нормальной работы.
Пользователи могут получать доступ к важным файлам, таким, как большие базы данных, сохраняемым в общем разделяемом пространстве. Поскольку только одна копия файла существует на сервере, то исчезает опасность дублирования файлов с различными датами модификации.
Некоторые ПК с ограниченными ресурсами (медленный ЦП, малая память) не могут обрабатывать целиком современные большие приложения. Однако если приложение разбивается на две части, то ПК может обрабатывать одну из этих частей, что известно как архитектура "клиент-сервер". Персональный компьютер ("клиент") в общем случае обрабатывает часть пользовательского интерфейса от всего приложения, а более мощный компьютер ("сервер") обрабатывает интенсивную процессорную часть и ввод/вывод (В/В) информации.
Новое серверное приложение не требуется для каждого пользователя. Если приложение уже существует на сервере, то новая часть пользовательского интерфейса для клиента – это все, что необходимо. Это обычно более дешево, чем использование всей программы для каждого пользователя.
Windows включает компоненты, которые подключаются к Интернету для предоставления расширенных функций и дополнительных возможностей на основе служб. Эти компоненты называются сетевыми функциями. Например, антивирусная программа в Microsoft Defender — это сетевая функция, обеспечивающая обновленную защиту для поддержания безопасности устройств в организации.
При использовании сетевой функции данные отправляются в корпорацию Майкрософт и обрабатываются ею, чтобы предоставить эту сетевую функцию. Эти данные очень важны, так как эти сведения позволяют нам предоставлять облачные сетевые функции. Мы называем эти данные обязательными данными службы. Обязательные данные службы могут содержать сведения, относящиеся к работе сетевой функции, которые требуются для защиты, обновления и правильной работы базовой службы. Обязательные данные службы также могут включать сведения, необходимые сетевой функции для выполнения соответствующих задач, например сведения о конфигурации Windows.
Сетевые функции, используемые в Windows, влияют на тип обязательных данных служб, отправляемых в корпорацию Майкрософт.
Также производится сбор и отправка в корпорацию Майкрософт обязательных данных основных служб. Основные службы используются для обеспечения ** безопасности, своевременного обновления** и надлежащей работы продукта. Например, служба лицензирования, которая подтверждает наличие действительной лицензии на использование Windows.
Хотя администраторы предприятий могут отключить большинство основных служб, мы рекомендуем, если это применимо, рассмотреть возможность размещения служб локально и тщательно оценить последствия отключения оставшихся служб. В следующем списке описываются основные службы и сетевые функции, доступные в Windows, а также ссылки на дополнительные сведения о каждой из них.
В этой статье описаны наиболее распространенные сетевые функции и основные службы. Со временем мы будем обновлять список сетевых функций по мере развития Windows.
Основные службы Windows
Сетевые функции Windows
Основные службы и сетевые функции Microsoft Edge
Windows будет работать вместе с Microsoft Edge и Internet Explorer на устройствах с Windows. Microsoft Edge является браузером по умолчанию и рекомендуется для наиболее эффективной работы просмотра веб-страниц. Сведения о всех сетевых функциях и основных службах Microsoft Edge можно найти здесь. Чтобы отключить определенную функцию Microsoft Edge, см. раздел Microsoft Edge.
Основные службы и сетевые функции IE
Internet Explorer использует многие из основных служб Windows, перечисленных выше. В следующей таблице приводится более подробная информация об основных службах и сетевых функциях, характерных для Internet Explorer.
Помимо фильтрации ActiveX, которая является важной службой, все остальные функции, перечисленные ниже, являются сетевыми функциями. Отключение определенных сетевых функций см. в разделе Internet Explorer.
Дополнительные ссылки
Чтобы просмотреть конечные точки для Windows Корпоративная, см. статьи:
Чтобы просмотреть конечные точки для выпусков, отличных от Windows Корпоративная, см. статьи:
Сетевые приложения - это программное обеспечение, отвечающее за стабильную работу компьютерной сети организации
На компьютерную сеть возложены две основные задачи:
1) возможность сотрудникам работать с одной информацией при выполнении разнородных задач(работа в одной команде);
2) возможность делить сотрудникам ресурсы сети (делить один принтер, сканер), что позволяет экономить средства предприятия.
Сетевые программы решают широкий спектр задач: анализ работоспособности сети, программного обеспечения; контроль за правильным использованием сетевых ресурсов; обеспечение информационной безопасности сети; организация общих сетевых ресурсов; инвентаризация оборудования и многое другое.
Сегодня каждая или почти каждая организация имеет свою сеть и диапазон проблем приблизительно одинаков. Для решения этих проблем есть системный администратор. Чтобы админу быть в курсе всех его происходящей работой в компьютерной сети, сетевые программы должны реагировать на все необычное в сети. Например, на отсутствие отклика какого-либо оборудования, т.к. это может свидетельствовать либо о его поломке, либо о проблемах с программным обеспечением.
При работе в сеты, часто источником информации является сервер организации, так как не целесообразно хранить информацию на каждой машине. И вот картина вы менеджер и вы проводите какую либо транзакцию, а сеть пропала и клиент начинает жаловаться на ваш сервис, хотя сеть не работала до этого 30 минут. А если у системного администратора есть программное обеспечение которое ему кричит и мигает нет сети, то уже заранее можно было-бы этой ситуации избежать, а не ждать злого клиента. Для решения этой цели есть множество различных программ для мониторинга сети.
Сетевые программы должны контролировать трафик организации, который выделен для каждого пользователя (дабы некий пользователь Пупкин в служебное время не качал файлы не понятного назначения), а также реальность скорости предоставления Интернета провайдером (дабы не было денег на ветер).
Также не оценимую помощь системному администратору сетевые программы дают по учету техники и комплектующих (так называемая инвентаризация). В нашем случае, когда речь уже дойдет о нематериальных активах компании, о ее собственности, важно довести до сведения системного администратора о произошедших проблемах.
Вывод: сетевые утилиты имеют своей целью предотвратить неисправность оборудования, а также решают проблему по своевременному оповещению системного администратора о возникающих проблемах сети.
Понравилась полезная статья? Подпишитесь на RSS и получайте больше нужной информации!
Читайте также: