WEBVTT

00:13.000 --> 00:15.160
Welcome to Day 2 of AppSec Village.

00:15.160 --> 00:17.300
I am your queen, Leora Herman.

00:17.860 --> 00:20.540
You might notice that I am sans tiara this year.

00:20.720 --> 00:23.260
That bling is saved for in-person occasions.

00:23.740 --> 00:29.020
I hope you enjoyed yesterday and are geared up for another great day of fun in AppSec.

00:29.080 --> 00:33.280
Speaking of gear, I am inserting a shameless plug for AppSec gear.

00:33.280 --> 00:40.660
If you go to appsecvillage.com and click on shop, you can get your own village merch, which helps support our volunteer-run village.

00:40.660 --> 00:43.160
Okay, plug for merch over.

00:43.720 --> 00:51.160
No village is without its challenges, and I'm still not quite sure how lockpicking village is managing in safe mode.

00:51.760 --> 00:58.160
So, no village is without its challenges, and year 2 of AppSec Village brought with it its own set.

00:58.520 --> 01:03.460
With DEF CON going virtual, all of our combined superpowers were needed to pull this off.

01:03.460 --> 01:10.020
We really appreciate your patience and the cooperation of our speakers and volunteers as we worked things out.

01:10.020 --> 01:14.220
It has not been smooth sailing, but we made it.

01:14.300 --> 01:19.300
If you were with us last year, you heard how much we value the diversity of our community.

01:19.920 --> 01:30.180
I'm not just talking about race, religion, or political views, but diversity in sexuality and gender identity, level of formal education, and security experience.

01:30.700 --> 01:36.040
Talking about diversity is just words, and what are words without actions?

01:36.220 --> 01:39.280
We must actively embody our ideals every day.

01:39.280 --> 01:46.660
And as you can see from this year's leadership, our keynotes, and the speaker lineup, we have put our words into actions.

01:46.760 --> 01:52.980
And our first talk for today is certainly action-packed, kicking off day 2 as Frederick Flea Lee.

01:53.080 --> 02:03.180
Flea is the CISO at Gusto, the people platform that enables 100,000 plus small businesses nationwide to pay, insure, and provide benefits for their teams.

02:03.640 --> 02:11.120
Flea previously headed up information security at Square and held senior security roles at Bank of America, Twilio, and NetSuite.

02:11.320 --> 02:16.140
His keynote is Be Like Water, what Bruce Lee can teach us about AppSec.

02:16.140 --> 02:19.570
Please join me in welcoming Flea to the virtual stage.

02:20.500 --> 02:26.600
As of the recording of this talk, the killers of Breonna Taylor have not been charged.

02:33.920 --> 02:43.040
Hey everybody, welcome to my keynote, and welcome to DEF CON Day 2 AppSec Village.

02:43.040 --> 02:45.140
I'm super excited to be here.

02:45.140 --> 02:50.560
I noticed definitely, definitely, definitely unusual circumstances.

02:51.300 --> 02:59.800
Bruce Lee and how I believe he relates to application security and some of the things that we can actually learn from him.

02:59.900 --> 03:04.140
Obviously, there's a couple of things, you know, kind of get out of the way, which is introductions.

03:04.140 --> 03:06.720
As I said, my name is Frederick Lee.

03:06.720 --> 03:09.540
Most people call me Flea.

03:09.560 --> 03:12.840
And I want to talk to you, you know, about what I do.

03:12.840 --> 03:15.800
I'm currently the CISO of a company called Gusto.

03:15.800 --> 03:27.260
We're actually focused on building a people platform that enables small and medium sized businesses to kind of give their employees all those things that, you know, one would want to have a delightful work experience.

03:27.260 --> 03:29.380
Gusto is not the only place I've worked at, right?

03:29.380 --> 03:34.020
I mean, I've also, you know, led security at Square, a fintech company.

03:34.480 --> 03:36.820
You know, I led security at NetSuite.

03:36.820 --> 03:38.620
You had a SaaS company.

03:38.620 --> 03:40.040
I was at Twilio.

03:40.380 --> 03:42.260
I was also at Betfair.

03:42.260 --> 03:46.900
So for those of you, you know, fricket gamblers, et cetera, you might remember that name.

03:47.340 --> 03:51.880
Fortify, many, many moons ago, and even Bank of America.

03:52.100 --> 03:56.820
Those are all just like random companies, all random and all really, really different.

03:56.820 --> 03:59.680
And I've had numerous different roles over the years.

03:59.680 --> 04:02.580
Like I started my career as a software developer.

04:02.580 --> 04:04.520
I'm just writing code like a lot of you.

04:04.520 --> 04:13.820
But I've also spent time being a sysadmin, including, you know, like crawling through spaces and running cables, et cetera.

04:14.200 --> 04:16.440
You know, it's a really, really fulfilling job.

04:16.440 --> 04:18.720
I took that and then I decided, hey, you know what?

04:18.720 --> 04:25.980
I want to actually spend more time going back to my roots as a security researcher, practicing security in various different places.

04:25.980 --> 04:30.800
And I've been fortunate enough to actually be on several different world class security teams.

04:30.800 --> 04:42.640
And I've also been fortunate enough to become a security leader, both as just a direct line manager, director, and ultimately, you know, a couple of stints as being a CISO.

04:42.680 --> 04:50.860
With all those things said, you know, similar to my previous experience at other companies, all those roles are also different.

04:51.280 --> 04:54.240
But really, none of that should matter.

