Makamatay nga mga sala sa seguridad sa website: kung unsa ang among nahibal-an gikan sa mga istatistika sa pagkahuyang sa scanner alang sa tuig

Mga usa ka tuig na ang milabay, kami sa DataLine naglunsad serbisyo sa pagpangita ug pag-analisar sa mga kahuyangan sa mga aplikasyon sa IT. Ang serbisyo gibase sa Qualys cloud solution, mahitungod sa operasyon niini gisulti na namo. Sulod sa usa ka tuig nga pagtrabaho kauban ang solusyon, nagpahigayon kami og 291 nga mga pag-scan alang sa lain-laing mga site ug natipon nga mga istatistika sa kasagarang mga kahuyangan sa mga aplikasyon sa web. 

Sa artikulo sa ubos ipakita ko kanimo kung unsa gyud ang mga lungag sa seguridad sa website nga gitago sa luyo sa lainlaing lebel sa kritikal. Atong tan-awon kung unsa nga mga kahuyangan ang nakit-an sa scanner labi na kanunay, ngano nga kini mahitabo, ug kung giunsa pagpanalipod ang imong kaugalingon. 

Makamatay nga mga sala sa seguridad sa website: kung unsa ang among nahibal-an gikan sa mga istatistika sa pagkahuyang sa scanner alang sa tuig

Gibahin sa Qualys ang tanang kahuyangan sa aplikasyon sa web ngadto sa tulo ka lebel sa kritikalidad: ubos, kasarangan ug taas. Kung imong tan-awon ang pag-apod-apod pinaagi sa "kagrabe", ingon nga ang tanan dili kaayo daotan. Adunay pipila ka mga kahuyang nga adunay taas nga lebel sa pagka-kritikal, kasagaran ang tanan dili kritikal: 

Makamatay nga mga sala sa seguridad sa website: kung unsa ang among nahibal-an gikan sa mga istatistika sa pagkahuyang sa scanner alang sa tuig

Apan ang dili kritikal wala magpasabot nga dili makadaot. Mahimo usab kini nga hinungdan sa grabe nga kadaot. 

