We Hack Purple Podcast

We Hack Purple Podcast Episode 64 with guest Anant Shrivastava

February 09, 2023 Tanya janca / Avant Shrivastava Season 3 Episode 64
We Hack Purple Podcast
We Hack Purple Podcast Episode 64 with guest Anant Shrivastava
Show Notes Transcript


In this episode of the We Hack Purple podcast host Tanya Janca met with Anant Shrivastava! We talked about securing the entire software supply chain (including your CI/CD and where you get your packages from), and how it is more than just buying a software composition analysis (SCA) tool. He explained the new and very different risks of securing a mobile app versus a regular web app or an API, that’s he’s more of an ops than a dev person, and how the risks are all coming together now that many of us are doing DevOps. He shared his numerous open source projects, such as:
Code vigilant: https://codevigilant.com/,
TamerPlatform : https://tamerplatform.com/ and
HackingArchivesOfIndia https://hackingarchivesofindia.com/

 Anant’s Bio:
Anant Shrivastava is an experienced information security professional with over 15 years of corporate experience. He has expertise in Network, Mobile, Application and Linux Security. He is the founder of Cyfinoid Research, a cyber security research firm and has previously served as Technical Director at NotSoSecure Global Services, a boutique cyber security consultancy. He is a frequent speaker and trainer at international conferences such as BlackHat, Nullcon, and c0c0n. Additionally, Anant leads the open source projects Tamer Platform and CodeVigilant and maintains the Hacking Archives of India. He also participates in open communities targeted towards spreading information security knowledge such as null (null.community). His work can be found at anantshri.info and his blog is here  https://blog.anantshri.info/!

Very special thanks to our sponsor: The Diana Initiative!

The Diana Initiative is seeking sponsors for their annual event happening Monday August 7, 2023 in Las Vegas - https://www.dianainitiative.org/sponsor/ for more information

The Diana Initiative Call For Presentations opens on March 1, if you have a topic you want to share submit at tdi.

The Diana Initiative Is: A diversity-driven conference committed to helping all underrepresented people in Information Security. This year the theme is “Lead the Change.” You can submit to be a speaker at tdi . mobi / CFP or if your company would like to support the event by sponsoring check out https://www.dianainitiative.org/sponsor/


Join We Hack Purple!


Join us in the We Hack Purple Community:  A fun and safe place to learn and share your knowledge with other professionals in the field. Subscribe to our newsletter for even more free knowledge! You can find us, in audio format, on Podcast Addict, Apple Podcast, Overcast, Pod, Amazon Music, Spotify, and more!

welcome to the we hack purple podcast


where each episode I meet someone who works in application security who's


fighting the good fight to secure all the things I'm Tanya Jenka I am your


host and this episode is sponsored by the Guyana initiative an amazing


conference that happens in August right around when all of hacker summer camp is


happening including black hat and Defcon it is a conference for people who are


underrepresented in Tech and want to find a place where everyone looks like them this episode's guest is a nant anant can


you please tell the audience a little bit about yourself hi um I'm Anand srivastav


um close to about 15 years of corporate experience about 17 years I've been a trainer I've been involved with Linux


for about 20 years or so and uh I started out as a administrator server administrator


somewhere down the line I did a lot of development work and then around 2010 is when I fully moved into information


security have been into a sock kind of roles and then into pen testing kind of


roles two then in my last job I was managing a team of about 50 60 pen testers to my current uh job where or my


current company where I'm trying to build a small Niche research based firm which then gives out all the content


whatever we have researched in the form of training programs so you and I chatted a bunch of before


we decided to record and a thing that you and I were talking about is supply chain security and I feel like literally


every conference is talking about supply chain security so we might as well do it too


can you explain for the audience like what does that mean okay so supply chain security is a very


generic term which basically talks about whatever is the pipeline that is there


to reach a product to you now that's a general supply chain just like every


other keyword that information security or information technology takes from other fields they took this supply chain


and they framed it in software context so what we generally in it talk about is a software supply chain security


effectively when you are creating a software so you are writing a bunch of


code what generally happens nowadays is you write about 20 of the code yourself


and 80 of the stuff is import this import that and then the whole thing


works at the code level this is your supply this is the chain that is there these


are smaller components that are basically forming your code they are part of your supply chain


but the supply chain is not just this there are bigger pieces around it right


