Host & Application Security (part 3) Design, Default, Deployment

Video Activity

This lesson focuses on application security, specifically: - Security by design: anything that is built - Security by default: software has doors closed and can only be opened by users, nothing is installed and nothing is enabled - Security by deployment: Deploy an application in a secure manner and lockdown deployment process and minimize user int...

Join over 3 million cybersecurity professionals advancing their career
Sign up with

Already have an account? Sign In »

58 minutes
Video Description

This lesson focuses on application security, specifically: - Security by design: anything that is built - Security by default: software has doors closed and can only be opened by users, nothing is installed and nothing is enabled - Security by deployment: Deploy an application in a secure manner and lockdown deployment process and minimize user interaction. Participants also learn about general application issues: - Error and exception handling - Privilege escalation - Improper storage - Input validation - Race conditions - Resource exhaustion The lesson also teaches about issues specifically related to web applications: - Cross site scripting - Cross site request forgery - Click jacking - State/session management - SQL injection - Cookies

Video Transcription
Okay, Uh, as we move on and talk more specifically about the applications on our network uh, Cem, principal security considerations. And we've talked about the's a TTE leased to a degree
security by design, by default and by deployment.
Security by design
security is integrated into the design of the product, just like we talked about with I p Version six i p Version six was designed with I p SEC Integrated. It was designed to be a secure network layer protocol.
Security by design is huge, and we talk about it doesn't have to just be for software.
Certainly it's here for application, but it could be from hardware systems. It can be the physical security of your building. Design your facility using secure materials, mesh stairways, parking garages, designed toe have openings rather than just being a big, dark, tomb like
structures to park cars.
Security by design, anything we build we should build with security in mind.
Now, security by default means our software products should have all the doors closed. And if you want to open those doors, open him up. And here's how, Like I said earlier, Microsoft isn't necessarily known for that philosophy. they've focused more on open all the doors in the house. And if you want to close him, you can.
Their focus has been ease of use, more so than security.
And remember, there's always a cost benefit that leads to our decisions. Microsoft has done fairly well, and I know that they may not be where they once were. But, you know, I wouldn't mind having a good amount of stock in the company. So
there's always a reason that we choose the path that we choose. Microsoft has chosen to make their living on. This is in no way a judgment on Microsoft. They've just found that ease of use met their goals. Bells, other companies, other operating systems are designed to be secured by default.
Nothing's installed. Nothing's enabled. If you want to turn it on and if you want enable it, you can do so.
And one of the things that's interesting is you'll see that Microsoft is offering products now Mawr, in line with that school of thought with 2008 and with 12 2001 of the things that Microsoft has really introduced has been the idea of modularity
and by modularity because this really gives me greater security by default. The ideas, Nothing's installed. As a matter of fact, if you've been in II s seven, it's a real shock coming from earlier versions of II s six and I at five and so on. Because when I ask people, what is I I s from Microsoft.
Many people say, Oh, it's a Web server.
I s seven is not a Web server. It is a big, empty box with nothing in it. And if you want it to be a Web server, you install the Web server module. If you want it to be an FTP server, you install that module. You want it to allow authentication, you install that module.
Uh, you want to run D and s on a server, you install the module.
So the idea is Microsoft's goal now is much more in line with security. By default, nothing's installed. If you want to install it, you can add it in. And that really is certainly much better from a security standpoint.
Now, security by deployment simply means that we're gonna deploy it in a secure manner. Um, we're going to lock down the deployment process as much as possible. We're gonna try to minimize user interaction because users make a lot of mistakes if you put too much on their plate.
So, uh, you know, the three foundational elements
designs securely, default to security and deploy security. And that's how we implement applications in a secure manner.
Now there are lots of issues that can come up with applications, and one of the things that we've done is we've evolved throughout the years with our operating systems and our applications. We've evolved as to how we handle these issues that can come on
error and exception handling. There's been some sort of access that goes against her violates system policy. So what does an application due in that event? While the application may terminate, the application may lock up, may have a system reboot.
Uh, and it's frustrating as some of those things are. You may just get an air message on your screen,
but these air all ways of responding to some sort of security breach our security violation in such a way that no further error can happen. So that has to be built into the design of an application.
We can't count on applications being well written. We can't count on applications playing nicely together. You know, if you've been around computers for a while, If you go back to the windows 31 days, when does 95 98 days? You know, if you think your system locks up today, go back and get on a Windows 95
where they didn't really have a good memory manager in a good way of allocating and enforcing, uh, memory stacks to the different applications. Even though, you know, that was that was the intent. And that was the that was the process that was designed to do. It didn't necessarily do so well, so you'd always have these
event errors. You'd have illegal operation errors, you'd have the system locked
up. You have individual programs locked up. But the bottom line is each of those are ways that the system responds to a violation. Let me terminate in such a way that no further breach could be compromised.
Other things that we've got to think about with their applications, applications need to be resistant to privilege escalation. You know, I think about this, particularly with operating systems, but there are other applications that have rights and permissions associated with certain roles.
Attacks like buffer overflows, buffer overflows is where, um,
and applications, trying to access more memory than is allotted to it. And sometimes these buffer overflows can cause a system not just to lock up, but to inter estate, where a user could potentially be ableto escalate their privileges. So we want to be very cognizant of the harm that can come
with things like buffer overflows.
Ah, and of the threat of privilege escalation,
improper storage, you know, with improper storage. The thing that I think about is I think about covert channels, covert channels and a covert channel is any means of communicating across a path that wasn't anticipated
for communication?
For instance, the Loki attack l okay, I the Loki attack. Uh, this is where processes would communicate by storing information behind the ICMP header of a packet.
That's not what the ICMP headers. For so many times, that packet may not have been thoroughly or that portion of pack. It may not have been thoroughly inspected,
So by taking advantage of that idea in storing data in a place that doesn't normally get inspected, we may be able to covertly communicate
so improper storage. I'm storing things where they shouldn't be stored.
Input validation I've already talked about, but this is an essential piece of data base security,
garbage in, garbage out. So what's the best way and make sure garbage doesn't come in? And I do that by examining input from users, I force it to adhere to certain standards like data tight field link. I scan it for potentially malicious code and look for data control languages.
But I validate what goes in before passing it along to my back and serve
race conditions. Um,
there are lots of different types of race condition, as in, it's a race to the finish line.
Race conditions are all about causing timed functions. Toe happen out of order
were to mess with the timing of events. For instance, we talk about accessing the system. The way that usually works is if I'm gonna access the system, I log in
and it's part of log in. I provide my user name.
That user name is identification. I am making a claim
now. We should never start stop with just allowing the user to make a claim they should always have to support that claim. That's where authentication comes in. So I claim to be Kelly Hander Han. I prove on Kelly Hander hand by providing a smart card or a token or password,
and then and only then should I get authorized.
Should I get rights and permissions associate with Kelly Hander head? Well, a race condition might be an attack on the system architecture that slows down authentication.
It speeds up authorization so that I can cause those things happen out of sequence. You may be able to get authorized based on how you've identified without having to provide authentication. Now that's a high end attack that really is breaking the system's design in the system's architecture. But for a high enough value system, it's worth the attack.
Another type of race conditions specifically erase condition is called a talk
how talk towel attack.
And that stands for a time of check
time of use,
time of check time abuse. So let's say I go to a grocery store and, uh, I ask the cashier, I say, Listen, I've got 5 $20 bills in my pocket. Would you mind giving me $100 bill for these five twenties.
All right, night countem. 2040 60 80 100. And I put that money on the counter and the cashier goes to open up their cash register takes out $100 bill. But while they're busy doing that, I grabbed one of the twenties and I took it back in my pocket.
There's a variance in between when the cash cash here comes back around To put that in her drawer from when she checked and verified that the money was there. That's what a time of check time of use attack is all about. It's all about like, for instance, with configuration file. Let's say a process verifies that what they need
is in the configuration file in the configuration file
is valid.
I should immediately use that config file after verifying, I shouldn't verify that it's good and come back half an hour later and say, Oh, I'm gonna use that now
again if I can attack the system architecture that creates a variance between when something is verified as being legitimate and when it's used. I have this space in between to manipulate a system should be designed to not have a pause between authentication and authorization.
If you want to be authorized, you authenticated. And immediately you get your authorization not 10 minutes later, an hour later or whatever.
So timing attacks often referred to his race conditions and then the top metallic. A particular type of race conditions,
resource exhaustion. One of the, uh, most common attacks denial of service or also extended beyond that, A distributed denial of service all about exhausting resource is king floods, pings of death, sin floods. You know all these different types of attacks.
I want to overwhelm the system. I want to keep that system so
busy with my bogus requests, it can't respond to anything else. So that would be resource is exhaustion
from an attack standpoint.
Now there's, ah whole page of other types of attacks. Cross site scripting is often abbreviated. X S s cross site request Forgery is often abbreviated. C S R f. You might even hear it. Call the sea surf attack.
These were becoming very common and they are to a degree comparable
cross site scripting.
Cross site scripting takes advantage of poorly with written websites and there are a 1,000,000 poorly written websites out there out on the web.
So what a cross site scripting attack does is, um, uh it's a way of manipulating an existing website so that I input malicious code into the source of your Web page so that someone visits your site. That code wraps around and runs in their browser.
Ah, lot of phishing attacks use this. So I'm gonna send out an email to a ton of people. Click here on this link in, download today's joke of the day or whatever that might be. So when you click on that link that takes you to the infected website,
whatever the payload is of that malicious attack, that Java script that's been injected or whatever it might be,
it wraps around and runs in your browser. So that's obviously something very negative Now. Cross site request for Cherie, this, is, is something that would work in a very particular environment. What it takes advantage of is you having an open session to a secure site
at the time I perform in an attack.
Okay, so, for instance, let's say you log on to your bank. Let's say maybe you log on to Capital one so you've logged in. You provided your credentials, your brain into cookie on your system that essentially contains your session I D and information that says I'm legit here.
Well, it's an attacker. I want that cookie. And I want to be able to make requests using that cookie. So I appear to be legitimate.
So maybe you and I are talking in a chat room and I present myself as a tech support employees.
And while you've got that banking session open,
if you connect if you and I, uh, are able to connect, maybe I can get you to click on a link,
for instance that would transmit that cookie to me or allow me to intercept that cookie. I I hope this is making sense. Basically, the thing is, is when you have a secure connection to a banking server, you need toe handle that secure connection, and then you need to log off. I don't know if any of you have ever had it happen where
you log on to your bank, get distracted than 10 minutes later, you get a message that pops up and says, Hey,
your account has been terminated or disconnected to system in activity. That's to prevent sea surf attacks. If you leave that banking session open, you've got a cookie there with all your session I D and all your important information. And if I get you to go to this website
and you and I have a secure can, open up a connection. If I get you to click on the link,
I can access that cookie and then transmit requests on your behalf. Now. Certainly there are mitigating strategies in place. The best mitigating strategy is if you log on to your main, do what you need to do on your bank and get off.
So that's a cross site request. Forgery. Taking advantage of an established, secure connection.
Click jacking. You know, if I had 1/4 for every ad I saw that said, Click on the bull's eye to blah, blah, blah. And, of course, the bull's eye moves around but never really moves around so fast that it's a real challenge. What they're trying to get you to do is go to a Web page and click on a link. Essentially,
you know you would never do that if you went to a website that said click here for something surprising toe happen.
None of us would fall for that. Oh, but look, it's a dancing bear. It must be safe.
So you know what? The very least I'll pop up and add when you click there but more sinister, you know, just simply by clicking on a link, you can start a download. You can initiate a script to run. There's always a reason they want you to click there. Be very careful
now. State in session management As I mentioned before, um, when you open up a secure session, when you open up a secure connection, there's usually a cookie that contains very sensitive information that in Abel's that state to be current in that session to stay open.
These cookies are very desirable for an attacker.
So with your secure connections, know that that's a vulnerability. So you don't want to be doing a whole lot else when you do have a secure connection
code injection databases,
code injection code injection, code injection, input, validation is the source. It doesn't have to be sequel injection, although, of course, that's appropriate to sequel databases, any type of code injection, something we're concerned about, and we always look to input validation
cookies. I've already mentioned them in relation to session hijacking. That's out. Such and hijacking happens, I get ahold of your session cookie, but also, uh, these air static devices placed on your system to track history and browsing.
You know, not only do you have first party cookies from somebody like Amazon,
you know, if you're like I am, uh, I've got a four year old at home and he's finally sleeping through the night. But when he was younger, we always had problems with him waking up in the middle of the night. And so once I'm awake at night, I'm away. There's nothing to do. There's nothing to do except go on my computer and do online shopping. By golly.
And so, uh, one of the things is I'm one of those people that's on Amazon's thank you list and probably will be forever. So for a long time you get up in the middle of the night and all of a sudden these unnecessary plastic objects you didn't know you needed suddenly look very appealing.
Well, it didn't take long before my house had a new policy. And the policy was. You fill up your cart all you want, but you don't click on purchase until 9 a.m.
And the idea they're clearer Heads prevail. But one of those handy features about Amazon is that cart still full when you come up with 9 a.m. Right? You, The Amazon doesn't at all. Once you forget, you know to forget that you needed a calendar of pugs or whatever it was that seemed like a good idea at midnight.
So it's a cookie that Amazon places on your system to track your purchases.
That's a first party cookie, and generally we don't look at that as being a big privacy concern. We expect Amazon to know what we purchased. But the other thing is many of these companies sell rights, toe other companies to put cookies on your system. Which is exactly why, when I do buy a pub calendar for 20,015
all of a sudden on my Facebook page
or in my mail, I start to get very targeted advertising advertisements geared towards previous purchases. So third party cookies or another company say I want to know what you're buying it Amazon, and we generally do consider those to be privacy invasion, but a lot of sites won't let you go unless you do accept
Your browser's will allow you to turn off all cookies. But like I said, you're not getting any website if you don't accept cookies, but they'll also let you turn off just third party cookies as well.
Up Next

Two common security appliances are IPS and IDS. IPS stands for Intrusion Prevention System and IDS stands for Intrusion Detection System

Instructed By