-
[Translated by {Iikka}{Yli-Kuivila}
(ITKST56 course assignment at JYU.FI)]
-
33C3 preroll music
-
Herald: Welcome back to the festival
stage, still day two according to my
-
clock, even though I have lost all sense
of time by now, I don't know. It's like a
-
kind of rush year with so many great
talks, and we'll have the next super
-
awesome talk held by Jiska, Gerbert and
Matthias. And those three lovely people
-
will be showing us something about VPNs.
So-called very pwnable networks and why
-
your VPN might not be as secure as you
think or have been led to believe. And
-
this is not only important for the people
that think like, haha, I'm behind seven
-
proxies. You can't catch me. But also,
maybe if your employer says, please use
-
this VPN client and there might be some
surprises waiting for you. And this is
-
again, a pre-recording, and afterwards I
can already see them here in our tools,
-
but afterwards we will do a Q&A session.
So if you have any questions, put them
-
into the IRC or on Twitter or Mastodon
with the hashtag #rc3cwtv. And our lovely
-
Signal Angel will collect them and we'll
see each other after the pre-recording.
-
Jiska: Everyone and welcome to the talk
-
Very Pwnable Network which is by Gerbert,
Matthias and me. So how did all start?
-
Well, I got a little bit paranoid last
year and I just thought it might be a good
-
idea to encrypt a lot because Wi-Fi, LTE,
TLS it might be intercepted, might be
-
decrypted. So we should encrypt like
everyone is watching and so I should use a
-
VPN on top. And then the next trust
assumption was that I connect to my
-
university's network every day, so I
should trust this one anyway. And if I
-
trust this network, then I could also use
this network and their professional VPN
-
service. I hear you laughing, I hear
laughing but so this was my idea because
-
then there is no additional thing that I
trust during my network activity. And
-
well, they had this nice AnyConnect line
that just works on all operating systems.
-
So it also sounds like a great product
name for a secure product like AnyConnect.
-
Yeah. And then I started using this on my
mobile devices, right? And then suddenly I
-
got crash logs and it looked like this. So
I mean, if you're paranoid, you obviously
-
look into your crash logs every two days
and one of these crash logs was this one.
-
It didn't really look nice the address
looks a bit strange, and you also have
-
some trace of the crashed thread. And if
you log this into IDA and do a little bit
-
of reverse engineering, you can also add
some function names in the AnyConnect
-
extension, the AC extension and the crash
is somewhere when it applies VPN config
-
somewhere in the - in the tunnel buffers.
I don't know. So - and then also, the
-
address looks strange because the address
is IP version four backwards and then a
-
few days later I got another crash and
this crash read like 68k New Line. And so
-
it really looked like some configuration
strings that were crashing at certain
-
addresses, so it really didn't look good.
But I also didn't have that much time. So
-
I just wrote Cisco and said, like, so do
you mean to serious like, is your client
-
really crashing that often? Because every
time I do my laundry, I have bad Internet
-
connectivity, so my any - my AnyConnect
client starts to crash at weird addresses.
-
And while this is like an issue for code
execution, the other issue is that if you
-
just jam a few packets over the air, then
an attacker might be able to disconnect
-
the victim from a VPN. So that is also an
issue. So because the AnyConnect client is
-
not properly included in the operating
system iOS, and that means that you would
-
just reconnect and send your messages in
plaintext over the network and the user
-
does not get any notification. It's just a
VPN symbol that has gone and all traffic
-
is sent in plaintext. And I wanted to
analyze this a little bit further and
-
there is a debugging option in the
AnyConnect client. But since it's in the
-
client that crashes, the logs are just
gone. If you have a crash and even worse
-
also the operating system crash logs in
iOS are missing if you have the debugging
-
option enabled. And well they answered:
"We cannot reproduce this". I mean,
-
obviously they didn't help me with my
laundry or anything so they could not
-
reproduce. And even worse, they ignored
the ticket for a long time until we said
-
we are going to present this at this
year's CCC congress. And then 10 days
-
before the talk they claimed that they had
fixed two out of the three crashes and
-
were asking if we could reproduce the
crashes or not. But just a day before they
-
said like they were not sure and so on. So
it was really a weird ticket there and I
-
have no idea if things are fixed or not,
because to reproduce, I obviously need
-
like tinfoil. I need like a couple of
smart phones with the AnyConnect client
-
installed, and then I need to walk around
and hope that the Internet connection
-
breaks and that it breaks in a way that
produces a crash. So this is just way too
-
random. I also told Apple and Apple just
said, Well, the issue is that the client
-
crashes so it's not really their
department, even though it's the network
-
extension that crashes. So it's not their
task here to notify the user. It's just
-
the VPN that is gone. And then you send
data in plaintext and this is all right.
-
This is the expected behavior. So I got a
bit annoyed and stopped using VPNs, but I
-
also had the idea to find students who
might look into this. And well, you know
-
what happens when you find very motivated
students, they find vulnerabilities. And
-
this is what this talk is going to be
about.
-
Gerbert: So we had a look at the Cisco
AnyConnect client for Linux and found some
-
interesting things. Shortly after
publishing our findings, several news
-
articles popped up. But what happened
between the crashes of Jiska and these
-
articles? VPN is interesting because it is
such an old research topic. However, the
-
importance of the technology was later
increased by the corona pandemic. Many
-
companies had to relocate to home offices
to meet the safety measures. VPN allows
-
users from outside to access internal
resources of the company or university. To
-
connect to a VPN server, additional client
software is usually required. Besides open
-
source products, such as openVPN, a lot
of closed source software is offered on
-
the market. Especially in the enterprise
sector. The users are forced to trust this
-
software, install a black box in their
system in order to connect to a network.
-
AnyConnect secure mobility client from
Cisco is an enterprise software solution.
-
AnyConnect can be classified as a remote
access client that allows end-users to
-
connect to a network that supports SSL VPN
and also IPsec. When using SSL VPN the
-
authentication and the establishment of a
VPN tunnel is carried out via an SSL or
-
TLS tunnel. The software acts as a fat
client that communicates with the VPN
-
server via HTTPS. As already mentioned the
source code for AnyConnect is not publicly
-
available. The application is distributed
with compiled binaries and libraries.
-
Although the application is documented, it
does not cover internal functionality.
-
Even the vulnerability disclosures, which
are published in public advisories, do not
-
go into much technical detail. Therefore
there is only limited knowledge about the
-
application and its internal behavior. We
have set ourselves the goal to examine
-
AnyConnect for Linux and iOS in a recent
version. The main functionality of
-
AnyConnect is the establishment of VPN
connections, but this is only the tip of
-
the iceberg. AnyConnect also connects
numerous other features, to name a few:
-
The distribution and execution of scripts
on host systems, automatically updating
-
the software without asking the user for
permission. Another feature is host scan:
-
it does not integrate into AnyConnect, but
it is considered as a standalone software.
-
It works together with the AnyConnect
infrastructure and makes it possible to
-
read out extensive system information of
the host and transmit them to VPN server.
-
The related work of AnyConnect is based on
Cisco's public advisories and blog entries
-
from certain security researchers.
Therefore, we decided to list and
-
categorize all vulnerabilities since 2011.
On this diagram, we see a list of
-
vulnerabilities per year, ordered by
severity. Most of the time reported
-
vulnerabilities are classified as medium,
but even critical vulnerabilities were
-
disclosed in 2011 and 2012. The increased
numbers in 2015 and 2016 caused numerous
-
vulnerabilities of libraries such as
OpenSSL. The vulnerabilities were then
-
divided into categories and illustrated in
the diagram. Cryptographic vulnerabilities
-
are the most common as AnyConnect uses
OpenSSL and vulnerabilities in OpenSSL are
-
also vulnerabilities in AnyConnect.
However, excluding the third-party
-
vulnerabilities, the category of most
vulnerabilities affecting AnyConnect would
-
be privilege escalations. Closely followed
by denial of service attacks, which are
-
often directed against the running
application in order to disrupt the VPN
-
connection. Overflow vulnerabilities or
version downgrades
-
These results gave us a little insight
about the flaws of the past.
-
Matthias: So before we will pass over to
the reversing parts, we want to give you a
-
quick experience report regarding Cisco's
licensing support. Cisco ASA is a typical
-
server endpoint for Cisco AnyConnect,
which is available as hardware appliance
-
and also as a virtual version running on,
for example, VMware. At the beginning of
-
our research, we tried to obtain an
official evaluation license for Cisco
-
ASAv, while never hiding the purpose of
wanting to use it for security research.
-
Therefore our naive approach was to just
write the Cisco licensing support. It was
-
more or less like: Hi, we are doing
security research on the Cisco AnyConnect
-
clients. Could you offer us free evalution
licenses for Cisco ASAv? Cisco replied:
-
Sure. Please let me know the amount of
licenses that you need. At that point, we
-
were a bit surprised because it just
seemed a bit too easy. But then we had
-
three 60-day licenses added to our
account. But as soon as we tried to
-
download the ASAv image for VirtualBox, we
got this error. Maybe some kind of error
-
on the license was not applied correctly,
because if you have the license for
-
products, you can of course download it,
right? Um yeah, but it seemed that our
-
approach was a little bit naive and we
underrated the complexity of enterprise
-
software licensing. So it was a bit
unsatisfying. But we had an idea. We asked
-
the data center of our university for help
as university was using Cisco AnyConnect
-
too. But we never got any response. We
still had some options, but at some point
-
we just gave up.
G: As there is no proper documentation for
-
AnyConnect yet, it was initially necessary
to understand the application and to
-
filter out its central components.
Therefore, we had no choice but to reverse
-
engineer the application. We analyzed the
application files and network traffic.
-
In order to better understand the applica-
tion we used standard tools like Ghidra
-
for static code analysis. The Ghidra is
able to decompile the source code of the
-
compiled binary or library. For dynamic
application analysis we used tools like
-
Frida, Burp and Wireshark. Frida can be
used to attach to running processes and to
-
understand the program flow. Burp was used
as a proxy to view and modify https
-
messages, and Wireshark is used to capture
and decrypt message traffic. Let's take a
-
closer look at the binaries of all the
files first. AnyConnect comes with a large
-
number of binaries. While reversing we
could identify three central parts of the
-
application: vpnui is a binary a user
interacts with. It offers the graphical
-
user interface, where the user can make
simple settings or initiate a VPN
-
connection. The second binary is
vpnagentd. It runs as a daemon in the
-
background at all times, even when no VPN
connection is open. The special thing
-
about vpnagentd is that it runs as a root
process and always listens on a static
-
port. Its purpose is to set up the VPN
tunnel and the network configuration of
-
the host system. This includes setting up
routes or DNS servers. The third and last
-
binary is the vpndownloader. As the name
hints, the purpose of the binary is to
-
download additional files when
establishing a VPN connection. This
-
includes VPN profiles, help files and
scripts. The binary exchanges data with
-
each other via inter-process communication
or short IPC. The IPC takes place via TCP
-
sockets. The binary data format for - that
Cisco has defined is used to exchange the
-
messages on the TCP sockets. In addition
to the binaries, AnyConnect also contains
-
numerous libraries. Many of them are ports
of existing open source libraries like
-
OpenSSL. The most important libraries are
shown on this slide: libvpnapi.so contains
-
interfaces and functions for the backend
logic of user interfaces. The goal of the
-
library is that it com - that companies
can create their own VPN applications
-
using the AnyConnect infrastructure. It is
the only library for which documentation
-
is actually provided by Cisco.
Libvpncommoncrypt serves as a wrapper for
-
OpenSSL and NSS libraries. NSS is similar
to OpenSSL and is used by browsers like
-
Mozilla Firefox to enable SSL and TLS
connections. It also provides its own
-
certificate store. Libvpncommon is another
central library used by all binaries. It
-
provides classes and functions for the IPC
logic. It can be used to create, send or
-
validate lPC messages. The next library,
libvpnagentutilities, contains classes and
-
functions that handle critical operations,
such as host network settings. This
-
library is only used by vpnagentd. Besides
the binaries and libraries there are a
-
variety of other relevant files that we
have taken a closer look at. AnyConnect
-
offers an AnyConnect local policy XML
file. This file regulates various security
-
configurations. For instance, it can be
used to specify that no further files may
-
be downloaded or that version updates may
be carried out by a VPN server. In its
-
default configuration it is very
permissive so that almost everything is
-
allowed. The file is not overwritten by
updates and cannot be modified by VPN
-
servers. The VPN profile is also in XML
format: it contains further settings. The
-
green highlighted line shows an
EnableScripting-tag with a boolean value
-
of false. Indicating that scripts should
not be executed by the host system.
-
Profile files are distributed by a VPN
server. And are overwritten the next time
-
a user connects and changes them. The last
file is VPNManifest.dat which has a binary
-
data format that contains the version
number of AnyConnect. This file is used to
-
check the installed version of AnyConnect
before an version update. In addition to
-
all these files, the message traffic also
plays a central role. The establishment of
-
a VPN connection is structured in three
phases. Phase one is the authentication.
-
The user enters the IP or domain of a VPN
server in vpnui. The target server is then
-
sent via IPC message to vpnagentd. As a
response vpnui receives various system
-
information back. This includes the
operating system or a whole study.
-
Afterwards this information and the
credentials are sent to the VPN server
-
with HTTPS. The ASA returns server
parameters in a HTTPS response. Let's take
-
a closer look at the request and the
response. On the left side, you can see
-
the request. It is an ordinary post
request with an XML in which the
-
credentials are transferred. The
credentials are marked in green.
-
On the right side we see the response. The
response contains the session token, which
-
is also marked in green. In addition, the
response contains the URLs to all
-
downloadable files and the hashes. The
orange marked string is one of the
-
downloadable files. The download phase is
the second phase of the VPN connection set
-
up. First vpnui executes the vpndownloader
binary. Then the server parameters from
-
the previous HTTPS response are
transferred to the vpndownloader via IPC.
-
The URLs are extracted from the IPC
message and when the files are downloaded
-
to a temporary directory via HTTPS. The
downloader process informs the vpnagentd
-
via IPC to move the files to the
application directory. In the third and
-
final phase of VPN connection set up,
vpnui sends an IPC message to vpnagentd
-
with the request to establish a VPN
tunnel. Subsequently, the exchange of
-
tunnel parameters takes place via HTTPS.
After the parameters have been set by
-
vpnagentd the VPN session continues. Let's
take a closer look at the tunnel
-
parameters. On the left side, we can see
the request. In the first line you can
-
observe the HTTP connect method. Usually
this method is used to proxies to forward
-
the request to the target server. Within
the request, the session token is
-
specified in the cookie header. This is
the same session token we received in the
-
authentication phase. The different tunnel
parameters transmitted in separate HTTP
-
headers. The part marked in red represents
the local IP address of the host. On the
-
right, you can see a response to the
request. For example, the X-CSTP-Address
-
header contains the IP address that the
host should apply on its tunnel interface.
-
In the part marked in red we now also see
the DNS server for the VPN
-
connection. In addition, the address
ranges that should be routed via the VPN
-
server as specified in the X-CSTP-Split-
Include header. Now that we have a general
-
understanding of the application, let's
move on to the vulnerability research. We
-
have performed an design analysis for
AnyConnect in which we looked at the IPC
-
messages in more detail. We need to define
certain security assumptions and an
-
attacker model before we search for
vulnerabilities. This slide shows several
-
of our assumptions. Cryptographic
algorithms within the application are
-
considered secure and cannot be broken in
exponential time. An attacker cannot read
-
or modify messages regardless of their
position, and we assume that the VPN
-
server does not pursue any malicious
intent and only sends valid messages that
-
are protocol compliant. We assume a local
attacker who is already able to execute
-
commands on the system and the attackers
goal is to compromise the confidentiality,
-
integrity and availability of the system
or application. Privilege escalation
-
vulnerabilities are also covered since
they allow an attacker to compromise these
-
three security objectives. Cisco decided
to include an auto update feature in the
-
application. AnyConnect is able to receive
AnyConnect updates through a VPN server
-
without any user interaction. In its
default configuration AnyConnect can be
-
updated by a VPN server that offers a
newer version. From a security
-
researcher's perspective auto update
sounds promising, right? So let's take a
-
closer look at the auto update feature.
First, the vpndownloader downloads an
-
executable installer and the shell script
called vpndownloader.sh. Then
-
vpndownloader.sh is executed. The Shell
script contains an archive and unpacks
-
itself to extract a new version of the
vpndownloader. An IPC message is then sent
-
to the vpnagentd asking it to start the
installer. The vpnagentd does not start
-
the installer directly. Instead the
vpnagentd calls the vpndownloader with
-
root privileges, which in turn calls the
installer. Before executing the installer
-
vpndownloader verifies and validates it.
We got an idea: Is it possible to install
-
an outdated version through forged IPC
messages? As shown in the picture the
-
attacker needs an old signed installer and
sends the IPC message to vpnagentd asking
-
to execute the old installer. The
vpnagentd calls the vpndownloader as
-
usual, which in turn calls the attacker's
installer. There is no check whether the
-
installer is more recent than the
installed version. This makes the version
-
downgrade therefore possible. The
advantage of downgrading to an outdated
-
version is that an attacker could force
the installation of a version which
-
suffers from security vulnerabilities and
the attacker could then exploit these
-
vulnerabilities. We reported the
vulnerability to Cisco's product incident
-
response team and it was fixed at the end
of September. The vulnerability only
-
received a CVSS score of 3.1 and was
therefore rated with a low severity. The
-
vulnerability was only exploitable in the
Linux version. Windows and Mac versions
-
were already secured against such an
attack. Another functionality we had - we
-
have looked into is the deployment and
execution of scripts. They call it "Bring
-
your own script". This functionality is
intended to deploy very helpful scripts to
-
staff computers. In order for a script to
be executed, it must meet two criterias.
-
First, it must be located in the script
folder and begin with OnConnect or
-
OnDisconnect as a file name. Second, the
EnableScripting tag in profile which is
-
sent by the server must be set to true.
Depending on the file name, scripts are
-
triggered after VPN connection is
established and terminated. As VPN server
-
can distribute profiles in which the
execution of scripts is enabled and also
-
distributes the scripts: these two in
combination allow VPN server to gain
-
remote code execution on the connecting
clients. This functionality poses a major
-
problem because humans often need to trust
the university's VPN servers and have no
-
other choice. But let's take a closer look
at the distribution of the scripts. Here
-
we see the classic procedure of a script
distribution. In the download phase,
-
vpndownloader downloads an OnConnect or an
OnDisconnect script. Then vpndownloader
-
asks with IPC message to move the
downloaded script to the script folder.
-
The vpnagentd process calls the
vpndownloader, which then moves the file.
-
We systematically examined the IPC
messages and found a vertical privilege
-
escalation. An attacker is able to send
the same message to the vpnagentd process.
-
Any of the attacker's scripts can be moved
into the script directory. If there is
-
already a script in the script folder, it
is simply overwritten. If the attacker
-
moves On, an OnDisconnect script while
the user is already - has a VPN connection
-
open, the script is executed with user
privileges. When the VPN connection is
-
closed, first unprivileged user can obtain
code execution context of another user.
-
What bothered us about our attack was that
it is - was tied to conditions. One of the
-
conditions was that the EnableScripting
tag must have the boolean value "True". We
-
considered other attack scenarios and came
up with the idea of distributing a profile
-
ourselves. So we check for the tag again,
but create not only a script, but also a
-
VPN profile that allows scripting. The
attack works as follows: while a local
-
user has a VPN session active, another
user on the system creates a malicious
-
script and a new profile. The new profile
contains the EnableScripting tag set to
-
"True". The attacker then sends an IPC
message to the vpnagentd requesting to
-
copy the script to the script directory.
The vpndownloader is then started with
-
root permissions to perform the copy
operation. Also, the attacker can send an
-
additional IPC message to vpnagentd
requesting to overwrite the
-
existing profile with a malicious profile.
Although the profile is overwritten the
-
settings of a new profile are not applied
yet, because the old profile is still
-
active. However, we were able to determine
that the new profile is loaded when
-
there's a reconnect on the VPN session.
Reconnects are actually quite common in
-
the AnyConnect. If reconnect happens the
new profile is loaded and applied. In our
-
case, it enables the scripting feature.
After teardown of a VPN connection the
-
malicious OnDisconnect script of the
attacker is executed with the privileges
-
of the user running the VPN client. Both
problems were reported to Cisco, but could
-
not be fixed by the disclosure date.
Although we extended the disclosure
-
deadline. As of today the vulnerability is
still present with the default
-
configuration of AnyConnect. Cisco
published this vulnerability with a CVSS
-
of 7-1, 7.1, which is considered as a high
severity. Because it was published on the
-
4th of November 2020 without a fix, the
vulnerability got major attention in many
-
news sites. Various sites reported the
vulnerability. The quality of reports
-
varied. Some of the articles contained
incorrect information, for example, it was
-
stated that an exploit was already in
circulation. It is not accurate since we
-
are the only ones who have a working
exploit and have not published it yet. We
-
could not find any other exploit on the
Internet either. I think that the way of
-
reporting - this way of reporting has to
be reconsidered because it has caused a so
-
wrong assessment of vulnerability. We were
even contacted by some incident response
-
teams that were worried about their
infrastructure. All vulnerabilities found
-
and reported are listed in the table
below. The three vulnerabilities were
-
found by design analysis. Only one of the
vulnerabilities is fixed, according to
-
Cisco. Especially the Bring Your Own
Script vulnerabilities have already been
-
published, although no fix is available
for them, a workaround has been declared
-
to fix the vulnerabilities. By modifying
the local policy file the download phase
-
can be skipped completely. Since the
latest update it's also possible to
-
prohibit the download and deployment of
scripts on a modular basis.
-
M: And what about mobile platforms? Do our
discovered vulnerabilities also apply
-
here? Let's make it quick. No. Mobile
platforms are lacking many features
-
compared to the Linux, Windows and macOS
versions. You're, of course, able to
-
establish TLS and IPsec connections, just
like with all the other clients. But
-
because features like the deployment of
custom scripts or auto update is missing,
-
there's no way of using these exploits on
mobile platforms. We are currently having
-
a look into the iOS implementation of
AnyConnect and therefore want to give you
-
a quick and high level overview into the
architecture. As we are dealing with Apple
-
here, serious stuff like the
implementation of the VPN is a bit
-
different compared to, for example, the
Linux client. If you want to mess with
-
notifications, add sharing buttons or
create a widget on the homescreen, you
-
have to use an app extension. Equally for
VPN functionality, you have to use the
-
network extension framework. The network
extensions contain providers and features
-
for all kind of network related operations
like for content filtering, DNS, Wi-Fi and
-
more. If you want to build your own VPN
app, you have to choose between the
-
Personal VPN, the Packet Tunnel Provider
and the App Proxy Provider. In our case
-
the AnyConnect on iOS implements the
Packet Tunnel Provider as they are using
-
their own packet oriented protocol. Here
you can see the contents of the AnyConnect
-
app package, which is basically a zip file
containing all the executables and other
-
assets like images, etc.. The main
executable is just called AnyConnect. The
-
network extension is implemented in the
ACExtension binary. Beside these, there
-
are also several other app extension
implementations for the iOS sharing and
-
Siri functionality. So what happens if you
pressed the connect slider? After you hit
-
the slider, the network extension is
started and negotiation of the VPN session
-
begins. After a section of network
information like IP addresses, subnet
-
mask, routes, DNS, MTU and more they are
passed to the iOS system to complete the
-
negotiation. In the end, you have a new
and hopefully functional tunnel interface
-
called utun. So new traffic from apps pass
through the network stack until it arrives
-
at the tunnel interface. It can then be
handled by the network extensions' Packet
-
Tunnel Provider. Every time a packet
arrives on a tunnel interface, it is read
-
by the network extension and encapsulated
with the tunneling protocol. Every time a
-
packet arrives on the tunnel interface, it
is read by the network extension and
-
encapsulated with the tunneling protocol.
Upon arrival on the VPN server, the packet
-
is decapsulated and sent to its final
destination. Similar the replies then
-
encapsulate sent to the client, which then
decapsulates the packet and injects it
-
back to the network stack. So that's
should be it for the iOS clients, just to
-
give you a quick overview and highlight
some key differences between the
-
architectures. We are still investigating
both Linux and iOS platforms, but until
-
now, we can summarize our findings as
follows: AnyConnect in general is a huge
-
application with lots of code and also
lots of unused library related code. We
-
discovered three vulnerabilities through
design analysis. Vpnagentd runs with root
-
permissions and receives commands or
operations from unprivileged processes via
-
unauthenticated IPC messages, which is
generally a bit risky. Not all security
-
mechanisms and patches are actually
included on all platforms. For example,
-
the downgrade was only possible on Linux
and already patched on Windows and macOS
-
according to Cisco. The downgrade
vulnerability is not possible on mobile,
-
as auto update feature is limited to
Linux, Windows and macOS. Similar, the
-
Bring Your Own Script does also not apply
in mobile, as deployment of OnConnect and
-
OnDisconnect script is also limited to
Linux, Windows and macOS. Regarding the
-
local policy file on Linux, our idea would
be to make it as restrictive as possible
-
and require some kind of opt-in for
scripting functionality. As this would
-
prevent many attacks but of course, it
would also impact the usability a bit.
-
Despite the app being available since many
years, we show that there are still many
-
bugs to find. The introduction of bug
bounties would be a great option to
-
motivate more security researchers to
check the application for vulnerabilities.
-
The use of VPN promises security and
privacy for users, however closed source
-
software opens new attack vectors on a
system as our research on AnyConnect
-
shows. We hope that more research will be
done on clients in the future and that our
-
work will pave the way for this. So that
was it. Thank you very much for your
-
attention and if you have any questions,
feel free to ask.
-
H: Well, welcome back. So that was the
pre-recording of the super interesting
-
talk about Very Pwnable Networks. I'm sure
you've seen how pwnable they really are
-
and luckily, we now have Jiska and Gerbert
and Matthias with us today through the
-
magic of the Internet. And if you haven't
written out your question yet, please do
-
so now so we can still answer them. Either
by going to the IRC channel rc3-cwtv on
-
the hackened network or just posting a
tweet or a toot with your favorite social
-
media network of choice containing the
hashtag #rc3cwtv this time without any
-
dash, very important. So our Signal Angel
has collected some questions for us that I
-
am now going to be torturing the three
people here with. So let's see what you
-
will say to those. Oh, but I think pretty,
pretty tame, huh? So first question: is
-
there any page or wiki where this
information can be found?
-
G: At the moment, it is not published yet.
I think we will publish - publish it in
-
near future on the GitHub or some similar
platform.
-
H: Is there any way that people can find
this link then when you eventually will
-
publish it in the future?
G: I think Jiska can say something to this
-
J: Yeah so SEEMOO has a GitHub page and
-
also a Twitter account, so it will be
published. But I mean, there's still a few
-
things that we didn't like - that are not
public yet. So yeah, and then we would
-
just make one release not like this CVE
and that CVE, but like all at once.
-
H: Yeah. Make - makes more of an impact
this way and also better, better
-
disclosure. I like that. And the next
question is: will this VPN event only be
-
about Cisco? So yes, you've only looked at
Cisco, right? In this case. Um, maybe you
-
can tell us something if maybe you have
looked at other VPN vendors as to
-
something that other VPN vendors might
have an issue with as well? Maybe.
-
M: Yeah, we've done this research as part
of a master's thesis, and therefore it's
-
only about Cisco AnyConnect and yeah, we
did not have the time to - or yeah. Yeah.
-
To look at other VPN services, just for
the AnyConnect.
-
H: Yeah, the typical Master's view writing
it hyped up on coffee for the last few
-
weeks before the deadline. Yeah, I can
imagine that you focused on Cisco there.
-
Uum, another very good question: Are these
vulnerabilities also present in other - in
-
other AnyConnect-like clients like the
ones integrated into NetworkManager in
-
Linux? I think they're talking especially
about OpenConnect. Yeah, that's just
-
coming in. Umm, we talked about this
before a little bit so you probably have
-
something to say about that.
G: As far as we know there's - in
-
OpenConnect there is no scripting -
scripting feature enabled or integrated.
-
So we would say this kind of attacks are
not yet possible, but uh -
-
M: That would be possible if someone is
able to check this and, yeah, have a look
-
into OpenConnect too, yeah.
H: Hmm, yeah, not yet known to be
-
possible. Let's - let's say it like that.
You never know. Any other questions from
-
chat, from Twitter or Mastodon? Now's the
time. Give out your questions. Otherwise,
-
this would have been a very short Q&A. So
if you go to the rc3-cwtv channel on the
-
hackened IRC network or post a tweet or a
toot with the hashtag #rc3cwtv this time
-
without any dash. Umm, do it now, and
hopefully I will still catch this
-
through the magic of the Signal Angel that
is collecting all this information for me.
-
And yeah, maybe anything that you want to
add or any other new topics that you're
-
working on, something that might be
upcoming. Maybe we can get a sneak
-
preview. I'm sure you're still continuing
the research there - and
-
J: Sorry I needed to unmute myself. Not
-
spoilering yet but I mean, the issue like
just looking into one VPN client it's
-
also, if it is proprietary, then just
reversing is a lot, a lot, a lot of work.
-
I mean, I can tell you a story about like,
looking into binaries for months, and so
-
it doesn't really scale to look into like
10 different clients, at least if you want
-
to have meaningful findings.
H: Yeah, but like you don't have any any
-
other plans to, you know, look at any
other clients that get any requests or any
-
triggers that would point you there. Maybe
having a new phone and a new client and
-
noticing new strange things? No? - Okay.
G: Not yet.
-
J: Yeah.
G: But, but yes, Matthias is still working
-
on it. I think he will find something in
the future. M: hopefully.
-
H: Yeah. Yeah. I guess that's pretty much
all the last questions, except one: There
-
are two shadows behind you Jiska, is that
the shadow cabinet?
-
J: No, no, no. I just have multiple lamps
here. So -
-
H: Yeah, yeah, it's funny everyone <??>
-
J: At least it's only showing my shadow
duplicate. Not - not me.
-
H: Yeah. But we're quite lucky that at
least in this talk, the connection seems
-
to be working fine. We've been having some
issues here. Yeah, but that's great. If
-
you have any other questions, I think
we'll wrap it up here not to keep you
-
around much longer. I'm sure you're eager
to jump around the rc3 world, and if you
-
have anything else, maybe you can join us
in the IRC later. If there are any other
-
questions, maybe they will look there for
a short while or I will forward those
-
questions. Right then.
J: Thank you.
-
H: I thank you very much for the super
interesting talk. I learned something new
-
about the VPN client that I came into
contact with during my work time as well.
-
So interesting for me too. And yeah, let's
keep it at that.
-
postroll music
-
Subtitles created by c3subtitles.de
in the year 2022. Join, and help us!
-
[Translated by {Iikka}{Yli-Kuivila}
(ITKST56 course assignment at JYU.FI)]