Objetivo: Prevenir a ocorrência de erros, perdas, modificação não autorizada ou mau uso de informações em aplicações.
Convém que controles apropriados sejam incorporados no projeto das aplicações, inclusive aquelas desenvolvidas pelos usuários, para assegurar o processamento correto. Convém que esses controles incluam a validação dos dados de entrada, do processamento interno e dos dados de saída.
Controles adicionais podem ser necessários para sistemas que processem informações sensíveis, valiosas ou críticas, ou que nestas exerçam algum impacto. Convém que tais controles sejam determinados com base em requisitos de segurança e a análise/avaliação de riscos.
12.2.1 Validação dos dados de entrada
Controle
Convém que os dados de entrada de aplicações sejam validados para garantir que são corretos e apropriados. Diretrizes para implementação
Convém que sejam aplicadas checagens na entrada de transações de negócios, em dados permanentes (por exemplo, nomes e endereços, limites de crédito, números de referência de clientes) e em, parâmetros de tabelas (por exemplo, preços de venda, taxas de conversão de moedas, tarifas de impostos). Convém que as seguintes diretrizes sejam consideradas:
a) entrada duplicada ou outros tipos de verificação, tais como checagem de limites ou campos limitando as faixas específicas de dados de entrada, para detectar os seguintes erros:
1) valores fora de faixa;
2) caracteres inválidos em campos de dados; 3) dados incompletos ou faltantes;
4) volumes de dados excedendo limites superiores ou inferiores; 5) dados de controle inconsistentes ou não autorizados;
b) verificação periódica do conteúdo de campos-chave ou arquivos de dados para confirmar a sua validade e integridade;
c) inspeção de cópias impressas de documentos de entrada para detectar quaisquer alterações não autorizadas (convém que todas as mudanças em documentos de entrada sejam autorizadas);
d) procedimentos para tratar erros de validação;
e) procedimentos para testar a plausibilidade dos dados de entrada;
f) definição da responsabilidade de todo o pessoal envolvido no processo de entrada de dados; g) criação de um registro de atividades envolvendo o processo de entrada de dados (ver 10.10.1). Informações adicionais
A verificação e validação automática de dados de entrada podem ser consideradas, onde aplicáveis, para reduzir o risco de erros e prevenir ataques conhecidos como buffer overflow e injeção de código.
12.2.2 Controle do processamento interno
Controle
Convém que sejam incorporadas, nas aplicações, checagens de validação com o objetivo de detectar qualquer corrupção de informações, por erros ou por ações deliberadas.
Diretrizes para implementação
Convém que o projeto e a implementação das aplicações garantam que os riscos de falhas de processamento que levem à perda de integridade sejam minimizados. Áreas específicas a serem consideradas incluem:
a) o uso das funções, como incluir, modificar e remover para implementação de alterações nos dados; b) procedimentos para evitar que programas rodem na ordem errada ou continuem rodando após uma
falha de processamento (ver 10.1.1);
c) o uso de programas apropriados para recuperação de falhas, para assegurar o processamento correto dos dados;
d) proteção contra ataques usando buffer overrun/overflow;
Convém que seja preparada uma lista de verificação apropriada, as atividades sejam documentadas e os resultados sejam mantidos em segurança. Exemplos de verificações que podem ser incorporadas incluem:
a) controles de seções ou de lotes, para reconciliar saldos de arquivos após as atualizações de transações;
b) controles de saldos, para verificação de saldos abertos comparando com saldos previamente encerrados o batimento de saldos de abertura contra saldos de fechamento, utilizando:
1) controles run-to-run;
2) totalizações na atualização de arquivos; 3) controles program-to-program;
c) validação de dados de entrada gerados pelo sistema (ver 12.2.1);
d) verificações de integridade, autenticidade ou qualquer outra característica de segurança, de dados ou softwares transferidos, ou atualizados entre computadores centrais e remotos;
e) implementação de técnicas de consistência (hash) para registros e arquivos; f) verificações para garantir que os programas sejam rodados no tempo correto;
g) verificações para garantir que os programas sejam rodados na ordem correta e terminem em caso de falha, e que qualquer processamento adicional seja estancado, até que o problema seja resolvido; h) criação de um registro das atividades envolvidas no processamento (ver 10.10.1).
Informações adicionais
Os dados que tenham sido corretamente alimentados podem ser corrompidos por falhas de hardware, erros de processamento ou por atos deliberados. As verificações de validação requeridas dependem da natureza das aplicações e do impacto, no negócio, de qualquer corrupção de dados.
12.2.3 Integridade de mensagens
Controle
Convém que requisitos para garantir a autenticidade e proteger a integridade das mensagens em aplicações sejam identificados e os controles apropriados sejam identificados e implementados.
Diretrizes para implementação
Convém que seja efetuada uma análise/avaliação dos riscos de segurança para determinar se a integridade das mensagens é requerida e para identificar o método mais apropriado de implementação.
Informações adicionais
As técnicas criptográficas (ver 12.3) podem ser usadas como um meio apropriado para a implementação da autenticação de mensagens.
12.2.4 Validação de dados de saída
Controle
Convém que os dados de saída das aplicações sejam validados para assegurar que o processamento das informações armazenadas está correto e é apropriado às circunstâncias.
Diretrizes para implementação
A validação de dados de saída pode incluir:
a) verificações de plausibilidade para testar se os dados de saída são razoáveis;
b) controles envolvendo contagens de reconciliação para garantir o processamento de todos os dados; c) fornecimento de informação suficiente para que um leitor ou um sistema de processamento
subseqüente possa determinar a exatidão, completeza, precisão e classificação das informações; d) procedimentos para responder aos testes de validação dos dados de saída;
e) definição das responsabilidades de todo o pessoal envolvido no processo de dados de saída; f) criação de um registro de atividades do processo de validação dos dados de saída.
Informações adicionais
Tipicamente, sistemas e aplicações são construídos no pressuposto de que, tendo sido efetuadas as validações apropriadas, verificações e testes, as saídas estarão sempre corretas. Contudo, este pressuposto nem sempre é válido, isto é, sistemas que tenham sido testados podem ainda produzir dados de saída incorretos sob certas circunstâncias.