Stephan Schwab

Tales about Aviation, Coaching, Farming, Software Development

Как информационная безопасность может нанести вред компании

Как практикующий коуч в своей работе я часто вижу одну и ту же картину. Доступ в Интернет у сотрудников крупных компаний либо закрыт полностью, либо ограничен. Лет десять тому назад аргументация в пользу ограничения доступа в Интернет для сотрудников в основном строилась на почве недоверия, поскольку руководство стремилось лишить сотрудников возможности заниматься своими делами в рабочее время. Сегодня в такой аргументации произошли изменения, и теперь она основана на страхе утечки конфиденциальной информации, стремлении предотвратить атаки через Интернет или обеспечить защиту данных клиентов. По всей видимости, что не изменилось, так это убеждение в том, что для выполнения своей работы сотрудникам не требуются все ресурсы Интернета, поэтому ограничение доступа к нему целесообразно.

Моя цель в этой статье – дать пищу для размышлений. У меня нет намерения давать инструкции, кроме того, я не претендую на роль эксперта в области защиты компьютерных сетей или информационной безопасности. Безусловно, к таким специалистам будет полезно обратиться при проектировании безопасной сети.

Теперь вернемся к ситуации, которую я часто наблюдаю. Обычно ко мне обращаются за внедрением новых практик в области разработки ПО, поэтому я рассказываю о множестве новых средств, которых нет у штатных сотрудников моего клиента. Поскольку сегодня значительная часть этого инструментария доступна в виде FOSS (свободного и открытого программного обеспечения), я всего лишь указываю сотрудникам компании на ресурс, откуда можно скачать инструмент или библиотеку, и… увы, доступ к ним оказывается закрыт. Либо мы хотим использовать средство для совместной работы онлайн, и они получают отказ в доступе.

Это может быть нечто совсем безобидное, как, например, установка Ruby с дальнейшим выполнением gem install cucumber для создания быстрой демонстрации принципа разработки через приемочное тестирование (ATDD). В теории на скачивание, установку и использование такого инструмента в рамках одного учебного занятия должно уходить всего около часа, тогда как на практике это часто оказывается серьезной проблемой, для решения которой приходится долго ждать, в некоторых случаях – несколько дней.

На рабочих станциях большинства штатных разработчиков ПО установлена ОС Windows. Даже если им и удается что-то скачать, у них нет прав на установку ПО на своей рабочей станции или так или иначе ограничены возможности по управлению конфигурацией компьютера, на котором они работают.

На обычных офисных сотрудниках эти ограничения никак не сказываются. Доступ в Интернет для них означает, что они могут открыть браузер и прочитать контент, размещенный на некоторых сайтах. Они не требуют доступа к форумам, Twitter или другим социальным сетям. Они осознают, что на рабочем месте нужно работать, а для всего остального используют смартфоны.

Данные ограничения также не сказываются на системных и сетевых администраторах, потому что обычно у них есть полный доступ. Тем не менее, их должностные обязанности заключаются в том, чтобы защитить внутреннюю сеть и корпоративные данные. Именно здесь мы часто сталкиваемся с конфликтом интересов. По вполне понятным причинам, они начинают испытывать дискомфорт, когда от разработчиков ПО поступает запрос сделать что-то, что, по всей видимости, противоречит установившейся практике и может поставить под удар системных администраторов.

В многих компаниях, в которых мне доводилось работать, придерживаются единого для всех подхода. Как мне представляется, рассуждают так: доступ в Интернет следует ограничить, а внутреннюю сеть необходимо защитить от Интернета, и тогда внутреннюю сеть можно считать достаточно безопасной и защищенной для работы и хранения в ней корпоративных данных. Как следствие, конфиденциальная информация передается во внутренней сети в основном в незащищенном виде, и любой сотрудник имеет или может иметь к ней неограниченный доступ. Представьте, что в доме устанавливают бронированную парадную дверь, но при этом черный ход не запирают в надежде, что никто не обойдет вокруг дома и не найдет его.

Прокси-серверы

Самое распространенное средство ограничения доступа в Интернет – это прокси-сервер. Веб-браузер, запущенный на персональной рабочей станции, не может напрямую подключаться через корпоративный межсетевой экран к любому веб-серверу в Интернете, и вместо этого соединение проходит через прокси-сервер, который в свою очередь подгружает контент извне. В большинстве случаев прокси-сервер объединен с механизмом антивирусной защиты и фильтрации нежелательного контента.

Нежелательным контентом могут оказаться такие средства для совместной работы, как Trello или Slack, и часто блокируют даже такие сайты, как GitHub. Все они попадают в потенциально опасную категорию ресурсов для обмена информацией. В зависимости от культурных особенностей, компании также стараются оградить своих сотрудников от порносайтов, интернет-казино или других видов информации, которая считается неприемлемой.