04:54.240 --> 04:55.020
Right?

04:55.020 --> 04:58.920
We always do these things in slides, in particular in keynotes, et cetera.

04:58.920 --> 05:20.480
Like, oh, let me tell you a little bit about my history with the idea that somehow me having experience being more mature, we just put it that way, and having several decades under my belt, it's somehow meaning that I have something to teach you or that you should be paying attention to me,

05:20.480 --> 05:26.260
that you should view people such as myself as, quote unquote, thought leaders.

05:26.600 --> 05:29.140
But really, you don't care about my background.

05:29.140 --> 05:30.440
Hopefully you don't.

05:30.780 --> 05:34.580
Hopefully you're really here because like me, you hear more about Bruce.

05:34.580 --> 05:45.100
Bruce Lee is one of my idols and somebody I look up to both as just a good human being and some of the phenomenal things that he's actually done throughout his life.

05:45.100 --> 05:49.220
And also as a philosopher and some of the things that we can take away from that.

05:49.220 --> 05:54.380
So for those of you that aren't familiar with Bruce Lee, he's a native San Franciscan.

05:54.380 --> 06:01.820
A lot of people actually don't know that, you know, probably his big claim to fame is all of the martial arts movies that he's been in.

06:01.820 --> 06:07.120
You know, Big Boss, Enter the Dragon, which, you know, obviously everybody knows.

06:07.260 --> 06:14.600
But some of the other things I think people forget about, it's like a lot of the work that he's done just in general to make the world a better place.

06:14.600 --> 06:19.300
He was instrumental in breaking down lots and lots of stereotypes.

06:19.300 --> 06:25.220
So like stereotypes around like Asians in Hollywood and just Asians in society in general.

06:25.220 --> 06:39.400
Like he made it OK slash essentially effectively broke through to have strong leading roles for Asians and strong leading roles, particularly for Asian men.

06:39.400 --> 06:46.060
But he did even more outside of his Hollywood career because he was a world class martial artist.

06:46.060 --> 06:58.000
And he was a big proponent not only of practicing martial arts, but making martial arts available to everybody, regardless of your race, gender, body style, etc.

06:58.000 --> 07:03.220
He pushed back on the belief that there was only one type of person.

07:03.220 --> 07:10.660
And he also pushed back on the belief that there's only one style of martial arts that was suitable for all things.

07:10.660 --> 07:13.920
He really was a Renaissance man.

07:13.920 --> 07:23.120
He believed in constantly learning and constantly growing, studying everything from boxing to ballet, even philosophy.

07:23.940 --> 07:31.620
He's also known for beating up Wong Jack Man, a Kung Fu practitioner in Oakland.

07:32.060 --> 07:47.200
And what was interesting about this situation was that it was related to Bruce Lee's desire to make sure that his learnings and his philosophy and just the advantages of martial arts were available to all people.

07:47.200 --> 07:58.540
At a time when a lot of people felt that martial arts, in particular Kung Fu, should only be taught to Chinese people and should not be available to other races.

07:58.540 --> 08:03.140
I love this quote that actually recounts Bruce Lee's perspective on the fight.

08:03.140 --> 08:04.420
And I'll just read it for you.

08:04.420 --> 08:07.900
I'd gotten into a fight in San Francisco with a Kung Fu cat.

08:07.900 --> 08:10.740
And after a brief encounter, the son of a bitch started to run.

08:10.740 --> 08:15.080
I chased him and, like a fool, kept plunging him behind his head and back.

08:15.080 --> 08:19.400
Soon, my fists began to swell from hitting his hard head.

08:19.480 --> 08:26.880
Right then, I realized Wing Chun was not too practical and began to alter my way of fighting.

08:26.880 --> 08:34.800
This really was kind of like the birth and the inspiration of Bruce Lee to start seeking out better ways to practice martial arts.

08:34.800 --> 08:46.860
And ultimately, Lin, you know, lent his way towards creating Jeet Kune Do, a form and his philosophy of martial arts, which essentially means the way of an intercepting fist.

08:48.040 --> 08:54.140
Bruce Lee is probably the first true, quote unquote, mixed martial artist.

08:54.140 --> 08:57.220
He described his style as hybrid fighting.

08:58.500 --> 09:01.360
So Jeet Kune Do, what exactly is it?

09:01.360 --> 09:02.760
What is it about, etc.?

09:02.760 --> 09:18.720
One of the key principles of Jeet Kune Do is that it's focused on the outcome of a fight, not just the kata, not just practices, not just forms, but really the ultimate goal, which is to essentially stop the fight.

09:18.720 --> 09:32.660
He wanted to make sure that his form of martial arts and his philosophy got rid of the dogma, that it allowed you to leverage all the techniques across a wide gamut of martial arts.

09:32.740 --> 09:42.160
He also wanted to make sure that when he was training and that his students were training, that they were actually training for realistic scenarios, not just sparring matches and not just Kung Fu competitions.

09:42.160 --> 09:47.300
He felt that you needed to be constantly preparing yourself and constantly conditioning yourself.

09:47.300 --> 09:56.220
And that with that combination of letting go of dogma and constant preparation, you could ultimately get to a fluid state.

09:56.220 --> 09:59.980
So you're always prepared without being stressed.

09:59.980 --> 10:06.860
He was a permanent student and he believes that all people should always be learning.

10:06.860 --> 10:19.320
I love this quote by him and I think there's so much for us to take away from it, which is absorb what is useful, reject what is useless, add what is essentially your own.

