SlideShare a Scribd company logo
1 of 74
Download to read offline
Agenda
1. THE STATE OF API SECURITY
2. INTRODUCING SOFTWARE SECURITY AND OWASP
3. THE TOP 10 API SECURITY RISKS
4. IMPROVING SOFTWARE SECURITY
5. SUMMARY
Dr Eoin Woods ā€“ ā€œOwenā€
CTO at Endava since 2015
ā€¢ 1990 ā€“ 2003: Product companies in UK & US
ā€¢ 2003 ā€“ 2014: Capital Markets companies
Been trying to bridge ā€securityā€ and ā€œdevelopmentā€
for a long time
Author, speaker, community guy
www.eoinwoods.info / @eoinwoodz
CLOSE TO CLIENT
Denmark
Germany
Netherlands
United Kingdom
United States
NEARSHORE DELIVERY
European Union:
Romania and Bulgaria
Central European:
North Macedonia,
Moldova, and Serbia
Latin America:
Argentina, Colombia,
Uruguay, and Venezuela
7,464
AS OF DEC 31, 2020
GLOBAL EMPLOYEES
AS OF MAR 31, 2020
42 OFFICES // 39 CITIES // 19 COUNTRIES
Banking & Financial Services
Payments
Insurance
Investment Management
Telco & Media
Mobility
Healthtech
Retail & CPG
FOCUSED INDUSTRY EXPERTISE
THE STATE OF API SECURITY
1
Ā© 2021 EOIN WOODS // 20210101.1
Why Security Threats Matter
ā€¢ We need dependable systems even if things go wrong
ā€¢ Malice, Mistakes, Mischance
ā€¢ People are sometimes bad, careless or just unlucky
ā€¢ System security aims to mitigate these situations
TODAYā€™S THREAT LANDSCAPE
ā€¢ Internal applications exposed on the Internet
ā€¢ Introspection of APIs
ā€¢ Attacks being ā€weaponizedā€
10
10
Ā© 2021 EOIN WOODS // 20210310.1
DATA BREACHES 2005 - 2010
h t t p s : / / w w w . i n f o r m a t i o n i s b e a u t i f u l . n e t / v i s u a l i z a t i o n s / w o r l d s - b i g g e s t - d a t a - b r e a c h e s - h a c k s
11
11
Ā© 2021 EOIN WOODS // 20210310.1
DATA BREACHES 2011 - 2015
12
12
Ā© 2021 EOIN WOODS // 20210310.1
DATA BREACHES 2016-2020
Ā© 2021 EOIN WOODS // 20210101.1
Applications
23%
Crimeware
6%
Cyber-Espionage
3%
Denial of Service
62%
Other
3%
Payment Cards
2%
Stolen Assets
1%
The Importance of Application Security
Verizon 2019 Data Breach
Investigation report found
applications were the root cause of
about 25% of breaches
Microfocus analysis of Fortify on
Demand data found 93% of
applications had a security bug
Forrester 2019 survey suggests that
35% of security incidents had a
webapp as a root cause
https://enterprise.verizon.com/resources/reports/dbir
https://www.microfocus.com/en-us/assets/security/application-security-risk-report
https://www.forrester.com/report/The+State+Of+Application+Security+2019
Ā© 2021 EOIN WOODS // 20210101.1
What do we mean by APIs?
ā€¢ We know APIs are as old as software
ā€¢ any interface to allow the invocation of one
piece of software from another
For this talk weā€™ll focus on network APIs
ā€¢ Any network accessible way of executing
an operation on another piece of software
ā€¢ RPCs, RMIs, REST, GraphQL, ā€¦
ā€¢ In most cases weā€™re assuming a
ā€œREST styleā€ API ā€“ e.g. JSON over HTTP
INTRODUCING SOFTWARE SECURITY & OWASP
2
17
17
Ā© 2021 EOIN WOODS // 20210310.1
ASPECTS OF SECURITY PRACTICE
SECURE SYSTEM OPERATION
SECURE APPLICATION
IMPLEMENTATION
SECURE APPLICATION
DESIGN
SECURE INFRASTRUCTURE
DESIGN
SECURE INFRASTRUCTURE
DEPLOYMENT
Ā© 2021 EOIN WOODS // 20210101.1
Who are OWASP?
The Open Web Application Security Project
Ā§ Largely volunteer organisation, largely online
Exists to improve the state of software security
Ā§ Research, tools, guidance, standards
Ā§ Runs local chapters for face-to-face meetings
ā€œOWASP Top 10ā€ projects list top application security risks
Ā§ OWASP Top 10 Webapp Security Risks
Ā§ OWASP Top 10 Mobile Risks
Ā§ OWASP Top 10 API Risks
Ā© 2021 EOIN WOODS // 20210101.1
Other Key Security Organisations
MITRE Corporation
Ā§ Common Vulnerabilities and Exposures (CVE)
Ā§ Common Weaknesses Enumeration (CWE)
SAFECode
Ā§ Fundamental Practices for
Secure Software Development
Ā§ Training
There are a lot of others too (CPNI, CERT, CIS, ISSA, ISC2, ā€¦)
THE API TOP 10 SECURITY RISKS
3
Ā© 2021 EOIN WOODS // 20210101.1
How was the 2019 API List Produced?
Volunteer project of the OWASP organisation
Ā§ 3 authors, ~35 contributors
Ā§ https://www.owasp.org/index.php/OWASP_API_Security_Project
First version in 2019 so less mature than the WebApp Top 10
Ā§ Initial analysis of public data sets (e.g. vulnerabilities & bug bounty data)
Ā§ Penetration testing practitioners surveyed for their own ā€top 10sā€
Ā§ Top 10 resulted from a consensus between data and surveys
Ā§ Expert review provided refinement
Ā§ Some work to do to achieve full conceptual consistency and coherence
Future plan to extend a public call for data (like the WebApp set)
Ā© 2021 EOIN WOODS // 20210101.1
OWASP API Top 10 - 2019
#1 Broken Object Authorization
#2 Broken User Authentication
#3 Excessive Data Exposure
#4 Resources & Rate Limiting
#5 Broken Function Authorization
#6 Mass Assignment
#7 Security Misconfiguration
#8 Injection
#9 Improper Asset Management
#10 Insufficient Logging and
Monitoring
SOME MAY LOOK ā€œOBVIOUSā€ BUT APPEAR ON THE LIST YEAR AFTER
YEAR, BASED ON REAL VULNERABILITY DATA!
Ā© 2021 EOIN WOODS // 20210101.1
OWASP API Top 10 - 2019
#1 Broken Object Authorization
#2 Broken User Authentication
#3 Excessive Data Exposure
#4 Resources & Rate Limiting
#5 Broken Function Authorization
#6 Mass Assignment
#7 Security Misconfiguration
#8 Injection
#9 Improper Asset Management
#10 Insufficient Logging and
Monitoring
SOME MAY LOOK ā€œOBVIOUSā€ BUT APPEAR ON THE LIST YEAR AFTER
YEAR, BASED ON REAL VULNERABILITY DATA!
Some are closely related to the Webapp Top 10
A few surprising omissions (e.g. vulnerable components)
Ā© 2021 EOIN WOODS // 20210101.1
#1 Broken Object-Level Authorisation
ā€¢ After authentication many APIs donā€™t fully authorise access to resources
ā€¢ To make matters worse object ā€keysā€ are often predictable or accessible
$> wget https://aprovider.com/era/reports/1224459/monthly-latest
ā€¢ What would happen if you tried 1224470?
ā€¢ Hopefully the API would recognise that you werenā€™t authorised to view it
ā€¢ It turns out that many donā€™t!
ā€¢ Mitigations: enforce object authorisation for every request, well structured
API design making need for authorisation clearer, long random object
keys, testing
Exploitability 3
Prevalence 3
Detectability 2
Technical 3
26
26
Ā© 2021 EOIN WOODS // 20210310.1
#1 Broken Object-Level Authorisation
Example: Parler
Parler.com
servers
Parler App
https://medium.com/swlh/exposing-the-riot-parler-api-mistakes-9a4db4e905d5
https://github.com/d0nk/parler-tricks
https://github.com/daniel-centore/ParlerScraper
authorisation
point
attacker (@donk_enby)
no authorisation needed
authentication point
api.parler.com/v2/login/new
Exploitability 3
Prevalence 3
Detectability 2
Technical 3
27
27
Ā© 2021 EOIN WOODS // 20210310.1
#2 Broken User Authentication
Exploitability 3
Prevalence 2
Detectability 2
Technical 2
ā€¢ A range of possible problems rather than a single weakness
ā€¢ Allowing ā€œcredential stuffingā€
ā€¢ Accepting weak passwords => brute-force credential attacks
ā€¢ Revealing authentication information in the API structure (e.g. URL)
ā€¢ Missing or incorrect validation of authentication tokens (e.g. JWT)
ā€¢ Mistakes in protocol implementation (very easy to do !)
ā€¢ Example: see example #10
28
28
Ā© 2021 EOIN WOODS // 20210310.1
#2 Broken User Authentication
Exploitability 3
Prevalence 2
Detectability 2
Technical 2
ā€¢ Mitigations:
ā€¢ Multi-factor authentication for humans
ā€¢ Controls around login & credential recovery (e.g. password rules,
lockout periods after failures, captchas, rate limiting)
ā€¢ Use proven, tested authentication mechanisms
ā€¢ Take time to understand any sophisticated security technologies
ā€¢ Careful implementation with expert design and code review
ā€¢ Functional and penetration testing
29
29
Ā© 2021 EOIN WOODS // 20210310.1
#3 Excessive Data Exposure
Exploitability 3
Prevalence 2
Detectability 2
Technical 2
ā€¢ APIs often return more data that is required by the client
ā€¢ client-side filtering hides this from the user but not from software
ā€¢ API developers donā€™t always know what the client needs
ā€¢ or are trying to provide a more general solution to avoid rework
ā€¢ Sometimes an assumption that the client is ā€trustedā€
ā€¢ analogous problem to browser-side security in webapps
ā€¢ Problem often not obvious unless you know the data
ā€¢ automated tools arenā€™t going to spot this
30
30
Ā© 2021 EOIN WOODS // 20210310.1
#3 Excessive Data Exposure
Exploitability 3
Prevalence 2
Detectability 2
Technical 2
Example: Facebook Marketplace (2019)
https://www.7elements.co.uk/resources/blog/facebooks-burglary-shopping-list/
"location": {
"latitude": 54.9942235,
"longitude": -1.6041244,
"reverse_geocode": {
"city": ā€Newcastle upon Tyne",
"state": ā€England",
"postal_code": ""
},
"reverse_geocode_detailed": {
"city": ā€Newcastle upon Tyne",
"state": ā€England",
"postal_code": ā€NE2 2DS"
}
}
31
31
Ā© 2021 EOIN WOODS // 20210310.1
#3 Excessive Data Exposure
Exploitability 3
Prevalence 2
Detectability 2
Technical 2
ā€¢ Mitigations
ā€¢ Assume the client is untrusted when developing an API
ā€¢ Always use the ā€need to knowā€ principle when designing data types
ā€¢ needs understanding of the context of the API request
Ā§ Donā€™t return serialised forms of internal types
ā€¢ can leak information over time
ā€¢ use specifically designed return types with the right data items
Ā§ Identify sensitive information classes (e.g. PII, card data, ā€¦) and
have a specific review of any API call that accesses this information
32
32
Ā© 2021 EOIN WOODS // 20210310.1
#4 Resources and Rate Limiting
Exploitability 2
Prevalence 3
Detectability 3
Technical 2
ā€¢ Classical DoS attacks use network protocols (e.g. SYN flood)
ā€¢ APIs are also vulnerable to overload attacks
ā€¢ can be exacerbated by the right (excessive) parameter values
ā€¢ e.g. parallel upload of multi-GB binary files
ā€¢ Two dimensions
ā€¢ Number of parallel requests allowed
ā€¢ Quantity of resources each request can be allocated
ā€¢ Mitigations:
ā€¢ Rate limiting at API level (spike limit, limit in time interval)
ā€¢ Rate limiting at session or user level (ditto)
ā€¢ Hard limits on parameter values and sizes
ā€¢ Runtime limits on memory, CPU, file descriptors, ā€¦
33
33
Ā© 2021 EOIN WOODS // 20210310.1
#4 Resources and Rate Limiting
Exploitability 2
Prevalence 3
Detectability 3
Technical 2
$> wget https://svc.com/inv/item?name=%22%2a%22&maxsize=9999999
ā€¢ Hopefully this gets stopped immediately by a validation check
ā€¢ Or overridden within the API by an internal maximum
ā€¢ Unfortunately, quite a few APIs donā€™t always do this
ā€¢ Result is likely to be a large database result set and a huge
amount of memory used => a runtime failure
34
34
Ā© 2021 EOIN WOODS // 20210310.1
#5 Broken Function-Level Authorisation
Exploitability 3
Prevalence 2
Detectability 1
Technical 2
ā€¢ Incomplete or incorrect authorisation checks when API called
ā€¢ like #1 (object-level authorisation) a range of possible problems
ā€¢ Rarely totally missing, usually ā€œholesā€ in the implementation
ā€¢ Frequently a result of a complex security model or API design
ā€¢ ā€œcorrectā€ is complex, given interaction of authentication, roles,
sensitivity levels, ā€¦
ā€¢ Can be due to complexity of application or 3rd party component
ā€¢ e.g. declarative security rules can often contain subtle problems
ā€¢ e.g. ā€œfalling throughā€ logic which ends up providing access by mistake
35
35
Ā© 2021 EOIN WOODS // 20210310.1
#5 Broken Function-Level Authorisation
Exploitability 3
Prevalence 2
Detectability 1
Technical 2
Example: NewRelic ā€œdelete filtersetā€ vulnerability
To create a NR ā€œfilter setā€ you call
POST https://infrastructure.newrelic.com/accounts/12345/settings/filterSets
ā€¦ passing a parameter block defining the new filter set.
It turns out that calling ā€¦
DELETE https://infrastructure.newrelic.com/accounts/12345/settings/filterSets
ā€¦ could delete the filter set without checking the user is authorised to do so
https://www.cloudvector.com/owasp-api-security-top-10-
broken-function-level-authorization/
36
36
Ā© 2021 EOIN WOODS // 20210310.1
#5 Broken Function-Level Authorisation
Exploitability 3
Prevalence 2
Detectability 1
Technical 2
ā€¢ Mitigations
ā€¢ Simple as possible in design and implementation
ā€¢ Highlight sensitive operations for specific review
ā€¢ Thorough automated functional testing of authorisation
ā€¢ Take time to understand sophisticated security technology
ā€¢ Donā€™t invent your own security technology (again)
ā€¢ Always default to ā€œno accessā€
38
38
Ā© 2021 EOIN WOODS // 20210310.1
#6 Mass Assignment
Exploitability 2
Prevalence 2
Detectability 2
Technical 2
ā€¢ Different fields in a data entity often have different sensitivities
ā€¢ We often use libraries to ā€œbindā€ data elements to and from API
parameter sets
ā€¢ var item = JSON.parse(json_str); // JavaScript
ā€¢ // Java with Jackson
Trade t = mapr.readObject(jsonStr, Trade.class);
ā€¢ Client could add ā€œrogueā€ fields to overwrite sensitive state
39
39
Ā© 2021 EOIN WOODS // 20210310.1
#6 Mass Assignment
Example: the Harbor privilege escalation vulnerability
Harbor: ā€Our mission is to be the trusted cloud native repository for Kubernetesā€
Unfortunately, their product contained a privilege escalation vulnerability:
POST /api/users HTTP/1.1
{
ā€œusernameā€:ā€testā€,
ā€emailā€:ā€test123@gmail.comā€,
ā€realnameā€:ā€no nameā€,
ā€passwordā€:ā€password1u0021ā€³,
ā€commentā€:null,
ā€œhas_admin_roleā€:ā€trueā€
}
ā€¦ due to a JSON mass assignment operation in JavaScript!
https://unit42.paloaltonetworks.com/critical-vulnerability-in-harbor-
enables-privilege-escalation-from-zero-to-admin-cve-2019-16097/
Exploitability 2
Prevalence 2
Detectability 2
Technical 2
40
40
Ā© 2021 EOIN WOODS // 20210310.1
#6 Mass Assignment - Example
Simple filtering example:
function filterProperties(propList, obj) {
for (var p in obj) {
if (!obj.hasOwnProperty(p)) continue ;
if (propList.indexOf(p) === -1) {
delete obj[p];
}
}
}
var fieldList = [ā€˜nameā€™, ā€˜cpidā€™, ā€˜priceā€™, // ā€¦ ];
filterProperties(fieldList, accountItem)
{
name: ā€˜My Customer',
cpid: '1234234',
price: 12.54,
agentNotes:
'ZnVuY3Rpb24gZmlsdGVyUHJvcGVy
dGllcyhwcm9wTGlzdCwgb2JqKSB7C
iAgZm9yICh2YXIgcCBpbiBvYmopIH
sKICAgIGlmICghb2JqLmhhc093blB
yb3BlcnR5KHApKSBjb250aW51ZTsK
ICAgIGlmIChwcm9wTGlzdC5pbmRle
E9mKHApID09PSAtMSkgewogICAgIC
BkZWxldGUgb2JqW3BdOwogICAgfQo
gIH0KfQ=='
}
{
name: ā€˜My Customer',
cpid: '1234234',
price: 12.54,
}
41
41
Ā© 2021 EOIN WOODS // 20210310.1
#6 Mass Assignment
Exploitability 2
Prevalence 2
Detectability 2
Technical 2
ā€¢ Mitigation:
ā€¢ Be careful when using automatic data binding libraries
ā€¢ Use specific types for API definition and explicit code to extract
values and apply them to system state
ā€¢ Have ā€whitelistsā€ for fields that can be updated by a client
42
42
Ā© 2021 EOIN WOODS // 20210310.1
#7 Security Misconfiguration
Exploitability 3
Prevalence 3
Detectability 3
Technical 2
ā€¢ Again a class of problem rather than a single cause
ā€¢ Missing security patches
ā€¢ Incorrect authorisation configuration
ā€¢ Unnecessary features enabled
ā€¢ Security enforcement (e.g. requiring TLS) incorrect or missing
ā€¢ Exposing sensitive information (e.g. 500 error stack traces!)
ā€¢ Mitigation
ā€¢ Testing (automated security tests, manual penetration testing)
ā€¢ Automated configuration and deployment for consistency
ā€¢ Expert review and code scanning throughout projects
ā€¢ Careful error handling
43
43
Ā© 2021 EOIN WOODS // 20210310.1
#7 Security Misconfiguration
Exploitability 3
Prevalence 3
Detectability 3
Technical 2
Example: Algolia Search
$> curl https://myappid-dsn.algolia.net/1/keys/APIKEY?x-algolia-
application-id=myappid&x-algolia-api-key=a7hw7gsh273hrk382
{
ā€valueā€: ā€˜.....ā€™,
ā€œcreatedAtā€: 15173453234,
ā€œaclā€ : [ā€œsearchā€, ā€œaddObjectā€, ā€¦ ā€editSettingsā€,
ā€œlistIndexesā€, ā€¦]
}
It turns out that many people accidentally use their admin API key for client API calls
because of the way that Algoliaā€™s documentation is written.
https://www.secjuice.com/api-misconfiguration-data-breach
44
44
Ā© 2021 EOIN WOODS // 20210310.1
#7 Security Misconfiguration
Exploitability 3
Prevalence 3
Detectability 3
Technical 2
Example: Capital One
https://krebsonsecurity.com/tag/capital-one-breach
Capital One VPC
M
o
d
S
e
c
u
r
i
t
y
AWS S3
Bucket
AWS EC2 VM
$ > a w s i a m l i s t - r o l e s
$ > ā€¦
P E % { R E Q B O D Y _ P R O C E S S O R _ E R R O R } , 
B Q % { M U L T I P A R T _ B O U N D A R Y _ Q U O T E D } , 
B W % { M U L T I P A R T _ B O U N D A R Y _ W H I T E S P A C E } ,

D B % { M U L T I P A R T _ D A T A _ B E F O R E } , 
D A % { M U L T I P A R T _ D A T A _ A F T E R } , 
H F % { M U L T I P A R T _ H E A D E R _ F O L D I N G } , 
L F % { M U L T I P A R T _ L F _ L I N E } , 
M o d S e c u r i t y C o n f i g u r a t i o n
ā€¢ M i s t a k e i n M o d S e c u r i t y a l l o w e d a t t a c k e r i n t o V M
ā€¢ I A M m i s c o n f i g u r a t i o n a l l o w e d a c c e s s t o S 3
# ModSecurity (default) configuration
SecRuleEngine DetectionOnly
SecRequestBodyAccess On
SecRule REQUEST_HEADERS:Content-Type "(?:application(?:/soap+|/)|text/)xml" 
"id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"
SecRule REQUEST_HEADERS:Content-Type "application/json" 
"id:'200001',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON"
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecRequestBodyLimitAction Reject
SecRule REQBODY_ERROR "!@eq 0" 
"id:'200002', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request body.ā€™,
logdata:'%{reqbody_error_msg}',severity:2"
SecRule MULTIPART_STRICT_ERROR "!@eq 0" 
"id:'200003',phase:2,t:none,log,deny,status:400, 
msg:'Multipart request body failed strict validation: 
PE %{REQBODY_PROCESSOR_ERROR}, 
BQ %{MULTIPART_BOUNDARY_QUOTED}, 
BW %{MULTIPART_BOUNDARY_WHITESPACE}, 
DB %{MULTIPART_DATA_BEFORE}, 
DA %{MULTIPART_DATA_AFTER}, 
HF %{MULTIPART_HEADER_FOLDING}, 
LF %{MULTIPART_LF_LINE}, 
SM %{MULTIPART_MISSING_SEMICOLON}, 
IQ %{MULTIPART_INVALID_QUOTING}, 
IP %{MULTIPART_INVALID_PART}, 
IH %{MULTIPART_INVALID_HEADER_FOLDING}, 
FL %{MULTIPART_FILE_LIMIT_EXCEEDED}'"
SecRule MULTIPART_UNMATCHED_BOUNDARY "@eq 1" 
"id:'200004',phase:2,t:none,log,deny,msg:'Multipart parser detected a possible unmatched boundary.'"
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000
SecRule TX:/^MSC_/ "!@streq 0" 
"id:'200005',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'"
45
45
Ā© 2021 EOIN WOODS // 20210310.1
#8 Injection
Exploitability 3
Prevalence 2
Detectability 3
Technical 3
ā€¢ Our old friend from the Webapp Top 10!
ā€¢ Dangerous in APIs as well as in webapps
ā€¢ Anything interpreted can be injected:
ā€¢ Database query parameters
ā€¢ Command line arguments
ā€¢ Configuration items that are parsed and processed
46
46
Ā© 2021 EOIN WOODS // 20210310.1
#8 Injection
Exploitability 3
Prevalence 2
Detectability 3
Technical 3
Example: check parameters and avoid direct SQL
String tradeId = req.path().param(ā€œtradeidā€);
ESAPI.validator().getValidInput(ā€œtradeIdā€, tradeId,
ā€œHTTPParameterValueā€, 12, false, true);
String query =
ā€œselect id, ccy, value, ā€¦ from trade where id=?ā€ ;
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, tradeId);
ResultSet results = ps.executeQuery() ;
47
47
Ā© 2021 EOIN WOODS // 20210310.1
#8 Injection
Exploitability 3
Prevalence 2
Detectability 3
Technical 3
ā€¢ Mitigation:
ā€¢ Validate and sanitise all data entering the system
ā€¢ Use a single, well-tested, validation library to make validation reliable
and straightforward (ā€œeasy thingā€ == ā€œwhat is actually doneā€)
ā€¢ Where possible use APIs rather than interpreters (e.g. bind
parameters for ā€œpreparedā€ database queries not query strings)
ā€¢ Sanity check result payloads (e.g. maximum size checks)
ā€¢ Strongly type API interfaces and enforce types strictly
48
48
Ā© 2021 EOIN WOODS // 20210310.1
#9 Improper Asset Management
Exploitability 3
Prevalence 3
Detectability 2
Technical 2
ā€¢ Many application estates today are not well understood
ā€¢ Old applications can run for years with little attention
ā€¢ Will contain vulnerabilities in old software components
ā€¢ Often skipped during software security remediation work
ā€¢ Can have deliberate or accidental vulnerabilities themselves
ā€¢ Compromises may not be noticed
ā€¢ Sometimes important applications have old neglected features
ā€¢ Old data interfaces left in place for backwards compatibility
ā€¢ Unsupported opensource components to avoid regression testing
ā€¢ Insecure mechanisms (e.g. FTP file transfer) to avoid touching other
old applications
49
49
Ā© 2021 EOIN WOODS // 20210310.1
#9 Improper Asset Management
Exploitability 3
Prevalence 3
Detectability 2
Technical 2
ā€¢ New applications can also introduce problems if not understood
ā€¢ Microservices introduce many moving parts with network interfaces
ā€¢ Cloud allows application teams to deploy new applications and
infrastructure quickly and independently ā€¦ and perhaps insecurely
ā€¢ Rate of change in modern application estates can make keeping
track of the estate difficult if not automated ā€¦ tomorrowā€™s legacy
50
50
Ā© 2021 EOIN WOODS // 20210310.1
#9 Improper Asset Management
Exploitability 3
Prevalence 3
Detectability 2
Technical 2
Example: application evolution
Monolithic Core
Ā«RESTĀ»
Microservice 1
Ā«RESTĀ»
Microservice 2
Ā«RESTĀ»
Ā«JSON/JMSĀ»
Ā«XML/MQĀ»
Ā«SOAP/HTTPĀ»
Todayā€™s main interfaces
Yesterdayā€™s legacy
Ā© 2021 EOIN WOODS // 20210101.1
#9 Improper Asset Management
Example: the scale problem
Large organisations have
thousands of applications,
servers, services, message
queues, databases, ā€¦
ā€¦ all constantly changing
Exploitability 3
Prevalence 3
Detectability 2
Technical 2
52
52
Ā© 2021 EOIN WOODS // 20210310.1
#9 Improper Asset Management
Exploitability 3
Prevalence 3
Detectability 2
Technical 2
ā€¢ Mitigation:
ā€¢ There are no easy mitigations once in this situation!
ā€¢ Easy to say, but avoidance is the most effective mitigation
ā€¢ Finding these applications and features is often the most difficult part
ā€¢ Network scanning can be useful to find unexpected end points
ā€¢ Once found, investing in modernisation, improving security or
retirement are all options
ā€¢ Automate maintenance of application and infrastructure inventories
wherever possible
53
53
Ā© 2021 EOIN WOODS // 20210310.1
#10 Insufficient Logging & Monitoring
Exploitability 2
Prevalence 3
Detectability 1
Technical 2
ā€¢ Another familiar ā€œfriendā€ from the Webapp Top 10
ā€¢ Logging and monitoring rarely comes ā€for freeā€ with APIs
ā€¢ therefore it often gets forgotten or deprioritised
ā€¢ Poor logging and monitoring technology, implementation or
practices means it is difficult to detect and respond to
suspicious activity
ā€¢ e.g. you find that an API credential has been compromised for
several days ā€¦ do you know what that credential has been used for
while compromised?
54
54
Ā© 2021 EOIN WOODS // 20210310.1
#10 Insufficient Logging & Monitoring
Exploitability 2
Prevalence 3
Detectability 1
Technical 2
ā€¢ Example: the need for monitoring
Webapp
automated credential
stuffing attack
database access through
injection attack
exfiltration of bulk data
Monitoring could alert to all three
aspects of the attack:
ā€¢ login failure monitoring
ā€¢ excessive database result set
ā€¢ unusual large outbound transfer
55
55
Ā© 2021 EOIN WOODS // 20210310.1
#10 Insufficient Logging & Monitoring
Exploitability 2
Prevalence 3
Detectability 1
Technical 2
ā€¢ Mitigation ā€¦ all well known solutions
ā€¢ Log all security sensitive events (authentication activity, access
failures, validation failures, ā€¦)
ā€¢ Keep logs accessible but secure
ā€¢ Use SEIM systems to aggregate the logs from different sources
ā€¢ Build awareness of ā€normalā€ and create dashboards for security
related metrics to allow ā€abnormalā€ to be spotted
Ā© 2021 EOIN WOODS // 20210101.1
Summary of Vulnerability Types
ā€¢ Injection
ā€¢ SQL, configuration, operating system command, ā€¦
ā€¢ Inadequate validation
ā€¢ Of authentication to confirm identity of caller
ā€¢ Of authorisation to access resources
ā€¢ Accepting unexpected inputs (e.g. unnecessary fields,
excessive parameter lengths)
ā€¢ Implementation mistakes
ā€¢ Returning too much data
ā€¢ Incomplete or faulty authorisation checks
ā€¢ Blindly binding data structures to inputs
ā€¢ Environment problems
ā€¢ Need for rate limiting
ā€¢ Monitoring and logging
ā€¢ Careful configuration of the entire stack
IMPROVING SOFTWARE SECURITY
4
59
59
Ā© 2021 EOIN WOODS // 20210310.1
Security
Awareness
Security
Design
Secure
Implementation
Security
Testing
Some Key Aspects of Software Security for Teams
Entire team
Security requirements
Threat modelling
Security design
Secure design
Secure implementation
Functional security tests
Code reviews
SCA
Static analysis
Dynamic testing (DAST)
Penetration testing
60
60
Ā© 2021 EOIN WOODS // 20210310.1
Securing an API
API
FUNCTIONS
A
U
T
H
O
R
I
S
A
T
I
O
N
(
A
C
C
E
S
S
C
O
N
T
R
O
L
)
A
U
D
I
T
I
N
G
A
U
T
H
E
N
T
I
C
A
T
I
O
N
R
A
T
E
L
I
M
I
T
I
N
G
Volume Identity Records Access
61
61
Ā© 2021 EOIN WOODS // 20210310.1
auth code
Over TLS
A
W
S
A
P
I
G
a
t
e
w
a
y
rate
limiting
A
P
I
F
u
n
c
t
i
o
n
Securing an API - Example
AWS Java + Spring process
A
u
d
i
t
L
o
g
g
i
n
g
F
i
l
t
e
r
AWS Cloud
Watch
centralised
logging
A
u
t
h
o
r
i
s
a
t
i
o
n
P
r
o
x
y
application
authorisation
check
API
Client
Okta OAuth2 Service
(Authentication &
Authorization Service)
login for
auth code
A
u
t
h
e
n
t
i
c
a
t
i
o
n
F
i
l
t
e
r
authenticate w/auth code to
get access token
A
u
t
h
o
r
i
s
a
t
i
o
n
F
i
l
t
e
r
API access check
via token
62
62
Ā© 2021 EOIN WOODS // 20210310.1
Lots of Choice When Securing an API
A
u
t
h
e
n
t
i
c
a
t
i
o
n
&
A
u
t
h
o
r
i
s
a
t
i
o
n
Local implementation (users,
passwords, groups, ACLs)
Cloud services
(AWS Cognito, Azure AD, ā€¦)
3rd party services
(Auth0, Okta, ā€¦)
Enterprise products
(IAM vendors)
Open source
(Keycloak, Gluu, ā€¦)
A
u
d
i
t
i
n
g
Plain files
OS logging
Database records
Cloud services
(CloudWatch, Azure Monitor)
SIEM (Splunk, Rapid 7, ā€¦)
R
a
t
e
L
i
m
i
t
i
n
g
Cloud API gateways
Enterprise API gateways
Reverse proxies
Open source middleware
Ā© 2021 EOIN WOODS // 20210101.1
Key Tactics
ā€¢ Donā€™t trust clients
ā€¢ authentication, authorisation, validation
ā€¢ Identify ā€œinterpretersā€ and sanitise inputs, use bind variables, ā€¦
ā€¢ command lines, database queries, configuration data, ā€¦
ā€¢ Protect valuable information at rest and in transit
ā€¢ encryption
ā€¢ Simplicity
ā€¢ Avoid the special cases, make sure the system is understood
ā€¢ Standardise and Automate
ā€¢ consistency, correctness, avoid configuration errors
Ā© 2021 EOIN WOODS // 20210101.1
Tactic: Donā€™t Trust Clients
ā€¢ Be wary of everything sent by
a client
ā€¢ Assume possible tampering
ā€¢ TLS connections
ā€¢ short lived sessions
ā€¢ reauthenticate humans,
recheck tokens before
sensitive operations
ā€¢ use opaque tokens for IDs
ā€¢ validate everything
Ā© 2021 EOIN WOODS // 20210101.1
Tactic: Watch Out for Injection
ā€¢ Many things are interpreters
ā€¢ Operating system shells
ā€¢ Database query languages
ā€¢ Configuration files
ā€¢ Parsers
ā€¢ Assume someone will notice!
ā€¢ Avoid using direct string manipulation
ā€¢ libraries and bind variables
ā€¢ Sanitise strings passed to interpreters
ā€¢ 3rd party library (e.g. OWASP)
ā€¢ Reject very long strings
Ā© 2021 EOIN WOODS // 20210101.1
Tactic: Protect Information
ā€¢ Assume perimeter breach
ā€¢ defence in depth
ā€¢ encrypt everything possible
ā€¢ But there are tradeoffs
ā€¢ slows everything down
ā€¢ querying is difficult
ā€¢ Message routing on sensitive fields
ā€¢ Manage and rotate keys
ā€¢ Complexity added to restore
Ā© 2021 EOIN WOODS // 20210101.1
Tactic: Simplify and Standardise
ā€¢ Complexity is the enemy of security
ā€¢ ā€œyou canā€™t secure what you donā€™t understandā€
ā€¢ special cases often forgotten
ā€¢ Simplify, standardise, automate
ā€¢ Simple things easier to check & secure
ā€¢ Standardisation removes a lot of special
cases
ā€¢ Automation removes human inconsistencies
avoiding one area of risk
Ā© 2021 EOIN WOODS // 20210101.1
A Few Words on Tools
ā€¢ Security tools are obviously useful
ā€¢ Many types exist from simple to very complex
ā€¢ Need make sure people donā€™t view tools as an alternative to thinking!
ā€¢ Main groups
ā€¢ Specialist security scanning tools
ā€¢ Interactive tools for penetration and exploratory testing
ā€¢ Software composition analysis (open source scanning)
Ā© 2021 EOIN WOODS // 20210101.1
Automated Security Testing
ā€¢ Automated tools are useful for
some types of security problem
ā€¢ SAST ā€“ static scanning
ā€¢ DAST ā€“ simulated attacks
ā€¢ IAST ā€“ agent-based monitoring
ā€¢ RASP ā€“ runtime security monitoring
ā€¢ Challenges are false positives and
effort to mitigate if used late
ā€¢ Danger of over-reliance
Ā© 2021 EOIN WOODS // 20210101.1
Postman
ā€¢ API development & testing suite
ā€¢ Popular for functional and security
API testing
ā€¢ Desktop tool with link to cloud
service (with a web UI)
ā€¢ Interactive or command line (via
ā€Newmanā€ runner extension)
https://www.postman.com/
Ā© 2021 EOIN WOODS // 20210101.1
BurpSuite
ā€¢ Proxy, scanning, pentest tool
ā€¢ Very capable free version
ā€¢ Fuller commercial version
available
ā€¢ Inspect traffic, manipulate
headers and content, replay,
spider, ā€¦
ā€¢ Made in Knutsford!
http://portswigger.net/burp
Ā© 2021 EOIN WOODS // 20210101.1
Metasploit
ā€¢ The pentesterā€™s ā€standardā€ tool
ā€¢ Very wide range of capabilities
ā€¢ Commercial version available
https://www.metasploit.com
HTTPS://WWW.METASPLOIT.COM
Ā© 2021 EOIN WOODS // 20210101.1
Open Source Scanning
ā€¢ Example commercial tools for OSS
security, audit & compliance:
ā€¢ BlackDuck
ā€¢ Whitesource
ā€¢ Sonatype LCM
ā€¢ Snyk
ā€¢ Scan builds identifying open source
ā€¢ Checks for known vulnerabilities
ā€¢ Alerts and dashboards for monitoring
www.blackduck.com
www.whitesourcesoftware.com
www.sonatype.com/nexus-lifecycle
www.snyk.io
SUMMARY
5
Ā© 2021 EOIN WOODS // 20210101.1
OWASP API Top 10 - 2019
#1 Broken Object Authorization
#2 Broken User Authentication
#3 Excessive Data Exposure
#4 Resources & Rate Limiting
#5 Broken Function Authorization
#6 Mass Assignment
#7 Security Misconfiguration
#8 Injection
#9 Improper Asset Management
#10 Insufficient Logging and
Monitoring
SOME MAY LOOK ā€œOBVIOUSā€ BUT APPEAR ON THE LIST YEAR AFTER
YEAR, BASED ON REAL VULNERABILITY DATA!
77
77
Ā© 2021 EOIN WOODS // 20210310.1
Key Aspects of API Security
Preventing Injection
ā€¢ SQL, configuration, commands, ...
Validation
ā€¢ inputs, outputs, authentication, authorisation
Implementation
ā€¢ automatic binding, too much data, faulty checking
Environment
ā€¢ rate limiting, monitoring, logging, configuration
78
78
Ā© 2021 EOIN WOODS // 20210310.1
Elements of Securing an API
API Function
Authorisation
Authentication
Rate Limiting
Auditing
79
79
Ā© 2021 EOIN WOODS // 20210310.1
Useful Tactics for API Security
Donā€™t trust clients
Watch out for injection
Protect information
Simplify and standardise
80
80
Ā© 2021 EOIN WOODS // 20210310.1
Books
API Security Agenda: Top Risks and Improvements