С самого появления прокси-серверов и межсетевых экранов веб-браузерам можно автоматически задать конфигурацию для использования прокси-сервера. Для других средств необходимо установить переменную среды, такую как http_proxy , и указать имя хоста и порт прокси-сервера. Именно здесь и происходит первое реальное нарушение основополагающих правил информационной безопасности: если сам прокси-сервер требует аутентификации, то сотрудники вынуждены указывать свое имя пользователя и пароль открытым текстом, например так:

http_proxy=http://username:password@10.203.0.1:5187/

Вкупе с правилами, которые предусматривают обязательную смену пароля учетной записи каждые n дней, происходит не только нарушение правил, но и возникает реальная проблема для сотрудника. Это просто-напросто бестолковая реализация идеи, которая кажется хорошей на первый взгляд.

Теперь можно пойти еще дальше.

Большая часть используемых средств разработки ПО поддерживает возможность указать прокси-сервер, а также позволяет составить перечень ресурсов, для которых прокси-сервер использовать не следует. Настоящий кошмар начинается, когда разработчик сталкивается с ситуацией, в которой средства разработки конфликтуют между собой или просто не существует способа задать верную конфигурацию прокси-сервера на виртуальной машине, которую часто повторно создают другие люди. Распространенный обходной прием – использование так называемой технической учетной записи, но это всего лишь полумера, которая позволяет еще чуть дольше не отказываться от плохого решения.

Прокси-серверы создавались для экономии сетевого трафика

Поскольку я застал появление Интернета, когда подключение было узкополосным, не могу не упомянуть, зачем на самом деле создавались прокси-сервера, такие как Squid. В те годы канал подключения к Интернету со скоростью 64 кбит/с на всю компанию уже считался неплохим. О потоковой передаче видео можно было только мечтать. В такой ситуации было весьма целесообразно кэшировать контент с часто посещаемых веб-сайтов, таким образом повышая скорость доступа в Интернет. Прокси-серверы были предназначены для кэширования, а не для обеспечения безопасности и тем более не для фильтрации контента.

Прокси-сервер действительно решает проблему или нет?

Прежде всего, я предлагаю рассмотреть проблему, которую необходимо решить.

У проблемы три аспекта.

  • Мы хотим защитить данные, которые принадлежат клиентам.
  • Мы хотим защитить информацию компании от утечки.
  • Мы хотим защитить системы от ущерба, который, например, могут нанести вирусы.

Если бы единственной необходимостью был просмотр сайтов в Интернете – как это происходит при пассивном чтении – прокси мог бы решить проблему. Однако времена такого использования Интернета давно прошли.

Разработка ПО – это вид деятельности, предполагающий активную совместную работу, и эта совместная работа не ограничивается только штатными сотрудниками компании. Обмен информацией – это норма, а не редкий случай, который можно отслеживать и контролировать.

Следовательно, возможно, нам следует обратить внимание на то, что мы действительно хотим защитить, и выработать подход для конкретного случая вместо того, чтобы пытаться придерживаться универсального подхода, который с большой вероятностью приведет к непреднамеренным побочным эффектам.

Защита данных клиентов

Сегодня хорошие рекомендации по обеспечению надлежащей защиты данных клиентов можно найти в законодательстве Европейского союза по защите данных:

Общий регламент по защите данных (GDPR) определяет псевдонимизацию как процесс, необходимый при хранении данных (в качестве альтернативы другому варианту – полному обезличиванию данных) для преобразования персональных данных таким образом, чтобы данные, полученные по завершению данного процесса, было невозможно связать с конкретным субъектом данных без использования дополнительной информации. Пример тому – шифрование, при котором исходные данные становятся нечитаемыми, а процесс является необратимым без доступа к правильному ключу расшифрования. Общий регламент по защите данных устанавливает требования, согласно которым дополнительная информация (такая, как ключ расшифрования) должна храниться отдельно от псевдонимизированных данных.

Данные клиентов должны храниться в зашифрованном виде, и расшифровать их должен иметь возможность только уполномоченный пользователь. Хранение данных в открытом виде совершенно не оправдано.

На рисунке ниже показана соответствующая структура сети:

Зашифрованные данные клиентов, защищенные от внешних и внутренних злоумышленников

После шифрования данных степень тяжести последствий несанкционированного доступа значительно снижается. Без ключа данные использовать невозможно. Да, мне известно, что при наличии времени и приложении достаточных усилий шифрование можно взломать. Однако дело в том, что шифрование позволяет значительно снизить такие риски, как несанкционированный доступ, утечка информации и др., а при очень низком уровне риска нецелесообразно ударяться в крайности, пытаясь предотвратить потенциально нежелательное событие.

