Especificações Técnicas

 

Sumário

 

Backend2

Ambiente de Produção2

Domínios utilizados2

Plataformas2

Android2

IOS3

Versionamento3

Autenticações4

Autenticação SAML.. 4

Autenticação ActiveDirectory/LDAP4

Autenticação Local 5

Criptografia5

Datasources5

SaaS Application Security Assessment 7

SaaS Evaluation7

Perguntas frequentes8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Backend 

 

O Backend é uma aplicação web com APIs REST. Ela é o ponto principal do sistema, aonde fica a base de dados e toda a lógica de negócio. As tecnologias utilizadas no Backend são: 

 

Tecnologia

Versão

Amazon Linux AMI

2017.09

NGINX

1.10 

PHP

7.1.11

MySQL

5.7

 

 

Ambiente de Produção 

 

O ambiente de produção está hospedado na AWS na região sa-east-1 e está disponível em: 

 

URL:      https://admin.worksphere.com.br 

IP:          54.233.78.151

 

 

Domínios utilizados

 

Domínio

Protocolo

Portas

Objetivo

api.worksphere.com.br

TCP

443

Chamadas API

s3-sa-east-1.amazonaws.com

TCP

443

Imagens e vídeos

fcm.googleapis.com

TCP

5228 - 5230

Mensagens PUSH e analytics

 

 

Plataformas

 

Android 

O aplicativo Android é desenvolvido em linguagem Java (nativo) e possui suporte à versão do Android 4.1 ou superior.

 

IOS

O aplicativo iOS é desenvolvido em linguagem Swift (nativo) e possui suporte à versão 8.0 ou superior. 

 

 

 

Versionamento

 

Entendimento do posicionamento dos números

 

 

 

Tomando por base o exemplo desta imagem ao nosso lado direito, temos a seguinte definição:

 

1.x.x = Versão Maior (Major version), comumente utilizada para grandes mudanças no produto em questão, como: troca de plataforma, mudança na arquitetura, compatibilidade e por aí vai…

 

x.5.x = Versão Menor (Minor version), destaca-se novas funcionalidades no produto, sem perder a compatibilidade com as versões anteriores.

 

x.x.2 = Revisão (Patch release), amplamente utilizado para correção de erros no aplicativo (Bug fixes). Essas correções podem ser qualquer tipo de anomalia no comportamento do aplicativo que foi preciso interversão da área de desenvolvimento para a devida correção, chamado nos bastidores carinhosamente como "Colocar o trem nos trilhos novamente!"

 

 

Podemos ter ainda mais duas variações conforme demonstrado abaixo:

 

V. 1.0.0 (000) : Onde o número entre parênteses significa o Build em que se encontra o aplicativo. Para os usuários em geral não muda nada, este tipo de anotação ao número do versionamento é para o controle da equipe de desenvolvimento e Q&A (Garantia e Qualidade) ter maior gestão.

 

 

V. 1.0.0 (000)-X0.0 : Segue os mesmos princípios explicados anteriormente com duas informações adicionais: (X) é a identificação da plataforma de produto e o (3.0.0) indica o tipo de device dentro da plataforma, Versão Menor e Release.

 

Por exemplo:

 

v. 1.5.2-A3.6 (onde A=Android, 3=Versão Menor e 6=Release)

v. 1.5.2-I6.9 (onde I=iOS, 6=Versão Menor e 9=Release).

 

 

Autenticações

 

Autenticação SAML 

Autenticação através do protocolo SAML que permite o acesso automático de usuários através de contas do Google G Suite, ADFS, entre outros. 

A autenticação por SAML permite o mapeamento de grupos entre o AD e o Worksphere para fácil controle de acesso. 

 

Display Name

Worksphere

Platform

Worksphere

Federation Type

SAML

Federation Deployment

Service Provider (SP) Initiated

Federation Metadata URL

https://sso.worksphere.com.br/saml/module.php/saml/sp/metadata.php/worksphere-sp

Identifier

(Issuer, Entity ID)

Provide the identifier that will be presented by the application

https://sso.worksphere.com.br/saml/module.php/saml/sp/metadata.php/worksphere-sp

Endpoint URL

(Assertion Consumer Service URL)

Provide the URL the SAML assertion will be sent back to

*HTTPS required

https://sso.worksphere.com.br/saml/module.php/saml/sp/saml2-acs.php/worksphere-sp

Endpoint Binding

POST

Required Claims

