Comment sécuriser notre code source?

Notre code source est notre atout le plus précieux. Je voudrais l'avoir:

  • Protégés de la prolifération par des développeurs internes, mais ils ont également besoin d'un accès illimité au code pour faire leur travail correctement. Je ne suis donc pas sûr que cela soit même possible.
  • Régulièrement sauvegardé pour sécuriser l'emplacement , mais serait-il sûr de le télécharger sur un stockage en nuage tel que box.net?

Des recommandations sur les stratégies? Ou suis-je paranoïaque?

6 Solutions collect form web for “Comment sécuriser notre code source?”

Sécuriser les choses de l'action de votre peuple est plus une question humaine que la technologie, malheureusement, je laisserai cela pour que les autres répondent (les humains ne sont pas mes forté-machines: oui, les chats: parfois, les humains: non!).

Si vous envoyez votre code à un service externe, vous devez vous assurer qu'il soit crypté en toute sécurité avant d'être envoyé ou que vous avez vérifié complètement le service externe, de préférence les deux. L'exécution de vos propres serveurs de sauvegarde sera plus sûre (vous avez plus de contrôle direct) mais plus complexe (vous devez tout faire vous-même). Comme vos serveurs de sauvegarde seront probablement exécutés dans l'espace colo que vous n'avez pas de contrôle physique, vous voudrez peut-être définir les données sur les systèmes de fichiers chiffrés qui ne se montent pas automatiquement lors du démarrage (nécessitent une intervention manuelle pour envoyer la clé (S), si les serveurs ont besoin de redémarrer) – avoir les clés sur le serveur afin qu'il puisse monter automatiquement les volumes chiffrés est comme avoir un coffre-fort coûteux avec la combinaison écrite sur une note post-it près.

Quoi qu'il en soit, vous devriez avoir des sauvegardes hors ligne aussi bien que celles en ligne, c'est-à-dire des disques / cassettes hors site et non connectés. De cette façon, si vous êtes complètement piraté et que tous vos serveurs de base, les sauvegardes locales et les sauvegardes en ligne hébergées sont détruites, vous devriez toujours sauvegarder les sauvegardes hors ligne.

Une façon d'atténuer le problème d'un piratage dans vos serveurs principaux et de les utiliser pour pénétrer dans vos serveurs de sauvegarde (ce qui est arrivé à un service Web de profil relativement élevé il y a quelques mois). Je suggère d'avoir un service intermédiaire à la fois en direct et en sauvegarde Les serveurs se connectent à. De cette façon, vous ne pouvez vous assurer que ni les serveurs en direct ni les serveurs de sauvegarde n'aient accès à l'autre et que le serveur intermédiaire n'a pas besoin de se connecter à la vie ou à la sauvegarde. Les sites en direct se connectent au serveur intermédiaire pour afficher les données les plus récentes et un certain temps après la connexion des serveurs de sauvegarde pour les retirer. Cela ne supprime pas la recommandation d'avoir des sauvegardes hors site hors ligne, même si cela réduit vos chances de les utiliser avec colère.

Une option supplémentaire pour l'hébergement de vos sauvegardes externes: si vous êtes en très bon état avec une autre entreprise locale non concurrente, vous pourriez éventuellement héberger les sauvegardes de l'autre. Vous pourriez encore chiffrer vos sauvegardes pour une vraie paranoïa (pas au cas où l'autre entreprise va mal, même si cela pourrait arriver, mais pour couvrir la possibilité qu'ils soient piratés ou dérangés eux-mêmes).