from so if we look at it from a full end-to-end Journey perspective the codes


Jeremy starts from a developer's laptop where they have bunch of different softwares installed and then one of the


software is an IDE which has multiple plugins in it and then that's where they're writing the code


from there they are committing the code into a what you say a source code repository mostly it is get but it could


be SVN it could be bunch of other source control softwares so the code goes there


from there uh there might be automated tools like what we call a CI CD or


continuous integration continuous deployment softwares so those tools will basically take that code perform certain


number of actions on it and then move to the next phase then you might have a test environment where the code gets


deployed and you perform some test then there is a production environment where the code gets deployed and then other


people can access it the environments that are there are also pieces of this


whole puzzle to then the software that are used to monitor your production


environment or your test environments every single piece that is there right


from every single software installed on your developer's machine to every single software installed on your servers the


entire pipeline is your software supply chain a compromise at any of this level can


lead to a compromise of your product so that's the whole piece according to


my understanding so far what do you say Tanya oh I agree I saw a conference talk


at besides Ottawa in November of 2020 or 2022 and um this friend of mine Alex Dao


from Mirai security he did a talk about how his pen testers attacked an entire


devops tool chain and you know here's how we got in through Docker here's how we gone through Jenkins here's how we


gotten through this here's how we and there was like 11 different points of compromise and people said you know well


why would someone attack why would someone attack your cicd and


then he's like solar winds um because that's what happened if they


could release your code themselves and have it go out into production to your


customers like oh my gosh that's so terrifying it's like someone taking over your


manufacturing Factory for just an hour and shipping poison cookies


so I have two stories around this one is


basically a news that is coming out now so if you look at last few days Circle CI got hacked LastPass got hacked or at


least they accepted that they got hacked slack got hat okay got hacked


these pieces you won't actually consider them part of your supply chain or in


general you won't talk about them because these are third-party SAS vendors but each of them are very


crucial ingredients of your whole process the second story that I had is I think


from 2015 or 2016. we were doing a pen test and we realized that one of the


website was exposing dot SVN directory so SVN was the version control system


that they were using and they were doing active deployments and the dot SVN


folder was exposed over the internet so I have written a custom tool of my own I was able to download the whole


content from there and the important thing that I got was the URL where the


source code was and the username that was there which was pushing the code in


it now it was a proper username but I did not have to even Brute Force the


password the same username was the password okay and this company


was a multinational company having all of their Regional websites in those


repositories all we had to do was push one PHP file into all of them and we had shells into


50 different Regional servers in like a span of 10 minutes because there was an


automated deployment as soon as the change is pushed into the Repository oh well oh my gosh you make such good


points in that I don't know if you remember I think it was sometime last year where


um there was a company that had essentially an advanced persistent threat which means hackers like living


on your network for a while and the malicious actor or like the the


ransomware group basically started publishing to the internet pictures of the slack


conversation of the company security team and that they didn't realize that


their slack had been compromised and I remember trying to explain to some of my staff what out of bound or out of band


means I'm like we need to discuss out of band if something happens like this and they're like What's out of band I'm like


well for instance not using our company email like setting up a private you know a


Gmail account or something that we're all sharing or uh just sending to our private emails or using our personal


cell phones instead of work cell phones like you don't know the level of compromise they're just like oh my gosh working a security company Tanya like


so the important bit that I kept in mind uh was don't store the data that you


don't want to protect that's the biggest key that is there


unless you're an Advertising based company where then you want everything stored


still everyone's personal private information and sell it for profit


so so if the entire supply chain includes basically every everything that


you use including the ingredients to make your software a thing that we briefly talked about was


where do you get your packages then yep yep so um I mean this is a fun


scenario because there is a concept of long-term stable releases and I'm only focusing on Linux


right now we can kind of extrapolate it to Windows and Mac also so there's a


concept of long-term release or long-term supported releases in Linux environments you have red hat providing


their long-term release you have Debian which comes out like once in three years you have Ubuntu where every two years


their 0.04 release is actually a long term stable release the way they talk about stability is


they will keep the packages in the same version so no matter what software you're running you are always sure that


this version of software is present as the base product this does not sits well with anyone who


is a recent developer because they want to work on the latest version of


softwares so the problem that comes is you have node.js you have Ruby you have python


people are now installing softwares from different sources which are not the


distro maintained sources so a distribution in Linux maintains their own packages a small number of


