![Page 1: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/1.jpg)
Fora Hackers!Proteção em camadas do SQL Server
Fabricio CataeTechnical Evangelist SQL Saturday #570
![Page 2: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/2.jpg)
Demo--HACKED--
![Page 3: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/3.jpg)
AtaqueGrupo BUILTIN\Users adicionadoGrant EXECUTE on xp_cmdshellEnable xp_cmdshell (sp_configure)Configurado um Proxy accountConta de Administrador do Windows
![Page 4: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/4.jpg)
Alinhamento dos PlanetasDesastres acontecem quando vários problemas existem ao mesmo tempo
![Page 5: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/5.jpg)
ImprovávelGrupo BUILTIN\Users adicionadoGrant EXECUTE on xp_cmdshellEnable xp_cmdshell (sp_configure)Configurado um Proxy accountConta de Administrador do Windows
???
![Page 6: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/6.jpg)
Segurança em CamadasO objetivo é minimizar o risco.
É impossível eliminar todas as brechas de segurança.
![Page 7: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/7.jpg)
Regras do JogoPrincipal objetivo do Hacker
![Page 8: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/8.jpg)
SysAdmin(SQL)
SQL Service(Windows)
Administrator(Windows)
![Page 9: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/9.jpg)
Primeiros PassosIdentificando a porta de entrada
![Page 10: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/10.jpg)
SQL (TDS): 1433 SQL ServerTCP 1433
Endpoint
![Page 11: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/11.jpg)
IIS (HTTP): 80
SQL (TDS): 1433
IIS (HTTP)TCP 80Endpoint
SQL ServerTCP 1433
![Page 12: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/12.jpg)
SQL (TDS): 1433SMB: 137, 138RPC Locator: 135
EndpointSQL ServerTCP 1433
TCP 137/138
TCP 135
File Share (SMB)
RPC Locator
![Page 13: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/13.jpg)
SQL (TDS): 1433
SQL Browser: 1434 (UDP)
Endpoint
SQL ServerInstance2
TCP2222
UDP 1434SQL Browser
SQL ServerInstance1
TCP1433
![Page 14: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/14.jpg)
SQL Browser
(UDP 1434)
Quais instâncias estão disponíveis?
Qual a porta da instância xxxxxx?
![Page 15: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/15.jpg)
ConfiguraçãoDesligue o Browser (UDP 1434)Habilite o firewall do WindowsExponha a porta 1433 para clientes específicosEvite usar Named Pipes (SMB: TCP 137/138)Use usuários individuais para cada serviçoPrefira contas locais ao invés de domínioSegmente o tráfego de rede
![Page 16: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/16.jpg)
Nivel 1: Segmentação de Rede
SQL Server
TCP80
Web Server
TCP1433
TCP 137/138
TCP 135
File SMBRPC
Locator
Frontend Backend
![Page 17: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/17.jpg)
Entrando no ServidorPassando pelo sistema de autenticação
![Page 18: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/18.jpg)
Acesso Direto ao Servidor
SQL Server
TCP80
Web Server
TCP1433
TCP 137/138
TCP 135
File SMBRPC
Locator
Frontend Backend
Server
![Page 19: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/19.jpg)
Acesso à Camada TCP/IP
SQL Server
AUTHTCP 143
3
TCP/IP (Kernel)Listener (SQL)
![Page 20: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/20.jpg)
Senha Fraca
DicionárioForça brutaReuso de senha
![Page 21: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/21.jpg)
111111123456123456712345678qwerty123123abc123iloveyousqlserveradmin...
Dicionáriodefaultsapasswordpassword1passw0rdprincessblablabla666666adminroot
![Page 22: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/22.jpg)
Ataque Brute Force
SQL Server
AUTH MASTER
MASTER
TCP 143
3
![Page 23: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/23.jpg)
Demo--AUTH--
![Page 24: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/24.jpg)
PasswordEscolha o modelo de autenticação• SQL Authentication•Windows Authentication
Políticas de senha• Password Policy• Password Expiration
![Page 25: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/25.jpg)
Nível 2: Autenticação
SQL Server
TCP 1433
MASTER
Autenticação
Active DirectoryDomain
Controller
Não há password clear-textPWDENCRYPT: HASH + SaltPolítica de senha:• Complexidade• Expiração
![Page 26: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/26.jpg)
Quebrando o SandboxTécnica usada para aumentar o poder do usuário
![Page 27: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/27.jpg)
Primeiro Acesso aos Dados
SQL Server
AUTH
UserDatabase
TCP 143
31. LOGIN
DB
DB DB
2. CMDS
![Page 28: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/28.jpg)
Login vs UserSQL ServerTCP
1433AUTH
DATABASE1
USERLOGIN
DATABASE2
USER
![Page 29: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/29.jpg)
Perigo: Cross-Database Chaining
SQL ServerTCP 1433
AUTHDATABASE1
dboLOGIN
DATABASE2
USER dbo
Cross DB Chaining(SQL200
0)
Trustworthy DB
(SQL2005+)
![Page 30: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/30.jpg)
SQL ServerTCP 1433
userdbo /
db_owner
Elevação de Privilégio
AUTHDATABASE1
SELECTUPDATE..
USERMASTER
DATABASE2
DATABASE3dbo
dbodbo
![Page 31: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/31.jpg)
Personificação de UsuárioPermissão de IMPERSONATE
Limitado ao contexto de Database• sp_approle (password)• EXECUTE AS USER
Considerações adicionais para acesso “cross-database”• Trustworthy bit
![Page 32: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/32.jpg)
Demo--TOKEN-
![Page 33: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/33.jpg)
SQL ServerTCP 1433
Explorar falha em código nativo•Unsafe CLR•XP (DLL)
Elevação de Privilégio
AUTHDATABASE1
USER
SELECTUPDATE..
Extended Procedure
s(XP)
UnsafeCLR
Trustworthy DB
sysadmin
![Page 34: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/34.jpg)
Nível 3: Limitação de Acesso por DB
SQL Server
AUTH
UserDatabase
TCP 143
31. LOGIN
DB
DB DB
2. CMDS
![Page 35: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/35.jpg)
SQL InjectionPrincipal Ataque ao Banco de Dados
![Page 36: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/36.jpg)
Passando comandos ao BD
SQL Server
TCP80
Web Server
TCP1433
TCP 137/138
TCP 135
File SMBRPC
Locator
Frontend Backend
![Page 37: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/37.jpg)
Código simples (web)
![Page 38: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/38.jpg)
SQL Server
TCP 1433Query
DMLDDL
Tipos de Acesso
AUTH
DATABASE1
SELECT
USERINSERT
UPDATE
DELETECREATE
DROPALTER
![Page 39: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/39.jpg)
Demo‘’ + SQL INJECTION + ‘’
![Page 40: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/40.jpg)
Uma forma simples de enganar o banco de dados
SQL Injection
![Page 41: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/41.jpg)
Parametrizando Comandos
![Page 42: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/42.jpg)
SQL ServerTCP
1433
Limitação de Acesso
AUTHDATABASE1
USERDML
QueryLOGIN
DDL
![Page 43: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/43.jpg)
PrincipalsSecurable
Permissions
Objetos e Permissões
https://msdn.microsoft.com/en-us/library/ms191465.aspx
![Page 44: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/44.jpg)
Hierarquia de PermissãoInstância
Database
SchemaTables
Stored ProcsViews
Impersonate
USERLOGIN
PP
PP
Permission
P
DBSchOBJ
etc
Login
Endpoint
etc
PP
P
![Page 45: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/45.jpg)
Bons exemplos de permissãoImpedir que usuários de aplicação executem DDLEvitar acesso direto às tabelas do banco de dados
Aplicação OLTP• Usar Stored Procedures (GRANT EXECUTE on PROC)
Aplicação OLAP• Usar Views (GRANT SELECT on VIEW)
Organizar os objetos em Schema para agrupar permissão
![Page 46: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/46.jpg)
Nível 4: Restringindo Permissões
Instância SQL
DatabaseSchema
Stored ProcsViews
USERLOGINEXEC
SELECT
![Page 47: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/47.jpg)
Fora Hackers!Minimizando os riscos com proteção em camadas
![Page 48: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/48.jpg)
Proteção em Camadas
SQL Server
DBSchOBJ
SELECTEXECUTE
AUTH
Segurança de RedeAutenticação
Isolamento por DBPermissionamento
![Page 49: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/49.jpg)
Obrigado
![Page 50: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/50.jpg)
Episódio II – Data at RestQuando o perigo está do lado de dentro
![Page 51: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/51.jpg)
Proteção em Camadas
SQL Server
TCP80
IIS (HTTP)
TCP1433
TCP 137/138
TCP 135
File SMBRPC
Locator
Frontend Backend
![Page 52: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/52.jpg)
CenáriosTransporte de backup para outro Data CenterFita de backup de antigoAmbiente de homologaçãoBanco de dados compartilhado por clientesFalta de confiança no DBA
![Page 53: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/53.jpg)
SANLANAppTeste
Storage
Data Mask
TransparentDataEncryption
Backup
Row Level Security
Cliente1 Cliente2
App Segura
SQL Server
Always Encrypted
![Page 54: Fora Hackers! Proteção em camadas do SQL Server](https://reader034.vdocuments.net/reader034/viewer/2022051404/58730bed1a28ab99088b6d83/html5/thumbnails/54.jpg)
Obrigado