[Owasp-brazilian] Segurança na web - discussão com o Fernando Cima

Lucas Ferreira lucas at sapao.net
Mon Apr 4 12:51:15 EDT 2011


Pessoal,

eu estava discutindo alguns pontos do documento com o Fernando Cima em
emails privados mas ele me autorizou a colocar a discussão em público
aqui na lista. Acredito que as discussões abertas são a melhor forma
de melhorarmos o documento.

Assim, seguem os emails que trocamos, em ordem cronológica.

Inté,

Lucas

-------------------------------------------------------------------------------------------------------------------------





---------- Forwarded message ----------
From: Fernando Cima (SCOE) <fcima at microsoft.com>
Date: 2011/4/2
Subject: RE: [Owasp-brazilian] Segurança na web - Uma janela de oportunidades
To: Lucas Ferreira <lucas.ferreira at owasp.org>


Oi Lucas,

Não acho muito bom a OWASP se colocar no papel de recomendar políticas
públicas, em especial quando as recomendações - se adotadas - forem
ter um efeito negativo sobre a indústria nacional de software e sobre
os profissionais que trabalham na segurança de sistemas, como eu
infelizmente acho que terão. Acho que o ideal seria que você colocasse
isto como sendo suas idéias e não da comunidade OWASP.

Para efeito de colaborar com a discussão, alguns pontos que eu acho
que poderiam ser melhor esclarecidos:

"é importante que as falhas encontradas em sistemas informatizados e
os descritivos dos ataques sofridos pelas organizações sejam
amplamente divulgados." Isto se refere somente às organizações
públicas, ou a qualquer tipo de organização?

"Sugerimos a criação de uma agência governamental especializada para
regular e gerir as atividades de troca de informações sobre
vulnerabilidades de segurança de forma ética e responsável, inclusive
com poder para punir pessoas e organizações que atuem de forma nociva
à sociedade."  No que consistiria atuar de forma nociva à sociedade, e
quais seria as possíveis punições?

"responsáveis pela segurança dos sistemas que operam ou comercializam.
A legislação deve prever a possibilidade de punição para as
organizações que não tomarem providências adequadas para garantir a
segurança de seus sistemas." Qual a definição das providências
adequadas, e como seriam estas punições? Acho interessante notar o
paralelo feito anteriormente com as investigações de acidentes aéreos.
Um dos principios destas investigações é a de que as conclusões não
podem ser utilizadas para punições dos responsáveis, apenas para
melhoria da segurança em vôo. Se pessoas forem punidas por não tomarem
as providências adequadas para garantir a segurança, acho que ninguém
irá colaborar com a investigação dos ataques.

"Exigir a abertura do código fonte de aplicativos utilizados pela
administração pública cuja vida útil tenha terminado" O que você
entende por abertura de código-fonte aqui? Seria apenas dar ao órgão
público a capacidade de criar as suas próprias correções de bugs de
segurança para instalação nos seus sistemas, ou seria algo mais amplo
(como alterações não relacionadas a correções de segurança, e/ou
redistribuição destas alterações)?

"Eliminar licenças de software que isentam os fabricantes da
responsabilidade com a segurança de seus produtos" Você está ciente
que isto inclui *todas* as licenças de software existentes hoje,
correto?

"Para evitar distorções no mercado de software, a responsabilidade dos
fabricantes pode ser limitada ao preço pago pelo sistema." Por preço
pago aqui, você se refere ao preço cobrado pela licença de uso, ao
preço cobrado pelo contrato de suporte, e/ou ao preço pago pelo uso do
serviço? Estas são as três principais formas existentes hoje para se
cobrar por um software.

"Assim, uma medida simples e efetiva para melhorar a segurança dos
sistemas web é exigir que os dados sejam transmitidos de forma segura
pela Internet." Para existir SSL é necessário que o sistema Web tenha
um certificado digital, e para este certificado digital prover um
mínimo de segurança é necessário que o titular dele tenha a sua
identidade validada por uma autoridade certificadora. O que esta
medida faria na prática é exigir que todo dono de sistema Web tenha
que se identificar. É isso mesmo?

