Auditoria
O CACiC Event Manager e a infraestrutura de hospedagem devem ser auditados periodicamente.
A auditoria do código-fonte do CACiC Event Manager pode ser feita por qualquer pessoa por meio do repositório público no GitHub.
A auditoria da infraestrutura de hospedagem pode ser feita apenas por:
- Servidores da FCT da área de tecnologia;
- Diretores autorizados pela diretoria executiva das entidades estudantis do curso de Ciência da Computação:
- Entende-se como diretoria executiva os cargos de presidente e vice-presidente;
- Entende-se como entidades estudantis do curso o CACiC e a EJComp;
- Apenas um diretor executivo é necessário para autorizar a auditoria. Não é necessário que diretores de ambas as entidades autorizem a auditoria;
- Alunos desenvolvedores que contribuíram significativamente para o projeto.
- A interpretação de "contribuição significativa" neste caso específico fica a cargo da diretoria executiva de uma das entidades conforme critérios supracionados nesta lista.
Servidores ou alunos que não se encaixam nos critérios acima só podem realizar a auditoria do que está disponível publicamente no repositório do CACiC Event Manager.
Isso se deve ao fato de que a infraestrutura de hospedagem contém informações pessoais dos usuários do CACiC Event Manager e eventuais vulnerabilidades desconhecidas que podem ser exploradas.
Caso solicitado, a configuração do servidor pode ser disponibilizada para a auditoria.
Lead developers
Os lead developers exercem o papel de auditoria externa voluntária para evitar o problema descrito na seção deficiências evidentes.
Por serem externos e voluntários, não podem ser responsabilizados por problemas de segurança.
Seu trabalho é preferencialmente passivo: por conta própria, podem revisar e sugerir mudanças para os responsáveis da infraestrutura e do código.
Lista de lead developers:
- Vazia
A lista de lead developers deve ser mantida atualizada e divulgada publicamente pelo CACiC. Os membros devem ser ativos.
O acesso de um lead developer perdura enquanto ele faz parte da lista.
O acesso deve ser garantido pelo CACiC e pela EJComp e decisões tomadas pelos lead developers devem ser respeitadas pelas entidades.
Founding lead developers
Os founding lead developers são um superset ("superconjunto") dos lead developers.
Estes não podem ser depostos e não entram na contagem de metade mais um dos lead developers para tomada de decisões.
Podem renunciar voluntariamente, mas o nome permanecerá na lista com uma averbação, pois, por terem estado presentes no início do desenvolvimento do projeto, são capazes de dar mais detalhes sobre determinadas escolhas do projeto. Não haverá renúncia automática.
Possuirão acesso irrestrito e vitalício de leitura e escrita a todos códigos-fonte, ao servidor e ao banco de dados os founding lead developers a seguir:
Essas pessoas foram escolhidas por serem ex-alunos do curso de Ciência da Computação da FCT e por terem contribuído significativamente para o projeto.
Founding lead developers podem embargar decisões ou reverter embargos de forma individual, mas preferencialmente tomam decisões em conjunto.
Founding lead developers podem incluir ou remover pessoas no grupo de lead developers sem restrições, mesmo que haja unanimidade contrária do grupo de lead developers.
Founding lead developers podem alterar estes termos sem restrições.
Adição e remoção de lead developers
Poderá haver a inclusão de novos lead developers por decisão de metade mais um dos lead developers atuais.
Poderá haver a renúncia voluntária de um lead developer ou a deposição por decisão de metade mais um dos lead developers atuais.
Após exauridas todas as tentativas de contato a um lead developer, ele será considerado renunciado após um prazo de 3 meses.
Competências
Os lead developers possuem poderes irrestritos. Por exemplo, eles podem:
- Atualizar o código do CACiC Event Manager e de suas dependências;
- Embargar o acesso de qualquer pessoa ao servidor;
- Remover o aplicativo do ar;
- Exigir correções de segurança dos encarregados de dados e infraestrutura;
- Impedir mudanças na licença do código do CACiC Event Manager;
- Questionar a substituição do CACiC Event Manager por outro projeto;
- Questionar mudanças da infraestrutura;
- Notificar o Departamento de Matemática e Computação e a Diretoria Técnica de Informática (DTI) sobre problemas de segurança.
Não compete aos lead developers:
- A responsabilidade automática de manter a infraestrutura de hospedagem do CACiC Event Manager;
- A responsabilidade de manter o código do CACiC Event Manager, que é do CACiC;
- A responsabilidade legal da segurança dos dados, que é dos encarregados de dados;
- Isso não implica que os lead developers não possam aplicar ou exigir correções de segurança, ou notificar entidades sobre problemas de segurança.
- Alterar as características dos founding lead developers, que só podem ser alteradas por eles mesmos.
Para alterar estas especificações de lead developers, é necessário a aprovação unânime dos lead developers.
Um lead developer pode embargar decisões de outro lead developer individualmente.
Para a reversão de um embargo, é necessário a aprovação de metade mais um dos lead developers excluindo o embargado.
Lead developers não podem embargar ou reverter embargos de founding lead developers e isso não pode ser alterado.
Código
Conforme a concessão do CACiC Event Manager:
O CACiC Event Manager é disponibilizado sob a licença AGPL-3.0-only e não pode ser relicenciado.
O código do CACiC Event Manager deve ser mantido em um repositório público no GitHub.
Auditoria automática
CodeQL
O código do CACiC Event Manager é verificado pelo CodeQL a cada push no repositório.
O CodeQL é uma ferramenta de análise estática de código que verifica a existência de vulnerabilidades.
Dependabot
O Dependabot verifica se há atualizações de dependências no repositório.
Mozilla Observatory
O Mozilla Observatory é uma ferramenta que verifica a segurança do site e da hospedagem.
O CACiC Event Manager deve manter uma pontuação de segurança A+, exceto quando impossibilitado por limitações técnicas.
CSP Evaluator
O CSP Evaluator é uma ferramenta que verifica a eficácia do Content Security Policy (CSP) do site.