packages and they try to maintain the security aspects around it they try to tightly couple that yeah the updates


should be there they should be frequently pushed out and all those things compared to that if you have installed


something from say pip or ruby gem location or let's say from a npm


repository the accounts of ensuring that the packages are kept up to date is on


you now this is where the fun part starts because


in all of these languages the developer can freeze the version that they are


using now they are confident that the product works on this version let's say in for one of the other reason


the developer is not able to update the version so not able to test the software on latest versions and a security patch


has come up in the latest version you can't install the latest version because you don't know if the software


is going to continue working or not I have as part of my open source


projects I work on Android related distribution called Tamer platform this


was the biggest challenge that I had softwares one software needs Ruby but a


module of say version 5.4 the other would not work with 5.4 but would work


with 5.3 there are packages which work with Java 11 the others will work with Java 17. so


different softwares require different things and because of those complexities


people end up creating a sort of a Frankenstein monster which is a


combination of multiple sources with no clear path on how the update should


happen Docker came up with the whole concept of containers came up to the whole uh idea


that yeah you package things in separate containers and then you isolate things the problem that has also now happened


is those container themselves again needs an update process you have isolated them but they might


still be vulnerable and you again need to track one more thing where we are not able to track 10 things now we have to


track 20 things so the the cycle keeps going in people keep looking at more variety and


this is where uh at times the thing comes that hey why not build something


which is on a stable background rather than running for the most latest version


of things so the packages uh so a long-winded answer to your question the packages by


default would come from your native sources but the problem with that is they are not of the liking of what do


people want to code so the sources of packages are varied now this is where uh I shift from Linux


to let's say mac in Mac any developer worth their salt would not be using the native


development tools from Mac they'll be using brew and then they'll be installing a number of packages from


other sources Brew then allows you to tap into different people's repositories and


whatnot the good part and the bad part about it is you are relying on someone else to


ensure that the packages are updated and then you are relying and everyone


else is relying on you to ensure that you keep yourself updated if anyone fails in the chain the whole


situation is compromised so that's the yeah


it's a trust going on yes yes we shouldn't necessarily be putting our


trust there like like security people were big on not doing implied trust


where just by default We Trust something we're supposed to not trust by default or have zero trust that's the case is


yeah I mean it's it's an oxymoron kind of a situation for me security people talk


about hey we should not be trusting other people the the one end of the spectrum is going self-hosting and just


doing bare minimum and ensuring things work in your own environment you have full control over everything but when


you look at the recommendations given by most of the Security Professionals they would be like hey someone else can


actually take care of the security far better so instead of you doing things in your own you should be relying on a SAS


render to do things for you now you are dependent on that SAS vendor


the problem does not comes with having one or two vendors the ground reality situation is right now all of us are


dependent on maybe about 50 to 100 to 200 SAS vendors and every one of them


have to keep their business functional so that we are secure yes


so that is that is the other side and uh the part about


trusting uh the bigger challenge that also comes so let's say you're you're


someone who does not trust people and let's say you have uh you are of the


person who has done the full code audit of every single module that you've used now look at the situation that a


decently sized organization and let's say they're using node as their language


of choice I'm just picking on node because I hate JavaScript but applies to


every language so if they're using node and they build a decent side of sized application they


might be depending somewhere between 200 to 500 modules now let's say you have a


team of 10 people who are looking at your environment from a security standpoint


then you realistically believe that these 10 people would be able to audit all the 500 modules when a new version


of them comes out and be able to provide a judgment to your team that hey the new version came


out it is good to be used so if if the ownership is taken at the


org level the complexities keep on increasing for them it's a factor of Manpower it's a factor of cost and all


of that plus the rapid Pace at which the development work happens and the reason


I keep picking on npm and I don't know if you've seen that but there is an npm


module called is even which tells you whether the number is an even number or an odd number


and then there is a module is odd okay both of them are developed by the


same person and I don't remember which one but one of them actually depends on the other


one so it's like if you install is even it depends on is odd and what it does is


it passes the number to is odd and if the is odd says it's odd it says it's


not even and if it says it's not odd it says it's even so the dependency hell


that is there with cascading dependencies I mean it's one side to talk about that


hey I can just leverage a module and use it but people keep forgetting a term which is called technical debt every


time you use something which is not wetted by you or you've not actually


realized whether you actually need it or not then a technical debt increases


