Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 17(271)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7

Библиографическое описание:
Жанатов Т.А. PYTHON ПРОГРАММАЛАУ ТІЛІН ҚОЛДАНАТЫН ҚАУІПСІЗДІК ОСАЛДЫҚТАРЫН АНЫҚТАУ ҮШІН TAINTED MODE ӘДІСІН ЕНГІЗУ // Студенческий: электрон. научн. журн. 2024. № 17(271). URL: https://sibac.info/journal/student/271/330717 (дата обращения: 21.12.2024).

PYTHON ПРОГРАММАЛАУ ТІЛІН ҚОЛДАНАТЫН ҚАУІПСІЗДІК ОСАЛДЫҚТАРЫН АНЫҚТАУ ҮШІН TAINTED MODE ӘДІСІН ЕНГІЗУ

Жанатов Темірлан Аслаұлы

магистарнт, Л.Н.Гумилев атындағы Еуразия Ұлттық Университеті

Қазақстан, Астана қ.

Сагиндыков Каким Молдабекович

научный руководитель,

ғылыми жетекші, т.ғ.к.,доцент, Л.Н.Гумилев атындағы Еуразия Ұлттық Университеті

Қазақстан, Астана қ.

АННОТАЦИЯ

Қазіргі заманғы веб-қосымшаларда осалдықтар жиі кездеседі, олар SQL инъекцияларының жиі жағдайларына немесе сайт аралық сценарийлерді қолдана отырып шабуылдарға әкелуі мүмкін. Бұл осалдықтар көбінесе веб-қосымшаға деректерді дұрыс емес енгізгенде немесе тексеріс болмағанда туындайды. Мұндай мәселелерді анықтау үшін Tainted Mode әдісі кеңінен қолданылады. Бұл мақалада Python технологиясын қолданатын жүйелердің қауіпсіздігіндегі осалдықтарды анықтау үшін Tainted Mode тәсілін енгізу ұсынылған.

 

Кілт сөздер: Python, tainted mode, веб-қосымшалар.

 

Веб-қосымшалар қазіргі ақпараттық жүйелердің ажырамас бөлігіне айналды. Олардың түсінікті пайдаланушы интерфейсі, интернет арқылы қызмет көрсету мүмкіндігі және даму процесін жеделдету сияқты бірқатар артықшылықтары бар. Алайда, веб-қосымшаларды әрдайым қауіпсіздікке назар аудармайтын әзірлеушілер жасайтындықтан, қауіпсіздікке қатысты көптеген мәселелер туындайды. Веб-қосымшалардағы осалдықтар шабуылдаушыларға құпия деректерді ұрлауға, деректердің тұтастығын бұзуға немесе тіпті веб-қосымшалардың қол жетімділігіне әсер етуі мүмкін. Бүгінгі таңда веб-қосымшалардың қауіпсіздігін арттыру ең өзекті міндеттердің бірі болып табылады. Acunetix компаниясының зерттеуіне сәйкес, анықталған осалдықтардың 60%-ы веб-қосымшалармен байланысты. Веб-қосымшалардың қауіпсіздігін жақсартудың кең таралған әдістерінің бірі-осалдықтарды іздеу және жою. Бұл мақалада біз Python бағдарламалау тілін қолдана отырып жасалған веб-қосымшалардағы осалдықтарды автоматты түрде анықтауға арналған "Tainted Mode" тәсілін жүзеге асыруды қарастырамыз.

Динамикалық талдау-бұл программаның қасиеттерін оны орындау және әртүрлі кірістерге негізделген бақылау арқылы алу процесі. Мұндағы басты мәселе-мүмкін болатын орындалу жолдарының көп бөлігін қамтитын осындай кірістерді дайындау. Ал статикалық талдау-бұл программаның қасиеттерін оны орындамай-ақ тек бастапқы кодтан алу процесі. Статикалық талдаудың негізгі кемшілігі-міндетті псевдоним және жолдың мүмкінсіздігі сияқты мәселелерді алгоритмдік шешпеушілігі. Шешімсіздік статикалық талдау арқылы жасалған есептердің дәлсіздігіне әкеледі. Сондықтан сарапшы әр нәтиженің дұрыстығын тексеруге міндетті. Tainted Mode тәсілін іске асыру Python технологиясының қауіпсіздік осалдықтарын іздеу үшін веб-технологияларға қатысты статикалық талдау әдісінің тағы бір кемшілігі бар: олардың барлығы негізінен интерпретацияланған тілдерге негізделген (PHP, Perl, Ruby, Python, Java, MSIL), олар жол айнымалыларын код ретінде есептеудің маңызды қабілетіне ие. Бұл мүмкіндік интерпретацияланған тілдерге қолдануда статикалық талдаудың толық болмауына әкеледі. Динамикалық талдау арқылы бұрмаланған режимді жүзеге асыруды таңдау статикалық талдау туралы алдыңғы ойларға байланысты жасалды.

Енгізілген деректерді дұрыс емес (немесе жоқ) тексеруден туындаған қауіпсіздік осалдығының дәрежесін дәлірек анықтау үшін келесі болжамдар жасалды:

1) Пайдаланушы HTTP сұраулары арқылы алынған барлық деректер дұрыс емес (немесе бұрмаланған) болып саналады. Бұл веб-қосымшаны пайдалану мүмкіндігі туралы ең қатаң болжам.

2) веб-қосымшаның жергілікті деректері сенімді (немесе кірленбеген) болып саналады. Бұл болжам жүйенің қауіпсіздігіне ішкі жағынан әсер ететін хакер жоқ деп ойлатады. Әрбір өзара әрекеттесу тек HTTP сұраулары мен жауаптары арқылы жүзеге асырылады.