Panguna nga "dili kritikal" nga mga kahuyangan

  1. Nagkasagol nga mga kahuyangan sa sulud.

    Ang sumbanan alang sa seguridad sa website mao ang pagbalhin sa datos tali sa kliyente ug sa server pinaagi sa HTTPS protocol, nga nagsuporta sa encryption ug nanalipod sa impormasyon gikan sa interception. 

    Ang ubang mga site naggamit nagkasagol nga sulod: Ang ubang mga datos gibalhin pinaagi sa walay kasegurohan nga HTTP protocol. Mao kini ang kasagarang gipasabot passive nga sulod – impormasyon nga makaapekto lamang sa pagpakita sa site: mga hulagway, css estilo. Apan usahay ingon niini ang pagpasa niini aktibo nga sulod: mga script nga nagkontrol sa pamatasan sa site. Sa kini nga kaso, gamit ang espesyal nga software, mahimo nimong analisahon ang kasayuran nga adunay aktibo nga sulud nga gikan sa server, usba ang imong mga tubag sa langaw ug himuon ang makina nga molihok sa paagi nga wala gituyo sa mga tiglalang niini. 

    Ang mga bag-ong bersyon sa mga browser nagpasidaan sa mga tiggamit nga ang mga site nga adunay sagol nga sulud dili luwas ug gibabagan ang sulud. Ang mga nag-develop sa website nakadawat usab mga pasidaan sa browser sa console. Pananglitan, kini ang hitsura niini License

    Makamatay nga mga sala sa seguridad sa website: kung unsa ang among nahibal-an gikan sa mga istatistika sa pagkahuyang sa scanner alang sa tuig

    Unsa ang delikado: Ang mga tig-atake naggamit ug walay kasegurohan nga protocol aron sa pagsanta sa impormasyon sa tiggamit, pag-ilis sa mga script ug pagpadala sa mga hangyo ngadto sa site alang kaniya. Bisan kung ang usa ka bisita sa site wala mosulod sa datos, dili kini makapanalipod kaniya phishing – pagkuha sa kompidensiyal nga impormasyon gamit ang malimbongon nga mga pamaagi. Pananglitan, gamit ang usa ka script, mahimo nimong i-redirect ang tiggamit sa usa ka dili luwas nga site nga nagtakuban nga pamilyar sa tiggamit. Sa pipila ka mga kaso, ang malisyosong site mas nindot tan-awon kay sa orihinal, ug ang user makapuno sa porma sa iyang kaugalingon ug makasumite ug kompidensyal nga datos. 

    Unsa ang angay hinumdoman sa usa ka web developer: Bisan kung ang tagdumala sa site nag-install ug nag-configure sa usa ka sertipiko sa SSL/TLS, usa ka pagkahuyang mahimong motumaw tungod sa sayup sa tawo. Pananglitan, kung sa usa sa mga panid wala nimo gibutang ang usa ka paryente nga link, apan usa ka hingpit nga link gikan sa http, ug dugang pa wala ka mag-set up sa mga redirect gikan sa http hangtod sa https. 

    Mahimo nimong makit-an ang nagkasagol nga sulud sa usa ka site gamit ang usa ka browser: pangitaa ang source code sa panid, basaha ang mga pahibalo sa console sa developer. Bisan pa, ang developer kinahanglan nga mag-tinker sa code sa dugay nga panahon ug makalaay. Mahimo nimong mapadali ang proseso gamit ang awtomatiko nga mga himan sa pagtuki, pananglitan: Pagsusi sa SSL, libre nga Lighthouse software o bayad nga software Screaming Frog SEO Spider.

    Usab, ang pagkahuyang mahimong motumaw tungod sa mga problema sa legacy-code - code nga napanunod. Pananglitan, kung ang pipila ka mga panid gihimo gamit ang usa ka daan nga template, nga wala magtagad sa pagbalhin sa mga site sa https.    

  2. Cookies nga walay "HTTPOnly" ug "secure" nga mga bandila.

    Ang attribute nga "HTTPOnly" nanalipod sa mga cookies gikan sa pagproseso sa mga script nga gigamit sa mga tig-atake sa pagpangawat sa datos sa user. Ang "secure" nga bandila wala magtugot sa cookies nga ipadala sa tin-aw nga teksto. Ang komunikasyon tugotan lamang kung ang luwas nga HTTPS protocol gigamit sa pagpadala og cookies. 

    Ang duha nga mga hiyas gipiho sa mga kabtangan sa cookie:

    Set-Cookie: Secure; HttpOnly

    Unsa ang delikado: Kung ang site developer wala mag-specify niini nga mga attribute, ang usa ka tig-atake mahimong makapugong sa impormasyon sa user gikan sa cookie ug mapahimuslan kini. Kung ang cookies gigamit alang sa pag-authenticate ug pagtugot, mahimo niyang i-hijack ang sesyon sa tiggamit ug maghimo mga aksyon sa site alang kaniya. 

    Unsa ang angay hinumdoman sa usa ka web developer: Ingon sa usa ka lagda, sa popular nga mga gambalay kini nga mga hiyas awtomatikong gitakda. Apan susiha gihapon ang configuration sa web server ug ibutang ang bandila: Set-Cookie HttpOnly; Seguridad.

    Niini nga kaso, ang "HTTPOnly" nga hiyas maghimo sa cookies nga dili makita sa imong kaugalingong JavaScript.  

  3. Path-Based Vulnerabilities.

    Gi-report sa scanner ang ingon nga pagkahuyang kung makit-an ang usa ka file nga ma-access sa publiko o direktoryo sa website nga adunay potensyal nga kompidensyal nga kasayuran. Pananglitan, kini nakamatikod sa tagsa-tagsa nga sistema sa configuration file o access sa tibuok file system. Posible kini nga sitwasyon kung ang mga katungod sa pag-access dili husto nga gibutang sa site.

    Unsa ang delikado: Kung ang sistema sa file "nagpadayon," ang usa ka tig-atake mahimong mahulog sa interface sa operating system ug mosulay sa pagpangita sa mga folder nga adunay mga password kung kini gitipigan sa tin-aw nga teksto (ayaw pagbuhat niana!). O mahimo nimong kawaton ang mga hash sa password ug mapintas nga pugson ang password, ug sulayan usab nga mapataas ang mga pribilehiyo sa sistema ug molihok nga mas lawom sa imprastraktura.  

    Unsa ang angay hinumdoman sa usa ka web developer: Ayaw kalimti ang bahin sa mga katungod sa pag-access ug i-configure ang plataporma, web server, web application aron imposible nga "makaikyas" sa web directory.

  4. Mga porma alang sa pagsulod sa sensitibo nga datos nga gipagana ang auto-fill.

    Kung ang usa ka user kanunay nga mopuno sa mga porma sa mga website, ang ilang browser magtipig niini nga impormasyon gamit ang autofill feature. 

    Ang mga porma sa mga website mahimong maglakip sa mga field nga adunay sensitibo nga impormasyon, sama sa mga password o mga numero sa credit card. Alang sa ingon nga mga natad, angay nga i-disable ang porma nga autofill function sa site mismo. 

    Unsa ang delikado: Kung ang browser sa user nagtipig ug sensitibo nga impormasyon, ang usa ka tig-atake mahimong makapugong niini sa ulahi, pananglitan pinaagi sa phishing. Sa esensya, ang usa ka web developer nga nakalimot bahin sa kini nga nuance nagpahimutang sa iyang mga tiggamit. 

    Unsa ang angay hinumdoman sa usa ka web developer: Sa kini nga kaso, kita adunay usa ka klasiko nga panagbangi: kasayon ​​vs seguridad. Kung ang usa ka web developer naghunahuna bahin sa kasinatian sa tiggamit, mahimo niya nga pilion ang autocomplete. Pananglitan, kon importante nga sundon Mga Panudlo sa Pag-access sa Sulud sa Web - mga rekomendasyon alang sa pagka-access sa sulud alang sa mga tiggamit nga adunay mga kakulangan. 

    Alang sa kadaghanan sa mga browser, mahimo nimong i-disable ang autocomplete gamit ang autocompete="off" attribute, pananglitan:

     <body>
        <form action="/ceb/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>

    Apan dili kini molihok alang sa Chrome. Kini gilikayan gamit ang JavaScript, usa ka variant sa resipe ang makit-an dinhi

  5. Ang X-Frame-Options header wala ibutang sa site code. 

    Kini nga header makaapekto sa frame, iframe, embed, o object tag. Uban sa tabang niini, mahimo nimong hingpit nga idili ang pag-embed sa imong site sa sulod sa usa ka frame. Aron mahimo kini, kinahanglan nimo nga ipiho ang kantidad nga X-Frame-Options: deny. O mahimo nimong ipiho ang X-Frame-Options: parehas nga gigikanan, unya ang pag-embed sa usa ka iframe magamit ra sa imong domain.

    Unsa ang delikado: Ang pagkawala sa ingon nga usa ka header mahimong gamiton sa malisyosong mga site sa clickjacking. Alang sa kini nga pag-atake, ang tig-atake naghimo usa ka transparent nga bayanan sa ibabaw sa mga buton ug gilimbongan ang tiggamit. Pananglitan: ang mga scammers nag-frame sa mga social networking page sa usa ka website. Naghunahuna ang tiggamit nga nag-klik siya sa usa ka buton sa kini nga site. Hinuon, ang pag-klik ma-intercept ug ang hangyo sa user ipadala sa social network diin adunay aktibong sesyon. Mao kini ang paagi nga ang mga tig-atake magpadala ug spam alang sa user o makakuha og mga subscriber ug gusto. 

    Kung dili nimo pag-disable kini nga bahin, ang usa ka tig-atake mahimong magbutang sa imong buton sa aplikasyon sa usa ka makadaot nga site. Mahimong interesado siya sa imong referral nga programa o sa imong mga tiggamit.  

    Unsa ang angay hinumdoman sa usa ka web developer: Mahimong mahitabo ang pagkahuyang kung ang X-Frame-Options nga adunay magkasumpaki nga kantidad ibutang sa web server o load balancer. Sa kini nga kaso, ang server ug balancer yano nga isulat pag-usab ang header, tungod kay sila adunay mas taas nga prayoridad kung itandi sa backend code.  

    Ang pagdumili ug parehas nga gigikanan nga mga kantidad sa X-Frame-Options header makabalda sa operasyon sa Yandex web viewer. Aron tugotan ang paggamit sa mga iframe alang sa tigtan-aw sa web, kinahanglan nimo nga magsulat og bulag nga lagda sa mga setting. Pananglitan, alang sa nginx mahimo nimong i-configure kini sama niini:

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

  6. PRSSI (Path-relative stylesheet import) mga kahuyangan.  

    Kini usa ka kahuyang sa pag-istilo sa site. Mahitabo kini kung ang mga paryente nga link sama sa href="/ceb/somefolder/styles.css/" gigamit aron ma-access ang mga file sa istilo. Pahimuslan kini sa usa ka tig-atake kung mangita sila usa ka paagi aron ma-redirect ang tiggamit sa usa ka malisyosong panid. Ang panid magsal-ot sa usa ka paryente nga link sa iyang url ug magsundog sa usa ka tawag sa mga istilo. Makakuha ka og hangyo sama sa badsite.ru/…/somefolder/styles.css/, nga makahimo og malisyoso nga mga aksyon ubos sa pagtakuban sa usa ka estilo. 

    Unsa ang delikado: Mahimong pahimuslan sa usa ka mangingilad kini nga pagkahuyang kung makakita sila og laing lungag sa seguridad. Ingon usa ka sangputanan, posible nga mangawat ang datos sa tiggamit gikan sa cookies o mga token.

    Unsa ang angay hinumdoman sa usa ka web developer: Ibutang ang X-Content-Type-Options header sa: nosniff. Sa kini nga kaso, susihon sa browser ang tipo sa sulud alang sa mga istilo. Kung ang tipo gawas sa text/css, ang browser mobabag sa hangyo.