the funniest situation comes not in the web application space but in the mobile


space so you take an application and let's say an Android application you decompile it


and I've had this multiple times you realize okay this application has four


different packages which are doing root detection which should be doing root


detection but at the end of it the author is not called even one function out of the


Earth they are imported for something else that is available in those packages


but this feature was there but that was not called at all so the code rot that


keeps on increasing in your code base because of all the modules that you randomly just keep importing and then a


lot of times people don't even realize that hey I'm not using this module or I found a better alternative to remove


this module the whole aspect about reducing your dependencies on others where you don't


actually need to depend is something people keep missing nowadays could be a


factor of you need to build with speed could be a factor of I don't care if everything works all I need to do is add


more RAM into the system add more course and Cloud supports me to do that auto scaling and people don't care about it


it's it's not ideal I I feel like when a


lot of security folks talk about supply chain security we just talk about a software


composition analysis tool because it's something we can sell you yeah


and yeah and I feel like you've outlined that there's sufferers like the supply chain security


the idea of the whole thing is not just so a software compositional analysis


tool or SCA is super helpful does tons of stuff but also just teaching your


developers to remove unused dependencies and to work with your technical debt to reduce


it so you don't have so much security debt and you can't sell that so like a


lot of companies are like they can figure that out for themselves yes because the number of hours that you


spend on technical debt there is no direct impact in terms of a new feature getting added although it makes things


easier for you to work on a longer scale but the immediate benefit is not there


uh so yeah that's that's definitely there uh there is one thing which again


uh a reference uh I'll make so a friend of mine uh they run a company called


redundant labs they wrote an article about assets what is an asset so it was


part marketing part of knowledge based article but the idea was to take the


approach where asset does not necessarily means an IP address or a domain name


an asset for an organization is also the git repositories that you have is also


the cloud accounts that you have the S3 buckets that you have and that random


subdomain that was assigned to a developer to run a test environment for you that's also your asset


yeah the test box that they forgot about from 2014 and it's still floating around


there yep so yeah


so I was saying besides s bomb the other important and this is this a point that


everyone talks about no one knows how deep the rabbit hole goes is the asset


inventory you don't even know what you have so you can't even protect what you don't know


that is it's so important it's usually my first step when I get somewhere yeah


do you have an inventory and they're like well you know four years ago we had a co-op student that interviewed some


people and they made a Excel spreadsheet and I was like okay so you don't have one got it yep


so a fun story uh back from I think 2010 2012 time frame I was working with an


organization and uh I was doing blog monitoring and uh recording logs and


analyzing them and they had a massive project going on there where they were inventorying


everything so they had about 5 000 Assets in their environment at that time when we looked at the asset list and


we're like hey there seems to be something wrong in this and the thing that came up and we were


able to clean up that inventory to about 95 96 percent because we we had visibility


into multiple different logs and we used basic correlation techniques


if a semantic area is installed on your machine there's a very high chance you


are a Windows machine if you're marked as a Linux box I just need to double check once


back in those days Windows did not had 22 Port open on them so if there's a


port 22 open on a device there's a very high chance it is not Windows


so we would use this correlation on like a weekly basis and we were able to find


so many discrepancies like a machine that is supposed to have semantic AV installed because it's a Windows machine


does not have semantic AV installed because it is marked as a Linux box in the inventory so inventory when it was within the Lan


Network we were able to do this because we had that kind of a visibility but when you take the inventory out like for


example recycle CI hack the credentials that were stored inside


Circle CI which were used to access buckets and whatnot across your network


you have no visibility of what is there what is not there and how you are dealing with it


it makes me sad when tool makers get hacked because it's like but I I have so


much faith in you now I feel like some of my faith is broken because I I've


used Circle CI I like it yeah I mean it's a good tool I haven't really met a


CI CD I don't like though so uh have you played with Jenkins


self-hosted on a limited amount of RAM no


I've only done the cloud junk answer me yeah


so one of one of the things we were talking about before was that you're


more of an ox person than a Dev person and last year I wrote this article called like what is infrastructure


versus what is considered like custom apps or software or stuff that software developers work on and I I did it


because I was talking with a friend who's kind of getting into Tech and he's like wait so operating systems are


software but it's called infrastructure but when you make an app or you're one of those apps that you test that's


called software he's like isn't it all software and so I wrote an article about it and a lot of people read it and I was