10:21.300 --> 10:32.700
I have not invented a new style, composite, modified or otherwise, that is set within distinct form as apart from this method or that method.

10:32.700 --> 10:39.700
On the contrary, I hope to free my followers from clinging to styles, patterns or molds.

10:40.260 --> 10:43.180
So what does this have to do with APSEC?

10:43.180 --> 10:44.760
I understand you.

10:44.760 --> 10:47.300
This seems like a really, really drawn out analogy.

10:47.360 --> 10:50.880
I promise you that there is something here.

10:51.840 --> 10:59.840
I believe that APSEC has actually fallen into a lot of the same traps that previous martial arts practitioners had.

10:59.840 --> 11:04.840
There was always this idea that, oh, my style is superior to your style.

11:04.840 --> 11:08.460
I'm going to go to your dojo and challenge your master, etc.

11:08.460 --> 11:12.980
And we have a lot of those same tendencies inside of security.

11:12.980 --> 11:16.580
Instead of senseis, we have thought leaders.

11:18.340 --> 11:20.920
I'm OK with that actually being an insult.

11:20.920 --> 11:28.420
I've been called that myself and I've probably been guilty of perpetuating some of the same problems that these thought leaders are doing.

11:28.420 --> 11:31.120
We are heavily relied upon dogma.

11:31.120 --> 11:36.000
There are some people like, oh, if you're not practicing DevSecOps, then you're not really practicing APSEC.

11:36.000 --> 11:38.060
Your security program isn't going to work.

11:38.060 --> 11:42.940
There are others that believe like, oh, you need to be following something that's from NIST.

11:42.940 --> 11:45.620
And that's how application security is supposed to be approached.

11:46.400 --> 11:51.440
Often we've kind of forgotten what the real point of application security is.

11:51.440 --> 12:00.120
When Jeet Kune Do, Bruce Lee thinks about this concept of, hey, the true purpose is to end the fight.

12:00.120 --> 12:07.780
Inside of application security, our true purpose is to actually create and have secure outcomes.

12:07.860 --> 12:12.100
Another issue that we have in application security is that we often get distracted, right?

12:12.100 --> 12:15.040
We're distracted by whatever the latest zero day is.

12:15.040 --> 12:28.260
Instead of actually really thinking about the common threads, like in Jeet Kune Do, Bruce Lee wanted people to focus on realistic fighting, not just these outliers and things like that, the things you're going to come across on a day to day basis.

12:29.200 --> 12:31.960
Also, we have similar problems with gatekeeping.

12:32.700 --> 12:37.600
You know, there's a lot more we can actually be doing to actually bring more people into application security.

12:37.880 --> 12:46.920
But we've always kind of perpetuated this myth, either intentionally or unintentionally, that AppSec is only for these blessed few and they have to look a certain way.

12:46.920 --> 12:52.100
They had to, you know, belong to certain crews and cliques or they had to have gone to a certain school.

12:52.420 --> 13:00.700
Ultimately, we've latched onto these ideas so hard and we've been so inflexible that we're really like a rock.

13:01.640 --> 13:04.740
Instead, we must be like water.

13:06.920 --> 13:10.300
So let's actually talk about Jeet Kune Do for AppSec.

13:11.700 --> 13:15.960
I want to start a little bit actually talking about the styles of AppSec.

13:15.960 --> 13:16.440
Right .

13:16.800 --> 13:19.380
There is the traditional style.

13:19.500 --> 13:26.020
And I think, you know, in particularly some of you that are older or maybe actually work in a large organization, you might actually be familiar with this.

13:26.020 --> 13:29.500
Generally, the traditional style is guided by compliance.

13:29.500 --> 13:31.000
Hey, what are the regulations?

13:31.100 --> 13:33.840
What are the things we have to do to check the box?

13:33.940 --> 13:37.920
It's heavily focused on testing and auditing.

13:37.920 --> 13:49.660
It works really, really well with more traditional SDLCs, like companies that are releasing software once or twice a year, probably still practicing a waterfall type methodology.

13:49.660 --> 13:53.760
Like I said, it's really, really common in large corporations.

13:53.800 --> 13:59.600
And because of that, they're often just focused on buying tools like, hey, let me go get a license for Fortify.

13:59.600 --> 14:06.140
Let me go get a really expensive license for some dynamic testing suite, etc.

14:06.140 --> 14:09.460
But there actually are a lot of good things about this style.

14:09.460 --> 14:12.080
Like one, it actually is predictable and repeatable.

14:12.080 --> 14:12.560
Right.

14:12.600 --> 14:21.140
And it's great because nobody is surprised by what is expected and what is going to happen when the application security team engages with them.

14:21.140 --> 14:24.100
You produce a lot of artifacts and a lot of evidence.

14:24.260 --> 14:26.260
That sounds like a lot of paperwork.

14:26.300 --> 14:35.540
But in particular, in heavily regulated industries, that is great when you have to deal with auditors because auditors actually understand it and it makes them happy.

14:35.540 --> 14:40.740
It allows for a lot of control over development and over the developers.

14:40.920 --> 14:48.960
And it makes executives at these large corporations really, really comfortable because they can always go back and say, look, we followed the best practices.

14:48.960 --> 14:52.360
We're doing what all the other large corporations are doing.

14:52.440 --> 14:54.540
Look at how rigid and in control we are.

14:54.720 --> 14:56.580
And that gives them a lot of comfort.

14:56.580 --> 15:00.040
It also is kind of a good way to have some deniability.

