This is the Trace Id: c15200fce4d4d05946c7a93d10d198ed
Avançar para o conteúdo principal Microsoft Defender Microsoft Entra Microsoft Intune Project Perception Microsoft Purview Microsoft Sentinel SIEM Ver todos os produtos Cibersegurança com tecnologia de IA Segurança da cloud Segurança e governação de dados Identidade e acesso à rede Segurança para IA Pequenas e médias empresas SecOps integradas Confiança Zero Preços Serviços Parceiros Porquê o Microsoft Security Sensibilização para a cibersegurança Histórias de clientes Noções Básicas de Segurança Avaliações de produtos Reconhecimento da indústria Microsoft Security Insider Relatório de Defesa Digital da Microsoft Centro de Resposta de Segurança Blogue do Microsoft Security Eventos do Microsoft Security Microsoft Tech Community Documentação Biblioteca de Conteúdos Técnicos Formação e certificados Programa de Conformidade para a Microsoft Cloud Centro de Confiança da Microsoft Portal de Confiança do Serviço Microsoft Iniciativa Futuro Seguro Centro de Soluções Empresariais Contactar o Departamento de Vendas Iniciar avaliação gratuita Microsoft Security Azure Dynamics 365 Microsoft 365 Microsoft Teams Windows 365 Microsoft AI Azure Space Realidade mista Microsoft HoloLens Microsoft Viva Computação quântica Ensino Automóvel Serviços financeiros Administração Pública Cuidados de Saúde Indústria Comércio Localizar um parceiro Torne-se um parceiro Rede de Parceiros Microsoft Marketplace Empresas de software Blogue Microsoft Advertising Centro de Programadores Documentação Eventos Licenciamento Microsoft Learn Microsoft Research Ver mapa do site

O que é a segurança do código?

A segurança do código protege o software e a IaC durante o desenvolvimento e o runtime, ajudando a reduzir vulnerabilidades, prevenir configurações incorretas e reforçar a postura de segurança da cloud.
Uma pessoa a trabalhar com computadores e um portátil

A segurança do código é a prática de incorporar proteção no software e na infraestrutura como código (IaC) desde a primeira linha de código até à implementação e ao runtime, reconhecendo que os riscos introduzidos durante o desenvolvimento podem originar configurações incorretas, recursos expostos e cargas de trabalho vulneráveis em ambientes de cloud. Reduzir antecipadamente vulnerabilidades e riscos de configuração ajuda a limitar caminhos de ataque e suporta uma postura de segurança da cloud mais forte à medida que as aplicações são dimensionadas.

  • A segurança do código reduz o risco em todo o ciclo de vida do software, incluindo vulnerabilidades e configurações incorretas que afetam ambientes de cloud. Ao abordar vulnerabilidades durante o desenvolvimento, as organizações podem prevenir problemas que são mais difíceis e dispendiosos de resolver após a implementação.
  • A programação segura é essencial para aplicações modernas na nuvem. À medida que os atacantes visam cada vez mais código não seguro, incorporar salvaguardas no software ajuda a salvaguardar aplicações, dados e serviços em escala.
  • Os princípios de segurança orientam um desenvolvimento mais seguro. Práticas como o princípio de menor privilégio, predefinições seguras e defesa em profundidade ajudam a limitar a exposição e a reduzir o impacto de potenciais ataques.
  • A automatização reforça os fluxos de trabalho de DevSecOps. Integrar testes de segurança em pipelines de integração contínua e entrega contínua (CI/CD) ajuda as equipas a identificar vulnerabilidades antecipadamente sem abrandar a entrega.
  • A segurança do código suporta a conformidade e a confiança. Práticas consistentes de programação segura ajudam as organizações a cumprir condições de governação e a proteger a confiança dos clientes ao longo do tempo.

Definição de segurança do código

A segurança do código consiste em reduzir o risco ao incorporar proteção no software e na infraestrutura como código (IaC) desde o início. Em vez de tratar a segurança como uma verificação final, centra-se em prevenir problemas no código da aplicação e nas definições de configuração que os atacantes exploram frequentemente, ajudando as organizações a reduzir a exposição nos ambientes de desenvolvimento e de cloud implementados. Em ambientes nativos de cloud, isto inclui riscos introduzidos através de modelos de IaC, configurações de contentores e definições de serviços que moldam diretamente a exposição no runtime.

