Դպրոցական տարիներին իմ ամենամեծ խնդիրներիցս մեկը ուշ արթնանալն էր։

Ամեն անգամ հեռախոսիս «բուձիլնիկը» անջատվում էր «մի 5 րոպե էլ ու հելնում եմ» մտքով, ինչն էլ վերածվում էր ժամերի։ Արդյունքում՝ 11 և 12-րդ դասարաններում դասերին գրեթե չէի մասնակցում, իսկ եթե գնում էի՝ հիմնականում վերջին ժամերին։

Բարև, ես Վահեն եմ։ Որոշ հանգամանքների բերումով՝ կիբերանվտանգության դասախոս։ Ուզում եմ կիսվել իմ կյանքի իրական պատմություններից մեկով՝ թե ոնց կարողացա «կոտրել» դպրոցի էլեկտրոնային մատյանը ու ստացա աշխատանքի առաջարկ։

Բնականաբար, ուշ արթնանալը իր ազդեցությունն ունեցավ գնահատականներիս վրա։ Բացակաները շատ էին, իսկ գնահատականները՝ ցածր։ Ժամանակի ընթացքում ակնհայտ դարձավ, որ դասերին պարզապես հաճախելը այլևս չի լուծելու խնդիրը։

Այդ ժամանակահատվածում դպրոցներում ակտիվ փուլում էր էլեկտրոնային մատյանների ներդրումը։ Սկզբում dasaran.am հարթակն էր, հետո անցում կատարեցինք emis.am էլեկտրոնային մատյանին։ Ուսուցիչները, հատկապես տարիքով մեծերը, հաճախ օգտվում էին դպրոցի ինֆորմատիկայի կաբինետից՝ իրենց մատյանները լրացնելու համար, ինչը հետագայում դեր խաղաց իմ պատմության մեջ։

Մի օր, երբ ինչ-որ հրաշքով շուտ էի արթնացել, ու նենց էր ստացվել, որ գնացել էի դասի (հնարավոր ա՝ վերջին ժամն էր, արդեն չեմ հիշում), նստած էինք ընկերներիս հետ ու բրաուզերով «բզբզում» էինք։ Մտքովս անցավ՝ ստուգեմ բրաուզերում պահպանված տվյալների առկայությունը, ավելի կոնկրետ՝ գաղտնաբառերը։

Չզարմացա, որ գտա ուսուցիչներից մի քանիսի մուտքանուններն ու գաղտնաբառերը։

Մուտքանուն՝ 000001
Գաղտնաբառ՝ 000001-anun

Ստուգեցի մյուսը՝

Մուտքանուն՝ 000007
Գաղտնաբառ՝ 000007-anun

Հասկացա, որ ուսուցիչները չեն փոփոխել իրենց տրված ստանդարտ գաղտնաբառերը։

Մտածեցի՝ «մարդիկ տենց էլ չսովորեցին իրենց ինֆոն պահել»։

Գալիս եմ տուն, նստած ֆիլմ եմ նայում… բայց միտքս լրիվ էն լոգինների վրա ա։ Ֆիլմը թողնում եմ երկրորդ էկրանին, հիմնական էկրանին բացում եմ editor-ը ու սկսում մտածել՝ իսկ ինչ, եթե 000001-ի փոխարեն փորձեմ 000002։

Էդ մտքով սկսեցի կոդ գրել։

Մինչև գրելը մտա emis.am, փորձեցի։ ՍՏԱՑՎԵՑ…

Այս փուլում արդեն պարզ դարձավ, որ խնդիրը միայն մեկ դպրոցի սահմաններում չէ։

Այստեղ գործ ունեինք ավելի լայն խնդրի հետ՝ թույլ վավերացում (Weak Authentication)։

Հետ անցա սքրիպտին։ Որոշեցի ստուգել՝ հարցումների սահմանափակում կա՞, թե՞ ոչ (կարո՞ղ եմ շատ անգամ փորձել մուտք գործել տարբեր հաշիվներով)։

Գրեցի թեթև Python կոդ, որը ռեալիզացնում էր միտքս։ Միացրեցի կոդը։ ՍԱՀՄԱՆԱՓԱԿՈՒՄ ՉԿԱ։ Համակարգում կա հարցումների սահմանափակման բացակայություն (Lack of Rate Limiting)։

Սքրիպթի փոքր փոփոխություններից հետո հնարավոր եղավ ստանալ մոտ 10,000+ ուսուցչի տվյալներ։

Հիմա պատկերացրու՝ նստած ես, քո առաջ էդքան ինֆորմացիա կա… ու դու մտածում ես՝ «լավ, բա հիմա ինչ»։

Չենք մոռացել չէ՞՝ ինչի համար էի սկսել։ Իմ գնահատականների հարցը լուծենք, մնացածը հետո։

Տվյալների միջից ֆիլտրեցի մեր դպրոցի ուսուցիչներին ու առանձնացրեցի նրանց, ովքեր ինձ դաս են տալիս։

Մտնելով նրանցից մեկի էջ՝ անցա էլեկտրոնային մատյանի բաժին։ Պարզվեց, որ գնահատականների փոփոխության համար կա ժամանակային սահմանափակում՝ 3 օրից ավելի հին գնահատականները փոփոխման ենթակա չեն։

Ափսոս… այնքան մոտ էի։

Բայց որոշեցի շարունակել «քանդրտել» համակարգը։

Ասեցի՝ լավ, վերջ, փակ ա։

