[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)]