Como parte da segurança de aplicações e da gestão de risco, a segurança do código funciona em conjunto com proteções de identidade, infraestrutura e dados para limitar o impacto das ciberameaças. Abordar os riscos antecipadamente reduz a probabilidade de falhas de segurança, diminui os custos de remediação e reforça a postura global de cibersegurança à medida que as aplicações são dimensionadas.

A segurança do código ajuda a proteger aplicações e ambientes de cloud ao abordar riscos como:

Vulnerabilidades técnicas

  • Ataques de inserção, que ocorrem quando entradas não fidedignas são processadas como código executável.
  • Capacidade da memória intermédia excedida, causada por processamento de memória não seguro que pode permitir aos atacantes substituir a memória.
  • Autenticação incorreta e autorização, o que expõe funções ou dados confidenciais.
  • Dependências de terceiros de risco, incluindo bibliotecas com vulnerabilidades conhecidas.

Riscos de cloud e configuração

  • Infraestrutura como código (IaC) não segura, que pode introduzir definições incorretas de armazenamento, rede ou identidade em ambientes de cloud.
  • Configurações demasiado permissivas de identidade e acesso, que aumentam o risco de movimento lateral.
  • Fluxos de trabalho de desenvolvimento e segurança da cloud desalinhados, permitindo que as vulnerabilidades persistam do código para ambientes de runtime.
  • Ferramentas em silos entre equipas de código e segurança da cloud, que podem atrasar a remediação e permitir que as vulnerabilidades persistam do desenvolvimento para o runtime.

Além de prevenir vulnerabilidades, a segurança do código também realça a integridade do código, garantindo que o software não foi alterado nem adulterado, e a prevenção de vulnerabilidades, em vez de depender apenas da deteção após a implementação.

Quando integrada em todo o ciclo de vida de desenvolvimento de software, a segurança do código ajuda as equipas a identificar e abordar riscos à medida que o código é escrito, testado e disponibilizado, para que os problemas encontrados no código e nos pipelines não surjam mais tarde como risco de runtime em ambientes de cloud. Esta abordagem proativa suporta uma inovação mais rápida na cloud, mantendo fundamentos sólidos de segurança desde a conceção.

Por que motivo a segurança do código é importante

O código não seguro cria risco muito antes de uma aplicação chegar à produção. Quando as vulnerabilidades entram no software, podem expor dados confidenciais, perturbar as operações e abrandar a inovação. Em ambientes de cloud, estes riscos têm muitas vezes origem no código ou nas definições de configuração e podem surgir como armazenamento exposto, identidades demasiado permissivas ou serviços acessíveis publicamente no runtime. As vulnerabilidades no código e na IaC podem aumentar a exposição a ameaças como ransomware, falhas de segurança de dados e acesso não autorizado, especialmente quando as configurações incorretas transitam para cargas de trabalho na cloud.

Igualmente importante, muitas equipas sentem este impacto no fluxo de trabalho diário: as equipas de segurança podem identificar problemas, mas as equipas de desenvolvimento têm de os corrigir, muitas vezes sem contexto suficiente sobre a exposição no runtime ou o impacto empresarial. Quando os processos estão em silos, a remediação abranda e os riscos podem transitar do código para cargas de trabalho implementadas na cloud. Eliminar essa lacuna é a razão pela qual a segurança do código funciona melhor quando é integrada nos fluxos de trabalho de segurança da cloud.

  • Protege a empresa: a redução antecipada de vulnerabilidades ajuda a prevenir falhas de segurança de dados, perdas financeiras, sanções de conformidade e exposição jurídica.
  • Limita o risco técnico: o código seguro ajuda a impedir que atacantes explorem dependências não seguras ou encadeiem vulnerabilidades para se deslocarem mais profundamente nos ambientes.
  • Mantém o DevOps em movimento: abordar problemas de segurança mais cedo evita correções de última hora que perturbam pipelines de CI/CD, atrasam versões e aumentam o trabalho repetido.
  • Reduz os custos a longo prazo: corrigir vulnerabilidades durante o desenvolvimento é muito menos dispendioso do que responder a incidentes após a disponibilização da versão.
  • Preserva a confiança e a reputação: o software seguro ajuda a proteger a confiança dos clientes e suporta a credibilidade da marca a longo prazo.

