- So welcome to lesson 10, Compare and Contrast
Security Implications of Different Architecture Models.
In lesson 10.1, we're gonna talk about
a variety of computing architecture models.
A computing architecture model is a conceptual framework.
It's what we use to describe the design
and the organization of a network.
And what it provides for us
is this high level view of the components, the interfaces,
and the relationships between different parts of the system.
Now, examples of computing architecture include centralized,
decentralized client server, industrial control systems,
cloud, and microservices.
I'm sure that you are familiar with some of these
but probably not all of these.
So we're gonna go through each one of them.
But before we do that, I wanna talk a little bit about
some cybersecurity considerations
for each of the different architectures.
So here are cybersecurity considerations.
They're not in priority order,
they're actually in alphabetical order.
But when we're thinking about
what's the appropriate architecture
for whatever it's we're trying to do,
we wanna be thinking about
what are the access control options?
What is our availability or uptime?
Will it be in compliance with any regulations
that we are obligated to follow?
Can we implement configuration management?
What is the cost?
The cost of implementing, the cost of managing,
the cost of maintaining,
the cost of refreshing and replacing over time?
What is the ease of recovery if we have a failure?
How well can we do provisioning
and can we automate our provisioning?
How resilient is it?
So again, if there's failures, how well can we recover?
What is the risk transference?
Meaning who can assume the risk here.
Is it scalable?
Meaning, will it grow with us?
Does it strategically align
with the needs of the organization?
And do we have really robust vulnerability management?
Because we know in every architecture
there are vulnerabilities.
So we need to be able to implement
a very robust vulnerability management program.
So if you are assessing
these various different architectures,
you wanna be thinking about all of these considerations.
So let's start going through them one by one.
In a centralized computing environment,
all processing and data storage
is gonna be managed and controlled by a central server,
or generally speaking by a mainframe
rather than on an individual device.
So users are going to access applications and data
through dumb terminals or thin clients.
But the processing, the data storage, the security,
and the resiliency services are all managed
and controlled by the central server.
Advantages and disadvantages, right?
Everything's in one place,
but if we lose that central server, that mainframe,
we're dead in the water, right?
We really can't do anything.
In a client server architecture,
what we have is a decentralized computing model.
Now it's the one that you and I generally work in.
It's in which a client device communicates
with a server to request services or data.
Probably one of the most common configurations now.
Now the client server model is based on a division of labor
between the client and the server.
The client typically handles the user interface,
the application logic, and local data storage
where the server is going to manage data storage,
processing, and the management of our shared resources.
So we've got a good division of labor,
but because all these clients talk to the server,
we have lots of conduits for malicious behavior.
We could also have some vulnerable operating systems
and applications, malware distribution,
and if we have any unprotected or weak links
it could impact the other systems.
Now, Industrial Control Systems are network devices
and software used to monitor and control
industrial processes such as manufacturing
or power generation, and water treatment.
The components of an ICS system,
an Industrial Control System
are gonna include hardware devices such as sensors,
actuators, and controllers,
and some very customized software applications.
An ICS, Industrial Control System architecture,
can be centralized or it can be decentralized
depending on the specific design and implementation.
Now, a SCADA system, Supervisory Control
and Data Acquisition is really a specialized ICS system
that is designed specifically for monitoring and controlling
large scale industrial processes like a gas pipeline,
or an electrical grid, or a water system.
So what are some of our security considerations
here when we talk about ICS
and really even more specifically about SCADA?
Is that many of these systems have to have a very long life.
They're designed for 20 plus years.
So if you think about how often components change,
how often hardware is updated, and more importantly right,
what the end of life is on operating systems,
we can see that, you know going out 20 years
can potentially introduce a lot of vulnerabilities.
'Cause we'll be way past end of life and end of support.
There's also very limited maintenance windows
in a lot of these systems.
Most of 'em are operating seven days a week, 24 hours a day,
365 days a year, and there may be minimal visibility.
Again, these distributed systems,
Industrial Control Systems, particular,
you may not be able to see everything
that's that's going on.
Next we have cloud computing.
And this is one that I'm sure you're all very familiar with.
Cloud computing is the delivery of computing services
over the internet, a.k.a, "the cloud",
right, that scale to business needs.
And scale to business needs
is an important part of that sentence.
It's not just that we're delivering services over the cloud,
so delivering services over the cloud
that scale to business needs.
Now, cloud computing can be considered a hybrid architecture
because it does involve a combination
of centralized management
and decentralized distribution of resources.
And we've got two full lessons coming up
about cloud computing.
One from a user perspective
and the other from a architecture
or data center perspective.
And then we have microservices.
Microservices architecture
is composed of these small independent services
that communicate with each other over a network
enabling greater scalability and flexibility.
Now, each microservice is in itself
a self-contained component that can be deployed, updated,
and scaled independently.
So microservices architecture is generally considered to be
a decentralized computing model.
So now that we've gone through all these
as we're thinking about various threats and vulnerabilities,
I want you to be applying those
to what you now know about these different architectures.
And that brings us to a three second challenge.
Five questions, three seconds each.
Let's do it.
"An example of this architecture is mainframe computing."
One, two, three.
That's gonna be centralized.
Question two, "Microsoft Windows networks
are an example of this computing architecture."
One, two, three.
That's gonna be client, server or decentralized.
Question three, "Delivery of services over the internet
that scale to business needs."
What's that considered?
One, two, three.
That's cloud computing.
Number four, "Small independent services that communicate
with each other over a network."
This is the one you might be least familiar with.
One, two, three.
It's referred to as microservices.
And lastly, number five,
"Widely used in factory automation."
One, two, three.
That's gonna be Industrial Control Systems or ICS.
Alright, let's do a security in action about,
well a boomer of all things.
So, okay, boomer, "Your almost retired coworker
is reminiscing about the 'good old days'
when computing was centrally controlled and managed
and security was just easier to implement."
Well, "You respectfully disagree and you'd like to respond
with the benefits of a client server and cloud architecture.
So what might you say?"
So we've got this almost retired coworker.
He's talking about those "good old days", right?
When computing was centrally controlled, meaning a mainframe
or a mid-frame and it was managed,
and boy security was just easier in those days.
And you're thinking, well
"Not really, you know, not necessarily.
There's an awful lot of benefits
to the client server and cloud architecture."
So what are you gonna say when you compare
kind of old versus current or emerging architecture?
Go ahead and put me on pause
and write down some notes and then come on back.
We may wanna talk about
the client server division of labor often results
in enhanced collaboration and productivity.
And that the client server model
is a really efficient use of resources, right?
We get to use processing power of the client and server.
We get to use memory of the client and server.
We get to use local storage of the client and server,
opposed to in the mainframe environment
everything was on a central server,
a very, very, very expensive central server.
And really our end user devices
are thin clients or dumb terminals were effectively useless.
They didn't do anything, right?
Other than communicate with the end user.
Now, client computing allows businesses
to easily scale, so to grow,
and often makes resources and applications available
that otherwise wouldn't be available to us.
So in some cases, you know,
security may be more challenging to implement
in a client server or in a cloud environment
opposed to a centralized mainframe environment.
But generally speaking, the trade-off
is going to be worth it.
We get so many benefits from both our client server
and our cloud computing environment.
So respectfully, boomer,
that's a discussion you wanna have.
Doing so, security and action.
All right, that brings you to our word cloud,
fairly small, but you just wanna be able to recognize
these different types of architectures
and then apply those security considerations
that I introduced to you
right at the very beginning of the lesson.
All right, you know what to do when you're ready.
I'll see you at the next lesson.