"Financiar validações e correções de segurança para sistemas de código
aberto" Não bastaria incluir isto dentro do contrato de manutenção
destes softwares? Aliás, o contrato de manutenção destes softwares já
não inclui (ou deveria incluir) isto?

Abraços,

- Fernando Cima





---------- Forwarded message ----------
From: Lucas Ferreira <lucas.ferreira at owasp.org>
Date: 2011/4/2
Subject: Re: [Owasp-brazilian] Segurança na web - Uma janela de oportunidades
To: "Fernando Cima (SCOE)" <fcima at microsoft.com>


Cima,

a ideia do documento é apresentar temas gerais, sem necessariamente
escolher uma das possíveis implementações. Num paralelo com mundo das
políticas de segurança, o foco seria na definição da política e não
das normas e procedimentos. Muitos dos pontos que você levantou dizem
respeito a esse detalhes, que ficarão de fora desse documento, até por
questões de tamanho. No entanto, concordo que talvez seja necessário
produzir documentos mais detalhados para complementar essa "política"
inicial.

Repondo aos pontos específicos inline:

2011/4/2 Fernando Cima (SCOE) <fcima at microsoft.com>:
> Oi Lucas,
>
> Não acho muito bom a OWASP se colocar no papel de recomendar políticas públicas, em especial quando as recomendações - se adotadas - forem ter um efeito negativo sobre a indústria nacional de software e sobre os profissionais que trabalham na segurança de sistemas, como eu infelizmente acho que terão.

Eu discordo dessa afirmação. Não vejo porque exigir melhorias em
segurança teria efeitos negativos sobre a indústria nacional ou sobre
os profissionais de segurança.

Há também um esforço do OWASP em se aproximar de governos no mundo
todo, notadamente nos EUA e em Portugal. Os governos são players
importantes no cenário de segurança de aplicações e acreditamos que
devem ser incluidos no debate.

> Acho que o ideal seria que você colocasse isto como sendo suas idéias e não da comunidade OWASP.

Essas ideias não são só minhas. Elas são compartilhadas por nomes
importantes dentro do OWASP. Inclusive, a grande maioria das ideias
veio da já citada apresentação do Dinis Cruz. Eu não poderia colocar
como minhas ideias que apenas coletei em discussões e apresentações no
âmbito do OWASP.

Um dos objetivos de abrir as discussões dentro de todas as listas do
OWASP Brasil é também verificar se a comunidade brasileira do OWASP
concorda com as ideias colocadas.

>
> Para efeito de colaborar com a discussão, alguns pontos que eu acho que poderiam ser melhor esclarecidos:
>
> "é importante que as falhas encontradas em sistemas informatizados e os descritivos dos ataques sofridos pelas organizações sejam amplamente divulgados." Isto se refere somente às organizações públicas, ou a qualquer tipo de organização?

Qualquer organização. Vou tentar deixar isso mais claro no documento.

>
> "Sugerimos a criação de uma agência governamental especializada para regular e gerir as atividades de troca de informações sobre vulnerabilidades de segurança de forma ética e responsável, inclusive com poder para punir pessoas e organizações que atuem de forma nociva à sociedade."  No que consistiria atuar de forma nociva à sociedade, e quais seria as possíveis punições?
>

Como eu disse inicialmente, não acho que esse detalhes caibam no
documento. Isso inclusive poderia ser regulado em regulamentos
infra-legais, desde que com previsão em lei.

>
> "responsáveis pela segurança dos sistemas que operam ou comercializam. A legislação deve prever a possibilidade de punição para as organizações que não tomarem providências adequadas para garantir a segurança de seus sistemas." Qual a definição das providências adequadas, e como seriam estas punições? Acho interessante notar o paralelo feito anteriormente com as investigações de acidentes aéreos. Um dos principios destas investigações é a de que as conclusões não podem ser utilizadas para punições dos responsáveis, apenas para melhoria da segurança em vôo. Se pessoas forem punidas por não tomarem as providências adequadas para garantir a segurança, acho que ninguém irá colaborar com a investigação dos ataques.
>

Ao menos no caso dos voo 1907 da Gol, o relatório do Cenipa está sendo
usado no julgamento dos pilotos americanos, conforme confirmam
diversas notícias divulgadas na imprensa. Com relação à colaboração,
existem mecanismos compensatórios, como diminuir ou aumentar as
punições dependendo do nível de colaboração que houver.