Melhores práticas de segurança do código

Uma segurança do código eficaz consiste em reduzir o risco antecipadamente, incluindo vulnerabilidades e configurações incorretas que afetam recursos de cloud implementados, ao mesmo tempo que reforça as aplicações durante o desenvolvimento e mantém a proteção em produção. Estas melhores práticas ajudam as equipas a prevenir vulnerabilidades, limitar a exposição e suportar a inovação segura à medida que o software evolui.

As práticas sólidas de segurança do código centram-se em:

  • Processar entradas de forma segura. A validação e a limpeza das entradas do utilizador e do sistema ajudam a prevenir ataques de inserção e outras explorações antes de chegarem à lógica da aplicação.
  • Criar com componentes fidedignos. Utilizar bibliotecas, imagens de contentores e módulos de infraestrutura seguros e bem mantidos, e remover componentes preteridos ou sem suporte, reduz a exposição a vulnerabilidades conhecidas e configurações incorretas.
  • Testar continuamente, não ocasionalmente. Os testes de segurança automatizados, incluindo análises estáticas (SAST), dinâmicas (DAST) e de composição de software, ajudam a identificar problemas antecipadamente e durante todo o ciclo de vida de desenvolvimento.
  • Limitar o acesso desde a conceção. Aplicar o princípio de menor privilégio e predefinições seguras garante que as aplicações expõem apenas o necessário, reduzindo o impacto se as vulnerabilidades forem exploradas.
  • Conceber para uma falha segura. Quando ocorrem erros, as aplicações devem assumir um comportamento seguro por predefinição. O processamento seguro de erros ajuda a impedir a exposição de informações confidenciais e evita a criação de novos caminhos de ataque.
  • Proteger segredos e credenciais. Armazenar chaves de API, tokens e credenciais em segurança, em vez de os incluir diretamente no código, ajuda a prevenir a exposição acidental e o acesso não autorizado.
  • Manter a segurança após a versão. Monitorizar aplicações em produção e aplicar patches a vulnerabilidades recém-descobertas ajuda a gerir o risco contínuo à medida que as ameaças e os ambientes mudam.

Princípios de segurança do código

A segurança do código está fundamentada em princípios de segurança bem estabelecidos que ajudam a reduzir o risco, limitar a exposição e suportar a governação nas aplicações modernas. Quando aplicados durante o desenvolvimento, estes princípios moldam a forma como o software é concebido, criado e mantido.

Cinco princípios fundamentais da segurança do código

  1. Princípio de menor privilégio. O código deve conceder apenas o acesso necessário ao funcionamento. Limitar permissões para utilizadores, serviços e APIs ajuda a garantir que componentes comprometidos não conseguem alcançar dados ou sistemas confidenciais desnecessariamente.
  2. Defesa em profundidade. O software seguro depende de várias camadas de proteção. A validação de entradas, as verificações de autenticação, a encriptação e a monitorização funcionam em conjunto para que uma única falha não exponha toda a aplicação.
  3. Falhar em segurança. As aplicações devem assumir um comportamento seguro por predefinição quando ocorrem erros. O processamento seguro de erros impede a exposição de informações confidenciais e evita a criação de novos caminhos de ataque durante falhas.
  4. Predefinições seguras. A segurança deve estar ativada por predefinição, não ser adicionada mais tarde. O código deve assumir configurações restritivas, como acesso limitado, autenticação forte e ligações encriptadas, salvo alteração explícita.
  5. Simplicidade. O código simples e bem estruturado é mais fácil de proteger e manter. Reduzir a complexidade diminui a possibilidade de vulnerabilidades ocultas e torna as revisões de segurança mais eficazes.

Aplicar o princípio de menor privilégio em APIs

O princípio de menor privilégio é especialmente importante em APIs e serviços, nos quais os controlos de Confiança Zero e de gestão de identidade e acesso (IAM) ajudam a definir quem ou o que pode aceder a ações e dados específicos. Um ponto final de API deve expor apenas os dados e as ações necessários à sua função específica, em vez de acesso amplo a sistemas de back-end. Esta limitação reduz o impacto de credenciais comprometidas e ajuda a conter falhas de segurança.

