Risky Business - Risky Biz Soap Box: Graph the planet!

Episode Date: December 11, 2025

In this sponsored Soap Box edition of the Risky Business podcast, Patrick Gray chats with Jared Atkinson, CTO of SpecterOps, about BloodHound OpenGraph. OpenGraph enume...rates attack paths across platforms and services, not just your primary directories. A compromised GitHub account to on-prem AD compromise attack path? It’s a thing, and OpenGraph will find it. Cross-platform attack path enumeration! So good! This episode is also available on Youtube. Show notes

Transcript
Discussion (0)
Starting point is 00:00:04 Hi everyone and welcome to another soapbox edition of the Risky Business Podcast. My name's Patrick Gray. For those who are not familiar, all of these soapbox editions of the show are wholly sponsored, and that means everyone you hear in one of these editions of the show paid to be here. And today we are chatting with the fine folks over at SpectorOps, and they, of course, make Bloodhound. So joining me now is Jared Atkinson, who is the CTO and one of the founding team members of Bloodhound, which was spun out of SpectroOps,
Starting point is 00:00:35 which is a professional services company, doing a lot of offensive security testing, things like that. Bloodhound started as a tool that they developed for their own use, and then, of course, they spun it all out so that everybody else could enjoy it as well. So for those who are not familiar, Jared, today we're going to be talking about OpenGraph, right?
Starting point is 00:00:54 Which is a big change for Bloodhound. But why don't we just start off by talking about, you know, the origins of Bloodhound, the brief history of Bloodhound, and how we got to the point where OpenGraph is now a thing. Sure, yeah. So as you mentioned, we started off as kind of a red team, right? So consulting.
Starting point is 00:01:12 And one of the things that you run into as a red teamer is when you're in a network environment, particularly like a gigantic AD domain or maybe AD Forest with tons of different domains, you might have an objective and you have an arbitrary starting point. So you fish some user and you get access to their computer. Very rarely is that the place where you want to be, right? You want to go somewhere else. And so there's there's almost this kind of traditionally there's been this guess and check kind of approach, trial and error to where you get access to the one computer. Maybe you escalate to become system or have root level permissions.
Starting point is 00:01:43 And then you would ask who's logged into the computer and what permissions do those users have have? Right. And so like what computers can they administer and that type of thing? And so then you start to laterally move. The problem is that you might have several options at your disposal and you're going to pick one or two of them and you're going to go down that path. and you're just kind of hoping that five hops down the road, you're getting closer and closer to where you want to go. In sufficiently large environments,
Starting point is 00:02:08 sometimes that doesn't work out the way that you hope. And then you have this kind of conundrum of, do I go all the way back to the beginning? Do I go back one hop and try a different option? And there's kind of this enormous selection problem to where you have all these different options and you don't know which one to take. And so Bloodhound came about almost as like Google Maps,
Starting point is 00:02:25 the Google Maps equivalent for navigating your way through a domain environment to where you would say, let's get initial access, we can gather a bunch of information about what computers, groups, users are in the domain, all of that, any user in the domain can gather. And you can start to build out relationships and understand which path you want to take before you even start moving, right? So you would understand, okay, the interstate, so to speak, to get from, you know, where I'm at to where I'm going, is this one. And so I'm going to take that path and kind of follow that direction. And it kind of simplified that problem quite a bit. Now that's kind of like the offensive use case. What we realized is that if attackers are using that, and they know kind of where they're starting and where they're going, the defenders can do like kind of the inverse, which is, I know the resources that I want to protect. How do I flip that over and say, what are all the different routes that attackers can take from anywhere in the environment to get to this thing that I consider to be really important, right? And then what you would do is you start remediating those permissions, right? So there's a lot of times you would have something like the authenticated users group.
Starting point is 00:03:27 would have admin over a domain controller, like all kinds of crazy configurations like that. Those configurations may survive in an environment for 15 years. Nobody knows about it. And then a red teamer finds it, right? What if we can just find that from the get-go automatically in one quick step, basically? It's kind of the general idea behind Bloodhound and then Bloodhound Enterprise. Now, of course, when you're talking about moving towards your target, right? So you might say, okay, well, we want domain admin, right? You land on a box and it's, you know, Sally or Rob in HR or in a call center or whatever. Okay, you pop up on that machine, you have a look around.
Starting point is 00:04:02 You know, as you point out, you're a long way from that domain admin. So when you're talking about actually moving towards them, I'm guessing that means, hey, you might need a shell on this box where there's going to be some juicy stuff, or you need to compromise that user account or one of the user accounts as part of this group, which gets you this next thing, which gets you the next thing, which gets you the next thing. I mean, that's basically what you're talking about when you're talking about moving through the graph. That's right. That's right. Yep. And what we think about is a lot of times we list out kind of like what we're doing is we're graphing relationships between resources. So imagine you have a user as a resource, a group, as you mentioned. There's going to be permission. So for instance, a user might have the ability to add another user or themselves to a group, right? They're not a member of the group, but they might have the ability to add themselves to the group. Maybe a user has admin control over a computer. The way that we are able to make inference from that is that if I have admin control to a computer, I can compromise any user that's logged on to that computer.
Starting point is 00:04:58 And so if I understand what users are logged on, I now have kind of a target list of who I can attack and why I might want to move to that computer in the first place. And so you start to build up those relationships of what permissions facilitate, we call them like primitives, escalation primitives. So what permissions facilitate my ability to take over additional identities, for instance? Now, of course, Bloodhound, I think it came around about, what, 10 years ago? It's been around for about 10 years.
Starting point is 00:05:25 O.G. Blahdown. Probably the worst person to ask this, but I think it was probably 2017, 2018, maybe. Yeah, so somewhere, I mean, you know, crazily enough, that's like, it's 2026 next year. So from there, though, I mean, obviously one of the big changes these days is like, okay, there's AD everywhere, right? We all know that AD is everywhere, and it's probably not going anywhere for quite a long time, so it's always going to be useful there. but we are seeing more and more basically every enterprise worth its salt now it's kind of what you would call a hybrid environment where you've got either entra or octa plus AD and you know connected together with duct tape and bubble gum and like you know ice cream sticks you know like the the whole thing so at some point you guys realized that you needed to make this about more than just more than just active directory right yeah so just kind of a little background I I run the research team at SpectorOps. So they're the team that is kind of building out these, these different attack paths that kind of like understanding these permissions and that kind of thing. And we started
Starting point is 00:06:31 to move into to mapping or graphing Azure environments, right? And so we had AD moved into Azure. And one of the problems was is that you would, you would do the research and then you would try to integrate it into the product. And the product wasn't built originally to be super extensible. And so it would take quite an effort to actually like add new attack pass or this new environment. And so like honestly, I'm gonna I'm gonna shade you a little bit here and say you guys were a little bit slow with the with the with the Azure slash Antra stuff like Oh for sure for sure. Yeah and like we we had done a research project on but that's because it's hard. Yeah, it's hard and I don't know that like when we built the original bloodhound We we we had the idea of active directory in mind. I don't think that we thought that it would go beyond that Initially and so you know we didn't plan for it which yeah was a tool it was a tool to use on pen test it wasn't like a an
Starting point is 00:07:22 enterprise like Google Maps for, you know, user accounts and entities kind of platform. And like, and it was also before this whole idea of identity really took off. Like I, it's interesting because red teamers really have always kind of like targeted identities, so to speak. The idea is is always how can I take control of user accounts or computers, which are also identities, to then gain access to more and more resources, right? So you're like, you want to accumulate access throughout the course of your, your, your operations. right so that you could then have access to whatever your target is but at the time like there was no idea of identity security in the in the context of the overarching kind of infosec arena oh 100% because the way you would have done it often was you would get access into okay you know so that first place of access you were talking about with fishing or whatever you might try to get you know remote code execution get the user to run something like use your access to their computer to get that computer to run a piece of code or next startup or whatever and then for
Starting point is 00:08:22 there you weren't really necessarily you wouldn't necessarily have to even touch identities right because it was all about it was all about you know where where else you could execute code and um sometimes you would use identities but not always right whereas now like these these identity based attacks they are they are pretty exotic these days yeah there's there's maybe uh maybe like an argument so imagine that you have some vulnerability on a system that gets you a system shell imagine that a system Shell is operating as the computer identity. So like there's maybe an argument that you are always operating in the context of one identity or the other, or maybe you were just accumulating control over multiple identities. Nobody thought about it that way. That's just the fact, right?
Starting point is 00:09:05 And so that wasn't the conception of how everybody approached this problem. Well, because I'm even sitting there like, as you're saying that, going, yeah, kind of, you know what I mean? Like, it's just not the way people thought of it, right? For sure, for sure. Yeah. So, So then we looked into GitHub. So we had, let's say we had Active Director, we had Azure, and we took personal interest in GitHub. We had some red teams that we had conducted where that was a target. These CICD workflows were really interesting to people.
Starting point is 00:09:33 Code repositories are where a lot of sensitive information is maintained, especially for these kind of like software companies. And so we decided that we were going to start mapping out the relationships of GitHub. And we tried to implement that, Will Schroeder and myself. And it took us like three months just to try to get. everything integrated and we're like, this is not a sustainable plan. And so we had long had this idea that we should try to change this to be more extensible. And that's kind of where this open graph idea came from, which is, what if we create a schema that's kind of like an open schema that
Starting point is 00:10:03 everybody understands and then you just output data, you build a collector to query whatever platform you want, you output your data in this specified format and you're able to build arbitrary edges, arbitrary nodes in the graph. And now you could represent permissions. Or even we've had people that have built open graph extensions that go outside of kind of like this identity security use case, right? They're just leveraging the overarching system to represent relationships between things. And I could get into that if we're interested. But it's kind of a fun experiment of work ago. Let's just take a step back, right?
Starting point is 00:10:38 Because you're talking about GitHub. And I guess one of the reasons you want to, you know, extend out to there is because, you know, once upon a time, you wouldn't have had unified authentication. or a unified directory covering developers logging into a platform like GitHub. Like it would have been a standalone thing that the dev team would manage themselves. And these days it's like there is an entry group or there is a, you know, there's a directory group for those users. Which means that, yeah, I mean, it's great having that centralized kind of control over permissions and authentication and whatnot, right?
Starting point is 00:11:11 So like SSO is really cool like that. But it also puts them, they become nodes on a graph at that point. They become targets on a graph, which in many ways, I mean, you're still ahead, right, by using unified SSO for something like GitHub. But that's really why this came about, right? Is the success of, you know, SSO extending the directory out into places where it traditionally hadn't been. That's right.
Starting point is 00:11:40 And like, we just ran into this at Spectreop. So there's a lifecycle management problem, right? Which is when somebody leaves the company, for instance, you have to offer. board them from access to all these different systems. And how do you do that if you don't have a centralized place to keep track of it? Right. And so SSO is not just useful in like maintaining somebody's, you know, you have one password and you can access everything. It's how do we make sure that when, when we have turnover for whatever reason, we're able to revoke access to these systems that somebody doesn't need or maybe somebody changes within the company to a different position.
Starting point is 00:12:12 They don't need access to these, to these different resources. Maybe we can, we can manage that in one place. And so, yeah, as we kind of look into it, what we started to realize, especially like in something like GitHub, is you have the identity management is actually fairly spread out across different teams. So imagine you have a GitHub administrative team, right? And that GitHub administrative team is different than your active directory administrative team. And what happens is when you stand up your GitHub organization, typically organizations will set up SSO of some kind. Maybe they even use SCIM, which is the system for cross identity management, is how do you automatically provision? Let's say you have a user in Intra and you want to automatically
Starting point is 00:12:52 give them access into GitHub, you would use a SCIM provider to be able to generate that user account on the GitHub side, right? And so now I'm able to say, okay, I'm going to have a whole set of groups, as you mentioned, in Intra. And as I add users to those groups, it's going to a, create a user in my GitHub organization, but B, it's going to assign them to certain groups within GitHub as well. There's this like kind of relationship across that. And that, that becomes this it expands exponentially what the attack surface is here right now now you have to worry about anybody that can get control over your Azure environment now has control over your GitHub environment but where this really gets crazy is you know when Bloodhound first came out we had this
Starting point is 00:13:33 problem of like nested group memberships right and so there's this whole idea of like you have to unroll the groups to understand who has access to what or who has what permissions and there was this there was this big problem that we tried to unroll there's almost like this one level up There's the same problem, which is I have a GitHub organization. I've set up SSO from Intra into GitHub, but then I've also federated my Intra into Active Directory. So now there's an Active Directory account that's tied to an Intra account, which is tied to a GitHub account. And the GitHub administrator may not even know about that federation between Active Directory and Intra. And so now there's this attack service that they're not even managing.
Starting point is 00:14:09 And there's almost a point where... I mean, what you're saying is that that GitHub account, which might only be used for logging into GitHub is now also an active directory account on the local network. So if someone gets that GitHub account, they can fish it or whatever, happy days onwards and upwards through that customer's AD. That's right. Yeah. And the inverse direction as well, right? So that that becomes a massive problem. And what we find is that those gaps between systems are almost nobody's responsible for it. And so it's this problem that exists to where nobody is really paying attention. Like you might you might be worried you might have somebody who's responsible for active directory and they're trying to reduce the attack pass to tier zero in active directory and then you have somebody that's in charge of intra and they're worried about attack pass to tier zero and intra but what they're not paying attention to are what are the attack pass from active directory into intra to where for instance you might have a non-privileged user in active directory that is tied to a privilege user that is tied to github and now they can access your github repositories as a result of that.
Starting point is 00:15:13 So it's just this big mess. Well, it is. And it's funny just as you were talking about that. And, you know, there's that whole the identities of the new perimeter thing, which I actually, you know, I think about like maybe 12 months ago, I actually turned around and said, you know what? That's actually probably right. At this point, that that probably feels right. But you just think how we used to say unmanaged machines were the thing that would get you owned, right? And that's been, you know, a mantra for like 25 years, right?
Starting point is 00:15:41 like an un-patched, unmanaged machine is what will get you. You know, and from what you're saying, you know, it seems like now an unmanaged identity is what's going to get you, right? It seems like a very similar sort of, like an improperly managed identity that no one's really responsible for. It's just kind of fallen through the cracks. It can be used in all sorts of ways that it was never intended to be used. And, you know, that's what's going to burn you.
Starting point is 00:16:08 You know, we talk about this idea of least privilege. I was doing some research. probably six months ago now, but trying to figure out when was least privilege first uttered by somebody in any meaningful context. And I found the first white paper in the academic literature that talked about least privilege. It was from 19, what was it, 1975, so 50 years ago was the first time somebody talked about least privilege. But what ends up happening is least privilege is a negative testing philosophy where you have to validate that you have the privilege to do the thing that you need to do. But then you have to also,
Starting point is 00:16:41 validate that you don't have any additional privilege beyond that. And so that's a, you have to negatively test that, right? But what we find is that most people are doing enough privilege, which is, and I think people don't appreciate this enough. I think intellectually, we all understand this once you start talking about it, but you start off with a certain set of privilege, just naturally, right? That, like, every user is going to have some amount of privilege to begin with. And then you are adding additional privileges so that they can accomplish whatever their job role requires them to accomplish. But then you never go back and say, okay, we finally got them to the point to where they can do what they need to do. Now let's go back and take away everything
Starting point is 00:17:18 that they don't actually need. Right. And that's... Yeah, so, so you know, Travis McPeek used to work at Netflix a long time ago. He wrote a thing, he opened sourced it. It was called repo kid. And the whole point of repo kid was it was monitor all of like the AWS stuff that they were using at Netflix. I think it was AWS. And if there were permissions that those accounts weren't using it would just remove them. Oh, okay. So that was like... It's kind of monitoring. Yeah, yeah. Just over time it would chop it back, right?
Starting point is 00:17:42 So it was called Repo Kid as in like it repossesses the, you know, permissions, but it was very cool. So look, let me just ask you another question on that, on that GitHub thing, right? So we've talked about how you've gone from AD to now, you know, Entra. You keep calling it Azure, which is really funny because you're thinking Azure AD, which is why I still call X Twitter. Same thing. So then you've gone off to Azure AD slash Entra. Yep. And then you're like, well, hang on, we got some cool stuff with GitHub here.
Starting point is 00:18:08 And then pretty quickly you could start seeing, oh, well, you know, there's other things I would like to bring into this graph. Like one thing that I'm thinking here, and it's a, it's, I don't know if anyone's done this, because I imagine it would be really difficult. But, okay, say you are looking at a GitHub user, have a look at the repos they've got access to. Yep. Throw trufflehog at that. Yep. And see if you can find out what secrets they have access to and where those secrets get that person. Now, that might be a little bit difficult because sometimes you're going to be finding secrets and you don't know where they belong.
Starting point is 00:18:42 However, however, you know, is this the sort of thing that you can do now with Open Graph, which is the part of Bloodhound that lets people sort of build their own integrations into. Yeah, so, okay, so we built the GitHub Open Graph extension. So we call each of these new platforms, we call them extensions. So we built that. And then we had one of our research or one of our consultants, J.D. Crandell, and he started looking into what he calls SecretHound. And so this is more of like a generic approach, but he used GitHub as the first example
Starting point is 00:19:14 to where he used GitHub has a secret scanning interface. So they're looking for kind of secrets that are in plain text in the contents of your repositories. He also used Trufflehog, and there's a few other examples, Nemesis, which is one of the platforms that we built from SpectreOps to be able to process and look for files
Starting point is 00:19:33 that have passwords in them. And so what he's doing is he's integrating that, and then he's drawing nodes and edges as a result, right? And so one of the problems that comes about with that that makes it a little bit difficult is you often, it's one thing to figure out that there's a secret. It's another thing to figure out what user or what organization or what tenant that secret is associated with. That's literally what I just said then, which is like I imagine it would be difficult to actually, okay, well, it's a secret, great, where does it go? What does it unlock? And that's going to make it a
Starting point is 00:20:00 little bit difficult to put on a graph. But some of them, I'm guessing you could. Yeah, his solution so far, and I think it's, it kind of depends on how you find the secret and what secret it is. But like, for instance, if you find a GitHub PAT, for instance, personal access token, you usually can hit the GitHub API and there's like a Who Am I type aspect, so then it will just return the context that that PAT belongs to. So you can do stuff like that. He's also found that what he does is he just draws an arbitrary node. So imagine that each of these graphs, there's the gigantic graph, which is the whole world, right? And then there's what we call subgraphs,
Starting point is 00:20:35 or like there's a GitHub subgraph. It's almost like a continent or like an AD subgraph, which is another continent. And so what he's doing is he's just dropping a node when he scans GitHub with Trufflehog, for instance. He'll drop a node in the AD subgraph that's, or well, AD doesn't make that much sense, but in the intra
Starting point is 00:20:51 subgraph that says, hey, in this GitHub organization, I found a secret, that secret is related to this intratenant. So, like, I don't know what it does. I don't know what permissions it has. It's not necessarily You can just call it its own, you can make it its own entity, I guess, which is, you know, path from, and you know, when you're calculating a path, it could be path from where I am now too secret. Yep. And this is, right?
Starting point is 00:21:11 This is more, I would say, on the enterprise side, there's, that lacks the specificity or like kind of the control that we really want to be able to point people in the right direction. But on the red teamer side, that's useful, right? Because it's kind of like a, that's a threat I'm going to go pull at some point. If I feel that I need to get over into intra, I can, I at least have something that I could start looking into. And then I could discern what's going on kind of manually. Something funny occurred to me too there, which is once you start auto-validating secrets that you find through this stuff, I imagine you've got to set off a few canary alarm bells, right?
Starting point is 00:21:42 Because some of these secrets are going to be canary tokens. Yeah, yeah, yeah. It's a good idea from the kind of the Opsack perspective of being really careful there. Yeah, yeah. So onwards, right? So what we've talked about is we've talked AD to Enter, oh my God, to GitHub, Oh, now to secrets. So by the time you've done this,
Starting point is 00:22:02 like just what we've talked about, you're not going to have gotten that far without developing a method, right, for actually building these extensions, as you called them, right? So then the question becomes, well, can you now make a toolkit, and this is OpenGraph, right? Can you now make a toolkit that makes it easy for other people to write their own extensions?
Starting point is 00:22:25 And that's essentially what OpenGraph is, and now you've thrown that out there to the, the world and said have at it. Have at it. Now, I think that was only a few months ago. We had one of your people on talking about OpenGraph and saying, like, go on everybody, go have a play. People have been actually working with it, right?
Starting point is 00:22:44 So I spoke with H.D. Moore. I think he's got like, what is it? Run Zero Hound or, yeah, run Zero Hound and whatnot. But I'm guessing, you know, he ain't the only one. What's interesting when you release a tool like this is the creative. on display when people actually start using it is usually something to behold. What have people been building for the, what extensions have been, have people been building for themselves? The very first extension was within 24 hours of us releasing it. So the first extension was GitHub because that was
Starting point is 00:23:17 the one that we built as like kind of a test case. But the first kind of community extension was built 24 hours. We kind of like issued a little challenge for somebody to build it within 24 hours. We gave them some swag or something as a prize for doing that. And some guys from Canada built Ancible Tower Hound, I think it's called. And so it allows you to kind of see your Ancible deployments and how things granting permissions and management over those different Ansible deployments. So that was pretty cool. Some other ones that we built internally are like SCCM Hound. We've also have MSSQL Hound. We have one password hound. So that's, you could see that we have really great naming creativity.
Starting point is 00:23:57 Very creative, yeah. Yeah, yeah. But one password hound was pretty fun because we built it in two hours. So that's like, obviously one password is going to be much simpler than say, AWS, right? So there's different levels of complexity for the different permission structures and all that kind of stuff.
Starting point is 00:24:13 But one password hound was pretty simple and we were able to just like... Where are you getting the data from one password, right? Because isn't that just like, isn't one password like on everybody's desktop or is it centrally managed? I don't use it. Yeah, yeah. So there's different versions of OnePassword. OnePassword for business is a cloud-hosted capability. And so everybody has a secret key that they have on their laptop, which gives them access.
Starting point is 00:24:37 But then there's kind of like a central management plane that you can hit. And so you grant permissions. We built a collector based on OnePassword has OPECLA, which is their CLI program that allows you to query vaults and users and groups and all that kind of stuff. And so we were able to evaluate that, build out all the relationships to where we could say, this user is a member of this group, which has access to this vault, which has these, you know, items. Items are kind of like the colloquial term for passwords, logins, SSH keys, all that kind of stuff. And just imagine, we talked about that secret hound.
Starting point is 00:25:12 Just imagine what that looks like. That thing will explode, right? Well, and what's really interesting there is you're going to be seeing stuff that is not SSO at that point, like at all. you might see I mean first of all you're going to get some well I guess one passwords the thing doing that part I mean you're going to get some interesting inventory using something like one password in terms of like where accounts are being created push security you know they offer a browser extension as well it's give you that sort of information but what is really interesting is you can say
Starting point is 00:25:42 well say somebody gets this GitHub account what's the path from that GitHub account over to this person's you know consumer grade account with this service where they're obviously putting company data. That's crazy. Yeah, yeah. Oh, yeah, there's all kinds of craziness. I mean, you talked about the identity as the new perimeter, and I think there's some truth to that.
Starting point is 00:26:05 I worry that that causes people to take their eye off the ball as far as, like, on-prem attacks. Yeah. Right, and don't get me wrong. Like, a lot of attackers have an incentive to target these cloud-based platforms because we don't have as good of security controls there. And so if I can get what I want
Starting point is 00:26:22 without ever going on-prem, that's probably advantageous to me as an attacker. However, the idea is that identities are in use in your on-prem environment all the time. So imagine you log into GitHub. There's now a browser cookie or a session token there that I can steal as an attacker once I have control of your computer. So it's not just about control of computer indicates the ability to take control of a user that's logged into that computer from an AD perspective, but also imagine that every system, like if you were to dump your cookies on your laptop, the amount of systems that you have cookies for right now is probably would shock you, right?
Starting point is 00:26:57 So like you're logged into all kinds of things. And they could be personal or they could be business related. There's all kinds of different relationships there. So I think there's like identity is the new perimeter and that's going to cause us to really try to lock down things like just like raw internet access to your snowflake tenant. Right? You probably shouldn't have that. But once you once you get that locked down sufficiently, now that's going to drive attackers back on prim, which is probably a good thing to some degree because you have you have those security controls there
Starting point is 00:27:27 but they're they're going to then kind of try to route back through that to get access to these resources as well yeah yeah and i mean it's identity is the new perimeter unless you're like a fortinet customer yeah right and then it's like no fortinet is your perimeter and it's a bad one i can't believe it man i was out at dinner like i go to a pub once a week with a group of friends have a steak right usually on wednesdays after the show and i'm sitting there and there's golf on a screen like over by the way, right, while we're having dinner. And it just kept distracting me because apparently this tournament is sponsored by Fortinet. So I'm sitting there trying to enjoy my steak after a show, after putting down an episode of risky biz and there is Fortnite,
Starting point is 00:28:08 Fortnite, Fortnite signage. So yeah, thank God to them. Did you know why you were being distracted immediately or was it like in retrospect you realized it was Fortnite that was causing you the angst? Oh no, I knew. It's like I cannot see that logo without, becoming annoyed, basically. But I mean, I guess even in those cases now, like when a non-identity attack becomes one, when you could just trivially pop shell on a domain joined appliance and then, you know, then you've got the identities. That's right. That's right. Yeah. I mean, once you get through, now you have, now you have this whole problem. I mean, there are, there are so many different routes of this like whole open graph thing can take. Like,
Starting point is 00:28:47 I was at the Sissau Summit at Black Hat and they had the, uh, they had the, uh, SISO of one of the telcos in Canada that was talking about that, I forget which threat group did it, but salt typhoon. Yeah, salt typhoon breach of all the, uh, tachshunders and all that kind of stuff. And it's like, imagine that you could have a tack X plus hound that would represent the, the, uh, permission structure within the like, like, critical infrastructure and routers of these, these, uh, telcos. Like that, that's a real thing. And like, nobody, nobody understands what that looks like. I'm sure it's just this gigantic mess of, of, And I'm not even sure, like, one of the hard things would be, does one organization sufficiently control those resources to be able to actually put together a coherent, cohesive map? Right? Because would we have to get everybody on board to actually understand? I don't even know how the router infrastructure is laid out enough to know what the, what the questions that should be asked are for that. Well, I mean, I think anyone who attempts to understand those relationships is sort of going to
Starting point is 00:29:48 wind up with the mental state of Jack Nicholson at the end of, what was that moving? be the pledge where he winds up sort of a crazy alcoholic wandering around the streets near a gas station at the end of the at the end of the film for sure um bit of a deep cut that one sorry uh sorry everybody um so look okay so we've talked now about uh all sorts of integrations uh but these are the ones that you've sort of worked on as well right like what have customers done that that's sort of been like well you that that that surprised you right because everything that we've spoken about it's like yeah that makes sense but there must have been some stuff where it's like you're using it to do what? Yeah. Okay. So let me, let me hit a few that are like really, really cool. So one was
Starting point is 00:30:27 run zero hound where we we thought that like another vendor trying to visualize their stuff in Bloodhound was super interesting to us. Like obviously that's advantageous from our perspective. Another one was ping one or ping identity reached out to us to build a graph for them. And so that was like they took an interest in trying to help their customers realize where they had made configuration issues. And so that I mean every single, every single identity provides. right, I should be doing this. Yes, yes. I mean, we love it because they gave us access to a tenant that we could do the research
Starting point is 00:30:57 in, and then they would respond to us when we had questions about, hey, this is what we're seeing. Is this what you actually intended to happen? Some cases it was intentional. Some cases it wasn't. And so that was really, really useful. And, like, getting access to these platforms is actually quite difficult for SpectorOps because we, A, are known as a red team.
Starting point is 00:31:17 And so a lot of organizations don't want to sell their tool to a red team. And then the alternative is that we're also a small business. And so sometimes it's hard to get salespeople to care enough to sell you a license for like, you know, 10 users or 200 users even. And then we have like some really interesting ones. We had a customer that did CyberArk hound. And so imagine that like imagine that CyberArk has all these passwords in them for, especially for privileged users.
Starting point is 00:31:47 And these privileged users are accessible from Active Directory users. So imagine that you now can start to map out, I have control of this active directory user, what privileged accounts do I have access to in CyberArk? So that's pretty interesting. And then a community one that is really cool is V-Centerhound, so understanding like your virtualization infrastructure. One of the things that we find is that the same like physical computer, or it might not be physical, but the same literal computer might actually be a node across several different subgraphs. And so imagine that you can have a computer that is an active directory computer.
Starting point is 00:32:25 It's an intra device. It's an intune device. It's an SCCM client. It's a V-Center VM. And so now what you're doing is you're tying these together because if I get control of that AD computer, I also have control of all these other systems as well. Or, you know, if I get control of V-Center, I have the ability to have physical access, so to speak, to an active directory computer. And a lot of organizations will run their domain controllers in VMware. I mean, I'm sort of mildly horrified by, you know, a lot of the stuff that you're saying,
Starting point is 00:32:55 because you're talking about SCCM and V Center and I'm just like, oh, unclean, unclean. But, you know, people are still running this stuff. You've got to meet them where they are, right? All over the place. Yep, yep. It's all over the place and it's been, uh, really we think of the graph as being, uh, representation of entropy. So imagine that a, a clean environment that has, uh, very few attack pass is not the natural
Starting point is 00:33:16 state of being, right? So it takes a lot of work to get there. And then over time, what happens is you're making configuration changes. And those configuration changes, a lot of times there's this phenomenon to where when you think about a single configuration change, it's very easy for us to conceptualize what the impact of that single configuration change will be. So it's like, I add this user to the group, to this group. I now know what's going on there.
Starting point is 00:33:40 But then you think about the fact that over time, you're having millions and millions of these configuration changes. And it's very difficult for you to understand what the net effect of that is going to be and what it is is entropy. So you end up causing all kinds of problems, and that's where these attack paths come from. It's like, imagine that you've been doing that for 30 years
Starting point is 00:33:57 and nobody's ever tried to get a, like, get a grasp of what's going on. And so then you clean it up, but then once it's cleaned up, it's not just a one and done thing. It's, you have to maintain it over time. Yeah, yeah, it's like gardening. You know, like it's going to get woolly.
Starting point is 00:34:10 It's going to get overgrown, you know, depending on what season it is as well. It's sunny. It's been raining. It's a lot of grass. So look, we're heading towards the end of this. now, right? But one of the things that we were going to talk about is red team wins that you've had, particularly with, since you've extended the graph, since you've opened it up, opened it up.
Starting point is 00:34:29 And I mean, you've alluded to some of them there with like, you know, the one password stuff and whatever. But I'm guessing you've got, because, you know, Spectrop still does off-sec. And well, might I add, if you are looking for top-tier pen testers, I've sent a few your way. You know, and these, the top-tier shops are like sort of thinning out a little bit these days. they keep getting acquired. You know? Yep. That's the danger of the life, I guess.
Starting point is 00:34:53 That's the danger of the game. So, you know, if you are looking for a top-tier pen test crew, SpectorOps are very, very good. So what are some of the wins that your teams have been able to chalk up with OpenGraph? Yeah, so imagine that as we build out the graph, the graph is like kind of our map, right? So we're trying to map out what's going on in your environment. And a lot of times the red teams are able to live within the confines of the map, right? So like active directory, there's a lot of time spent in active directory, and it's pretty well
Starting point is 00:35:21 mapped out, right? Like, it's pretty well understood. But occasionally, the Red Team has some target that takes them into uncharted territory, so to speak. They're bushwhacking their way through. On the research team, we're trying to be as comprehensive as possible when we're building out these extensions, because that's going to go into the actual product that we sell. But the cool thing about OpenGraph from a Red Team use case is that it's utilitarian, right?
Starting point is 00:35:43 And so you can map only as much as you need to accomplish your goal, right? You don't have to be comprehensive. You don't have to understand every nook and cranny of the territory to really map this out. And so probably the coolest one is we were engaged by a company to understand their CICD pipeline. And we found that there was a relationship between GitHub and the way that they had configured OIDC into AWS. And we found that we were able to use the GitHub graph. to represent what users in their GitHub organization, and it actually extended into Octa,
Starting point is 00:36:19 had access to GitHub repositories. But then the thing that the Red Teamers found was that if you have the ability, based on AWS policies, you were able to, that access to those GitHub repositories would allow you to assume roles in the context of AWS.
Starting point is 00:36:34 And so we're able to draw those relationships and say, these 20 users have the ability to take over, to gain, these roles in AWS across like four or five different AWS accounts. And it was, like, it was extensive, the amount of access that you can get as a result of that. So it's all about kind of that utilitarian. It's like, I have this target. Let me, I try to figure it out manually of how I would get there. And then it's like, let me go back because I only found one example, right? But there's almost
Starting point is 00:37:05 always more than one example. And so it's like, let me go back and actually build that out and see what it looks like when I do a comprehensive look at what's going on. And so this is, and then that kind of allows us to extend, extend those extensions, I guess, as based on real life experience. Like, when I built out the GitHub extension, I had no idea that you could even do this configuration with AWS. And I would have never figured it out because I was looking at GitHub kind of in a silo. Well, that's the thing. And that's what I was just about to butt in there and say, which is that, you know, you can't just surface these types of configuration issues without a graph because there's nowhere to see them.
Starting point is 00:37:44 That's right. You know, which is interesting. But it's, you know, I mean, you do sort of rub your temples a little bit when you realize that these sort of problems can exist. That's right. Yeah, it's one of those things to where we now, I think we have like more than 20 extensions and as you start to see these things kind of like come together, we're really interested in the hybrid aspects.
Starting point is 00:38:05 So it's like how are these things tied together? And it's a little terrifying. It makes me definitely, you talked about SSO. It makes me second guess whether SSO is a good thing for security because once you start seeing how everything is tied in, you're like, oh boy, that's not, that's a little scary. Well, don't forget the problems that we've solved, right, with orphaned accounts. And like, it was, it's just a new type of horrible, right?
Starting point is 00:38:28 That's right. But I mean, my question too is like, you know, there must be cases where you've seen an attacker land on a box. And they've had these amazing paths and they just haven't been able to figure them out because maybe they're not using Bloodhound. But like this happens all the time. It's a story I tell like basically every single time I talk to you guys, which is I know someone who was Ophay with a incident response on a major organization where they discovered that every single entry user had intune admin rights. Oh boy. Across the whole log.
Starting point is 00:39:02 And that wasn't actually what got them owned. It was something. Yeah. And there, you know, there's certain primitives, I guess, that are more familiar to people, right? And so people are going to tend to use those well-trodden paths. So, like, I made a comment about the interstate, right? Imagine that there's dirt roads as well. And so, like, the interstate is the thing that most attackers are probably going to use because
Starting point is 00:39:26 they built it in their toolkit. It's wide open, right? And then there's going to be certain targets that attackers or red teamers are going after that caused them to change their tradecraft, or maybe as you start to eliminate those interstates, they're going to have to find new tradecraft as a result of that. But yeah, there's almost always, like, we're never going to be comprehensive.
Starting point is 00:39:49 That's just the nature of the beast, right? We're trying to show as many of these attack paths as we possibly can, and hopefully people will remediate those. We give them instructions on what they can do to remediate them. We show them where the biggest bang for your buck is as far as like that effort that you can spend. But yeah, over time, like when an attacker has access to a computer, there's probably, there are almost 100% ways for them to gain access to systems
Starting point is 00:40:15 that they don't know about, we don't know about, that are just sitting there staring them in the face, and they're yet to be discovered. Yeah. But they can use bloodhound. And speaking of, that's the last thing I just wanted to ask, right? So you've got, you know, your open source version of Bloodhound, which a lot of red team is and whatnot use.
Starting point is 00:40:31 Then you've got the sort of more. enterprise-y platform type of Bloodhound, which is the more commercial product. OpenGraph, I'm guessing, it's in both. Is that right? Yeah, so currently, kind of like the minimum viable product of OpenGraph is really targeted at the open source version, although it works in both. The distinction there is that it gives you the ability to put data into the graph and then run cipher queries across that data. So you can start to ask questions like, I have control of this user account and GitHub, what repositories do I have right access to? So you could ask that question.
Starting point is 00:41:07 One of the problems is that Cipher tends to be more of like an expert kind of tool, right? So a lot of people don't have expertise with Cipher. And so asking those questions becomes a little bit difficult if you're not familiar with it. There is an effort currently to expand Open Graph to support things like findings, which are an enterprise-only feature, the ability to expand it to do pathfinding, which is like the point A to point B, show me the shortest path type approach. So right now it's limited to that cipher query capability, which is mainly a feature of the open source product, but it also is present in the enterprise product, although it's not the focus of the enterprise product. But over time, and probably about the next six months or so, we expect
Starting point is 00:41:49 to have like a full complement to where you could do the enterprise level remediation of GitHub, for instance via OpenGraph without using well using the enterprise product yeah excellent all right Jared Atkinson fantastic conversation about OpenGraph I have a feeling that um yeah a lot of people are going to wind up using this I should also point out too that um you know it's something I've said before when we've had spectroops people on the show this stuff is actually reasonably priced right considering the bang for buck you get going through some bloodhounding if you are a organization of any sort of scale you're kind of nuts if you're not doing this because it will it will help tighten things up in a way that could save your bacon so Jared Atkinson thank you
Starting point is 00:42:35 very much for joining me to talk through all of that it was very very interesting cheers thank you pat great talking with you as well thank you everybody

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.