> "Exigir a abertura do código fonte de aplicativos utilizados pela administração pública cuja vida útil tenha terminado" O que você entende por abertura de código-fonte aqui? Seria apenas dar ao órgão público a capacidade de criar as suas próprias correções de bugs de segurança para instalação nos seus sistemas, ou seria algo mais amplo (como alterações não relacionadas a correções de segurança, e/ou redistribuição destas alterações)?
>

A ideia aqui é permitir que os órgãos públicos possam  criar
correções. Vou ver se consigo deixar isso mais claro no texto.

> "Eliminar licenças de software que isentam os fabricantes da responsabilidade com a segurança de seus produtos" Você está ciente que isto inclui *todas* as licenças de software existentes hoje, correto?
>

Sim.

> "Para evitar distorções no mercado de software, a responsabilidade dos fabricantes pode ser limitada ao preço pago pelo sistema." Por preço pago aqui, você se refere ao preço cobrado pela licença de uso, ao preço cobrado pelo contrato de suporte, e/ou ao preço pago pelo uso do serviço? Estas são as três principais formas existentes hoje para se cobrar por um software.
>

Vou alterar o termo "preço" por "valor".

> "Assim, uma medida simples e efetiva para melhorar a segurança dos sistemas web é exigir que os dados sejam transmitidos de forma segura pela Internet." Para existir SSL é necessário que o sistema Web tenha um certificado digital, e para este certificado digital prover um mínimo de segurança é necessário que o titular dele tenha a sua identidade validada por uma autoridade certificadora. O que esta medida faria na prática é exigir que todo dono de sistema Web tenha que se identificar. É isso mesmo?
>

Dado que quase todas as aplicações web hoje usam algum mecanismo de
identificação ou autenticação e/ou implementam sessões, o uso de SSL é
necessário. É importante notar que estamos falando de sistemas web,
não de qualquer site. A definição do que será considerado um sistema
web certamente deverá ser trabalhada nos documentos mais detalhados.

> "Financiar validações e correções de segurança para sistemas de código aberto" Não bastaria incluir isto dentro do contrato de manutenção destes softwares? Aliás, o contrato de manutenção destes softwares já não inclui (ou deveria incluir) isto?
>

Muitos softwares de código aberto não necessitam de contratos de
manutenção e muitos órgãos públicos usam softwares open source sem
nenhum contrato ou licenciamento. Alias, uma das vantagens de
softwares abertos para órgãos públicos é que não são necessários
processos licitatórios ou burocracias orçamentárias.

Em suma, na maioria dos casos não há contrato onde incluir tais clausulas.

Finalizando, peço sua autorização para tornar esta discussão pública
na lista owasp-brazilian.

Inté,

Lucas





---------- Forwarded message ----------
From: Fernando Cima (SCOE) <fcima at microsoft.com>
Date: 2011/4/4
Subject: RE: [Owasp-brazilian] Segurança na web - Uma janela de oportunidades
To: Lucas Ferreira <lucas.ferreira at owasp.org>


Caro Lucas,

> Eu discordo dessa afirmação. Não vejo porque exigir melhorias em segurança teria efeitos negativos sobre a indústria nacional ou sobre os profissionais de segurança.

Uma coisa é exigir melhorias em segurança, outra coisa é punir
organizações e os profissionais responsáveis pela segurança. Trata-se
de situação inédita e em minha opinião absurda, ainda mais quando se
sabe que no Brasil não existe punição aos responsáveis pelos ataques.

Acredito que os detalhes aqui são importantes, porque eles são
cruciais para se entender como as propostas seriam implemntadas. A
falta deles para mim parece ser um sintoma do fato de o que está se
propondo não ser feito em lugar nenhum no mundo.

Vamos colocar um exemplo aqui para ilustrar as dificuldades práticas.
Suponha que o site da Câmara dos Deputados tenha sido comprometido,
usando uma vulnerabilidade de SQL injection. Dentro do banco de dados
haviam senhas dos usuários armazenadas em claro, que foram então
usadas para ter acesso aos e-mails do presidente da Câmara. Quem seria
punido aqui:

- O desenvolvedor da aplicação Web, que não validou os dados inputados
corretamente permitindo a vulnerabilidade de SQL injection.
- A empresa que desenvolveu o framework de gerência de conteúdo, que
armazena as senhas em claro no banco de dados.
- A empresa que desenvolveu o WAF, cujas assinaturas de SQL injection
foram bypassadas pelo atacante.
- O usuário, que colocou na aplicação Web a mesma senha que ele
colocou no serviço de e-mail.

> >No que consistiria atuar de forma nociva à sociedade, e quais seria as possíveis punições?
>
> Como eu disse inicialmente, não acho que esse detalhes caibam no documento. Isso inclusive poderia ser regulado em regulamentos infra-legais, desde que com previsão em lei.

Poderia citar ao menos um exemplo então de atuação de forma nociva à
sociedade, e de uma possível punição? Realmente não entendi o papel
desta agência.

> Ao menos no caso dos voo 1907 da Gol, o relatório do Cenipa está sendo usado no julgamento dos pilotos americanos, conforme confirmam diversas notícias
> divulgadas na imprensa. Com relação à colaboração, existem mecanismos compensatórios, como diminuir ou aumentar as
>punições dependendo do nível de colaboração que houver.

Se você ler um relatório do CENIPA, vai ver logo na primeira página o
seguinte texto:

" Outrossim, deve-se salientar a importância de resguardar as pessoas
responsáveis
pelo fornecimento de informações relativas à ocorrência de um acidente
aeronáutico. A
utilização deste Relatório para fins punitivos, em relação aos seus
colaboradores, macula o
princípio da "não auto incriminação" deduzido do "direito ao
silêncio", albergado pela
Constituição Federal.

Consequentemente, o seu uso para qualquer propósito que não o de prevenção de
futuros acidentes, poderá induzir a interpretações e conclusões errôneas."

Acho que a divulgação pelos órgãos públicos (não por empresas
privadas) de relatórios sobre as causas raiz de incidentes de
segurança seria uma das boas idéias do texto. Nada melhor do que
aprender com os erros dos outros. Mas se estas informações forem ser
usadas para também punições espere colaboração zero dos envolvidos.
Voltando às investigações aéreas, o uso do relatório do CENIPA neste
processo criminal já causou danos irreparáveis nas futuras
investigações.

> > Você está ciente que isto inclui *todas* as licenças de software existentes hoje, correto?
>
> Sim

Ok, então esteja ciente das consequências disto, em especial para os
projetos colaborativos. Por exemplo, todas as licenças 'open source'
contém uma cláusula que exclui qualquer responsabilidade dos autores
por danos diretos, indiretos, incidentais, etc. Para se relicenciar o
software é necessário que todos os titulares de copyright concordem
com a mudança na licença. Em alguns projetos é exigido que o copyright
de qualquer contribuição seja atribuído ao coordenador do projeto
(prática adotada por exemplo pela Free Software Foundation), em outros
isto não ocorre e podem existir até milhares de pessoas com copyright
em partes do código, caso do Linux por exemplo. Sugerir uma mudança da
licença nestes casos é algo virtualmente impossível.

> É importante notar que estamos falando de sistemas web, não de qualquer site. A definição do que será considerado um sistema web certamente deverá ser trabalhada nos documentos mais detalhados.

Realmente não consigo ver a diferença entre um sistema Web e um site Web.

> Muitos softwares de código aberto não necessitam de contratos de manutenção e muitos órgãos públicos usam softwares open source sem nenhum contrato ou licenciamento.
> Alias, uma das vantagens de softwares abertos para órgãos públicos é que não são necessários processos licitatórios ou burocracias orçamentárias.

Neste caso quem seria responsabilizado por uma falha encontrada no
software? O funcionário público que escolheu usar o software?

> Finalizando, peço sua autorização para tornar esta discussão pública na lista owasp-brazilian.

Claro, fique a vontade.

Abraços,

- Fernando Cima


---------- Forwarded message ----------
From: Lucas Ferreira <lucas.ferreira at owasp.org>
Date: 2011/4/4
Subject: Re: [Owasp-brazilian] Segurança na web - Uma janela de oportunidades
To: "Fernando Cima (SCOE)" <fcima at microsoft.com>