Para compreender como funciona o princípio de menor privilégio na prática, considere alguns cenários comuns de API:

  • Acesso só de leitura para perfis de utilizador. Uma API que obtém informações de perfil de utilizador recebe permissão para ler dados básicos do perfil, mas não para atualizar registos nem aceder a campos confidenciais. Esta medida garante que a API pode executar a sua função sem expor dados desnecessários se as credenciais forem comprometidas.
  • Permissões de serviço específicas da tarefa. Um serviço em segundo plano que processa encomendas pode criar e atualizar registos de encomendas, mas não pode aceder a detalhes de pagamento nem a dados de identidade do cliente. Limitar permissões ajuda a conter potenciais falhas de segurança numa única função.
  • Acesso com âmbito para ações administrativas. Uma API utilizada para tarefas administrativas está restrita a operações específicas, como repor credenciais, em vez de ter acesso total ao sistema. Esta restrição reduz o impacto de utilização indevida ou erros de configuração.
  • Acesso separado para APIs internas e externas. As APIs acessíveis ao público expõem apenas os pontos finais necessários para utilizadores externos, enquanto as APIs internas mantêm um acesso mais amplo para serviços fidedignos. Esta separação ajuda a reduzir a superfície de ataque sem abrandar os fluxos de trabalho internos.

Como a segurança do código se enquadra nos domínios de segurança

A segurança do código não funciona de forma isolada. Ao reduzir o risco na origem, suporta e reforça os controlos de segurança em aplicações, ambientes de cloud, redes e pontos finais.

  • Segurança de aplicações: previne vulnerabilidades como ataques de inserção, autenticação não segura e falhas de lógica diretamente na base de código.
  • Segurança da cloud: ajuda a proteger aplicações nativas de cloud ao reduzir configurações incorretas e vulnerabilidades antes da implementação.
  • Segurança de rede: funciona em conjunto com os controlos de rede ao garantir que as aplicações não expõem serviços ou portas desnecessários.
  • Segurança de pontos finais: reduz o risco ao impedir que código não seguro introduza ameaças em dispositivos de utilizador ou sistemas ligados.

Governação, conformidade e confiança

As práticas de programação segura suportam condições de conformidade e governação ao impor controlos consistentes em todo o ciclo de vida de desenvolvimento de software. Aplicar princípios como o princípio de menor privilégio e predefinições seguras ajuda as organizações a alinhar-se com normas regulamentares, demonstrar diligência devida e reduzir o risco de auditoria. Estas práticas também suportam estratégias mais amplas de segurança de dados ao ajudar a garantir que as informações confidenciais são acedidas, processadas e protegidas adequadamente.

Igualmente importante, a segurança do código protege a confiança dos clientes. Ao prevenir vulnerabilidades antecipadamente, as organizações evitam incidentes dispendiosos, salvaguardam dados confidenciais e mantêm a confiança nas aplicações das quais os seus utilizadores dependem.

Normas e controlos de segurança do código

A segurança do código reúne um conjunto de controlos e práticas que ajudam a reduzir o risco em ambientes de desenvolvimento modernos. Em vez de depender de uma única salvaguarda, combina proteções que limitam o que o código pode fazer, como comunica e como os riscos são identificados e geridos ao longo do tempo.

A segurança de acesso a código desempenha um papel importante em ambientes .NET ao controlar a forma como aplicações, bibliotecas e serviços acedem a recursos. Ao limitar permissões, ajuda a reduzir o impacto de vulnerabilidades ou componentes comprometidos.

Os controlos de segurança de rede no código da aplicação desempenham um papel importante na segurança da comunicação ao impor protocolos, encriptação e lógica de validação. O processamento seguro de protocolos de transporte ajuda a prevenir interceção, adulteração e acesso não autorizado à medida que os dados circulam entre sistemas.

As normas de programação segura fornecem orientações consistentes para criar software mais seguro. Quadros como o Open Web Application Security Project (OWASP) e a ISO/IEC 27034 descrevem práticas para identificar vulnerabilidades, aplicar controlos de segurança e incorporar proteção em todo o processo de desenvolvimento. Em ambientes de cloud, estas normas também se estendem à IaC, ajudando a garantir que as configurações de identidade, rede e armazenamento seguem predefinições seguras antes da implementação.

A modelação de ameaças ajuda as equipas a identificar proativamente onde as aplicações podem estar expostas. Ao avaliar caminhos de ataque e potenciais pontos fracos antecipadamente, as organizações podem abordar o risco antes de as vulnerabilidades chegarem à produção.

