Stop Covid აპლიკაცია და მონაცემთა უსაფრთხოება

ჯანდაცვის სამინისტრომ კორონავირუსის გავრცელებასთან საბრძოლველად აპლიკაცია “Stop Covid” წარადგინა, რომლის მიზანია ახალი კორონავირუსით დაინფიცირებული ადამიანის კონტაქტების ადრეული გამოვლენა და დროული ინფორმირებით ინფიცირებულთა რიცხვის შემცირება. აპლიკაციის საწყის კოდზე იმუშავა ავსტრიულმა არაკომერციულმა ორგანიზაციამ “NOVID20”-მა Dolphin Technologies-თან და Rocket Media Communications-თან თანამშრომლობით. სწორედ მასზეა დაფუძნებული ქართული აპლიკაცია და იგი ხელმისაწვდომია, როგორც ანდროიდის, ასევე, iOS-ის მომხმარებლებისთვის.

როგორ მუშაობს აპლიკაცია?

აპლიკაციის მოხმარების პროცესი მაქსიმალურად გამარტივებულია. ინსტალაციის შემდეგ, მას შემდეგ რაც მომხმარებელი დაეთანხმება აპლიკაციის სრულყოფილად ფუნქციონირებისთვის საჭირო პირობებს, ენიჭება ანონიმური ID ყოველგვარი რეგისტრაციის გარეშე. პროგრამა იყენებს Bluetooth, GPS და Google Nearby ტექნოლოგიას, რათა მაღალი სიზუსტით დაადგინოს, რომელი სმარტფონები იმყოფებოდნენ ერთმანეთთან სარისკო დისტანციაზე (2 მეტრზე ნაკლები მანძილი). ორი სმარტფონის შეხვედრისას, ორივე მომხმარებლის აპლიკაციაში ინახება კონტაქტის ID, ურთიერთობის თარიღი, დრო და ადგილმდებარეობა. თუ მომხმარებელი ტესტ-პოზიტიურია Covid-19-ზე, აპლიკაციაში ადასტურებს ინფიცირებას, შემდეგ კი სისტემა აფრთხილებს ყველა იმ ადამიანს ვისთანაც ინფიცირებულ ადამიანს ჰქონდა კონტაქტი ბოლო 5 დღის განმავლობაში, რათა დროულად მიიღონ ზომები და მოახდინონ თვითიზოლაცია.

მომხმარებელი ლაბორატორიულად დადასტურებული პასუხის შემდეგ თავად წყვეტს აპლიკაციას შეატყობინოს თუ არა ინფიცირება. შეტყობინების შემთხვევაში, იგი უთითებს მობილურის ნომერს, რომელზეც ეგზავნება ოთხნიშნა PIN კოდი. მობილურის ნომერი ცენტრალიზებულად მოწმდება ბაზაში, რომელსაც აწარმოებს ჯანდაცვის სამინისტრო. ტელეფონის ნომრის ვერიფიკაციის შემდეგ, მის კონტაქტებს ეცნობებათ ავტომატურ რეჟიმში (აპლიკაცია ამოუგდებს ალერტს), რომ კონკრეტულ დროს და ადგილას, ისინი იმყოფებოდნენ ინფიცირებულ პირთან ახლო კონტაქტში. ინფორმაცია ინახება ლოკალურად, მომხმარებლის მობილურ ტელეფონში დაშიფრული სახით.

რა სახის ინფორმაციაზე აქვს წვდომა აპლიკაციას?

აპლიკაციას დიდი გამოხმაურება მოყვა საზოგადოების მხრიდან. გარკვეული ნაწილი მას სკეპტიკურად შეხვდა, გამომდინარე იქიდან, რომ ინსტალაციისას “Stop Covid” აპლიკაცია ანდროის მომხმარებლებთან ითხოვდა მიკროფონზე წვდომას, რაც შემდგომში ჯანდაცვის სამინისტროს მხრიდან ოფიციალურად განიმარტა შემდეგით: “აპლიკაცია იყენებს Google Nearby ტექნოლოგიას, სმარტფონებს შორის მანძილის დასადგენად.” Google Nearby იყენებს ულტრაბგერას, რომელიც ადამიანის ყურისთვის შეუმჩნეველია, თუმცა სხვა სმარტფონებს “ესმით”. რეალურად კი მიკროფონზე წვდომა აპლიკაციას არ აქვს.