surprised because I was like this is so basic no one will want it so tell us what does that mean like


being more into Ops than death okay so uh I'll take a slightly uh larger view


devops is the term that generally people use nowadays but the the traditional


format was there was a development team and there was an operations team so if you consider the older waterfall model


uh a business people would let's say your company is a software development or a software Product Company there'd be


business people would basically bring in the business or the idea that this is what we want to build it then that requirement goes to the


development team the development team is supposed to do all the coding and get the software working as they feel at


that it should work then they would give it out to another team which was called the QA team quality assurance team they


would do all sorts of testing on it and tell you hey this is wrong this might be problematic this is where things are bad


and whatnot and then they would come up with their own recommendations development team will fix those and then


it will move forward just a side note this QA team the entirety of infosec


under application sphere is kind of a part of this QA team the same team we


generally try to disabout we are like a smaller portion of that QA process yeah


and then once the software is built the development team would then say hey


I've got the software working in my environment we now need to make it


available for our customer so the difference is a software working for a


developer means on my laptop it's working I can open a web page I can see how the web application is working or I


can launch the software and it's working but when you say I want to make it available in production for all of our


customers that basically then means a separate set of processes where an


environment is going to be created which is optimized for your set of application


role and then tweaking would be done in the environment in such a way that the


application can work like for all of your customers let's say if your customers are 10 or 20 I don't need to


care much about it I can just start the software the base software let's say it's a PHP application I just need a web


server PHP on it maybe a database server and everything runs in a single box but


then let's say I have 50 000 customers I'll be like Yep this is not going to work this way I need one server which is


sitting in the front then another server which is the PHP server and then another server which is the database server and


then I need to optimize the database server so it can handle multiple connections because multiple people will


be accessing things I I need to maybe set up a load balancer on the front so that if 50 000 people parallely come in


they can be channelized and multiple servers can actually load balance everything


all this aspect of putting the whole uh software into an environment where it


can function and serve a large number of people is what is the operations aspect


now what has happened is as everyone kept growing there were differences


between how developers would approach a Thing versus how an Ops person would approach a thing like for example I was


talking about packages that was a major disagreement between Ops and devs devs would be like I want to use the latest


Ops should be like nah you're getting this version of Linux you're getting this package figure it out


so then you came a point where in in short the developers were given the


freedom that hey look at what the Alps is doing can you do something about it and the developers being developers they


came up with an approach where hey why not try and figure out how we can bring


the manual effort into automation into code so that's where the whole


infrastructure scored piece came into picture and the new term devops became


common now as security has it my understanding my usual crib about it security wants a


name of their own so they want their own name in the picture so they became devsecoffs the term that should never


have existed but it exists the dev and Ops Ops what two two


separate components which are now combined together and the reason for combining them together is to ease out


the whole disagreement between the two people rather make it a single person's job


this is very much beneficial for startup space it is very much not beneficial for a


corporate space on a bigger 20 000 people company you don't want one person doing end-to-end


work you want 10 people doing checks and balances doing cross-referencing with each other and getting the job done but


on a startup you don't want to hire 10 people you want one person do everything if the person can mop the floors and


bring you sales you would be more than happy so does that answers your question


it does it reminds me of um a funny story so uh sometimes companies will try


to recruit me to come work for them and I'm like oh I run we have purple so I'm


pretty busy um and uh so the so the CEO is telling me well you really want to join our


company because our product is made out of devops and you like devops and he's like your


products made out of devops and the CEO said yeah it's literally made out of devops and it's like devops isn't a


substance and the CEO insisted no it is so you should meet our CTO our chief


technology officer so I met with the the CTO and I said oh so your CEO was and I you


know like when you're friends with people that work at a company and they're just like just go through the interview and I was like no I'm pretty happy is what I'm doing they're like no


no no go so I meet with the CTO and the CTO is like oh no our product isn't made out of devops you're right it's not a


substance and he's like but we do devops and I was like oh okay what does devops


mean to you and he said well we can't afford two technical people so I have to


do the dev and I have to do the Ops so therefore our product is devops and I


was like I have to go now and to go but at least he knew it wasn't a substance


so that's good okay I want to ask you one more thing


because we're like because I'll talk to you all day just like I did last time we had a call


um okay so Android security so my Achilles heel of absec is mobile apps and you've