More Related Content

What's hot

The Subversive Six: Hidden Risk Points in ICS
The Subversive Six: Hidden Risk Points in ICSThe Subversive Six: Hidden Risk Points in ICS
The Subversive Six: Hidden Risk Points in ICSTripwire
Ā 
Jason Kent - AppSec Without Additional Tools
Jason Kent - AppSec Without Additional ToolsJason Kent - AppSec Without Additional Tools
Jason Kent - AppSec Without Additional Toolscentralohioissa
Ā 
Ten Security Product Categories You've Probably Never Heard Of
Ten Security Product Categories You've Probably Never Heard OfTen Security Product Categories You've Probably Never Heard Of
Ten Security Product Categories You've Probably Never Heard OfAdrian Sanabria
Ā 
Alexander Antukh. (In)security of Appliances
Alexander Antukh. (In)security of AppliancesAlexander Antukh. (In)security of Appliances
Alexander Antukh. (In)security of AppliancesPositive Hack Days
Ā 
451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...
451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...
451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...Adrian Sanabria
Ā 
A New Security Management Approach for Agile Environments
A New Security Management Approach for Agile EnvironmentsA New Security Management Approach for Agile Environments
A New Security Management Approach for Agile EnvironmentsPECB
Ā 
Chris Haley - Understanding Attackers' Use of Covert Communications
Chris Haley - Understanding Attackers' Use of Covert CommunicationsChris Haley - Understanding Attackers' Use of Covert Communications
Chris Haley - Understanding Attackers' Use of Covert Communicationscentralohioissa
Ā 
Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)
Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)
Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)Shah Sheikh
Ā 
Accelerating OT - A Case Study
Accelerating OT - A Case StudyAccelerating OT - A Case Study
Accelerating OT - A Case StudyDigital Bond
Ā 
Owasp Proactive Controls for Web developer
Owasp  Proactive Controls for Web developerOwasp  Proactive Controls for Web developer
Owasp Proactive Controls for Web developerSameer Paradia
Ā 
The 1st Step to Zero Trust: Asset Management for Cybersecurity
The 1st Step to Zero Trust: Asset Management for CybersecurityThe 1st Step to Zero Trust: Asset Management for Cybersecurity
The 1st Step to Zero Trust: Asset Management for Cybersecuritynathan-axonius
Ā 
RSAC 2016: CISO's guide to Startups
RSAC 2016: CISO's guide to StartupsRSAC 2016: CISO's guide to Startups
RSAC 2016: CISO's guide to StartupsAdrian Sanabria
Ā 
Oliver Schuermann - Integrated Software in Networking - the Mystery of SDN
Oliver Schuermann - Integrated Software in Networking - the Mystery of SDNOliver Schuermann - Integrated Software in Networking - the Mystery of SDN
Oliver Schuermann - Integrated Software in Networking - the Mystery of SDNcentralohioissa
Ā 
Why does security matter for devops by Caroline Wong
Why does security matter for devops by Caroline WongWhy does security matter for devops by Caroline Wong
Why does security matter for devops by Caroline WongDevSecCon
Ā 
Lisa Guess - Embracing the Cloud
Lisa Guess - Embracing the CloudLisa Guess - Embracing the Cloud
Lisa Guess - Embracing the Cloudcentralohioissa
Ā 
Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...
Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...
Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...centralohioissa
Ā 
Improve Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USMImprove Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USMAlienVault
Ā 
451 and Cylance - The Roadmap To Better Endpoint Security
451 and Cylance - The Roadmap To Better Endpoint Security451 and Cylance - The Roadmap To Better Endpoint Security
451 and Cylance - The Roadmap To Better Endpoint SecurityAdrian Sanabria
Ā 
DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...
DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...
DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...Shah Sheikh
Ā 
SĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIERO
SĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIEROSĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIERO
SĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIEROTelecomValley
Ā 