აპლიკაციის საწყისი კოდი ავსტრიულმა კომპანიამ GitHub-ზე (იხილეთ აქ) დადო, თუმცა ჯანდაცვის სამინისტროს გარკვეული ფუნქციონალი (მაგალითად, ტელეფონის ნომრის საშუალებით ინფიცირებულის ვერიფიკაცია) დაამატა.

აპლიკაციის კოდის ანალიზისას, კრიტიკულ საფრთხეს ვერ მივაკვლიეთ, თუმცა, მაინც გიზიარებთ რამდენიმე განსხვავებული ხელსაწყოს სკანირების შედეგებს.

აპლიკაციის SISIK-ზე სკანირებისას სკანერმა კრიტიკული რისკები ვერ გამოავლინა, თუმცა საშუალება მოგვცა ჩაგვეხედა, თუ რაზე აძლევს ნებართვას მომხმარებელი აპლიკაციის ინსტალაციისას. სკანერმა საშიშად აღიქვა ლოკაციის განმსაზღვრელი შემდეგი ფუნქციები: ACCESS_COARSE_LOCATION, ACTIVITY_RECOGNITION, ACCESS_BACKGROUND_LOCATION. ამ ხელსაწყოს მსგავსი შედეგი მივიღეთ VirusTotal-ზეც.

სისუსტეებზე სკანირების შედეგების განხილვამდე უნდა აღვნიშნოთ, რომ ამ სისუსტეების პრაქტიკაში გამოყენებადობა და პოტენციური ზიანი გამოკვლეული არ არის.

ImmuniWeb-ზე სკანირებისას მივიღეთ შემდეგი შედეგი: 3 საშუალო და 5 დაბალი საშიშროების მქონე რისკები, არცერთი კრიტიკული.

Hardcoded Sensitive Data [M10] [CWE-200] [SAST]
მობილური პროგრამა შეიცავს პოტენციურად სენსიტიურ მონაცემებს. თავდამსხმელს, რომელსაც წვდომა აქვს მობილური პროგრამის ფაილზე, შეუძლია ადვილად მოახდინოს მონაცემთა ექსტრაქცია აპლიკაციიდან და გამოიყენოს იგი შემდგომი შეტევების დროს.
Predictable Random Number Generator [M5] [CWE-338] [SAST]
მობილური აპლიკაცია იყენებს პროგნოზირებად “შემთხვევითი რიცხვების გენერატორს” (RNG). გარკვეულ პირობებში ამ სისუსტემ შეიძლება საფრთხე შეუქმნას მობილური აპლიკაციის მონაცემთა დაშიფვრას ან რანდომიზაციაზე დამყარებულ სხვა დაცვის საშუალებებს. მაგალითად, თუ დაშიფვრის token-ები გენერირდება აპლიკაციის შიგნით, თავდამსხმელს შეუძლია პროგნოზირებადი token-ით უზრუნველყოს აპლიკაცია ვალიდაციის მიზნით და შემდეგ შეასრულოს სენსიტიური საქმიანობა პროგრამის შიგნით ან ბექენდში.
Cleartext SQLite database [M2] [CWE-312] [DAST]
მობილური აპლიკაცია იყენებს დაუშიფრავ SQLite მონაცემთა ბაზას. მონაცემთა ბაზა თავდამსხმელისთვის შესაძლოა ხელმისაწვდომი იყოს მოწყობილობაზე ფიზიკური წვდომით ან მავნე კოდის საშუალებით root-ის პრივილეგიით (თუმცა ამ ბაზაში სენსიტიური ინფორმაცია არც ხვდება. . .).