Specify the Claims/assertions your application will consume

  • Email
  • Given Name
  • Family Name
  • Phone Number
  • User Groups
  • Area
  • Department
  • Cargo
  •  

Require Token Encryption

No

Secure Hash Algorithm

SHA256

 

 

Autenticação ActiveDirectory/LDAP 

Autenticação através de servidor AD/ADFS/LDAP, caso o servidor esteja numa rede interna é necessária integração com o servidor Worksphere através de VPN ou outra forma de acesso remoto. 

A autenticação por AD/ADFS/LDAP permite o mapeamento de grupos com o Worksphere para fácil controle de acesso. 

A consulta aos grupos é feita através dos Claims retornados pelo ADFS após a autenticação do usuário. Ou seja, quando o usuário é autenticado o ADFS nos retorna um XML com os dados dele, entre estes dados temos os grupos aos quais ele pertence. Estes grupos são então mapeados com grupos do Worksphere para controlar o acesso

 

Quando um novo profissional acessa o aplicativo é verificado se o seu usuário existe na base do Worksphere, se não existir é criado um novo com permissões de acesso básicas. Se já existir, são mantidas as permissões configuradas

 

Autenticação Local 

O Worksphere possui uma base de usuários local que permite a importação através de arquivos Excel (.xlsx) Clique aqui para ter acesso ao exemplo de formatação e procedimento de importação.

 

Criptografia

 

Toda a comunicação é criptografada com TLSv1.2 e a plataforma utiliza somente as cifras fortes (ECDH). Nas partes do banco que armazenam senhas a plataforma utiliza hash blowfish. Para os dados criptografados no Banco de dados, usamos AES 256.

 

Datasources 

 

O Worksphere possui um refinado sistema de Datasources que permite integração com outros sistemas através de webservices e arquivos XML. A integração suporte atualizações em tempo real, em horários especificados ou através do envio de arquivos para o servidor. 

 

Exemplo de arquivo XML

 

<nomeDoApp>

<nomeDoServico DataReferencia="2019-04-20T10:10:05">

<nomePagina CodigoFuncionario="11111" NomeFuncionario="NOME DO FUNCIONARIO 1">

<DadosVenda>

<Valor>12345</Valor>

<Meta>23456</Meta>

<MediaDiaria>12321</MediaDiaria>

</DadosVenda>

<DadosDesconto>

<Percentual>50</Percentual>

<Meta>70</Meta>

</DadosDesconto>

<DadosItem>

<Quantidade>500</Quantidade>

<Meta>2000</Meta>

<MediaDiaria>50</MediaDiaria>

</DadosItem>

<DadosCliente>

<Quantidade>200</Quantidade>

<Meta>300</Meta>

<MediaDiaria>15</MediaDiaria>

</DadosCliente>

</nomePagina>

<nomePagina CodigoFuncionario="22222" NomeFuncionario="NOME DO FUNCIONARIO 2">

<DadosVenda>

<Valor>12345</Valor>

<Meta>23456</Meta>

<MediaDiaria>12321</MediaDiaria>

</DadosVenda>

<DadosDesconto>

<Percentual>50</Percentual>

<Meta>70</Meta>

</DadosDesconto>

<DadosItem>

<Quantidade>500</Quantidade>

<Meta>2000</Meta>

<MediaDiaria>50</MediaDiaria>

</DadosItem>

<DadosCliente>

<Quantidade>200</Quantidade>

<Meta>300</Meta>

<MediaDiaria>15</MediaDiaria>

</DadosCliente>

</nomePagina>

<nomePagina CodigoFuncionario="33333" NomeFuncionario="NOME DO FUNCIONARIO 3">

<DadosVenda>

<Valor>12345</Valor>

<Meta>23456</Meta>

<MediaDiaria>12321</MediaDiaria>

</DadosVenda>

<DadosDesconto>

<Percentual>50</Percentual>

<Meta>70</Meta>

</DadosDesconto>

<DadosItem>

<Quantidade>500</Quantidade>

<Meta>2000</Meta>

<MediaDiaria>50</MediaDiaria>

</DadosItem>

<DadosCliente>

<Quantidade>200</Quantidade>

<Meta>300</Meta>

<MediaDiaria>15</MediaDiaria>

</DadosCliente>

</nomePagina>

<nomePagina CodigoFuncionario="44444" NomeFuncionario="NOME DO FUNCIONARIO 4">

<DadosVenda>

<Valor>12345</Valor>

<Meta>23456</Meta>