What's hot (20)

The Subversive Six: Hidden Risk Points in ICS
The Subversive Six: Hidden Risk Points in ICSThe Subversive Six: Hidden Risk Points in ICS
The Subversive Six: Hidden Risk Points in ICS
Ā 
Jason Kent - AppSec Without Additional Tools
Jason Kent - AppSec Without Additional ToolsJason Kent - AppSec Without Additional Tools
Jason Kent - AppSec Without Additional Tools
Ā 
Ten Security Product Categories You've Probably Never Heard Of
Ten Security Product Categories You've Probably Never Heard OfTen Security Product Categories You've Probably Never Heard Of
Ten Security Product Categories You've Probably Never Heard Of
Ā 
Alexander Antukh. (In)security of Appliances
Alexander Antukh. (In)security of AppliancesAlexander Antukh. (In)security of Appliances
Alexander Antukh. (In)security of Appliances
Ā 
451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...
451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...
451 and Endgame - Zero breach Tolerance: Earliest protection across the attac...
Ā 
A New Security Management Approach for Agile Environments
A New Security Management Approach for Agile EnvironmentsA New Security Management Approach for Agile Environments
A New Security Management Approach for Agile Environments
Ā 
Chris Haley - Understanding Attackers' Use of Covert Communications
Chris Haley - Understanding Attackers' Use of Covert CommunicationsChris Haley - Understanding Attackers' Use of Covert Communications
Chris Haley - Understanding Attackers' Use of Covert Communications
Ā 
Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)
Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)
Cyber Security 101 - Back to Basics (HP Secure Print Event 2018)
Ā 
Accelerating OT - A Case Study
Accelerating OT - A Case StudyAccelerating OT - A Case Study
Accelerating OT - A Case Study
Ā 
Owasp Proactive Controls for Web developer
Owasp  Proactive Controls for Web developerOwasp  Proactive Controls for Web developer
Owasp Proactive Controls for Web developer
Ā 
The 1st Step to Zero Trust: Asset Management for Cybersecurity
The 1st Step to Zero Trust: Asset Management for CybersecurityThe 1st Step to Zero Trust: Asset Management for Cybersecurity
The 1st Step to Zero Trust: Asset Management for Cybersecurity
Ā 
RSAC 2016: CISO's guide to Startups
RSAC 2016: CISO's guide to StartupsRSAC 2016: CISO's guide to Startups
RSAC 2016: CISO's guide to Startups
Ā 
Oliver Schuermann - Integrated Software in Networking - the Mystery of SDN
Oliver Schuermann - Integrated Software in Networking - the Mystery of SDNOliver Schuermann - Integrated Software in Networking - the Mystery of SDN
Oliver Schuermann - Integrated Software in Networking - the Mystery of SDN
Ā 
Why does security matter for devops by Caroline Wong
Why does security matter for devops by Caroline WongWhy does security matter for devops by Caroline Wong
Why does security matter for devops by Caroline Wong
Ā 
Lisa Guess - Embracing the Cloud
Lisa Guess - Embracing the CloudLisa Guess - Embracing the Cloud
Lisa Guess - Embracing the Cloud
Ā 
Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...
Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...
Timothy Wright & Stephen Halwes - Finding the Needle in the Hardware ā€“ Identi...
Ā 
Improve Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USMImprove Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USM
Ā 
451 and Cylance - The Roadmap To Better Endpoint Security
451 and Cylance - The Roadmap To Better Endpoint Security451 and Cylance - The Roadmap To Better Endpoint Security
451 and Cylance - The Roadmap To Better Endpoint Security
Ā 
DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...
DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...
DTS Solution - ISACA UAE Chapter - ISAFE 2014 - RU PWNED - Living a Life as a...
Ā 
SĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIERO
SĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIEROSĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIERO
SĆ©curitĆ© by design + Cloud = Infrastructure as CodeĀ par Sergio LOURIERO
Ā 