ასევე, გიზიარებთ მობილური აპლიკაციების უსაფრთხოების სკანერის – Quixxi-ს შედეგებს, რომელმაც რისკები წინა სკანერებთან შედარებით განსხვავებულად განსაზღვრა.

მონაცემთა კონფიდენციალურობა

ეკატერინე ტიკარაძის განცხადებით, აპლიკაცია ევროპულ კანონმდებლობაზე დაყრდნობით არის შექმნილი და იგი სრულად იცავს მომხმარებლების პერსონალურ ინფორმაციას.

მონაცემთა კონფიდენციალურობის შესახებ მოწოდებულ დოკუმენტზე დაყრდნობით, საერთო ჯამში აპლიკაცია აგროვებს შემდეგ მონაცემებს:
● მომხმარებლის ID;
● ლოკაციის მონაცემები (სენსორული მონაცემები, სმარტფონის ოპერაციული სისტემის მიერ მოწოდებული აქტივობის მონაცემები, მომხმარებელთან კავშირში მყოფი პირების ID-ები);
● განხორციელებული კონტაქტების თარიღები, დრო, ხანგრძლივობა და ლოკაცია;
● ფუნქციური ზარები აპლიკაციაში;
● ინფორმაცია, რომ ინციცირებული ხართ Covid-19-ით;
● მობილურის ნომერი.
დოკუმენტის თანახმად, ინფორმაცია მაქსიმუმ 3 წლის განმავლობაში იქნება განთავსებული სერვერზე, შემდეგ კი წაიშლება. ინფიცირებულის კონტაქტების გამოვლენისა და შეტყობინების გაგზავნისთვის მონაცემები ზიარდება აპლიკაციის ტექნოლოგიურ ავსტრიულ პროვაიდერთან, Dolphin Technologies-თან და ამერიკულ კომპანია Peaberry Software Inc.-თან.

პოტენციური რისკები

პირველადი შეფასებით, აპლიკაცია არ აგროვებს არანაირ დამატებით მონაცემებს, ვიდრე დაანონსებულია. სხვა ქვეყნების მაგალითს თუ გავითვალისწინებთ, ინფორმაციის ბოროტად გამოყენების საფრთხე ყოველთვის იმატებს, როცა საქმე მილიონობით ადამიანის ინფორმაციას ეხება. დაშიფრულად არსებული ინფორმაციის მიუხედავად, შესაძლოა პიროვნებაზე გასვლა სხვა მონაცემებთან კორელაციით. სინგაპურის მაგალითი რომ ავიღოთ, ქვეყანა აქტიურად იყენებდა სათვალთვალო კამერებს და ხელოვნური ინტელექტის ტექნოლოგიებს სხვა საშუალებებთან ერთად, რაც მოქალაქეებზე კონტროლის რისკსა და  ეფექტურობას მკვეთრად ზრდიდა. აუცილებლად უნდა გავიხსენოთ ირანის მაგალითიც, სადაც სწორედ ჯანდაცვის სამინისტროს მოწოდებით ავრცელებდნენ აპლიკაციას, სახელად AC19, რომელიც სინამდვილეში საჯაშუშო ფუნქციას ასრულებდა და მომხმარებლებზე ინფორმაციას (მალულად) აგროვებდა.

ასევე გასათვალისწინებელია, რომ აპლიკაციის განახლების დროს, შესაძლებელია ახალი ფუნქციონალის ჩადება აპლიკაციაში, რომელიც ბევრად მეტ ინფორმაციას მოაგროვებს. ადამიანების უმრავლესობა განახლებებსა და ახალი პრივილეგიის მოთხოვნებს ბრმად ეთანხმება.