Безусловно, необходимо обеспечить надежную защиту ключей для расшифрования данных. То есть, только самих ключей, а не нескольких гигабайтов данных.

Для этого существует механизм контроля и управления доступом. Секретная информация (пароль) для получения доступа может использоваться для расшифрования ключа, который после этого может использоваться для шифрования и расшифрования информации, принадлежащей этому конкретному пользователю. Таким образом, доступ к информации может получить только пользователь. Для всех остальных информация продолжает оставаться нечитаемыми и бесполезными данными.

Защита информации компании

При условии, что данные клиентов уже защищены шифрованием, остается защитить то, что можно назвать коммерческой тайной. Это корпоративная информация, которая не должна попасть к конкурентам. Например, сведения о текущей разработке нового продукта либо ноу-хау.

Самый важный рубеж обороны в обеспечении защиты корпоративной информации – это лояльность всех сотрудников, работающих с такой информацией. Недовольный сотрудник может намеренно раскрыть данную информацию. Конкуренты могут попытаться переманить сотрудников компании к себе, чтобы завладеть их знаниями. И даже если такие сотрудники не выдадут коммерческую тайну бывшего работодателя в явном виде, тем не менее, они могут использовать свои знания и навыки в дальнейшей работе на конкурентов.

Поэтому самый разумный способ обеспечить защиту корпоративной информации – это не давать сотрудникам никаких оснований становиться нелояльными, чтобы у них не возникло желания раскрывать коммерческую тайну или увольняться, забирая коммерческую тайну с собой. Стереть информацию из памяти человека невозможно, и даже положения трудового договора, устанавливающие запрет на использование полученных знаний после увольнения или на работу в интересах прямого конкурента, часто оспаривают либо обходят.

Наиболее эффективно защитить конфиденциальную информацию можно путем ограничения круга лиц, имеющих к ней доступ. Чем меньшему числу сотрудников приходится работать с конфиденциальной информацией, тем ниже будет вероятность ее умышленного или неумышленного раскрытия.

Никакой межсетевой экран и никакие ограничения доступа в Интернет не помешают раскрыть информацию человеку, который поставил перед собой такую цель. Я работал в компаниях с очень строгими правилами безопасности на нескольких уровнях. На первый взгляд, целесообразно ввести на предприятии самый строгий режим безопасности, который предусматривает осмотр личных вещей при входе и выходе, а также устанавливает запрет на использование сотовых телефонов. Тем не менее, утечки информации так или иначе происходит и в таких компаниях.

Однако, в действительности у большей части компаний нет коммерческих тайн, требующих защиты. Такие меры безопасности обусловлены скорее стремлением защитить данные клиентов или обеспечить соответствие нормативным требованиям. Если у компании действительно есть секретная информация, то она играет по другим правилам, поэтому ей следует спроектировать безопасную рабочую среду с привлечением специалистов. На ум приходят военные стандарты информационной безопасности.

Защита систем от вредоносного ПО и сетевых атак