Et un point supplémentaire qui est trop souvent négligé: assurez-vous d'avoir une procédure en place pour tester les sauvegardes . Vous ne voulez pas trouver qu'ils ont cessé de fonctionner, il y a quelques semaines, le jour où vous devez restaurer quelque chose. Il existe un certain nombre de façons de tester vos sauvegardes. La meilleure solution dépend de la nature et de la taille des données que vous stockez et du format dans lequel elles sont stockées. Par exemple, j'ai une copie de mon serveur de messagerie en cours d'exécution VM qui pense que c'est le serveur en direct mais n'est pas vu du monde extérieur. Trois fois par semaine, un script l'arrête, rétablit la sauvegarde la plus récente et la redémarre, toutes les erreurs m'ont été envoyées par la poste. Ensuite, dans le cadre de ma maintenance régulière, je me connecte à cette VM de sauvegarde pour vérifier que tout semble correct (il est en cours d'exécution, des changements récents sont présents, un échantillon aléatoire de données anciennes semble également, …). Vous devriez encore parfois tester manuellement les sauvegardes, mais les tests automatisés sont parfois une source de grâce – ils pourraient signaler un problème mineur avant qu'il ne devienne important.

Il est difficile d'être trop paranoïaque lorsque vous prenez soin de votre code source. C'est votre principal atout, votre entreprise ne peut valoir rien sans cela, donc vous devez le protéger de l'extérieur des forces malveillantes (y compris les forces naturelles!) Avec beaucoup de soin.

Non, vous n'êtes pas paranoïaque. Quelques choses me sont apparues

  • Est-ce que tous les développeurs signent des accords de non-divulgation? Indique-t-il que ce code source est un atout de l'entreprise?
  • Avez-vous des politiques qui limitent explicitement les développeurs de s'occuper du code source?
  • Les disques durs et les clés USB des ordinateurs portables de vos développeurs sont-ils cryptés?

  • La sauvegarde dans le "nuage" est OK. Vous devriez envisager de sauvegarder et de stocker la sauvegarde hors site vous-même.

\ Greg

Il n'y a absolument aucune différence entre votre code source et tous les autres fichiers que vous souhaitez garder confidentiels (p. Ex. Financiers). Le côté humain est quelque chose que vous devrez traiter comme bon vous semble. La sécurité et l'intégrité des fichiers peuvent être gérés de multiples façons. Je préfère effectuer mes propres sauvegardes sur bande. Ces bandes sont stockées hors site de sorte que, en cas de catastrophe (par ex., La gravure en cours de gravure – encore une fois!), On ne perd plus qu'une journée de données.

Lorsqu'on envisage d'utiliser «le nuage», il suffit de garder à l'esprit qu'il s'appelle cela parce qu'il n'y a pas de limites ou de définitions difficiles. Tout simplement, vous ne pouvez pas savoir où vos données sont à tout moment ou qui en ont accès. Si vous sentez si fortement que vos données doivent être protégées, vous devez être directement en contrôle.

Juste des idées:

D'abord et avant tout, utilisez un système de contrôle de version. Au moins, de cette façon, l'historique des fichiers est conservé. Si quelque chose arrive à un fichier, vous pouvez toujours modifier les modifications.

Deuxièmement, je peux envisager d'utiliser un DVCS comme git ou bazar . L'utilisation de DVCS permet un flux de travail où les développeurs peuvent brancher le référentiel complet. Ils peuvent cocher des fichiers, confier des fichiers, marquer, fusionner, etc. tous dans leur propre branche, indépendamment de tout le monde. Ensuite, conservez un compte-poste de bus principal sur un serveur sécurisé où seul un portier a accès. Les développeurs peuvent fusionner les changements à partir du coffre, mais seuls quelques-uns ont accès pour s'engager sur le coffre. Le gatekeeper peut également être un service automatisé, tel que PQM, ou un autre outil de gestion des correctifs.

Troisièmement, la sauvegarde peut être un sujet délicat. Des choses comme "Voulez-vous des sauvegardes physiques stockées?" "Voulez-vous un serveur miroir?" "Quelle est la taille de votre dépôt?" "Combien de sécurité ai-je besoin?" Je ne pense pas pouvoir répondre à certaines de ces questions, mais vous devriez les prendre en compte lors de l'élaboration d'un plan de sauvegarde.

Et NON, vous n'êtes pas paranoïaque … ce sont les choses auxquelles chaque société de logiciels doit traiter … C'est votre IP, vous devez la protéger.

  1. Il devrait s'agir de déclarations très claires dans le contrat de travail signé à l'emploi qui stipule que tout est la propriété de l'entreprise et que la technologie / code ne peut pas être utilisé en dehors de l'entreprise, etc … Vous ne pouvez pas les empêcher de rompre cela, mais si Arrive, vous pouvez prendre des mesures légales et gagner …

    Une autre chose à faire est de s'assurer que les employés aiment leur travail, et ainsi créer une fidélité à l'entreprise, ce qui réduit le risque qu'ils souhaitent exploiter leur accès au code.

  2. Nous faisons des sauvegardes sur des disques amovibles. Nous disposons de 3 disques de sauvegarde qui tournent: l'un est branché à l'ordinateur en effectuant des sauvegardes quotidiennes, l'un est verrouillé dans un firesafe dans le bureau et l'autre est à la maison avec l'administrateur système. Les 3 disques tournent. Cela garantit que nous avons toujours une copie de sauvegarde en dehors de l'emplacement du bureau en cas d'incendie.

Le premier est un problème politique / social (à moins que vous ne soyez obligé de les chercher à aller et venir du bâtiment en plus d'empêcher la plupart des trafics sortants, tout verrouillage électronique est une fausse vitre de sécurité).

Pour la seconde, chiffrer les fichiers localement (à votre fin), puis envoyer des copies chiffrées à votre fournisseur de stockage. J'aime l'idée de Jungle Disk, où vous créez et conservez votre compte Amazon S3, puis utilisez le logiciel Jungle Disk pour copier les fichiers sur Amazon. Vous aurez votre clé cryptographique. Pour un site d'entreprise, vous pouvez doubler la fonctionnalité de Jungle Disk vous-même et avoir un contrôle complet.

Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.