<MediaDiaria>12321</MediaDiaria>

</DadosVenda>

<DadosDesconto>

<Percentual>50</Percentual>

<Meta>70</Meta>

</DadosDesconto>

<DadosItem>

<Quantidade>500</Quantidade>

<Meta>2000</Meta>

<MediaDiaria>50</MediaDiaria>

</DadosItem>

<DadosCliente>

<Quantidade>200</Quantidade>

<Meta>300</Meta>

<MediaDiaria>15</MediaDiaria>

</DadosCliente>

</nomePagina>

<nomePagina CodigoFuncionario="55555" NomeFuncionario="NOME DO FUNCIONARIO 5">

<DadosVenda>

<Valor>12345</Valor>

<Meta>23456</Meta>

<MediaDiaria>12321</MediaDiaria>

</DadosVenda>

<DadosDesconto>

<Percentual>50</Percentual>

<Meta>70</Meta>

</DadosDesconto>

<DadosItem>

<Quantidade>500</Quantidade>

<Meta>2000</Meta>

<MediaDiaria>50</MediaDiaria>

</DadosItem>

<DadosCliente>

<Quantidade>200</Quantidade>

<Meta>300</Meta>

<MediaDiaria>15</MediaDiaria>

</DadosCliente>

</nomePagina>

</nomeDoServico>

</nomeDoApp>

 

SaaS Application Security Assessment

 

Main application’s objectives

Offer to our employees information about their sales, services that they can use to improve their results, news, tips and relevant informations about the company.

What kind of audience does the application target

Internal users (Employeed, External Consultants, Contractors)

What kind of data does the application handle

Personal data (name, e-mail, department/sector, phone number and other optional data);

Company News and information published by the communication sector.

What would be the impact of an application unavailability

Minor impact

What would be the impact of a loss of integrity of data (destruction, alteration, loss, …)

Minor impact

What would be the impact of a data disclosure

Minor impact

What would be the impact of a lack of trails or audit proof

Minor impact

Dies the application have to comply with laws or regulations

No

Business sensivity

NON-SENSITIVE

 

 

 

 

 

 

 

 

 

 

 

 

SaaS Evaluation

 

Key Security Measure - SaaS provider Comply

SLA provided by the service offered

Service levels in terms of performance (such as response time for the software)

Service monitoring

Security logs of IT components (Firewall proxy…) and application's servers are able to collect and are maintained in your systems

Critical users actions (i.e. authentication, data modification, business critical operations) are able to track and are accessible for the enterprise

Protection of communications between the company and your application. Algorithm supported and accepted

Communications between the company and the SaaS provider are authenticated

Protect the communications inside IS (including any third parties)

Backup of the company data inside the aplication

Protect any access to any support you may use to perform the backups (including externalized one)

Protection implemented to servers (antivirus, antimalware , etc.)

Development Life process

Employees sign a confidentiality-security agreement and company sign a NDA as well concerning the company's data

Procedure to ensure that administrator accounts and passwords are appropriately protected (MFA, strong password policy, etc…)

Access rights provisioning and deprovisionning services available (Web interface, API for batch import or directory synchronization)

Reviewing employees accounts

Ensure that network and administration duties are properly segregated

Ensure inappropriate access from employees is perform on the company's data

Security for SaaS (WAS, WAF, pen-tests)

Owner of the data stored on SaaS

Downtime procedure calculation

Human resources policy

Conditions under which the SaaS provider and/or enterprise may change or terminate the service

Disciplinary process to employees respect all security obligations

The company will audit services

Comply with the local and international regulations

 

 

 

 

 

 

 

 

 

Perguntas frequentes

 

O fornecedor possui um documento relatando arquitetura e requisitos técnicos da aplicação que está sendo avaliada?

 

Resposta: Documentação técnica está expostas nas primeiras páginas deste documento.

 

O fornecedor da solução possui uma política de segurança da informação? Caso positivo, esta pode ser divulgada para o cliente?

 

Resposta: Contamos com Política Interna de Segurança da Informação. Podem nos apontar os itens que desejam consultar para, desde que contemplados em nossos termos, retornarmos as informações.

 

O sistema é hospedado em infraestrutura própria ou em plataformas Cloud de terceiros (Amazon, Azure, Google, IBM...)? Caso seja em plataforma de terceiros, a gestão do ambiente é realizada pelo fornecedor?

 

Resposta: Está hospedado na AWS (Amazon Web Services), a plataforma é da B2 Mídia.

 

Caso esteja em infraestrutura privada, como é a segurança de acesso físico ao ambiente onde está hospedada a aplicação e os dados do cliente?

 

Resposta: N/A

 

A instância ou ambiente onde está hospedado a aplicação é compartilhado ou dedicado para cada cliente? Caso seja um ambiente compartilhado, como é feita a segregação de dados dos clientes?

 

Resposta: Ambiente compartilhado, segregação de informações é feita na camada de aplicação e de banco de dados.

 

A aplicação/sistema depende de integração com a estrutura do cliente ou de componentes que devem ser implementados/hospedados na infraestrutura do cliente?

 

Resposta: Não é necessário para a operação básica. Pode ser necessário caso deseje integração com sistemas internos do cliente.

 

Quais as formas de autenticação suportadas? É suportado SAML 2.0 para SSO com estrutura de AD (Active Directory) do cliente?

 

Resposta: Autenticação Local, SAML e AD. SAML 2.0 suportado.

 

 

Existe um procedimento formal de recuperação de desastres para este ambiente/sistema, descrevendo RPO e RTO? Caso positivo, de quanto em quanto tempo este procedimento é testado?

 

Resposta: Não existe este procedimento.

 

Existe um documento formal relatando as políticas e procedimentos de backup do ambiente/dados do sistema?

 

Resposta: Não há documentação formal, entretanto junto à AWS o backup é feito diariamente.

 

Onde são armazenadas as mídias de backup? Em caso de utilização de mídias físicas, as mesmas são armazenadas e transportadas de forma segura?

 

Resposta: Os backups automáticos são armazenados na própria AWS.

 

Qual a periodicidade de atualizações da aplicação e dos sistemas/hardwares que a suportam? Estas atualizações são comunicadas para o cliente? Estas atualizações passam por rotinas de testes antes de serem aplicadas?

 

Resposta: As atualizações são esporádicas para melhorias e /ou bug fixes, podendo ou não ser sob demanda. Os sistemas (iOS e Android) e hardwares (Celulares em geral para a aplicação e Computadores para WebView) que a suportam não são de propriedade e/ou responsabilidade da B2 Mídia.

 

Há um procedimento formal para resposta a incidentes de segurança da informação? De que forma é feita a comunicação quanto a violações de segurança?

 

Resposta: Até a presente data não houveram incidentes envolvendo a segurança da informação, contudo como previsto em nosso termo de política de segurança, para estes é prevista comunicação por e-mail para os pontos de contato.

 

A empresa utiliza frameworks como OWASP para revisão de código e detecção de vulnerabilidades na aplicação?

 

Resposta: Seguimos as boas práticas da OWASP e validamos as interfaces web para segurança.

 

Aplicação e infraestrutura passam por testes de intrusão ou análise de vulnerabilidades? Caso positivo, estes testes são realizados por equipe interna ou especializada? Quando foram realizados os últimos testes? O resultado executivo dos últimos testes pode ser fornecido para o cliente?

 

Resposta: A aplicação foi avaliada pontualmente por alguns clientes, cada qual com seus critérios. Não é permitida a divulgação dos resultados e/ou parâmetros avaliados.

 

Quais modalidades de suporte disponíveis (24x7, 5 dias por semana/horário comercial...)?

 

Resposta: Segunda à sexta-feira das 08h30 às 17h30, exceto feriados.

 

Em caso de interrupção de contrato por qualquer motivo, qual as opções disponíveis para migração dos dados do cliente?

 

Resposta: É possível exportar a base para CSV.

 

Em caso de interrupção de contrato por qualquer motivo, qual o procedimento adotado para remoção segura dos dados do cliente?

 

Resposta: Os dados e arquivos são apagados da base de produção e após 7 dias são eliminados do backup.

 

Os usuários Administradores e outros podem realizar o login no Backend usando o usuário ADFS?

 

Resposta: Não, o login via ADFS é possível somente via aplicativo. Para o login via Backend é suportado apenas o protocolo OAuth2 ou a autenticação local.

 

Os usuários Administradores e outros podem realizar o login no Backend usando o usuário ADFS?

 

Resposta: Não, o login via ADFS é possível somente via aplicativo. Para o login via Backend é suportado apenas o protocolo OAuth2 ou a autenticação local. Sendo assim, necessário que um usuário da solução Worksphere, que precise utilizar o Backend, que ele tenha uma senha à parte já registrada no Worksphere.