Кіріспе
Жарамды компьютерлік сессияны қолдану
Компьютерлік ғылымда сессияны басып алу, кейде cookie-лерді басып алу деп те аталады, компьютерлік жүйедегі ақпаратқа немесе қызметтерге рұқсатсыз қол жеткізу үшін жарамды компьютерлік сессияны – кейде сессия кілті деп те аталады – пайдалану. Атап айтқанда, бұл қашықтағы серверде пайдаланушыны куәландыру үшін қолданылатын «сиқырлы» cookie-ні ұрлауға қатысты қолданылады. Бұл веб-дамытушылар үшін ерекше маңызды, өйткені көптеген веб-сайттарда сессияны сақтау үшін қолданылатын HTTP cookie-лерін шабуылшы аралық компьютерді пайдаланып немесе құрбанның компьютерінде сақталған cookie-лерге қол жеткізе отырып оңай ұрлай алады (HTTP cookie-лерді ұрлау туралы қараңыз). Сессиялық cookie-лерді сәтті ұрлағаннан кейін қарсылас сессияны басып алу үшін Pass the Cookie әдісін қолдана алады. Cookie-лерді басып алу интернеттегі клиент куәландыруына қарсы жиі қолданылады. Қазіргі заманғы веб-браузерлер веб-сайтты шабуылдан қорғау үшін cookie-лерді қорғау механизмдерін пайдаланады. Танымал әдіс – бастапқы маршрутталған IP пакеттерін пайдалану. Бұл желідегі B нүктесіндегі шабуылшыға A мен C арасындағы әңгімеге қатысуға мүмкіндік береді, IP пакеттерін B машинасы арқылы өткізуге ынталандырады. Егер бастапқы маршруттау өшірілген болса, шабуылшы «көрінбейтін» басып алуды қолдана алады, осылайша ол екі машинаның жауабын болжайды. Осылайша, шабуылшы команда жібере алады, бірақ жауапты ешқашан көре алмайды. Дегенмен, жиі қолданылатын команда – желідегі басқа жерден кіруге мүмкіндік беретін парольді орнату. Шабуылшы әңгімені бақылау үшін аңқау бағдарламаны пайдаланып A мен C арасында «тікелей» болуы мүмкін. Бұл «ортадағы адам шабуылы» деп аталады.
HTTP тарихы
HTTP протоколының 0.8 және 0.9 нұсқаларында cookie файлдары және сеансты басып алу үшін қажетті басқа да мүмкіндіктер болмады. 1994 жылдың 13 қазанында жарық көрген Mosaic Netscape-тің 0.9beta нұсқасы cookie файлдарын қолдады. HTTP 1.0-дың алғашқы нұсқаларында сеансты басып алуға байланысты кейбір қауіпсіздік әлсіздіктері болды, бірақ оларды пайдалану қиын болды, өйткені көптеген алғашқы HTTP 1.0 серверлері мен браузерлерінің тұрақсыздығы осыған кедергі келтірді. HTTP 1.0 2000-жылдардың басынан бері HTTP 1.1 үшін қосалқы нұсқа ретінде белгіленгендіктен және HTTP 1.0 серверлерінің барлығы дерлік HTTP 1.1 серверлері болғандықтан, сеансты басып алу мәселесі дерлік тұрақты қауіпсіздік тәуекеліне айналды. HTTP 1.1-дің жаңартылған нұсқаларымен суперкукилер мен басқа да мүмкіндіктерді енгізу, осы басып алу мәселесінің үнемі қауіпсіздік проблемасы болуына жағдай жасады. Веб-серверлер мен браузерлердің күйлік машиналарын стандарттау осы үнемі қауіпсіздік проблемасына үлес қосты.
Әдістер
Сессияны ұрлау үшін төрт негізгі әдіс қолданылады. Олар: сеансты бекіту, онда шабуылшы пайдаланушының сеанс идентификаторын өзіне белгілі бір мәнге орнатады, мысалы, пайдаланушыға белгілі бір сеанс идентификаторын қамтитын сілтемесі бар электрондық пошта жіберіп. Шабуылшы енді пайдаланушы жүйеге кіргенше күтуі керек. Сеанс жағынан ұрлау, онда шабуылшы сеанс cookie-ді ұрлау үшін екі тарап арасындағы желілік трафикті оқуға пакеттерді талдауды қолданады. Көптеген веб-сайттар шабуылшылардың құпия сөзді көруіне жол бермеу үшін кіру беттері үшін SSL шифрлауын қолданады, бірақ аутентификацияланғаннан кейін сайттың қалған бөлігі үшін шифрлауды қолданбайды. Бұл желілік трафикті оқи алатын шабуылшыларға серверге жіберілген барлық деректерді немесе клиент қараған веб-беттерді ұстап алуға мүмкіндік береді. Бұл деректер сеанс cookie-сін қамтитындықтан, құпия сөздің өзі бұзылмаса да, ол құрбанның кейпін киюге мүмкіндік береді. Қауіпсіз Wi-Fi желілері әсіресе осал, өйткені желімен бөлісетін кез-келген адам басқа түйіндер мен кіру нүктесі арасындағы веб-трафиктің көп бөлігін оқи алады. Сайт аралық скрипттеу, онда шабуылшы пайдаланушының компьютерін кодты орындауға итермелейді, өйткені ол серверге тиесілі болып көрінеді, бұл шабуылшыға cookie-нің көшірмесін алуға немесе басқа операцияларды орындауға мүмкіндік береді. Зыянды бағдарламалар мен қажетсіз бағдарламалар браузерді ұрлау арқылы браузердің cookie файлдарын пайдаланушының білмеуінен ұрлап, содан кейін пайдаланушының білмеуінен әрекеттерді (мысалы, Android қосымшаларын орнату) орындай алады. Физикалық қолжетімділігі бар шабуылшы сессия кілтін, мысалы, пайдаланушының компьютері немесе сервердің тиісті бөлігінің файл немесе жады мазмұнын алу арқылы ұрлауға тырыса алады. Тиісті сеанс cookie-лерін сәтті алғаннан кейін қарсылас Pass the Cookie техникасын сессияны ұрлау үшін пайдалана алады.
Session fixation, where the attacker sets a user's session ID to one known to them, for example by sending the user an email with a link that contains a particular session ID. The attacker now only has to wait until the user logs in. Session side jacking, where the attacker uses packet sniffing to read network traffic between two parties to steal the session cookie. Many websites use SSL encryption for login pages to prevent attackers from seeing the password, but do not use encryption for the rest of the site once authenticated. This allows attackers that can read the network traffic to intercept all the data that is submitted to the server or web pages viewed by the client. Since this data includes the session cookie, it allows them to impersonate the victim, even if the password itself is not compromised. Unsecured Wi Fi hotspots are particularly vulnerable, as anyone sharing the network will generally be able to read most of the web traffic between other nodes and the access point. Cross site scripting, where the attacker tricks the user's computer into running code which is treated as trustworthy because it appears to belong to the server, allowing the attacker to obtain a copy of the cookie or perform other operations. Malware and unwanted programs can use browser hijacking to steal a browser's cookie files without a user's knowledge, and then perform actions (like installing Android apps) without the user's knowledge. An attacker with physical access can simply attempt to steal the session key by, for example, obtaining the file or memory contents of the appropriate part of either the user's computer or the server. After successfully acquiring appropriate session cookies an adversary might leverage the Pass the Cookie technique to perform session hijacking.
Өртші қой
2010 жылдың қазан айында Mozilla Firefox үшін Firesheep деп аталатын кеңейтім шығарылды, ол шифрланбаған қоғамдық Wi-Fi желілерін пайдаланатын қолданушыларға сеансты ұрлауға тырысатын шабуылшылар үшін оңай қол жетімділік ұсынды. Facebook, Twitter және қолданушы өз баптауларына қосқан кез келген сайттар Firesheep қолданушысына cookie файлдарынан жеке ақпаратты оңай алуға және қоғамдық Wi-Fi желісін пайдаланатын адамдардың жеке мүліктеріне қауіп төндіруге мүмкіндік берді. Бірнеше ай өткен соң Facebook және Twitter HTTP Secure қолдауын ұсынып (кейіннен міндетті етіп) жауап берді.
WhatsApp-ты аңғару
WhatsApp Sniffer деп аталатын қосымша 2012 жылдың мамыр айында Google Play дүкенінде пайда болды. Ол сол желіге қосылған басқа WhatsApp пайдаланушыларының хабарламаларын көрсетуге мүмкіндік берді. Ол кезде WhatsApp шифрлаумен қамтамасыз етілген XMPP инфрақұрылымын пайдаланды, қарапайым мәтіндік хабар алмасу емес.
Дроид қойлар
DroidSheep – веб-сессияларды ұрлау (sidejacking) үшін қарапайым Android құралы. Ол сымсыз (802.11) желі қосылысы арқылы жіберілген HTTP пакеттерін тыңдайды және оларды қайта пайдалану үшін осы пакеттерден сессия идентификаторын шығарып алады. DroidSheep libpcap кітапханасын пайдаланып сессияларды ұстай алады және қолдайды: ашық (шифрланбаған) желілер, WEP шифрланған желілер және WPA/WPA2 шифрланған желілер (тек PSK). Бұл бағдарламалық құрал libpcap және arpspoof қолданады. Бұл қосымша Google Play-де қолжетімді болған, бірақ Google оны алып тастады.
CookieCadger (Бөтелпе)
CookieCadger – шифрланбаған GET сұраныстарын қолданатын қосымшалардан ақпараттың ағып кетуін анықтауға көмектесетін, HTTP сұраныстарын басып алу және қайта ойнатуды автоматтандыратын графикалық Java бағдарламасы. Бұл Wireshark құралдарына негізделген, әртүрлі платформада жұмыс істейтін ашық кодты құрал, ол сымды Ethernet желісін, қорланбаған Wi-Fi желісін бақылай алады немесе офлайн талдау үшін пакеттерді сақтаған файлды жүктей алады. Cookie Cadger жасөспірімдер командаларының сайттарындағы, мысалы Shutterfly (AYSO футбол лигасы қолданады) және TeamSnap сияқты әлсіздіктерді көрсету үшін қолданылған.