Гуноҳҳои марговари амнияти вебсайт: он чизе ки мо аз омори сканери осебпазирӣ дар як сол омӯхтем

Тақрибан як сол пеш, мо дар DataLine оғоз кардем хизматрасонӣ ҷустуҷӯ ва таҳлили осебпазирӣ дар барномаҳои IT. Хидмат ба ҳалли абрии Qualys асос ёфтааст, ки дар бораи фаъолияти он аллакай гуфта будем. Дар тӯли як соли кор бо ҳалли мо 291 сканро барои сайтҳои гуногун анҷом додем ва оморро дар бораи осебпазириҳои умумӣ дар замимаҳои веб ҷамъоварӣ кардем. 

Дар мақолаи зер ман ба шумо аниқ нишон медиҳам, ки кадом сӯрохиҳои амнияти вебсайт дар паси сатҳҳои гуногуни интиқодӣ пинҳон шудаанд. Биёед бубинем, ки сканер махсусан зуд-зуд кадом осебпазириро пайдо мекунад, чаро онҳо метавонанд пайдо шаванд ва чӣ гуна худро муҳофизат кардан мумкин аст. 

Гуноҳҳои марговари амнияти вебсайт: он чизе ки мо аз омори сканери осебпазирӣ дар як сол омӯхтем

Qualys тамоми осебпазирии барномаҳои вебро ба се сатҳи интиқодӣ тақсим мекунад: паст, миёна ва баланд. Агар шумо ба тақсимот аз рӯи «ҷиддият» нигоҳ кунед, ба назар чунин мерасад, ки ҳама чиз он қадар бад нест. Якчанд осебпазирии дорои сатҳи баланди интиқодӣ вуҷуд доранд, асосан ҳамаашон танқидӣ нестанд: 

Гуноҳҳои марговари амнияти вебсайт: он чизе ки мо аз омори сканери осебпазирӣ дар як сол омӯхтем

Аммо беинтиқодӣ маънои безарар нест. Онҳо инчунин метавонанд зарари ҷиддӣ расонанд. 

