O logging e uma dimensao muito importante de uma aplicacao, mas que e amplamente negligenciada durante o seu processo de design, assim como a seguranca de software. Nao e a toa que uma das praticas iniciais recomendadas pelo BSIMMv2 (AA1.1) de enfoque aos mecanismos de seguranca, conteudo no qual o logging se enquadra.Talvez seja o fato dos principais interessados: auditor, desenvolvedor e administrador do sistema, nao estarem tao interessados assim, desde o principio (abordagem build security outside in). O administrador do sistema normalmente nao e estimulado a pensar nos sinais que a aplicacao deva lhe fornecer para atuar diante de questoes de producao. O auditor so chega em cena, depois que o circo comeca a pegar fogo, ou por imposicao regulatoria. Ja o desenvolvedor, se vale das ferramentas de debug para resolver os problemas de codigo, desdenhando do log.Mas considere que voce esteja numa situacao privilegiada, na qual pode pensar em logging antes que necessite de fato do log. Que caminho seguir? De forma bem objetiva e resumida recomendaria as seguintes etapas para o sucesso da sua iniciativa de logging.Reconheca a aplicabilidade do logPara reconhecer a aplicabilidade e fundamental levantar que cenarios serao tratados pela sua organizacao. Isso pode partir das atividades comuns dos papeis citados anteriormente. Por exemplo, o auditor precisara atuar diante de cenarios que envolvam ataques, uso inadequado e falhas. Ja o desenvolvedor e o administrador se interessariam mais por cenarios de falhas, erros e desempenho. Inclua as seguintes questoes durante a sua analise:A que servira o log? Essa questao lhe ajudara a se afastar da tecnologia e perceber que o log possui um objetivo e que este deve ser o foco. Temos alguns exemplos:Garantir nao repudio de acoes executadas por usuarios autenticos. Reconhecer fluxos de execucao ou entradas para a aplicacao reconhecidamente suspeitas.Identificar a linha do codigo fonte que comprometeu a execucao da aplicacao.Mostrar a pilha de execucao relacionada a determinado falha da aplicacao.Recuperar os dados que eram processados no momento de alguma falha.Reconhecer quando determinados eventos sao iniciados e concluidos. Reconhecer o tempo de processamento de determinadas acoes da aplicacao.Reconhecer o estado de recursos, como espaco disponivel em disco.Como o log sera consumido? Essa questao vai influenciar diretamente no conteudo do log, que devera ser elaborado para que as diferentes formas de consumo sejam possiveis. Manualmente com/sem apoio de ferramentas automatizadas ou automaticamente. Qual a origem dos registros do log? Definicao que lhe orientara quanto a dinamica para consolidar os registros, alem de dar um tratamento homogeneo independente da origem.Aplicacao, WAF, servidor de aplicacao, etc.Como o log sera armazenado? Sua infraestrutura tera que estar preparada para receber os registros, garantir a sua seguranca, oferecer acesso concorrente, etc.Arquivo, banco de dados e/ou console.Dimensao maxima da base.Segmentacao do arquivo.Defina o conteudo do logUma vez que se tem a nocao do que se espera do log e do ambiente em que ele estara inserido, chega o momento da definicao do seu conteudo. Uma abordagem bastante interessante e o reconhecimento dos eventos que devem ser encontrados no log. Como nosso interesse esta muito voltado para seguranca, nada mais natural que tratar