O processamento seguro de segredos e credenciais é essencial para proteger aplicações. Armazenar, alternar e aceder a chaves, tokens e credenciais em segurança ajuda a prevenir exposição acidental e utilização indevida.

Uma abordagem unificada à segurança do código

A segurança do código é mais eficaz quando é tratada como um controlo antecipado do ciclo de vida numa estratégia unificada de segurança da cloud, protegendo aplicações desde a primeira linha de código até à implementação e ao runtime.

Em vez de existir como uma tarefa autónoma, a segurança na Microsoft é integrada na forma como o software é concebido, desenvolvido, testado e implementado, ajudando as equipas a reduzir o risco sem abrandar a inovação.

Ligar a segurança do código à proteção do ciclo de vida

Em ambientes de cloud, os problemas introduzidos no código da aplicação e na IaC não permanecem isolados: moldam diretamente a exposição no runtime e a postura de segurança da cloud. As vulnerabilidades e as configurações incorretas introduzidas no código ou na IaC, como permissões de identidade não seguras ou serviços expostos, podem transitar para cargas de trabalho implementadas e criar exposição no runtime. Ligar a segurança do código à proteção mais ampla do ciclo de vida ajuda as equipas a compreender como os problemas em tempo de desenvolvimento se traduzem em risco real na cloud, para que possam priorizar o que mais importa, remediar mais rapidamente e prevenir problemas periódicos em todo o ciclo de vida da aplicação.

Seguro desde a conceção em todo o ciclo de vida de desenvolvimento

A segurança está incorporada em todo o Secure Development Lifecycle (SDL), ajudando as equipas a identificar e abordar riscos antecipadamente, desde o planeamento e a programação até à implementação e às operações contínuas. Esta abordagem prioriza a redução proativa do risco em vez de correções reativas.

Priorizar e remediar o risco real (contexto do código ao runtime)

Em vez de se centrar apenas na deteção, a segurança do código realça os resultados. Ao colmatar a lacuna de contexto entre equipas de segurança e DevOps, os fluxos de trabalho do código ao runtime ajudam as equipas a compreender que problemas representam um risco real em produção, atribuir responsabilidade clara e remediar vulnerabilidades na origem antes de persistirem em ambientes de runtime.

Incorporação da segurança em pipelines de DevOps e CI/CD

As verificações de segurança integram-se diretamente nos pipelines de DevOps, o que permite testes automatizados e imposição de políticas sem perturbar os ciclos de versão. A incorporação da segurança em CI/CD ajuda as equipas a identificar problemas mais cedo, a reduzir o trabalho repetido e a manter o ritmo das entregas, ao mesmo tempo que diminui o risco de que as falhas detetadas numa fase inicial se transformem em vulnerabilidades na implementação ou em runtime.

Suportar governação, conformidade e responsabilidade

As práticas de programação segura suportam a governação e a conformidade ao impor controlos consistentes em todo o ciclo de vida do software. Esta abordagem ajuda as organizações a cumprir condições regulamentares, demonstrar diligência devida e manter visibilidade sobre o risco das aplicações.

Aplicar práticas comprovadas em escala

Estes princípios de programação segura são aplicados em plataformas e serviços da Microsoft, onde continuam a ser aperfeiçoados em ambientes nativos de cloud de grande escala. A experiência real nesta escala ajuda a informar orientações e ferramentas concebidas para suportar práticas de segurança do código mais robustas nas organizações.

Tendências emergentes na segurança do código

A segurança do código continua a evoluir à medida que as aplicações se tornam mais distribuídas, nativas de cloud e assistidas por IA. Novas abordagens centram-se na identificação antecipada do risco, na automatização da proteção e na manutenção da segurança contínua em todo o ciclo de vida do software.

A inteligência artificial é cada vez mais utilizada para analisar padrões de código, identificar vulnerabilidades e sinalizar comportamentos de risco em escala. As ferramentas orientadas por IA ajudam as equipas a identificar problemas mais rapidamente e a priorizar correções com base no risco real, não apenas em regras estáticas.

Segurança shift-left em pipelines de DevSecOps