Բայց էն պահը, երբ ասում ես՝ «նավյակի մի հատ էլ նայեմ»։

Նայում եմ request-ներին… ու էստեղ արդեն սկսվում ա էն մասը, որի համար ես հիմա պատմում եմ էս ամենը։

Պարզվում ա՝ էդ սահմանափակումը մենակ «երևում» ա։ Բրաուզերում ա աշխատում։

Իսկ ներսում՝ սերվերը, ոչ մի բան չի ստուգում։ Փոփոխման ամսաթիվը չի վավերացվում։

Այսինքն՝ եթե ուղիղ հարցում ուղարկես սերվերին՝ կարող ես հանգիստ շրջանցել էդ ամեն ինչը (Client-Side Validation, Broken Access Control)։

Բռնվառ…

Ուզում էի սուրճիցս կում անեի, տեսա՝ վերջացել ա։ Գնացի մյուս բաժակի հետևից, ու էդ ընթացքում արդեն մտքումս գրել էի կոդի լոգիկան։

Հետ եկա, նստեցի ու սկսեցի գրել։

Կոդս արդեն՝
մտնում էր ուսուցիչների էջ,
ֆիլտրում էր գնահատականները,
գտնում էր ցածրները ու բացակաները,
ու դրանք փոխում կամ ջնջում։

Հասկանում էի, որ էս քայլս կարող ա ավելի լուրջ խնդիրների հանգեցնել, քան պարզապես ցածր գնահատականներն են, բայց… արդեն արել էի։

Բայց էս պատմության ամենահետաքրքիրը դա չէր։

Քանի որ արդեն «ներսում» էի, սկսեցի նայել՝ էլ ինչ կա։

Պրոֆիլ բաժնում գտա ուսուցիչների անձնական տվյալները։ Նույնիսկ՝ անձնագրերի նկարներ։

Սա արդեն լուրջ խնդիր էր՝ զգայուն տվյալների արտահոսք (Sensitive Data Exposure)։

Բնականաբար, դրանք էլ հնարավոր էր ներբեռնել ավտոմատ ձևով։

Ստեղ արդեն ես կանգ առա։

Հաջորդ օրը գնացի դպրոց (բնականաբար՝ էլի ուշացած)։ Տեսա դասղեկիս՝ էն եզակի մարդկանցից մեկին, ում բոլորը սիրում էին։ Գիտեի՝ ինքը լուծում կառաջարկի։

Մոտեցա, պատմեցի ամեն ինչ։ Լսեց մինչև վերջ։ Հետո հարցրեցի՝ «եթե տնօրենին ասեմ, խնդիրներ կլինի՞»։

Ասեց՝ «արի միասին գնանք, ես կսկսեմ, դու կշարունակես»։

Վերցրեցի նոթբուքս ու գնացինք տնօրենի սենյակ։

Դասղեկս ներկայացրեց իրավիճակը, ես բացեցի նոթս ու ցույց տվեցի՝ թե կոդը, թե ինչպես ա աշխատում, թե ինչ տվյալների եմ հասել։ Նույնիսկ ցույց տվեցի, որ կարողացել եմ ներբեռնել ուսուցիչների անձնագրերի նկարները։

Խոսեցինք, եկանք էն մտքին, որ պետք ա կապ հաստատել համապատասխան մարմինների հետ։

Զանգեցինք, կապ հաստատեցինք։ Հեռախոսը փոխանցեցին ինձ։

Ներկայացա, բացատրեցի՝ ինչ խոցելիություններ եմ գտել, ոնց են աշխատում, ինչ ռիսկեր կան։

Ու գիտե՞ս ինչ էի սպասում։

Որ հիմա կասեն՝ «էս ինչ ես արել»։

Բայց չէ։

Լսեցին… խոսեցինք…

Ու վերջում առաջարկեցին աշխատանք։

Մի պահ լռեցի։

Բայց կյանքը արդեն ուրիշ ռեժիմում էր՝ համալսարան, հետո բանակ։

Մերժեցի, բայց մի քիչ էլ քննարկեցինք՝ ինչ կարելի ա փոխել, ոնց փակել էդ ամենը։

Մի քանի ամիս հետո արդեն լսեցի, որ համակարգը փոխվել ա։

  • պարտադիր դարձվել էր ստանդարտ գաղտնաբառերի փոփոխությունը,

  • ավելացվել էին անվտանգության զգուշացումներ,

  • ուժեղացվել էր գործողությունների վերահսկումը,

  • ներդրվել էին կասկածելի ակտիվության հայտնաբերման մեխանիզմներ։

Ու գիտե՞ս ինչն ա ամենահետաքրքիրը։

Եթե էս ամեն ինչը մի քիչ ուրիշ ձև անեի… էս պատմությունը լրիվ ուրիշ ավարտ կունենար։

Բայց վերջում հասկացա մի պարզ բան։

Հետաքրքրությունը քեզ կարող ա տանի շատ հեռու։

Բայց ամենակարևորը՝ էն ա, թե որտեղ ես կանգ առնում։

Ի վերջո, համակարգը հասկանալը և դրա խոցելիությունները բացահայտելը արժեք ունի միայն այն դեպքում, երբ դա ծառայում է դրանց շտկմանը, ոչ թե շահագործմանը։


Սքրինշոտը արխիվներից եմ պեղել)


Կիբերանվտանգության մասին իմ տելեգրամյան ալիքը: https://t.me/cybersecurity_am

Իմ ինստան ստեղա՝ https://www.instagram.com/sargsyanvahee