Mesmo com a grande quantidade de referências sobre desenvolvimento de APIs REST, os mecanismos e boas práticas de segurança ainda são pouco explorados ou inexistentes. Além disso, organizações focadas em segurança como a OWASP dedicam mais esforços a materiais relacionados à segurança de aplicações web e mobile – deixando muitas vezes em segundo plano o trabalho em segurança de sistemas baseados em APIs REST.
Nesta apresentação demonstraremos que muitas das diretivas de segurança utilizadas em aplicações web podem ser aplicadas ou adaptadas para uma arquitetura REST, incluindo proteção contra:
- Injections
- Cross-site scripting (XSS)
- Cross-site request forgery (CSRF)
- Quebra ou bypass de mecanismos de autenticação
Por fim, discutiremos exemplos reais de falhas de segurança em famosas APIs REST e o que se pode aprender com elas.
2. Heitor Vital
● Áreas de Atuação
o Cloud Computing
o Segurança Informação
o Jogos
o Dispositivos Móveis
o …
● Acadêmico
o MBA FGV
o Mestrado UFPE
o Graduação UFPE
twitter.com/heitorvital
slideshare.net/HeitorVital
labs.siteblindado.com
Kadu
sec@siteblindado.com.br
3. More info: 2014 Global Report on the Cost of Cyber Crime
Stop Looking for the Silver Bullet: Start Thinking Like a Bad Guy
2014 Global Report on the
Cost of Cyber Crime
257 Empresas
2.081 Entrevistas
1.717 Incidentes
$7.6M Média prejuízo
10.4% Crescimento Incidentes
11. Search
Surface Detection
● Metadata/Doc
o Swagger
o RAML
o API-Blueprint
o I/O Docs
● Discovery
● Brute Force
o Invalid data
Exemplo: http://petstore.swagger.io/#!/pet/updatePet(type, size, length, null, HTTP header, XML bomb, upload file...)
16. Injection
Normal
http://petstore.com/api/v1/pet/123
“SELECT
*
FROM
pets
WHERE
petID='”
+
petId
+”‘”;
“SELECT
*
FROM
pets
WHERE
petID
=
‘123’”
Injection
http://petstore.com/api/v1/pet/’%20or%20’1’=’1
“SELECT
*
FROM
pets
WHERE
petID='”
+
petId
+”‘”;
SELECT
*
FROM
pets
WHERE
petID
=
‘’
or
‘1’
=
‘1’
17. XSS
(cross site scripting)
Solução
Header response com
● Content-type: application/json
● x-content-type-options: nosniff
Referencias:
http://www.w2spconf.com/2013/papers/s3p1.pdf
http://stackoverflow.com/questions/3146324/is-it-possible-to-xss-exploit-json-responses-with-proper-javascript-string-escap
http://security.stackexchange.com/questions/42093/xss-prevention-for-restful-services
18. CSRF
(cross site request forgery)
Referências: http://www.twobotechnologies.com/blog/2014/02/importance-of-state-in-oauth2.html e http://hasselba.ch/blog/?p=1854
Solução
OAuth state
19. DoS/DDoS
WAF
● Package Analysis
● IP Blacklist
● Region Blacklist
API Gateway
● Call quotas
o Calendar Period
o Rolling Window
● Invalid Inputs
o XML Schema
o Blacklist Keywords
o Blacklist patterns
o Malformed messages
20.
21. Plataforma
Separation of Concerns
● Authentication /
Authorization
● Logging
● Analytics
● Audit
● Rate Limit
● Payload
● Address Restrictions
● Invalid Inputs
o XML Schema
o Blacklist Keywords
o Blacklist patterns
o Malformed messages