Especificações Técnicas
Sumário
- Backend
- Ambiente de Produção
- Ambiente de Homologação
- Domínios utilizados
- Plataformas
- Android
- IOS
- Versionamento
- Autenticações
- Autenticação SAML
- Autenticação ActiveDirectory/LDAP
- Autenticação Local
- Criptografia
- WAF
- Datasources
- SaaS Application Security Assessment
- SaaS Evaluation
- Perguntas frequentes
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
Ambiente de Homologação
O ambiente de homologação está hospedado na AWS na região sa-east-1 e está disponível em:
URL: https://admin.a.worksphere.com.br
IP: 18.231.47.65
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), utilizada para grandes mudanças no produto em questão, como: troca de plataforma, mudança na arquitetura, compatibilidade e etc.
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.
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 |
|
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.
WAF (Web Application Firewall)
Temos habilitadas todas as regras do OWASP ModSecurity Core Ruleset (https://coreruleset.org/) que são as recomendadas para segurança. Estas regras adicionam proteção contra:
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.