done a lot of Android security can you I don't know just tell us a little bit about that


all right so uh the major change that you have to do in your mentality when


when it comes to web apps versus mobile is that you have to take that whole idea


out of your head that there is a trusted end in web applications we have the web


server which we can Harden which we can protect and that becomes the trusted entity and then what we can do is hey


don't do anything client-side do everything server side because server side we know we can control


when it comes to mobile if your application is actually based on a client server architecture you can


rely on the server but if you rely too much on the server your


application is just basically taking input sending it out to the server and coming back which means


one the slowness to the bandwidth consumption it's not just that it's slow it's costing money to the person to


operate your app now the other thing that comes is one


the app developer cannot trust so you can't rely on the server and you


can't trust anything within the device itself you don't know if the user that is


running the application is a trustable user or someone who is out there to hack


your machine you can't trust whether the app is running in a secure environment you


might be in a rooted device you might be running in an environment where the idea is to cause damage to your product or


the idea is to uh not cause a harm to them in terms of not


let their money be used in your application in terms of in-app purchases


so most of the mobile apps have in-app purchases I remember the days around 2014 2015 time frame before Pokemon


became a big thing in-app purchase hacks were the most common hacks that were


there so you would create an app you would have the app with micro transactions built in the person would


basically install a software and then all of your purchases would be automatically authorized without


actually spending money funny enough it was the gaming industry and especially Pokemon go that kind of


made it a hard thing for everyone the whole route detections to SSL pinning to


basically in-app blocking in the whole apple and the Android ecosystem saying


hey we need to do something about in app hacks all of that came up somewhere around the


Pokemon go and the other tooling that came up other games that came up around that time so in Mobile security one


thing is you can't trust anything you are running your application in an hostile environment all the time


so anything that comes cannot be trusted you can't rely that a header that is


coming from the server is a trusted header it could have been faked in between so every in and out has to be validated


you can't trust any of it that's one major chunk the other thing which is


where I have a gripe with the infosec community in general what I'm seeing nowadays is there's a


handful of people who are actually doing anything around mobile apps themselves


what has happened is everyone has kind of figured out hey most of the apps have


some web server sitting in the back end so what we will do is we will not focus on the app itself because that's the


tricky bit we will start the app start burp or Zapped


check the traffic and then focus on just the apis there are lots of problems that are


there in the app itself that that are there in the device itself that no one


touches like I think just two three days back someone posted a bug in Samsung's


TTS talk to uh I mean a tap to talk or push to talk service or text to speech


service where by just one intent call you're


able to get into a routine or not exactly a root shell but a high


privileged system shell which then has higher privileges than what you have


now there's the other interesting aspect in your web applications or in your


server space or in your desktop space you have the concept of a super user you can become an administrator you can


become a root and then do a lot of things mobile devices are by default built in


such a way that when you are the owner of the device when you are running an application in the device none of the


applications are minimal number of applications are running with higher user privileges you are running application as a very


low level privileged user a recommendation which a lot of times people have given on Windows that hey


use a non administrative user as your default user so that's kind of the idea


that mobile devices have taken and they by default run in a non uh super user or


non-admin mode that then means that one if a user is


able to find a way to become root they'll be able to access a lot of things for example uh fun fun stuff uh


Google Authenticator which stores your two-factor Authentication


for a very long time and I don't know the current state because I stopped using Google


Authenticator at one point Google Authenticator would rely on the fact that the application data cannot be read


by other applications So within Google authenticators app data space there


would be an sqlite file if you are able to access that it has the website or wherever you have


accessed the token it has the token value it has the timestamp all those details are there in clear text they


were not even encrypting that and they had a very clear public issue around it we rely on the Android's native


capability to protect if you're running on rooted device you can't do anything about it so those sort of assumptions


are there some people make the Assumption on the side that hey it is protected we will assume it's protected


the other people make the Assumption hey everything is compromised and they end up creating a such a complex process


where everything slows down and they can't justify it but that's how they are


able to manage things like nowadays everything is there your cryptocurrency wallets are there your


banking applications are there your so in India UPI is a big thing so UPI is


like a payment transfer the whole Gateway concept is there and you can


transfer money from one account to another across Banks across the country within seconds so there are n number of


apps which rely on that platform and all of them are there in the device itself and that's where the complexity comes


that the since you can't trust anything you have to build checks and balances