Озарбойҷон "ғайриинтиқодӣ"

  1. осебпазирии мундариҷаи омехта.

    Стандарти амнияти вебсайт ин интиқоли маълумот байни муштарӣ ва сервер тавассути протоколи HTTPS мебошад, ки рамзкунониро дастгирӣ мекунад ва иттилоотро аз боздошт муҳофизат мекунад. 

    Баъзе сайтҳо истифода мебаранд мазмуни омехта: Баъзе маълумот тавассути протоколи HTTP бехатар интиқол дода мешавад. Ин аст, ки чӣ тавр аксар вақт интиқол дода мешавад мундариҷаи ғайрифаъол - маълумоте, ки танҳо ба намоиши сайт таъсир мерасонад: тасвирҳо, сабкҳои css. Аммо баъзан ин тавр интиқол дода мешавад мундариҷаи фаъол: скриптҳое, ки рафтори сайтро назорат мекунанд. Дар ин ҳолат, бо истифода аз нармафзори махсус, шумо метавонед маълумотро бо мундариҷаи фаъоле, ки аз сервер меояд, таҳлил кунед, ҷавобҳои худро дар зудӣ тағир диҳед ва мошинро тавре кор кунед, ки созандаҳои он пешбинӣ нашудаанд. 

    Версияҳои нави браузерҳо корбаронро ҳушдор медиҳанд, ки сайтҳои дорои мундариҷаи омехта хатарноканд ва мундариҷаро масдуд мекунанд. Таҳиягарони вебсайт инчунин дар консол огоҳиҳои браузер мегиранд. Масалан, ин тавр ба назар мерасад Firefox

    Гуноҳҳои марговари амнияти вебсайт: он чизе ки мо аз омори сканери осебпазирӣ дар як сол омӯхтем

    Чаро ин хатарнок аст?: Ҳамлагарон барои боздоштани маълумоти корбар, иваз кардани скриптҳо ва фиристодани дархостҳо ба сайт аз номи ӯ як протоколи ноамнро истифода мебаранд. Ҳатто агар меҳмони сайт маълумот ворид накарда бошад ҳам, ин ӯро аз он муҳофизат намекунад фишинг – бо истифода аз усулҳои қаллобӣ гирифтани маълумоти махфӣ. Масалан, бо истифода аз скрипт, шумо метавонед корбарро ба сайти хатарноке равона кунед, ки ҳамчун як сайти ба корбар шинос аст. Дар баъзе мавридҳо, сайти зараровар ҳатто аз аслӣ беҳтар ба назар мерасад ва корбар метавонад худаш варақаро пур кунад ва маълумоти махфиро пешниҳод кунад. 

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Ҳатто агар маъмури сайт сертификати SSL/TLS-ро насб ва танзим карда бошад ҳам, осебпазирӣ метавонад бо сабаби хатои инсонӣ пайдо шавад. Масалан, агар шумо дар яке аз саҳифаҳо на истиноди нисбӣ, балки истиноди мутлақ аз http гузошта бошед ва илова бар ин, шумо масирро аз http ба https насб накардаед. 

    Шумо метавонед мундариҷаи омехтаро дар сайт бо истифода аз браузер муайян кунед: рамзи сарчашмаи саҳифаро ҷустуҷӯ кунед, огоҳиномаҳоро дар консоли таҳиягар хонед. Бо вуҷуди ин, таҳиякунанда маҷбур мешавад, ки бо код муддати тӯлонӣ ва дилгирона кор кунад. Шумо метавонед равандро бо асбобҳои автоматии таҳлил суръат бахшед, масалан: Санҷиши SSL, нармафзори озод Lighthouse ё нармафзори пулакӣ Screaming Frog SEO Spider.

    Инчунин, осебпазирӣ метавонад аз сабаби мушкилот бо коди меросӣ пайдо шавад. Масалан, агар баъзе саҳифаҳо бо истифода аз қолаби кӯҳна тавлид шаванд, ки гузариши сайтҳоро ба https ба назар намегирад.    

  2. Кукиҳо бидуни парчамҳои "HTTPOnly" ва "бехатар".

    Аттрибути "танҳо HTTPOnly" кукиҳоро аз коркарди скриптҳое, ки ҳамлагарон барои дуздидани маълумоти корбар истифода мебаранд, муҳофизат мекунад. Парчами "бехатар" имкон намедиҳад, ки кукиҳо дар матни равшан фиристода шаванд. Муошират танҳо дар сурате иҷозат дода мешавад, ки протоколи бехатари HTTPS барои фиристодани кукиҳо истифода шавад. 

    Ҳарду атрибутҳо дар хосиятҳои кукиҳо нишон дода шудаанд:

    Set-Cookie: Secure; HttpOnly

    Чаро ин хатарнок аст?: Агар таҳиягари сайт ин атрибутҳоро муайян накарда бошад, ҳамлакунанда метавонад маълумоти корбарро аз куки боздошта ва аз он истифода барад. Агар кукиҳо барои аутентификатсия ва авторизатсия истифода шаванд, ӯ метавонад сеанси корбарро рабуда ва аз номи ӯ дар сайт амалҳо анҷом диҳад. 

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Одатан, дар чаҳорчӯбаҳои маъмул ин атрибутҳо ба таври худкор муқаррар карда мешаванд. Аммо ба ҳар ҳол конфигуратсияи сервери вебро тафтиш кунед ва парчамро насб кунед: Set-Cookie HttpOnly; Бехатар.

    Дар ин ҳолат, атрибути "HTTPOnly" кукиҳоро барои JavaScript-и шахсии шумо ноаён месозад.  

  3. Осебиятҳои ба роҳ асосёфта.

    Сканнер дар бораи чунин осебпазирӣ хабар медиҳад, агар он файл ё феҳристи вебсайтро бо маълумоти эҳтимолии махфӣ пайдо кунад. Масалан, он файлҳои конфигуратсияи инфиродии система ё дастрасӣ ба тамоми системаи файлиро муайян мекунад. Ин ҳолат имконпазир аст, агар ҳуқуқҳои дастрасӣ дар сайт нодуруст муқаррар карда шаванд.

    Чаро ин хатарнок аст?: Агар системаи файлӣ "часпида" бошад, ҳамлакунанда метавонад ба интерфейси системаи амалиётӣ афтад ва кӯшиш кунад, ки ҷузвдонҳоро бо паролҳо пайдо кунад, агар онҳо дар матни равшан нигоҳ дошта шаванд (ин корро накунед!). Ё шумо метавонед хэшҳои паролро дуздед ва паролро маҷбур кунед ва инчунин кӯшиш кунед, ки имтиёзҳоро дар система баланд бардоред ва ба инфрасохтор амиқтар гузаред.  

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Дар бораи ҳуқуқҳои дастрасӣ фаромӯш накунед ва платформа, веб-сервер, веб-барномаро танзим кунед, то аз феҳристи веб "гурихтан" ғайриимкон бошад.

  4. Шаклҳо барои ворид кардани маълумоти ҳассос бо пуркунии худкор фаъол.

    Агар корбар зуд-зуд шаклҳоро дар вебсайтҳо пур кунад, браузери онҳо ин маълумотро бо истифода аз хусусияти пуркунии худкор нигоҳ медорад. 

    Шаклҳо дар вебсайтҳо метавонанд майдонҳои дорои маълумоти ҳассос, аз қабили паролҳо ё рақамҳои корти кредитиро дар бар гиранд. Барои чунин майдонҳо, ғайрифаъол кардани функсияи автоматии шакл дар худи сайт бамаврид аст. 

    Чаро ин хатарнок аст?: Агар браузери корбар маълумоти ҳассосро нигоҳ дорад, ҳамлакунанда метавонад онро баъдтар, масалан тавассути фишинг боздорад. Аслан, як таҳиягари веб, ки ин нозукиро фаромӯш кардааст, корбарони худро танзим мекунад. 

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Дар ин ҳолат мо як ихтилофи классикӣ дорем: роҳат ва амният. Агар таҳиягари веб дар бораи таҷрибаи корбар фикр кунад, ӯ метавонад огоҳона пуркунии автоматиро интихоб кунад. Масалан, агар риоя кардан муҳим бошад Дастур оид ба дастрасӣ ба мундариҷаи веб – тавсияҳо оид ба дастрасии мундариҷа барои корбарони дорои маълулият. 

    Барои аксари браузерҳо шумо метавонед пуркунии худкорро бо атрибути autocompete="off" ғайрифаъол кунед, масалан:

     <body>
        <form action="/tg/form/submit" method="get" autocomplete="off">
          <div>
            <input type="text" placeholder="First Name">
          </div>
          <div>
            <input type="text" id="lname" placeholder="Last Name" autocomplete="on">
          </div>
          <div>
            <input type="number" placeholder="Credit card number">
          </div>
          <input type="submit">
        </form>
      </body>

    Аммо он барои Chrome кор намекунад. Ин бо истифода аз JavaScript бартараф карда мешавад, варианти дорухатро ёфтан мумкин аст дар ин ҷо

  5. Сарлавҳаи X-Frame-Options дар коди сайт муқаррар карда нашудааст. 

    Ин сарлавҳа ба тегҳои чаҳорчӯба, iframe, embed ё объект таъсир мерасонад. Бо ёрии он шумо метавонед ҷойгиркунии сайти худро дар дохили чаҳорчӯба комилан манъ кунед. Барои ин, шумо бояд арзиши X-Frame-Options: deny -ро муайян кунед. Ё шумо метавонед X-Frame-Options: sameorigin -ро муайян кунед, пас ворид кардани iframe танҳо дар домени шумо дастрас хоҳад буд.

    Чаро ин хатарнок аст?: Набудани чунин сарлавҳа метавонад дар сайтҳои зараровар истифода шавад клик кардан. Барои ин ҳамла, ҳамлагар дар болои тугмаҳо чаҳорчӯбаи шаффоф эҷод мекунад ва корбарро фиреб медиҳад. Масалан: қаллобон саҳифаҳои шабакаҳои иҷтимоиро дар вебсайт месозанд. Корбар фикр мекунад, ки вай тугмаи ин сайтро пахш мекунад. Ба ҷои ин, клик боздошта мешавад ва дархости корбар ба шабакаи иҷтимоӣ, ки дар он сессияи фаъол мавҷуд аст, фиристода мешавад. Ҳамин тавр ҳамлагарон аз номи корбар спам мефиристанд ё муштариён ва лайкҳо ба даст меоранд. 

    Агар шумо ин хусусиятро хомӯш накунед, ҳамлакунанда метавонад тугмаи барномаи шуморо дар сайти зараровар ҷойгир кунад. Вай метавонад ба барномаи муроҷиати шумо ё корбарони шумо таваҷҷӯҳ кунад.  

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Озарбойҷон метавонад дар сурате рух диҳад, ки X-Frame-Options бо арзиши мухолиф дар сервери веб ё мувозинати сарборӣ муқаррар карда шуда бошад. Дар ин ҳолат, сервер ва мувозинат сарлавҳаро танҳо аз нав менависанд, зеро онҳо нисбат ба рамзи пуштибонӣ афзалияти баландтар доранд.  

    Инкор ва ҳамон арзишҳои сарлавҳаи X-Frame-Options ба кори намоишгари веби Yandex халал мерасонанд. Барои иҷозат додани истифодаи iframes барои намоишгари веб, шумо бояд дар танзимот қоидаи алоҳида нависед. Масалан, барои nginx шумо метавонед онро чунин танзим кунед:

    http{
    ...
     map $http_referer $frame_options {
     "~webvisor.com" "ALLOW-FROM http://webvisor.com";
     default "SAMEORIGIN";
     }
     add_header X-Frame-Options $frame_options;
    ...
    }
    
    

  6. осебпазирии PRSSI (импорти ҷадвали услуби нисбии роҳ).  

    Ин осебпазирӣ дар услуби сайт аст. Он вақте рух медиҳад, ки истинодҳои нисбӣ ба монанди href="/tg/somefolder/styles.css/" барои дастрасӣ ба файлҳои услуб истифода шаванд. Ҳамлагар аз ин бартарӣ хоҳад дошт, агар онҳо роҳи бозгардонидани корбарро ба саҳифаи шубҳанок пайдо кунанд. Саҳифа ба URL-и худ истиноди нисбӣ ворид мекунад ва занги услубҳоро тақлид мекунад. Шумо дархосте ба мисли badsite.ru/…/somefolder/styles.css/ мегиред, ки метавонад дар зери ниқоби услуб амалҳои зараровар анҷом диҳад. 

    Чаро ин хатарнок аст?: Фиребгар метавонад аз ин осебпазирӣ истифода барад, агар сӯрохи дигари амниятро пайдо кунад. Дар натиҷа, маълумоти корбарро аз кукиҳо ё нишонаҳо дуздидан мумкин аст.

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Сарлавҳаи X-Content-Type-Options-ро ба: nosniff таъин кунед. Дар ин ҳолат, браузер намуди мундариҷаро барои сабкҳо тафтиш мекунад. Агар навъи он аз матн/css дигар бошад, браузер дархостро манъ мекунад.

