AWS re:Inforce 2022 - Using graphs for security operations insights (sponsored by Wiz) (DEM224-S)

AWS re:Inforce 2022 - Using graphs for security operations insights (sponsored by Wiz) (DEM224-S)


AWS re:Inforce 2022 - Using graphs for security operations insights (sponsored by Wiz) (DEM224-S)

It’s easy to find risks in IT infrastructure, but it can be challenging to find the ones that are most critical because of an overload of information without much context. Access patterns across connected resources like VMs, containers, and applications can be used to correlate related issues that create attack vectors. Security graphs—using a graph data structure to improve security—are one of the largest and fastest growing use cases for Amazon Neptune. In this talk, explore how graphs can improve security operations insights. Hear from a Neptune customer, Wiz, about how they use graphs to provide a contextual risk assessment of clients’ clouds and cloud protection at scale. This presentation is brought to you by Wiz, an AWS Partner.

Learn more about AWS re:Inforce at https://bit.ly/3baitIT.

Subscribe:
More AWS videos http://bit.ly/2O3zS75
More AWS events videos http://bit.ly/316g9t4

ABOUT AWS
Amazon Web Services (AWS) hosts events, both online and in-person, bringing the cloud computing community together to connect, collaborate, and learn from AWS experts.

AWS is the world’s most comprehensive and broadly adopted cloud platform, offering over 200 fully featured services from data centers globally. Millions of customers—including the fastest-growing startups, largest enterprises, and leading government agencies—are using AWS to lower costs, become more agile, and innovate faster.


#reInforce2022 #CloudSecurity #AWS #AmazonWebServices #CloudComputing


Content