Cima,

seguem minhas considerações.

2011/4/4 Fernando Cima (SCOE) <fcima at microsoft.com>:
> Caro Lucas,
>
>> Eu discordo dessa afirmação. Não vejo porque exigir melhorias em segurança teria efeitos negativos sobre a indústria nacional ou sobre os profissionais de segurança.
>
> Uma coisa é exigir melhorias em segurança, outra coisa é punir organizações e os profissionais responsáveis pela segurança. Trata-se de situação inédita e em minha opinião absurda, ainda mais quando se sabe que no Brasil não existe punição aos responsáveis pelos ataques.
>

O documento não fala de punição aos profissionais. O documento fala em
"possibilidade de punição para as organizações que não tomarem
providências adequadas para garantir a segurança de seus sistemas."

Estamos falando punir quem negligênciar os aspectos de segurança em
seus sistemas.

> Acredito que os detalhes aqui são importantes, porque eles são cruciais para se entender como as propostas seriam implemntadas. A falta deles para mim parece ser um sintoma do fato de o que está se propondo não ser feito em lugar nenhum no mundo.
>

Caso as propostas do documento venham a ser implementadas, os detalhes
serão definidos pelos legisladores ou autores de políticas
governamentais. Como eu já disse, podemos depois definir documentos
mais detalhados, mas esses detalhes não cabem no documento atual.

> Vamos colocar um exemplo aqui para ilustrar as dificuldades práticas. Suponha que o site da Câmara dos Deputados tenha sido comprometido, usando uma vulnerabilidade de SQL injection. Dentro do banco de dados haviam senhas dos usuários armazenadas em claro, que foram então usadas para ter acesso aos e-mails do presidente da Câmara. Quem seria punido aqui:
>
> - O desenvolvedor da aplicação Web, que não validou os dados inputados corretamente permitindo a vulnerabilidade de SQL injection.
> - A empresa que desenvolveu o framework de gerência de conteúdo, que armazena as senhas em claro no banco de dados.
> - A empresa que desenvolveu o WAF, cujas assinaturas de SQL injection foram bypassadas pelo atacante.
> - O usuário, que colocou na aplicação Web a mesma senha que ele colocou no serviço de e-mail.
>

A organização caso não tenha sido diligente. Uma possibilidade, nos
moldes do SOX, é responsabilizar os gestores.

Nesse caso específico, a negligência está clara apenas no caso de
armazenamento de senhas em claro. Pode também ter havido negligência
na validação de entradas e pelo usuário final. Mas o desenvolvedor
pode ter se preocupado em validar as entradas e ter falhado, o que não
me parece negligência. O usuário pode não ter sido devidamente
treinado.

O fato de haver um WAF na frente do site seria um indicativo de
diligência, desde que existam procedimentos de administração
adequados. Poderia ser um atenuante.

>> >No que consistiria atuar de forma nociva à sociedade, e quais seria as possíveis punições?
>>
>> Como eu disse inicialmente, não acho que esse detalhes caibam no documento. Isso inclusive poderia ser regulado em regulamentos infra-legais, desde que com previsão em lei.
>
> Poderia citar ao menos um exemplo então de atuação de forma nociva à sociedade, e de uma possível punição? Realmente não entendi o papel desta agência.
>

Atuação nociva:
  - divulgar um 0-day incluindo exploit sem prévio aviso ao
fabricante do software.
  - fabricante é avisado mas não toma as devidas providências

Punições:
  - pecuniárias (multas, etc)
  - perda ou suspensão temporária de direitos, como a possibilidade
de fazer negócios com o governo ou licanças e alvarás de funcionamento
  - reclusão ou penas alternativas (prestação de serviços)

