Quels types de fraude ai-je rencontrés en freelance et en sous-traitance

Je sais que les gens aiment les histoires dans lesquelles l'auteur a été trompé ou sur des événements en voie de devenir. J'espÚre donc que vous serez intéressé.

Le premier type de fraude que j'ai rencontré en 2000, lorsque j'ai reçu une commande pour corriger une erreur d'imprimante. Quand j'ai découvert que le client avait Windows 95 installé, j'ai pris un ensemble standard de disquettes pour la réparation / restauration du systÚme et je suis allé en enfer, car c'était une usine en dehors de la ville.
En arrivant, j'ai rapidement terminĂ© la quĂȘte avec un poste de contrĂŽle, un concierge et un laissez-passer et je suis finalement entrĂ© dans le bureau du directeur. Ce qui a fait de moi un ordinateur d'aspect antĂ©diluvien, sur lequel il se tenait fiĂšrement ... Windows 3.11!

J'Ă©tais complĂštement abasourdi, car nous parlions de Windows 95. Oui, et j'avais un ensemble de disquettes (qui d'ailleurs ne correspondaient mĂȘme pas au facteur de forme) de Windows 95. J'en ai informĂ© le directeur.

Pour lequel il a dit qu'il ne comprenait rien dans les versions, il est possible qu'il ait confondu quelque chose. Et il a donnĂ© une boĂźte de huit disques de distribution. AprĂšs y avoir trouvĂ© les pilotes d'imprimante et les avoir rĂ©organisĂ©s, ce qui bien sĂ»r n'a pas fonctionnĂ©, j'ai suggĂ©rĂ© d'essayer d'installer Windows 95, oĂč ils ont probablement rĂ©solu ce problĂšme.

Pour lequel le directeur a dit que c'Ă©tait impossible - il y en a 286, tandis que Windows 95 en a besoin de 386.

Hmm, n'est-il pas Ă©trange qu'une personne qui confond les versions connaisse si bien les exigences du systĂšme?

En général, je suis parti le soir, dans un bus d'affaires, affamé, car aucun chamanisme n'a aidé, ils ne m'ont rien payé, et la salle à manger ne fonctionnait que pour les employés de l'usine, et je n'ai pas pris d'argent avec moi, étant donné pourquoi devrais-je le prendre si je et donc payer? (Oui, j'étais jeune et stupide à l'époque).

Il y avait beaucoup d'options pour une telle fraude, dont la plus épique était la recherche d'un administrateur systÚme qui mettrait ISP Manager sur le serveur. Le fait saillant était que le serveur était une machine virtuelle sur IBM System S390. De plus, tout cela a été soigneusement caché - la sortie de / proc / cpuinfo a été truquée par le fichier monté, certains utilitaires ont été remplacés ou simplement supprimés. Bien sûr, le fichier exécutable pour l'architecture i386 ne fonctionnera pas sur le systÚme s390. Mec, si tu le lis maintenant - écris, pourquoi as-tu commencé tout ça?

La morale est simple - avant de vous mettre au travail, vous devez passer un certain temps à auditer l'environnement pour vous assurer qu'il répond aux exigences énoncées par le client.

Le deuxiÚme type de fraude a récemment été trÚs populaire sur le service Upwork Freelance. Comme maintenant - je ne sais pas, ces nerds m'ont bloqué, exigeant un diplÎme d'ingénieur DevOps standard (lolshto?).

Il s'agissait gĂ©nĂ©ralement d'un petit projet avec un petit paiement unique, qui peut ĂȘtre rĂ©solu en quelques heures tout au plus. Dans le mĂȘme temps, le client s'enquiert de maniĂšre trĂšs persistante de votre expĂ©rience et des projets que vous avez dĂ©cidĂ©s, qui ne sont absolument pas pertinents pour cette commande et motivant du fait qu'il y a beaucoup d'artistes et qu'il souhaite choisir le meilleur pour lui-mĂȘme.

D'accord, l'exĂ©cuteur est sĂ©lectionnĂ©, la tĂąche elle-mĂȘme est de mettre Ă  jour PHP, car yum ne fonctionne pas et gĂ©nĂšre une erreur (la base de donnĂ©es rpm s'est cassĂ©e, ça va). Et donc vous continuez comme ça et soudain vous sentez que quelque chose ne va pas. D'une maniĂšre ou d'une autre, tout est lent et en retard. Vous regardez le dĂ©marrage du systĂšme - et c'est 80% wa. Et dans les journaux - messages sur les problĂšmes avec le disque. Et tu es comme ça:
— , , ! - . , rpm, yum php.
— ! . yum, php? .
— ? , , .
— ? , ( , , ?) . php.
— . - php, 

— , php , .

Vous - mettez à jour la version PHP simplement en téléchargeant rpm et en déballant leur contenu sur le systÚme, affichez le fichier phpinfo dans le navigateur de son site Web et faites une capture d'écran. Et dans une heure:
— , php !
— , ! !
— .
— ???
— . . . . php , — “”. .
— ! !
— 
 .
— , !
— php .
— ! !!! !!!

Cependant, le lendemain, il est revenu et s'est excusé pour hier, disant qu'il était tellement choqué par la nouvelle que son disque était en train de mourir. Et il a proposé de payer un supplément pour le clonage du systÚme. J'ai insisté sur le fait que nous devons d'abord faire un calcul pour le travail déjà effectué, puisque son projet était en fait terminé. AprÚs une demi-journée de reproches et d'excuses, il a finalement clÎturé le projet comme achevé et a jeté de l'argent.
— , , ?
— , . .
— , ? ! paypal ( , paypal).
— paypal ( ).
— ! , Western Union.
— - , .
— , , .
— IP-KVM .
— ! !
— ???
— — , $200/. !
— . , , IP-KVM?
— . .
— ?
— , ?
— . IP-KVM, .
— , !
— $200 , .
— !!!
- Euh non. Il s'agit du montant que l'hébergeur vous facturera pour la connexion IP-KVM, vous perdrez donc cet argent dans tous les cas si vous passez une commande à quelqu'un d'autre. Et dans mon cas, ce sera une incitation supplémentaire à tout faire efficacement et rapidement.
- Cela semble logique. OK fais-le.

Vous - mettez le systÚme de récupération dans l'ancienne partition de swap, redémarrez et montez les disques, rsync en sautant tous les fichiers battus (il y en avait beaucoup, mais ils se sont révélés pour la plupart non critiques).
- Tout est prĂȘt, le systĂšme fonctionne Ă  partir d'un nouveau disque, vous pouvez vĂ©rifier
- vous n'ĂȘtes qu'un diamant!

Ensuite, il vous met une étoile dans une critique et écrit des choses désagréables. Les administrations de change ne se soucient pas de vous et de vos arguments.

MoralitĂ© - si vous rencontrez un client qui, sous le couvert d'une tĂąche, essaie d'en dĂ©placer une autre (d'autres), le motivant Ă  ĂȘtre plus cher directement, perdez-le. Parce qu'alors, cela se rĂ©vĂ©lera plus cher pour moi (j'ai perdu un tas de commandes potentielles pour cet examen, qui a Ă©tĂ© retirĂ© mais il Ă©tait trop tard).

La version suivante de la fraude Ă©tait quelque peu similaire Ă  la prĂ©cĂ©dente, mais avec ses nuances nationales, pour ainsi dire. Il a prospĂ©rĂ© sur une dĂ©charge qui prĂ©tend ĂȘtre un Ă©change indĂ©pendant avec un accord sĂ»r.

Tout a commencé assez banal - vous devez mettre à jour la version php, car l'un des sites nécessitait une mise à jour majeure sans laquelle certains plugins ne fonctionneraient pas. J'ai demandé une confirmation dans le chat que la mise à jour php mondiale aura un effet sur tous les sites, et si elle ne prend pas en charge la derniÚre version, ils cesseront de fonctionner.

J'ai reçu une confirmation, ainsi qu'un paiement en toute sécurité (en fait, je n'ai rien reçu, l'argent a été suspendu à l'échange).
— , .
— -, !
— , .
— , ! -!
— , — .
— -, - , !
— ?
— , . !
— — , - .
— ! - php, !
— ???
— php, ! !
— ???!!!
— , . , .
— , , ?
— , ! !!!

Vous - crachez sur cette insuffisance impudente, puis écrivez à l'appui, vous comprenez que l'insuffisance est la norme pour le marché indépendant national et fermez cette horreur pour toujours.

La morale n'est pas d'aller dans les décharges, il n'y a toujours rien d'intéressant là-bas. Si sur les devises, les fraudeurs sont des gens avec des talents d'acteur, alors nous avons de tristes voyous inadéquats.

La fraude suivante est déjà digne de respect. Les clients ont un projet cloud trÚs complexe dans AWS, la documentation sur laquelle ils n'ont pas réellement, à l'exception de README.md à la racine du référentiel.

Le fichier lui-mĂȘme est incroyablement long, dans lequel des fragments de sĂ©quences d'actions dans le style Tarantino sont Ă©crits dans de longues expressions, et de telle maniĂšre que vous devez garder complĂštement cet Ă©norme fichier dans votre tĂȘte:

Pour placer l'infrastructure, vous devez d'abord exĂ©cuter un script spĂ©cial qui gĂ©nĂšre un modĂšle CloudFormation, qui est divisĂ© en parties et versĂ© dans S3, aprĂšs quoi il crĂ©e l'infrastructure nĂ©cessaire. De plus, dans le script lui-mĂȘme, il y a exactement une erreur dans un endroit trĂšs peu Ă©vident (les gens ne se trompent pas, bon sang!), Dans le modĂšle qu'il gĂ©nĂšre il y a aussi une erreur - et c'est loin d'ĂȘtre tout.

Parce que pour héberger l'application, vous devez prendre un autre référentiel, créer un million de variables CI, des valeurs de CloudFormation à exécuter et exécuter CI sur le deuxiÚme référentiel.
Il créera un script à partir de CodeDeploy qui ne fonctionnera pas - car il y a une erreur et vous devez démolir l'infrastructure et modifier à nouveau le modÚle CloudFormation.

Et puis dans un autre référentiel, vous regardez le script CI, qui appelle le script Pitnov, qui ne contient en fait que la commande shell, qui forme l'image de docker, dans laquelle il devrait y avoir des configurations pour le déploiement de marionnettes que vous avez oublié de mettre, car ni il n'y a aucune mention de cette instruction nulle part et tout se termine par awsfabric, qui est appelé quelque part entre ce chaos, prend des crédits non pas de l'environnement CI, pas de l'image docker, mais d'une configuration séparée, qui a été faite par le premier script, mais à propos de laquelle aucune mention du tout .

Savez-vous quel est le plus chic? Le client avait 2 projets sur cette plateforme miracle, et toutes les erreurs ont été répétées en nombre - mais à des endroits différents. En gros - dans un modÚle, il y avait une version incorrecte de RDS qui a détruit l'intégralité du flux, et dans un autre - CloudFront a été attaché au mauvais compartiment S3.

Bien sûr, le client a affirmé qu'il n'y avait rien à faire là-bas, et ceux qui ont tout fait - effectuer une livraison littérale de deux heures. Et j'y crois volontiers:

Le style mĂȘme des erreurs et de la documentation, ainsi que le dĂ©ploiement anal-oral, suggĂšrent que les dĂ©veloppeurs ont crĂ©Ă© un systĂšme complexe complet qui vous permet de gĂ©nĂ©rer une version obscurcie du projet de maniĂšre Ă  rendre le plus difficile possible pour un Ă©tranger: les sections de documentation sont mĂ©langĂ©es, mais en mĂȘme temps, elles sont logiquement correctes un document avec un million de notes comme «voir la section 2 ci-dessus». Le dĂ©ploiement est Ă©galement divisĂ© en plusieurs parties, dans deux desquelles les erreurs ne sont pas fatales pour le dĂ©ploiement lui-mĂȘme, mais qui conduisent Ă  un rĂ©sultat irrĂ©alisable en finale, et la piĂšce finale est obscurcie par une imbrication profonde et une autre division.

AprĂšs cela, si vous n'avez pas d'informations sur les endroits oĂč des erreurs ont Ă©tĂ© gĂ©nĂ©rĂ©es et un script maĂźtre qui relie automatiquement les trois parties, en leur passant des tonnes de paramĂštres - ces mĂȘmes deux heures de son travail se dĂ©roulent parfaitement en deux semaines, pour lesquelles vous pouvez vous sentir bien un vĂ©ritable orfĂšvre informatique, aprĂšs quoi le client sera finalement déçu de votre travail.

MoralitĂ© - si quelqu'un veut vraiment lier un client Ă  lui-mĂȘme, alors avec un niveau de compĂ©tence suffisant, il le fera trĂšs facilement. Soyez juste capable de le reconnaĂźtre Ă  temps et de dire non. Trois jours m'ont suffi.

Et le dernier type de fraude, le plus impudent et le plus intéressant, est l'informatique.
Supposons que vous ayez décrypté la méthode obscurcie décrite ci-dessus et que vous ayez pu configurer le déploiement.

Cependant, rien ne se passe aprÚs le pipeline. Tout s'est passé sans erreur, le résultat a été un succÚs - mais rien n'a changé. Comment c'est?

Et voici comment - le coureur lui-mĂȘme, sur lequel le CI / CD est liĂ©, se trouve avec le dĂ©veloppeur de tout ce projet, que le client n'a jamais connu.

Et sur ce coureur au tout dĂ©but, il y a un message indiquant que le conteneur pour le pipeline ne peut pas ĂȘtre crĂ©Ă©, car il existe dĂ©jĂ  un conteneur du mĂȘme nom et il sera utilisĂ©. AprĂšs quoi tout commence sans erreur.

Bien sĂ»r, le problĂšme est dans le coureur, mais en mĂȘme temps, le dĂ©veloppeur est d'accord avec tout ce que le client lui passe - clouer le conteneur, recrĂ©er le coureur ... mais en fait ne fait rien.

Si le client est plus ou moins adĂ©quat, vous pouvez le lui montrer en modifiant le fichier de dĂ©ploiement de sorte qu'une commande y soit exĂ©cutĂ©e, par exemple, Ă©cho avec la date actuelle. Et pour dĂ©montrer que le script modifiĂ© n'y est pas exĂ©cutĂ©, car le script lui-mĂȘme se trouve en fait dans le conteneur et seules les variables y sont transfĂ©rĂ©es.

Cependant, dans ce cas Ă©galement, vous ne pourrez rien faire de spĂ©cial - si vous crĂ©ez votre propre runner, alors ... correctement - il ne lancera plus le dĂ©ploiement de tous les anciens projets clients, et le dĂ©veloppeur ne donnera naturellement pas accĂšs au runner mais supprimera simplement la documentation, qui est complĂštement diffĂ©rente de qui est en fait installĂ© sur le runner: par exemple, dans la documentation, l'image de base peut ĂȘtre AWS AMI, tandis que certains Alpine Linux personnalisĂ©s sont utilisĂ©s et apk est utilisĂ© Ă  la place de yum dans le script, etc.

Et mĂȘme si le client accepte que le dĂ©veloppeur soit Ă  blĂąmer pour tout, il ne pourra pas le refuser. Il n'y a pas d'accĂšs au runner et ce qui est rĂ©ellement utilisĂ© lĂ -bas est inconnu, car vous ne pouvez mĂȘme pas y exĂ©cuter de commandes. Si vous crĂ©ez le vĂŽtre par essais et erreurs, cela prendra beaucoup de temps, et le client avait traditionnellement besoin d'hier.

Eh bien, si le client est le plus ordinaire, vous serez Ă  blĂąmer et il ne croira aucun argument.

MoralitĂ© - si vous pensez que tout devrait fonctionner pour vous, mais que cela ne fonctionne pas - il est possible que ce ne soit pas vous qui ĂȘtes Ă  blĂąmer, mais c'Ă©tait Ă  l'origine prĂ©vu par le crĂ©ateur du systĂšme.

Est-il possible que vous ayez Ă©galement rencontrĂ© des escrocs similaires, ou que vous ayez Ă©tĂ© victime d'une approche fondamentalement nouvelle d'un client-escroc, qui diffĂšre du banal «promis - n'a pas payé»? Écrivez dans les commentaires! Je les lis avec plaisir et y rĂ©ponds souvent.

Source: https://habr.com/ru/post/undefined/


All Articles