Similar to API Security Agenda: Top Risks and Improvements

Edgescan 2022 Vulnerability Statistics Report
Edgescan 2022 Vulnerability Statistics ReportEdgescan 2022 Vulnerability Statistics Report
Edgescan 2022 Vulnerability Statistics ReportEoin Keary
Ā 
2022 Vulnerability Statistics Report.pdf
2022 Vulnerability Statistics Report.pdf2022 Vulnerability Statistics Report.pdf
2022 Vulnerability Statistics Report.pdfssuserc3d7ec1
Ā 
2019 Cybersecurity Retrospective and a look forward to 2020
2019 Cybersecurity Retrospective and a look forward to 20202019 Cybersecurity Retrospective and a look forward to 2020
2019 Cybersecurity Retrospective and a look forward to 2020Jonathan Cran
Ā 
Solnet dev secops meetup
Solnet dev secops meetupSolnet dev secops meetup
Solnet dev secops meetuppbink
Ā 
CyberSecurity Update Slides
CyberSecurity Update SlidesCyberSecurity Update Slides
CyberSecurity Update SlidesJim Kaplan CIA CFE
Ā 
Troubleshooting Webex and Microsoft Teams with ThousandEyes
Troubleshooting Webex and Microsoft Teams with ThousandEyesTroubleshooting Webex and Microsoft Teams with ThousandEyes
Troubleshooting Webex and Microsoft Teams with ThousandEyesThousandEyes
Ā 
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleOptimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleDenim Group
Ā 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Securitysudip pudasaini
Ā 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)TzahiArabov
Ā 
Information Security Risk Management
Information Security Risk ManagementInformation Security Risk Management
Information Security Risk Managementipspat
Ā 
Web Application Testing for Todayā€™s Biggest and Emerging Threats
Web Application Testing for Todayā€™s Biggest and Emerging ThreatsWeb Application Testing for Todayā€™s Biggest and Emerging Threats
Web Application Testing for Todayā€™s Biggest and Emerging ThreatsAlan Kan
Ā 
The 5 Crazy Mistakes IoT Administrators Make with System Credentials
The 5 Crazy Mistakes IoT Administrators Make with System CredentialsThe 5 Crazy Mistakes IoT Administrators Make with System Credentials
The 5 Crazy Mistakes IoT Administrators Make with System CredentialsBeyondTrust
Ā 
Reducing Your Attack Surface and Yuor Role in Cloud Workload Protection
Reducing Your Attack Surface and Yuor Role in Cloud Workload ProtectionReducing Your Attack Surface and Yuor Role in Cloud Workload Protection
Reducing Your Attack Surface and Yuor Role in Cloud Workload ProtectionAlert Logic
Ā 
Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.
Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.
Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.Advanced monitoring
Ā 
Penetration Test Report
Penetration Test ReportPenetration Test Report
Penetration Test ReportDOTCOMIT PRO SRL
Ā 
DOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeDOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeGene Kim
Ā 
Reducing Your Attack Surface & Your Role in Cloud Workload Protection
Reducing Your Attack Surface & Your Role in Cloud Workload ProtectionReducing Your Attack Surface & Your Role in Cloud Workload Protection
Reducing Your Attack Surface & Your Role in Cloud Workload ProtectionAlert Logic
Ā 
DevOps for Highly Regulated Environments
DevOps for Highly Regulated EnvironmentsDevOps for Highly Regulated Environments
DevOps for Highly Regulated EnvironmentsDevOps.com
Ā 
Splunk conf2014 - Operationalizing Advanced Threat Defense
Splunk conf2014 - Operationalizing Advanced Threat DefenseSplunk conf2014 - Operationalizing Advanced Threat Defense
Splunk conf2014 - Operationalizing Advanced Threat DefenseSplunk
Ā 

