All right. So, here we go. We love questions, please drop us a chat in the Discord. We love to help out. My name is Zachary Conger. I'm a solutions architect for StackHawk. I have some hobbies. I really like DevSecOps and this whole workshop is about DevSecOps routines and practices. It's a really fun workshop. You can take everything that you learn from here, it should be really useful in your work life, as well as your own home, personal projects for working on your own applications. Securing them, building them automatically, that sort of thing.
So, I want to tell you a little bit about the cloud, about the company that I work for, StackHawk. It is one of the tools that we'll be using at the end of this workshop. And what we do is we've got a security scanning tool. It's called a DAST utility, that's the class of security scanning tool that it is, which means that it's a dynamic application security tester, which means that it runs against your running application. It actually probes your running application for vulnerabilities by sending in malicious requests and looking at the responses. And that class of utility DAST has been one of the hard ones to automate in CICD. And we believe that we've cracked that difficulty. A couple things about us, we're closer to the code. We are a developer-oriented tool, easy to automate in CICD. We've got great coverage for web applications, as well as APIs. And we've got a really simple configuration that just requires a YAML config. And we'll talk more about that later in the workshop.
Our agenda today is going to be to use GitHub Actions to automatically build a node application. Then we're going to add a bunch of tests to that build process that we're going to set up. So first one is going to be a tool called Dependabot. It's another GitHub tool that can be used to scan your dependencies and look for vulnerabilities in those dependencies. Then step three is going to be we're going to add code, we're going to add CodeQL, which is another GitHub utility. And that's going to scan your code base and look for vulnerable patterns in the actual code of the application and flag anything that looks like it might be dangerous. And then the final step is we're going to add StackHawk, that's our Dask scanner, and it's a dynamic scanner. We'll use that to scan an instance of the running application in the pipeline. So this build pipeline at the end of it is going to build your application, test it with for dependencies, for dependency vulnerabilities, test it for code vulnerabilities, and then finally test it for run time vulnerabilities. All right, so the first step is going to be to set up our GitHub actions.
So GitHub actions, if you haven't heard about it, it is a CI CD system that is built into GitHub, everybody has it available as long as you've got a GitHub account, it's free, so in your free GitHub account you can use this for your own codebases. It uses a simple yaml configuration language, and it's got a huge marketplace of what they call actions, and actions are like Jenkins plugins, if you've ever used Jenkins, they're basically little packages of functionality that make it really easy to put together a build pipeline that does really interesting things. You can use it to build Java applications or node applications, you can use it to run all kinds of various tests and so forth. It's event driven, so you can really put together very complicated and sophisticated pipelines using it, you can hit it via API. It's got built in secrets management, which is really important for security testing and for security in general because there are some things that you want to be pulled into your CI CD pipeline sometimes like maybe passwords or API keys, but you don't want to put that in your GitHub repository because that can be a security vulnerability in itself. For other people, it might come into contact with people who you don't want to know what those secrets are. And finally, it is free, so you can use it for, you get 2000 minutes of build time free per month, which is really quite generous. So to begin, let's just go ahead and do that. So if you should be logged into GitHub and we are going to, what we're going to do is we are going to fork this application called Vulnode Express in the Kaka repository, and we will provide a link to that. Mimi is dropping a link into the Discord and we should probably drop it into the Zoom chat as well, just to be sure. So when you get here, what we're going to do is just fork this application. So from this main page from the Vulnode Express code repository, you'll see, of course, all the files in there. This button up here that says Fork, just click on that and you're going to fork this application over to your own repository, or your own organization. So my organization is called EConger, you might have a couple or your own personal one, just make sure you're pointing at your own repository and hit Create Fork. So again, from this repo, I hit the Fork button and then I entered the name of the repository that I want to copy over. We'll hit Create Fork. And in just a couple of seconds, you should have a fork in your own organization.
Comments