Заифии интиқодӣ

  1. Саҳифа бо майдони парол аз сервер тавассути канали ноамн интиқол дода мешавад (шакли HTML, ки майдон(ҳо)-и паролро дар бар мегирад, тавассути HTTP хидмат мерасонад).

    Ҷавоби сервер тавассути канали рамзнашуда ба ҳамлаҳои "Одам дар мобайн" осебпазир аст. Ҳангоме ки саҳифа аз сервер ба муштарӣ мегузарад, ҳамлакунанда метавонад трафикро боздорад ва худро байни муштарӣ ва сервер ҷудо кунад. 

    Чаро ин хатарнок аст?: Қаллоб метавонад саҳифаро иваз кунад ва ба корбар варақаи маълумоти махфӣ фиристад, ки он ба сервери ҳамлакунанда меравад. 

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Баъзе сайтҳо ба корбарон ба ҷои парол тавассути почтаи электронӣ/телефон рамзи якдафъаина мефиристанд. Дар ин ҳолат, осебпазирӣ он қадар муҳим нест, аммо механизм ҳаёти корбаронро душвор хоҳад кард.

  2. Фиристодани форма бо логин ва парол тавассути канали ноамн (Шакли воридшавӣ тавассути HTTPS пешниҳод карда намешавад).

    Дар ин ҳолат, форма бо логин ва парол аз корбар ба сервер тавассути канали рамзнашуда фиристода мешавад.

    Чаро ин хатарнок аст?: Баръакси ҳолати қаблӣ, ин аллакай осебпазирии муҳим аст. Боздошти маълумоти ҳассос осонтар аст, зеро барои иҷро кардани он ба шумо ҳатто код навиштан лозим нест. 

  3. Истифодаи китобхонаҳои JavaScript бо осебпазириҳои маълум.

    Ҳангоми скан, китобхонаи бештар истифодашаванда jQuery бо шумораи зиёди версияҳо буд. Ҳар як версия ҳадди аққал як ё ҳатто бештар осебпазирии маълум дорад. Таъсир вобаста ба хусусияти осебпазирӣ метавонад хеле гуногун бошад.

    Чаро ин хатарнок аст?: Барои осебпазирии маълум истисморҳо мавҷуданд, масалан:

    Гуноҳҳои марговари амнияти вебсайт: он чизе ки мо аз омори сканери осебпазирӣ дар як сол омӯхтем

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Мунтазам ба давра баргардед: осебпазириҳои маълумро ҷустуҷӯ кунед - ислоҳ кунед - тафтиш кунед. Агар шумо китобхонаҳои кӯҳнаро дидаю дониста истифода баред, масалан, барои дастгирии браузерҳои кӯҳна ё сарфа кардани пул, имкони ислоҳи осебпазирии маълумро ҷустуҷӯ кунед. 

  4. Скрипти байнисоҳавӣ (XSS). 
    Cross-Site Scripting (XSS), ё скрипти байнисоҳавӣ, ҳамла ба барномаи веб аст, ки боиси ворид шудани нармафзори зараровар ба пойгоҳи дода мешавад. Агар Qualys чунин осебпазириро пайдо кунад, ин маънои онро дорад, ки ҳамлагари эҳтимолӣ метавонад скрипти js-и худро ба коди сайт барои анҷом додани амалҳои зараровар ворид кунад.

    XSS захира карда шудааст хатарноктар аст, зеро скрипт дар сервер ҷойгир карда шудааст ва ҳар дафъае, ки саҳифаи ҳамлашуда дар браузер кушода мешавад, иҷро мешавад.

    XSS инъикос ёфтааст иҷро кардан осонтар аст, зеро скрипти зараровар метавонад ба дархости HTTP ворид карда шавад. Барнома дархости HTTP қабул мекунад, маълумотро тасдиқ намекунад, онро бастабандӣ мекунад ва фавран мефиристад. Агар ҳамлакунанда трафикро халалдор кунад ва скриптро ба монанди

    <script>/*+что+то+плохое+*/</script> 

    он гоҳ аз номи муштарӣ дархости зараровар фиристода мешавад.

    Намунаи барҷастаи XSS: js sniffers, ки саҳифаҳоро барои ворид кардани CVC, санаи анҷоми корт ва ғайра тақлид мекунад. 

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Дар сарлавҳаи Content-Security-Policy, атрибути script-src-ро истифода баред, то браузери муштариро маҷбур созед, ки танҳо кодро аз манбаи боэътимод зеркашӣ ва иҷро кунад. Масалан, script-src 'self' ҳамаи скриптҳоро танҳо аз сайти мо рӯйхат мекунад. 
    Таҷрибаи беҳтарин ин рамзи Inline мебошад: танҳо бо истифода аз арзиши inline-inline javascript иҷозат диҳед. Ин арзиш истифодаи js/css-и inline имкон медиҳад, аммо дохил кардани файлҳои js-ро манъ намекунад. Дар якҷоягӣ бо script-src 'self' мо иҷрои скриптҳои берунаро ғайрифаъол мекунем.

    Боварӣ ҳосил кунед, ки ҳама чизро бо истифода аз report-uri сабт кунед ва кӯшишҳои татбиқи онро дар сайт бубинед.

  5. Тазриқҳои SQL.
    Ин осебпазирӣ имкони ворид кардани рамзи SQL-ро ба вебсайте нишон медиҳад, ки мустақиман ба пойгоҳи додаҳои вебсайт дастрасӣ дорад. Тазриқи SQL имконпазир аст, агар маълумот аз корбар тафтиш карда нашавад: дурустии он тафтиш карда намешавад ва фавран дар дархост истифода мешавад. Масалан, ин ҳолат рӯй медиҳад, ки агар форма дар вебсайт тафтиш накунад, ки оё вуруд ба навъи маълумот мувофиқат мекунад. 

    Чаро ин хатарнок аст?: Агар ҳамлакунанда дархости SQL-ро ба ин шакл ворид кунад, вай метавонад пойгоҳи додаҳоро вайрон кунад ё маълумоти махфиро ошкор кунад. 

    Чиро таҳиягари веб бояд дар хотир дошта бошад: Ба он чизе ки аз браузер меояд, бовар накунед. Шумо бояд худро ҳам аз ҷониби муштарӣ ва ҳам аз ҷониби сервер муҳофизат кунед. 

    Дар тарафи муштарӣ, тасдиқи майдонро бо истифода аз JavaScript нависед. 

    Функсияҳои дарунсохташуда дар чаҳорчӯбаҳои маъмул инчунин барои гурехтани аломатҳои шубҳанок дар сервер кӯмак мекунанд. Инчунин тавсия дода мешавад, ки дархостҳои пойгоҳи додаҳои параметриро дар сервер истифода баред.

    Муайян кунед, ки маҳз дар куҷо робита бо пойгоҳи додаҳо дар веб-барнома сурат мегирад. 

    Муносибат ҳангоми гирифтани ҳама гуна маълумот ба амал меояд: дархост бо ID (тағйири ID), эҷоди корбари нав, шарҳи нав ё сабтҳои нав дар пойгоҳи додаҳо. Дар ин ҷо тазриқи SQL метавонад рух диҳад. Ҳатто агар мо сабтро аз пойгоҳи додаҳо нест кунем, тазриқи SQL имконпазир аст.