Similar to API Security Agenda: Top Risks and Improvements (20)

Edgescan 2022 Vulnerability Statistics Report
Edgescan 2022 Vulnerability Statistics ReportEdgescan 2022 Vulnerability Statistics Report
Edgescan 2022 Vulnerability Statistics Report
Ā 
2022 Vulnerability Statistics Report.pdf
2022 Vulnerability Statistics Report.pdf2022 Vulnerability Statistics Report.pdf
2022 Vulnerability Statistics Report.pdf
Ā 
2019 Cybersecurity Retrospective and a look forward to 2020
2019 Cybersecurity Retrospective and a look forward to 20202019 Cybersecurity Retrospective and a look forward to 2020
2019 Cybersecurity Retrospective and a look forward to 2020
Ā 
Solnet dev secops meetup
Solnet dev secops meetupSolnet dev secops meetup
Solnet dev secops meetup
Ā 
CyberSecurity Update Slides
CyberSecurity Update SlidesCyberSecurity Update Slides
CyberSecurity Update Slides
Ā 
Troubleshooting Webex and Microsoft Teams with ThousandEyes
Troubleshooting Webex and Microsoft Teams with ThousandEyesTroubleshooting Webex and Microsoft Teams with ThousandEyes
Troubleshooting Webex and Microsoft Teams with ThousandEyes
Ā 
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleOptimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Ā 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
Ā 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
Ā 
Cybersecurity update 12
Cybersecurity update 12Cybersecurity update 12
Cybersecurity update 12
Ā 
Information Security Risk Management
Information Security Risk ManagementInformation Security Risk Management
Information Security Risk Management
Ā 
Web Application Testing for Todayā€™s Biggest and Emerging Threats
Web Application Testing for Todayā€™s Biggest and Emerging ThreatsWeb Application Testing for Todayā€™s Biggest and Emerging Threats
Web Application Testing for Todayā€™s Biggest and Emerging Threats
Ā 
The 5 Crazy Mistakes IoT Administrators Make with System Credentials
The 5 Crazy Mistakes IoT Administrators Make with System CredentialsThe 5 Crazy Mistakes IoT Administrators Make with System Credentials
The 5 Crazy Mistakes IoT Administrators Make with System Credentials
Ā 
Reducing Your Attack Surface and Yuor Role in Cloud Workload Protection
Reducing Your Attack Surface and Yuor Role in Cloud Workload ProtectionReducing Your Attack Surface and Yuor Role in Cloud Workload Protection
Reducing Your Attack Surface and Yuor Role in Cloud Workload Protection
Ā 
Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.
Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.
Š‘ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃ‚ŃŒ Š“Š°Š½Š½Ń‹Ń… Š¼Š¾Š±ŠøŠ»ŃŒŠ½Ń‹Ń… ŠæрŠøŠ»Š¾Š¶ŠµŠ½ŠøŠ¹. ŠœŠøфы Šø рŠµŠ°Š»ŃŒŠ½Š¾ŃŃ‚ŃŒ.
Ā 
Penetration Test Report
Penetration Test ReportPenetration Test Report
Penetration Test Report
Ā 
DOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeDOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - Sonatype
Ā 
Reducing Your Attack Surface & Your Role in Cloud Workload Protection
Reducing Your Attack Surface & Your Role in Cloud Workload ProtectionReducing Your Attack Surface & Your Role in Cloud Workload Protection
Reducing Your Attack Surface & Your Role in Cloud Workload Protection
Ā 
DevOps for Highly Regulated Environments
DevOps for Highly Regulated EnvironmentsDevOps for Highly Regulated Environments
DevOps for Highly Regulated Environments
Ā 
Splunk conf2014 - Operationalizing Advanced Threat Defense
Splunk conf2014 - Operationalizing Advanced Threat DefenseSplunk conf2014 - Operationalizing Advanced Threat Defense
Splunk conf2014 - Operationalizing Advanced Threat Defense
Ā 

More from Eoin Woods

Democratising Software Architecture
Democratising Software ArchitectureDemocratising Software Architecture
Democratising Software ArchitectureEoin Woods
Ā 
A Breathless Tour of Blockchain
A Breathless Tour of BlockchainA Breathless Tour of Blockchain
A Breathless Tour of BlockchainEoin Woods
Ā 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In BetweenEoin Woods
Ā 
Capturing Design (When you really have to)
Capturing Design (When you really have to)Capturing Design (When you really have to)
Capturing Design (When you really have to)Eoin Woods
Ā 
Serverless Computing for the Inquiring Mind
Serverless Computing for the Inquiring MindServerless Computing for the Inquiring Mind
Serverless Computing for the Inquiring MindEoin Woods
Ā 
Using Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeUsing Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeEoin Woods
Ā 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems DissolveEoin Woods
Ā 
Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)Eoin Woods
Ā 
When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets DataEoin Woods
Ā 
System Security Beyond the Libraries
System Security Beyond the LibrariesSystem Security Beyond the Libraries
System Security Beyond the LibrariesEoin Woods
Ā 
Getting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it ThereGetting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it ThereEoin Woods
Ā 
Deferring the Last Responsible Moment
Deferring the Last Responsible MomentDeferring the Last Responsible Moment
Deferring the Last Responsible MomentEoin Woods
Ā 

More from Eoin Woods (12)

Democratising Software Architecture
Democratising Software ArchitectureDemocratising Software Architecture
Democratising Software Architecture
Ā 
A Breathless Tour of Blockchain
A Breathless Tour of BlockchainA Breathless Tour of Blockchain
A Breathless Tour of Blockchain
Ā 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In Between
Ā 
Capturing Design (When you really have to)
Capturing Design (When you really have to)Capturing Design (When you really have to)
Capturing Design (When you really have to)
Ā 
Serverless Computing for the Inquiring Mind
Serverless Computing for the Inquiring MindServerless Computing for the Inquiring Mind
Serverless Computing for the Inquiring Mind
Ā 
Using Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeUsing Software Architecture Principles in Practice
Using Software Architecture Principles in Practice
Ā 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
Ā 
Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)
Ā 
When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets Data
Ā 
System Security Beyond the Libraries
System Security Beyond the LibrariesSystem Security Beyond the Libraries
System Security Beyond the Libraries
Ā 
Getting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it ThereGetting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it There
Ā 
Deferring the Last Responsible Moment
Deferring the Last Responsible MomentDeferring the Last Responsible Moment
Deferring the Last Responsible Moment
Ā 