0.87 -> - Good morning.
2.16 -> Hey, everybody, we're so glad to have you here.
4.02 -> It's been a while since we've been in Boston.
6.09 -> So I went to college here.
7.32 -> I'm really excited to be back myself, too.
10.26 -> So we wanted to welcome you.
11.37 -> We're gonna have some wonderful speakers
12.45 -> throughout the day today,
13.35 -> and we're gonna get started this morning
14.67 -> with a joint presentation from Wiz and AWS.
18 -> So if you would please welcome
19.2 -> to the stage here in the Galaxy Theater,
20.58 -> they're gonna kick things off for us.
22.2 -> He came all the way from Tel Aviv.
24.15 -> This is Yinon Costica and Brad Bebee.
31.2 -> - Good morning.
32.033 -> Welcome, everybody.
33.15 -> I'm Brad Bebee.
34.38 -> I'm the general manager for Amazon Neptune,
36.93 -> and this session is "Using Graphs
39.6 -> for Security Operations Insights."
41.76 -> And I'm very pleased to present it with Yinon Costica
45 -> of an AWS partner and Amazon Neptune customer, Wiz.
49.41 -> Before we get started,
50.61 -> I just wanted to take a quick check of the room.
53.67 -> How many people are using graphs today
56.19 -> as part of their operations?
59.36 -> A few, okay.
60.57 -> How many people are using a graph database?
64.68 -> All right, how many people are using Amazon Neptune?
68.82 -> Okay.
71.19 -> Customers are really excited about graphs.
75.3 -> Thousands of customers are using Neptune every day.
79.68 -> The reason that they're excited about it
82.08 -> is because graphs allow you
84.6 -> to use the relationships in your data
89.01 -> to solve problems in different ways
91.02 -> or to solve them, problems, that you can't solve
93.99 -> with other techniques.
96.09 -> The range of graph applications is very broad,
99 -> everything from things that you might expect like fraud,
102.57 -> identity-resolution use cases,
104.82 -> to organizing information,
107.01 -> to life sciences kinds of applications
111.6 -> and, of course, security as a graph.
115.29 -> When you think about many of the challenges in security,
119.79 -> you often start with a graph first,
122.25 -> and you can see this kind of basic example here.
128.28 -> A quick primer on a graph basics.
130.98 -> Graphs are a data structure,
133.89 -> and they consist of nodes and edges.
137.49 -> And what's really important about graphs is that in a graph,
142.32 -> the relationships are first-class objects
145.86 -> in the data structure,
147.27 -> and this means that you can ask questions
149.31 -> about them directly.
150.6 -> You can express patterns, and you can express queries.
154.17 -> And when you're able to do this,
156 -> you're able to address these aspects of your data.
161.04 -> Now, if you think about security as a graph,
163.77 -> starting from your left,
164.73 -> you can see a very notional security model
167.28 -> about the kinds of things that you might be interested in
169.86 -> from a security case.
172.62 -> And on the other side,
173.453 -> you can see how that might be translated into a graph.
176.34 -> And so your key entities, your devices, your hosts,
179.85 -> your users will be represented as nodes.
182.91 -> Those nodes have properties,
184.68 -> so information that's important to you
186.87 -> in terms of addresses, various different kinds of metadata.
190.65 -> And then you can represent the relationships
193.2 -> about how they're connected.
198.36 -> Just like graphs in general,
200.64 -> the range of different security business challenges
203.1 -> is broad, everything from cloud security posture management,
206.91 -> which we'll hear from Wiz in just a second,
209.79 -> to different types of exfiltration,
212.67 -> to just understanding digital forensics,
215.67 -> so potentially a very broad set of applications
219.63 -> for graphs in the security space.
224.43 -> Using graphs can have its own challenges.
227.76 -> Often as you bring different sets of data together,
231.51 -> the relationships become complex and hard to understand.
235.89 -> And so you need to analyze
238.56 -> and take a look at your data model
240.42 -> and understand which pieces are really meaningful
243.27 -> for the kinds of detections that you wanna do.
246.33 -> Often graphs get very large very quickly.
250.86 -> And so you can quickly scale to billions of nodes and edges,
254.28 -> and you need to be able to manage that kind of size.
258.63 -> And then finally,
260.52 -> graphs and security are about protecting things.
262.68 -> And this kind of information is very important.
265.38 -> So you need to make sure that the ways
267.21 -> that you process the information
269.22 -> meet the various different security
270.81 -> and compliance regimes that you have.
275.94 -> This is a very basic example
277.53 -> of the kind of logical flow that you might take
280.47 -> for a security graph.
281.88 -> You start on the left-hand side with your data sources.
285.24 -> You might store them in a data lake, something in Amazon S3,
289.05 -> do different kinds of processing
290.7 -> with things like Amazon EMR to be able to use the data.
295.05 -> And then you might have different kinds
296.22 -> of analytic processing, things like identity resolution,
300.48 -> entity disambiguation.
302.07 -> In this case, we're showing both symbolic
304.41 -> and non-symbolic entity resolution.
306.87 -> And those things create relationships across the data
309.81 -> that you can then use for other parts of your application.
313.83 -> In this case, we're storing in a graph database.
316.17 -> You're driving APIs
318.06 -> that you might be serving other clients with,
320.49 -> and so a very basic example of a security use case.
326.49 -> Why would you think about a graph database service?
329.76 -> Well, graphs as an information model
332.55 -> tend to have a lot of random access.
334.74 -> And so if you think about going from one node,
336.99 -> following a link traversing to another,
339.3 -> you're not able as a database
341.19 -> to lay out the data to get good locality,
344.34 -> for example, as you can in a relational database
346.92 -> with rows and columns.
348.93 -> So graph databases are optimized
350.82 -> for these kinds of graph-access patterns.
354.93 -> A graph service makes managing database itself something
358.47 -> that you don't have to worry about.
360.21 -> You don't have to have the expertise to do that.
363.21 -> And finally, the service itself,
365.13 -> you don't wanna have to think about adding storage
367.29 -> or compute or memory as you grow.
369.3 -> You want the service to do it for you.
373.83 -> Amazon Neptune is a fully managed graph database service
378.57 -> that's optimized for graph processing,
382.05 -> can store graphs of billions of nodes and edges,
385.26 -> and is designed to provide interactive graph queries
390.66 -> and retrievals with millisecond latency.
393.69 -> We provide the most choice
395.55 -> of different kinds of graph languages
397.41 -> supporting the open-source Apache TinkerPop,
399.6 -> openCypher, and RDF and Sparkle.
404.58 -> Thousands of customers use Neptune every day
406.95 -> to manage their graph processing.
408.87 -> And I'm very excited today
410.88 -> to introduce one of them to you, Wiz,
413.7 -> and you'll hear how they're using graph processing
415.98 -> as part of their application.
419.43 -> - Thank you.
422.97 -> Okay, thank you, Brad, and hi also.
425.007 -> I'm in Yinon Costica.
426.51 -> I'm running product management for a company named Wiz.
429.6 -> Wiz is about revolutionizing the way we do cloud security.
435.36 -> Across our environments,
436.86 -> we're leveraging a completely agentless technology,
439.74 -> but then again, this session will be focused
442.23 -> on the use we are doing internally within Wiz
446.19 -> for analyzing all of the security signals.
449.55 -> So we are an agentless and a graph-based approach.
452.82 -> And a little bit about the company,
455.73 -> we really founded Wiz two years ago
459.21 -> in order to do cloud security differently.
462.27 -> We realized that cloud security became way too complex.
466.2 -> It requires understanding of very complex systems,
469.17 -> and this is when we founded Wiz.
471.69 -> In the two years of our existence,
473.73 -> we raised more than $600 million
476.1 -> from the best VCs out there.
477.27 -> But the more important thing is that we already gained trust
479.94 -> for more than 20, actually 25%, of the Fortune 500 companies
484.14 -> alongside hundreds of other companies.
486.39 -> And you can see the leaders
489.84 -> of different industries using Wiz today
492.24 -> to protect their cloud environments.
494.34 -> And the question is what did they see
496.68 -> in Wiz that they didn't have
497.91 -> in all of the other tooling that they have in,
500.58 -> like employed, deployed in the past
502.71 -> and how did Wiz help them?
504.51 -> And Wiz is not only adopted
508.17 -> by such a large number of customers.
510.45 -> It's also basically the fastest growing SaaS company
514.26 -> and also the fastest growing AWS security partner
518.16 -> in the marketplace.
520.02 -> So with that, I want to focus a bit
521.85 -> on how our approach to cloud security,
524.01 -> and then we're gonna deep-dive into the use of the graphs.
526.77 -> First, Wiz is all about agentless.
528.72 -> Wiz can be deployed in a few minutes
530.88 -> on any size of an AWS environment.
533.4 -> It can be deployed at the account level,
535.44 -> at the organizational level.
537.06 -> And basically within just a few minutes,
539.04 -> you can get up and running with Wiz by setting up a role.
542.82 -> This role is actually being used
545.1 -> to analyze, first, all of the cloud APIs, right?
548.19 -> So to interrogate the APIs, interrogate the configuration,
551.25 -> so the control plane of the cloud.
553.65 -> And then we are actually taking a different approach
557.07 -> to analyzing the workloads,
558.93 -> so the VMs, the containers, the serverless functions,
561.9 -> by analyzing the actual running workloads,
565.08 -> by analyzing the snapshots, container,
568.05 -> running container images,
569.46 -> analyzing containers from the registry,
571.92 -> analyzing the serverless function code.
574.26 -> And by doing this, you can actually connect Wiz
576.51 -> using a single role but get a full analysis
579.24 -> of everything that you have running in your cloud.
581.76 -> Now, using this deployment, what we're actually doing,
584.91 -> we are running a very broad set of assessments.
587.43 -> The assessments start with the traditional scanners
589.86 -> that we all know about,
590.79 -> so a vulnerability scanner, a malware scanner,
593.25 -> a configuration analysis to identify misconfigurations
597.06 -> and non-compliant configurations.
598.98 -> But these are the traditional ones.
600.75 -> In order to make it really good for cloud,
603.45 -> we also need to be able to identify cloud risks.
606.87 -> And understanding cloud risks
608.4 -> is actually about understanding external exposure,
611.22 -> excessive permissions,
612.6 -> lateral movement path, insecure use of secrets.
615.72 -> So we have created an additional set of scanners
618.27 -> in order to really understand also these type of risks.
621.57 -> And this is the first application
623.07 -> of the graph that we will go into.
625.38 -> Then the killer app is actually by taking all of this signal
631.35 -> across all of the different scanners
633.3 -> and combining it on a single graph database, Neptune.
637.47 -> And this is what actually allows us
639.6 -> to take thousands, thousands of findings
642.78 -> of vulnerabilities, of misconfigurations,
645.06 -> and actually sieve out what is the most critical risks
648.36 -> that your organization can actually fix
651.42 -> with the largest impact on your security posture,
654.15 -> what are the actual attack path,
655.92 -> the effective risks that you have in the environment.
658.44 -> And this is all achieved based on the graph.
660.15 -> Think about it this way.
661.38 -> Let's say you have a vulnerable container image
663.39 -> for Log4Shell.
665.31 -> You probably have quite a few of those in the environment,
667.65 -> but you have only one week before the holidays
669.78 -> to fix the ones that really do matter.
671.61 -> How do you know which ones?
672.99 -> So probably you wanna know which ones are internet-facing,
676.08 -> which ones have admin permissions
678.03 -> or access to sensitive data.
679.83 -> And you need to take all of these data points
681.84 -> and correlate them into a single view
683.91 -> that tells you this container image
686.25 -> is your best next action to fix Log4Shell.
689.31 -> We do it using a graph, and we will go deeper into it.
692.88 -> But the really important thing,
695.1 -> all of this happens automatically behind the scenes.
698.07 -> What the customers get in the end is just a list
700.68 -> of prioritized risks that they can basically consume
703.98 -> and start fixing, improving their security posture
706.8 -> by hardening, automating the response,
710.1 -> integrating into their CI/CD pipelines
712.41 -> to prevent this from ever being deployed in the first place.
715.83 -> So this is how organizations can really go up
718.32 -> and scale up with their cloud security posture.
720.93 -> And I wanna focus on why did we choose
723.18 -> to model everything as a graph.
725.01 -> And the reason is that cloud, like real life,
728.16 -> is ultra complex,
729.57 -> and I'm thinking even about myself presenting here.
732.87 -> So I'm a co-founder of a company named Wiz.
736.11 -> We have investors like Sequoia, Index.
738.63 -> I'm currently in re:Inforce that happens
741.18 -> in Boston, Massachusetts, USA.
744.45 -> It's a conference by AWS.
747.18 -> And what I've listed now is a very complex set of entities
751.71 -> with relationships between them.
753.78 -> And let's say now I'm an investor in Sequoia,
756.45 -> and I wanna visit all of the co-founders
759.36 -> that Sequoia invested in that are currently presenting
762.24 -> in a conference in Boston.
763.98 -> Think about doing it without a graph.
766.17 -> Think about correlating all of these data,
768.21 -> joining all of these tables
769.74 -> just to find out an answer to this.
771.78 -> A graph can actually answer
773.19 -> that complex question in a second.
775.68 -> It's all about modeling,
776.88 -> and when we think about modeling,
778.47 -> we have, of course, entities,
780.72 -> but entities have types like humans, companies, VCs.
785.07 -> And when we correlate all of this,
786.51 -> it allows us the power of asking complex question not only
790.08 -> on the entities but also the relationships between them.
793.26 -> And this is where we actually modeled cloud security
796.41 -> on a graph.
797.25 -> What do we need to model on a graph
798.81 -> when it comes to cloud security?
800.58 -> We need to identify attack path.
802.38 -> What is an attack path?
803.49 -> What is a critical attack path?
805.38 -> Actually, it's an exposure
806.97 -> that allows an external threat actor
809.58 -> to compromise a resource and get into a high-value asset,
814.23 -> such as an admin account or a sensitive bucket
816.87 -> or a sensitive database.
819.03 -> This is an entire attack path,
820.74 -> and if I'm able to identify these attack paths
824.13 -> in your cloud environment within minutes,
826.44 -> you can also fix those in minutes
829.53 -> because you know these are the attack paths you should find.
832.44 -> So in order to address this question,
834.3 -> we modeled the entire cloud as a graph,
836.88 -> but we split the answer into three sections.
839.88 -> The first one is, what is actually exposed
842.82 -> across my cloud environment at any given time?
845.91 -> That's a very hard question to address,
847.98 -> many, many configurations.
849.57 -> We use a graph.
851.22 -> What is the priority of the vulnerabilities?
853.2 -> Like we use Log4Shell.
855.54 -> What are the lateral movement paths to high-value assets,
858.87 -> to sensitive resources?
860.91 -> These are three different use cases,
862.56 -> and I'm gonna deep-dive into each one of them.
865.2 -> Let's start with network exposure.
867.87 -> Today, traditional tools, legacy tools,
870.93 -> we're actually looking at the configuration
873.6 -> of every single network element.
876.36 -> This is a very, very noisy approach
879.6 -> because let's say I want to identify a machine
882.54 -> that is internet-exposed.
884.28 -> I can check for the public IP.
886.35 -> Does it mean it is exposed?
887.94 -> No, if a machine has a public IP,
890.16 -> it may not have a gateway at all,
892.86 -> not have a routing rule, so it's not exposed.
895.29 -> So it's noise.
896.4 -> On the flip side, let's say I have a machine
898.08 -> without a public IP.
899.61 -> Does it mean it's not exposed?
901.23 -> No, it can be behind a load balancer.
903.84 -> So actually inspecting one single configuration
906.9 -> to determine exposure is a really bad approach
909.75 -> when it comes to security.
910.95 -> It's great for compliance, really bad to identify risk.
914.49 -> Same thing about inspecting security groups, very noisy.
917.55 -> Maybe I have a security group that is open,
919.59 -> but there is nothing behind it.
921.09 -> Do I need to fix it?
922.17 -> Is there a real risk?
923.25 -> No.
924.3 -> So in order to solve it, what we actually did,
926.73 -> we modeled the entire network configuration topology,
931.05 -> the rules, on a single graph.
934.65 -> This actually allows us to take load balancers,
937.02 -> peering relationships, routing groups, security groups,
940.968 -> Kubernetes configurations,
942.63 -> and layer everything on a single graph
944.88 -> and then ask a very simple question.
947.25 -> Run a flow analysis from the internet
949.89 -> to every single resource in the graph.
952.68 -> And if you manage getting there,
954.75 -> then this resource is exposed, but this exposure is true.
958.32 -> It has taken into account every single configuration
961.29 -> along the path and determined that this is exposed.
964.86 -> So Wiz has actually introduced, using the graph,
967.59 -> the notion of effective network exposure.
970.8 -> So we can look at an environment and give you immediately
973.44 -> what are all the exposed endpoints that you have.
975.81 -> That's the first step.
977.67 -> From here, we are actually moving
980.07 -> to asking questions about prioritizing vulnerabilities
982.89 -> because now I have more context.
984.81 -> To prioritize vulnerabilities,
987.03 -> most, like the traditional approach,
989.01 -> was all around CV and CVSS scores.
991.89 -> So I'm getting Log4Shell with CVSS 10.
995.07 -> Do I need to fix everything?
996.63 -> Well, yes, but not right now, right?
998.67 -> There is more color to it.
999.75 -> There is more context to it.
1001.37 -> Maybe it's internet-exposed,
1002.84 -> and then I need to start from there.
1004.49 -> So we have the graph.
1005.72 -> Now we can say, okay, I know that I have thousands
1008.99 -> of instances with Log4Shell,
1010.94 -> but now I can correlate it
1012.2 -> to the other exposure that we've just seen how to correlate.
1015.53 -> This gives me another priority, but this goes on.
1019.64 -> I can actually correlate it
1020.93 -> with other elements on the same asset.
1023.69 -> Maybe I even exposed secrets on this machine.
1026.24 -> So if this machine gets popped, this is truly impactful.
1030.29 -> This is truly risky.
1031.97 -> And maybe this secret has a lateral movement path
1035.63 -> to a higher value asset.
1038 -> So in fact, what we're doing
1039.29 -> with the graph is not only analyzing flows
1041.87 -> but also analyzing toxic combinations
1044.75 -> like you can see here on the VM,
1046.46 -> correlating vulnerabilities, exposures,
1048.53 -> lateral movement path,
1050.12 -> and then determining the true risk of a vulnerability.
1053.42 -> And there are many discussions on what is a good approach
1056.78 -> to rank vulnerabilities more than just the CVSS,
1060.38 -> the contextual risk.
1062.12 -> And this is exactly how we achieve contextual risk
1065.33 -> on vulnerabilities
1066.32 -> and any type of findings in the environment.
1069.32 -> The third thing is about lateral movement path,
1072.71 -> and lateral movement paths are tricky.
1075.35 -> They are ultra complex.
1077.24 -> They use combinations of secrets,
1079.52 -> identities, permission sets,
1081.92 -> toxic combinations of permissions in order to escalate.
1084.8 -> And the question is,
1085.67 -> how can I identify all of these paths
1088.31 -> that actually lead me from one asset
1090.53 -> to a high-value asset in a very large environment?
1093.89 -> Guess what, this problem is very, very similar
1096.86 -> to the problem we had with the network exposure.
1099.38 -> We just need to model the graph correctly.
1102.11 -> So we modeled the graph,
1103.94 -> and basically we modeled the secrets,
1107.24 -> but we also run a full IM analysis
1110.63 -> that basically tells me for every single role,
1113.51 -> what are all the accessible resources from that role
1116.96 -> and which resources can assume this role.
1119.72 -> So if I have chains of assume role, I can detect them.
1124.01 -> If it's one single hub, two hubs, 10 hubs,
1127.73 -> I can still detect all of these escalation paths
1130.79 -> and more than this.
1132.35 -> We have solved the cross-account access
1134.45 -> because now what we can do, we can ask,
1136.55 -> can I actually move laterally from a development environment
1140.69 -> to a production environment using a secret
1143.24 -> that allows me to access the machine?
1145.79 -> So modeling the graph correctly
1148.49 -> and running the flow allows us
1150.02 -> to identify attack path that literally no one,
1154.79 -> no human can find with traditional tools in the environment.
1158.9 -> It's way too complex.
1161.15 -> And when we run these on customer environments,
1163.58 -> the type of findings it has are outstanding
1167.75 -> because these are actual facts.
1169.97 -> There are no heuristics.
1171.38 -> There is no ML.
1172.46 -> There is no AI.
1173.63 -> It's pure facts correlated together on a graph analysis
1177.53 -> that can tell the engineering team, the security team,
1181.85 -> you have here an exposed resource.
1183.8 -> You thought it's okay
1185.51 -> because it's in the development environment,
1187.58 -> but in fact here is the entire path
1190.43 -> to get to your most sensitive S3 bucket in production.
1193.79 -> And this is why you really need to pay attention,
1196.07 -> even if it looks insignificant.
1199.04 -> So this is the third thing,
1200.21 -> and just for this session for re:Inforce, actually,
1203.12 -> we launched an additional use of the graph.
1205.907 -> The additional use of the graph
1207.53 -> is when we take not only configurations and vulnerabilities,
1211.73 -> but also detections like GuardDuty detections.
1216.41 -> And what we have just launched is the ability
1218.96 -> to take these GuardDuty detections
1221.54 -> or any other threat detections you may have
1224.24 -> in the environment
1225.26 -> and then use the same context of the graph
1228.05 -> in order to quickly understand what is the actual risk
1232.52 -> and whether it is truly important
1234.2 -> to tackle this specific alert right now.
1237.17 -> And the answer is that we can reduce
1238.94 -> by a factor of 10 the time it takes
1241.31 -> to correlate a single threat using the context of the graph.
1246.05 -> So let's take a very simple example,
1248.12 -> SSH brute-force attacks.
1249.8 -> We're getting many of them.
1251.36 -> Any organization, as soon as you open an SSH port,
1254.3 -> it will get a brute-force alert, many of them.
1256.82 -> But then if we can say more things about the resource.
1260.36 -> For instance, not only it is brute force
1263.84 -> and it is internet exposed,
1265.31 -> of course, because it is brute force,
1267.29 -> but this machine from our analysis
1269.42 -> of the snapshot, the agentless analysis,
1271.91 -> we can tell you that this machine
1273.41 -> actually has a weak password.
1275.48 -> And if this password is really easy to get poked,
1279.56 -> an attacker can get access to this machine.
1282.14 -> But now hold on for a second.
1283.76 -> Not only it can get access to this machine,
1286.34 -> it can move laterally using the lateral movement path.
1289.07 -> So security team, if you see this alert
1292.64 -> and this correlation on the graph,
1294.35 -> you really need to take an action right now.
1296.54 -> And this is taking minutes to basically identify
1301.88 -> versus hours to investigate.
1304.1 -> So using it also for sec ops operations.
1307.31 -> Now here is the killer app.
1310.01 -> Everything,
1311.06 -> we could have basically placed this analysis
1313.97 -> in different sections of the graph, different graphs,
1316.43 -> but we didn't.
1317.263 -> We actually took all of this,
1318.89 -> and we layered it on one single graph.
1322.07 -> The single graph is what allows us
1323.78 -> to identify exposures side by side
1326.48 -> with lateral movement path, with vulnerabilities,
1328.64 -> with secrets exposed, with alerts from threat alerts.
1333.77 -> And anything else that we add
1335.18 -> to the graph just builds on top of it
1337.61 -> and allows us to basically uncover
1339.59 -> what we call toxic combinations of risks.
1343.4 -> So now we can look at the entire spectrum
1346.49 -> of the signals that we collect from the different scanners
1349.22 -> and give you one view of the entire risk,
1351.86 -> so one queue for alerts, one queue for risks.
1355.13 -> And we know what is the most critical risk.
1357.44 -> So it's prioritized.
1359.57 -> And basically this is the end result for a customer.
1364.28 -> The customer, in the end,
1366.29 -> what the security team gets is a very clear view
1371.03 -> of the exact slice on the graph
1373.64 -> that creates this attack path, this toxic combination.
1377 -> So you can see the internet exposure,
1379.94 -> the access path to the resource via the network,
1383.3 -> the lateral movement path,
1384.71 -> the vulnerabilities that need a fix,
1386.81 -> and everything is explainable in seconds.
1391.19 -> And you don't even need to be a security expert
1393.29 -> to understand it because it's visual.
1395.63 -> The visualization makes it clear, makes it simple,
1398.75 -> and it reduces the time it takes security teams to explain
1402.59 -> and explain and explain why is this so important,
1406.97 -> why does this really need a fix?
1409.49 -> And this makes it clear because when an engineer gets it
1413.12 -> without any security background,
1415.16 -> they look at it, and they get it.
1416.78 -> They simply get it
1418.13 -> because they know that this is an attack path,
1420.29 -> and, of course, they don't want an attacker
1421.76 -> to get to this point, but it's possible, and it's factual.
1425.3 -> There is no percentages of probability.
1428.93 -> It's 100% correct.
1431.33 -> So this is what the alert looks like.
1433.46 -> It brings it in, all of the context together.
1436.43 -> It allows to take action from the portal.
1438.89 -> So basically we have shortened the time it takes
1441.83 -> to take an action, so an engineer can just go in
1445.34 -> and fix the stuff in their own environments.
1449.6 -> This is important because, in the end,
1451.94 -> our goal as security teams is not to fix all
1454.46 -> of the issues ourselves.
1455.84 -> We need to make it accessible
1457.49 -> to every single engineering team,
1459.83 -> every single business unit that builds to the cloud
1462.71 -> because this is what allows us to scale and be effective
1466.07 -> and democratize security back to the engineering teams
1468.77 -> that, in the end, they need to apply the fix.
1471.11 -> The graph and the visualization
1473.03 -> and the accuracy and the context,
1475.1 -> all of these are the things we used based on Neptune
1478.19 -> in order to enable organizations to move from a very,
1484.16 -> let's say, a labor-intensive security program
1487.67 -> to a democratized security program that can scale
1490.82 -> to any size of an organization.
1493.82 -> Now, all of this wouldn't have been possible
1496.46 -> without the amazing partnership with the Neptune team,
1500.18 -> and I want to talk a little bit about the technical aspects
1504.11 -> behind what it takes to build what is today probably one
1508.1 -> of the largest cloud graph-as-a-service implementation
1514.01 -> in the world, I think, which is the Wiz graph.
1517.1 -> Basically the partnership with Neptune allowed us
1520.52 -> to maintain the scale,
1522.86 -> even on the largest cloud environments that we protect.
1525.71 -> And we are connected today
1526.76 -> to some of the largest cloud deployments in the world,
1529.88 -> and the graph can scale up to it.
1531.89 -> How did we achieve it, right?
1533.69 -> So first, we need to basically use
1537.74 -> what we call the ingestion at scale.
1540.23 -> The graph itself is an accurate representation
1543.35 -> that is continuously updated.
1545.6 -> So when you make a change,
1547.04 -> the graph needs to be updated to represent that change
1549.59 -> in the environment back in the graph.
1552.83 -> This requires ingestion process at scale.
1556.55 -> This requires us to analyze billions of activities
1560.15 -> and fix, update, all of these properties,
1563.39 -> all of these nodes, all of these edges, in near real time
1566.72 -> in order to have an accurate representation
1569.03 -> of the environment.
1570.17 -> And in order to do this,
1571.25 -> we need to make sure we use optimized keywords.
1574.4 -> And when I mean optimized keywords,
1576.08 -> so graph is based on Gremlin.
1578.87 -> It's an open-source language that is used.
1582.26 -> And when we use optimized keywords
1584.78 -> that are implemented natively within Amazon Neptune,
1588.68 -> this is actually what allows us
1590.27 -> the performance use of the graph.
1592.16 -> So over time, making sure
1593.54 -> that the entire ingestion pipeline
1595.46 -> actually uses these optimized keywords was the key
1599.06 -> to create this up-to-date graph.
1602.27 -> The second thing is, how do you do a query on the graph?
1605.42 -> And when you think about it,
1607.28 -> every single graph query can be asked in multiple ways.
1610.67 -> If I have an internet exposure
1612.95 -> on a machine that has a vulnerability,
1615.89 -> I can start asking, show me all of the vulnerabilities
1618.89 -> that are attached to a VM that have an internet exposure.
1622.52 -> I can ask, show me all the VMs that have a vulnerability
1626 -> and also have internet exposure.
1628.16 -> And I can start from all the exposures
1630.23 -> that have a VM behind them that has a vulnerability.
1633.47 -> And you can see how it scales.
1635.36 -> So being able to query in an effective manner,
1638.96 -> in a performance manner,
1640.67 -> this is exactly what we've accomplished
1642.8 -> using the data-flow engine that basically inspects a query
1647 -> and optimizes it before it is actually being processed.
1652.91 -> The third thing is about the openCypher.
1655.25 -> So I mentioned the use of Gremlin,
1657.47 -> but the other query language on a graph is openCypher.
1662.36 -> And it allows us, actually,
1663.62 -> and Neptune add the ability
1664.97 -> to use side by side also openCypher,
1668.123 -> in a way that allows us to load balance, right,
1671.03 -> and to optimize both worlds,
1673.28 -> so best-of-breed approach to the same set of data.
1676.13 -> So we have one set of data, different approaches.
1678.77 -> So if we need complex queries, we have the Gremlin approach.
1681.95 -> If we have simple queries, we have the openCypher approach.
1686.42 -> And compliance,
1687.56 -> Wiz is already deployed in GovCloud.
1689.87 -> We are working with federal customers.
1691.79 -> We're on the process to have FedRAMP.
1693.62 -> Without having all of the underlying services compliant
1696.83 -> to the same level, it wouldn't have been possible.
1699.59 -> So working with the Amazon Neptune team on that process,
1703.06 -> on that journey to make sure they're compliant
1705.68 -> so we can be compliant is, of course, huge.
1708.83 -> All of these weren't there two years ago, right?
1711.83 -> So from our perspective, when we started Wiz,
1714.98 -> we were very cautious about the way we use the graph
1719.63 -> and how we scaled that graph.
1721.43 -> But after two years
1722.72 -> in scaling to the largest cloud environments
1724.85 -> in the world using this graph,
1727.25 -> we feel like graph technologies are now ready
1729.26 -> for their prime time.
1730.22 -> They are ready for scale.
1731.24 -> They are ready for use in multiple,
1733.52 -> like Brad mentioned, multiple use cases
1735.86 -> and scenarios across security industry.
1738.2 -> And this is something that allows us to use context,
1740.72 -> which is one thing that's really missed
1742.49 -> for security, decades.
1746.36 -> And there are more things we can do using the graph.
1750.32 -> So I'll touch on a few,
1751.61 -> and then we can move to a Q&A session.
1755.09 -> We'd love to get your thoughts as well.
1757.19 -> But basically we have the flexibility.
1759.59 -> Because we are using one single graph,
1761.57 -> we have the flexibility to add more and more layers.
1764.69 -> So let's say Wiz releases tomorrow a data security layer
1768.32 -> that will basically tag all of the data that you have
1771.62 -> in the environment, right?
1773.6 -> It's a very small enhancement to the graph.
1776.6 -> And now let's add this very important label
1779.93 -> that says this bucket is sensitive,
1782.54 -> but now I can say a whole bunch of other things
1784.7 -> on this same bucket.
1785.9 -> It is exposed.
1787.13 -> It can be accessed from identities
1789.35 -> that you probably didn't want them to be able to access it.
1792.74 -> It is accessed via external resources.
1795.92 -> So now by adding one single layer,
1798.62 -> this is maybe 10% of the work.
1800.72 -> We just need to add extra layer,
1802.22 -> but we have 90% of the context already there.
1806.15 -> So we keep adding more and more layers to the graph.
1809.3 -> And the other thing is that we also implemented something
1812.96 -> that allows using the graph,
1814.73 -> allows us to democratize access to the graph.
1817.7 -> And this is an ABAC approach to the graph entities.
1821.6 -> So think about it this way.
1822.95 -> Every single graph entity is stamped with an attribute,
1830 -> which teams own this specific resource.
1833.39 -> If we are able to take all of the teams that own a resource
1836.18 -> and stamp it into the objects themselves,
1840.14 -> then we can actually extend access to the teams
1843.29 -> and tell them if you log in,
1844.91 -> you will see only the resources that you own on the graph.
1848.96 -> What this allows us to do is basically to take Wiz
1852.44 -> and the huge graph that we describe
1854.75 -> and segment it to every single team.
1858.29 -> Whether you have one team, 10 teams, thousand teams,
1862.64 -> each one will get their slice of the graph,
1864.83 -> and they can use Wiz to the full extent,
1867.14 -> but they will see only what they have access to.
1870.2 -> So that's a very important use on top of the graph for RBAC.
1875.09 -> And the last piece, and I think Brad also covered it,
1878.54 -> is how do we use multiple databases
1882.05 -> or datasets in order to optimize different tasks?
1885.47 -> So there is a very complex architecture
1889.34 -> behind the scene that basically balances
1892.34 -> between the benefits of a SQL database
1896.42 -> in order to inspect the entities and report at scale
1899.75 -> and a graph database in order to actually query
1902.78 -> on the relationships between these objects.
1905.12 -> So combining these different approaches actually allowed us
1908.69 -> to scale as well.
1912.41 -> In the end, and I'll quote Igor, Igor,
1916.46 -> CTO of Bridgewater, largest hedge fund in the world.
1920.15 -> Basically when they look at security as a whole,
1924.83 -> they see the benefit of the graph
1927.08 -> by understanding the environment.
1929.81 -> The graph allows us to really understand
1933.2 -> what is the bigger picture, what is the context,
1936.71 -> and really impact on how we do security in the industry.
1941.66 -> It's not only about cloud.
1943.01 -> It's about changing the way we do security,
1945.227 -> and the graph is an enabling component to it.
1948.23 -> So with that, I want to ask Brad back on the stage,
1952.55 -> and I want to open it up.
1954.02 -> We have about 10 minutes.
1955.13 -> I want to open it up for any questions you may have.
1958.97 -> Feel free.
1960.59 -> Kayla will step in in a moment and will have a microphone.
1967.37 -> Any questions?
1969.23 -> Ah, Kayla.
1973.07 -> - Hello.
1973.903 -> All right, we are gonna bring the microphone around
1975.56 -> if anyone does have questions
1977.57 -> after I ever so gracefully get down this thing
1979.88 -> that has no stairs.
1981.35 -> Okay, here we go.
1983.57 -> Thank you. Thank you very much.
1984.68 -> Thank you.
1985.513 -> All right, here we go, first question.
1988.01 -> - [Attendee] So the democratization of the data,
1990.53 -> is that done through tagging assets,
1993.8 -> and then the tags go into properties,
1995.45 -> or how does that work actually?
1997.34 -> - Great question.
1998.36 -> If there are tags, then we basically read the tags
2001.27 -> from the cloud environment.
2004.12 -> So that's great.
2005.5 -> Another way to do it is at the account level.
2007.81 -> So those who have already separated accounts
2010.69 -> for business teams, business units,
2014.38 -> that's a good approach as well.
2018.19 -> I would say the least optimized approach,
2020.14 -> but also possible, is actually connecting it to a CMDB.
2023.68 -> But that actually, it's like a third party,
2025.87 -> and then you need to read from the third party,
2027.55 -> embed it into the objects and then do the RBAC.
2029.83 -> But all are possible.
2031.36 -> Cloud tags are probably the best, more granular,
2033.97 -> and best way to do it or account level.
2038.17 -> - [Kayla] Anybody else? Questions?
2039.31 -> Just raise your hand. Here we go.
2040.51 -> We have one up here in the second row.
2045.16 -> - [Attendee] Thank you.
2046.15 -> The compliance detection, is it event-based or batch?
2049.21 -> - Okay, great question.
2050.38 -> So we basically combine both event,
2054.04 -> It's a great question,
2054.94 -> so let me dwell on that for a couple of minutes.
2058.3 -> In fact, there are benefits to both, right,
2060.37 -> because I would say in general,
2063.43 -> if we want to keep an up-to-date representation
2065.89 -> of the entire risk in the cloud,
2067.6 -> it's better to do like a batch approach.
2069.31 -> So we have a periodic scan
2071.35 -> that basically scans the entire cloud environment
2074.32 -> every single day, okay,
2075.76 -> so across the workloads for vulnerabilities,
2079.03 -> across the configuration.
2080.53 -> But then side by side with this,
2082.09 -> there are many configurations that we want to know about
2084.49 -> in near real time, right, as soon as they happen.
2087.16 -> And this is why we incorporated also
2089.32 -> an event-based approach.
2091.24 -> You can think about them as two streams of data,
2094.24 -> but they both update the same compliance alerts,
2097.54 -> graphs, and so on.
2098.8 -> So the graph actually is the most up-to-date based
2102.31 -> on the periodic scan and the event-based ones in parallel.
2105.97 -> And that's how we optimize both worlds, right?
2109 -> So you can take a near real-time action.
2110.83 -> Let's say someone created a publicly exposed API gateway,
2115.99 -> and you want to shut it down.
2117.19 -> So you can create that automation that would trigger
2119.23 -> within seconds, minutes,
2120.46 -> depending on how much time the event, when it was created.
2124.39 -> But on the flip side, when an API gateway is created,
2127.66 -> maybe you want to create another very complex query.
2130.42 -> For instance, show me all
2131.5 -> of the exposed resources behind it,
2133.36 -> and shut it down only if it has like a sensitive resource.
2136.93 -> Okay, so you can combine both worlds.
2140.95 -> - [Kayla] Great, any other questions?
2141.923 -> Just raise your hand. Anyone?
2143.92 -> Got one over here.
2149.02 -> - [Attendee] My question is about what's next.
2151.06 -> So you say it's mainstream,
2152.35 -> but both for Brad and yourself,
2156.52 -> how the future looks like using graphs for security.
2160.75 -> - Yeah.
2161.583 -> - Go ahead.
2162.43 -> - So I think when I'm seeing customers using the graph,
2167.11 -> it really inspires me
2168.46 -> in terms of what more can be done on the graph.
2171.82 -> Customers are using graphs in,
2173.8 -> Once we make it accessible to customers,
2177.67 -> it's unbelievable the creativity that it actually sparks
2181.12 -> in order to ask very complex questions
2183.22 -> about very complex environments
2184.93 -> in a way that creates very effective results.
2187.57 -> And I think that over time, what we will realize,
2190 -> that we need to add,
2191.05 -> same way we are doing with the identity
2194.77 -> and network and data,
2196.36 -> we will need to add more and more components
2198.34 -> to that graph, right?
2199.51 -> So we need to add more layers,
2201.28 -> and over time, this will be what I think
2204.25 -> the most accurate representation of an entire cloud estate
2208.96 -> in a way that allows you to interrogate
2211.03 -> and react, not only necessarily for security purposes,
2214.33 -> but there are many other purposes
2215.98 -> once you have a very accurate representation
2218.5 -> of your cloud environment.
2220.06 -> And you can, again,
2221.74 -> I'm saying customers are the ones that inspire me
2224.86 -> when I see the use of it, but it's really,
2228.1 -> I'm very excited about what's next
2230.32 -> in terms of adding more and more layers
2232.18 -> and using it for more purposes and business cases.
2237.22 -> - [Kayla] Okay, great.
2238.053 -> I think I have another question over here.
2243.73 -> - [Attendee] I'm just curious what level of access Wiz needs
2246.28 -> to the accounts that I wanna be have managed
2248.77 -> and whether it becomes a vector of attack.
2252.13 -> - Great question.
2252.963 -> So in terms of setting up Wiz,
2254.95 -> Wiz has read-only permissions
2257.14 -> and permissions to analyze workloads, a snapshot.
2260.56 -> It has no write execution,
2262.75 -> any form of elevated permissions, I would say.
2266.17 -> And the other thing that Wiz has,
2267.85 -> we have actually two deployment modes.
2270.76 -> One deployment mode is, we call it full SaaS,
2273.16 -> this set of permissions that we discussed.
2275.71 -> The other one that actually is used
2277.54 -> across the regulated industries, we call it the Outpost.
2281.83 -> It's not AWS Outpost.
2283.12 -> It's Wiz Outpost,
2284.05 -> but essentially deploys the entire assessment
2286.96 -> within the customer's cloud.
2288.55 -> And that guarantees a full separation
2290.95 -> of duties between the metadata scan
2293.2 -> and the actual data scan.
2295.03 -> So the permissions that are granted
2296.68 -> are like the lowest level.
2299.08 -> It's a read-only permission only to configuration.
2301.93 -> So actually, it's super easy to deploy,
2304.27 -> even on some of the most regulated environments
2307.21 -> in the world.
2309.04 -> - [Kayla] All right, anybody else?
2310.18 -> Raise your hand if you have any more questions.
2313.12 -> Going once, going twice.
2314.5 -> We have one up front here.
2318.85 -> - [Attendee] Just a quick question.
2320.08 -> Great presentation, by the way.
2321.79 -> We're currently using Wiz,
2323.23 -> and we're not integrating with the CI/CD pipeline.
2326.2 -> Can you kind of like walk through that
2327.64 -> as far as like the instillation process
2329.38 -> and that would work out.
2331.15 -> - For sure.
2331.983 -> So all of the scanners that we have implemented
2334.45 -> on the runtime environments,
2336.04 -> the vulnerability scanner, the configuration scanner,
2338.41 -> actually we have their digital twin in the pipeline itself.
2343.39 -> It's actually a very simple-to-use CLI.
2346.09 -> The CLI can be integrated into any pipeline
2349.63 -> to scan VM images, container images,
2352.57 -> and infrastructure as code, as it goes.
2355.45 -> Now, the benefits of using the CLI,
2358.51 -> and this is a very important, I think,
2363.37 -> journey into a secure CLI,
2366.64 -> the problem that I've seen customers struggling with
2369.19 -> is how do you roll out a CLI scan in a way that is effective
2373.12 -> and doesn't create friction with the engineering team?
2375.64 -> So when you use a single policy, like with Wiz,
2378.43 -> it actually gives you the predictability
2380.8 -> to every single policy you can run in the pipeline.
2383.8 -> So let's say you want to apply a blocking rule
2386.44 -> on a certain vulnerability.
2388.09 -> Guess what?
2388.96 -> The graph already has answers into what is the infestation
2392.47 -> of that specific vulnerability across the environment.
2395.08 -> So there are no surprises.
2396.46 -> If you're gonna block a deployment based on that CV,
2399.37 -> you know exactly who's gonna be impacted.
2401.29 -> You can give them a heads-up,
2402.61 -> and same thing goes to configuration.
2404.44 -> Let's say we block this internet-accessible API gateways,
2408.73 -> and you block it.
2409.78 -> You know before you roll out it through the CI/CD,
2412.18 -> you know exactly what is the impact
2414.16 -> of this in your cloud environment,
2415.87 -> who's gonna be impacted,
2416.79 -> so you can give enough time for your teams
2419.74 -> to actually fix it before they get blocked on deployment.
2422.98 -> And that's a very important way
2424.96 -> to use a single policy across runtime and pipeline.
2429.19 -> And the CLI is super easy to do,
2430.84 -> but we actually applied the notion,
2432.82 -> I like calling it learning from the right
2435.97 -> and pushing to the left, okay.
2437.68 -> So first let's see what's happening in the environment.
2440.38 -> Let's not go all in, start blocking stuff,
2443.08 -> because we will only lose points with the engineering team.
2446.14 -> So let's start from the right
2447.49 -> and then slowly push to the left
2449.14 -> when we know the teams are ready for it.
2451.15 -> And that creates a much higher maturity level
2453.1 -> from what I see with customers in rolling it out.
2455.41 -> And I think there was a misconception in the industry,
2457.72 -> on, like, CLI should be separated, then the runtime.
2462.34 -> You create a lot of friction if you approach it
2464.92 -> as two separate problems because it's not.
2466.99 -> It's the same rule, just running it in different places.
2470.77 -> Thank you.
2471.603 -> - [Kayla] I think we have time for one more question.
2473.246 -> Okay, here we go.
2476.29 -> - [Attendee] So just continuing on the CI/CD.
2479.89 -> So we use CDKs for deployment.
2481.66 -> Can it pre-scan the CDK and then say you will have an issue
2485.98 -> if you deploy this? - Yeah, yeah.
2487.24 -> You can actually run the CDK.
2488.67 -> It like compiles it, analyzes it,
2490.57 -> and gives you the results, yeah.
2492.31 -> Yeah, I think there was one last question.
2493.81 -> - [Attendee] One more, sure.
2494.643 -> We can do one more.
2499.69 -> - [Attendee] Thank you.
2500.86 -> You talked about CI/CD and the CLI
2502.807 -> and then also used an example of the ability
2505.48 -> to block like a publicly exposed API gateway.
2510.55 -> Can you elaborate on the other sort of remediations
2513.28 -> that Wiz can perform?
2515.86 -> - Yeah, so remediations in the cloud,
2519.19 -> I would say they are very diverse.
2521.92 -> It really depends on what's your approach.
2523.87 -> Some organizations feel like they can auto-remediate,
2527.47 -> and then we have a full integration
2530.088 -> into your cloud environment
2531.7 -> or through another SOR, a ticketing system.
2533.98 -> So you can create these automations
2535.96 -> that will basically orchestrate the response
2539.41 -> to a misconfiguration or a risk in the environment.
2542.05 -> But most organizations from what I see are hesitant,
2545.26 -> so they provide it as a canned action
2547.36 -> that like someone can apply from the portal,
2550.03 -> like run action, isolate the machine,
2552.01 -> shut down the gateway, and so on.
2553.81 -> And then what I'm seeing more
2555.64 -> and more is actually the approach
2557.56 -> that says let's not deal with it in production.
2560.5 -> Let's go back, redeploy.
2562.39 -> Let's fix this stuff.
2563.35 -> I think AWS is a huge proponent of that approach as well
2566.86 -> of not fixing in production
2568.39 -> and actually going to the pipeline, fixing,
2571.3 -> and then redeploying, also for vulnerabilities.
2573.91 -> So to be honest, I'm bigger fan of the latter, right,
2578.62 -> so learning what's going on
2580.51 -> and then pushing it to the pipeline and redeploying
2582.85 -> because making changes to production,
2585.1 -> in most cases, are, one, expensive, unpredictable,
2588.16 -> and hard to trace, trace, like.
2591.04 -> So it's possible, but I'm a big proponent actually
2594.01 -> of the AWS approach as well of go to the pipeline,
2597.55 -> redeploy, fix, redeploy, fix, and so on.
2601.75 -> - [Kayla] All right, I think we're gonna wrap it up.
2603.37 -> Yes, so gentlemen, thank you so much.
2605.47 -> - Thank you all.
2606.303 -> It was great.

Source: https://www.youtube.com/watch?v=c4l_fOhUenU