Understanding Security, and Some Best Practices
Understanding Security, and Some Best Practices
Understanding Security, and Some Best Practices
Objectives
-
Network level
-
Open APIs
Database level
-
Man-in-the-middle
API/development level
-
Javascript execution
SQL injection
System level
-
Edge cases missed out by the developer OR breaking a developers (incorrect) assumptions
Developer forgets to add an authentication/authorization check to an API endpoint
http://thenextweb.com/insider/2015/03/23/how-i-hacked-indias-biggest-startup/
Being able to execute code where it should not be allowed
Upload a file (PHP) instead of uploading an image
Going to that path where the image is stored: http://site.com/images/file.php will execute the source code of
the file instead of serving the image unless the directory or apache are configured to not allow execution of
any files inside the images directory
Being able to access unauthorized data
Production access was not supposed to be given to tester.
So tester credentials were not stored very secretly
Hacker got access to tester credentials, was able to access production database
Denial of service
An attack that aims to make a network or server software component unavailable to its users
Make so many requests to a site, that normal users cant reach the site
Social engineering, or even being stupid
We might have very secure systems. But if we are not careful about where keys/passwords/credentials are
stored, then there is no point.
Architecture of a webapp
Web server
Network
Browser
(web client)
request
Computer (host)
Vulnerabilities in
webapp source code
Vulnerabilities in OS,
or libraries being used
response
1. Reading traffic
between client and
server to capture data
2. DOS attacks on
network components
3. Man-in-the-middle
attacks
Vulnerability in:
1. webapp source code
2. The browser
Network security
-
Network security
API/Webapp development
-
API/Webapp development
-
Key takeaways
-