თანამედროვე ციფრული უსაფრთხოება ზოგჯერ ყველაზე მარტივ შეცდომებზე ირღვევა. უსაფრთხოების მკვლევარმა, რომელმაც ფინტექ-კომპანიის მობილური აპლიკაციის API შეისწავლა, აღმოაჩინა, რომ სისტემის დაცვა მარტივი მანიპულაციით შეიძლებოდა.
ერთი სიმბოლოს ძალა
მკვლევარმა შენიშნა, რომ მოთხოვნა GET /v1/accounts სისტემის მხრიდან 401 (Unauthorized) შეცდომას აბრუნებდა. თუმცა, იმავე მისამართის ბოლოში დამატებითი სიმბოლოს, კერძოდ, დახრილი ხაზის (trailing slash) დამატებამ — GET /v1/accounts/ — სისტემიდან 200 (OK) პასუხი და მომხმარებლის სრული მონაცემები გამოიწვია.
აღმოჩნდა, რომ AWS HTTP API-ის მარშრუტიზაციის მექანიზმები ერთმანეთს არ ეთანხმებოდნენ. როდესაც მომხმარებელი მისამართს ბოლოში დახრილი ხაზით უგზავნიდა, სისტემა მას ავტომატურად ასწორებდა, თუმცა ამ პროცესში ავტორიზაციის კონტექსტი იკარგებოდა.
როგორ მუშაობდა დაცვის გვერდის ავლა?
AWS HTTP API იყენებს ე.წ. „ხარბ“ (greedy) შესაბამისობას. სისტემამ /v1/accounts/ აღიქვა როგორც /v1/accounts-ის პრეფიქსი. პროცესი შემდეგნაირად განვითარდა:
- ავტორიზაციის მექანიზმმა შეამოწმა ორიგინალი მისამართი და დაუშვა მოთხოვნა.
- API Gateway-მა მისამართი გადაწერა და დახრილი ხაზი მოაშორა.
- ინტეგრაციის ფენამ მონაცემები უკვე ავტორიზაციის კონტექსტის გარეშე დაამუშავა.
შედეგად, სისტემა მოთხოვნას ისე ასრულებდა, თითქოს ის ვალიდური ყოფილიყო, თუმცა მომხმარებლის იდენტიფიკატორი (userId) უკვე დაკარგული იყო. ეს ხარვეზი იმდენად მასშტაბური იყო, რომ მკვლევარმა შეძლო ტრანზაქციების ინიცირებაც კი, ყოველგვარი JWT ტოკენის გარეშე.
გაკვეთილი დეველოპერებისთვის
მკვლევარმა ექსპერიმენტის ფარგლებში 0.01 დოლარის ოდენობის საცდელი ტრანზაქცია განახორციელა, რომელიც წარმატებით დასრულდა. კომპანიამ ხარვეზის შესახებ ინფორმაციის მიღებისთანავე, მეორე დღესვე მოახდინა რეაგირება.
უსაფრთხოების გაძლიერების მიზნით, კომპანიამ HTTP API-დან უფრო მკაცრ REST API-ზე გადაინაცვლა. გარდა ამისა, დაინერგა დამატებითი შემოწმებები თითოეულ Lambda ფუნქციაში, რათა მომხმარებლის იდენტიფიკაცია მხოლოდ ავტორიზაციის ეტაპზე არ იყოს დამოკიდებული.
ამ აღმოჩენისთვის მკვლევარმა კომპანიისგან 12 000 აშშ დოლარის ოდენობის ჯილდო მიიღო, რომლის დახარჯვასაც დუბაიში მოგზაურობით გეგმავს.





დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.