>> Ao menos no caso dos voo 1907 da Gol, o relatório do Cenipa está sendo usado no julgamento dos pilotos americanos, conforme confirmam diversas notícias
>> divulgadas na imprensa. Com relação à colaboração, existem mecanismos compensatórios, como diminuir ou aumentar as
>>punições dependendo do nível de colaboração que houver.
>
> Se você ler um relatório do CENIPA, vai ver logo na primeira página o seguinte texto:
>
> " Outrossim, deve-se salientar a importância de resguardar as pessoas responsáveis
> pelo fornecimento de informações relativas à ocorrência de um acidente aeronáutico. A
> utilização deste Relatório para fins punitivos, em relação aos seus colaboradores, macula o
> princípio da "não auto incriminação" deduzido do "direito ao silêncio", albergado pela
> Constituição Federal.
>
> Consequentemente, o seu uso para qualquer propósito que não o de prevenção de
> futuros acidentes, poderá induzir a interpretações e conclusões errôneas."
>
> Acho que a divulgação pelos órgãos públicos (não por empresas privadas) de relatórios sobre as causas raiz de incidentes de segurança seria uma das boas idéias do texto. Nada melhor do que aprender com os erros dos outros. Mas se estas informações forem ser usadas para também punições espere colaboração zero dos envolvidos. Voltando às investigações aéreas, o uso do relatório do CENIPA neste processo criminal já causou danos irreparáveis nas futuras investigações.
>

Na minha visão, se a organização fez o dever de casa e ainda assim foi
atacada com sucesso, as investigações lhe serão favoráveis ao mostrar
que houve diligência. Certamente não acreditamos que seja possível
eliminar todas as possibilidades de falha, mesmo quando forem tomados
os cuidados necessários.

Casos recentes como os famosos "mensalões" mostram que incentivos como
diminuição de penas promovem a colaboração por parte dos acusados.
Esse expediente é bastante comum no sistema legal americano.

Outra possibilidade é considerar uma organização negligente se não
existirem as condições necessárias para a investigação. Ou seja, faz
parte da diligência necessária a manutenção de condições para a
investigação de incidentes.

>> > Você está ciente que isto inclui *todas* as licenças de software existentes hoje, correto?
>>
>> Sim
>
> Ok, então esteja ciente das consequências disto, em especial para os projetos colaborativos. Por exemplo, todas as licenças 'open source' contém uma cláusula que exclui qualquer responsabilidade dos autores por danos diretos, indiretos, incidentais, etc. Para se relicenciar o software é necessário que todos os titulares de copyright concordem com a mudança na licença. Em alguns projetos é exigido que o copyright de qualquer contribuição seja atribuído ao coordenador do projeto (prática adotada por exemplo pela Free Software Foundation), em outros isto não ocorre e podem existir até milhares de pessoas com copyright em partes do código, caso do Linux por exemplo. Sugerir uma mudança da licença nestes casos é algo virtualmente impossível.
>

Como no caso de licenças open-source não há necessidade de pagamento
pelo software, e o texto prevê que "Para evitar distorções no mercado
de software, a responsabilidade dos fabricantes pode ser limitada ao
valor pago pelo sistema.", pode facilmente chegar a um texto legal que
mantenha essas licenças como aceitáveis.

>> É importante notar que estamos falando de sistemas web, não de qualquer site. A definição do que será considerado um sistema web certamente deverá ser trabalhada nos documentos mais detalhados.
>
> Realmente não consigo ver a diferença entre um sistema Web e um site Web.
>
>> Muitos softwares de código aberto não necessitam de contratos de manutenção e muitos órgãos públicos usam softwares open source sem nenhum contrato ou licenciamento.
>> Alias, uma das vantagens de softwares abertos para órgãos públicos é que não são necessários processos licitatórios ou burocracias orçamentárias.
>
> Neste caso quem seria responsabilizado por uma falha encontrada no software? O funcionário público que escolheu usar o software?
>

O texto não fala de punição simplesmente pelo fato de haver falhas de
segurança no software. Assim como o governo deve exigir requisitos
mínimos de segurança em seus contratos, deve haver um processo para
garantir requisitos mínimos de sistemas open-source. As validações
citadas no item "Financiar validações e correções de segurança para
sistemas de código aberto" poderiam ser uma boa forma de diligência
para a adoção de sistemas de código aberto. Todo esse processo pode
ser visto como "due diligence" para a adoção de software open-source.

Inté,

Lucas








-- 
Homo sapiens non urinat in ventum.


More information about the Owasp-brazilian mailing list