Почему Cisco AnyConnect — это не просто VPN-клиент
На прошлой неделе вышла у меня дискуссия на тему удаленного доступа и различных VPN-клиентов, которые можно поставить на рабочее место сотрудника, отправляемого работать домой. Один коллега отстаивал «патриотическую» позицию, что надо использовать «абонентские пункты» к отечественным шифраторам. Другой настаивал на применении клиентов от зарубежных VPN-решений. Я же придерживался третьей позиции, которая заключается в том, что такое решение не должно быть придатком периметрового шифратора и даже не клиентской частью VPN-шлюза. Даже на производительном компьютере не совсем правильно ставить несколько защитных клиентов, которые будут решать разные задачи — VPN, идентификация/аутентификация, защищенный доступ, оценка соответствия и т.п. Идеально, когда все эти функции, а также иные, объединены в рамках единого клиента, что снижает нагрузку на систему, а также вероятность несовместимости между различным защитным ПО. Одним из таких клиентов является Cisco AnyConnect, о возможностях которого я бы и хотел вкратце рассказать.
Cisco AnyConnect является логичным развитием Cisco VPN Client, который за много лет не только был русифицирован, но и обогатился множеством различных функций и возможностей для защищенного удаленного доступа к корпоративной или облачной инфраструктуре с помощью одного из трех протоколов — TLS, DTLS и IPSec (поддерживается также FlexVPN). Первый из них является достаточно традиционным для VPN-клиентов и использует TCP как транспортный для своей работы. Однако туннелирование через TLS означает, что приложения, основанные на TCP, будут его дублировать (один раз для организации TLS, второй — для своей работы уже внутри TLS). А протоколы на базе UDP будут… все равно использовать TCP. Это может привести к определенным задержкам, например, для мультимедиа-приложений, которые являются очень популярными при удаленной работе. Решением этой проблемы стала разработка протокола DTLS, который вместо TCP задействует UDP для работы TLS. AnyConnect поддерживает обе реализации TLS — на базе TCP и UDP, что позволяет гибко их использовать в зависимости от условий удаленной работы. Обычно TCP/443 или UDP/443 разрешены на межсетевых экранах или прокси и поэтому использование TLS и DTLS не составляет большой проблемы. Но в ряде случаев может потребоваться применение протокола IPSec, который также поддерживается AnyConnect’ом (IPSec/IKEv2).
А на каких устройствах может терминироваться VPN-туннель, создаваемый AnyConnect? Я просто их перечислю:
- Межсетевые экраны Cisco ASA 5500 и Cisco ASA 5500-X
- Многофункциональные защитные устройства Cisco Firepower
- Виртуальные МСЭ Cisco ASAv и Cisco ASAv в AWS и Azure
- Маршрутизаторы Cisco ISR 800/1000/4000 и ASR 1000 c сетевой ОС Cisco IOS или Cisco IOS XE
- Виртуальные маршрутизаторы Cisco CSR 1000v, а они развернуты в том числе и ряда российских облачных провайдеров.
Интересно, что в отличие от многих других VPN-клиентов, у вас существует множество вариантов инсталляции Cisco AnyConnect на персональный компьютер или мобильное устройство ваших работников. Если вы выдаете им такие устройства из собственных запасов или специально покупаете для сотрудников ноутбуки, то вы можете просто предустановить защитного клиента вместо с остальным ПО, требуемым для удаленной работы. Но что делать для пользователей, которые находятся далеко от корпоративных ИТ-специалистов и не могут предоставить им свой ноутбук для установки нужного ПО? Можно, конечно, задействовать и специализированное ПО типа SMS, SCCM или Microsoft Installer, но у Cisco AnyConnect есть и другой способ установки — при обращении к упомянутому VPN-шлюзу клиент сам скачивается на компьютер пользователя, работающий под управлением Windows, Linux или macOS. Это позволяет быстро развернуть VPN-сеть даже на личных устройствах работников, отправленных на удаленную работу. Мобильные же пользователи могут просто скачать Cisco AnyConnect из Apple AppStore или Google Play.
Но как я уже выше написал, Cisco AnyConnect, это не просто VPN-клиент, это гораздо больше. Но я бы не хотел переписывать здесь документацию на него, а попробовать описать ключевые функции в режиме вопросов и ответов на них (FAQ).
А как я могу гарантировать, что домашний пользователь не подцепит ничего в Интернет?
В AnyConnect есть такая функция — Always-On VPN, которая предотвращает прямой доступ в Интернет, если пользователь не находится в так называемой доверенной сети, которой может быть ваша корпоративная инфраструктура. Но обратите внимание, что данная функция работает очень гибко. Если пользователь находится в корпоративной сети, VPN автоматически отключается, а при ее покидании (например, если пользователь работает с ноутбука, планшета или смартфона), VPN опять включается; причем прозрачно и незаметно для пользователя. Тем самым пользователь всегда будет находиться под защитой корпоративных средств защиты, установленных на периметре, — межсетевого экрана, системы предотвращения вторжений, системы анализа аномалий, прокси и т.п. Многие компании, выдавая удаленным работникам корпоративные устройства, ставят условие использования их только для служебных целей. А чтобы контролировать исполнение этого требования включают в AnyConnect настройки, запрещающие пользователю ходить в Интернет напрямую.
А могу ли я шифровать не весь трафик, а только корпоративный?
Функция Always-On VPN очень полезна для защиты удаленного доступа с выданных вами устройств, но далеко не всегда мы можем заставить пользователя делать то, что хотим мы, особенно если речь идет о его личном компьютере, на котором мы не можем устанавливать свои правила. И пользователь не захочет, чтобы его личный трафик проходил через корпоративный периметр и ваши администраторы следили за тем, какие сайты пользователь посещает во время надомной работы. Как говорится, «сложно говорить о морали с администратором, который видел логи вашего прокси» 🙂
В этом случае на Cisco AnyConnect можно включить функцию split tunneling, то есть разделения туннелей. Одни виды трафика, например, до корпоративной инфраструктуры и рабочих облаков трафик будет шифроваться, а трафик до соцсетей или онлайн-кинотеатров будет идти в обычном режиме, без защиты со стороны AnyConnect. Это позволяет учесть интересы и компании и ее работников, вынужденных делить персональный компьютер сотрудника между двумя областями жизни — личной и служебной. Но стоит помнить, что функция split tunneling может снизить защищенность вашей сети, так как пользователь может подцепить какую-нибудь заразу в Интернет, а потом уже по защищенному каналу она попадет в внутрь компании.
А могу ли я шифровать трафик определенных, например, корпоративных, приложений?
Помимо разделения трафика по принципу «доверенный/недоверенный», Cisco AnyConnect поддерживает функцию Per App VPN, которая позволяет шифровать трафик отдельных приложений (даже на мобильных устройствах). Это позволяет шифровать (читай, пускать в корпоративную сеть) только определенные приложения, например, 1C, SAP, Sharepoint, Oracle, а тот же Facebook, LinkedIn или персональный Office365 пускать в обход корпоративного периметра. При этом для разных групп удаленных устройств или пользователей могут быть свои правила безопасности.
А ведь пользователь может подцепить вредонос на домашний компьютер, который затем попадет в корпоративную сеть. Как с этим бороться?
С одной стороны Cisco AnyConnect может проверять наличие у вас системы защиты Cisco AMP for Endpoints и устанавливать ее при отсутствии. Но возможно у пользователя уже установлен собственный антивирус или этот антивирус уже был установлен вами при переводе работников на удаленную работу. Однако все мы знаем, что антивирус сегодня ловит очень мало серьезных угроз и неплохо бы дополнить его более продвинутыми решениями по обнаружению вредоносных программ, аномалий и иных атак. Если в вашей корпоративной инфраструктуре развернуто решение Cisco Stealthwatch, то вы можете легко интегрировать с ним и агенты Cisco AnyConnect, установленные на домашних компьютерах ваших работников. В AnyConnect встроен специальный модуль Network Visibility Module (NVM), который транслирует активность узла в специально разработанный для этой задачи протокол nvzFlow, который дополняет ее дополнительной информацией и передает на Netflow-коллектор, которым может являться как Cisco Stealthwatch Enterprise, так и какой-либо SIEM, например, Splunk. Среди прочего NVM-модуль может передавать следующую информацию, на базе которой можно выявлять аномальную и вредоносную активность на домашнем компьютере, которая осталась незаметной для установленного антивируса:
- данные сетевой активности в схожем с IPFIX формате
- идентификатор, адрес и имя устройства
- имя пользователя
- тип учетной записи пользователя
- имена и идентификаторы запускаемых процессов и приложений, включая и данные по их «родителям».
А как мне аутентифицировать пользователей?
Когда пользователи работают на корпоративных компьютерах, то они проходят аутентификацию обычно в Active Directory или ином LDAP-справочнике. Хочется получить такую же возможность и при удаленном доступе и Cisco AnyConnect позволяет ее реализовать за счет поддержки аутентификации по логину/паролю, включая и одноразовые пароли (например, LinOTP), пользовательским или машинным сертификатам, аппаратным токенам (например, смарт-картам или Yubikey), и даже биометрии и иным способам многофакторной аутентификации. Все эти варианты могут быть легко интегрированы с вашими решениями по управлению идентификацией и аутентификацией с помощью протоколов RADIUS, RSA SecurID, SAML, Kerberos и т.п.
А если я использую облачные платформы, например, Amazon AWS или MS Azure, то как мне защитить доступ домашних пользователей к ним?
У Cisco существует виртуальный маршрутизатор Cisco CSR 1000, который может быть развернут в облачных средах, например, в Amazon AWS или MS Azure, и который может терминировать на себе VPN-туннели, создаваемые Cisco AnyConnect.
Если пользователь работает с личного устройства, то как мне повысить защищенность своей сети при таком доступе?
Давайте попробуем прикинуть, что может плохого или неправильного сделать пользователь на компьютере при удаленной работе? Установить ПО, содержащее уязвимости, или просто не устранять их своевременно с помощью патчей. Не обновлять свой антивирус или вообще его не иметь. Использовать слабые пароли. Установить ПО с вредоносным функционалом. Это то, что может поставить вашу корпоративную сеть под угрозу и никакой VPN вас не защитит от этого. А вот Cisco AnyConnect может за счет функции оценки соответствия, которая позволяет перед предоставлением доступа удаленного компьютера к корпоративным ресурсам проверить все необходимые и требуемые ИТ/ИБ-политиками настройки — наличие патчей, актуальные версии ПО, обновленный антивирус, наличие средств защиты, правильную длину пароля, наличие шифрования жесткого диска, определенные настройки реестра и т.п. Реализуется данная возможность либо с помощью функции Host Scan (для этого нужна Cisco ASA в качестве шлюза удаленного доступа), либо с помощью функции System Scan, которая обеспечивается с помощью системы контроля сетевого доступа Cisco ISE.
А если я работаю с планшета или смартфона и постоянно перемещаюсь. У меня будет рваться VPN-соединение и мне надо будет каждый раз устанавливать его заново?
Нет, не надо. В Cisco AnyConnect встроен специальный роуминговый модуль, который позволяет не только автоматически и прозрачно переподключать VPN при переходе между различными типами подключений (3G/4G, Wi-Fi и т.п.), но и автоматически защищать ваше мобильное (ведь вряд ли вы будете носить с собой стационарный домашний компьютер) устройство с помощью решения Cisco Umbrella, которое будет инспектировать весь DNS-трафик на предмет доступа к фишинговым сайтам, командным серверам, ботнетам и т.п. Подключение к Umbrella потребуется в том случае, если вы разрешили пользователю функцию split tunneling и он может подключаться к различным ресурсам Интернет напрямую, минуя шлюз удаленного доступа. Модуль подключения к Cisco Umbrella будет полезен даже в том случае если вы не используете VPN — тогда весь трафик будет проверяться через этот защитный сервис.
А ваш AnyConnect не снизит качество видео- и голосовых телеконференций?
Нет. Как я уже описывал выше, Cisco AnyConnect поддерживает протокол DTLS, который специально ориентирован на защиту мультимедиа-трафика.
На самом деле Cisco AnyConnect обладает куда большим количеством возможностей. Он может работать в скрытом режиме, динамически выбирать наиболее оптимальный шлюз удаленного доступа, поддерживает IPv6, имеет встроенный персональный межсетевой экран, мониторится удаленно, обеспечивает контроль доступа, поддерживает RDP и т.п. А еще он русифицирован, чтобы у пользователей не возникало вопросов относительно тех редких сообщений, которые Cisco AnyConnect может выдавать. Так что Cisco AnyConnect — это не просто VPN-клиент, но гораздо более интересное решение для обеспечения защищенного удаленного доступа, который в последние недели начинает набирать популярность из-за пандемии коронавируса, заставляющего работодателей переводить отдельные категории своих работников на удаленку.
- Блог компании Cisco
- Информационная безопасность
MacOS Cisco Anyconnect System Extension
The latest version of AnyConnect leverages the System Extension framework available in macOS 11 (Big Sur) and above. There are important changes in approving the AnyConnect system extension, as detailed in the next section.
About the AnyConnect System Extension
AnyConnect uses a network system extension on macOS 11, bundled into an application named Cisco AnyConnect Socket Filter. (This app controls the extension activation and deactivation and is installed under /Applications/Cisco.)
The AnyConnect extension has the following three components:
- DNS proxy
- App/Transparent proxy
- Content filter
These components are visible in the macOS System Preferences – Network UI window:
AnyConnect requires its system extension and all its components to be active in order to operate properly, which implies that the mentioned components are all present and show up as green/running in the left pane of the macOS Network UI, as per above screenshots.
Approving the AnyConnect System Extension
The AnyConnect system extension and its content filter component can be approved by the end user, following either the OS prompts, or the more explicit AnyConnect Notification app’s instructions.
After opening the Security & Privacy Preferences window, click the bottom-left lock and provide the requested credentials, as prompted, to unlock it and allow changes. The window’s appearance depends on whether the AnyConnect extension is the only one requiring approval. If that’s the case, simply click the Allow button.
Otherwise click the Details button, then select the Cisco AnyConnect Socket Filter check box and click OK.
Shortly after approving the AnyConnect extension, the user is shown another popup, this time for approving the extension’s content filter component.
After the extension’s content filter approval is complete, the extension and its components should be active, as confirmed by the AnyConnect Notification app.
AnyConnect Extension Deactivation
During AnyConnect removal, the user is prompted for admin credentials in order to approve the system extension deactivation:
What Are Socket Filters and What Do They Do?
My company recently required me to install Cisco AnyConnect on my privately used MacBook Pro in order to connect to the company VPN. At seemingly random times after installation this message keeps popping up: I keep refusing the request and the VPN works anyway, but the message keeps showing up which is really annoying. When you accept it, AnyConnect will add these Socket Filters in Network Preferences: The filters are always running and connected to something, even if the VPN is disconnected. What are they actually doing? How can I permanently refuse the installation of these socket filters?
asked Mar 26, 2022 at 10:46
267 2 2 gold badges 4 4 silver badges 10 10 bronze badges
2 Answers 2
A socket filter is a means to listen to a particular network socket and communicate with an application.
In Cisco AnyConnect’s case, the fact that their socket filters show as ‘running’ is a poor choice of naming — they are running in the context of the local system, but are not communicating anything back to any external host. You can test this by disabling all active Internet connections or network services.
If you’re still concerned, create a new network Location from System Preferences > Network, select each Cisco interface and set it to disabled. Then just switch to that location before opening the AnyConnect application and connecting to your organization’s VPN.
answered Mar 26, 2022 at 15:36
5,476 1 1 gold badge 20 20 silver badges 34 34 bronze badges
Excellent idea regarding the different network locations, thank you!
Mar 27, 2022 at 17:30
Note that it is not actually correct that they «are not communicating anything back to the external host» — you cannot know that in the general case. It might be that this particular filter is well-behaved and never does that — but you can’t really know for sure without checking the code of the filter yourself.
Mar 27, 2022 at 21:43
In general, a global socket filter is small program installed on your computer that — when enabled — is able to inspect and edit any socket network data sent and received by programs on your computer.
Socket network data includes communication on your local network and on the Internet — almost all ordinary programs uses socket networking.
The program can chose to do almost anything with the data that flows through it. It can change data that you receive from for example the Internet before it reaches an application, and it can modify data that applications tries to send to the network. All without that application knowing about it.
It is also possible for a socket filter to never modify incoming and outgoing data — but instead just read the data that is passed through it. That can be either something simple like a filter that counts up your network usage in terms of types — or it can be something malicious like waiting for a specific time and then sending copies of your data to a foreign state.
In this specific case, the Cisco claims that their AnyConnect socket filter performs the following three tasks:
- DNS proxying
- App/transparent proxying
- Content filtering
As far as I understand from this document, the DNS proxying feature is meant to ensure that all DNS requests from your computer are routed through the VPN. Any attempts to do DNS lookups from outside the VPN tunnel are blocked.
App/transparent proxying means that when programs on your computer try to communicate with the network, the data they try to send (not the fully network packets) are routed through a proxy server on the other side of the VPN. This essentially allows the VPN server and its proxy server to do various kinds of filtering, blocking, etc.
Content filtering means that data you send and/or receive can be filtered. For example the VPN administrator might decide that any access to facebook.com should be blocked when using the VPN.
Uninstalling Cisco Socket Filter on macOS
There has been an identified issue related to the Cisco AnyConnect Socket Filter application and macOS Ventura. While we do not need the Cisco Socket Filter component for VPN access at Wake Forest, it’s installed by default in the Cisco VPN package. Our testing shows removing this component resolves the connectivity issues. If anyone is currently experiencing this connectivity issue, we recommend that you follow the steps below to delete the Cisco AnyConnect Socket Filter app.
- Open Finder and navigate to Applications > Cisco.
- Delete or drag the Cisco AnyConnect Socket Filter.app to the trash.
- If prompted to delete system extensions, click Continue.
- If prompted to authenticate, enter your computer password and click OK.
If you have questions regarding this issue, please contact the IS Service Desk.
Was this answer helpful? Yes No