15:00.740 --> 15:09.740
One other good thing about it is because of this really, really aggressive, maybe oppressive, pops down style, is that it makes it really easy to have mandatory developer training.

15:09.740 --> 15:21.840
And I think everybody believes that when developers know more about security and developing good, secure software, they generally have fewer security vulnerabilities.

15:22.120 --> 15:23.640
Obviously, this isn't perfect.

15:23.640 --> 15:28.240
There's a reason why tons of people no longer use this methodology.

15:28.240 --> 15:30.600
One, it slows down developers.

15:30.720 --> 15:33.940
And that can definitely have an impact on your competitive advantage.

15:34.000 --> 15:38.640
It over, over, over indexes on compliance and process, etc.

15:38.640 --> 15:47.160
And oftentimes people and companies forget about addressing true risk because they're so worried about checking boxes.

15:47.860 --> 15:51.440
These are the kind of situations where you have to have a large AppSec team.

15:51.440 --> 16:01.080
There's no way that you can actually do these many reviews, do this much process with a 4, 5, 10, even a 15-person AppSec team.

16:01.140 --> 16:09.580
The other big thing is that that part that the execs like, that deniability aspect, it's not the same as actually being secure.

16:09.620 --> 16:14.420
Yes, just because you won't get carted away to jail when you're in front of Congress, etc.

16:14.420 --> 16:22.840
after your breach, it doesn't mean that you actually did the right thing by your customers and by the rest of the ecosystem that relies upon you.

16:22.860 --> 16:26.400
Another thing is that it also kind of separates the security team from the developers.

16:26.560 --> 16:36.680
And oftentimes the security team doesn't really understand the code base or the product because they're really focused on trying to just find holes and go through a process.

16:37.000 --> 16:41.600
And that can also lead towards a lot of conflict with developers.

16:41.600 --> 16:46.420
And finally, at least personally, I find this style to be soul crushing.

16:46.940 --> 16:52.400
You know, this is part of my job when I was at Bank of America, and it really can be confining.

16:52.400 --> 16:59.060
And also having that antagonistic relationship as somebody who identifies as an engineer just isn't fun.

17:00.260 --> 17:10.000
What a lot of people actually practice now is kind of like this DevSecOps, DevOps, you know, whatever acronyms you want to use, security engineering, etc.

17:10.000 --> 17:13.840
This more agile application security type practice.

17:13.840 --> 17:18.220
It's a great thing in the aspect that it really is heavily guided by engineering.

17:18.400 --> 17:19.660
And that's really, really good.

17:19.660 --> 17:26.200
Having an application security team that is our engineers and can relate to engineers just pays dividends.

17:26.500 --> 17:30.440
The security team is there to actually just, you know, kind of like you write code and design systems.

17:30.440 --> 17:41.700
They really are about building golden paths, building safe defaults, other things that actually just make a developer's life much easier because the developer doesn't have to worry about security as much.

17:41.700 --> 17:56.540
I was often also focused heavily on this idea that if you can build the right golden path, then the developers can actually have a lot more freedom to exercise their creativity and actually launch interesting and good products.

17:56.540 --> 18:04.800
You see this style very much in startups or probably the best way to describe it is Silicon Valley style technology companies.

18:04.860 --> 18:08.240
But I love the fact that it does have this engineering first focus.

18:08.440 --> 18:12.740
You know, it's like I said, it's a lot of good that comes out of this because code scales.

18:12.740 --> 18:21.260
And what that means is you can also have a really, really lean security team and they can move kind of close to the developer speed.

18:21.260 --> 18:27.560
You can get a really, really good understanding of the code and what the actual product goals are by the security team.

18:27.560 --> 18:33.500
And that allows the AppSec team to really make pragmatic choices in some of the things that they're building.

18:33.600 --> 18:40.480
And also they're more focused on preventative measures as opposed to just purely detective measures, which is more like the traditional style.

18:40.960 --> 18:43.980
As much as I love this style, it isn't perfect either.

18:43.980 --> 18:53.100
Like one of the big things is that oftentimes because there's not a huge paper trail or a lot of things are actually more innovative, it's hard for external regulators to understand.

18:53.100 --> 18:57.540
And that can lead to gaps and potential issues and sometimes even fines.

18:59.060 --> 19:03.120
Because often these security teams are really, really lean.

19:03.560 --> 19:10.780
You can find yourself in a scenario where even if you have a lot of high caliber security engineers, they still get overwhelmed by the developers.

19:10.780 --> 19:16.500
In general, the broader development team is still going to be larger than your AppSec team.

19:16.500 --> 19:33.640
And then finally, when I put my pointy-haired hat on or pointy-haired boss hat on or whatever, it's difficult to actually find really, really good AppSec engineers that can code, understand security, understand how to actually build things that make developers easier.

19:33.640 --> 19:37.980
And those AppSec engineers tend to be a little bit more expensive.

19:38.780 --> 19:48.540
There's another style, though, that I find interesting, and I think a lot of you have probably been there before or at least know people that are there, which is a style called the pleading and prayer style.

19:49.040 --> 19:53.700
And this is generally characterized by a company that's more guided by cost.

19:53.700 --> 20:00.720
These generally tend to be smaller companies, maybe like a really, really small startup, like maybe less than 10 people.

20:00.720 --> 20:04.140
Like they're not they don't think they're ready yet for a security team.

20:04.140 --> 20:13.420
And also some companies that don't consider themselves technology companies, like maybe it's an architectural firm or a law firm or maybe it is a financial institution.