the more checks and balances you build the more complex the app gets


it feels like a balancing act now it is it is it is definitely and uh then the


next aspect that comes is people have now started relying on other Frameworks so again the problem that hey uh Native


application is becoming very tricky for me so hey can I use something which works on iOS and on Android so there are


now middle Frameworks so there's another layer of dependency now so your application is built in the framework


which does the translation into native code and then the native code runs so


these middleware again adds their own layer of complexity so when we are dealing with mobile applications let's


say if I give an advice for a security researcher the mobile application space


is a bit more complex but the understanding that


everything is compromisable gives you the freedom to actually let


your threat model fly out and where we would stop that hey that this thing went


to the server now I can't do anything about this server here you can control everything even if this this data is


going to the server what is coming back from the server you can temper with it


and if the app reacts badly there is a problem


so that's that's for the researchers part for the developers and for the uh for say uh yeah from a developer's point


of view uh the more complexity you add into the application


the more difficult it is to protect it and in short like I said in the


beginning if you don't keep the data you don't have to worry about it so you need to keep revisiting in what


you are doing do you really need to do that and only do what you really need to


do you are anyways reducing your threat model


that was such a good summary oh my gosh this is awesome


thank you laughs I feel like I could talk to you all day


I know I'm not allowed to so I you've done a bunch of really cool open


source projects and I I was wondering if like just super briefly if you could just tell us about you know code Village


and Tamer platform and hacking art hacking archives of India


all right so I'll take a very quick story like Journey I started working


with Android around 2010 I realized the software installation because of all the


complexities and one is built in Java six one is in Java 8 whatever was way


too complex for people so I ended up creating a very basic virtual machine which had the tools rightly configured


and I realized a bunch of people needed it so I made it available publicly that's when I started the Tamer project


and that has kept going on so now we've reached a point where the new version is


about to be released in a couple of months and what we are doing with it is there is a virtual machine environment


there's a Debian package environment there is a emulator that is available for Android devices there is a package


repository for that emulator which will have like vulnerable much vulnerable applications or your hacking tools


pre-baked in and then there's a minimal tools uh sort


of knowledge base which will tell you what tool how you can use which particular tool so that's the Tamer


platform because I wanted to do something for myself I made it and made it available


for everyone the code Vigilant project yeah oh I just want to say so for people


that are listening it's Tamer like a lion tamer t-a-n-e-r


platform.com so go check that out yes tell us about the next one so Ben I


think around 2014 I was sort of in that zone where I knew how to write


applications I knew how to do the deployment and other bits I knew how to pen test applications but I was trying


to figure out how to do code reviews and I found another friend of mine who was in the same situation and we were


like yeah let's do something together so that's where code which didn't started and we took WordPress ecosystem as our


base so what we did was we were like I am not going to find a bug if I start looking at a code line by line


so we downloaded I think there was about 30 000 WordPress plugins at that point we downloaded all of them


so we had 30 000 WordPress plugins PHP code and we're like how does xss happens


so the simple logic was Eco and if there's a dollar underscore get that's


an exercise we wrote a regular expression for grep ran that over the entire Repository


and then manually analyzed all of them wow so we ended up finding about 300 odd


bugs in 2014 that was the first iteration that happened right now I'm running the second


iteration of code Vigilant uh I stopped doing that because I was like grep and


then manually doing everything is way too complicated way too problematic for me and then the other things kept


happening so I shift it new things that happened in 2021 sem


group came out [Music] came out I was like yeah this sounds


interesting and the day they released PHP capabilities PHP support into it I


was like okay take this start writing the rules and start finding bugs


2021 we ended up disclosing about 50 60 odd SQL injections


in WordPress plugins wow all of that is on codevision.com and


right now we are again running more code so now what we're doing is because we have a set process so we run sum grip


and we find bugs all of that gets piped into a vulnerability management system that's where we do the trial and hit and


validation of the bugs and then we start reporting them so that's that's a massive project that we keep on working


oh my gosh okay so everyone go to codevillageant.com


so it's c-o-d-e-v-i-g-i-l-a-n-t.com [Music]


Vigilant not Villages Vigilant thank you sorry


okay then uh I think around 2015 2016 uh


I started going out of India and started attending various conferences and this


this was a common thing that came up that people were not even aware who is actually from India but is actually


representing people outside whenever I would talk with people from infosec space in India they would be talking