რისკად აუცილებლად უნდა მივიჩნიოთ იმ ტექნოლოგიებთან დაკავშირებული საფრთხეები, რომლებიც აპლიკაციაში წამყვან როლს ასრულებენ, ესენია Bluetooth და GPS ტექნოლოგიები. შემტევს შეუძლია მსხვერპლის მობილურ ტელეფონზე, რომელსაც ჩართული აქვს ბლუთუსის ფუნქცია განახორციელოს bluejacking, bluesnarfing ან სხვა სახის Bluetooth შეტევები და წვდომა ჰქონდეს მომხმარებლის პირად, სენსიტიურ ინფორმაციაზე. სარისკოა, ასევე, მუდმივად ჩართულ მდგომარეობაში მყოფი გეოლოკაციის ფუნქცია, რომელიც თავდამსხმელს საშუალებას აძლევს განახორციელოს GPS spoofing.

კითხვაზე, თუ რამდენად მუშაობს მსგავსი ტიპის აპლიკაციები, ალბათ, პასუხი ყველა ქვეყანაში განსხვავებულია. მაგალითად, Jason Bay-მ, სინგაპურის სამთავრობო ტექნოლოგიების სააგენტოს უფროსმა დირექტორმა ისაუბრა იმ გამოწვევებზე, რაც TraceTogether აპლიკაციით მიიღეს. მისი აზრით, ტექნოლოგია პანაცეა არ არის და აპლიკაციაც უამრავ შეცდომით დადასტურებულ ქეისს შეიცავს (თუმცა ეს რისკი ქართულ შემთხვევაში დაზღვეულია ინფიცირებულის ტელეფონის ნომრის ცენტრალურ ბაზაში გადამოწმებისა და ვერიფიცირების საშუალებით; ვერიფიკაციის გარეშე, ალერტი კონტაქტებთან არ მიდის). ეფექტურობაზე საუბრისას ცრუ-დადებითი (false positive) შემთხვევებიც უნდა ვახსენოთ. ასეთი ქეისები, გამოიწვევს მთლიანი ჯაჭვის მცდარად ინფორმირებულობას. მაგალითად, ინფიცირებულ და არაინფიცირებულ ადამიანებს შორის შეიძლება იყოს ფიზიკური ბარიერი (პირობითად, კედელი ან ფანჯარა), დისტანცია კი 2 მეტრზე ნაკლები იყოს. ამ შემთხვევაში ტექნოლოგია იმუშავებს გამართულად, დაფიქსირდება, რომ პიროვნებას კონტაქტი ჰქონდა Covid-19-ით დაავადებულთან, თუმცა, სინამდვილეში, კონტაქტების კვლევა არასწორად წარიმართება. ასეთი აპლიკაციების შედეგი და ეფექტურობა ჯერ კიდევ ბევრ კვლევას მოითხოვს და პანდემიის დასრულების შემდეგ უფრო გამოიკვეთება.

ამრიგად, აპლიკაცია თავისი არსით, დადებით საქმეს ემსახურება, რაც ინფიცირებულთა დროულად გამოვლენაში გამოიხატება. უსაფრთხოების თვალსაზრისით, იმ ინფორმაციაზე დაყრდნობით, რაც ამჟამად გვაქვს, Stop Covid აპლიკაცია კრიტიკული საფრთხის შემცველი არ არის და, ვიმედოვნებთ, არც მომავალში იქნება.

ავტორი: მარიამ დემურაშვილი

———————————————

სასარგებლო ლინკები:

Github-ზე NOVID20-ის კოდი: https://github.com/novid20org/novid20-android-sdk

Android ვერსია: https://play.google.com/store/apps/details?id=gov.georgia.novid20&fbclid=IwAR1HciBjHrjpHl1H52-w2OPFR1fGFV4TpeJb2C_j40xme6zudQkn3o9FZ5E

iOS ვერსია: https://apps.apple.com/us/app/stop-covid/id1507435357?ls=1

Privacy პოლიტიკა (ქართულ ენაზე): https://api.novid20.app/api/v1/mobile/privacy

Novid20-ის ვებსაიტი: https://www.novid20.org/en

Dolphin Technologies: https://www.dolph.in/

Peaberry Software Inc.: https://customer.io/