20:13.420 --> 20:15.920
And so they don't really think they deal with software.

20:15.920 --> 20:20.540
They don't think that they have application security type problems.

20:20.820 --> 20:22.220
You know, they don't think they're regulated.

20:22.220 --> 20:25.100
So there's no external pressure on them as well.

20:25.100 --> 20:31.600
And when security needs do arise, they rely more on this kind of like volunteer firefighter department type method.

20:31.600 --> 20:35.660
One of the good aspects of one of the things that makes it attractive about it is that it's cheap, right?

20:35.680 --> 20:38.460
You're not paying for security people.

20:39.060 --> 20:40.200
It's cheap, right?

20:40.200 --> 20:41.140
Less headcount.

20:41.140 --> 20:42.380
You're not buying tools.

20:42.380 --> 20:53.660
All these are the kind of things that can pile up that can seem like costs that are unnecessary because, you know, security can appear to be invisible unless something goes wrong.

20:53.940 --> 20:57.260
Ultimately, you know, statistics actually kind of on their side.

20:57.260 --> 21:02.060
But the reality is, is that most companies don't have a significant breach.

21:03.340 --> 21:06.260
There are definitely bad aspects of this, though, right?

21:06.260 --> 21:08.380
You know, literally you get what you pay for.

21:08.380 --> 21:10.580
I've told people this time and time again.

21:10.780 --> 21:13.840
Cheap security is generally expensive security, right?

21:14.540 --> 21:17.340
Statistics are on your side until they are not, right?

21:17.340 --> 21:22.460
When you roll the dice the wrong time, that one time it can be dramatically consequential.

21:22.620 --> 21:26.680
And when you don't have an AppSec team, you now find yourself in a bind.

21:26.680 --> 21:38.320
A lot of these companies forget that they are still utilizing software or writing software, even if it's a tiny amount that can still have some impact to their business and ultimately to their customers.

21:38.860 --> 21:48.820
No one in the company is even aware because no one in the company is focused on software security until something goes wrong.

21:48.820 --> 21:54.700
You know, one of the things that I've learned long ago is that ultimately software is eating the world.

21:54.700 --> 21:57.140
And that's what allows us to be so innovative.

21:57.140 --> 22:02.600
And that's also what allows us to have a virtual DEF CON here in COVID land.

22:04.720 --> 22:09.240
One thing that you notice about this, though, is that all of these styles work.

22:09.240 --> 22:11.520
They all work.

22:11.520 --> 22:17.200
As I mentioned, statistics kind of show that most companies don't get breached.

22:17.200 --> 22:18.400
Now, I say they all work.

22:18.400 --> 22:26.760
That doesn't necessarily mean that they're all secure and that it delivers the same level of security and resilience as some of the other styles.

22:26.760 --> 22:32.000
But the reality is, is that, yeah, a lot of people can get by with any of these models.

22:32.000 --> 22:37.400
And in some cases, these models are really well tuned for the exact business need that's there.

22:37.540 --> 22:39.920
So, you know, that's actually a good thing, right?

22:40.240 --> 22:42.160
That's something that they all have in common.

22:42.160 --> 22:44.680
They also have another thing in common.

22:45.780 --> 22:47.460
All of these styles fail.

22:47.860 --> 22:56.440
They all break down at some point, depending on actually what's going on in the company, depending on actually what's going on in the ecosystem.

22:56.460 --> 23:16.600
So if you are in a more traditional organization that's actually practicing a more regimented style of security and AppSec, what happens when you get a new VP of engineering or a new CTA that wants to be more agile and is hiring like really aggressive developers and wants to move to a style where there's kind of like continuous delivery?

23:17.760 --> 23:21.160
That traditional security team just kind of breaks.

23:21.700 --> 23:34.580
When you think about this DevSecOps style slash agile style, what happens when these companies do get much bigger and they are heavily regulated and they now have to have a lot more process?

23:34.580 --> 23:37.040
How do you keep your AppSec people more engaged?

23:37.040 --> 23:41.980
How do you actually deal with the bureaucracy that is now being forced down on you?

23:41.980 --> 23:48.340
On the pleading and parasite, it fails because, yeah, eventually something might go wrong.

23:49.120 --> 23:53.320
So what do we need to do about this?

23:53.560 --> 24:08.000
One of the things that has to recognize is that we as application security practitioners, we need to change based on the circumstances of what's going on in the company that we're in or the company that we may be joining.

24:08.080 --> 24:17.720
So for me, I could not use the same style of application security that I practiced at a bank when I moved to a company like Twilio.

24:17.720 --> 24:19.800
That's extremely agile, right?

24:20.560 --> 24:31.700
You know, when I was just a lowly engineer working in a meteorology center, that style of kind of like the, you know, plead and pray methodology.

24:31.720 --> 24:35.440
Yeah, I can't use that inside of a bank where it's heavily regulated.

24:35.440 --> 24:37.260
You know, the world is constantly changing.

24:37.260 --> 24:38.960
Threats are constantly changing.

24:39.100 --> 24:43.160
Where I go in my career and where you may go in your career is going to change.

24:43.160 --> 24:47.800
And what that means is that if you're too dogmatic, you will ultimately fail.

24:48.540 --> 24:53.300
As I mentioned, you also have to take into account who your adversaries are.

24:53.300 --> 25:14.460
You have to recognize that some of the things that are structured for a heavily regulated company and who they believe that they are, you know, targets from like organized crime, et cetera, how those adversaries operate might be very different than how an adversary might operate for a social media company or some other quote unquote Silicon Valley style company.

