Justin Richards MBCS spoke to Giovanni Vigna, a professor of computer science at the University of California and co-founder of Last Line, about all aspects of cybersecurity.
The security industry is developing techniques based on machine learning and artificial intelligence, but oftentimes these techniques do not take into account what we’re trying to learn about, or we’re trying to model by using these techniques, and is fighting back.
So, if you think about how machine learning and artificial intelligence were born, they were born to process large amounts of data and recognise, for example, images or the natural voice or text. All these subjects of analysis are not fighting back. A picture is not trying to pretend to be a cat, it’s just a picture.
Well instead, when you apply artificial intelligence techniques to programs, to documents that could be malicious, these documents can fight back and can, for example, decide, ‘hey, if you’re using this particular machine learning technique I can change these few parts and keep from being bad, and will be classified as benign.’ So, these are the risks that I think are going to bite us back in two, three, maybe even five years from now.
It’s our responsibility, as good cybersecurity researchers, to develop techniques that are resilient to this kind of attack. So, I think that we’re going to lose the battle if we take the techniques that we develop, like image recognition, and text recognition, and we apply those techniques in a naïve way to this new domain.
But, if we are well aware that the domain that we’re trying to analyse is fighting back, then we’ve got a chance to develop novel techniques that are specific for the security domain that can be effective at stopping these criminals.
We didn’t have enough analysts, enough signature developers, and so forth, to fulfil the demand and so people started looking at automated techniques, machine learning techniques; AI techniques to cover some of these tasks. Of course, this is not a solution.
We will always need a human ‘in the look’ eventually. But you can try to optimise that time as much as possible. And, in fact, one of the trends in the industry is really a focus on what we call the first level analyst. So, the person who is looking at a screen looking for the first evidence of a possible problem in the network.
I think mobile security has not caught up with the way in which we do security for other systems. For example, the Android eco-system is going a little bit through what the old Windows XP, Windows 7 was going through.
And indeed, there is a core operating system that has maybe good security mechanisms, but then it has to be run on a number of different platforms.
Platform here being different types of phones from different manufacturers and each of these phones has a number of chips; little pieces of hardware that handle, for example, the gyroscope or the broadband communication or the audio or the video.
For each of these pieces of hardware, that are different for every phone, you need a driver. The core system might be well-designed and secure, but oftentimes these drivers are developed under a lot of market pressure by developers that are not experts in security.
So, what we have found is that a lot of vulnerabilities are not in the core system, but they are in the driver. The problem is that the driver runs like the core system and so compromising a driver might lead to the complete compromise of the phone in a way that was similar to what was happening with Windows. Now things have changed, there are different ways to load kernel drivers so there is enhancement of the protection, but for phones this is still a problem.
What security trends are you currently interested in or worried about?
The security industry is developing techniques based on machine learning and artificial intelligence, but oftentimes these techniques do not take into account what we’re trying to learn about, or we’re trying to model by using these techniques, and is fighting back.
So, if you think about how machine learning and artificial intelligence were born, they were born to process large amounts of data and recognise, for example, images or the natural voice or text. All these subjects of analysis are not fighting back. A picture is not trying to pretend to be a cat, it’s just a picture.
Well instead, when you apply artificial intelligence techniques to programs, to documents that could be malicious, these documents can fight back and can, for example, decide, ‘hey, if you’re using this particular machine learning technique I can change these few parts and keep from being bad, and will be classified as benign.’ So, these are the risks that I think are going to bite us back in two, three, maybe even five years from now.
Are the good guys drawing level with the bad guys or are we losing the battle?
I think that the bad guys will not win the battle, I think the good guys can and will win the battle in my opinion, but we need to be able to use machine learning in an effective way. There is this concept of adversarial machine learning where you have to learn and apply learning modelled in an environment that is fighting back.
It’s our responsibility, as good cybersecurity researchers, to develop techniques that are resilient to this kind of attack. So, I think that we’re going to lose the battle if we take the techniques that we develop, like image recognition, and text recognition, and we apply those techniques in a naïve way to this new domain.
But, if we are well aware that the domain that we’re trying to analyse is fighting back, then we’ve got a chance to develop novel techniques that are specific for the security domain that can be effective at stopping these criminals.
Do you think we’ve got enough security professionals?
I think that this is a problem that permeates the whole security field. Creating enough people that can effectively perform security duties of any kind is something that has been a thorn in the side of the government, of organisations, even in education. We cannot, as a university that has a strong presence in security, produce enough people because there is such a demand. So, this demand is what has driven, in large part, the introduction of artificial intelligence in security because many of the tasks that were carried out by humans they couldn’t scale up.
We didn’t have enough analysts, enough signature developers, and so forth, to fulfil the demand and so people started looking at automated techniques, machine learning techniques; AI techniques to cover some of these tasks. Of course, this is not a solution.
We will always need a human ‘in the look’ eventually. But you can try to optimise that time as much as possible. And, in fact, one of the trends in the industry is really a focus on what we call the first level analyst. So, the person who is looking at a screen looking for the first evidence of a possible problem in the network.
IBM’s Grady Booch has said that security is partly the responsibility of the software developers, to start thinking in a more security-minded way. What are your thoughts about that?
Oh absolutely. I teach classes in software security development and my point is that we have to start thinking in an oblique way, so instead of thinking ‘I have this task, the software has to build this’, after you have designed it you have to look at it and say: ‘can I abuse it? Can I use this data in a different way? Can I send too much data? Too little data? Data of a different kind? What is my program going to do with this anomalous input?’ So being able to look at this and understand the implications of the data that you didn’t foresee is very important because this is exactly what a vulnerability analyst, which will be a hacker that tries to find a vulnerability, tries to do. When I look at software and I have to find a vulnerability I try to think, ‘the developer – what assumptions did he or she make?’ And I try to take that assumption and try to break them.Do you think there should be a bit more of a voluntary code of practice within the IT arena, trying to get people, particularly software developers, thinking more about security, and making it more of a professional code of ethics?
I think so. I think that, for example, at UCSB (University of California, Santa Barbara), we teach an ethical course for engineering, for engineers in the college of engineering, and this is important because every time you build software, in a way, it’s like you’re building a house or a bridge. You have to understand that your software will be used in certain contexts and you have certain responsibilities about its functionality. Right now, we don’t have laws that determine that the quality must be of a certain kind because it’s very difficult to define for an algorithm. We let the market decide. If you develop software that is crappy, people, unless they desperately need it, they won’t buy it. But I think it’s not the right way to do it. The right way is to teach people that the software has to be developed in the right way and we have responsibilities.What advantages might a decentralised architecture have?
Centralised systems have been oftentimes looked at as problematic because whenever we have a central system then you could attack that system and take down a whole operation. Because of that decentralised systems were introduced and, if you think about it, the internet was introduced by DARPA (Defense Advanced Research Projects Agency) for exactly that reason. They wanted a network that would sustain, for example, entire cities being annihilated in a nuclear warfare situation. So, having packets being able to be rerouted in a decentralised way was the right way to characterise or to make a network functional in these cases. So, in decentralised systems you have the advantage that you don’t have a single point of failure. However, you have the disadvantage that if somebody controls enough of the nodes it might decide certain properties of the network. For example, they are called byzantine attacks where you control enough of the nodes of a network or the participants in a distributed transaction to create, for example, consensus over things that are not true. So decentralised is good but could also be vulnerable to these attacks. So, pros and cons.Where are we with mobile security?
I think mobile security has not caught up with the way in which we do security for other systems. For example, the Android eco-system is going a little bit through what the old Windows XP, Windows 7 was going through.
And indeed, there is a core operating system that has maybe good security mechanisms, but then it has to be run on a number of different platforms.
Platform here being different types of phones from different manufacturers and each of these phones has a number of chips; little pieces of hardware that handle, for example, the gyroscope or the broadband communication or the audio or the video.
For each of these pieces of hardware, that are different for every phone, you need a driver. The core system might be well-designed and secure, but oftentimes these drivers are developed under a lot of market pressure by developers that are not experts in security.
So, what we have found is that a lot of vulnerabilities are not in the core system, but they are in the driver. The problem is that the driver runs like the core system and so compromising a driver might lead to the complete compromise of the phone in a way that was similar to what was happening with Windows. Now things have changed, there are different ways to load kernel drivers so there is enhancement of the protection, but for phones this is still a problem.