Перед обеспечением защиты всегда полезно сначала провести оценку риска. Важность оценки риска возрастает даже еще больше, когда защиту на все 100% обеспечить невозможно, за исключением случаев, когда объект защиты отсутствует. Большой опыт в данной области накоплен в таких отраслях, как авиация. Как пилот, имеющий допуск по правилам полетов по приборам, могу сказать, что при выполнении полетов в сложных метеорологических условиях я ожидаю, что произойдут определенные отказы. Я не отменяю полет из-за облачности или вероятности гроз. При этом я обязательно оцениваю риск и разрабатываю планы по снижению риска. Если метеоусловия ухудшатся, я могу изменить маршрут полета или даже уйти на запасной аэродром. Если произойдет отказ одной из бортовых систем, я могу продолжить полет с использованием резервной системы или выполнить посадку из предосторожности. Именно по этой причине критически важные системы самолета дублируются. Такой принцип также называют моделью швейцарского сыра – [Swiss Cheese Model].(https://en.wikipedia.org/wiki/Swiss_cheese_model).

Модель швейцарского сыра можно применить к компьютерным сетям и программным комплексам.

Предположим, что с внешней стороны нашей сети установлен простой межсетевой экран. Настройки межсетевого экрана пропускают весь сетевой трафик изнутри во внешнюю сеть (это означает открытый доступ к Интернету), и мы используем NAT (трансляцию сетевых адресов). Данный межсетевой экран с NAT – это наш первый рубеж обороны или первый ломтик швейцарского сыра. Да, в этом ломтике есть дырки, но, тем не менее, отсутствует прямой способ установить подключение ко внутренней системе извне.

Простая сеть с ДМЗ

Одна из внутренних систем может опосредованно установить соединение с внешней сетью и начать передачу данных. На этот случай потребуется еще один ломтик швейцарского сыра, и необходимо позаботиться о том, чтобы дырки в ломтиках не накладывались друг на друга и не позволяли проблеме пройти насквозь. Можно использовать операционную систему, менее уязвимую к атакам и вредоносному ПО. Такие UNIX-подобные операционные системы, как Linux или Apple OS X, известны своей большей степенью защиты по сравнению с обычной Microsoft Windows. Можно также установить межсетевой экран напрямую в системе, которую необходимо защитить, и закрыть для этой системы многие каналы связи. Либо можно создать подсеть, защищенную еще одним межсетевым экраном с более строгими правилами.

Сеть с изолированными сегментами

Конкретные действия определяются на основе угрозы, от которой необходимо защититься, с учетом возможностей используемых устройств и систем по противодействию атакам. У этого вопроса есть еще одна важная сторона – потенциальный ущерб, который может нанести успешная атака, или последствия отказов, вызванных заражением вредоносным ПО.

Существуют примеры и из других отраслей, которые можно взять на вооружение. Корабли и подводные лодки проектируют таким образом, что пробоина в корпусе не приводит немедленно к фатальным последствиям. Подводная лодка сразу не тонет. Конструкторам подводных лодок удается добиться сохранения плавучести и снижения риска за счет независимых отсеков. Если подводная лодка получает пробоину, люк быстро герметизируется, изолируя пробоину. Данный отсек может полностью заполниться водой, что приведет к увеличению массы, но остальные отсеки останутся в безопасности, поэтому подводная лодка сохранит плавучесть.

В отношении компьютерных сетей это означает, что необходимо создать подобные сегменты-отсеки, допуская, что посторонние лица могут получить несанкционированный доступ к сетям. После чего необходимо позаботиться о том, чтобы критически важная информация и системы, необходимые для осуществления операционной деятельности компании, не размещались в одной и той же сети – отсеке, который может получить пробоину – и за счет этого создается еще один ломтик швейцарского сыра.

Надежная защита редко бывает удобной. Надежные меры безопасности предполагают низкую степень доверия, и на их преодоление требуется много времени. Поэтому в качестве одного из элементов надежной системы информационной безопасности изначально закладывается ее способность задержать потенциального злоумышленника с тем, чтобы иметь возможность обнаружить атаку, проводимую в данный момент. В физическом мире системы безопасности делают многоуровневыми для того, чтобы на прорыв каждого из уровней требовалось время. В компьютерной сети межсетевой экран может не только отклонять попытки установления соединения, но и поглощать TCP-пакеты, таким образом вызывая задержки, которые снижают скорость работы средств, используемых злоумышленником.

Повышение степени защиты путем физической изоляции сетей

При наличии конфиденциальной информации, действительно требующей особой защиты, такая информация просто-напросто не должна размещаться ни в какой сети, подключаемой куда-либо. Возможно, потребуется применить настолько серьезный подход, что в нем будет учитываться даже радиоизлучение от сетевых кабелей и самой компьютерной системы.

На рисунке схематично показано, как можно обеспечить более высокий уровень безопасности:

Передача данных при физической изоляции сетей

Вместо подключения сети с конфиденциальными данными и уязвимыми системами к другой сети применяется физическая изоляция (air gap). Для переноса данных через данный физический барьер можно использовать такие одноразовые носители, как DVD-диски или USB-накопители. Что касается USB-накопителей, я бы рекомендовал закупать их случайным образом у разных компаний, которые, скорее всего, не являются регулярным поставщиком организации. Это дает еще один уровень защиты от злоумышленников, которые пытаются подсунуть компании USB-накопители с предварительно записанным на них вредоносным ПО. Кроме того, я бы использовал любой носитель только один раз и только в одном направлении передачи данных.

Несомненно, применение физической изоляции сетей не подходит для любого онлайн-приложения. Но если данные являются настолько конфиденциальными, то, вероятно, им там в любом случае не место или как минимум не в открытом виде.

Еще одним доводом в пользу применения физической изоляции может быть защита данных от изменения посторонними лицами. Возможно, это учетная система (system of record), которую необходимо защитить от вредоносного ПО, которое злоумышленник может применить для внесения изменений в данные.

Физическая изоляция сетей вкупе с другими мерами безопасности, такими, как антивирусная проверка и другие системы проверки, а также контрольным журналом, проверкой достоверности данных и др., может значительно улучшить защиту.