09-07-2017, 06:19 PM
Salut,
pour ma part:
• Les services payants n'ont aucun intérêt pour des projets de jeu amateurs: il y aura bien plus intéressant à faire (ie: le coeur de métier, à savoir le gamedesign, l'équilibrage de jeu, le background, le gameplay, etc)
• Les services gratuit vont remonter des blindes de faux positifs, et peuvent servir pour les débutants qui n'ont aucune idée de "est-ce que je suis une passoire ou pas en fait?". C'est toujours un plus de savoir s'en servir (niveau CV, cela peut servir), mais il n'est généralement pas nécessaire d'y consacrer plus d'une soirée
• Les outils automatisés en général ne passeront pas la barrière d'un design sécurisé. Je ne connais *aucun* soft (gratuit ou payant) capable de faire l'analyse métier du code. C'est à dire qu'il y a des outils qui vont tenter des injections SQL pifométriquement (ceux-là sont simplement contrés par de bonnes pratiques de code), mais je ne connais *aucun* outil qui sera capable de te dire "tu as mal implémenté telle règle du jeu" ou "le joueur peut tricher en faisant telles actions". Ce sont des analyses à faire humainement (les éventuelles automatisations ne sont pas rentables pour des jeux amateurs)
Au final, une structure de code propre et "bien faite" permettra d'être quasi sûr de l'absence de faille système (ou failles d'implémentation, "dues au fait que le jeu est fait dans un ordinateur"). En revanche, pour être sûr de ne pas avoir fait d'erreur business (par exemple, un joueur qui peut faire un déplacement sans avoir les points d'action nécessaires) ni d'erreur de design (un joueur qui peut détourner une règle pour gagner un avantage), là, je ne connais pas d'outil fiable.
Les seuls qu'on pourrait te proposer, c'est "de faire des tests automatisés" (ie: un test qui met en place un jeu avec un joueur sans point d'action, qui tente de le déplacer, et qui vérifie que le jeu lui dit "non"), mais c'est totalement sur-dimensionné pour un jeu (en gros, compte 2x le temps de dev du jeu pour faire ces tests)
Pour ma part, la structure des projets me semble safe ( https://toile.reinom.com/prawd/ ) mais elle gagnerai éventuellement à être relue par un autre. En revanche, il traîne certainement des petites failles, que je corrige au fil de l'eau (exemple: Alucard m'a remonté qu'on pouvait poster un message dans une Roleplay Room de Iamanoc alors qu'on n'était pas dans cette room; la raison était simple: j'ai oublié d'implémenter cette règle, et là, il est très très compliqué et coûteux de vouloir le détecter automatiquement).
Pour info (donc, on n'a plus de côté subjectif dans les lignes suivantes), il existe des outils de sécurité qui ont souvent 3 approches: black box (le soft essaie de trouver une faille comme le pirate le ferait), whitebox (l'outil a accès à tout le code de l'application, et toutes les informations nécessaires), et greybox (un mix des deux). Au taff, l'outil whitebox (Checkmarx) qu'on nous a forcé à utiliser (pour raisons politique) ne sert à rien: beaucoup trop de faux positifs (le soft détecte une faille alors qu'il n'y en a pas) et beaucoup trop de faux négatifs (le soft ne détecte pas des failles qui pourtant existent). Au final, seul l'humain peut vraiment faire ce taff, et ça, ça coûte beaucoup de temps!
Perso, si tu veux que je te fasse une revue de sécu, je veux bien y consacrer un peu de temps (comme j'avais fait sur Medicinal Ganja [Buffalo Soldier! in the heart of America...] ou d'autres). Whitebox ou blackbox (ie: avec ou sans code source). Et comme je suis un commercial pourri, je demande rien en échange (mais du coup, je n'offre pas de garantie officielle )
pour ma part:
• Les services payants n'ont aucun intérêt pour des projets de jeu amateurs: il y aura bien plus intéressant à faire (ie: le coeur de métier, à savoir le gamedesign, l'équilibrage de jeu, le background, le gameplay, etc)
• Les services gratuit vont remonter des blindes de faux positifs, et peuvent servir pour les débutants qui n'ont aucune idée de "est-ce que je suis une passoire ou pas en fait?". C'est toujours un plus de savoir s'en servir (niveau CV, cela peut servir), mais il n'est généralement pas nécessaire d'y consacrer plus d'une soirée
• Les outils automatisés en général ne passeront pas la barrière d'un design sécurisé. Je ne connais *aucun* soft (gratuit ou payant) capable de faire l'analyse métier du code. C'est à dire qu'il y a des outils qui vont tenter des injections SQL pifométriquement (ceux-là sont simplement contrés par de bonnes pratiques de code), mais je ne connais *aucun* outil qui sera capable de te dire "tu as mal implémenté telle règle du jeu" ou "le joueur peut tricher en faisant telles actions". Ce sont des analyses à faire humainement (les éventuelles automatisations ne sont pas rentables pour des jeux amateurs)
Au final, une structure de code propre et "bien faite" permettra d'être quasi sûr de l'absence de faille système (ou failles d'implémentation, "dues au fait que le jeu est fait dans un ordinateur"). En revanche, pour être sûr de ne pas avoir fait d'erreur business (par exemple, un joueur qui peut faire un déplacement sans avoir les points d'action nécessaires) ni d'erreur de design (un joueur qui peut détourner une règle pour gagner un avantage), là, je ne connais pas d'outil fiable.
Les seuls qu'on pourrait te proposer, c'est "de faire des tests automatisés" (ie: un test qui met en place un jeu avec un joueur sans point d'action, qui tente de le déplacer, et qui vérifie que le jeu lui dit "non"), mais c'est totalement sur-dimensionné pour un jeu (en gros, compte 2x le temps de dev du jeu pour faire ces tests)
Pour ma part, la structure des projets me semble safe ( https://toile.reinom.com/prawd/ ) mais elle gagnerai éventuellement à être relue par un autre. En revanche, il traîne certainement des petites failles, que je corrige au fil de l'eau (exemple: Alucard m'a remonté qu'on pouvait poster un message dans une Roleplay Room de Iamanoc alors qu'on n'était pas dans cette room; la raison était simple: j'ai oublié d'implémenter cette règle, et là, il est très très compliqué et coûteux de vouloir le détecter automatiquement).
Pour info (donc, on n'a plus de côté subjectif dans les lignes suivantes), il existe des outils de sécurité qui ont souvent 3 approches: black box (le soft essaie de trouver une faille comme le pirate le ferait), whitebox (l'outil a accès à tout le code de l'application, et toutes les informations nécessaires), et greybox (un mix des deux). Au taff, l'outil whitebox (Checkmarx) qu'on nous a forcé à utiliser (pour raisons politique) ne sert à rien: beaucoup trop de faux positifs (le soft détecte une faille alors qu'il n'y en a pas) et beaucoup trop de faux négatifs (le soft ne détecte pas des failles qui pourtant existent). Au final, seul l'humain peut vraiment faire ce taff, et ça, ça coûte beaucoup de temps!
Perso, si tu veux que je te fasse une revue de sécu, je veux bien y consacrer un peu de temps (comme j'avais fait sur Medicinal Ganja [Buffalo Soldier! in the heart of America...] ou d'autres). Whitebox ou blackbox (ie: avec ou sans code source). Et comme je suis un commercial pourri, je demande rien en échange (mais du coup, je n'offre pas de garantie officielle )