გამეორებით შეტევა, ასევე ცნობილი როგორც თავიდან ჩართვის თავდასხმა, არის კიბერდანაშაული, როდესაც ბოროტმოქმედი ხელში ჩაიგდებს ქსელში გადაცემულ მონაცემებს, შემდეგ კი მას იმეორებს. ორიგინალი მონაცემების (რომელიც ავტორიზებული მომხმარებლისგან მოდის) ვალიდურობის გამო ქსელის უსაფრთხოების პროტოკოლი თავდასხმაზე ისე რეაგირებს, როგორც მონაცემთა ჩვეულებრივ გადაცემაზე. რადგანაც ხდება ორიგინალი შეტყობინებების ხელში ჩაგდება და სიტყვა-სიტყვით განმეორება, ჰაკერებს მათი გაშიფვრა არც სჭირდებათ.
რის გაკეთება შეუძლიათ ჰაკერებს გამეორებით თავდასხმის დროს?
გამეორებით თავდასხმის დროს დაცულ ქსელში შენახული ინფორმაციის მოსაპოვებლად ერთი შეხედვით ვალიდური რეკვიზიტები გამოიყენება. მსგავსი შეტევებით ხდება ფინანსური ინსტიტუტების მოტყუება განმეორებითი ტრანზაქციების შესაქმნელად, რაც თავდამსხმელებს მსხვერპლების ანგარიშებიდან ფულის მოპარვის საშუალებას აძლევს. ხანდახან ჰაკერები იყენებენ დაშიფრული შეტყობინებების სხვადასხვა ნაწილებს და შედეგად მიღებულ შიფრ-ტექსტს ქსელს გადასცემენ; ამას cut-and-paste თავდასხმა ეწოდება. ქსელის რეაქცია ასეთ შეტევაზე ჰაკერს აძლევს მნიშვნელოვან ინფორმაციას, რომელიც შესაძლოა სისტემის წინააღმდეგ გამოიყენოს.
გამეორებით შეტევების საფრთხეები მარტივი ამოსაცნობია, თუმცა ძნელია განისაზღვროს თუ ზუსტად რის გაკეთება შეუძლია თავდამსხმელს მხოლოდ ამ მეთოდის გამოყენებით. თავდამსხმელს არ შეუძლია გაგზავნის პროცესში მყოფი ინფორმაციის შეცვლა ქსელის მიერ უარყოფის გარეშე, რაც თავდასხმის ეფექტიანობას უკვე განხორციელებულ ქმედებებამდე ამცირებს. ასეთი შეტევებისგან თავის დაცვა შედარებით მარტივია. მარტივი გამეორებით თავდასხმის წინააღმდეგ შეიძლება ისეთი ზედაპირული ტექნიკის გამოყენება, როგორიცაა მონაცემთა გადაცემაზე დროის ნიშნულების დამატება. ასევე შესაძლებელია სერვერების მიერ განმეორებითი შეტყობინებების ქეშირება და გამეორებების კონკრეტული რაოდენობის შემდეგ მოშორება, რითაც სწრაფი თანმიმდევრობით გამეორებადი შეტყობინებების მცდელობების რაოდენობა შეიზღუდება.
გამეორებით თავდასხმების მნიშვნელობა კრიპტოვალუტაში
მსგავსი თავდასხმები ბევრ სფეროში გვხვდება, თუმცა ისინი განსაკუთრებით მნიშვნელოვანია კრიპტოვალუტების ტრანზაქციებისა და ბლოკჩეინების ლეჯერებისთვის. ამის მიზეზი ისაა, რომ ბლოკჩეინის ლეჯერებს ახასიათებს პერიოდული პროტოკოლური ცვლილებები ან განახლებები, რასაც hard fork-ები ეწოდება. Hard fork-ის დროს არსებული ლეჯერი ორ ეგზემპლარად იყოფა, ერთი პროგრამის ძველ ვერსიაზე მუშაობს, მეორე კი ახალ, განახლებულ ვერსიაზე. ზოგიერთი hard fork უბრალოდ ლეჯერის განახლებას ემსახურება, სხვები კი ცალკე ვითარდება და სრულად ახალ კრიპტოვალუტას ქმნის. ამ მეორე სახეობის hard fork-ის ერთ-ერთი ყველაზე ცნობილი მაგალითია 2017 წლის 1-ელ აგვისტოს Bitcoin-ის ბლოკჩეინზე fork-ის სახით Bitcoin Cash-ის შექმნა.
Hard fork-ების დროს თეორიულად შესაძლებელია თავდამსხმელმა გამეორებით შეტევა ბლოკჩეინ ლეჯერების წინააღმდეგ გამოიყენოს. თუ მომხმარებელი ერთ ლეჯერზე განახორციელებს ტრანზაქციას hard fork-მდე ვალიდური საფულით, ის ვალიდური იქნება მეორე ლეჯერშიც. შედეგად ერთი ლეჯერით კრიპტოვალუტის ერთეულის მიმღებ პირს შეუძლია გადავიდეს მეორე ლეჯერზე, გაამეოროს ტრანზაქცია და თაღლითურად გადარიცხოს იგივე ოდენობის თანხა საკუთარ ანგარიშზე. Hard fork-ის დასრულების შემდეგ ბლოკჩეინზე დამატებული მომხმარებლები ამ შეტევისგან დაცულები არიან, რადგან მათი საფულე ლეჯერების საერთო ისტორიის ნაწილი არ არის.
როგორ შეიძლება ბლოკჩეინების დაცვა ასეთი თავდასხმებისგან?
იმის მიუხედავად, რომ hard fork-ის შემდეგ ბლოკჩეინ ლეჯერებისთვის გამეორებით თავდასხმა სერიოზული საფრთხეა, hard fork-ების უმეტესობა ხორციელდება უსაფრთხოების პროტოკოლებით, რომლებიც შექმნილია მსგავსი მოვლენების აღსაკვეთად. ბლოკჩეინზე გამეორებით თავდასხმის წინააღმდეგ მიმართული ზომები იყოფა ორ კატეგორიად, რომლებიც ცნობილია როგორც ძლიერი დაცვა და მონაწილეობითი დაცვა. ძლიერი დაცვის შემთხვევაში ახალ ლეჯერს hard fork-ის შემდეგ ემატება შესაბამისი სანიშნე, რომელიც ადასტურებს რომ მასში ასახული ტრანზაქციები არ იქნება ვალიდური ძველ ლეჯერში და პირიქით. ასეთი დაცვა გამოყენებულ იქნა Bitcoin-ისგან Bitcoin Cash-ის შექმნის დროს.
მისი დანერგვის შემდეგ, ძლიერი დაცვა ავტომატურად აქტიურდება hard fork-ის დაწყებისას. მონაწილეობითი დაცვა კი მომხმარებლისგან მოითხოვს ტრანზაქციაში ცვლილებების ხელით განხორციელებას რათა დარწმუნდნენ, რომ ისინი არ გამეორდება. მონაწილეობითი დაცვა მოსახერხებელია ისეთი მდგომარეობაში, როდესაც hard fork-ის მიზანია კრიპტოვალუტის მთავარი ლეჯერის განახლება და არა მისგან ახალი ვერსიის შექმნა.
მთელ ლეჯერზე განხორციელებული გადაწყვეტების გარდა, ინდივიდუალურ მომხმარებლებს გამეორებით შეტევებისგან თავის დასაცავად სხვადასხვა ქმედებების განხორციელება შეუძლიათ. ერთ-ერთი მეთოდია მონეტების დაბლოკვა სანამ ლეჯერში არ გაჩნდება საკმარისი რაოდენობის ბლოკები, რითაც აღიკვეთება გამეორებით შეტევები, რადგან ამ მონეტის გამოყენებას ქსელი არ დაადასტურებს. თუმცა უნდა აღინიშნოს, რომ ამ ფუნქციას ყველა საფულე და ლეჯერი არ გვთავაზობს.
შეჯამება
გამეორებით შეტევა წარმატების შემთხვევაში ქსელის უსაფრთხოებას დიდ პრობლემებს უქმნის. სხვა ტიპის შეტევებისგან განსხვავებით, გამეორებით თავდასხმას არ სჭირდება მონაცემთა გაშიფვრა, რაც მის გამოყენებას ამარტივებს ბოროტმოქმედებისთვის, ვისაც გზაზე დაშიფრული დაცვის პროტოკოლები ეღობება. მათ განახლებაში ან გაყოფაში გამოყენებული hard fork-ების გამო, ბლოკჩეინის ლეჯერები ამ ტიპის კიბერთავდასხმის წინააღმდეგ განსაკუთრებით სუსტია. თუმცა არსებობს მძლავრი მეთოდები, რომლებიც ბლოკჩეინ სისტემებს მათგან იცავს. მაგალითად, ძლიერ დაცვას შეუძლია hard fork-ის შემდეგ თავდამსხმელებს ტრანზაქციების გამეორებაში ხელი შეუშალოს.