about people who are outside of the country and they would be idolizing them or they would be saying hey they're


doing fantastic work no one does things in India is not true that's not true there's so


much stuff going on in India so I I started a hunt so I was like okay I need


to find out who are the good people in India and there should be a place where people can see what these people have


been doing so if you now go to hacking archives of India I think I've not updated 2021 and 2022 data in it but


till 2020 all the big conferences that used to happen


I basically went into all the listings and identified who all identify


themselves as Indians and I've then added the details in so


for each author or rather be hacker their name is there their social media


handles are there if they are making it available in public and then all the talks they have done is listed the fun


part is the top person who is in that list uh some uh


he has been active in infosex space since 1997. whoa


whoa and a lot of people don't know so this was my way of putting this out


so now whenever someone says hey do people in India do this I'm like go to


that website you see the whole list how can people not know like India has


such a huge technology industry it's right it's giant yeah it's giant but the


thing is uh people don't glorify themselves people don't keep bragging


that they've done this we've done that I at one side I feel like that's a good thing on the other side I sometimes feel


like yeah at least you should brag at least you should tell people that hey this is what I am this is what I do so


they're not doing it I'm doing it for them I'm just putting out this is what they're doing


do you feel like maybe that's cultural like lots of women are told like you should


be modest you should be humble so then I tell them oh if you're going to speak at this conference you should tell everyone


on social media and they're like well I don't want to break I'm like well the conference wants lots of people to come


and like they have you speaking because they think people will really enjoy your talk


and and if you don't tell people they can't come see it and they're


missing out and it's your fault you're not bragging you're informing them I'm going to speak at this conference I'm


super excited to be there I'm going to talk about XYZ come on out yeah I mean for myself


personally it has been a bigger hurdle that I have to cross myself I have been more of in that jinxed I'd


not jinx it by saying I'm going there and I'm excited so I would end up not


talking about it and then most of the time so this is this has been my uh kind


of the way I would have operated I would talk about whatever I've done not what


I'm about to do so that's where I it's a monkey block that I'm trying to slowly


come out of but yeah that's that's the thing if you're doing something publicly you need to at least talk about it if


not brag about it yes well then on that note I was going


to ask if there's anything that you want so people who are listening obviously you want more an ant this is clearly not


enough so tell them where they can see you again or learn more about you or follow you


all right so I am available on all social media platforms under the name


Anand Shri so that's a n a n t s h r i it's kind of a combination of my first


name and a bit of my surname and uh I am also available on fediverse which is the


whole Mastodon and the whole uh other softwares why are my email ID which is


anantree dot info and that's the email address that's my federal ID that's my


xmpp ID so however you want to connect talk I am more than happy I am


interested in talking with people who are planning to do something interesting who are facing challenges right now in


security and just want a year to listen to and maybe get some discussion going


on I won't say I'll be able to guide them I won't say I'll be able to Mentor them but yeah I can definitely be a


listening ear be a support system and maybe give my thoughts about how things


would work if I want to do it he also gives security training folks in


case you wanted to know yep oh my gosh this has been so great thank you Annette


you're awesome I'm so glad you said yes thank you thank you for coming on the


show do you have any last words of advice that you want to offer before I do the Whirlwind wrap-up okay


um I do things that I keep on saying one don't idolize people


everyone is doing their own Journey Don't idolize anyone you do your own journey and uh you be a


parallel partner to others have them get help from them the other thing is uh


it is okay to say you don't know what is not okay is after six months


still saying you don't know so say don't know but then go and read


go and study figure out what you don't know and then you know that


that is awesome thank you so much Annette thank you so much to our sponsor


the Diana initiative which is a conference that is in Vegas this summer in August right before Defcon starts


also um I have a small amount announcement I will have two things that I'm going to


be doing I'm going to be one of the Keynotes at OAS Global appstack in


Dublin Ireland next month and I'm going to be at RSA in San Francisco in April


I'm going to be giving a learning lab Workshop about how to put SAS into your


CI CD pipeline without losing all your friends and I'm going to use some grab just like you were talking about


um it's like how can you do this but like not have it run for 400 years and tick off all of our nice newly made Dev


friends so I'm Tanya Jacob this was the we had purple podcast and we had a nance on and


it was awesome thank you so much for being on the show and Aunt thanks a lot for inviting me


hi everyone thank you bye everyone