ЖЕЛІЛІК ШАБУЫЛДАРҒА ШОЛУ
Қазақстан Республикасы білім және ғылым министрлігі
Әл-Фараби атындағы Қазақ ұлттық университеті
Есім Д.Б.
МАШИНАЛЫҚ ОҚЫТУ ӘДІСТЕРІН ҚОЛДАНА ОТЫРЫП, ЖЕЛІЛІК ШАБУЫЛДАРДЫ АНЫҚТАУ
ДИПЛОМДЫҚ ЖҰМЫС
Мамандығы 5В100200 - Ақпараттық қауіпсіздік жүйелері
Алматы 2021
Қазақстан Республикасы білім және ғылым министрлігі
Әл-Фараби атындағы Қазақ ұлттық университеті
Қорғауға жіберілген
__________ Кафедра меңгерушісі __________ ф.м.ғ.к. Мусиралиева Ш.Ж.
МАШИНАЛЫҚ ОҚЫТУ ӘДІСТЕРІН ҚОЛДАНА ОТЫРЫП, ЖЕЛІЛІК ШАБУЫЛДАРДЫ АНЫҚТАУ
тақырыбында жазылған
ДИПЛОМДЫҚ ЖҰМЫС
5В100200 - Ақпараттық қауіпсіздік жүйелері
Орындаған ___________ Есім Д.Б.
Ғылыми жетекші ___________ Бегимбаева Е.Е.
PhD докторы
Норма бақылаушы ___________ Алпысбай Г.Е.
Алматы 2021
ТҮЙІНДЕМЕ
Дипломдық жұмыс 55 беттен, 33 суреттен және 16 пайдаланылған әдебиеттер тізімінен тұрады.
Кілттік сөздер: нейрондық желі, бағдарламалық жасақтама құру, шешім ағаштары, логистикалық регрессия, градиентті бустинг.
Дипломдық жұмыстың нысандары: машиналық оқыту әдістерін қол-дана отырып, желілік шабуылдарды алдын алу.
Дипломдық жұмыстың мақсаты: машиналық оқыту әдістерін қолдана отырып, желілік шабуылдарды анықтау.
Зерттеудің әдістері: түрлі алгоритмдерді қолданып желілік шабуыл-дарды бірнеше типтерін мысал ретінде алып ең оптималды алгоритм табу.
Зерттеудің міндеттері:
oo желілік шабуалдарды алдын алу;
oo шабуылдарды анықтау;
oo алгоритмдерді тексеру;
oo оңтайлы алгоритмді табу.
Дипломдық жұмыстың қолданылу аясы: желілік шабуылдарды анық-тау қазіргі уақытта корпоративтік желілерді қауіпсіз пайдаланудың өзекті мәселелерің бірі. Желілік құрттардың кең ауқымды өршуі, ботнеттерден DDoS шабуылдары, желілердегі осалдықтарды табудың автоматтандырылған құралдары - осының бәрі жергілікті желілерді қорғауды өте қатты қиындатады.Қазіргі уақытта антивирус, брандмауэр сияқты шабуылдардың алдын алудың белсенді құралдары жетіспейтін желіні табу қиын.Сондықтан, оларға қосымша шабуылдардың пассивті құралдары - шабуылдарды анықтайтын желілік системалар қолданылады.
РЕФЕРАТ
Дипломная работа состоит из 55 страниц, 33 рисунков и 16 источников.
Ключевые слова: нейронная сеть, создание программного обеспечения, деревья решений, логистическая регрессия, градиентный бустинг.
Oбъекты исследoвания: предотвращение сетевых атак с использо-ванием методов машинного обучения.
Цель дипломной работы: выявление сетевых атак с использованием методов машинного обучения.
Методы исследования: найти наиболее оптимальный алгоритм, взяв в качестве примера несколько типов сетевых атак с использованием различных алгоритмов.
Задачи исследования:
oo предотвращение сетевых атак;
oo обнаружение атак;
oo проверка алгоритмов;
oo найти оптимальный алгоритм.
Область применения: выявление сетевых атак в настоящее время является одной из актуальных проблем безопасного использования корпоративных сетей. Масштабные вспышки сетевых червей, DDoS - атаки с ботнетов, автоматизированные средства обнаружения уязвимостей в сетях-все это очень сильно усложняет защиту локальных сетей.В настоящее время трудно найти сеть, в которой не хватает активных средств предотвращения атак, таких как антивирус, брандмауэр.Поэтому в дополнение к ним применяются пассивные средства атак - сетевые системы обнаружения атак.
ABSTRACT
Diploma work consists of 55 pages, 33 pictures and 16 sources.
Keywords: neural network, software development, decision trees, logistic regression, gradient busting.
Thе objеcts of rеsеarch: prevention of network attacks using machine learning methods.
Thе purposе of rеsеarch: detection of network attacks using machine learning methods.
Thе mеthods of rеsеarch: find the most optimal algorithm, taking as an example several types of network attacks using different algorithms.
Thе tasks of rеsеarch:
oo preventing network attacks;
oo attack detection;
oo checking algorithms;
oo find the optimal algorithm.
Thе sphеrе of applications: detection of network attacks is currently one of the most pressing problems of the safe use of corporate networks. Large-scale outbreaks of network worms, DDoS attacks from botnets, automated means of detecting vulnerabilities in networks-all this greatly complicates the protection of local networks.Currently, it is difficult to find a network that lacks active means of preventing attacks, such as antivirus, firewall.Therefore, in addition to them, passive means of attacks are used - network systems for detecting attacks.
МАЗМҰНЫ
КІРІСПЕ 7
1 ЖЕЛІЛІК ШАБУЫЛДАРҒА ШОЛУ 8
1.1 Mailbombing шабуылы 8
1.2 Желілік барлау шабуылы 11
1.3 IP-спуфинг шабуылы, Man-in-the-middle типті шабуыл 11
1.4 SQL, PHP, XPath инъекциялары, сайт аралық сценарий немесе XSS шабуылдары ... ... ... . 12
1.5 Шабуылдарды анықтау әдістерін жіктеу схемасы 14
2 МАШИНАЛЫҚ ОҚЫТУДЫҢ ЕҢ ТАНЫМАЛ АЛГОРИТМДЕРІНЕ ШОЛУ 17
2.1 Классификация ұғымы 17
2.2 Шешімдер ағаштары және оның структурасы 18
2.3 Логистикалық регрессия 19
2.4 Кездейсоқ орман (случайный лес) 22
2.5 Градиентті бустинг 26
2.6 Трейнге және тест үлгісіне бөлу 39
3 МАШИНАЛЫҚ ОҚЫТУ ӘДІСТЕРІН ҚОЛДАНА ОТЫРЫП, ЖЕЛІЛІК ШАБУЫЛДАРДЫ АНЫҚТАУ 46
ҚОРЫТЫНДЫ 53
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТ ТІЗІМІ 54
ҚОСЫМША ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56
КІРІСПЕ
Дипломдық жұмыстың өзектілігі. Желілік шабуылдарды анықтау қазіргі уақытта корпоративтік желілерді қауіпсіз пайдаланудың өзекті мәселелерің бірі. Желілік құрттардың кең ауқымды өршуі, ботнеттерден DDoS шабуылдары, желілердегі осалдықтарды табудың автоматтандырылған құралдары - осының бәрі жергілікті желілерді қорғауды өте қатты қиындатады.Қазіргі уақытта антивирус, брандмауэр сияқты шабуылдардың алдын алудың белсенді құралдары жетіспейтін желіні табу қиын.Сондықтан, оларға қосымша шабуылдардың пассивті құралдары - шабуылдарды анықтайтын желілік системалар қолданылады.
Жоба жұмысының пәні. Ақпараттық қауіпсіздікті қамтамасыз ету мәселелерінде желіге жасалатын шабуылдар қарастырылды.
Жұмыстың мақсаты. Машиналық оқыту әдістерін қолдана отырып, желілік шабуылдарды анықтап алдын алу.
Жоба жұмысының мақсатынан туындайтын міндеттері:
oo желілік шабуалдарды алдын алу;
oo шабуылдарды анықтау;
oo алгоритмдерді тексеру;
oo оңтайлы алгоритмді табу.
Дипломдық жұмыстың құрылымы. Дипломдық жұмыс кіріспе бөлімінен, 3 тараудан, суреттер мен кестеден, пайдаланылған әдебиеттер тізімінен тұрады.
Кіріспе бөлімінде, тақырыптың өзектілігі мен мақсат міндеттері жайлы жазылған.
Негізігі бөлімі 3 тараудан тұрады. Бірінші тарауда желілік шабуылдардың негізгі қағидалары, қасиеттері және түрлері туралы жазылған.
Қорытынды бөлімінде. Қолданылған алгоритмдер жұмыс барысында несімен оңтайлы екеніді талданған.
Пайдаланылған әдебиеттер тізімінде ғылыми жұмыстарға қойылатын белгіленген талаптарға сәйкес жұмысты жазу кезінде пайдаланылған деректер туралы мәліметтер көрсетіледі.
1 ЖЕЛІЛІК ШАБУЫЛДАРҒА ШОЛУ
Алдымен желілік шабуыл деген не екенін анықтаймыз. Желілік шабуыл-мақсаты қашықтағыжергілікті есептеу жүйесін бақылауды (құқықтарды арттыруды) алу, немесе оны тұрақсыздандыру, немесе қызмет көрсетуден бас тарту, сондай-ақ осы қашықтағыжергілікті есептеу жүйесін пайдаланатын пайдаланушылардың деректерін алу болып табылатын іс-әрекет.
Қазіргі уақытта келесі шабуылдар бөлінеді: mailbombing, буфердің толып кетуі, мамандандырылған бағдарламаларды пайдалану (вирустар, сниферлер, трояндық жылқылар, пошта құрттары, rootkit-тар және т.б.), желіні барлау, IP-спуфинг, man-in-the-middle, инъекция (SQL-инъекция, PHP-инъекция, сайт аралық сценарий немесе XSS-шабуыл, XPath-инъекция), қызмет көрсетуден бас тарту (DoS - және DDoS - шабуылдар), фишинг-шабуылдар. Олардың әрқайсысын қарастырайық.
1.1 Mailbombing шабуылы
Бұл шабуылдың мәні-пошта жәшігіне пайдаланушының пошта жәшігіне көптеген хаттар жіберіледі. Бұл шабуыл пошта жәшігінің немесе тіпті бүкіл пошта серверінің істен шығуына әкелуі мүмкін. Бұл шабуылды кез-келген кем дегенде сәл дайындалған киберқылмыскер жасай алады. Осындай шабуылды жүзеге асыруға болатын бағдарламаның қарапайым мысалы - Unabomber. Жасырын түрде пошта хабарламаларын жіберуге мүмкіндік беретін сервердің мекен-жайын және осы хабарламалар тағайындалған пайдаланушының мекен-жайын білу жеткілікті. Осы бағдарлама үшін жіберуге болатын хаттардың саны 12 бит санына тең.
1. Тек тексерілген көздерге электрондық пошта мекенжайын беріңіз.
2. Mailbombing-а үшін кедергі ретінде провайдердің веб-сайты да әрекет ете алады, кейде ол пошта шабуылдарын автоматты түрде анықтайтын етіп конфигурацияланады. Көп жағдайда оларды сервер кіріс хабарламалардың бастапқы IP мекенжайларын салыстыру арқылы таниды. Егер бір көзден алынған хабарламалар саны белгілі бір ақылға қонымды шектеулерден асып кетсе, онда олардың барлығы автоматты түрде сервердегі Recycle Bin-ге түседі. Әрине, шабуылдаушыға өзінің IP мекенжайын бұрмалауға ештеңе кедергі болмайды. Әдетте тәжірибелі шабуылдаушылар мұндай шабуылдарға өте сирек жүгінеді [1].
Буфердің толып кетуі (buffer overflows)
Буфердің толып кетуіне шабуыл жадтың шекарасын бұзуға және қосымшаны авариялық түрде аяқтауға немесе осал бағдарлама жұмыс істеген пайдаланушының атынан Еркін екілік кодты орындауға қабілетті бағдарламалық немесе жүйелік осалдықтарды іздеуге негізделген. Егер бағдарлама әкімшінің есептік жазбасында жұмыс істесе, онда бұл шабуыл осы бағдарлама орындалатын компьютерді толық бақылауға мүмкіндік береді.
Шабуылды жүзеге асыру екі ішкі тапсырманы шешуді талап етеді:
1. Артықшылықты бағдарлама контекстінде орындалатын кодты дайын-дау.
2. Басқаруды дайындалған кодқа бере отырып, бағдарламаны орындау реттілігін өзгерту.Буфердің толып кетуі бойынша шабуылдардың жіктелуі 1-кестеде келтірілген. Шабуыл жүзеге асыруды қажет ететін ішкі міндеттерге сүйене отырып, осы типтегі шабуылдармен күресудің келесі әдістері бөлінеді:
a) Осалдықтарды жою үшін бағдарламаның бастапқы кодтарын түзету. Буфердің толып кетуі, ең алдымен, бағдарламаның дұрыс емес алгоритміне байланысты болады, ол буферлердің шекарасынан тыс жерлерде тексеруді қарастырмайды. Сондай-ақ, бағдарламаның бастапқы кодындағы осалдықтарды автоматты түрде іздеудің арнайы утилиталарын пайдалануға болады. Бұл әдістер мен құралдар сізге көбірек қорғалған бағдарламалар жасауға мүмкіндік береді, бірақ мәселені негізінен шешпейді, тек буфердің толып кетуіндегі осалдықтардың санын азайтады. Бұл тәсіл тікелей бағдарламалық жасақтама жасаушыларға бағытталған және түпкі пайдаланушының немесе жүйелік әкімшінің құралы емес.
b) Орындалмайтын буферлерді пайдалану. Әдістің мәні-деректер мен стек сегменттерінде кодтың орындалуына тыйым салу, яғни деректер мен стек сегменттерінің параметрлері тек жазу және оқу атрибуттарын қамтиды, бірақ орындалмайды. Алайда, деректердің орындалуын шектеу сәйкессіздік проблемасына әкеледі. Орындалатын стек көптеген бағдарламалардың жұмыс істеуі үшін қажет, өйткені оның негізінде компиляторлар код жасайды, операциялық жүйелердің жүйелік функциялары жүзеге асырылады, кодты автоматты түрде генерациялау жүзеге асырылады. Орындалмайтын буферлерді қолдану арқылы қорғаныс тек кодты енгізу арқылы шабуылдардың алдын алады, бірақ шабуылдардың басқа түрлеріне көмектеспейді.
c) Шетелге шығуды тексеруді қолдану. Негізінде бұл әдістің жатыр орындалуын тексеру шығуға шекараның ауыспалы кезінде әрбір айналымда оған. Бұл буфердің толып кетуіне барлық ықтимал шабуылдардың алдын алады, өйткені ол толып кетудің өзін толығымен жояды. Алайда, бұл шешімнің айтарлықтай кемшілігі бар - бағдарлама өнімділігінің айтарлықтай төмендеуі (30 есеге дейін).
d) Тұтастықты тексеруді қолдану. Осы әдіске негізделген шешім Synthetix жобасының арқасында алынды. Synthetix-тің мақсаты-операциялық жүйелердің жұмысын жақсарту үшін кодты мамандандыру. Бұл ретте квази-тұрақтылық (Quasi-invariant) деп аталатын ұғым, яғни белгілі бір шеңберде өзгермейтін орта күйі енгізіледі. Мұндай квази-тұрақтылық әртүрлі шарттардың орындалуын тексерудің бірқатар артық кодын жоюға мүмкіндік береді. Жоба аясында қоршаған ортаның квази тұрақты күйлерін бақылау мен қорғауды қамтамасыз ететін утилиталар жиынтығы жүзеге асырылды. Оларға StackGuard және PointGuard кіреді 1-суретте көрсетілген [1].
1-сурет. Буфердің толып кетуі бойынша шабуылдардың жіктелуі
Мамандандырылған бағдарламаларды пайдалану
Соңғы пайдаланушылардың жұмыс станциялары вирустар мен трояндық коньға өте осал. Вирустар-бұл соңғы пайдаланушының жұмыс станциясында белгілі бір қалаусыз функцияны орындау үшін басқа бағдарламаларға енгізілген зиянды бағдарламалар. Мысал ретінде файлда жазылған вирусты келтіруге болады command.com (Windows жүйесінің негізгі аудармашысы) және басқа файлдарды өшіреді, сонымен қатар ол тапқан барлық басқа нұсқаларды жұқтырады command.com.
"Трояндық ат" - Бұл бағдарламалық жасақтама емес, пайдалы бағдарлама сияқты көрінетін, бірақ іс жүзінде зиянды рөл атқаратын нақты бағдарлама. Типтік "трояндық аттың" мысалы-пайдаланушының жұмыс станциясы үшін қарапайым ойынға ұқсайтын бағдарлама. Алайда, пайдаланушы ойын ойнап жатқанда, бағдарлама өзінің көшірмесін осы пайдаланушының мекен-жай кітабына енгізілген әр абонентке электрондық пошта арқылы жібереді. Барлық абоненттер ойынды пошта арқылы алады, бұл оның одан әрі таралуына әкеледі.
Пакет сниффері-бұл promiscuous mode режимінде жұмыс істейтін желілік картаны қолданатын қолданбалы бағдарлама (бұл режимде физикалық арналар арқылы алынған барлық пакеттерді желі адаптері өңдеуге жібереді). Бұл жағдайда сниффер белгілі бір домен арқылы берілетін барлық желілік пакеттерді ұстап алады. Қазіргі уақытта сниферлер желілерде заңды негізде жұмыс істейді. Олар ақауларды диагностикалау және трафикті талдау үшін қолданылады. Алайда, кейбір желілік қосымшалар деректерді мәтіндік форматта (telnet, FTP, SMTP, POP3 және т.б.) беретіндіктен, сниффердің көмегімен пайдалы және кейде құпия ақпаратты (мысалы, пайдаланушы аттары мен парольдер) білуге болады. Шабуылдардың осы түрлерімен күресудің келесі жолдары бар:
1. Вирусқа қарсы құралдарды пайдалану және олардың қолтаңбаларын үнемі жаңартып отыру. Ол трояндық бағдарламалармен, вирустармен, пошта құрттарымен мәселені шеше алады, бірақ сниферлер мен rootkit мәселелерін шешпейді.
2. Берілетін деректерді шифрлау. Мәселе снифферлер мәселесін толығы-мен шешпейді, алайда жау еркін оқуға болмайтын деректерді ұстап алады. Оларды шешуге уақыт қажет.
3. Антиснифтерді қолдану (мысалы, AntiSniff немесе PromiScan).
4. Брандмауэрлерді пайдалану.
5. Антируткиттерді қолдану.
1.2 Желілік барлау шабуылы
Желілік барлау-бұл жалпыға қол жетімді деректер мен қосымшалар арқылы желі туралы ақпарат жинау. Кез-келген Желіге қарсы шабуылды дайындау кезінде шабуылдаушы, әдетте, ол туралы мүмкіндігінше көп ақпарат алуға тырысады. Желілік барлау DNS сұраулары, эхо тестілеу (ping sweep) және портты сканерлеу түрінде жүзеге асырылады. DNS сұраулары белгілі бір доменнің кім екенін және сол доменге қандай мекен-жайлар тағайындалғанын түсінуге көмектеседі. DNS көмегімен ашылған мекен-жайларды Эхо тестілеу (ping sweep) белгілі бір ортада қандай хосттар жұмыс істейтінін көруге мүмкіндік береді. Хосттардың тізімін алғаннан кейін, шабуылдаушы осы хосттар қолдайтын қызметтердің толық тізімін жасау үшін портты сканерлеу құралдарын қолданады. Ақырында, шабуылдаушы хосттарда жұмыс істейтін қосымшалардың сипаттамаларын талдайды [1]. Нәтижесінде бұзу үшін пайдалануға болатын ақпарат алынады. Бұл шабуылмен күресу жолдары:
* ICMP жаңғырығын өшіру және перифериялық маршрутизаторлардағы
эхо жауабы. Алайда, бұл желілік ақауларды диагностикалау үшін қажетті деректердің жоғалуына әкеледі.
* Басып кіруді анықтау жүйелерін (IDS) пайдалану.
1.3 IP-спуфинг шабуылы, Man-in-the-middle типті шабуыл
IP-спуфинг корпорацияның ішінде немесе одан тыс орналасқан зиянкес өзін санкцияланған пайдаланушы ретінде көрсеткен кезде орын алады. Мұны екі жолмен жасауға болады. Біріншіден, зиянкес санкцияланған IP-мекенжайлардың ауқымы шегінде орналасқан IP-мекенжайды немесе белгілі бір желілік ресурстарға қол жеткізуге рұқсат етілген авторизацияланған сыртқы мекенжайды пайдалана алады. IP шабуылдары көбінесе басқа шабуылдардың бастапқы нүктесі болып табылады. Классикалық мысал-dos шабуылы, ол шабуылдаушының шынайы тұлғасын жасыратын біреудің мекен-жайынан басталады.Спуфинг қаупін келесі шаралар арқылы жеңілдетуге болады (бірақ жойылмайды) :
1. Қол жеткізуді басқару. IP-ны бұзудың алдын алудың ең оңай жолы-қол жеткізуді басқаруды дұрыс орнату. IP спуфигінің тиімділігін төмендету үшін сыртқы желіден келетін кез-келген трафикті сіздің желіңіздің ішінде орналасуы керек бастапқы мекен-жаймен қиып алуды басқарыңыз. Егер сыртқы желінің кейбір мекенжайлары рұқсат етілсе, бұл әдіс тиімсіз болады.
2. Сүзу RFC 2827. Сіз өзіңіздің желіңіздің пайдаланушыларының басқа біреудің желілерін бұзу әрекеттерін тоқтата аласыз (және құрметті "желі азаматы"бола аласыз).Ол үшін бастапқы мекен-жайы Сіздің ұйымыңыздың IP мекенжайларының бірі болып табылмайтын кез келген шығыс трафикті қабылдамау керек. "RFC 2827" деп аталатын сүзудің бұл түрін провайдер де орындай алады. Нәтижесінде белгілі бір интерфейсте күтілетін бастапқы мекен-жайы жоқ барлық трафик қабылданбайды.
3. Криптографиялық аутентификацияны пайдалану.
Man-in-the-middle типті шабуыл
Man-in-the-Middle түріндегі шабуыл үшін зиянкеске желі арқылы берілетін пакеттерге қол жеткізу қажет. Провайдерден кез-келген басқа желіге жіберілген барлық пакеттерге осындай қол жетімділікті, мысалы, осы провайдердің қызметкері ала алады. Шабуылдардың бұл түрі үшін пакеттік сниферлер, көлік хаттамалары және маршруттау хаттамалары жиі қолданылады. Шабуылдар ақпаратты ұрлау, ағымдағы сессияны ұстап алу және жеке желілік ресурстарға қол жеткізу, трафикті талдау және желі мен оны пайдаланушылар туралы ақпарат алу, DoS түріндегі шабуылдарды жүргізу, берілетін деректерді бұрмалау және желілік сессияларға рұқсат етілмеген ақпаратты енгізу мақсатында жүргізіледі [1].
Бұл шабуылмен күресу жолдарының бірі деректерді шифрлауды пайдалану.
1.4 SQL, PHP, XPath инъекциялары, сайт аралық сценарий немесе XSS шабуылдары
SQL инъекциясы-бұл дерекқорға SQL сұрауларының параметрлері өзгеретін шабуыл. Нәтижесінде сұрау мүлдем басқа мағынаға ие болады және кіріс деректерін сүзу жеткіліксіз болған жағдайда құпия ақпаратты шығарып қана қоймай, деректерді өзгертежоя алады.
PHP инъекциясы-PHP-де жұмыс істейтін веб-сайттарды бұзудың бір әдісі. Бұл арнайы жасалған зиянды сценарийді сайттың артқы жағындағы веб-қосымшаның кодына енгізуден тұрады, нәтижесінде еркін командалар орындалады.
XSS шабуылы-бұл серверде бар осалдыққа шабуыл, ол сервер жасаған HTML бетіне кез-келген нәрсе болуы мүмкін және бұл кодты айнымалы мәні ретінде беруге мүмкіндік беретін еркін кодты енгізуге мүмкіндік береді, сүзу жұмыс істемейді, яғни сервер бұл айнымалыны тексермейді. онда тыйым салынған белгілердің болуы - , ,, ', ". Бұл айнымалының мәні жасалған HTML парағынан серверге сұрау жіберу арқылы шақырылған сценарийге жіберіледі.
Содан кейін шабуылдаушы үшін ең қызықты басталады. РНР-скрипт осы сұранысқа жауап ретінде HTML-бетті жасайды, онда зиянкеске талап етілетін айнымалылардың мәндері көрсетіледі және осы бетті зиянкестің браузеріне жібереді.
Енді біз XSS шабуылдарының басқа мүмкіндіктерін сипаттаймыз (әрине, олар сәтті болған жағдайда).
1. Бетті ашқанда кезде пайдаланушыға қажет емес терезелердің көп мөл-шерін ашуға болады.
2. Басқа сайтқа (мысалы, бәсекелестің веб-сайтына) бағыттау мүмкін.
3. Пайдаланушының компьютеріне үшінші тарап серверінен орындала-тын сценарийге сілтеме енгізу арқылы еркін коды бар сценарийді (тіпті зиянды) жүктеу мүмкіндігі бар.
4. Көбінесе пайдаланушының компьютерінен жеке ақпаратты ұрлау ор-ын алады, Соокіеѕ-тен басқа, кірген сайттар, браузердің нұсқасы және пайдаланушының компьютерінде орнатылған операциялық жүйе туралы ақпарат ұрлықтың нысаны ретінде әрекет етеді, сонымен қатар пайдаланушының компьютерінің IP-мекен-жайы да қосылады.
5. XSS шабуылы тек сайт арқылы ғана емес, сонымен қатар қолданыста-ғы бағдарламалық жасақтамадағы осалдықтар арқылы да жүзеге асырылуы мүмкін (атап айтқанда, браузерлер арқылы). Сондықтан пайдаланылған бағдарламалық жасақтаманы жаңарту ұсынылады.
6. Сондай-ақ SQL-кодты пайдалану арқылы XSS шабуылдарды жүргізу-ге болады.
XPath инъекциясы-XML дерекқорының бастапқы сұранысына XPath өрнектерін енгізуден тұратын осалдық түрі. XPath (XML Path Language) - бұл құжаттың XML бөліктеріне еркін қол жеткізуге арналған Тіл. XML (eXtensible Markup Language) - бұл әйгілі белгілеу тілі, оның көмегімен ағаш құрылымы бар XML құжаттары жасалады [1].
Қызмет көрсетуден бас тарту (DoS - және DDoS - шабуылдар)
DoS, сөзсіз, шабуылдардың ең танымал түрі. Сонымен қатар, осы типтегі шабуылдарға қарсы жүз пайыздық қорғаныс жасау қиын. Тіпті шабуылдаушылар арасында DoS шабуылдары тривиалды болып саналады және оларды қолдану жеккөрушілік тудырады, өйткені DoS ұйымдастыру үшін ең аз білім мен дағды қажет. Алайда, бұл іске асырудың қарапайымдылығы және үлкен зиян dos-қа желілік қауіпсіздікке жауапты әкімшілердің назарын аударады.
DoS типті шабуыл қаупі үш жолмен төмендеуі мүмкін:
1. Анти-спуфинг функциялары. Маршрутизаторлар мен брандмауэр-лерде антиспуфинг функциясының дұрыс конфигурациясы dos қаупін азайтуға көмектеседі. Бұл мүмкіндіктер, кем дегенде, RFC 2827 сүзгісін қамтуы керек.
2. Анти-DoS функциялары. Маршрутизаторлар мен брандмауэрлерде анти-DoS функциясының дұрыс конфигурациясы шабуылдардың тиімділігін шектеуі мүмкін. Бұл функциялар көбінесе кез-келген уақытта жартылай ашық арналардың санын шектейді.
3. Трафик көлемін шектеу (traffic rate limiting). Ұйым провайдерден тра-фик көлемін шектеуді сұрауы мүмкін. Сүзудің бұл түрі желі арқылы өтетін сыни емес трафиктің көлемін шектеуге мүмкіндік береді.
Phishing-шабуыл
Phishing (фишинг) - кейіннен олардың сәйкестендіру деректерін ұрлау және қылмыстық пайдалану үшін олардың құпия ақпаратын беру үшін ұйымдардың клиенттерін алдау немесе әлеуметтік әзірлеу процесі. Қылмыскерлер шабуыл жасау үшін spam немесе бот компьютерлерін пайдаланады. Бұл жағдайда жәбірленушінің компаниясының мөлшері маңызды емес; шабуыл нәтижесінде қылмыскерлер алған жеке ақпараттың сапасы өздігінен маңызды [1]. Осы шабуылдан қорғану тәсілдері:
* Тек тексерілген ресурстар мен оларға қол жеткізу жолдарын
пайдаланыңыз.
* Вирусқа қарсы құралдарды пайдалану және олардың қолтаңбаларын
үнемі жаңартып отыру.
1.5 Шабуылдарды анықтау әдістерін жіктеу схемасы
Шабуылдарды анықтау әдістері бойынша шабуылдарды анықтау жүйелерінің жалпы қабылданған жіктемесіне аномалияларды анықтау жүйелері мен теріс пайдалануды анықтау жүйелері кіреді.Теріс пайдалануды анықтау саласындағы классикалық жұмыстардың бірі бұл жұмыс суретте желілік трафиктің көрсеткіштеріне негізделген желілік ауытқуларды анықтау схемасы көрсетілген желілік ауытқуларды анықтау 2-суретте көрсетілген [3].
2-сурет. Желілік ауытқуларды анықтау
Желілік ауытқуларды анықтаудың жалпы алгоритмін келесідей сипаттауға болады. Талдау деректері-бұл желілік трафик, әдетте IP деңгейінде бөлшектелген желілік пакеттер жиынтығы ретінде ұсынылған. Жиналған шикі деректер кейіннен талдау үшін қажетті ақпаратты қалыптастыру көзі болады. Сонымен, алынған мәліметтер белгілі бір уақыт аралығында жинақталып, ағымдағы қызмет профилін құру кезінде қажет болатын жалпы типтегі атрибуттарды анықтау үшін қалыпқа келтірілуі мүмкін.
Құрылған белгілер жиынтығы объектінің (пайдаланушының немесе жүйенің) қалыпты қызметінің сипаттамаларының жиынтығымен салыстырылады - қалыпты мінез-құлық үлгісі. Егер салыстырылған параметрлерде айтарлықтай сәйкессіздік болса, онда желілік аномалия белгіленеді. Олай болмаған жағдайда, қалыпты мінез-құлық үлгісі ағымдағы бақыланатын желілік белсенділік профилін ескере отырып, оны орнату параметрлерін өзгерту арқылы нақтыланады. Жоғарыда сипатталған алгоритм қалыпты мінез-құлық үлгісіне сәйкестікті тексерудің ішкі жүйесін іске асырудың бірнеше нұсқаларын қамтуы мүмкін. Олардың ең қарапайымы-ағымдағы желілік белсенділікті сипаттайтын жинақталған нәтижелер сараптамалық берілген сандық жолақпен салыстырылған кезде шекті мәнмен салыстыру процедурасы. Бұл тәсілде көрсетілген шекараның қарастырылған параметрлерінің мәндерінен асып кету жағдайы желілік аномалияның белгісі болып табылады.
Айта кету керек, қалыпты мінез-құлық үлгісін құру көп уақытты қажет ететін міндет және көбінесе әрдайым мүмкін емес. Осылайша, іс жүзінде көрсетіледі, бұл әрбір аномальное мінез-құлық болып табылады шабуыл. Мысалы, желі әкімшісі желілік ортаны диагностикалау үшін ping, traceroute, mtr сияқты жөндеу утилиталарын қолдана алады. Мұндай әрекеттер заңсыз ниеттерге ұшырамайды, бірақ аномалияны анықтау жүйелері бұл әрекетті желінің қалыпты емес әрекеті ретінде таниды теріс пайдалануды 3-суретте көрсетілген [3].
3-сурет. Желіні теріс пайдалануды анықтау
Теріс пайдалануды анықтау, егер олардың шабуыл үлгілері түрінде нақты көрсетілімі болса, рұқсат етілмеген әрекеттерді анықтауға мүмкіндік береді. Мұнда шабуыл үлгісі деп белгілі бір шабуылды нақты сипаттайтын әрекеттердің (салыстыру, шығару ережелері) белгілі бір жиынтығы түсініледі, оны сәйкестендірілетін объектінің белгілері мен өрістеріне оның осы шабуылға жататындығы туралы нақты жауап алуға болады. Желілік ауытқуларды анықтау схемасындағыдай, талдау үшін бастапқы деректерді теріс пайдалану анықталған кезде желілік трафик болады. Бөлінген атрибуттар мен желілік пакеттердің өрістері модульге жіберіледі, ол кіріс деректерінің ережелерге сәйкестігін іздейді және тексереді және ережелердің біреуі оң нәтиже берген жағдайда қауіптің бар екендігі туралы хабарлайды.
Кез-келген тиянатты анықтау жүйесін құрудағы басты мәселе-ережелерді белгілеу механизмін тиімді жобалау болып табылады. Әр түрлі шабуылдарды анықтау үшін ережелердің толық базасын құру бірнеше факторларға байланысты мүмкін емес екені түсінікті. Осы факторлардың бірі-шабуылдау әрекеттерінің әртүрлі вариацияларын сипаттау жүйенің жұмысына теріс әсер етеді. Шабуылдағы шамалы өзгерістер оны теріс пайдалану негізінде әдістермен анықтау мүмкін еместігіне әкелетіндіктен, белгіленген ережелер әмбебап болуы керек және желілік шабуылдардың белгілі модификацияларының мүмкіндігінше көп санын қамтуы керек.
Айтылғанды қорытындылай келе, теріс пайдалануды анықтау әдістері шабуылдардың белгілі түрлерін анықтаудың тиімді құралы болып табылады, бірақ олардың жаңа шабуылдарға, сондай-ақ белгілі шабуылдардың модификациясына қолданылуы нәтижесіз болып табылады.
Біздің практикалық бөлімде кездесетін алгоритмдерді түсіну үшін онда кездесетін негізгі тақырыптарды қарастыру керек. Ең алдымен классификация деген не екенін анықтап алайық [3].
2 МАШИНАЛЫҚ ОҚЫТУДЫҢ ЕҢ ТАНЫМАЛ АЛГОРИТМДЕРІНЕ ШОЛУ
2.1 Классификация ұғымы
Классификация деген (сөзі латын тіліндегі classic "разряд" және facere "жасау" деген екі сөзден туған) тұжырымдаманың көлемін белгілі бір нақты түрлерге бөліп белгілеу, онда жалпы ұғымның көлемі (класс) кіші класстарға бөлінеді.
Классификациялау яғни жіктеу ғылымда да және практикалық қызметте де кеңінен қолданылады, ғылыми жіктеулер өте тұрақты анық түрде беріледі, сондықтан олар ұзақ уақыт өзгерілмей сақталады.
Мысалы, Д. И. Менделеев жасаған химиялық элементтердің жіктелуі бүгінгі күнге дейін нақты түрде берілген.
Жіктеуде тақырыпты бөлудің негізін (критерийін, атрибутын) таңдау маңызды. Негіз өзі екіге бөлінеді маңызды және маңызды емес. Маңызды белгіге негізделген жіктеу табиғи деп аталады, маңызды емес белгілерге негізделген жіктеу - бұл жасанды (немесе көмекші) жіктеу болып келеді.
Жіктеу тұжырымдаманы бөлудің бір түрі болғандықтан, ұғымдар көлемін бөлу операциясында қолданылатын барлық ережелер оғанда қатысты.
1. Бөлуде сияқты, тек бір нақты негізге жіктеу қажет. Егер бұл ереже бұ-зылса, онда ұғымдардың қайшылығы пайда болады . Мысалы, Қағаз ақ, қара, қалың, жіңішке болып бөлінеді бұл бөлімде қате жіберілді, өйткені бөлу бір негізде емес, бірден екіге бөлінді. Яғни, бірінші негіз - түс, екінші негіз - қалыңдық.
2. Бөлудіңде пропорционалдылығын сақтау керек, яғни жіктеу мүшеле-рінің қосындысы жалпы Тұжырымдаманың (сыныптың, жиынның) көлеміне тең болуы керек. Осы ережені сақтамаған кезде келесі қателер туындайды:
a) Толық емес жіктеу. Яғни, жіктеу нәтижесінде түр ұғымдарының кө-лемі бөлінетін тұжырымдаманың көлемін сәйкес келмейді. Мысалы, "мазмұны бойынша әдеби жанрлар трагедияға, комедияға бөлінеді" классификациясында драма жанры көрсетілмеген.
b) Қосымша ұғымдармен жіктеу. Қателіктердің бұл түріне мысал ретінде "компьютерлер стационарлы, мобильді, портативті және жеке болып бөлінеді" бөлімі жатады, онда "жеке" компьютерлер артық түрлер туралы түсінік ретінде анықталады.
3. Жіктеу мүшелері бір-бірін жоққа шығармау керек.
4. Кіші класстарға бөлініс үздіксіз болуы тиіс.
2.2 Шешімдер ағаштары және оның структурасы
Шешімдер ағаштары (деревья решений) - бұл классификация мен регрессия мәселелерін шешуге арналған деректерді өндірудің және болжауды талдау құралдарының бірі.
Олар Егер ... онда ... формасындағы шешім ережелерінен тұратын иерархиялық ағаш құрылымдары. Ережелер жаттығу жиынтығында оқу процесінде автоматты түрде жасалады және олар табиғи тілде тұжырымдалғандықтан (мысалы, Егер сатылым көлемі 1000 данадан көп болса, онда өнім болашағы зор) [4].
Шешім ағашының структурасы
Негізінде шешім ағашының өзі элементтердің екі түрінен - түйіндерден (node) және жапырақтардан (leaf) тұратын иерархиялық құрылымдағы шешім ережелерін ұсыну әдісі болып табылады. Шешім ережелері түйіндерде кездеседі және мысалы осы ережеге сәйкестігін оқу жиынының кез-келген атрибутымен тексере алады.
Қарапайым жағдайда, тексеру нәтижесінде түйінге енетін мысалдар жиынтығы екі ішкі жиынға бөлінеді, олардың бірінде ережені қанағаттандыратын мысалдар бар, ал екіншісінде жоқ келесі 4-суретте көрсетілген.
4-сурет. Ағаш шешімдеріне мысал
Ағаш шешімдерінің негізгі қолданылатын сферасы - бұл статистика, деректерді талдау және машиналық оқыту кезінде қолданылатын процесті қолдау. Осы аппаратпен шешілетін міндеттер:
1. Жікте (классификация) - объектілерді бұрын белгілі кластардың біріне тағайындау. Айнымалы дискретті мәндерге ие болуы керек.
2. Регрессия (сандық болжам) - берілген вектор үшін тәуелсіз айнымалы-ның сандық мәнін болжау.
3. Нысандардың сипаттамасы - шешім ағашындағы ережелер жиынтығы объектілерді ықшам сипаттауға мүмкіндік береді. Сондықтан объектілерді сипаттайтын күрделі құрылымдардың орнына шешім ағаштарын қарастыруға болады.
Шешімдер ағашын үйренудің танымал алгоритмдерінің көпшілігі разделяй и властвуй принципіне негізделген. Алгоритмдік тұрғыдан бұл принцип келесідей жүзеге асырылады. Бізге S жиынтығы берілген оның ішінде n мысалдар бар, әр қайсысында келесі класс белгісі бар Cii=1...k және m атрибуты Ajj=1...m объектінің белгілі бір класска тиесілігін анықтауға арналған. Сонда үш жағдай болуы мүмкін:
a) S жиынтығының барлық мысалдары бірдей Ci класс белгісіне ие (бар-лық яғни оқыту мысалдары тек бір сыныпқа қатысты). Бұл жағдайда жаттығудың мағынасы жоқ екені анық, өйткені модельге ұсынылған барлық мысалдар сол сыныпта болады, олар бір ғана модельді тануды үйренеді. Бұл жағдайда шешім ағашының өзі Ci класына байланысты жапырақ болады.
b) Көптеген S -де мысалдар жоқ, яғни бұл бос жиын. Бұл жағдайда оған парақ та жасалады (бос жиынға түйін жасау ережесін қолданудың мағынасы жоқ), оның класы басқа жиынтықтан таңдалады.
c) S жиынтығында барлық Ck класының оқу мысалдарынан тұрады. Бұл жағдайда S жиынтығын кіші жиындарға кластарымен байланысты бөлу қажет. Ол ушін S жиынтығынан Aj атрибуты таңдалады онда екіден көп бірегей мәндер яғни a1,a2,a3...ap мұнда p - бірегей мәндер саны. Содан соң S жиынтығын p кіші жиындарға бөлеміз S1,S2,S3...Spолардың әрқайсысы тиісті атрибут мәні бар мысалдармен қамтылған. Содан кейін келесі атрибут таңдалады және бөліну қайталанады. Бұл процедура алынған ішкі жиындардағы барлық мысалдар бір сыныпқа жеткенше рекурсивті түрде қайталанады [4].
2.3 Логистикалық регрессия
Қарапайым регрессиядан айырмашылығы, логистикалық регрессия бастапқы мәндер үлгісінен сандық айнымалының мәнін болжай алмайды. Оның орнына, функцияның мәні - берілген бастапқы мәннің белгілі бір классқа жататыны белгілі. Оңай түсіну үшін бізде тек екі класс бар деп есептейік және P+ анықтамасының ықтималдығы,бұл кейбір мәндердің + класына жату ықтималдығы. Әрине онда, P-=1-P+. Осылайша, логистикалық регрессияның нәтижесі әрдайым интервалда орналасады.
Логистикалық регрессияның негізгі идеясы - бастапқы мәндер кеңістігін сызықтық шекара (яғни түзу сызық) арқылы класына байланысты екі аймаққа бөлуге болады. Сонымен мұндағы сызықтық шекара дегеніміз не? Екі жазықтықтар бойынша қарайтын болсақ, бұл жай ғана түзу сызық. Бұл шекара қол жетімді кіріс деректері мен оның оқыту алгоритміне байланысты белгіленеді. Бұл жұмыс орындалу үшін бастапқы деректер нүктелері жоғарыда аталған екі аймаққа сызықтық шекарамен бөлінуі керек. Егер бастапқы деректер нүктелері осы талапты қанағаттандырса, онда оларды сызықтық бөлінетін деп атауға болады. 5-суретке мысал ретінде көрсетілген [5].
5-сурет. Сызықтық шекара
Көрсетілген бөлу жазықтығы сызықтық дискриминант деп аталады, өйткені ол функциясы жағынан сызықтық болып келеді және модельдегі нүктелерді әр түрлі кластарға бөлуге, дискриминациялауға мүмкіндік береді.
Бөлу қалай орындалады тоқталып кетейык. Алдымен, бастапқы кеңістікті екі аймаққа бөлудің геометриялық тұрғыдан түсініп алайық. Қарапайым мысал алайық (жоғарыда көрсетілген 3 өлшемді графиктен айырмашылығы) екі бастапқы айнымалыны ретінде -x1 және x2 алсақ, содан кейін бізде шекараға сәйкес келетін функция пайда болады: β0+β1x1+β2x2
a,b нүктесін қарастырайық. Шектік функцияға x1және x2 мәндерін қойып, β0+β1a+β2 b нәтижесін аламыз. Енді a,b позициясына байланысты үш нұсқаны қарастырған жөн:
a) a,b + класының нүктелерімен шектелген аймақта жатыр. Сонда β0+β1a+β2 b (0,infinity) шегінде бола отырып, оң болады. Математикалық тұрғыдан алғанда, бұл мәннің мәні неғұрлым үлкен болса, нүкте мен шекара арасындағы қашықтық соғұрлым көп болады. Бұл a,b + класына жатуының үлкен ықтималдығын білдіреді. Демек, P+ келесі диапазонда болады (0,5, 1].
b) a,b - класының нүктелерімен шектелген аймақта жатыр. Енді, β0+β1a+β2 b теріс болса, (-infinity, 0) аралығында жатады. Бірақ, оң мәндегі жағдайдағыдай, шығыс мәнінің шамасы неғұрлым көп болса, соғұрлым a,b - класына жату ықтималдылығы жоғары болады, ал P+ [0, 0.5) интервал аралығында қалады.
c) a,b шекара өзінде орналасқан. Бұл жағдайда β0+β1a+β2 b=0 тең. Бұл дегеніміз, модель a,b-тің + класына немесе - класына жататындығын нақты анықтай алмайды. Сонда нәтижесінде P+ 0,5-ке тең болады.
Сонымен, бізде бастапқы деректер нүктесі бар (-infinity, infinity) нақты шама алуға болатын функция бар. Бірақ алынған мәнді шектері [0, 1] болатын P+ ықтималдығына қалай түрлендіруге болады? Жауап ретінде мүмкіндік қатынасы (OR) функциясын қолдана аламыз. Анықтап алайық PX ықтималдығы болып жатқан оқиғалар X. Содан кейін мүмкіндіктің қатынасы ORX -- PX1-PX тен анықталады, ал бұл оқиғаның болуы немесе болмауы ықтималды. Мүмкіндіктің ықтималдығы мен қатынасы бірдей ақпаратты қамтитыны анық. Бірақ PX 0-ден 1-ге дейін болса, ORX 0-ден infinity-ге дейінгі аралықта болады.
Бұл тағы бір әрекет қажет дегенді білдіреді, өйткені біз қолданып отырған шекаралық функция -infinity -ден infinity-ге дейін мәндер аралығында шығады. Енді, біз коэффициенттің логарифмі деп аталатын ORX логарифмін есептеуіңіз керек.
Математикалық тұрғыдан қарастырсақ ORX 0-ден infinity-ке дейін ал logORX -infinity -ден infinity-ге аралықта.Осылайша, біз бастапқы мәндердің шекаралық функциясына енгізілген нәтижелерді түсіндіру әдісін ала алдық. Біз қолданатын модельде шекаралық функция "+" класының коэффициенттерінің логарифмін анықтайды. Шын мәнінде, біздің екі өлшемді мысалда a,b нүктесі болған кезде логистикалық регрессия алгоритмі келесідей болады:
Қадам 1. Бөліндінің мәні β0+β1a+β2 b шекаралық функциялары (немесе опция ретінде, функциясын қарым-қатынас мүмкіндігі қарастырсақ). Оңай болу үшін біз осы t деп белгілейміз.
Қадам 2. Мүмкіндік қатынасын есептейік:OR+=et. (өйткені t - лога-рифм).
Қадам 3. OR+ мәніне ие бола отырып, P+-ді қарапайым тәуелділіктің көмегімен есептеңдер (1).
P+OR+ 1+OR+ (2.1)
1-қадамда t мәнін алғаннан кейін 2 және 3-қадамдарды біріктіруге болады:
P+et 1+et (2.2)
Жоғарыда көрсетілген теңдеудің оң жағы логистикалық функция деп аталады (2). Демек, осы оқыту моделіне берілген атынан туындаған [5].
Функцияның оқытылуы
Жауапсыз қалған сұрақ: "β0+β1a+β2 b шекаралық функциясы қалай оқытылады?" Мұның математикалық негізгі жалпы идея келесідей:
gx функциясын қарастырайық, мұндағы x -- жаттығу үлгісінің деректер нүктесі деп алсақ. gx қарапайым түрде келесідей сипаттауға болады:
gx функциясы оқыту үлгісін модель бойынша дұрыс жіктеу ықтималдығын санымен анықтаймыз. Демек, бүкіл оқу үлгісіндегі орташа мән, мүмкін сыныпқа қарамастан, кездейсоқ мәліметтер нүктесінің жүйемен дұрыс жіктелу ықтималдығын көрсетеді.
Қарапайым түрде айтыңыз-логистикалық регрессияны оқыту механизмі gx орташа мәнін барынша арттыруға тырысады. Бұл әдістің атауы - максималды ықтималдық әдісі [5].
2.4 Кездейсоқ орман (случайный лес)
Bagging-ансамбльдердің алғашқы және қарапайым түрлерінің бірі. Оны 1994 жылы Лео Брейман ойлап тапқан. Bagging көптеген күрделі бөлу статистикасын бағалауға мүмкіндік беретін статистикалық жүктеу әдісіне негізделген.
Бутстрэп әдісі келесідей орындалады. N өлшеміндегі X үлгісі болсын. Біз N нысандарын үлгіден біркелкі қайтара аламыз. Бұл дегеніміз, біз N рет үлгідегі ерікті объектіні таңдаймыз (әр объект бірдей 1N ықтималдығымен шығарылған деп есептейміз) және әр уақытта біз барлық N нысандарының ішінен таңдаймыз.
Біз доптар шығарылатын сөмкені елестетейік: бір кез келген қадамда таңдалған доп сөмкеге қайтарылады, ал келесі таңдау тағы бірдей доп сан арасынан жасалады. Қайтуға байланысты олардың арасында қайталанатын доптар болатынын ескеріңіз. Жаңа үлгіні X1арқылы белгілейік.
Процедураны M рет қайталай отырып, біз кіші M үлгілері ішінен X1,...,Xm шығарамыз. Қазір бізде үлгілер саны жеткілікті және бастапқы таралу статистикасын бағалай аламыз 6-суретте көрсетілген [6].
Бэггинг
Енді сізде бутстрэп туралы түсінік бар және біз бэггингіне тікелей бара аламыз. Оқу үлгісі X бар деп есептейік. Бутстрэп көмегімен біз одан үлгілерді X1,...,Xm шығарамыз.
6-cурет. Бутсрэп іріктеу
Осыдан әр үлгіде біз ai x классификаторын оқытамыз. Қорытынды ретінде классификатор барлық осы алгоритмдердің жауаптарын орташалайды (жіктеу жағдайында ол дауыс беруге сәйкес келеді): ax=1Mi=1Mai x. Бұл схеманы төмендегі сурет арқылы көрсетуге болады 6-суретте көрсетілген 7-суретте көрсетілген.
7-сурет. Оқыту мысалы
b1x,...,bnx негізгі алгоритмдерімен регрессия мәселесін қарастырайық. Барлық объектілер үшін шынайы жауап беру функциясы бар және y(x ) объектілері бойынша үлестірім берілген p(x) делік. Бұл жағдайда әр регрессия функциясының қателігін жаза аламыз:
εix=bix-yx,i=1,...,n (2.3)
және орташа квадраттық қатені жазайық:
Exbix-yx2=Exεi2x (2.4)
Құрылған регрессия функциясының орташа қатесі:
E1=1nExi=1nεi2x (2.5)
Қателер сәйкес келмейді және түзетілмейді делік:
Exεix=0,
Exεixεjx=0,i!=j. (2.6)
Енді біз құрастырған функциялардың жауаптарын орташа алып және жаңа регрессия функциясын құрастырған кезде бізде келесідей анықтамада нәтижелейміз:
ax=1ni=1nbix (2.7)
Оның орташа квадраттық қателігін табайық:
En=Ex1ni=1nbix-yx2=Ex1ni=1nεi2
(2.8)
=1n2Exi=1nεi2x+i!=1εixεjx=1nE1
Осылайша, жауаптардың орташа мәні қатенің орташа квадратын n есе азайтуға мүмкіндік берді.
Bagging модель әртүрлі деректер жиынтығында оқытылған болса немесе басқаша айтқанда, қайта оқытудың алдын алатын болса, қате азайту арқылы оқытылатын жіктеуіштің дисперсиясында (variance) азайтуға мүмкіндік береді.
Бэггингтің тиімділігіне әр түрлі таңдау бойынша оқытылған негізгі алгоритмдердің жеткілікті түрде ерекшеленетіндігімен және дауыс беру кезінде олардың қателіктері өзара әртүрлі, сондай-ақ шығарынды объектілер кейбір оқу топтамаларына түспеуі мүмкін болғандықтан қол жеткізу мүикіндігі туындайтыны бізге белгілі 8-суретте көрсетілген [6].
8-cурет. Салыстыру
Шешім ағашының қатесі:
0,0255Err=0,0003Bias2+0,0152Var+0,0 098(σ2) (2.9)
Бэггинг қатесі:
0,0196Err=0,0004Bias2+0,0092Var + 0,0098(σ2) (2.10)
Жоғарыда келтірілген график пен нәтижелерге сәйкес, дисперсия қатесі, біз теориялық тұрғыдан жоғары дәлелдегендей, баггинг кезінде әлдеқайда аз екенін көре аламыз 5-суретте көрсетілген.
Лео ... жалғасы
Әл-Фараби атындағы Қазақ ұлттық университеті
Есім Д.Б.
МАШИНАЛЫҚ ОҚЫТУ ӘДІСТЕРІН ҚОЛДАНА ОТЫРЫП, ЖЕЛІЛІК ШАБУЫЛДАРДЫ АНЫҚТАУ
ДИПЛОМДЫҚ ЖҰМЫС
Мамандығы 5В100200 - Ақпараттық қауіпсіздік жүйелері
Алматы 2021
Қазақстан Республикасы білім және ғылым министрлігі
Әл-Фараби атындағы Қазақ ұлттық университеті
Қорғауға жіберілген
__________ Кафедра меңгерушісі __________ ф.м.ғ.к. Мусиралиева Ш.Ж.
МАШИНАЛЫҚ ОҚЫТУ ӘДІСТЕРІН ҚОЛДАНА ОТЫРЫП, ЖЕЛІЛІК ШАБУЫЛДАРДЫ АНЫҚТАУ
тақырыбында жазылған
ДИПЛОМДЫҚ ЖҰМЫС
5В100200 - Ақпараттық қауіпсіздік жүйелері
Орындаған ___________ Есім Д.Б.
Ғылыми жетекші ___________ Бегимбаева Е.Е.
PhD докторы
Норма бақылаушы ___________ Алпысбай Г.Е.
Алматы 2021
ТҮЙІНДЕМЕ
Дипломдық жұмыс 55 беттен, 33 суреттен және 16 пайдаланылған әдебиеттер тізімінен тұрады.
Кілттік сөздер: нейрондық желі, бағдарламалық жасақтама құру, шешім ағаштары, логистикалық регрессия, градиентті бустинг.
Дипломдық жұмыстың нысандары: машиналық оқыту әдістерін қол-дана отырып, желілік шабуылдарды алдын алу.
Дипломдық жұмыстың мақсаты: машиналық оқыту әдістерін қолдана отырып, желілік шабуылдарды анықтау.
Зерттеудің әдістері: түрлі алгоритмдерді қолданып желілік шабуыл-дарды бірнеше типтерін мысал ретінде алып ең оптималды алгоритм табу.
Зерттеудің міндеттері:
oo желілік шабуалдарды алдын алу;
oo шабуылдарды анықтау;
oo алгоритмдерді тексеру;
oo оңтайлы алгоритмді табу.
Дипломдық жұмыстың қолданылу аясы: желілік шабуылдарды анық-тау қазіргі уақытта корпоративтік желілерді қауіпсіз пайдаланудың өзекті мәселелерің бірі. Желілік құрттардың кең ауқымды өршуі, ботнеттерден DDoS шабуылдары, желілердегі осалдықтарды табудың автоматтандырылған құралдары - осының бәрі жергілікті желілерді қорғауды өте қатты қиындатады.Қазіргі уақытта антивирус, брандмауэр сияқты шабуылдардың алдын алудың белсенді құралдары жетіспейтін желіні табу қиын.Сондықтан, оларға қосымша шабуылдардың пассивті құралдары - шабуылдарды анықтайтын желілік системалар қолданылады.
РЕФЕРАТ
Дипломная работа состоит из 55 страниц, 33 рисунков и 16 источников.
Ключевые слова: нейронная сеть, создание программного обеспечения, деревья решений, логистическая регрессия, градиентный бустинг.
Oбъекты исследoвания: предотвращение сетевых атак с использо-ванием методов машинного обучения.
Цель дипломной работы: выявление сетевых атак с использованием методов машинного обучения.
Методы исследования: найти наиболее оптимальный алгоритм, взяв в качестве примера несколько типов сетевых атак с использованием различных алгоритмов.
Задачи исследования:
oo предотвращение сетевых атак;
oo обнаружение атак;
oo проверка алгоритмов;
oo найти оптимальный алгоритм.
Область применения: выявление сетевых атак в настоящее время является одной из актуальных проблем безопасного использования корпоративных сетей. Масштабные вспышки сетевых червей, DDoS - атаки с ботнетов, автоматизированные средства обнаружения уязвимостей в сетях-все это очень сильно усложняет защиту локальных сетей.В настоящее время трудно найти сеть, в которой не хватает активных средств предотвращения атак, таких как антивирус, брандмауэр.Поэтому в дополнение к ним применяются пассивные средства атак - сетевые системы обнаружения атак.
ABSTRACT
Diploma work consists of 55 pages, 33 pictures and 16 sources.
Keywords: neural network, software development, decision trees, logistic regression, gradient busting.
Thе objеcts of rеsеarch: prevention of network attacks using machine learning methods.
Thе purposе of rеsеarch: detection of network attacks using machine learning methods.
Thе mеthods of rеsеarch: find the most optimal algorithm, taking as an example several types of network attacks using different algorithms.
Thе tasks of rеsеarch:
oo preventing network attacks;
oo attack detection;
oo checking algorithms;
oo find the optimal algorithm.
Thе sphеrе of applications: detection of network attacks is currently one of the most pressing problems of the safe use of corporate networks. Large-scale outbreaks of network worms, DDoS attacks from botnets, automated means of detecting vulnerabilities in networks-all this greatly complicates the protection of local networks.Currently, it is difficult to find a network that lacks active means of preventing attacks, such as antivirus, firewall.Therefore, in addition to them, passive means of attacks are used - network systems for detecting attacks.
МАЗМҰНЫ
КІРІСПЕ 7
1 ЖЕЛІЛІК ШАБУЫЛДАРҒА ШОЛУ 8
1.1 Mailbombing шабуылы 8
1.2 Желілік барлау шабуылы 11
1.3 IP-спуфинг шабуылы, Man-in-the-middle типті шабуыл 11
1.4 SQL, PHP, XPath инъекциялары, сайт аралық сценарий немесе XSS шабуылдары ... ... ... . 12
1.5 Шабуылдарды анықтау әдістерін жіктеу схемасы 14
2 МАШИНАЛЫҚ ОҚЫТУДЫҢ ЕҢ ТАНЫМАЛ АЛГОРИТМДЕРІНЕ ШОЛУ 17
2.1 Классификация ұғымы 17
2.2 Шешімдер ағаштары және оның структурасы 18
2.3 Логистикалық регрессия 19
2.4 Кездейсоқ орман (случайный лес) 22
2.5 Градиентті бустинг 26
2.6 Трейнге және тест үлгісіне бөлу 39
3 МАШИНАЛЫҚ ОҚЫТУ ӘДІСТЕРІН ҚОЛДАНА ОТЫРЫП, ЖЕЛІЛІК ШАБУЫЛДАРДЫ АНЫҚТАУ 46
ҚОРЫТЫНДЫ 53
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТ ТІЗІМІ 54
ҚОСЫМША ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56
КІРІСПЕ
Дипломдық жұмыстың өзектілігі. Желілік шабуылдарды анықтау қазіргі уақытта корпоративтік желілерді қауіпсіз пайдаланудың өзекті мәселелерің бірі. Желілік құрттардың кең ауқымды өршуі, ботнеттерден DDoS шабуылдары, желілердегі осалдықтарды табудың автоматтандырылған құралдары - осының бәрі жергілікті желілерді қорғауды өте қатты қиындатады.Қазіргі уақытта антивирус, брандмауэр сияқты шабуылдардың алдын алудың белсенді құралдары жетіспейтін желіні табу қиын.Сондықтан, оларға қосымша шабуылдардың пассивті құралдары - шабуылдарды анықтайтын желілік системалар қолданылады.
Жоба жұмысының пәні. Ақпараттық қауіпсіздікті қамтамасыз ету мәселелерінде желіге жасалатын шабуылдар қарастырылды.
Жұмыстың мақсаты. Машиналық оқыту әдістерін қолдана отырып, желілік шабуылдарды анықтап алдын алу.
Жоба жұмысының мақсатынан туындайтын міндеттері:
oo желілік шабуалдарды алдын алу;
oo шабуылдарды анықтау;
oo алгоритмдерді тексеру;
oo оңтайлы алгоритмді табу.
Дипломдық жұмыстың құрылымы. Дипломдық жұмыс кіріспе бөлімінен, 3 тараудан, суреттер мен кестеден, пайдаланылған әдебиеттер тізімінен тұрады.
Кіріспе бөлімінде, тақырыптың өзектілігі мен мақсат міндеттері жайлы жазылған.
Негізігі бөлімі 3 тараудан тұрады. Бірінші тарауда желілік шабуылдардың негізгі қағидалары, қасиеттері және түрлері туралы жазылған.
Қорытынды бөлімінде. Қолданылған алгоритмдер жұмыс барысында несімен оңтайлы екеніді талданған.
Пайдаланылған әдебиеттер тізімінде ғылыми жұмыстарға қойылатын белгіленген талаптарға сәйкес жұмысты жазу кезінде пайдаланылған деректер туралы мәліметтер көрсетіледі.
1 ЖЕЛІЛІК ШАБУЫЛДАРҒА ШОЛУ
Алдымен желілік шабуыл деген не екенін анықтаймыз. Желілік шабуыл-мақсаты қашықтағыжергілікті есептеу жүйесін бақылауды (құқықтарды арттыруды) алу, немесе оны тұрақсыздандыру, немесе қызмет көрсетуден бас тарту, сондай-ақ осы қашықтағыжергілікті есептеу жүйесін пайдаланатын пайдаланушылардың деректерін алу болып табылатын іс-әрекет.
Қазіргі уақытта келесі шабуылдар бөлінеді: mailbombing, буфердің толып кетуі, мамандандырылған бағдарламаларды пайдалану (вирустар, сниферлер, трояндық жылқылар, пошта құрттары, rootkit-тар және т.б.), желіні барлау, IP-спуфинг, man-in-the-middle, инъекция (SQL-инъекция, PHP-инъекция, сайт аралық сценарий немесе XSS-шабуыл, XPath-инъекция), қызмет көрсетуден бас тарту (DoS - және DDoS - шабуылдар), фишинг-шабуылдар. Олардың әрқайсысын қарастырайық.
1.1 Mailbombing шабуылы
Бұл шабуылдың мәні-пошта жәшігіне пайдаланушының пошта жәшігіне көптеген хаттар жіберіледі. Бұл шабуыл пошта жәшігінің немесе тіпті бүкіл пошта серверінің істен шығуына әкелуі мүмкін. Бұл шабуылды кез-келген кем дегенде сәл дайындалған киберқылмыскер жасай алады. Осындай шабуылды жүзеге асыруға болатын бағдарламаның қарапайым мысалы - Unabomber. Жасырын түрде пошта хабарламаларын жіберуге мүмкіндік беретін сервердің мекен-жайын және осы хабарламалар тағайындалған пайдаланушының мекен-жайын білу жеткілікті. Осы бағдарлама үшін жіберуге болатын хаттардың саны 12 бит санына тең.
1. Тек тексерілген көздерге электрондық пошта мекенжайын беріңіз.
2. Mailbombing-а үшін кедергі ретінде провайдердің веб-сайты да әрекет ете алады, кейде ол пошта шабуылдарын автоматты түрде анықтайтын етіп конфигурацияланады. Көп жағдайда оларды сервер кіріс хабарламалардың бастапқы IP мекенжайларын салыстыру арқылы таниды. Егер бір көзден алынған хабарламалар саны белгілі бір ақылға қонымды шектеулерден асып кетсе, онда олардың барлығы автоматты түрде сервердегі Recycle Bin-ге түседі. Әрине, шабуылдаушыға өзінің IP мекенжайын бұрмалауға ештеңе кедергі болмайды. Әдетте тәжірибелі шабуылдаушылар мұндай шабуылдарға өте сирек жүгінеді [1].
Буфердің толып кетуі (buffer overflows)
Буфердің толып кетуіне шабуыл жадтың шекарасын бұзуға және қосымшаны авариялық түрде аяқтауға немесе осал бағдарлама жұмыс істеген пайдаланушының атынан Еркін екілік кодты орындауға қабілетті бағдарламалық немесе жүйелік осалдықтарды іздеуге негізделген. Егер бағдарлама әкімшінің есептік жазбасында жұмыс істесе, онда бұл шабуыл осы бағдарлама орындалатын компьютерді толық бақылауға мүмкіндік береді.
Шабуылды жүзеге асыру екі ішкі тапсырманы шешуді талап етеді:
1. Артықшылықты бағдарлама контекстінде орындалатын кодты дайын-дау.
2. Басқаруды дайындалған кодқа бере отырып, бағдарламаны орындау реттілігін өзгерту.Буфердің толып кетуі бойынша шабуылдардың жіктелуі 1-кестеде келтірілген. Шабуыл жүзеге асыруды қажет ететін ішкі міндеттерге сүйене отырып, осы типтегі шабуылдармен күресудің келесі әдістері бөлінеді:
a) Осалдықтарды жою үшін бағдарламаның бастапқы кодтарын түзету. Буфердің толып кетуі, ең алдымен, бағдарламаның дұрыс емес алгоритміне байланысты болады, ол буферлердің шекарасынан тыс жерлерде тексеруді қарастырмайды. Сондай-ақ, бағдарламаның бастапқы кодындағы осалдықтарды автоматты түрде іздеудің арнайы утилиталарын пайдалануға болады. Бұл әдістер мен құралдар сізге көбірек қорғалған бағдарламалар жасауға мүмкіндік береді, бірақ мәселені негізінен шешпейді, тек буфердің толып кетуіндегі осалдықтардың санын азайтады. Бұл тәсіл тікелей бағдарламалық жасақтама жасаушыларға бағытталған және түпкі пайдаланушының немесе жүйелік әкімшінің құралы емес.
b) Орындалмайтын буферлерді пайдалану. Әдістің мәні-деректер мен стек сегменттерінде кодтың орындалуына тыйым салу, яғни деректер мен стек сегменттерінің параметрлері тек жазу және оқу атрибуттарын қамтиды, бірақ орындалмайды. Алайда, деректердің орындалуын шектеу сәйкессіздік проблемасына әкеледі. Орындалатын стек көптеген бағдарламалардың жұмыс істеуі үшін қажет, өйткені оның негізінде компиляторлар код жасайды, операциялық жүйелердің жүйелік функциялары жүзеге асырылады, кодты автоматты түрде генерациялау жүзеге асырылады. Орындалмайтын буферлерді қолдану арқылы қорғаныс тек кодты енгізу арқылы шабуылдардың алдын алады, бірақ шабуылдардың басқа түрлеріне көмектеспейді.
c) Шетелге шығуды тексеруді қолдану. Негізінде бұл әдістің жатыр орындалуын тексеру шығуға шекараның ауыспалы кезінде әрбір айналымда оған. Бұл буфердің толып кетуіне барлық ықтимал шабуылдардың алдын алады, өйткені ол толып кетудің өзін толығымен жояды. Алайда, бұл шешімнің айтарлықтай кемшілігі бар - бағдарлама өнімділігінің айтарлықтай төмендеуі (30 есеге дейін).
d) Тұтастықты тексеруді қолдану. Осы әдіске негізделген шешім Synthetix жобасының арқасында алынды. Synthetix-тің мақсаты-операциялық жүйелердің жұмысын жақсарту үшін кодты мамандандыру. Бұл ретте квази-тұрақтылық (Quasi-invariant) деп аталатын ұғым, яғни белгілі бір шеңберде өзгермейтін орта күйі енгізіледі. Мұндай квази-тұрақтылық әртүрлі шарттардың орындалуын тексерудің бірқатар артық кодын жоюға мүмкіндік береді. Жоба аясында қоршаған ортаның квази тұрақты күйлерін бақылау мен қорғауды қамтамасыз ететін утилиталар жиынтығы жүзеге асырылды. Оларға StackGuard және PointGuard кіреді 1-суретте көрсетілген [1].
1-сурет. Буфердің толып кетуі бойынша шабуылдардың жіктелуі
Мамандандырылған бағдарламаларды пайдалану
Соңғы пайдаланушылардың жұмыс станциялары вирустар мен трояндық коньға өте осал. Вирустар-бұл соңғы пайдаланушының жұмыс станциясында белгілі бір қалаусыз функцияны орындау үшін басқа бағдарламаларға енгізілген зиянды бағдарламалар. Мысал ретінде файлда жазылған вирусты келтіруге болады command.com (Windows жүйесінің негізгі аудармашысы) және басқа файлдарды өшіреді, сонымен қатар ол тапқан барлық басқа нұсқаларды жұқтырады command.com.
"Трояндық ат" - Бұл бағдарламалық жасақтама емес, пайдалы бағдарлама сияқты көрінетін, бірақ іс жүзінде зиянды рөл атқаратын нақты бағдарлама. Типтік "трояндық аттың" мысалы-пайдаланушының жұмыс станциясы үшін қарапайым ойынға ұқсайтын бағдарлама. Алайда, пайдаланушы ойын ойнап жатқанда, бағдарлама өзінің көшірмесін осы пайдаланушының мекен-жай кітабына енгізілген әр абонентке электрондық пошта арқылы жібереді. Барлық абоненттер ойынды пошта арқылы алады, бұл оның одан әрі таралуына әкеледі.
Пакет сниффері-бұл promiscuous mode режимінде жұмыс істейтін желілік картаны қолданатын қолданбалы бағдарлама (бұл режимде физикалық арналар арқылы алынған барлық пакеттерді желі адаптері өңдеуге жібереді). Бұл жағдайда сниффер белгілі бір домен арқылы берілетін барлық желілік пакеттерді ұстап алады. Қазіргі уақытта сниферлер желілерде заңды негізде жұмыс істейді. Олар ақауларды диагностикалау және трафикті талдау үшін қолданылады. Алайда, кейбір желілік қосымшалар деректерді мәтіндік форматта (telnet, FTP, SMTP, POP3 және т.б.) беретіндіктен, сниффердің көмегімен пайдалы және кейде құпия ақпаратты (мысалы, пайдаланушы аттары мен парольдер) білуге болады. Шабуылдардың осы түрлерімен күресудің келесі жолдары бар:
1. Вирусқа қарсы құралдарды пайдалану және олардың қолтаңбаларын үнемі жаңартып отыру. Ол трояндық бағдарламалармен, вирустармен, пошта құрттарымен мәселені шеше алады, бірақ сниферлер мен rootkit мәселелерін шешпейді.
2. Берілетін деректерді шифрлау. Мәселе снифферлер мәселесін толығы-мен шешпейді, алайда жау еркін оқуға болмайтын деректерді ұстап алады. Оларды шешуге уақыт қажет.
3. Антиснифтерді қолдану (мысалы, AntiSniff немесе PromiScan).
4. Брандмауэрлерді пайдалану.
5. Антируткиттерді қолдану.
1.2 Желілік барлау шабуылы
Желілік барлау-бұл жалпыға қол жетімді деректер мен қосымшалар арқылы желі туралы ақпарат жинау. Кез-келген Желіге қарсы шабуылды дайындау кезінде шабуылдаушы, әдетте, ол туралы мүмкіндігінше көп ақпарат алуға тырысады. Желілік барлау DNS сұраулары, эхо тестілеу (ping sweep) және портты сканерлеу түрінде жүзеге асырылады. DNS сұраулары белгілі бір доменнің кім екенін және сол доменге қандай мекен-жайлар тағайындалғанын түсінуге көмектеседі. DNS көмегімен ашылған мекен-жайларды Эхо тестілеу (ping sweep) белгілі бір ортада қандай хосттар жұмыс істейтінін көруге мүмкіндік береді. Хосттардың тізімін алғаннан кейін, шабуылдаушы осы хосттар қолдайтын қызметтердің толық тізімін жасау үшін портты сканерлеу құралдарын қолданады. Ақырында, шабуылдаушы хосттарда жұмыс істейтін қосымшалардың сипаттамаларын талдайды [1]. Нәтижесінде бұзу үшін пайдалануға болатын ақпарат алынады. Бұл шабуылмен күресу жолдары:
* ICMP жаңғырығын өшіру және перифериялық маршрутизаторлардағы
эхо жауабы. Алайда, бұл желілік ақауларды диагностикалау үшін қажетті деректердің жоғалуына әкеледі.
* Басып кіруді анықтау жүйелерін (IDS) пайдалану.
1.3 IP-спуфинг шабуылы, Man-in-the-middle типті шабуыл
IP-спуфинг корпорацияның ішінде немесе одан тыс орналасқан зиянкес өзін санкцияланған пайдаланушы ретінде көрсеткен кезде орын алады. Мұны екі жолмен жасауға болады. Біріншіден, зиянкес санкцияланған IP-мекенжайлардың ауқымы шегінде орналасқан IP-мекенжайды немесе белгілі бір желілік ресурстарға қол жеткізуге рұқсат етілген авторизацияланған сыртқы мекенжайды пайдалана алады. IP шабуылдары көбінесе басқа шабуылдардың бастапқы нүктесі болып табылады. Классикалық мысал-dos шабуылы, ол шабуылдаушының шынайы тұлғасын жасыратын біреудің мекен-жайынан басталады.Спуфинг қаупін келесі шаралар арқылы жеңілдетуге болады (бірақ жойылмайды) :
1. Қол жеткізуді басқару. IP-ны бұзудың алдын алудың ең оңай жолы-қол жеткізуді басқаруды дұрыс орнату. IP спуфигінің тиімділігін төмендету үшін сыртқы желіден келетін кез-келген трафикті сіздің желіңіздің ішінде орналасуы керек бастапқы мекен-жаймен қиып алуды басқарыңыз. Егер сыртқы желінің кейбір мекенжайлары рұқсат етілсе, бұл әдіс тиімсіз болады.
2. Сүзу RFC 2827. Сіз өзіңіздің желіңіздің пайдаланушыларының басқа біреудің желілерін бұзу әрекеттерін тоқтата аласыз (және құрметті "желі азаматы"бола аласыз).Ол үшін бастапқы мекен-жайы Сіздің ұйымыңыздың IP мекенжайларының бірі болып табылмайтын кез келген шығыс трафикті қабылдамау керек. "RFC 2827" деп аталатын сүзудің бұл түрін провайдер де орындай алады. Нәтижесінде белгілі бір интерфейсте күтілетін бастапқы мекен-жайы жоқ барлық трафик қабылданбайды.
3. Криптографиялық аутентификацияны пайдалану.
Man-in-the-middle типті шабуыл
Man-in-the-Middle түріндегі шабуыл үшін зиянкеске желі арқылы берілетін пакеттерге қол жеткізу қажет. Провайдерден кез-келген басқа желіге жіберілген барлық пакеттерге осындай қол жетімділікті, мысалы, осы провайдердің қызметкері ала алады. Шабуылдардың бұл түрі үшін пакеттік сниферлер, көлік хаттамалары және маршруттау хаттамалары жиі қолданылады. Шабуылдар ақпаратты ұрлау, ағымдағы сессияны ұстап алу және жеке желілік ресурстарға қол жеткізу, трафикті талдау және желі мен оны пайдаланушылар туралы ақпарат алу, DoS түріндегі шабуылдарды жүргізу, берілетін деректерді бұрмалау және желілік сессияларға рұқсат етілмеген ақпаратты енгізу мақсатында жүргізіледі [1].
Бұл шабуылмен күресу жолдарының бірі деректерді шифрлауды пайдалану.
1.4 SQL, PHP, XPath инъекциялары, сайт аралық сценарий немесе XSS шабуылдары
SQL инъекциясы-бұл дерекқорға SQL сұрауларының параметрлері өзгеретін шабуыл. Нәтижесінде сұрау мүлдем басқа мағынаға ие болады және кіріс деректерін сүзу жеткіліксіз болған жағдайда құпия ақпаратты шығарып қана қоймай, деректерді өзгертежоя алады.
PHP инъекциясы-PHP-де жұмыс істейтін веб-сайттарды бұзудың бір әдісі. Бұл арнайы жасалған зиянды сценарийді сайттың артқы жағындағы веб-қосымшаның кодына енгізуден тұрады, нәтижесінде еркін командалар орындалады.
XSS шабуылы-бұл серверде бар осалдыққа шабуыл, ол сервер жасаған HTML бетіне кез-келген нәрсе болуы мүмкін және бұл кодты айнымалы мәні ретінде беруге мүмкіндік беретін еркін кодты енгізуге мүмкіндік береді, сүзу жұмыс істемейді, яғни сервер бұл айнымалыны тексермейді. онда тыйым салынған белгілердің болуы - , ,, ', ". Бұл айнымалының мәні жасалған HTML парағынан серверге сұрау жіберу арқылы шақырылған сценарийге жіберіледі.
Содан кейін шабуылдаушы үшін ең қызықты басталады. РНР-скрипт осы сұранысқа жауап ретінде HTML-бетті жасайды, онда зиянкеске талап етілетін айнымалылардың мәндері көрсетіледі және осы бетті зиянкестің браузеріне жібереді.
Енді біз XSS шабуылдарының басқа мүмкіндіктерін сипаттаймыз (әрине, олар сәтті болған жағдайда).
1. Бетті ашқанда кезде пайдаланушыға қажет емес терезелердің көп мөл-шерін ашуға болады.
2. Басқа сайтқа (мысалы, бәсекелестің веб-сайтына) бағыттау мүмкін.
3. Пайдаланушының компьютеріне үшінші тарап серверінен орындала-тын сценарийге сілтеме енгізу арқылы еркін коды бар сценарийді (тіпті зиянды) жүктеу мүмкіндігі бар.
4. Көбінесе пайдаланушының компьютерінен жеке ақпаратты ұрлау ор-ын алады, Соокіеѕ-тен басқа, кірген сайттар, браузердің нұсқасы және пайдаланушының компьютерінде орнатылған операциялық жүйе туралы ақпарат ұрлықтың нысаны ретінде әрекет етеді, сонымен қатар пайдаланушының компьютерінің IP-мекен-жайы да қосылады.
5. XSS шабуылы тек сайт арқылы ғана емес, сонымен қатар қолданыста-ғы бағдарламалық жасақтамадағы осалдықтар арқылы да жүзеге асырылуы мүмкін (атап айтқанда, браузерлер арқылы). Сондықтан пайдаланылған бағдарламалық жасақтаманы жаңарту ұсынылады.
6. Сондай-ақ SQL-кодты пайдалану арқылы XSS шабуылдарды жүргізу-ге болады.
XPath инъекциясы-XML дерекқорының бастапқы сұранысына XPath өрнектерін енгізуден тұратын осалдық түрі. XPath (XML Path Language) - бұл құжаттың XML бөліктеріне еркін қол жеткізуге арналған Тіл. XML (eXtensible Markup Language) - бұл әйгілі белгілеу тілі, оның көмегімен ағаш құрылымы бар XML құжаттары жасалады [1].
Қызмет көрсетуден бас тарту (DoS - және DDoS - шабуылдар)
DoS, сөзсіз, шабуылдардың ең танымал түрі. Сонымен қатар, осы типтегі шабуылдарға қарсы жүз пайыздық қорғаныс жасау қиын. Тіпті шабуылдаушылар арасында DoS шабуылдары тривиалды болып саналады және оларды қолдану жеккөрушілік тудырады, өйткені DoS ұйымдастыру үшін ең аз білім мен дағды қажет. Алайда, бұл іске асырудың қарапайымдылығы және үлкен зиян dos-қа желілік қауіпсіздікке жауапты әкімшілердің назарын аударады.
DoS типті шабуыл қаупі үш жолмен төмендеуі мүмкін:
1. Анти-спуфинг функциялары. Маршрутизаторлар мен брандмауэр-лерде антиспуфинг функциясының дұрыс конфигурациясы dos қаупін азайтуға көмектеседі. Бұл мүмкіндіктер, кем дегенде, RFC 2827 сүзгісін қамтуы керек.
2. Анти-DoS функциялары. Маршрутизаторлар мен брандмауэрлерде анти-DoS функциясының дұрыс конфигурациясы шабуылдардың тиімділігін шектеуі мүмкін. Бұл функциялар көбінесе кез-келген уақытта жартылай ашық арналардың санын шектейді.
3. Трафик көлемін шектеу (traffic rate limiting). Ұйым провайдерден тра-фик көлемін шектеуді сұрауы мүмкін. Сүзудің бұл түрі желі арқылы өтетін сыни емес трафиктің көлемін шектеуге мүмкіндік береді.
Phishing-шабуыл
Phishing (фишинг) - кейіннен олардың сәйкестендіру деректерін ұрлау және қылмыстық пайдалану үшін олардың құпия ақпаратын беру үшін ұйымдардың клиенттерін алдау немесе әлеуметтік әзірлеу процесі. Қылмыскерлер шабуыл жасау үшін spam немесе бот компьютерлерін пайдаланады. Бұл жағдайда жәбірленушінің компаниясының мөлшері маңызды емес; шабуыл нәтижесінде қылмыскерлер алған жеке ақпараттың сапасы өздігінен маңызды [1]. Осы шабуылдан қорғану тәсілдері:
* Тек тексерілген ресурстар мен оларға қол жеткізу жолдарын
пайдаланыңыз.
* Вирусқа қарсы құралдарды пайдалану және олардың қолтаңбаларын
үнемі жаңартып отыру.
1.5 Шабуылдарды анықтау әдістерін жіктеу схемасы
Шабуылдарды анықтау әдістері бойынша шабуылдарды анықтау жүйелерінің жалпы қабылданған жіктемесіне аномалияларды анықтау жүйелері мен теріс пайдалануды анықтау жүйелері кіреді.Теріс пайдалануды анықтау саласындағы классикалық жұмыстардың бірі бұл жұмыс суретте желілік трафиктің көрсеткіштеріне негізделген желілік ауытқуларды анықтау схемасы көрсетілген желілік ауытқуларды анықтау 2-суретте көрсетілген [3].
2-сурет. Желілік ауытқуларды анықтау
Желілік ауытқуларды анықтаудың жалпы алгоритмін келесідей сипаттауға болады. Талдау деректері-бұл желілік трафик, әдетте IP деңгейінде бөлшектелген желілік пакеттер жиынтығы ретінде ұсынылған. Жиналған шикі деректер кейіннен талдау үшін қажетті ақпаратты қалыптастыру көзі болады. Сонымен, алынған мәліметтер белгілі бір уақыт аралығында жинақталып, ағымдағы қызмет профилін құру кезінде қажет болатын жалпы типтегі атрибуттарды анықтау үшін қалыпқа келтірілуі мүмкін.
Құрылған белгілер жиынтығы объектінің (пайдаланушының немесе жүйенің) қалыпты қызметінің сипаттамаларының жиынтығымен салыстырылады - қалыпты мінез-құлық үлгісі. Егер салыстырылған параметрлерде айтарлықтай сәйкессіздік болса, онда желілік аномалия белгіленеді. Олай болмаған жағдайда, қалыпты мінез-құлық үлгісі ағымдағы бақыланатын желілік белсенділік профилін ескере отырып, оны орнату параметрлерін өзгерту арқылы нақтыланады. Жоғарыда сипатталған алгоритм қалыпты мінез-құлық үлгісіне сәйкестікті тексерудің ішкі жүйесін іске асырудың бірнеше нұсқаларын қамтуы мүмкін. Олардың ең қарапайымы-ағымдағы желілік белсенділікті сипаттайтын жинақталған нәтижелер сараптамалық берілген сандық жолақпен салыстырылған кезде шекті мәнмен салыстыру процедурасы. Бұл тәсілде көрсетілген шекараның қарастырылған параметрлерінің мәндерінен асып кету жағдайы желілік аномалияның белгісі болып табылады.
Айта кету керек, қалыпты мінез-құлық үлгісін құру көп уақытты қажет ететін міндет және көбінесе әрдайым мүмкін емес. Осылайша, іс жүзінде көрсетіледі, бұл әрбір аномальное мінез-құлық болып табылады шабуыл. Мысалы, желі әкімшісі желілік ортаны диагностикалау үшін ping, traceroute, mtr сияқты жөндеу утилиталарын қолдана алады. Мұндай әрекеттер заңсыз ниеттерге ұшырамайды, бірақ аномалияны анықтау жүйелері бұл әрекетті желінің қалыпты емес әрекеті ретінде таниды теріс пайдалануды 3-суретте көрсетілген [3].
3-сурет. Желіні теріс пайдалануды анықтау
Теріс пайдалануды анықтау, егер олардың шабуыл үлгілері түрінде нақты көрсетілімі болса, рұқсат етілмеген әрекеттерді анықтауға мүмкіндік береді. Мұнда шабуыл үлгісі деп белгілі бір шабуылды нақты сипаттайтын әрекеттердің (салыстыру, шығару ережелері) белгілі бір жиынтығы түсініледі, оны сәйкестендірілетін объектінің белгілері мен өрістеріне оның осы шабуылға жататындығы туралы нақты жауап алуға болады. Желілік ауытқуларды анықтау схемасындағыдай, талдау үшін бастапқы деректерді теріс пайдалану анықталған кезде желілік трафик болады. Бөлінген атрибуттар мен желілік пакеттердің өрістері модульге жіберіледі, ол кіріс деректерінің ережелерге сәйкестігін іздейді және тексереді және ережелердің біреуі оң нәтиже берген жағдайда қауіптің бар екендігі туралы хабарлайды.
Кез-келген тиянатты анықтау жүйесін құрудағы басты мәселе-ережелерді белгілеу механизмін тиімді жобалау болып табылады. Әр түрлі шабуылдарды анықтау үшін ережелердің толық базасын құру бірнеше факторларға байланысты мүмкін емес екені түсінікті. Осы факторлардың бірі-шабуылдау әрекеттерінің әртүрлі вариацияларын сипаттау жүйенің жұмысына теріс әсер етеді. Шабуылдағы шамалы өзгерістер оны теріс пайдалану негізінде әдістермен анықтау мүмкін еместігіне әкелетіндіктен, белгіленген ережелер әмбебап болуы керек және желілік шабуылдардың белгілі модификацияларының мүмкіндігінше көп санын қамтуы керек.
Айтылғанды қорытындылай келе, теріс пайдалануды анықтау әдістері шабуылдардың белгілі түрлерін анықтаудың тиімді құралы болып табылады, бірақ олардың жаңа шабуылдарға, сондай-ақ белгілі шабуылдардың модификациясына қолданылуы нәтижесіз болып табылады.
Біздің практикалық бөлімде кездесетін алгоритмдерді түсіну үшін онда кездесетін негізгі тақырыптарды қарастыру керек. Ең алдымен классификация деген не екенін анықтап алайық [3].
2 МАШИНАЛЫҚ ОҚЫТУДЫҢ ЕҢ ТАНЫМАЛ АЛГОРИТМДЕРІНЕ ШОЛУ
2.1 Классификация ұғымы
Классификация деген (сөзі латын тіліндегі classic "разряд" және facere "жасау" деген екі сөзден туған) тұжырымдаманың көлемін белгілі бір нақты түрлерге бөліп белгілеу, онда жалпы ұғымның көлемі (класс) кіші класстарға бөлінеді.
Классификациялау яғни жіктеу ғылымда да және практикалық қызметте де кеңінен қолданылады, ғылыми жіктеулер өте тұрақты анық түрде беріледі, сондықтан олар ұзақ уақыт өзгерілмей сақталады.
Мысалы, Д. И. Менделеев жасаған химиялық элементтердің жіктелуі бүгінгі күнге дейін нақты түрде берілген.
Жіктеуде тақырыпты бөлудің негізін (критерийін, атрибутын) таңдау маңызды. Негіз өзі екіге бөлінеді маңызды және маңызды емес. Маңызды белгіге негізделген жіктеу табиғи деп аталады, маңызды емес белгілерге негізделген жіктеу - бұл жасанды (немесе көмекші) жіктеу болып келеді.
Жіктеу тұжырымдаманы бөлудің бір түрі болғандықтан, ұғымдар көлемін бөлу операциясында қолданылатын барлық ережелер оғанда қатысты.
1. Бөлуде сияқты, тек бір нақты негізге жіктеу қажет. Егер бұл ереже бұ-зылса, онда ұғымдардың қайшылығы пайда болады . Мысалы, Қағаз ақ, қара, қалың, жіңішке болып бөлінеді бұл бөлімде қате жіберілді, өйткені бөлу бір негізде емес, бірден екіге бөлінді. Яғни, бірінші негіз - түс, екінші негіз - қалыңдық.
2. Бөлудіңде пропорционалдылығын сақтау керек, яғни жіктеу мүшеле-рінің қосындысы жалпы Тұжырымдаманың (сыныптың, жиынның) көлеміне тең болуы керек. Осы ережені сақтамаған кезде келесі қателер туындайды:
a) Толық емес жіктеу. Яғни, жіктеу нәтижесінде түр ұғымдарының кө-лемі бөлінетін тұжырымдаманың көлемін сәйкес келмейді. Мысалы, "мазмұны бойынша әдеби жанрлар трагедияға, комедияға бөлінеді" классификациясында драма жанры көрсетілмеген.
b) Қосымша ұғымдармен жіктеу. Қателіктердің бұл түріне мысал ретінде "компьютерлер стационарлы, мобильді, портативті және жеке болып бөлінеді" бөлімі жатады, онда "жеке" компьютерлер артық түрлер туралы түсінік ретінде анықталады.
3. Жіктеу мүшелері бір-бірін жоққа шығармау керек.
4. Кіші класстарға бөлініс үздіксіз болуы тиіс.
2.2 Шешімдер ағаштары және оның структурасы
Шешімдер ағаштары (деревья решений) - бұл классификация мен регрессия мәселелерін шешуге арналған деректерді өндірудің және болжауды талдау құралдарының бірі.
Олар Егер ... онда ... формасындағы шешім ережелерінен тұратын иерархиялық ағаш құрылымдары. Ережелер жаттығу жиынтығында оқу процесінде автоматты түрде жасалады және олар табиғи тілде тұжырымдалғандықтан (мысалы, Егер сатылым көлемі 1000 данадан көп болса, онда өнім болашағы зор) [4].
Шешім ағашының структурасы
Негізінде шешім ағашының өзі элементтердің екі түрінен - түйіндерден (node) және жапырақтардан (leaf) тұратын иерархиялық құрылымдағы шешім ережелерін ұсыну әдісі болып табылады. Шешім ережелері түйіндерде кездеседі және мысалы осы ережеге сәйкестігін оқу жиынының кез-келген атрибутымен тексере алады.
Қарапайым жағдайда, тексеру нәтижесінде түйінге енетін мысалдар жиынтығы екі ішкі жиынға бөлінеді, олардың бірінде ережені қанағаттандыратын мысалдар бар, ал екіншісінде жоқ келесі 4-суретте көрсетілген.
4-сурет. Ағаш шешімдеріне мысал
Ағаш шешімдерінің негізгі қолданылатын сферасы - бұл статистика, деректерді талдау және машиналық оқыту кезінде қолданылатын процесті қолдау. Осы аппаратпен шешілетін міндеттер:
1. Жікте (классификация) - объектілерді бұрын белгілі кластардың біріне тағайындау. Айнымалы дискретті мәндерге ие болуы керек.
2. Регрессия (сандық болжам) - берілген вектор үшін тәуелсіз айнымалы-ның сандық мәнін болжау.
3. Нысандардың сипаттамасы - шешім ағашындағы ережелер жиынтығы объектілерді ықшам сипаттауға мүмкіндік береді. Сондықтан объектілерді сипаттайтын күрделі құрылымдардың орнына шешім ағаштарын қарастыруға болады.
Шешімдер ағашын үйренудің танымал алгоритмдерінің көпшілігі разделяй и властвуй принципіне негізделген. Алгоритмдік тұрғыдан бұл принцип келесідей жүзеге асырылады. Бізге S жиынтығы берілген оның ішінде n мысалдар бар, әр қайсысында келесі класс белгісі бар Cii=1...k және m атрибуты Ajj=1...m объектінің белгілі бір класска тиесілігін анықтауға арналған. Сонда үш жағдай болуы мүмкін:
a) S жиынтығының барлық мысалдары бірдей Ci класс белгісіне ие (бар-лық яғни оқыту мысалдары тек бір сыныпқа қатысты). Бұл жағдайда жаттығудың мағынасы жоқ екені анық, өйткені модельге ұсынылған барлық мысалдар сол сыныпта болады, олар бір ғана модельді тануды үйренеді. Бұл жағдайда шешім ағашының өзі Ci класына байланысты жапырақ болады.
b) Көптеген S -де мысалдар жоқ, яғни бұл бос жиын. Бұл жағдайда оған парақ та жасалады (бос жиынға түйін жасау ережесін қолданудың мағынасы жоқ), оның класы басқа жиынтықтан таңдалады.
c) S жиынтығында барлық Ck класының оқу мысалдарынан тұрады. Бұл жағдайда S жиынтығын кіші жиындарға кластарымен байланысты бөлу қажет. Ол ушін S жиынтығынан Aj атрибуты таңдалады онда екіден көп бірегей мәндер яғни a1,a2,a3...ap мұнда p - бірегей мәндер саны. Содан соң S жиынтығын p кіші жиындарға бөлеміз S1,S2,S3...Spолардың әрқайсысы тиісті атрибут мәні бар мысалдармен қамтылған. Содан кейін келесі атрибут таңдалады және бөліну қайталанады. Бұл процедура алынған ішкі жиындардағы барлық мысалдар бір сыныпқа жеткенше рекурсивті түрде қайталанады [4].
2.3 Логистикалық регрессия
Қарапайым регрессиядан айырмашылығы, логистикалық регрессия бастапқы мәндер үлгісінен сандық айнымалының мәнін болжай алмайды. Оның орнына, функцияның мәні - берілген бастапқы мәннің белгілі бір классқа жататыны белгілі. Оңай түсіну үшін бізде тек екі класс бар деп есептейік және P+ анықтамасының ықтималдығы,бұл кейбір мәндердің + класына жату ықтималдығы. Әрине онда, P-=1-P+. Осылайша, логистикалық регрессияның нәтижесі әрдайым интервалда орналасады.
Логистикалық регрессияның негізгі идеясы - бастапқы мәндер кеңістігін сызықтық шекара (яғни түзу сызық) арқылы класына байланысты екі аймаққа бөлуге болады. Сонымен мұндағы сызықтық шекара дегеніміз не? Екі жазықтықтар бойынша қарайтын болсақ, бұл жай ғана түзу сызық. Бұл шекара қол жетімді кіріс деректері мен оның оқыту алгоритміне байланысты белгіленеді. Бұл жұмыс орындалу үшін бастапқы деректер нүктелері жоғарыда аталған екі аймаққа сызықтық шекарамен бөлінуі керек. Егер бастапқы деректер нүктелері осы талапты қанағаттандырса, онда оларды сызықтық бөлінетін деп атауға болады. 5-суретке мысал ретінде көрсетілген [5].
5-сурет. Сызықтық шекара
Көрсетілген бөлу жазықтығы сызықтық дискриминант деп аталады, өйткені ол функциясы жағынан сызықтық болып келеді және модельдегі нүктелерді әр түрлі кластарға бөлуге, дискриминациялауға мүмкіндік береді.
Бөлу қалай орындалады тоқталып кетейык. Алдымен, бастапқы кеңістікті екі аймаққа бөлудің геометриялық тұрғыдан түсініп алайық. Қарапайым мысал алайық (жоғарыда көрсетілген 3 өлшемді графиктен айырмашылығы) екі бастапқы айнымалыны ретінде -x1 және x2 алсақ, содан кейін бізде шекараға сәйкес келетін функция пайда болады: β0+β1x1+β2x2
a,b нүктесін қарастырайық. Шектік функцияға x1және x2 мәндерін қойып, β0+β1a+β2 b нәтижесін аламыз. Енді a,b позициясына байланысты үш нұсқаны қарастырған жөн:
a) a,b + класының нүктелерімен шектелген аймақта жатыр. Сонда β0+β1a+β2 b (0,infinity) шегінде бола отырып, оң болады. Математикалық тұрғыдан алғанда, бұл мәннің мәні неғұрлым үлкен болса, нүкте мен шекара арасындағы қашықтық соғұрлым көп болады. Бұл a,b + класына жатуының үлкен ықтималдығын білдіреді. Демек, P+ келесі диапазонда болады (0,5, 1].
b) a,b - класының нүктелерімен шектелген аймақта жатыр. Енді, β0+β1a+β2 b теріс болса, (-infinity, 0) аралығында жатады. Бірақ, оң мәндегі жағдайдағыдай, шығыс мәнінің шамасы неғұрлым көп болса, соғұрлым a,b - класына жату ықтималдылығы жоғары болады, ал P+ [0, 0.5) интервал аралығында қалады.
c) a,b шекара өзінде орналасқан. Бұл жағдайда β0+β1a+β2 b=0 тең. Бұл дегеніміз, модель a,b-тің + класына немесе - класына жататындығын нақты анықтай алмайды. Сонда нәтижесінде P+ 0,5-ке тең болады.
Сонымен, бізде бастапқы деректер нүктесі бар (-infinity, infinity) нақты шама алуға болатын функция бар. Бірақ алынған мәнді шектері [0, 1] болатын P+ ықтималдығына қалай түрлендіруге болады? Жауап ретінде мүмкіндік қатынасы (OR) функциясын қолдана аламыз. Анықтап алайық PX ықтималдығы болып жатқан оқиғалар X. Содан кейін мүмкіндіктің қатынасы ORX -- PX1-PX тен анықталады, ал бұл оқиғаның болуы немесе болмауы ықтималды. Мүмкіндіктің ықтималдығы мен қатынасы бірдей ақпаратты қамтитыны анық. Бірақ PX 0-ден 1-ге дейін болса, ORX 0-ден infinity-ге дейінгі аралықта болады.
Бұл тағы бір әрекет қажет дегенді білдіреді, өйткені біз қолданып отырған шекаралық функция -infinity -ден infinity-ге дейін мәндер аралығында шығады. Енді, біз коэффициенттің логарифмі деп аталатын ORX логарифмін есептеуіңіз керек.
Математикалық тұрғыдан қарастырсақ ORX 0-ден infinity-ке дейін ал logORX -infinity -ден infinity-ге аралықта.Осылайша, біз бастапқы мәндердің шекаралық функциясына енгізілген нәтижелерді түсіндіру әдісін ала алдық. Біз қолданатын модельде шекаралық функция "+" класының коэффициенттерінің логарифмін анықтайды. Шын мәнінде, біздің екі өлшемді мысалда a,b нүктесі болған кезде логистикалық регрессия алгоритмі келесідей болады:
Қадам 1. Бөліндінің мәні β0+β1a+β2 b шекаралық функциялары (немесе опция ретінде, функциясын қарым-қатынас мүмкіндігі қарастырсақ). Оңай болу үшін біз осы t деп белгілейміз.
Қадам 2. Мүмкіндік қатынасын есептейік:OR+=et. (өйткені t - лога-рифм).
Қадам 3. OR+ мәніне ие бола отырып, P+-ді қарапайым тәуелділіктің көмегімен есептеңдер (1).
P+OR+ 1+OR+ (2.1)
1-қадамда t мәнін алғаннан кейін 2 және 3-қадамдарды біріктіруге болады:
P+et 1+et (2.2)
Жоғарыда көрсетілген теңдеудің оң жағы логистикалық функция деп аталады (2). Демек, осы оқыту моделіне берілген атынан туындаған [5].
Функцияның оқытылуы
Жауапсыз қалған сұрақ: "β0+β1a+β2 b шекаралық функциясы қалай оқытылады?" Мұның математикалық негізгі жалпы идея келесідей:
gx функциясын қарастырайық, мұндағы x -- жаттығу үлгісінің деректер нүктесі деп алсақ. gx қарапайым түрде келесідей сипаттауға болады:
gx функциясы оқыту үлгісін модель бойынша дұрыс жіктеу ықтималдығын санымен анықтаймыз. Демек, бүкіл оқу үлгісіндегі орташа мән, мүмкін сыныпқа қарамастан, кездейсоқ мәліметтер нүктесінің жүйемен дұрыс жіктелу ықтималдығын көрсетеді.
Қарапайым түрде айтыңыз-логистикалық регрессияны оқыту механизмі gx орташа мәнін барынша арттыруға тырысады. Бұл әдістің атауы - максималды ықтималдық әдісі [5].
2.4 Кездейсоқ орман (случайный лес)
Bagging-ансамбльдердің алғашқы және қарапайым түрлерінің бірі. Оны 1994 жылы Лео Брейман ойлап тапқан. Bagging көптеген күрделі бөлу статистикасын бағалауға мүмкіндік беретін статистикалық жүктеу әдісіне негізделген.
Бутстрэп әдісі келесідей орындалады. N өлшеміндегі X үлгісі болсын. Біз N нысандарын үлгіден біркелкі қайтара аламыз. Бұл дегеніміз, біз N рет үлгідегі ерікті объектіні таңдаймыз (әр объект бірдей 1N ықтималдығымен шығарылған деп есептейміз) және әр уақытта біз барлық N нысандарының ішінен таңдаймыз.
Біз доптар шығарылатын сөмкені елестетейік: бір кез келген қадамда таңдалған доп сөмкеге қайтарылады, ал келесі таңдау тағы бірдей доп сан арасынан жасалады. Қайтуға байланысты олардың арасында қайталанатын доптар болатынын ескеріңіз. Жаңа үлгіні X1арқылы белгілейік.
Процедураны M рет қайталай отырып, біз кіші M үлгілері ішінен X1,...,Xm шығарамыз. Қазір бізде үлгілер саны жеткілікті және бастапқы таралу статистикасын бағалай аламыз 6-суретте көрсетілген [6].
Бэггинг
Енді сізде бутстрэп туралы түсінік бар және біз бэггингіне тікелей бара аламыз. Оқу үлгісі X бар деп есептейік. Бутстрэп көмегімен біз одан үлгілерді X1,...,Xm шығарамыз.
6-cурет. Бутсрэп іріктеу
Осыдан әр үлгіде біз ai x классификаторын оқытамыз. Қорытынды ретінде классификатор барлық осы алгоритмдердің жауаптарын орташалайды (жіктеу жағдайында ол дауыс беруге сәйкес келеді): ax=1Mi=1Mai x. Бұл схеманы төмендегі сурет арқылы көрсетуге болады 6-суретте көрсетілген 7-суретте көрсетілген.
7-сурет. Оқыту мысалы
b1x,...,bnx негізгі алгоритмдерімен регрессия мәселесін қарастырайық. Барлық объектілер үшін шынайы жауап беру функциясы бар және y(x ) объектілері бойынша үлестірім берілген p(x) делік. Бұл жағдайда әр регрессия функциясының қателігін жаза аламыз:
εix=bix-yx,i=1,...,n (2.3)
және орташа квадраттық қатені жазайық:
Exbix-yx2=Exεi2x (2.4)
Құрылған регрессия функциясының орташа қатесі:
E1=1nExi=1nεi2x (2.5)
Қателер сәйкес келмейді және түзетілмейді делік:
Exεix=0,
Exεixεjx=0,i!=j. (2.6)
Енді біз құрастырған функциялардың жауаптарын орташа алып және жаңа регрессия функциясын құрастырған кезде бізде келесідей анықтамада нәтижелейміз:
ax=1ni=1nbix (2.7)
Оның орташа квадраттық қателігін табайық:
En=Ex1ni=1nbix-yx2=Ex1ni=1nεi2
(2.8)
=1n2Exi=1nεi2x+i!=1εixεjx=1nE1
Осылайша, жауаптардың орташа мәні қатенің орташа квадратын n есе азайтуға мүмкіндік берді.
Bagging модель әртүрлі деректер жиынтығында оқытылған болса немесе басқаша айтқанда, қайта оқытудың алдын алатын болса, қате азайту арқылы оқытылатын жіктеуіштің дисперсиясында (variance) азайтуға мүмкіндік береді.
Бэггингтің тиімділігіне әр түрлі таңдау бойынша оқытылған негізгі алгоритмдердің жеткілікті түрде ерекшеленетіндігімен және дауыс беру кезінде олардың қателіктері өзара әртүрлі, сондай-ақ шығарынды объектілер кейбір оқу топтамаларына түспеуі мүмкін болғандықтан қол жеткізу мүикіндігі туындайтыны бізге белгілі 8-суретте көрсетілген [6].
8-cурет. Салыстыру
Шешім ағашының қатесі:
0,0255Err=0,0003Bias2+0,0152Var+0,0 098(σ2) (2.9)
Бэггинг қатесі:
0,0196Err=0,0004Bias2+0,0092Var + 0,0098(σ2) (2.10)
Жоғарыда келтірілген график пен нәтижелерге сәйкес, дисперсия қатесі, біз теориялық тұрғыдан жоғары дәлелдегендей, баггинг кезінде әлдеқайда аз екенін көре аламыз 5-суретте көрсетілген.
Лео ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz