Backup do Hyper-V no Windows 10

Depois de pesquisar sobre soluções para backup do meu ambiente de desenvolvimento que está no Hyper-V, em meu windows 10, observei que os softwares de backup não suportam mais backup no windows cliente, então pesquisei sobre a forma mais simples e coerente para se fazer um backup no qual compilei neste artigo.

Basicamente você só precisará do Powershell.

Sinta-se livre para fazer seu script ou usar o powershell ISE:

Use os cmdlets

get-vm
export-vm -name SEUCOMPUTADOR -path UNIDADE:\PASTA

Caso queira colocar a compactação no mesmo script não tem problemas, você só não pode fazer esse backup para uma pasta já compactada (sistema de arquivos compactados do windows)

O comando com compactação fica o seguinte:

get-vm
export-vm -name SEUCOMPUTADOR -part UNIDADE:\PASTA
compact /c /s:UNIDADE:\PASTA

Como você pode verificar nas imagens abaixo:

image_3
Processo de exportação, o progresso vai ser exibido visualmente no powershell
image_1
O processo de exportação poderá ser feito “a quente” sua máquina poderá continuar rodando sem problemas
image_6.jpg
A compactação poderá ser feita somente após a exportação da máquina virtual
Um sistema da arquivos já compactado não será compatível com essa solução

Dúvidas:

Pergunta: A máquina possui Snapshots (ou pontos de verificação) eles serão exportados também?

Resposta: Sim, quando o processo de importação for executado, todos os pontos de verificação serão restaurados perfeitamente em suas respectivas datas.

Pergunta: Minha máquina possui disco diferencial como faço para exportar junto o disco base?

Resposta: Não se preocupe o processo de exportação fará tudo automaticamente, copiando tanto o disco base, como acima citado, os pontos de verificação na mesma pasta, como a imagem abaixo mostra.

image_4
Disco base e seus snapshots ficam na mesma pasta após o processo

 

Links Externos:

Visão geral de exportação e importação de uma máquina virtual
https://technet.microsoft.com/pt-br/library/hh831535(v=ws.11).aspx

Command-line reference, compact
https://technet.microsoft.com/en-us/library/bb490884.aspx

File Systems, NTFS,Compressing and Decompressing Volumes, Folders, and Files
https://technet.microsoft.com/en-us/library/cc938914.aspx

Criando scripts com o Windows PowerShell
https://technet.microsoft.com/pt-BR/library/bb978526.aspx

 

Instalando SharePoint 2016 em modo Standalone

Sabemos que várias funcionalidades descontinuadas no SharePoint 2016 está o modo single-server (standalone), atualmente só podemos instalar em uma infraestrutura do Active Directory, mas para testes ou para um ambiente enxuto, podemos burlar essa limitação, segue este artigo para ajudá-los nestes casos:

1. Instale os pré-requisitos e os binários do SharePoint

image_3

2. Crie o banco de dados de conteúdo local usando o PowerShell

image_5

Edite o comando abaixo à sua necessidade
New-SPConfigurationDatabase –DatabaseName SharePoint_Config –DatabaseServer NOMEDOCOMPUTADOR –AdministrationContentDatabaseName SharePoint_Content –Passphrase (ConvertTo-SecureString SUASENHA –AsPlaintext –Force) –FarmCredentials (Get-Credential) -localserverrole SingleServerFarm

3. Continue a instalação e conecte o SharePoint a base local

image_1

Pronto! Finalizado

image_2

 

links externos:

What’s deprecated or removed from SharePoint Server 2016

https://technet.microsoft.com/pt-br/library/mt346112%28v=office.16%29.aspx

10 Passos para Levar seu Site em Sharepoint para um Alto Nível em Segurança

Considerações:

  1. O seguinte artigo é exclusivo e baseado em um caso de um cliente multinacional no qual além de ter desenvolvido o site, também fiz a parte de segurança do Sharepoint, nesse caso usei somente o IIS para atingir um alto grau de segurança no servidor, o mesmo foi auditado pela equipe da multinacional PwC atualmente está entre as 4 maiores empresas em auditoria no mundo (https://pt.wikipedia.org/wiki/PricewaterhouseCoopers) .
  1. O conteúdo está protegido por lei https://danielbarrosoitp.wordpress.com/sobre-a-propriedade-intelectual-dos-artigos/ não hesitarei em usa-la caso identifique o conteúdo a seguir propagado em qualquer mídia sem a minha expressa autorização.
  1. Qualquer empresa mencionada nos exemplos abaixo é mera coincidência.
  1. O conteúdo aqui apresentado é em grande parte indicado para SharePoint versão 2007 ou superior, em ambiente “in place”, pois no plano SharePoint Online você com certeza não terá acesso ao web server do Azure.
  1. Faça primeiro em ambiente de testes, caso não venha a ter nenhum impacto implemente em produção, não me responsabilizo por mal funcionamento ou implementações mal executadas, a maioria das soluções aqui apresentadas são seguras, tendo em vista que são implementadas no IIS e não tem impactos no código do SharePoint.
  1. O artigo está no nível 400 de grau técnico Microsoft, é voltado para especialistas que dominam as tecnologias aqui apresentadas, não tenho o intuito de fazer um “Tutorial” mas sim um suplemento para especialistas melhorarem ou preencherem lacunas do seu conhecimento com a experiência aqui compartilhada.

 

Introdução: Um caso famoso envolvendo segurança no Sharepoint!

 

Caso Bradley Manning, o analista de inteligência das Forças Armadas americanas que foi acusado de vazar 250 mil documentos governamentais ao WikiLeaks. De acordo com um investigador das Forças Armadas, que testemunhou em uma audiência para determinar se Manning deveria ir a julgamento, um dos laptops do executivo continha uma planilha Excel com uma aba contendo múltiplos scripts – GET, criados para baixar grandes quantidades de arquivos – “direcionados a um servidor SharePoint” que armazenava documentos da prisão da Base Naval da Baía de Guantánamo, como relatou o site Wired.com. O investigador declarou também que “ele rodou os scripts para baixar os documentos, baixou os documentos publicados pelo WikiLeaks e descobriu que eram os mesmos”.

Vamos Começar!

10 Passos para Levar seu Site em SharePoint 

para um Alto Nível em Segurança

1 – Faça Dois Web Applications, Para Separar O Gerenciamento Do Acesso Público!

 

     ( A DICA PRINCIPAL E FUNDAMENTAL NESTE ARTIGO ) Crie dois web application para o mesmo site, um com acesso anônimo mas sem possibilidade de acesso de aplicações clientes (office e SharePoint Designer) e sem API de RSS (você não quer um hacker monitorando facilmente os itens de sua biblioteca) e sem nenhuma forma de autenticação, crie outra com autenticação habilitada para gestão do conteúdo do site sem acesso externo.

acesso-80-81

2 – Web Service

    Arquivos de WSDL expostos para usuários anônimos, o web service ele ultrapassa a camada de comunicação do front-end (SharePoint) ele pode se comunicar com APIs do sistema tornando inúteis os cuidados com a segurança das páginas de sistema, formulários, até mesmo como citado mais a frente XML, RSS e páginas padrão do sistema que podem permitir a acesso a itens sigiloso, sim o web service é tão ou mais importante para se preocupar quando o a primeira prática citada neste artigo, até com o aplicativo InforPath por exemplo se pode construir um formulário de acessos e controle de bibliotecas através do web service do SharePoint.

image_1

Os seguintes caminhos do web site são publicados por padrão:

/_vti_bin/UserGroup.asmx?wsdl

/_vti_bin/Views.asmx?wsdl

/_vti_bin/WebPartPages.asmx?wsdl

Podemos observar abaixo por exemplo em uma grande instituição financeira brasileira que o seu portal o web service não aparece o no código fonte da página inicial, talvez uma forma que o desenvolvedor achou que seria útil em proteger essa informação, mas navegando nas demais páginas logo o código fica exposto na página, Bradley iria amar usar seus scripts get para baixar os arquivos das bibliotecas!

cf

Resolução:

Passo 1, navegue até a pasta “_vti_bin” na raiz de pastas do site no IIS.

Passo 2 na janela da direita (Features View) vá em (Authentication) e desabilite a autenticação anônima para esta pasta.

2-web-service3

3 – Arquivo De Configuração Do Frontpage Visível

O caminho “/_vti_pvt” essa pasta tem um arquivo Frontpage padrão do SharePoint, que tem dados detalhados sobre a versão do produto.

Exemplo: /_vti_pvt/service.cnf

3-frontpage-configuration-files-detected

Sim amiguinhos, este arquivo inofensivo pode dar com detalhes a versão do SharePoint assim possibilitando uma exploração via exploit.

2-web-service3

Resolução:

Passo 1, navegue até a pasta “_vti_pvt” na raiz de pastas do site no IIS.

Passo 2 na janela da direita (Features View) vá em (Authentication) e desabilite a autenticação anônima para esta pasta como foi mostrado no caso do (2 – web service).

4 – Área Administrativa Ou Bibliotecas Que Contém Dados Sensíveis.

Exemplo:  http://www.sharepoint.com/admin

A área de administração não é bom que seja situada em um caminho muito explícito, brinque um pouco com a criatividade do hacker e sempre invente uma url que não seja óbvia, mesmo assim se tiver, use a função request filtering do IIS (Você vai usar essa função para quase tudo).

Resolução:

deny admin.png

Use a função “Request Filtering” para bloquear o acesso à essas bibliotecas ou URLs (pode usar o caminho relativo também).

5 – Forceful Browsing

      Descrição: Os usuários não autenticados podem forçar acesso aleatório a páginas e navegar para páginas que contêm informações confidenciais, nunca confie em atributos CSS como “display:none”, canso de ver essa prática em site em SharePoint inclusive de empresas especialistas em SharePoint, use “Trimmed Control” para isso (abordarei em outro artigo), páginas como “_layouts/viewlsts.aspx” expõe toda a estrutura do site em SharePoint, também várias páginas administrativas expõe os dados sensíveis, bloqueie todas (listadas abaixo), não subestime o tempo livre das pessoas, quando você olhar os logs do serviço de busca do sharepoint, você vai ver coisas absurdas como buscas por termos “Senha”, “password”, “acc.txt”, “users”, “*.config”, “*.txt”, “*.xml”, “.config”.

Exemplo:

/_catalogs/wp/Forms/AllItems.aspx

/Lists/{biblioteca}/AllItems.aspx

Uso do atributo CSS Display:none

5 - Forceful Browsing2.png

Resolução (aqui vai dar trabalho, mas a frustração dos desocupados vai valer a pena 🙂

Passo 1, selecione o site no lado esquerdo do IIS o site Publico que roda na porta 80.

Passo 2, na janela da direita (Features View) vá em (Request Filtering) selecione a aba (URL)

Passo 3, bloqueie os termos na tabela abaixo em (Deny Sequence).

Novamente nosso amigo request filtering salvando o dia

Termos:


“mod-view”

“thumbnails”

“allitems”

“editform”

“_catalogs”

“AllPosts.aspx”

“AllPost.aspx”

“mobile=1”

“/m/”

“viewlsts”

“Date.aspx”

“error.aspx”

“listfeed.aspx”

“AllPages.aspx”

“_layouts/mobile”

“_layouts/feed.aspx

“Rss.xsl”

6 – Cookie De Sessão Sem O Atributo Seguro HTTPONLY

O cookie de sessão ASPXAUTH e Aspnet_sessionid não têm os atributos de seguros.

HttpOnly – Este atributo é usado para ajudar a prevenir ataques como cross-site scripting, uma vez que não permite que o cookie para ser acessado através de um script do lado do cliente, como o JavaScript. Note que nem todos os navegadores suportam esta funcionalidade.

Resolução: Adicione a TAG dentro de system.web no web.config.

7 – IP Interno Fica Explícito

Quando é feita uma solicitação HTTP para o servidor sem o campo Host, o cabeçalho de resposta divulga o endereço IP interno do servidor (Ex: 192.168.x.x)

O IP interno é exibido, sim como aqueles sistemas web em java que sempre tem uma variável setando o IP interno do servidor, no request caso você deixe assim o sharepoint vai dar essa rasteira em você, siga a resolução que é extremamente fácil que você pode dormir tranquilo essa noite.

Internal IP Disclosure.png

Resolução: Remova no IIS o HTTP BIND que contém “*” no nome do host, coloque o caminho explícito do site “www.sitesharepoint.com.br” por exemplo.

setar bind especifico.png

8 – SQL, XML Injection, XSS E Verbos HTTP Desnecessários

Esse é o mais trabalhoso, além de termos em transact SQL e XML, você precisa também bloquear a requisição em algumas outras codificações.
Pergunta: Se eu não fizer esse bloqueio o meu SharePoint fica exposto gravemente à esses ataques?

Resposta: Provavelmente não, o SharePoint e a plataforma atual do .net sabe muito bem lidar com isso, mas aconselho fortemente bloquear essas requisições, algumas modificações ou algumas webparts desenvolvidas podem permitir esse tipo de exploração, existem vários níveis de exploração dessa vulnerabilidade e acredite, existem milhares de bots na china rodando isso 24/7 e essas requisições não vão parar, quando você impede essa suposta superfície de ataque, além de desmotivar o hacker, vai economizar recursos do seu servidor respondendo requisições inúteis de bots, cito uma maneira básica de se prevenir.

Resolução: adicione no Request Filtering  aba Rules os termos listados abaixo:

8.1 – SQL INJECTION

 bloquear query strings no IIS.png

Exemplo de strings que são sugeridas para o bloqueio

Exemplo webconfig bloqueio query string.png

Dentro do web.config as strings bloqueadas ficarão formatadas nesse exemplo acima

8.2 – XML E XSS

Faça o bloqueio de termos usados em parâmetros de URL para ataques de Cross Site Scripting, necessário bloquear alguns termos usados para formar scripts na URL bloqueie as variações do java script como também os scripts codification como no exemplo abaixo:

exemplo-bloqueio-de-xss-script-no-iis

STRING CODIFICADA? TIPO
não Java script
%20%3C%2Fscript%3E sim Java script
.. não xml
./ não xml
\ não xml
&= sim xml

8.3 – Bloqueio de Verbos HTTP desnecessários

Faça em ambiente de testes primeiro, caso o site tenha implementações de webpart customizadas, podem apresentar erro em alguns casos.

verbos-http-desnecessarios

*OBS: todas as strings bloqueadas pelo IIS vão retornar erros com esses status:

404 Status

Qualquer solicitação bloqueada por Filtragem de solicitação, retornará um status de erro 404 com um sub status específico para identificar o motivo pelo qual ele foi negado. Os mais comuns estão listados abaixo.

HTTP resultados Descrição
404.5 URL Sequence Denied
404.14 Url Too Long
404.15 Query String Too Long
404.18 Query String Sequence Denied
404.19 Denied by Filtering Rule

redirecionamento1.png

Certifique-se que o usuário será redirecionado para a página inicial (use a função do IIS ,  pois a página com o status do erro, cai novamente na falha de dar informações de versões do framework para o possível atacante).

9 – Indexação Desorganizada.

Sim, alguns marinheiros de primeira viagem sobem o serviço de busca, e deixa que o mesmo indexe conteúdo com contas de administrador, o serviço de busca vai indexar conteúdo sigiloso caso este erro seja cometido, certifique-se que a conta é limitada e que o escopo de busca está devidamente configurado, recomendo fortemente que caso tenha alguma dúvida sobre o uso do SharePoint Search que pesquise bem para configurar corretamente para que não indexe itens que ainda nem foram aprovados por exemplo, assim mesmo o usuário não tendo acesso ao conteúdo, ele pode ver dentro do serviço de busca (ou no cache) caso não esteja configurado corretamente, permita que a indexação seja só em bibliotecas como páginas, posts do blog. Deixe as bibliotecas de documentos e imagem de fora por exemplo, além de evitar acesso a documentos sigilosos, o SQL agradece por poupar espaço com essa medida.

search

10 – Cabeçalhos HTTP

É de conhecimento geral que as informações básicas da web application e sua plataforma estão nos cabeçalhos HTTP, assim como citado exaustivamente aqui em outros casos, ele contém informações como versão do SharePoint, Versão do .net, versão do IIS.

sharepoint header especifico.png

Resolução:

como alterar o header do sharepoint.png

Você pode customizar as informações do Cabeçalho no IIS, coloque qualquer informação, coloque um “Olá” para os possíveis invasores ou use a estratégia de blefar, coloque versões que não existem ou que não batem, deixe-os perdidos.

Considerações Finais:

Todos os métodos aqui abordados fazem parte do mesmo Caso do cliente, foram auditados e postos à prova em ambiente real, no caso, totalmente customizados para a necessidade do cliente, óbvio que algumas técnicas de segurança aqui exibidas precisam também da mesma atenção para a adequação ao caso do cliente.

O Artigo está na versão inicial, ainda pretendo fazer uma série de aperfeiçoamentos e correções.

Muito obrigado à todos que apreciaram o material, para contatos, entrem na página de informações de contato .

 Ligações Externas

https://www.owasp.org/index.php/Testing_for_cookies_attributes_(OTG-SESS-002)
https://pt.wikipedia.org/wiki/Chelsea_E._Manning
https://blogs.iis.net/peterviola/blocking-sql-injection-with-iis-request-filtering
https://tools.ietf.org/html/rfc2616#section-5.1.1 – Métodos HTTP
https://technet.microsoft.com/library/security/ms15-099 – XSS
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
https://scotthelme.co.uk/hardening-your-http-response-headers/ – HTTP Headers
https://www.owasp.org/index.php/HttpOnly