25:14.460 --> 25:21.300
And so you need to be aware of that when you are designing and building and practicing application security inside these companies.

25:21.300 --> 25:29.360
The other thing to take into account is that even though you might understand your adversary today, your adversary is always changing.

25:31.840 --> 25:45.740
So one of the things that I think we have to come back to and one of the things I want to borrow and I have borrowed from Bruce Lee is this idea of focusing on realistic fights or essentially realistic scenarios, right?

25:45.740 --> 25:52.440
You need to base your APSEC program on the actual likely threats and not make some of the mistakes I've seen in the past.

25:52.540 --> 26:05.900
It's really common to go into an organization and see that, oh, they're practicing traditional APSEC, heavily regimented, and they're giving embedded C programmers OWASP top 10 security training.

26:05.900 --> 26:07.860
That makes no sense at all, right?

26:07.860 --> 26:11.280
You need to actually modify based on what the company is looking like.

26:11.280 --> 26:17.940
You need to also regularly review and adjust those threat models, because as I said, your adversaries are changing, your infrastructure is changing.

26:17.940 --> 26:21.100
The world around you is not static.

26:21.100 --> 26:30.040
So these static, dogmatic styles of application security also need to change as well.

26:30.040 --> 26:32.480
And don't make any mistake about it.

26:32.480 --> 26:38.520
All of the styles are dogmatic, even the ones that claim to be agile.

26:38.520 --> 26:48.360
Some of the things that I think are useful inside of organizations is going back and really understanding the past, getting a better understanding of where vulnerabilities have happened previously.

26:48.420 --> 26:57.500
So you can actually start really getting engaged of what's important to the company, to the customers and how you commonly make mistakes, because those are the realistic fights that you've been in.

26:57.500 --> 26:59.760
And so that's what you need to practice for.

26:59.760 --> 27:02.820
And you also need to go back and actually say, like, well, what is it we really own?

27:02.820 --> 27:07.780
What are the key assets here and what kind of adversaries are going to be attracted to that?

27:07.780 --> 27:13.260
I mean, you can probably have a good idea of who your adversaries might be if you are moving billions of dollars a day.

27:13.260 --> 27:19.920
You may not understand who your adversaries are going to be if you're running social media or if you just have a cat picture website or those kind of things.

27:20.700 --> 27:25.700
Even though this is DEF CON and there's a lot of interesting talks, definitely go check them out.

27:25.700 --> 27:39.120
Don't let the zero days distract you too much, because often what's going to impact you are the 90, 180, the 365 day vulnerabilities that you haven't fixed yet.

27:41.420 --> 27:53.240
The other thing I really like about Jeet Kune Do is that Bruce Lee really wanted to focus on the outcome of a fight, the actual intent, and the intent is to end the fight.

27:53.240 --> 27:59.780
For us as application security practitioners, the intent is to provide secure outcomes.

27:59.780 --> 28:03.860
And you should do that with the least amount of energy and the most direct path.

28:03.860 --> 28:08.320
An interesting thing about Jeet Kune Do is that Bruce Lee introduced things like groin strikes.

28:08.320 --> 28:11.420
He introduced eye pokes because he's like, hey, I want to end the fight.

28:11.420 --> 28:18.540
I don't need to care about what's the proper way or what is the dogmatic way or what the proper style is.

28:18.540 --> 28:23.560
And that means that you should be very open to using whatever tool is the most sufficient.

28:23.560 --> 28:30.420
So if pen testing gives you quick results, that gives a lot of value for you and you can actually fix security issues, use that.

28:30.420 --> 28:34.240
If static analysis gives you better results, use that.

28:34.240 --> 28:39.460
People are going to harass me about this later, especially those that know me personally.

28:40.100 --> 28:42.440
It hurts to even say this.

28:42.720 --> 28:48.280
If a WAF will help you solve security problems, you should use a WAF.

28:49.560 --> 28:52.240
I just I need a break.

28:53.000 --> 28:56.480
Even security unicorn here doesn't believe I just said that.

28:56.720 --> 28:58.500
But it is true, right?

28:58.500 --> 29:10.180
Because you need to get rid of ego, even my ego, and focus on the real goal, which is secure outcomes, not the practice, the outcome.

29:10.200 --> 29:11.240
That's what we want.

29:11.240 --> 29:14.140
We want secure outcomes, not security practices.

29:14.140 --> 29:21.720
Some good security practices can lead to secure outcomes, but you should not heavily index on that.

29:23.520 --> 29:31.900
You also need to make sure that you and your application security team are also continually preparing, continually conditioning.

29:31.980 --> 29:40.360
Bruce Lee believed heavily that you should always be ready and training for a fight because you don't know when it's going to occur and you don't know what it's going to look like.

29:40.360 --> 29:49.180
And if you're not practicing some of the fundamentals and if you're not practicing being ready, then you will always be on your back foot, which sets you up for failure.

29:49.180 --> 29:59.540
We have to remember that application security software itself, how we design and build software and infrastructure, is changing daily.

29:59.540 --> 30:05.980
And the things that you learned today or the things you learned five years ago may not actually be useful tomorrow.

30:05.980 --> 30:11.460
Now, there are some fundamentals and some principles and things like that that I do believe continue to be useful.

30:11.480 --> 30:15.340
Like I think threat modeling, that's just to me, it's just common sense.

30:15.340 --> 30:17.320
It's like, yeah, you should know who your opponent is.

