00:00:00.250-->00:00:05.250 >> My name is Omar Eissa. I am here with Wojtek, we are from a security company based in 00:00:05.250-->00:00:09.583 Heidelberg, Germany and today's talk will be about network automation and a specifically 00:00:09.583-->00:00:16.292 autonomous networks. So what is it about? Haven't we all had that problem that we send a 00:00:16.292-->00:00:20.250 technician to the site and he doesn't have the running configuration for that author? 00:00:20.250-->00:00:24.292 Haven't we had this problem that while configuring something, we had a type of mistake that we 00:00:24.292-->00:00:30.000 kept troubleshooting for days and days? What if I said to you this is now from the past? What 00:00:30.000-->00:00:34.792 if I said to you that now there's a technology that will make you use your routers and 00:00:34.792-->00:00:40.958 switches as if you are using a USB? You're just connected and its starts working. This is it. 00:00:40.958-->00:00:45.750 You can build networks of hundreds and hundreds of nodes just me- an- a-, just a matter 00:00:45.750-->00:00:51.500 of minutes. While this would be the first part of today's presentation, I'll introduce to 00:00:51.500-->00:00:57.375 you a new technology that will ease your life. But this is technology is introduced from 00:00:57.375-->00:01:01.917 Cisco. Everything is proprietary and we cannot understand it and we cannot see what's there in 00:01:01.917-->00:01:06.667 our network. And this would be for the second part of today's presentation. We will reverse 00:01:06.667-->00:01:11.708 engineer everything in the protocol and we will understand everything. If you are 00:01:11.708-->00:01:17.750 interested in attacking, hacking and crashing devices, the third part will be for you. We have 00:01:17.750-->00:01:22.750 multiple demos, we have multiple vulnerabilities, so we hope you enjoy it. [applause] So 00:01:32.708-->00:01:38.875 everything started by IBM 2001. So they had the idea that systems are getting more and 00:01:38.875-->00:01:44.792 more conflicts by time and we need system that can manage themselves. When we thought 00:01:44.792-->00:01:49.792 about it or IBM thought about it it thought that we need system that can configure themselves, 00:01:49.792-->00:01:53.333 you don't need to configure anything. They can optimize themselves. Optimize their 00:01:53.333-->00:01:59.250 running resources, they can even secure themselves. We don't have any problems in that just the 00:01:59.250-->00:02:06.125 machine will do everything for you. Yeah, this sounds a little bit optimistic, but in 2013 00:02:06.125-->00:02:12.083 Cisco and people for ITF decided to make this into reality. Decided to implement something 00:02:12.083-->00:02:17.333 which we call autonomic network. What's the idea of autonomic network? It's just one device. 00:02:17.333-->00:02:21.625 One router. And anything that connects to this router after that will be configured 00:02:21.625-->00:02:27.833 automatically. You don't need to configure anything that far, but the question comes like how many 00:02:27.833-->00:02:32.458 configuration commands do I need to write on this device? Do I need to write everything that 00:02:32.458-->00:02:38.667 will be on the other devices? No. Its just five commands. You just write five commands and 00:02:38.667-->00:02:43.667 after that everything connected to your device will be up and running. K, what if I have new 00:02:46.042-->00:02:51.042 device? How many command do I need to write? None. You don't have to write anything at all. 00:02:53.625-->00:02:57.958 What if I have an old device that has a running configuration from before? Then it just one 00:02:57.958-->00:03:03.333 command. And after that, once you connect your device to this one device which we call the 00:03:03.333-->00:03:09.167 registrar here, it will have a basic configuration. Yeah, I see this sounds a little bit 00:03:09.167-->00:03:14.167 optimistic, but let's see it live. So Wojtek if you can help me with that. We have here. We 00:03:16.917-->00:03:22.583 have here one new device for people who are aware of Cisco this is like what you get once 00:03:22.583-->00:03:28.083 you buy a totally new device. And you just remove the whole configuration. What we'll be 00:03:28.083-->00:03:33.167 doing here, that we ask, I ask Wojtek here if he can connect it to the registrar and see how it 00:03:33.167-->00:03:39.958 will go. So we will just raise our hands, we won't configure anything and we will just watch 00:03:39.958-->00:03:44.958 whether anything will happen or not. So as we see here, device started to be configured on its 00:03:49.792-->00:03:56.250 own. We see that some files or some configuration things are being transferred to it. We see 00:03:56.250-->00:04:01.750 like some inter- and some interfaces started to come up and we can see that there some 00:04:01.750-->00:04:06.750 sub interface and other configuration things. So for this. Yeah. Hello? So as we can 00:04:13.292-->00:04:18.833 see that we got like basic configuration we would see what basic configuration would do, we 00:04:18.833-->00:04:23.833 mean about here. So first of all, we can see that I'm getting some keys, I I see here like now 00:04:27.000-->00:04:31.792 I'm getting like three thousand seventy-two bit key. I'm being I'm being uh like having new 00:04:31.792-->00:04:37.667 interfaces that come up, but in order to see this live, we will just now try to type like show 00:04:37.667-->00:04:42.667 IPv6 interface brief. Autonomous networks run on IPv6. And as we can see here, we have like 00:04:49.667-->00:04:54.708 multiple interfaces which are up. We have like now our autonomic network interface, we 00:04:54.708-->00:04:59.208 have like uh the load back interface also will come up. So if you can run the command 00:04:59.208-->00:05:04.208 please again. Yeah. So we can see like the network interface, the configuration came up, we 00:05:09.792-->00:05:14.958 started to get some IP addresses, we started to get some information. So what 00:05:14.958-->00:05:19.167 happened here and what is the basic configuration we mean about where we speaking about 00:05:19.167-->00:05:23.167 once we connect this device and what we will get. That's what we will see throughout the 00:05:23.167-->00:05:29.917 presentation. Or the first part of the presentation. So if you can take me back to the slides. 00:05:29.917-->00:05:34.917 And so. Well, what are the implications of this? Now once you connect your device to 00:05:39.000-->00:05:43.250 another device you will get a basic configuration. You will get interfaces connected to you. 00:05:43.250-->00:05:47.333 You will get like tunnel interfaces which comes up for you. You will have an encrypted 00:05:47.333-->00:05:52.333 and secure between you and all the devices within your network. What you need to configure for 00:05:52.333-->00:05:57.958 that? None. Totally none. You just need to write five commands on one single device, which we 00:05:57.958-->00:06:02.958 call the registrar. And after that everything is configured for you. To understand what 00:06:05.875-->00:06:11.167 happened in the background and what is the communication flow that happened, we can see that 00:06:11.167-->00:06:16.042 Cisco started or wanted to divide the connection into three phases. Something we call 00:06:16.042-->00:06:21.708 channel discovery, adjacency discovery and after that secure channel. While what does that 00:06:21.708-->00:06:26.708 mean? Well, Cisco decided that for the first time, devic- devices need to see each other 00:06:28.750-->00:06:34.917 on the level two lay- oh- level two uh yeah, level two layer. So what they start to do that the 00:06:34.917-->00:06:39.583 registrar start to send probes. Saying like, is there any autonomic device around? Can we 00:06:39.583-->00:06:45.958 get any configuration? Is there anything reachable? And once the device, once we reach the 00:06:45.958-->00:06:52.542 device, it starts the second phase. We call it here adjacency discovery. What happens in 00:06:52.542-->00:06:58.583 adjacency discovery, its like after that we go from layer two to layer four communication and 00:06:58.583-->00:07:03.417 what happens here that the registrar, registrar starts by saying well, I support this 00:07:03.417-->00:07:08.708 domain name, I support this network. Would you like to be part of my network? How do we 00:07:08.708-->00:07:13.708 define whether the device can be part of the network or not? We check like the whitelist. What's 00:07:15.708-->00:07:20.208 the whitelist that we have here? It's just the serial number of the devices. Because we are 00:07:20.208-->00:07:27.042 speaking, about totally new devices that first I am like booted. So if you are rejected 00:07:27.042-->00:07:32.250 then we would just be neighbors on level two. If you are accepted, then perfect. We would 00:07:32.250-->00:07:37.750 issue for you a certificate. This certificate will be as the ID for you for any further 00:07:37.750-->00:07:42.750 communication. We can use this certificate after that just to act as like uh for any secure 00:07:45.500-->00:07:50.000 connection because we would have your private key or we would have your public key then. This 00:07:50.000-->00:07:56.250 is a UDP service that run on port four nine three six. To have a small diagram in order to 00:07:56.250-->00:08:02.000 understand what we are speaking about here. We can see it as the following. The registrar starts 00:08:02.000-->00:08:07.083 by saying, hey, this is the domain name that I support, this is the configuration that I can 00:08:07.083-->00:08:12.375 provide. This is the network name and the enrollee response saying well, this is my domain 00:08:12.375-->00:08:18.667 name. If the domain name is empty, it means that this new enrollee just would like to be 00:08:18.667-->00:08:24.000 part of your domain. What will you do after that that you will check your whitelist. Is this 00:08:24.000-->00:08:28.833 device allowed to join my domain? And this is the security mechanism that Cisco chose in 00:08:28.833-->00:08:35.292 order to protect any malicious devices from connecting to your domain. So you are accepted 00:08:35.292-->00:08:40.875 perfect. This is my domain certificate. This is my ID. Let's issue for you one too. 00:08:40.875-->00:08:46.792 Please generate the key. Once the key is generated here, and send back to the register, we 00:08:46.792-->00:08:51.458 will start by issuing a certificate. We can understand the certificate as just an ID 00:08:51.458-->00:08:56.208 that you are part of this. Who will issue the certificate? It depends. Either the register 00:08:56.208-->00:09:02.250 itself or if you have a cert like a- a dedicated certificate authority within your domain it 00:09:02.250-->00:09:09.042 can do such a function. Finally, we have done the certificate, we send it back to you and that's 00:09:09.042-->00:09:14.583 it. We are just speaking about somehow like five packets. Within this category and you're 00:09:14.583-->00:09:20.875 done. After that, we will the secure channel. We will some type of interfaces so we can 00:09:20.875-->00:09:26.625 communicate together. What are the available technologies to secure the tunnel? Well, we 00:09:26.625-->00:09:33.292 already have the IPSec, but in Cisco's perspective or autonomy perspective this is backwards 00:09:33.292-->00:09:39.250 comfortably, this is a backward technology. Cisco introduced something new which we call Dike 00:09:39.250-->00:09:45.292 and Dike is for the data internet gate exchange, it's based on iv2. It has the same 00:09:45.292-->00:09:50.750 characteristics as IPSec, but it's only the second phase, so its much much much less 00:09:50.750-->00:09:55.958 overhead. We are speaking about point five thousand and its always the one preferred over 00:09:55.958-->00:10:01.458 IPSec. The idea of autonomic networks that people are the problems so in order to avoid 00:10:01.458-->00:10:06.500 such a thing, everything is automated for you. You cannot change this, you cannot even 00:10:06.500-->00:10:12.250 change it order, you cannot even favor like IPSec over Dike. There is not even a command for 00:10:12.250-->00:10:18.958 you to configure Dike on Cisco routers. So what's the configuration of the registrar 00:10:18.958-->00:10:24.667 then? We said like we need like five commands and everything would be working after that. Ok, 00:10:24.667-->00:10:29.542 we said that, from adjacency discovery we need to have like a domain name. What's my network 00:10:29.542-->00:10:33.458 name? And this is the first thing that you write by like domain ID and you write your 00:10:33.458-->00:10:38.333 domain name. You have like an option of command that define a whitelist if you don't define a 00:10:38.333-->00:10:44.167 white list, everything connected to you will be accepted within your network. We can have like 00:10:44.167-->00:10:48.250 after once you get like the certificate or once you get the key, who will issue the 00:10:48.250-->00:10:53.000 certificate? And you, this by like, defining which set of serial you will use. If you have 00:10:53.000-->00:10:57.792 a dedicated one, you would just write it's IP address, if its a local one, so you say like, say 00:10:57.792-->00:11:04.542 hey local, local means that the registrar will be one who issues the certificate for you. And 00:11:04.542-->00:11:10.583 finally, you just started the services by writing autonomic. This is all. No much hassle. 00:11:10.583-->00:11:15.583 Nothing to write. Nothing to do. What's for the other devices? If its a brand new one. None. If 00:11:20.083-->00:11:25.000 its just a router with a previous configuration that you had a configuration from before, 00:11:25.000-->00:11:31.583 just one command. Autonomic. Start the autonomic services. So we are speaking about basic 00:11:31.583-->00:11:37.208 configuration. What do we mean by that? Well what will happen that, you will get like three to 00:11:37.208-->00:11:42.208 four interfaces configured with ipv6 address for you. This ipv6 address is based on your domain 00:11:44.250-->00:11:49.375 name. You will get, like you ll start generating the key a VRF will be created on your machine 00:11:49.375-->00:11:55.708 and the triply will be allowed if you have a cis log a tfpt server with the newer network it 00:11:55.708-->00:12:01.125 will be ded- uh it will be like find automatically, you don't need to configure anything here. 00:12:01.125-->00:12:06.500 You just say like you have a tftp, but it within something called dns, this is a protocol 00:12:06.500-->00:12:10.750 with an autonomic network and this server will be like found automatically, discovered 00:12:10.750-->00:12:15.583 automatically, you don't need to write anything. Everything will be now like you're like create 00:12:15.583-->00:12:20.708 this server if you a radius server, now you can only access your device in a secure manner. 00:12:20.708-->00:12:25.542 So this sounds good and if you need to have like further configuration, if you'd like to 00:12:25.542-->00:12:30.958 have with like an access risk or something else you can put this configuration on the tftp server 00:12:30.958-->00:12:35.000 and the machine will just grab it automatically. We are not speaking about technology from 00:12:35.000-->00:12:38.958 the future we are speaking about technology that has been into the market at least three to 00:12:38.958-->00:12:43.958 four years. And the question here after that. Are you really in control? Now you understand 00:12:49.500-->00:12:54.417 the technology. Now you have a rough idea how it works. But are you really in control? Do you 00:12:54.417-->00:13:00.708 really know what's running inside your network? Well, I wanted to see how it looked 00:13:00.708-->00:13:07.167 like, the this packets of autonomic networks under Wireshark. And that's what I 00:13:07.167-->00:13:13.417 have seen. And LLC packets for the people who are not aware of LLC, LLC is a layer two 00:13:13.417-->00:13:19.875 technology. Honestly, I didn't expect to see something like that. At least I expected to see 00:13:19.875-->00:13:25.792 like UDB service. I expected to see Dike or IPSec, whatever it is. But I expected to see 00:13:25.792-->00:13:31.333 something more than just layer two. And here comes the technology. What's really 00:13:31.333-->00:13:35.917 running within our network? And to know something like this, we will reverse engineer it 00:13:35.917-->00:13:42.167 together. This is the first frame that we see once we start the wireshark. This is what it 00:13:42.167-->00:13:48.667 looks like. That question, how is how we store it. How we store it to reverse engineering this. 00:13:48.667-->00:13:53.917 And the first idea comes that well we all started by an ethernet frame, but which one of 00:13:53.917-->00:13:58.917 the ethernet frames that we can start with? We have like three types of ethernet frames and by 00:14:01.042-->00:14:06.583 checking those bytes, we understand that this is a not not an ether two net frame and 00:14:06.583-->00:14:12.917 by checking this we understand, this is is a snap frame. So at least we understand the first 00:14:12.917-->00:14:18.792 few bytes within this frame. This is like a snap frame modifier or a snap header. So in 00:14:18.792-->00:14:25.167 order to understand this, we start by the following. This is this nation mac and the source 00:14:25.167-->00:14:30.167 Mac, we have the length and um here we can say the snap frame identifier, we can have the 00:14:34.542-->00:14:39.542 organizer unique identifier and finally like uh autonomic protocol ID identifier. The 00:14:43.208-->00:14:48.125 question comes after this, how we proceed. This uh proprietary protocol, Cisco said how the 00:14:48.125-->00:14:54.167 technology works, but it didn't say how, what's the content, what's the significance of the 00:14:54.167-->00:14:58.000 packets. After reverse engineering for some time, then after tests for sometime, we 00:14:58.000-->00:15:03.000 believe that protocol is based on this header. Well, hmm. This is the header that Cisco used to 00:15:06.417-->00:15:10.333 or we can use to analyze the protocol it has some fixer queries and after that some 00:15:10.333-->00:15:15.333 TLVs. For the people whom are aware of TLV principle it's the idea that to define a type 00:15:17.458-->00:15:21.542 against a variable type, a variable lens, the you put the value of it. We will see that 00:15:21.542-->00:15:26.542 throughout the presentation here. So, the version of this if we are speaking of the channel 00:15:28.917-->00:15:34.417 discovery. The first thing that we start with is version one. And some reserved bytes and 00:15:34.417-->00:15:39.708 after that we start with the state. State means which part or which phase are we in with the 00:15:39.708-->00:15:46.500 protocol. Well this is Oh-one, this is vary basic beginnings so it's Oh-one here. After that we 00:15:46.500-->00:15:51.500 have some factory full bytes and after that we can have uh the up codes. What's uh the up codes? 00:15:54.125-->00:15:59.542 The up codes mean uh what's the significance of what we are seeing? What does this frame, 00:15:59.542-->00:16:04.500 what's the value or what's the importance of this frame? And for the available up codes, here 00:16:04.500-->00:16:09.500 are they. So one is if its the first announcement, after that for the reply and even if its 00:16:12.083-->00:16:17.083 like just keep alive. If you'd like to continue analyzing we can see that what comes next is 00:16:19.875-->00:16:25.042 the factory like uh some factory default. This is the header length I see here and after that 00:16:25.042-->00:16:30.333 that's some reserve bytes and type and length and value. So you start by, identifying some 00:16:30.333-->00:16:35.833 specific types with the length and put whatever value it takes. For the availability of these 00:16:35.833-->00:16:40.958 for this, we can see that for the only channel discovery that's what we have. What we are 00:16:40.958-->00:16:46.292 trying now to do is trying to understand the significance of what passes within our network. 00:16:46.292-->00:16:51.292 At least with make sure that we have control. In what we see. After that comes the adjacency 00:16:54.292-->00:16:59.292 discovery. Well this is the framework adjacency discovery. Its quite big. We suspect there 00:17:01.417-->00:17:07.333 is a UTP here but why Wireshark cannot analyze this. This is because there is an additional 00:17:07.333-->00:17:12.000 header that Cisco decided to add. We call it layer two point five, which is the autonomic 00:17:12.000-->00:17:18.583 layer. We will see that. So same idea, we have just a snap frame in the beginning and after that, 00:17:18.583-->00:17:23.167 we have this. This is a customized channel discovery header. This is what stops 00:17:23.167-->00:17:28.833 Wireshark from analyzing and understanding the packets. What's in the difference between 00:17:28.833-->00:17:33.833 this and the last stage? Um, can we do anything with the slides? Can we just...[inaudible] So 00:18:01.625-->00:18:06.708 what's the difference between this and what we used to have? Well we can see that the state 00:18:06.708-->00:18:12.542 here is oh five, not oh one like it used to be. It means that this is an adjacency-adjacency 00:18:12.542-->00:18:17.542 discovery frame. And there's an ether type. Ether type that says what comes next is an ipv6. So 00:18:20.083-->00:18:26.208 at least we start now to understand why Wireshark cannot analyze this. What comes next as 00:18:26.208-->00:18:31.208 we said, ipv6 header and from the ipv6 header we understand what comes after it is UDP. And 00:18:33.250-->00:18:39.458 the question comes after this. How we can analyze that? Ok, it's the same header, same 00:18:39.458-->00:18:44.458 frame, but different types, different values, different up codes. The version here is two, 00:18:46.750-->00:18:53.500 not one, like the one you would used to have and the state here is oh two. Because now we start 00:18:53.500-->00:18:57.958 the booting phase. The idea of getting certificates and stuff like that. For the adjacency 00:18:57.958-->00:19:02.958 discovery we have like three up codes. Or three states. One for the just booting up, whether you 00:19:05.875-->00:19:10.125 are like accepted or rejected within the access list or within the whitelist and finally if we 00:19:10.125-->00:19:16.417 would like to be a secure channel. After that there are some reserve bytes. And the up 00:19:16.417-->00:19:22.417 codes. As we said, up codes, what is the significance? And importance of this byte that we 00:19:22.417-->00:19:27.667 see or of this packet that we see. Here are the available up codes, it's a little bit bigger 00:19:27.667-->00:19:32.667 here. And come after that just the header lines, same idea. And some factory default reserve 00:19:35.458-->00:19:40.458 bytes. And type, length and value. Same idea. So for the available types, they are quite 00:19:43.500-->00:19:49.083 big, it will have taken three or four slides just to put them here. But you get the idea. And 00:19:49.083-->00:19:54.083 now starts the fun part. We have a secure channel. What if we are interested to know what city 00:19:56.708-->00:20:02.667 you're being sent inside of this secure channel? Well, this is what's sent. This is an 00:20:02.667-->00:20:08.833 encrypted thing. How do we know that it's Dike? Well, just from the port. It's five thousand. 00:20:08.833-->00:20:14.208 But what is this packet? We don't have any idea about. How we get information about bei- 00:20:14.208-->00:20:19.208 what's being sent really inside. Well who can solve this problem is this device. How's that? Well 00:20:24.833-->00:20:30.208 this is one of the first devices that support autonomic network. It starts supporting autonomic 00:20:30.208-->00:20:35.208 network since 2014. But how can it-how it can help? Ok, comes that question is, if we have an 00:20:38.500-->00:20:43.833 IPSec, it means maybe like wasn't supported from the beginning. Maybe there are like 00:20:43.833-->00:20:49.708 IPSec is backwards compatibility. Ok, how IPSec can even help? Because Cisco is a 00:20:49.708-->00:20:54.333 closed box device, you don't have access to anything. But from the RFC you have IPSec 00:20:54.333-->00:20:59.333 null. IPSec null is the idea that you don't need to configure any encryption, you just 00:21:02.958-->00:21:08.792 configure like integrity, uh, on the packets just to check its correct. So you don't have any 00:21:08.792-->00:21:13.083 problems, now you can send each and everything in just plain text and you can see everything. 00:21:15.083-->00:21:20.792 And well this is one packet, that can only be encrypted, can only be seen inside the tunnel. 00:21:20.792-->00:21:27.167 Its the RPL and this is the interrupting protocol of the autonomic network. And we can 00:21:27.167-->00:21:32.167 see here this is DSP and this is exactly like from the inside the tunnel. The question comes after 00:21:35.958-->00:21:40.958 that. Is it secure? We now have a little bit of idea whats the technology is. We understand 00:21:46.958-->00:21:53.708 whats being sent and significance of each and every byte. But is it secure? For this 00:21:53.708-->00:21:59.667 we would have a live chat with uh a guy from the support who is responsible for this, if we have 00:21:59.667-->00:22:06.667 any problems while we are trying just to check our devices. So the first idea that we had is, 00:22:06.667-->00:22:13.208 well, as we understand from autonomic network, everyone has their own domain. So if there 00:22:13.208-->00:22:17.875 are two domains, they never could connect with each other. This shouldn't be under any 00:22:17.875-->00:22:24.458 circumstances. Ok, let's try to put this into practice. So Wojtek if you could just go to 00:22:24.458-->00:22:30.792 one of the code devices that we have. Yeah, this device code different domain. It just from a 00:22:30.792-->00:22:35.000 domain different than what we have. We can know something like that by writing short autonomic 00:22:35.000-->00:22:40.000 device. And we can see here that the domain name is code or the domain ID is code different. And 00:22:45.167-->00:22:50.125 what I will do here is that I will connect it to this registrar which is from a domain 00:22:50.125-->00:22:55.125 code ERNW. So please connect it to it. Well I expect that they will be just neighbors on their 00:23:00.208-->00:23:07.167 two level, but nothing more. No certificates, no configuration, no tunnel interface. Nothing. 00:23:07.167-->00:23:12.167 And that's what, the documents say. Ok, let's see, I see, uh ok. I see lot's of 00:23:15.042-->00:23:20.042 configuration, I see that, the certificates are being valid, which shouldn't be shouldn't be 00:23:24.083-->00:23:29.958 at all as printed off of Cisco but could you just run like short number control please. To 00:23:29.958-->00:23:34.958 see whether they built radial tunnel? Ok, I can see the the tunnel here has been built. Hmm. 00:23:38.000-->00:23:43.000 Well. This shouldn't be. Shouldn't be at all from Cisco's perspective. So let's go back to 00:23:46.958-->00:23:51.958 the support please. Well, we connected two nodes from two different domains and they 00:23:57.500-->00:24:04.042 worked. They connected together. This shouldn't be. Uh Cisco has been very responsive to us in 00:24:04.042-->00:24:07.583 some of the variabilities that we have reported here, you will see that Cisco responded quite 00:24:07.583-->00:24:13.208 quickly honestly. And there are sometimes that, not that fast, but we would see. So the first 00:24:13.208-->00:24:18.458 thing that the business unit said that they would check with the uh like we would check like 00:24:18.458-->00:24:23.792 with the business unit, the people that wrote the documents. If that can be allowed. And what 00:24:23.792-->00:24:28.792 they came back to us with, that well if they are connected from two different domains, but we 00:24:32.042-->00:24:38.667 have the same CA sign both certificates. Then they can communicate. But this is, again 00:24:38.667-->00:24:42.667 its the documents, a know, this is shouldn't be because they are two different domains. How that 00:24:42.667-->00:24:47.667 can be? Ok, if this is a feature that we added in the future. Ok, not a big deal. Uh I understand 00:24:54.792-->00:25:00.875 the problem, maybe it's as very important. But you know what, even if it connects to mine I'll 00:25:00.875-->00:25:05.875 just revoke it. It's not a big deal for me. So if you can just please go to the registrar. And 00:25:13.875-->00:25:19.875 we will just try to revoke this certificate. Uh the command for revoking certificate is um 00:25:19.875-->00:25:24.875 crypto PKI a n uh PKI server a-n-r-a dash c-s and we write revoke. So and after that we 00:25:32.250-->00:25:36.250 just type the serial number of the dev- or the serial number of the certificate. Well it 00:25:36.250-->00:25:42.042 shouldn't be a big deal, it won't cause us any problem, we just won't revoke it here, but 00:25:42.042-->00:25:47.042 once we test it it didn't work. So we return back to the support saying, oh. Yeah. We return back 00:25:51.417-->00:25:57.292 to the support saying well, we tried to revoke the certificate, but it didn't work. They said, 00:25:57.292-->00:26:03.500 did you try it like on local or an external. We said, well we tried it on both. If it's local, 00:26:03.500-->00:26:08.375 they said, well we didn't implement it here. Said, no problem. We tried it on external 00:26:08.375-->00:26:13.375 too. They said, ok, then this is a CVU then. So yeah, we understand from Cisco 00:26:16.917-->00:26:21.792 perspective that certificates revocation does not implement it. An other way that there's no 00:26:21.792-->00:26:27.917 way-no way for you to throw any malicious or compromised node from your network. Once any of 00:26:27.917-->00:26:33.208 your nodes has been compromised, it's game over. It will always be there, except if you have the 00:26:33.208-->00:26:38.500 courage to destroy the whole network issuing new certificates for everyone, then build the 00:26:38.500-->00:26:43.667 network. No white list can stop anything for that because if you have a certificate, you are not 00:26:43.667-->00:26:48.667 checked by the white list. You just pass. You are a VIP. Yeah, so yeah. Maybe it's a problem, 00:26:53.500-->00:26:58.292 but you know what, I have full control over my network. No one can touch my network, no one can 00:26:58.292-->00:27:03.292 touch my devices. Everything is safe somehow. So I'll just go to the registrar again and write 00:27:05.708-->00:27:10.708 something like show autonomic control plain details. And as we can see the communication has 00:27:15.875-->00:27:21.583 been up here I I think like three four minutes. So the idea that nothing can affect my 00:27:21.583-->00:27:27.250 communication and nothing can, you know, attack me. And it's not a big problem that, the 00:27:27.250-->00:27:33.708 nodes just you know some nodes are will be compromised. I see Wojtek is typing something here. 00:27:33.708-->00:27:40.708 He's resetting my channel. Huh. It's not that simple now. Um, what you are doing uh, if you 00:27:40.708-->00:27:46.542 can show the people what you are doing please. Here I'll just take it a little bit. Uh. So 00:27:46.542-->00:27:51.542 what you read just my communication. Everything went down. Eh, eh, this shouldn't be 00:27:55.542-->00:28:01.417 at all. Like an attacker cannot do something like that. And even he's writing like check your 00:28:01.417-->00:28:06.417 Wireshark. Let me say what's there Wireshark. ok. yeah. So. Just check it. Mm hmm. Ok. Just 00:28:15.792-->00:28:20.875 ok. The idea here that even if you check Wireshark, it looks like there's a problem here with 00:28:20.875-->00:28:25.875 the packet sniffer. That even the RPL packets which should be sent totally encrypted format, 00:28:28.875-->00:28:35.333 they are just sent in plain text. So somehow if you manage to reset the configuration, 00:28:35.333-->00:28:40.333 reset the channel, not only you break the communication itself, everything which is encrypted is 00:28:42.542-->00:28:48.958 flushed in plain text. You can see the whole configuration, the whole everything running inside. 00:28:48.958-->00:28:55.042 The RPL, your routing information. Everything. So please can take me back to 00:28:55.042-->00:29:00.042 slides. So once we said that to Cisco, we got a new CVE here. Yeah, Ha. [laughter] So what's 00:29:06.292-->00:29:12.917 the implications of this? Anyone can reset your connection? Anyone can attack you? And once 00:29:12.917-->00:29:17.917 they reset the connection, they even know what's confidential things you are sending within 00:29:20.750-->00:29:25.625 your channel. Uh this is litt- little bit scary because anyone can make a deny of service on 00:29:25.625-->00:29:32.208 me. But at least my devices are up. My devices are strong enough that they are working fine. 00:29:32.208-->00:29:37.208 Correct? Ok, I see Wojtek here is showing me a video. And what he is pinging is I see is trying 00:29:43.917-->00:29:49.042 to reset it. Yeah, man I understand my communication is not that strong, I understand 00:29:49.042-->00:29:55.708 that you can reset it, but you are doing thing, are you implying that my device will go 00:29:55.708-->00:30:00.708 down? Huh. It's not that simple. Not by I mean, not by resetting the communication or resetting 00:30:02.917-->00:30:09.625 the channel multiple times. Then all will crash. That will go down. I don't think so honestly. 00:30:09.625-->00:30:15.917 Yeah. I don't know. Yeah, you see. You are still pinging. Everything is up. Everything is 00:30:15.917-->00:30:21.500 working. Come on you cannot challenge me in front of them. My uh- my presentation yeah. Ha. 00:30:21.500-->00:30:26.500 Yeah, I'm just waiting. Just for your sake, you know. Mm Hmm. Yeah. Still second reiteration, 00:30:33.625-->00:30:38.667 you see. You are pinging everything is up. Everything is fine. There is nothing to worry 00:30:38.667-->00:30:43.667 about here. A- A I know. Ok. Eh-. This node crashed. Eh ha ha ha. This shouldn't be. Shouldn't 00:30:56.417-->00:31:01.417 be at all. Now you- not just reset my communication, not just you take the like channel down, 00:31:06.042-->00:31:11.042 you even take the device itself down. Take me back to the support. [laughter] Um. Just is 00:31:17.333-->00:31:22.333 someone keep resetting the communication then all eventually crashes and for that 00:31:24.417-->00:31:29.417 we have a new CVE. [laughter] [applause] Yeah. What's implications of this? Anyone can 00:31:38.333-->00:31:43.750 crash your devices. This attack takes um somehow about fifteen minutes. That's why we just have 00:31:43.750-->00:31:50.417 a video here. Ok, this a little bit scary, so, you crashed my devices, but you know what? My 00:31:50.417-->00:31:55.000 registrar. The controlling point of the network. The strongest point of the network. Show them 00:31:55.000-->00:32:00.000 how long it has been up. Show them. Like show version include up. Yes. It has been up for 00:32:04.625-->00:32:09.625 forty-two minutes. Nothing can attack it, nothing can do anything to it. Yeah. Crash. 00:32:13.167-->00:32:18.167 Crashing my register. No. It's not like de- [laughter] Even my registrar crashed. [laughter] 00:32:27.292-->00:32:34.208 Uh, like that, I don't have anything in the network remaining. Like the device 00:32:34.208-->00:32:39.500 itself can be crashed, the registrar itself can be crashed. So there is no network at all. 00:32:39.500-->00:32:44.500 Uh just take me to the support. [laughter] And for that we have a new CVE here. [laughter] 00:32:47.333-->00:32:52.333 [applause] Lots of implications of this. The controlling point, the main point within the 00:33:00.583-->00:33:06.625 network can be easily crashed if you send like null or space byte within the network. As a ERNW 00:33:06.625-->00:33:11.625 name. Ok. Then I have no other option, sorry. I'll just disable autonomic network. And I'll just 00:33:14.458-->00:33:19.458 run my ipv6 normally happy without any problems. So please Wojtek. Yeah. Yeah, this is 00:33:26.208-->00:33:30.083 different domain, this is the old device that I had, just go like into configuration one and 00:33:30.083-->00:33:36.625 just write no autonomic and that's how we disable it. And if we would just give it a simple 00:33:36.625-->00:33:41.625 ipv6 address while writing interface get zero or zero zero. And we will give it like two 00:33:45.333-->00:33:50.333 thousand and one slash two. Here. So star sixty-four. And even I will also go to my new 00:33:54.583-->00:33:59.583 device so if you can go to the new device also Wojtek please. Just go to the new device. So it 00:34:18.167-->00:34:21.458 looks like Wojtek cannot connect to the first device. I don't know. It looks like it crashed 00:34:21.458-->00:34:26.458 on its own when it sees like other device crashed. It just happens. So at least now you 00:34:28.792-->00:34:33.792 know what I'm safe. Literally safe. Please write to us. Safe. And yes with yeah, exclamation 00:34:36.208-->00:34:40.500 mark. Nothing can touch my devices. Nothing can do for me any harm or any problem. 00:34:50.292-->00:34:56.042 [laughter] Hmm. We didn't configure anything. It's just an ipv6 address. We disabled 00:34:56.042-->00:35:01.042 everything even. Yeah. Take me back to the presentation. This is what's I love to call the 00:35:04.667-->00:35:09.667 death case. [laughter] Regardless you have an IP or you autonomous servers or not, you 00:35:13.583-->00:35:18.917 are vulnerable. Just the ID that your sub, you're operating system supports autonomic 00:35:18.917-->00:35:23.917 network makes you vulnerable. Just knowing your ipv6 address will crash your network. Even if 00:35:26.292-->00:35:31.292 you don't run the technology. Even if you disable everything. What's the implications of this? 00:35:34.000-->00:35:40.917 Just one packet can crash everything you have. How to stop it? Just put an access over each 00:35:40.917-->00:35:45.917 and every interface you have to block post four nine three six and four eighths. If you have 00:35:49.000-->00:35:54.792 for any reason running autonomic network on your network uh in your system, just upgrade your 00:35:54.792-->00:35:59.792 system. To conclude today's presentation. We have spoken about the autonomic network. We 00:36:04.833-->00:36:09.833 have analyzed its three phases. And after that, we had um, spoken about the reverse 00:36:12.583-->00:36:16.250 engineering of each and everything and after that we introduced five new 00:36:16.250-->00:36:21.583 vulnerabilities. One of them can crash just the devices by knowing their ipv6 address. You 00:36:21.583-->00:36:26.583 don't need to know anything more. Finally, if you would like to get your hand dirty start 00:36:30.708-->00:36:35.042 working autonomic network. While you're at it is the first uh application to use our analysis 00:36:35.042-->00:36:40.042 into this. And um you can just also if you don't have Cisco D, you can download the image which 00:36:42.292-->00:36:47.458 is called CSR one thousand V. And start working on that. I wouldn't have done it without 00:36:47.458-->00:36:52.167 the help and assistance of [00:36] who helped me so much with the protocol analysis. And 00:36:52.167-->00:36:56.583 finally, if you would like to have more information about network or autonomic network, I 00:36:56.583-->00:37:02.292 have written like three blog posts on insinuator dot net. Well, in the end, thank you 00:37:02.292-->00:37:07.292 Wojtek for attacking everything that I have and thank you for attention and that's all. 00:37:11.458-->00:37:12.458 [applause]