Kritikal nga mga kahuyangan

  1. Ang usa ka panid nga adunay field sa password gipasa gikan sa server sa usa ka dili sigurado nga channel (ang HTML nga porma nga adunay (mga) field sa password gisilbi sa HTTP).

    Ang tubag gikan sa server sa usa ka unencrypted channel huyang sa "Tawo sa tunga-tunga" nga mga pag-atake. Ang usa ka tig-atake mahimong maka-intercept sa trapiko ug makasal-ot sa kaugalingon tali sa kliyente ug server samtang ang panid mobiyahe gikan sa server ngadto sa kliyente. 

    Unsa ang delikado: Ang mangingilad makahimo sa pag-ilis sa panid ug ipadala sa user ang usa ka porma alang sa kompidensyal nga datos, nga moadto sa server sa tig-atake. 

    Unsa ang angay hinumdoman sa usa ka web developer: Ang ubang mga site nagpadala sa mga tiggamit og usa ka higayon nga code pinaagi sa email/telepono imbes sa password. Sa kini nga kaso, ang pagkahuyang dili kaayo kritikal, apan ang mekanismo makapakomplikado sa kinabuhi sa mga tiggamit.

  2. Pagpadala usa ka porma nga adunay login ug password sa usa ka dili sigurado nga channel (Ang Porma sa Pag-login Dili Gisumite Pinaagi sa HTTPS).

    Sa kini nga kaso, ang usa ka porma nga adunay login ug password gipadala gikan sa user ngadto sa server pinaagi sa usa ka wala ma-encrypt nga channel.

    Unsa ang delikado: Dili sama sa miaging kaso, kini usa na ka kritikal nga kahuyangan. Mas dali ang pag-intercept sa sensitibo nga datos tungod kay dili nimo kinahanglan nga magsulat og code aron mahimo kini. 

  3. Paggamit sa mga librarya sa JavaScript nga adunay nahibal-an nga mga kahuyangan.

    Atol sa pag-scan, ang labing gigamit nga librarya mao ang jQuery nga adunay daghang mga bersyon. Ang matag bersyon adunay labing menos usa, o labaw pa, nahibal-an nga mga kahuyangan. Ang epekto mahimong lahi kaayo depende sa kinaiya sa pagkahuyang.

    Unsa ang delikado: Adunay mga pagpahimulos alang sa nahibal-an nga mga kahuyangan, pananglitan:

    Makamatay nga mga sala sa seguridad sa website: kung unsa ang among nahibal-an gikan sa mga istatistika sa pagkahuyang sa scanner alang sa tuig

    Unsa ang angay hinumdoman sa usa ka web developer: Kanunay nga mobalik sa siklo: pangitaa ang nahibal-an nga mga kahuyangan - ayo - susiha. Kung gituyo nimo ang paggamit sa mga kabilin nga librarya, pananglitan aron suportahan ang mga tigulang nga browser o aron makatipig salapi, pangitaa ang usa ka higayon aron ayohon ang nahibal-an nga pagkahuyang. 

  4. Cross-site scripting (XSS). 
    Ang Cross-Site Scripting (XSS), o cross-site scripting, usa ka pag-atake sa usa ka web application nga moresulta sa malware nga gipasulod sa database. Kung makit-an ni Qualys ang ingon nga pagkahuyang, kini nagpasabut nga ang usa ka potensyal nga tig-atake mahimo o nagpaila na sa iyang kaugalingon nga script sa js sa code sa site aron mahimo ang makadaot nga mga aksyon.

    Gitipigan nga XSS mas delikado, tungod kay ang script gi-embed sa server ug gipatuman sa matag higayon nga ang giatake nga panid maablihan sa browser.

    Gipakita ang XSS mas sayon ​​nga buhaton tungod kay ang usa ka malisyoso nga script mahimong ma-inject sa usa ka HTTP nga hangyo. Ang aplikasyon makadawat og HTTP nga hangyo, dili mag-validate sa datos, mag-package niini, ug ipadala dayon. Kung ang usa ka tig-atake makapugong sa trapiko ug magsal-ot sa usa ka script sama sa

    <script>/*+Ρ‡Ρ‚ΠΎ+Ρ‚ΠΎ+ΠΏΠ»ΠΎΡ…ΠΎΠ΅+*/</script> 

    unya ang usa ka malisyosong hangyo ipadala alang sa kliyente.

    Usa ka talagsaong pananglitan sa XSS: js sniffers nga nagsundog sa mga panid alang sa pagsulod sa CVC, petsa sa expiration sa card, ug uban pa. 

    Unsa ang angay hinumdoman sa usa ka web developer: Sa Content-Security-Policy header, gamita ang script-src attribute para pugson ang client browser nga i-download lang ug i-execute ang code gikan sa kasaligang tinubdan. Pananglitan, ang script-src 'kaugalingon' nag-whitelist sa tanang mga script gikan sa among site lamang. 
    Ang labing maayo nga praktis mao ang Inline code: tugoti lang ang inline nga javascript gamit ang dili luwas nga inline nga kantidad. Kini nga bili nagtugot sa paggamit sa inline nga js/css, apan wala magdili sa paglakip sa js files. Sa kombinasyon sa script-src nga 'kaugalingon' gipugngan namo ang mga eksternal nga script gikan sa pagpahamtang.

    Siguruha nga i-log ang tanan gamit ang report-uri ug tan-awa ang mga pagsulay nga ipatuman kini sa site.

  5. SQL injection.
    Ang kahuyang nagpakita sa posibilidad sa pag-inject sa SQL code ngadto sa usa ka website nga direktang maka-access sa database sa website. Posible ang pag-injection sa SQL kung ang datos gikan sa tiggamit wala gisusi: wala kini gisusi sa katukma ug gigamit dayon sa pangutana. Pananglitan, mahitabo kini kung ang usa ka porma sa usa ka website dili magsusi kung ang input ba nahiuyon sa tipo sa datos. 

    Unsa ang delikado: Kung ang usa ka tig-atake mosulod sa usa ka pangutana sa SQL sa kini nga porma, mahimo niyang i-crash ang database o ipadayag ang kompidensyal nga kasayuran. 

    Unsa ang angay hinumdoman sa usa ka web developer: Ayaw pagsalig kung unsa ang gikan sa browser. Kinahanglan nimong panalipdan ang imong kaugalingon sa kilid sa kliyente ug sa kilid sa server. 

    Sa bahin sa kliyente, isulat ang validation sa uma gamit ang JavaScript. 

    Ang mga built-in nga function sa sikat nga frameworks makatabang usab sa pag-ikyas sa mga kadudahang karakter sa server. Girekomenda usab nga gamiton ang parameterized database query sa server.

    Tinoa kung asa gyud ang interaksyon sa database mahitabo sa web application. 

    Mahitabo ang interaksyon kung makadawat kami bisan unsang kasayuran: usa ka hangyo nga adunay id (pagbag-o sa id), paghimo og bag-ong tiggamit, bag-ong komento, o bag-ong mga entry sa database. Dinhi mahimo’g mahitabo ang mga SQL injection. Bisan kung atong tangtangon ang usa ka rekord gikan sa database, posible ang SQL injection.