30:17.320 --> 30:18.480
What is it you're training for?

30:18.480 --> 30:24.180
Or at least broadly, what kind of fight are you training for or kinds of fights?

30:24.180 --> 30:28.700
What does your environment look like and what are the things that you know that you could probably predict now?

30:29.380 --> 30:33.880
I, you know, obviously I have a static analysis background and just general code understanding background.

30:33.880 --> 30:38.140
So, yes, I still love analyzing code because it actually has so much return value for you.

30:38.140 --> 30:46.280
It allows you to really get a good indication about what's going on in your ecosystem and what are potential problems that may occur.

30:46.460 --> 30:49.020
This is, yeah, it's aka know yourself, right?

30:49.020 --> 30:51.800
If you don't know yourself, how can you actually know how to actually improve?

30:52.540 --> 31:00.040
Adversarial simulation in whatever format you want that to occur in, red team, pen testing, whatever, tabletop exercises.

31:00.040 --> 31:02.780
You want to constantly be training, constantly sparring.

31:02.780 --> 31:10.160
And then there's also probably one of the more important things in particular in application security, which is effective communication.

31:10.820 --> 31:21.460
Application security wins and fails by its ability to convey risk in a way that other people in the organization can understand.

31:21.460 --> 31:31.920
To bring them along in that journey, you actually have true allies that are going to be proactive, that can actually reach into all those places where you don't have enough time or don't have enough insight and understanding.

31:31.920 --> 31:34.640
Having allies in a fight is always a good thing.

31:34.640 --> 31:37.940
I don't understand anybody that wants to have a one-on-one fight.

31:38.840 --> 31:41.240
The idea of a fair fight is just dumb, right?

31:41.240 --> 31:44.380
You should always have an advantage by any means necessary.

31:44.640 --> 31:49.420
And the thing that you should remember is that these are the philosophies of your attackers, right?

31:49.420 --> 31:56.340
An attacker isn't going to say like, oh, well, this bank practices this traditional style of security.

31:56.340 --> 32:00.020
So I need to make sure that, you know, my attack matches that.

32:00.020 --> 32:01.020
No, no, they're not going to do that.

32:01.020 --> 32:06.780
They're going to use whatever is most efficient to get them the results that they want.

32:10.500 --> 32:26.740
An important thing that Bruce Lee believed was this idea that not only should he be teaching others, but he should be learning from others and learning from his students, because the people that we actually interact with in application security, regardless of where they come from,

32:26.740 --> 32:28.860
all have something that we can learn from.

32:28.920 --> 32:41.760
And when you're bringing people along on the journey, it can also help you refine your understanding of application security and find out where your gaps are, or maybe even be introduced to new concepts that you may have never even considered before.

32:42.600 --> 32:49.140
I, you know, obviously, you know, I'm not a big fan of some of the security gatekeeping that goes on, and I've been guilty of it myself.

32:49.140 --> 32:55.580
But what I have learned is that security comes in all shapes, forms, sizes and backgrounds.

32:55.580 --> 33:00.060
And you can have somebody that doesn't even have a programming background.

33:00.060 --> 33:02.920
That's a phenomenal application security practitioner.

33:02.920 --> 33:05.460
You can have somebody that was maybe just a network engineer.

33:05.460 --> 33:14.460
You can even have somebody that was working at a front desk at a company bringing significant value to an application security team.

33:15.040 --> 33:19.980
The gatekeeping bothers me also because everybody was a noob.

33:19.980 --> 33:23.940
There is nobody out there that was not a noob at some point.

33:23.940 --> 33:29.760
And anytime new technology is introduced, you're in that position again of being a newbie.

33:29.760 --> 33:31.820
So we just got to get rid of the egos, y'all.

33:32.440 --> 33:42.560
The more we can invest in broadening the ecosystem, the more we can invest in bringing more and more people along, the better our AppSec journey is going to be.

33:42.560 --> 33:43.900
Because we have more allies.

33:43.900 --> 33:45.380
We have more coverage.

33:45.380 --> 34:03.660
And you also get maybe a little bit of time back to maybe explore some of those zero day things that you're interested in that I previously said, you know, some of the things you can also take away from teaching others and bringing more people into application security is that when you understand everybody else's journey,

34:03.660 --> 34:06.380
you get to understand a little bit more about your own journey.

34:06.380 --> 34:16.120
And when you start listening to other people, you also learn more things you can incorporate into things like threat modeling, incorporating the things like abuse protection.

34:16.120 --> 34:20.960
Like we see this action in the world today with regards to some of the things like privacy, for example.

34:20.960 --> 34:34.840
At least anecdotally, I've noticed that teams that are more diverse actually have better attitudes around privacy because there are more opinions about how various features and functions impact people based on what their life is like.

34:34.840 --> 34:42.920
I know that me as a six foot one black male, I have a different threat profile than a five foot one woman.

34:42.920 --> 34:47.300
And what I want on the Internet or from an application may be different.

34:47.300 --> 34:54.540
Somebody may be in a an abusive relationship and they're worried about stalkers and that's a different profile.

34:54.540 --> 35:02.140
If you don't have people on the team that can bring those things to the table, then you're actually you're simply operating at a deficit.

35:02.460 --> 35:10.920
You really want to also make sure you're pushing yourself outside of your comfort zones and dipping into other areas of the business.

35:10.920 --> 35:22.420
As a good application security practitioner, the more you can learn about the business and more you can learn about your co-workers, the better you can actually serve your company and the better you can actually serve the ecosystem.