3) кез келген сенімсіз деректерді "санитарлық өңдеу"деп аталатын арнайы өңдеу әдістері арқылы сенімдіге айналдыруға болады. Веб-қосымшаларды әзірлеудің әр технологиясында осындай мүмкіндіктер бар. Осы болжамдарға сүйене отырып, қауіпсіздік осалдығы келесі ережелердің кез келгенін бұзу ретінде анықталады:

1) HTTP жауаптарын құру кезінде сенімсіз (бүлінген) деректерді пайдалануға болмайды. Бұл сайтаралық сценарийлерді қолдану арқылы шабуылдардың алдын алады.

2) сенімсіз (бүлінген) деректер Жергілікті қоймаларда сақталмауы тиіс. Бұл болашақта осы файлдардан HTTP жауаптарын жасау мүмкіндігін болдырмайды.

3) дерекқор, пошта, LDAP және т.б. сияқты сыртқы қызметтерге командалар құру кезінде сенімсіз (вирус жұққан) деректерді пайдаланбау керек. Бұл инъекциялық шабуылдардың көпшілігінің алдын алады.

4) сенімсіз (бүлінген) деректер кіріс деректері ретінде аудармашыға берілетін командаларды құру кезінде пайдаланылмауға тиіс. Бұл сценарий кодын пайдаланып шабуылдардың алдын алады. Осы ережелерді жүзеге асыру үшін Python аудармашысына модификация енгізілді. Кірістірілген string класының көрінісі сәйкес жол мәнінің бұрмалануын бақылайтын логикалық жалаушаны қамтитындай етіп өзгертілді. Дұрыс емес деректерді алуға болмайтын функциялар маңызды функциялар деп аталады. Python-да белгілі бір программаны түсіндіру процесін келесідей ұсынуға болады:

1) программалық айнымалыларға HTTP параметрлері арқылы пайдаланушы енгізуін тағайындаңыз. Оларды бүлінген деп белгілеңіз;

2) Егер қандай да бір жол айнымалысы бүлінген жол мәндерімен тағайындау, біріктіру және т. б. арқылы өзара іс-қимыл жасаса, оны бүлінген деп белгілеңіз;

3) егер қандай да бір бұзылған жол мәні тазалау процедурасынан өтсе, оны дақ қалдырмай белгілеңіз:

4) Егер қандай да бір бұрмаланған жол мәні сыни функцияға берілсе, ықтимал осалдығын көрсететін қате туралы хабар беріледі. Жұмыс істеу үшін бұл интерпретация процесі пайдаланушы енгізуін қайтаратын, пайдаланушы енгізуін өңдейтін және пайдаланушы енгізуі үшін маңызды функциялардың тізімімен конфигурациялануы керек. Веб-қосымшалар әдетте белгілі бір шеңберлерде жасалатындықтан, HTTP кірісін алу, HTTP шығысын құру немесе сыртқы қызметтермен өзара әрекеттесу үшін қолданылатын функция атаулары әр түрлі веб-қосымшаларда бірдей болмауы мүмкін. Сондықтан Tainted Mode іске асырылуы талданатын веб-қосымшалар қолданатын әртүрлі құрылымдар үшін және конфигурациялары үшін жеткілікті икемді болуы керек. Әзірленген конфигурация схемасында функция атауларының үш тізімі бар:

1) бірінші тізімде HTTP сұрауларынан пайдаланушы енгізуін қайтаратын функция атаулары бар. Мұндай функция қайтарған әрбір жол сигнал беру күйінде tainted жалаушасын алады.

2) екінші тізімде пайдаланушы енгізуін өңдейтін функция атаулары бар. Жол мәні tainted жалаушасын unsignaled күйінде алады, егер оған осы тізімдегі функция қолданылған болса.

3) үшінші тізімде жүйелік қоңырауларға арналған қабықшалар, мәліметтер базасына сұраныстар және т.б. сияқты маңызды функциялардың атаулары бар. Егер белгілі бір шеңберде жасалған веб-қосымшаны талдау қажет болса, онда орындалатын жалғыз жұмыс - аталған функциялардың тізімдерін тиісті мәндермен толтыру.

Бұл мақалада кірістердің дұрыс тексерілмеуінен (немесе болмауынан) туындаған қауіпсіздік осалдықтарын іздеу үшін "Tainted Mode" тәсілін енгізу сипатталған. Tainted mode-дің қажетті функцияларына қол жеткізу үшін Python аудармашысына қажетті өзгерістер енгізілді: Taint мәнін орнату, оны программа операторларына тарату және қауіпсіздік үшін маңызды функцияларға бүлінген мәндерді беру реакциясы. Құрал үш конфигурация файлын пайдаланады. Бірінші файлда пайдаланушы енгізуін қайтарады деп есептелетін параметрлер, екінші файлда пайдаланушы енгізуін өшіреді деп есептелетін функциялар, ал үшіншісінде маңызды деп саналатын функциялар бар. Осылайша, құрал қажет болған жағдайда әртүрлі платформаларды қолдау үшін оңай қайта конфигурациялануы мүмкін.

 

Әдебиеттер тізімі:

  1. Лутц М. Программирование на Python, том I, 4-е издание. — Пер. с англ. - СПб.: Символ- Плюс, 2011. - 992 с.
  2. Лутц М. Программирование на Python, том II, 4-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2011. - 992 с.
  3. Аллен Б. Дауни - Think DSP. Цифровая обработка сигналов на Python – Издательство "ДМК Пресс" - 2017 – 160 с.
Удалить статью(вывести сообщение вместо статьи): 

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.