Mga rekomendasyon sa kadaghanan

Ayaw usba ang ligid - gamita ang napamatud-an nga mga balangkas. Ingon sa usa ka lagda, ang popular nga mga gambalay mas luwas. Para sa .NET - ASP.NET MVC ug ASP.NET Core, para sa Python - Django o Flask, para sa Ruby - Ruby on Rails, para sa PHP - Symfony, Laravel, Yii, para sa JavaScript - Node.JS-Express.js, para sa Java - Spring MVC.

Sunda ang mga update sa vendor ug i-update kanunay. Makapangita sila og kahuyang, unya magsulat og pagpahimulos, himoon kini sa publiko, ug ang tanan mahitabo pag-usab. Mag-subscribe sa mga update sa mga stable nga bersyon gikan sa software vendor.

Susiha ang mga katungod sa pag-access. Sa kilid sa server, kanunay nga tagda ang imong code ingon nga kini, gikan sa una hangtod sa katapusan nga letra, gisulat sa imong labing gikasilagan nga kaaway, nga gusto nga bungkagon ang imong site, naglapas sa integridad sa imong datos. Dugang pa, usahay kini tinuod.

Gamita ang mga clone, mga site sa pagsulay, ug dayon gamita kini alang sa produksiyon. Makatabang kini, una, aron malikayan ang mga kasaypanan ug kasaypanan sa usa ka produktibo nga palibot: ang usa ka produktibo nga palibot nagdala salapi, usa ka yano nga produktibo nga palibot hinungdanon. Kung nagdugang, nag-ayo o nagsira sa bisan unsang problema, angayan nga magtrabaho sa usa ka palibot sa pagsulay, dayon susihon ang pag-andar ug mga kahuyangan nga nakit-an, ug dayon nagplano nga magtrabaho kauban ang palibot sa produksiyon. 

Panalipdi ang imong web application gamit ang Web Application Firewall ug i-integrate ang mga taho gikan sa vulnerability scanner niini. Pananglitan, ang DataLine naggamit sa Qualys ug FortiWeb isip usa ka hugpong sa mga serbisyo.

Source: www.habr.com

Idugang sa usa ka comment