35:24.990 --> 35:33.350
Finally, one of the big things is really what I'm arguing for here is that AppSec needs to be flexible.

35:34.130 --> 35:43.790
If you practice just one style, if you are too dogmatic, then you will always be on the back foot and you won't be able to adjust to new threats in the landscape.

35:43.790 --> 35:47.050
You won't be able to adjust to new jobs.

35:47.150 --> 35:58.370
You will have a difficult time migrating from a heavily regulated industry to a slightly regulated industry or like a small startup, etc.

35:58.370 --> 36:03.650
And vice versa, if you're like a startup and you're like, hey, I'm all about agile and DevSecOps, etc.

36:03.790 --> 36:07.170
That is good at a startup in some cases.

36:07.190 --> 36:12.730
But when you go to a heavily regulated industry, you might run into a lot of friction and you might run into a lot of problems.

36:12.770 --> 36:20.490
So one of the other things that I think is useful for that flexibility is also understanding really what is important to you.

36:21.590 --> 36:24.990
People are probably going to be a little bit unhappy about this.

36:24.990 --> 36:32.330
Be flexible about where you actually want to invest your security resources and your security care.

36:32.590 --> 36:46.130
Occasionally, that means like, yeah, you might want to tell a developer that it's OK to do a release without a full security review because really the developer is just adding an extra button on the website or an extra image on the website.

36:46.130 --> 36:57.670
And instead of delaying them with a 20, 40, 60, 80 hour application security static analysis scan, you're like, oh, just go ahead and ship it.

36:57.670 --> 36:58.630
Still be happy.

36:58.630 --> 36:59.750
You'll be happy.

36:59.750 --> 37:02.490
And ultimately, it allows you to actually get some goodwill.

37:02.490 --> 37:05.490
So you can also focus on the bigger problems.

37:05.490 --> 37:17.470
You also need to be aware that, yeah, you might have to be flexible, in particular if you're one of the more agile DevSecOps type operations, when new bureaucracy comes in.

37:17.470 --> 37:19.190
You might have additional regulations.

37:19.190 --> 37:21.310
We've experienced that in the recent future.

37:21.310 --> 37:25.510
I'm in California and CCPA is a recent and new regulation for us.

37:25.510 --> 37:27.610
A lot of people already experienced GDPR.

37:27.610 --> 37:29.530
It's a new and recent regulation.

37:29.630 --> 37:33.890
And it's not something that you were able to opt in or opt out of.

37:33.890 --> 37:43.450
As I mentioned, you should think a lot about being flexible to have compromises in some of the smaller security recommendations.

37:43.530 --> 37:51.710
So you can actually have resources to get focused on the bigger risk and the bigger security regulations and security concerns.

37:51.710 --> 38:08.270
So, for example, if you dump a static analysis scan in front of somebody that has 10,000 findings and you're like, oh, you need to fix every single one of those, you're going to quickly find yourself being walked out the door.

38:08.270 --> 38:11.210
But if you can get them to actually focus on, hey, you know, this is actually really important.

38:11.210 --> 38:14.430
These are the high critical vulnerabilities and there's only 10 of them.

38:14.430 --> 38:15.990
Please just focus on those.

38:16.010 --> 38:21.870
You get a lot more buy in and ultimately you really are reducing risk and reducing the significant risk.

38:21.870 --> 38:26.750
And that's really what we want to do as application security practitioners.

38:33.610 --> 38:37.850
So there is no singular way to practice AppSec.

38:37.850 --> 38:41.530
There is value to be had in multiple approaches.

38:41.530 --> 38:46.030
There are no single profiles that make good AppSec practitioners.

38:46.030 --> 38:49.250
Many perspectives and backgrounds are valuable.

38:49.250 --> 38:53.770
Your approach must match the immediate situation.

38:54.330 --> 38:59.090
Being rigid in AppSec does not work.

39:07.560 --> 39:09.900
I said empty your mind.

39:10.720 --> 39:14.960
Be formless, shapeless, like water.

39:15.540 --> 39:19.680
Now you put water into a cup, it becomes the cup.

39:19.680 --> 39:22.000
You put water into a bottle, it becomes the bottle.

39:22.000 --> 39:25.220
You put it in a teapot, it becomes the teapot.

39:25.260 --> 39:28.660
Now water can flow or it can crash.

39:29.440 --> 39:31.200
Be water, my friend.

39:31.880 --> 39:35.460
So thank you for taking a little bit of your time out today.

39:35.460 --> 39:40.360
I'm really, really, really looking forward to interacting with some of you online.

39:40.380 --> 39:42.480
Hopefully answering some questions.

39:42.560 --> 39:45.400
Hopefully maybe even being challenged about some of the things that I said.

39:45.400 --> 39:49.440
As I mentioned, I can't teach you anything.

39:49.440 --> 39:52.640
I can tell you about my opinions and about my journey.

39:52.640 --> 40:02.440
But I would be even more hypocritical than I already am if I told you that I have the answers to this and that there's one particular way that you need to practice AppSec.

40:02.440 --> 40:04.360
Be like water.

40:04.360 --> 40:06.360
Adjust to your environment.

40:06.560 --> 40:15.920
Fill the container that you will be poured into and give the security that you really, really want to deliver to others.

40:15.920 --> 40:17.360
Thank you so much.

40:17.360 --> 40:25.560
I really, really, really do appreciate having the opportunity to speak to you and for those of you that even made it to the end of this talk.