A segurança está a deslocar-se para fases mais iniciais do desenvolvimento através de práticas shift-left que integram testes diretamente em pipelines de CI/CD. Ao identificar vulnerabilidades durante as fases de programação e compilação, as equipas reduzem o trabalho repetido, evitam atrasos nas versões e diminuem os custos de remediação.

Automatização e aprendizagem automática na programação segura

A automatização desempenha um papel crescente na imposição de normas de programação segura, na análise de dependências e na validação de configurações. A aprendizagem automática melhora a precisão ao aprender com vulnerabilidades anteriores, ajudando as equipas a concentrar-se nos riscos mais críticos.

Segurança contínua e ambientes de programação de Confiança Zero

O futuro da segurança do código realça a avaliação contínua em vez de revisões pontuais. Os princípios de Confiança Zero estendem-se ao desenvolvimento ao validar a integridade do código, impor o princípio de menor privilégio e monitorizar aplicações desde o desenvolvimento até ao runtime.

Soluções da Microsoft e de segurança da cloud

A segurança do código é essencial para empresas modernas que criam aplicações nativas de cloud e com IA. Como parte de uma estratégia mais ampla de segurança da cloud, incorporar segurança no ciclo de vida de desenvolvimento de software ajuda as organizações a reduzir o risco, evitar vulnerabilidades dispendiosas e proteger a confiança à medida que crescem.

Seguir melhores práticas de programação segura, como validar entradas, impor o princípio de menor privilégio e automatizar testes de segurança, ajuda as equipas a detetar problemas mais cedo e a operar com maior confiança. Princípios comprovados, como predefinições seguras e defesa em profundidade, fornecem uma base sólida para a resiliência a longo prazo.

Ao reforçar a segurança na camada do código, as organizações melhoram a postura de segurança global da cloud, ligando as decisões tomadas durante o desenvolvimento à proteção na implementação e no runtime. Esta abordagem integrada ajuda as equipas a inovar mais rapidamente sem aumentar o risco, tornando a segurança do código uma base crítica para proteger aplicações modernas na nuvem.

Explore soluções de segurança da cloud.

Perguntas mais frequentes

  • Uma vulnerabilidade do código fonte é um ponto fraco no código da aplicação que os atacantes podem explorar para obter acesso não autorizado, perturbar sistemas ou roubar dados. Estas vulnerabilidades resultam frequentemente de lógica não segura, processamento incorreto de entradas, dependências desatualizadas ou controlos de segurança em falta. Se não forem resolvidas, as vulnerabilidades do código fonte podem transitar para produção, aumentando o risco de falhas de segurança de dados e perturbação operacional.
  • A segurança do código ajuda a proteger o código fonte ao identificar e reduzir riscos durante o ciclo de vida de desenvolvimento de software. Práticas de programação segura, como validar entradas, impor o princípio de menor privilégio e utilizar bibliotecas fidedignas, reduzem a probabilidade de introduzir vulnerabilidades. Os testes de segurança automatizados e a análise de código ajudam ainda mais as equipas a detetar problemas antecipadamente, antes de código não seguro chegar à produção.
  • O código fonte é protegido ao seguir práticas de programação segura, validar entradas, utilizar bibliotecas fidedignas, aplicar o princípio de menor privilégio e integrar testes de segurança automatizados em pipelines de desenvolvimento.
  • Os ataques de capacidade da memória intermédia excedida ocorrem normalmente quando as aplicações não validam corretamente o tamanho das entradas. Quando uma aplicação escreve mais dados numa memória intermédia do que esta consegue suportar em segurança, os atacantes podem substituir a memória e, potencialmente, executar malware. Estas vulnerabilidades resultam frequentemente de verificações de limites em falta ou de processamento de memória não seguro no código da aplicação.
  •   As vulnerabilidades de ataques de inserção são causadas, na maioria das vezes, por entradas de utilizador não validadas ou sem limpeza. Quando as aplicações processam entradas diretamente, como consultas de base de dados, comandos ou scripts, sem validação adequada, os atacantes podem inserir malware. O processamento seguro das entradas e os controlos rigorosos de validação são essenciais para prevenir ataques de inserção.  

Seguir o Microsoft Security

Português (Portugal) Privacidade da Saúde do Consumidor Contactar a Microsoft Privacidade Gerir cookies Termos de utilização Marcas Registadas Acerca dos nossos anúncios EU Compliance DoCs