Тавсияҳои умумӣ

Чархро аз нав ихтироъ накунед - чаҳорчӯбаҳои исботшударо истифода баред. Чун қоида, чаҳорчӯбаҳои маъмул бехатартаранд. Барои .NET - ASP.NET MVC ва ASP.NET Core, барои Python - Django ё Flask, барои Ruby - Ruby on Rails, барои PHP - Symfony, Laravel, Yii, барои JavaScript - Node.JS-Express.js, барои Java - MVC баҳорӣ.

Навсозиҳои фурӯшандаро пайгирӣ кунед ва мунтазам навсозӣ кунед. Онҳо осебпазириро пайдо мекунанд, пас истисмор менависанд, онро дастрас мекунанд ва ҳама чиз дубора рӯй медиҳад. Ба навсозиҳои версияҳои устувор аз фурӯшандаи нармафзор обуна шавед.

Ҳуқуқҳои дастрасиро тафтиш кунед. Дар тарафи сервер, ҳамеша ба рамзи худ муносибат кунед, ки гӯё онро аз ҳарфи аввал то охирин душмани манфури шумо навишта бошад, ки мехоҳад сайти шуморо вайрон кунад ва тамомияти маълумоти шуморо вайрон кунад. Гузашта аз ин, баъзан ин дуруст аст.

Клонҳо, сайтҳои санҷиширо истифода баред ва сипас онҳоро барои истеҳсол истифода баред. Ин, пеш аз хама, барои пешгирй кардани сахву хатохо дар мухити истехсолй ёрй мерасонад: мухити истехсолй пул меорад, мухити оддии истехсолй мухим аст. Ҳангоми илова кардан, ислоҳ кардан ё пӯшидани ягон мушкилот, бояд дар муҳити озмоишӣ кор карда, пас функсияҳо ва осебпазириҳои пайдошударо тафтиш кунед ва сипас кор бо муҳити истеҳсолиро ба нақша гиред. 

Барномаи веби худро бо Сипар веб-барнома ва гузоришҳоро аз сканери осебпазирӣ бо он ҳамгиро кунед. Масалан, DataLine Qualys ва FortiWeb-ро ҳамчун бастаи хидматҳо истифода мебарад.

Манбаъ: will.com

Илова Эзоҳ