Recently uploaded

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
Ā 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
Ā 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
Ā 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
Ā 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
Ā 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
Ā 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
Ā 
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...soniya singh
Ā 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
Ā 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
Ā 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
Ā 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
Ā 
(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...
(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...
(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...gurkirankumar98700
Ā 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
Ā 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
Ā 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
Ā 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
Ā 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
Ā 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
Ā 

Recently uploaded (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
Ā 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
Ā 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
Ā 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Ā 
Call Girls In Mukherjee Nagar šŸ“± 9999965857 šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...
Call Girls In Mukherjee Nagar šŸ“±  9999965857  šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...Call Girls In Mukherjee Nagar šŸ“±  9999965857  šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...
Call Girls In Mukherjee Nagar šŸ“± 9999965857 šŸ¤© Delhi šŸ«¦ HOT AND SEXY VVIP šŸŽ SE...
Ā 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Ā 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
Ā 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Ā 
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Ā 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
Ā 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Ā 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
Ā 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Ā 
(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...
(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...
(Genuine) Escort Service Lucknow | Starting ā‚¹,5K To @25k with A/C šŸ§‘šŸ½ā€ā¤ļøā€šŸ§‘šŸ» 89...
Ā 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Ā 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Ā 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Ā 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Ā 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Ā 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
Ā 

API Security Agenda: Top Risks and Improvements

  • 1.
  • 2. Agenda 1. THE STATE OF API SECURITY 2. INTRODUCING SOFTWARE SECURITY AND OWASP 3. THE TOP 10 API SECURITY RISKS 4. IMPROVING SOFTWARE SECURITY 5. SUMMARY
  • 3. Dr Eoin Woods ā€“ ā€œOwenā€ CTO at Endava since 2015 ā€¢ 1990 ā€“ 2003: Product companies in UK & US ā€¢ 2003 ā€“ 2014: Capital Markets companies Been trying to bridge ā€securityā€ and ā€œdevelopmentā€ for a long time Author, speaker, community guy www.eoinwoods.info / @eoinwoodz
  • 4. CLOSE TO CLIENT Denmark Germany Netherlands United Kingdom United States NEARSHORE DELIVERY European Union: Romania and Bulgaria Central European: North Macedonia, Moldova, and Serbia Latin America: Argentina, Colombia, Uruguay, and Venezuela 7,464 AS OF DEC 31, 2020 GLOBAL EMPLOYEES AS OF MAR 31, 2020 42 OFFICES // 39 CITIES // 19 COUNTRIES Banking & Financial Services Payments Insurance Investment Management Telco & Media Mobility Healthtech Retail & CPG FOCUSED INDUSTRY EXPERTISE
  • 5. THE STATE OF API SECURITY 1
  • 6. Ā© 2021 EOIN WOODS // 20210101.1 Why Security Threats Matter ā€¢ We need dependable systems even if things go wrong ā€¢ Malice, Mistakes, Mischance ā€¢ People are sometimes bad, careless or just unlucky ā€¢ System security aims to mitigate these situations
  • 7. TODAYā€™S THREAT LANDSCAPE ā€¢ Internal applications exposed on the Internet ā€¢ Introspection of APIs ā€¢ Attacks being ā€weaponizedā€
  • 8. 10 10 Ā© 2021 EOIN WOODS // 20210310.1 DATA BREACHES 2005 - 2010 h t t p s : / / w w w . i n f o r m a t i o n i s b e a u t i f u l . n e t / v i s u a l i z a t i o n s / w o r l d s - b i g g e s t - d a t a - b r e a c h e s - h a c k s
  • 9. 11 11 Ā© 2021 EOIN WOODS // 20210310.1 DATA BREACHES 2011 - 2015
  • 10. 12 12 Ā© 2021 EOIN WOODS // 20210310.1 DATA BREACHES 2016-2020
  • 11. Ā© 2021 EOIN WOODS // 20210101.1 Applications 23% Crimeware 6% Cyber-Espionage 3% Denial of Service 62% Other 3% Payment Cards 2% Stolen Assets 1% The Importance of Application Security Verizon 2019 Data Breach Investigation report found applications were the root cause of about 25% of breaches Microfocus analysis of Fortify on Demand data found 93% of applications had a security bug Forrester 2019 survey suggests that 35% of security incidents had a webapp as a root cause https://enterprise.verizon.com/resources/reports/dbir https://www.microfocus.com/en-us/assets/security/application-security-risk-report https://www.forrester.com/report/The+State+Of+Application+Security+2019
  • 12. Ā© 2021 EOIN WOODS // 20210101.1 What do we mean by APIs? ā€¢ We know APIs are as old as software ā€¢ any interface to allow the invocation of one piece of software from another For this talk weā€™ll focus on network APIs ā€¢ Any network accessible way of executing an operation on another piece of software ā€¢ RPCs, RMIs, REST, GraphQL, ā€¦ ā€¢ In most cases weā€™re assuming a ā€œREST styleā€ API ā€“ e.g. JSON over HTTP
  • 14. 17 17 Ā© 2021 EOIN WOODS // 20210310.1 ASPECTS OF SECURITY PRACTICE SECURE SYSTEM OPERATION SECURE APPLICATION IMPLEMENTATION SECURE APPLICATION DESIGN SECURE INFRASTRUCTURE DESIGN SECURE INFRASTRUCTURE DEPLOYMENT
  • 15. Ā© 2021 EOIN WOODS // 20210101.1 Who are OWASP? The Open Web Application Security Project Ā§ Largely volunteer organisation, largely online Exists to improve the state of software security Ā§ Research, tools, guidance, standards Ā§ Runs local chapters for face-to-face meetings ā€œOWASP Top 10ā€ projects list top application security risks Ā§ OWASP Top 10 Webapp Security Risks Ā§ OWASP Top 10 Mobile Risks Ā§ OWASP Top 10 API Risks
  • 16. Ā© 2021 EOIN WOODS // 20210101.1 Other Key Security Organisations MITRE Corporation Ā§ Common Vulnerabilities and Exposures (CVE) Ā§ Common Weaknesses Enumeration (CWE) SAFECode Ā§ Fundamental Practices for Secure Software Development Ā§ Training There are a lot of others too (CPNI, CERT, CIS, ISSA, ISC2, ā€¦)
  • 17. THE API TOP 10 SECURITY RISKS 3
  • 18. Ā© 2021 EOIN WOODS // 20210101.1 How was the 2019 API List Produced? Volunteer project of the OWASP organisation Ā§ 3 authors, ~35 contributors Ā§ https://www.owasp.org/index.php/OWASP_API_Security_Project First version in 2019 so less mature than the WebApp Top 10 Ā§ Initial analysis of public data sets (e.g. vulnerabilities & bug bounty data) Ā§ Penetration testing practitioners surveyed for their own ā€top 10sā€ Ā§ Top 10 resulted from a consensus between data and surveys Ā§ Expert review provided refinement Ā§ Some work to do to achieve full conceptual consistency and coherence Future plan to extend a public call for data (like the WebApp set)
  • 19. Ā© 2021 EOIN WOODS // 20210101.1 OWASP API Top 10 - 2019 #1 Broken Object Authorization #2 Broken User Authentication #3 Excessive Data Exposure #4 Resources & Rate Limiting #5 Broken Function Authorization #6 Mass Assignment #7 Security Misconfiguration #8 Injection #9 Improper Asset Management #10 Insufficient Logging and Monitoring SOME MAY LOOK ā€œOBVIOUSā€ BUT APPEAR ON THE LIST YEAR AFTER YEAR, BASED ON REAL VULNERABILITY DATA!
  • 20. Ā© 2021 EOIN WOODS // 20210101.1 OWASP API Top 10 - 2019 #1 Broken Object Authorization #2 Broken User Authentication #3 Excessive Data Exposure #4 Resources & Rate Limiting #5 Broken Function Authorization #6 Mass Assignment #7 Security Misconfiguration #8 Injection #9 Improper Asset Management #10 Insufficient Logging and Monitoring SOME MAY LOOK ā€œOBVIOUSā€ BUT APPEAR ON THE LIST YEAR AFTER YEAR, BASED ON REAL VULNERABILITY DATA! Some are closely related to the Webapp Top 10 A few surprising omissions (e.g. vulnerable components)
  • 21. Ā© 2021 EOIN WOODS // 20210101.1 #1 Broken Object-Level Authorisation ā€¢ After authentication many APIs donā€™t fully authorise access to resources ā€¢ To make matters worse object ā€keysā€ are often predictable or accessible $> wget https://aprovider.com/era/reports/1224459/monthly-latest ā€¢ What would happen if you tried 1224470? ā€¢ Hopefully the API would recognise that you werenā€™t authorised to view it ā€¢ It turns out that many donā€™t! ā€¢ Mitigations: enforce object authorisation for every request, well structured API design making need for authorisation clearer, long random object keys, testing Exploitability 3 Prevalence 3 Detectability 2 Technical 3
  • 22. 26 26 Ā© 2021 EOIN WOODS // 20210310.1 #1 Broken Object-Level Authorisation Example: Parler Parler.com servers Parler App https://medium.com/swlh/exposing-the-riot-parler-api-mistakes-9a4db4e905d5 https://github.com/d0nk/parler-tricks https://github.com/daniel-centore/ParlerScraper authorisation point attacker (@donk_enby) no authorisation needed authentication point api.parler.com/v2/login/new Exploitability 3 Prevalence 3 Detectability 2 Technical 3
  • 23. 27 27 Ā© 2021 EOIN WOODS // 20210310.1 #2 Broken User Authentication Exploitability 3 Prevalence 2 Detectability 2 Technical 2 ā€¢ A range of possible problems rather than a single weakness ā€¢ Allowing ā€œcredential stuffingā€ ā€¢ Accepting weak passwords => brute-force credential attacks ā€¢ Revealing authentication information in the API structure (e.g. URL) ā€¢ Missing or incorrect validation of authentication tokens (e.g. JWT) ā€¢ Mistakes in protocol implementation (very easy to do !) ā€¢ Example: see example #10
  • 24. 28 28 Ā© 2021 EOIN WOODS // 20210310.1 #2 Broken User Authentication Exploitability 3 Prevalence 2 Detectability 2 Technical 2 ā€¢ Mitigations: ā€¢ Multi-factor authentication for humans ā€¢ Controls around login & credential recovery (e.g. password rules, lockout periods after failures, captchas, rate limiting) ā€¢ Use proven, tested authentication mechanisms ā€¢ Take time to understand any sophisticated security technologies ā€¢ Careful implementation with expert design and code review ā€¢ Functional and penetration testing
  • 25. 29 29 Ā© 2021 EOIN WOODS // 20210310.1 #3 Excessive Data Exposure Exploitability 3 Prevalence 2 Detectability 2 Technical 2 ā€¢ APIs often return more data that is required by the client ā€¢ client-side filtering hides this from the user but not from software ā€¢ API developers donā€™t always know what the client needs ā€¢ or are trying to provide a more general solution to avoid rework ā€¢ Sometimes an assumption that the client is ā€trustedā€ ā€¢ analogous problem to browser-side security in webapps ā€¢ Problem often not obvious unless you know the data ā€¢ automated tools arenā€™t going to spot this
  • 26. 30 30 Ā© 2021 EOIN WOODS // 20210310.1 #3 Excessive Data Exposure Exploitability 3 Prevalence 2 Detectability 2 Technical 2 Example: Facebook Marketplace (2019) https://www.7elements.co.uk/resources/blog/facebooks-burglary-shopping-list/ "location": { "latitude": 54.9942235, "longitude": -1.6041244, "reverse_geocode": { "city": ā€Newcastle upon Tyne", "state": ā€England", "postal_code": "" }, "reverse_geocode_detailed": { "city": ā€Newcastle upon Tyne", "state": ā€England", "postal_code": ā€NE2 2DS" } }
  • 27. 31 31 Ā© 2021 EOIN WOODS // 20210310.1 #3 Excessive Data Exposure Exploitability 3 Prevalence 2 Detectability 2 Technical 2 ā€¢ Mitigations ā€¢ Assume the client is untrusted when developing an API ā€¢ Always use the ā€need to knowā€ principle when designing data types ā€¢ needs understanding of the context of the API request Ā§ Donā€™t return serialised forms of internal types ā€¢ can leak information over time ā€¢ use specifically designed return types with the right data items Ā§ Identify sensitive information classes (e.g. PII, card data, ā€¦) and have a specific review of any API call that accesses this information
  • 28. 32 32 Ā© 2021 EOIN WOODS // 20210310.1 #4 Resources and Rate Limiting Exploitability 2 Prevalence 3 Detectability 3 Technical 2 ā€¢ Classical DoS attacks use network protocols (e.g. SYN flood) ā€¢ APIs are also vulnerable to overload attacks ā€¢ can be exacerbated by the right (excessive) parameter values ā€¢ e.g. parallel upload of multi-GB binary files ā€¢ Two dimensions ā€¢ Number of parallel requests allowed ā€¢ Quantity of resources each request can be allocated ā€¢ Mitigations: ā€¢ Rate limiting at API level (spike limit, limit in time interval) ā€¢ Rate limiting at session or user level (ditto) ā€¢ Hard limits on parameter values and sizes ā€¢ Runtime limits on memory, CPU, file descriptors, ā€¦
  • 29. 33 33 Ā© 2021 EOIN WOODS // 20210310.1 #4 Resources and Rate Limiting Exploitability 2 Prevalence 3 Detectability 3 Technical 2 $> wget https://svc.com/inv/item?name=%22%2a%22&maxsize=9999999 ā€¢ Hopefully this gets stopped immediately by a validation check ā€¢ Or overridden within the API by an internal maximum ā€¢ Unfortunately, quite a few APIs donā€™t always do this ā€¢ Result is likely to be a large database result set and a huge amount of memory used => a runtime failure
  • 30. 34 34 Ā© 2021 EOIN WOODS // 20210310.1 #5 Broken Function-Level Authorisation Exploitability 3 Prevalence 2 Detectability 1 Technical 2 ā€¢ Incomplete or incorrect authorisation checks when API called ā€¢ like #1 (object-level authorisation) a range of possible problems ā€¢ Rarely totally missing, usually ā€œholesā€ in the implementation ā€¢ Frequently a result of a complex security model or API design ā€¢ ā€œcorrectā€ is complex, given interaction of authentication, roles, sensitivity levels, ā€¦ ā€¢ Can be due to complexity of application or 3rd party component ā€¢ e.g. declarative security rules can often contain subtle problems ā€¢ e.g. ā€œfalling throughā€ logic which ends up providing access by mistake
  • 31. 35 35 Ā© 2021 EOIN WOODS // 20210310.1 #5 Broken Function-Level Authorisation Exploitability 3 Prevalence 2 Detectability 1 Technical 2 Example: NewRelic ā€œdelete filtersetā€ vulnerability To create a NR ā€œfilter setā€ you call POST https://infrastructure.newrelic.com/accounts/12345/settings/filterSets ā€¦ passing a parameter block defining the new filter set. It turns out that calling ā€¦ DELETE https://infrastructure.newrelic.com/accounts/12345/settings/filterSets ā€¦ could delete the filter set without checking the user is authorised to do so https://www.cloudvector.com/owasp-api-security-top-10- broken-function-level-authorization/
  • 32. 36 36 Ā© 2021 EOIN WOODS // 20210310.1 #5 Broken Function-Level Authorisation Exploitability 3 Prevalence 2 Detectability 1 Technical 2 ā€¢ Mitigations ā€¢ Simple as possible in design and implementation ā€¢ Highlight sensitive operations for specific review ā€¢ Thorough automated functional testing of authorisation ā€¢ Take time to understand sophisticated security technology ā€¢ Donā€™t invent your own security technology (again) ā€¢ Always default to ā€œno accessā€
  • 33. 38 38 Ā© 2021 EOIN WOODS // 20210310.1 #6 Mass Assignment Exploitability 2 Prevalence 2 Detectability 2 Technical 2 ā€¢ Different fields in a data entity often have different sensitivities ā€¢ We often use libraries to ā€œbindā€ data elements to and from API parameter sets ā€¢ var item = JSON.parse(json_str); // JavaScript ā€¢ // Java with Jackson Trade t = mapr.readObject(jsonStr, Trade.class); ā€¢ Client could add ā€œrogueā€ fields to overwrite sensitive state
  • 34. 39 39 Ā© 2021 EOIN WOODS // 20210310.1 #6 Mass Assignment Example: the Harbor privilege escalation vulnerability Harbor: ā€Our mission is to be the trusted cloud native repository for Kubernetesā€ Unfortunately, their product contained a privilege escalation vulnerability: POST /api/users HTTP/1.1 { ā€œusernameā€:ā€testā€, ā€emailā€:ā€test123@gmail.comā€, ā€realnameā€:ā€no nameā€, ā€passwordā€:ā€password1u0021ā€³, ā€commentā€:null, ā€œhas_admin_roleā€:ā€trueā€ } ā€¦ due to a JSON mass assignment operation in JavaScript! https://unit42.paloaltonetworks.com/critical-vulnerability-in-harbor- enables-privilege-escalation-from-zero-to-admin-cve-2019-16097/ Exploitability 2 Prevalence 2 Detectability 2 Technical 2
  • 35. 40 40 Ā© 2021 EOIN WOODS // 20210310.1 #6 Mass Assignment - Example Simple filtering example: function filterProperties(propList, obj) { for (var p in obj) { if (!obj.hasOwnProperty(p)) continue ; if (propList.indexOf(p) === -1) { delete obj[p]; } } } var fieldList = [ā€˜nameā€™, ā€˜cpidā€™, ā€˜priceā€™, // ā€¦ ]; filterProperties(fieldList, accountItem) { name: ā€˜My Customer', cpid: '1234234', price: 12.54, agentNotes: 'ZnVuY3Rpb24gZmlsdGVyUHJvcGVy dGllcyhwcm9wTGlzdCwgb2JqKSB7C iAgZm9yICh2YXIgcCBpbiBvYmopIH sKICAgIGlmICghb2JqLmhhc093blB yb3BlcnR5KHApKSBjb250aW51ZTsK ICAgIGlmIChwcm9wTGlzdC5pbmRle E9mKHApID09PSAtMSkgewogICAgIC BkZWxldGUgb2JqW3BdOwogICAgfQo gIH0KfQ==' } { name: ā€˜My Customer', cpid: '1234234', price: 12.54, }
  • 36. 41 41 Ā© 2021 EOIN WOODS // 20210310.1 #6 Mass Assignment Exploitability 2 Prevalence 2 Detectability 2 Technical 2 ā€¢ Mitigation: ā€¢ Be careful when using automatic data binding libraries ā€¢ Use specific types for API definition and explicit code to extract values and apply them to system state ā€¢ Have ā€whitelistsā€ for fields that can be updated by a client
  • 37. 42 42 Ā© 2021 EOIN WOODS // 20210310.1 #7 Security Misconfiguration Exploitability 3 Prevalence 3 Detectability 3 Technical 2 ā€¢ Again a class of problem rather than a single cause ā€¢ Missing security patches ā€¢ Incorrect authorisation configuration ā€¢ Unnecessary features enabled ā€¢ Security enforcement (e.g. requiring TLS) incorrect or missing ā€¢ Exposing sensitive information (e.g. 500 error stack traces!) ā€¢ Mitigation ā€¢ Testing (automated security tests, manual penetration testing) ā€¢ Automated configuration and deployment for consistency ā€¢ Expert review and code scanning throughout projects ā€¢ Careful error handling
  • 38. 43 43 Ā© 2021 EOIN WOODS // 20210310.1 #7 Security Misconfiguration Exploitability 3 Prevalence 3 Detectability 3 Technical 2 Example: Algolia Search $> curl https://myappid-dsn.algolia.net/1/keys/APIKEY?x-algolia- application-id=myappid&x-algolia-api-key=a7hw7gsh273hrk382 { ā€valueā€: ā€˜.....ā€™, ā€œcreatedAtā€: 15173453234, ā€œaclā€ : [ā€œsearchā€, ā€œaddObjectā€, ā€¦ ā€editSettingsā€, ā€œlistIndexesā€, ā€¦] } It turns out that many people accidentally use their admin API key for client API calls because of the way that Algoliaā€™s documentation is written. https://www.secjuice.com/api-misconfiguration-data-breach
  • 39. 44 44 Ā© 2021 EOIN WOODS // 20210310.1 #7 Security Misconfiguration Exploitability 3 Prevalence 3 Detectability 3 Technical 2 Example: Capital One https://krebsonsecurity.com/tag/capital-one-breach Capital One VPC M o d S e c u r i t y AWS S3 Bucket AWS EC2 VM $ > a w s i a m l i s t - r o l e s $ > ā€¦ P E % { R E Q B O D Y _ P R O C E S S O R _ E R R O R } , B Q % { M U L T I P A R T _ B O U N D A R Y _ Q U O T E D } , B W % { M U L T I P A R T _ B O U N D A R Y _ W H I T E S P A C E } , D B % { M U L T I P A R T _ D A T A _ B E F O R E } , D A % { M U L T I P A R T _ D A T A _ A F T E R } , H F % { M U L T I P A R T _ H E A D E R _ F O L D I N G } , L F % { M U L T I P A R T _ L F _ L I N E } , M o d S e c u r i t y C o n f i g u r a t i o n ā€¢ M i s t a k e i n M o d S e c u r i t y a l l o w e d a t t a c k e r i n t o V M ā€¢ I A M m i s c o n f i g u r a t i o n a l l o w e d a c c e s s t o S 3 # ModSecurity (default) configuration SecRuleEngine DetectionOnly SecRequestBodyAccess On SecRule REQUEST_HEADERS:Content-Type "(?:application(?:/soap+|/)|text/)xml" "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML" SecRule REQUEST_HEADERS:Content-Type "application/json" "id:'200001',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON" SecRequestBodyLimit 13107200 SecRequestBodyNoFilesLimit 131072 SecRequestBodyLimitAction Reject SecRule REQBODY_ERROR "!@eq 0" "id:'200002', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request body.ā€™, logdata:'%{reqbody_error_msg}',severity:2" SecRule MULTIPART_STRICT_ERROR "!@eq 0" "id:'200003',phase:2,t:none,log,deny,status:400, msg:'Multipart request body failed strict validation: PE %{REQBODY_PROCESSOR_ERROR}, BQ %{MULTIPART_BOUNDARY_QUOTED}, BW %{MULTIPART_BOUNDARY_WHITESPACE}, DB %{MULTIPART_DATA_BEFORE}, DA %{MULTIPART_DATA_AFTER}, HF %{MULTIPART_HEADER_FOLDING}, LF %{MULTIPART_LF_LINE}, SM %{MULTIPART_MISSING_SEMICOLON}, IQ %{MULTIPART_INVALID_QUOTING}, IP %{MULTIPART_INVALID_PART}, IH %{MULTIPART_INVALID_HEADER_FOLDING}, FL %{MULTIPART_FILE_LIMIT_EXCEEDED}'" SecRule MULTIPART_UNMATCHED_BOUNDARY "@eq 1" "id:'200004',phase:2,t:none,log,deny,msg:'Multipart parser detected a possible unmatched boundary.'" SecPcreMatchLimit 1000 SecPcreMatchLimitRecursion 1000 SecRule TX:/^MSC_/ "!@streq 0" "id:'200005',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'"
  • 40. 45 45 Ā© 2021 EOIN WOODS // 20210310.1 #8 Injection Exploitability 3 Prevalence 2 Detectability 3 Technical 3 ā€¢ Our old friend from the Webapp Top 10! ā€¢ Dangerous in APIs as well as in webapps ā€¢ Anything interpreted can be injected: ā€¢ Database query parameters ā€¢ Command line arguments ā€¢ Configuration items that are parsed and processed
  • 41. 46 46 Ā© 2021 EOIN WOODS // 20210310.1 #8 Injection Exploitability 3 Prevalence 2 Detectability 3 Technical 3 Example: check parameters and avoid direct SQL String tradeId = req.path().param(ā€œtradeidā€); ESAPI.validator().getValidInput(ā€œtradeIdā€, tradeId, ā€œHTTPParameterValueā€, 12, false, true); String query = ā€œselect id, ccy, value, ā€¦ from trade where id=?ā€ ; PreparedStatement ps = conn.prepareStatement(query); ps.setString(1, tradeId); ResultSet results = ps.executeQuery() ;
  • 42. 47 47 Ā© 2021 EOIN WOODS // 20210310.1 #8 Injection Exploitability 3 Prevalence 2 Detectability 3 Technical 3 ā€¢ Mitigation: ā€¢ Validate and sanitise all data entering the system ā€¢ Use a single, well-tested, validation library to make validation reliable and straightforward (ā€œeasy thingā€ == ā€œwhat is actually doneā€) ā€¢ Where possible use APIs rather than interpreters (e.g. bind parameters for ā€œpreparedā€ database queries not query strings) ā€¢ Sanity check result payloads (e.g. maximum size checks) ā€¢ Strongly type API interfaces and enforce types strictly
  • 43. 48 48 Ā© 2021 EOIN WOODS // 20210310.1 #9 Improper Asset Management Exploitability 3 Prevalence 3 Detectability 2 Technical 2 ā€¢ Many application estates today are not well understood ā€¢ Old applications can run for years with little attention ā€¢ Will contain vulnerabilities in old software components ā€¢ Often skipped during software security remediation work ā€¢ Can have deliberate or accidental vulnerabilities themselves ā€¢ Compromises may not be noticed ā€¢ Sometimes important applications have old neglected features ā€¢ Old data interfaces left in place for backwards compatibility ā€¢ Unsupported opensource components to avoid regression testing ā€¢ Insecure mechanisms (e.g. FTP file transfer) to avoid touching other old applications
  • 44. 49 49 Ā© 2021 EOIN WOODS // 20210310.1 #9 Improper Asset Management Exploitability 3 Prevalence 3 Detectability 2 Technical 2 ā€¢ New applications can also introduce problems if not understood ā€¢ Microservices introduce many moving parts with network interfaces ā€¢ Cloud allows application teams to deploy new applications and infrastructure quickly and independently ā€¦ and perhaps insecurely ā€¢ Rate of change in modern application estates can make keeping track of the estate difficult if not automated ā€¦ tomorrowā€™s legacy
  • 45. 50 50 Ā© 2021 EOIN WOODS // 20210310.1 #9 Improper Asset Management Exploitability 3 Prevalence 3 Detectability 2 Technical 2 Example: application evolution Monolithic Core Ā«RESTĀ» Microservice 1 Ā«RESTĀ» Microservice 2 Ā«RESTĀ» Ā«JSON/JMSĀ» Ā«XML/MQĀ» Ā«SOAP/HTTPĀ» Todayā€™s main interfaces Yesterdayā€™s legacy
  • 46. Ā© 2021 EOIN WOODS // 20210101.1 #9 Improper Asset Management Example: the scale problem Large organisations have thousands of applications, servers, services, message queues, databases, ā€¦ ā€¦ all constantly changing Exploitability 3 Prevalence 3 Detectability 2 Technical 2
  • 47. 52 52 Ā© 2021 EOIN WOODS // 20210310.1 #9 Improper Asset Management Exploitability 3 Prevalence 3 Detectability 2 Technical 2 ā€¢ Mitigation: ā€¢ There are no easy mitigations once in this situation! ā€¢ Easy to say, but avoidance is the most effective mitigation ā€¢ Finding these applications and features is often the most difficult part ā€¢ Network scanning can be useful to find unexpected end points ā€¢ Once found, investing in modernisation, improving security or retirement are all options ā€¢ Automate maintenance of application and infrastructure inventories wherever possible
  • 48. 53 53 Ā© 2021 EOIN WOODS // 20210310.1 #10 Insufficient Logging & Monitoring Exploitability 2 Prevalence 3 Detectability 1 Technical 2 ā€¢ Another familiar ā€œfriendā€ from the Webapp Top 10 ā€¢ Logging and monitoring rarely comes ā€for freeā€ with APIs ā€¢ therefore it often gets forgotten or deprioritised ā€¢ Poor logging and monitoring technology, implementation or practices means it is difficult to detect and respond to suspicious activity ā€¢ e.g. you find that an API credential has been compromised for several days ā€¦ do you know what that credential has been used for while compromised?
  • 49. 54 54 Ā© 2021 EOIN WOODS // 20210310.1 #10 Insufficient Logging & Monitoring Exploitability 2 Prevalence 3 Detectability 1 Technical 2 ā€¢ Example: the need for monitoring Webapp automated credential stuffing attack database access through injection attack exfiltration of bulk data Monitoring could alert to all three aspects of the attack: ā€¢ login failure monitoring ā€¢ excessive database result set ā€¢ unusual large outbound transfer
  • 50. 55 55 Ā© 2021 EOIN WOODS // 20210310.1 #10 Insufficient Logging & Monitoring Exploitability 2 Prevalence 3 Detectability 1 Technical 2 ā€¢ Mitigation ā€¦ all well known solutions ā€¢ Log all security sensitive events (authentication activity, access failures, validation failures, ā€¦) ā€¢ Keep logs accessible but secure ā€¢ Use SEIM systems to aggregate the logs from different sources ā€¢ Build awareness of ā€normalā€ and create dashboards for security related metrics to allow ā€abnormalā€ to be spotted
  • 51. Ā© 2021 EOIN WOODS // 20210101.1 Summary of Vulnerability Types ā€¢ Injection ā€¢ SQL, configuration, operating system command, ā€¦ ā€¢ Inadequate validation ā€¢ Of authentication to confirm identity of caller ā€¢ Of authorisation to access resources ā€¢ Accepting unexpected inputs (e.g. unnecessary fields, excessive parameter lengths) ā€¢ Implementation mistakes ā€¢ Returning too much data ā€¢ Incomplete or faulty authorisation checks ā€¢ Blindly binding data structures to inputs ā€¢ Environment problems ā€¢ Need for rate limiting ā€¢ Monitoring and logging ā€¢ Careful configuration of the entire stack
  • 53. 59 59 Ā© 2021 EOIN WOODS // 20210310.1 Security Awareness Security Design Secure Implementation Security Testing Some Key Aspects of Software Security for Teams Entire team Security requirements Threat modelling Security design Secure design Secure implementation Functional security tests Code reviews SCA Static analysis Dynamic testing (DAST) Penetration testing
  • 54. 60 60 Ā© 2021 EOIN WOODS // 20210310.1 Securing an API API FUNCTIONS A U T H O R I S A T I O N ( A C C E S S C O N T R O L ) A U D I T I N G A U T H E N T I C A T I O N R A T E L I M I T I N G Volume Identity Records Access
  • 55. 61 61 Ā© 2021 EOIN WOODS // 20210310.1 auth code Over TLS A W S A P I G a t e w a y rate limiting A P I F u n c t i o n Securing an API - Example AWS Java + Spring process A u d i t L o g g i n g F i l t e r AWS Cloud Watch centralised logging A u t h o r i s a t i o n P r o x y application authorisation check API Client Okta OAuth2 Service (Authentication & Authorization Service) login for auth code A u t h e n t i c a t i o n F i l t e r authenticate w/auth code to get access token A u t h o r i s a t i o n F i l t e r API access check via token
  • 56. 62 62 Ā© 2021 EOIN WOODS // 20210310.1 Lots of Choice When Securing an API A u t h e n t i c a t i o n & A u t h o r i s a t i o n Local implementation (users, passwords, groups, ACLs) Cloud services (AWS Cognito, Azure AD, ā€¦) 3rd party services (Auth0, Okta, ā€¦) Enterprise products (IAM vendors) Open source (Keycloak, Gluu, ā€¦) A u d i t i n g Plain files OS logging Database records Cloud services (CloudWatch, Azure Monitor) SIEM (Splunk, Rapid 7, ā€¦) R a t e L i m i t i n g Cloud API gateways Enterprise API gateways Reverse proxies Open source middleware
  • 57. Ā© 2021 EOIN WOODS // 20210101.1 Key Tactics ā€¢ Donā€™t trust clients ā€¢ authentication, authorisation, validation ā€¢ Identify ā€œinterpretersā€ and sanitise inputs, use bind variables, ā€¦ ā€¢ command lines, database queries, configuration data, ā€¦ ā€¢ Protect valuable information at rest and in transit ā€¢ encryption ā€¢ Simplicity ā€¢ Avoid the special cases, make sure the system is understood ā€¢ Standardise and Automate ā€¢ consistency, correctness, avoid configuration errors
  • 58. Ā© 2021 EOIN WOODS // 20210101.1 Tactic: Donā€™t Trust Clients ā€¢ Be wary of everything sent by a client ā€¢ Assume possible tampering ā€¢ TLS connections ā€¢ short lived sessions ā€¢ reauthenticate humans, recheck tokens before sensitive operations ā€¢ use opaque tokens for IDs ā€¢ validate everything
  • 59. Ā© 2021 EOIN WOODS // 20210101.1 Tactic: Watch Out for Injection ā€¢ Many things are interpreters ā€¢ Operating system shells ā€¢ Database query languages ā€¢ Configuration files ā€¢ Parsers ā€¢ Assume someone will notice! ā€¢ Avoid using direct string manipulation ā€¢ libraries and bind variables ā€¢ Sanitise strings passed to interpreters ā€¢ 3rd party library (e.g. OWASP) ā€¢ Reject very long strings
  • 60. Ā© 2021 EOIN WOODS // 20210101.1 Tactic: Protect Information ā€¢ Assume perimeter breach ā€¢ defence in depth ā€¢ encrypt everything possible ā€¢ But there are tradeoffs ā€¢ slows everything down ā€¢ querying is difficult ā€¢ Message routing on sensitive fields ā€¢ Manage and rotate keys ā€¢ Complexity added to restore
  • 61. Ā© 2021 EOIN WOODS // 20210101.1 Tactic: Simplify and Standardise ā€¢ Complexity is the enemy of security ā€¢ ā€œyou canā€™t secure what you donā€™t understandā€ ā€¢ special cases often forgotten ā€¢ Simplify, standardise, automate ā€¢ Simple things easier to check & secure ā€¢ Standardisation removes a lot of special cases ā€¢ Automation removes human inconsistencies avoiding one area of risk
  • 62. Ā© 2021 EOIN WOODS // 20210101.1 A Few Words on Tools ā€¢ Security tools are obviously useful ā€¢ Many types exist from simple to very complex ā€¢ Need make sure people donā€™t view tools as an alternative to thinking! ā€¢ Main groups ā€¢ Specialist security scanning tools ā€¢ Interactive tools for penetration and exploratory testing ā€¢ Software composition analysis (open source scanning)
  • 63. Ā© 2021 EOIN WOODS // 20210101.1 Automated Security Testing ā€¢ Automated tools are useful for some types of security problem ā€¢ SAST ā€“ static scanning ā€¢ DAST ā€“ simulated attacks ā€¢ IAST ā€“ agent-based monitoring ā€¢ RASP ā€“ runtime security monitoring ā€¢ Challenges are false positives and effort to mitigate if used late ā€¢ Danger of over-reliance
  • 64. Ā© 2021 EOIN WOODS // 20210101.1 Postman ā€¢ API development & testing suite ā€¢ Popular for functional and security API testing ā€¢ Desktop tool with link to cloud service (with a web UI) ā€¢ Interactive or command line (via ā€Newmanā€ runner extension) https://www.postman.com/
  • 65. Ā© 2021 EOIN WOODS // 20210101.1 BurpSuite ā€¢ Proxy, scanning, pentest tool ā€¢ Very capable free version ā€¢ Fuller commercial version available ā€¢ Inspect traffic, manipulate headers and content, replay, spider, ā€¦ ā€¢ Made in Knutsford! http://portswigger.net/burp
  • 66. Ā© 2021 EOIN WOODS // 20210101.1 Metasploit ā€¢ The pentesterā€™s ā€standardā€ tool ā€¢ Very wide range of capabilities ā€¢ Commercial version available https://www.metasploit.com HTTPS://WWW.METASPLOIT.COM
  • 67. Ā© 2021 EOIN WOODS // 20210101.1 Open Source Scanning ā€¢ Example commercial tools for OSS security, audit & compliance: ā€¢ BlackDuck ā€¢ Whitesource ā€¢ Sonatype LCM ā€¢ Snyk ā€¢ Scan builds identifying open source ā€¢ Checks for known vulnerabilities ā€¢ Alerts and dashboards for monitoring www.blackduck.com www.whitesourcesoftware.com www.sonatype.com/nexus-lifecycle www.snyk.io
  • 69. Ā© 2021 EOIN WOODS // 20210101.1 OWASP API Top 10 - 2019 #1 Broken Object Authorization #2 Broken User Authentication #3 Excessive Data Exposure #4 Resources & Rate Limiting #5 Broken Function Authorization #6 Mass Assignment #7 Security Misconfiguration #8 Injection #9 Improper Asset Management #10 Insufficient Logging and Monitoring SOME MAY LOOK ā€œOBVIOUSā€ BUT APPEAR ON THE LIST YEAR AFTER YEAR, BASED ON REAL VULNERABILITY DATA!
  • 70. 77 77 Ā© 2021 EOIN WOODS // 20210310.1 Key Aspects of API Security Preventing Injection ā€¢ SQL, configuration, commands, ... Validation ā€¢ inputs, outputs, authentication, authorisation Implementation ā€¢ automatic binding, too much data, faulty checking Environment ā€¢ rate limiting, monitoring, logging, configuration
  • 71. 78 78 Ā© 2021 EOIN WOODS // 20210310.1 Elements of Securing an API API Function Authorisation Authentication Rate Limiting Auditing
  • 72. 79 79 Ā© 2021 EOIN WOODS // 20210310.1 Useful Tactics for API Security Donā€™t trust clients Watch out for injection Protect information Simplify and standardise
  • 73. 80 80 Ā© 2021 EOIN WOODS // 20210310.1 Books