Ang OWASP ay nangangahulugang Open Web Application Security Project. Idinodokumento ng OWASP Top 10 application security risks ang mga pinakakaraniwang pagkakamali sa pag-coding na nagagawa ng mga developer na maaaring humantong sa mga panganib sa seguridad sa kanilang mga aplikasyon. Ito ay batay sa malawak na pinagkasunduan sa mga pinakamahalagang panganib sa seguridad sa pag-coding. Dapat malaman ng mga kumpanya ang mapagkukunang ito at tiyaking tinutugunan ng kanilang mga web application ang mga potensyal na panganib na ito.
Ang paggamit ng OWASP Top 10 ay marahil ang pinakaepektibong unang hakbang patungo sa pagbabago ng kultura ng software development sa loob ng iyong organisasyon patungo sa isa na gumagawa ng mas secure na code mula sa simula.
Ano ang Nangungunang 10 Mga Panganib sa Seguridad ng Web Application?
Iniksyon. Ang mga depekto sa pag-injection, gaya ng SQL, NoSQL, OS, at LDAP injection, ay nangyayari kapag ang hindi pinagkakatiwalaang data ay ipinadala sa isang interpreter bilang bahagi ng isang command o query. Maaaring linlangin ng hindi kanais-nais na data ng attacker ang interpreter sa pagpapatupad ng mga hindi sinasadyang command o pag-access ng data nang walang wastong pahintulot.
Sirang Authentication. Ang mga function ng application na nauugnay sa pagpapatotoo at pamamahala ng session ay madalas na ipinapatupad nang hindi tama, na nagbibigay-daan sa mga umaatake na ikompromiso ang mga password, key, o mga token ng session, o upang pagsamantalahan ang iba pang mga bahid sa pagpapatupad upang ipagpalagay ang mga pagkakakilanlan ng ibang mga user nang pansamantala o permanente.
Sensitibong Pagkakalantad ng Data. Maraming web application at API ang hindi maayos na nagpoprotekta sa sensitibong data, gaya ng pinansyal, pangangalaga sa kalusugan, at PII. Maaaring magnakaw o baguhin ng mga umaatake ang gayong mahinang protektadong data upang magsagawa ng pandaraya sa credit card, pagnanakaw ng pagkakakilanlan, o iba pang mga krimen. Maaaring makompromiso ang sensitibong data nang walang karagdagang proteksyon, tulad ng pag-encrypt sa pahinga o sa transit, at nangangailangan ng mga espesyal na pag-iingat kapag ipinagpalit sa browser.
XML External Entity (XXE). Maraming mas luma o mahinang na-configure na mga processor ng XML ang nagsusuri ng mga panlabas na sanggunian ng entity sa loob ng mga dokumentong XML. Maaaring gamitin ang mga panlabas na entity upang ibunyag ang mga internal na file gamit ang file URI handler, internal file share, internal port scanning, remote code execution, at denial of service attacks.
Sirang Access Control. Ang mga paghihigpit sa kung ano ang pinapayagang gawin ng mga na-authenticate na user ay kadalasang hindi naipapatupad nang maayos. Maaaring samantalahin ng mga attacker ang mga kapintasan na ito upang ma-access ang hindi awtorisadong functionality at/o data, tulad ng pag-access sa mga account ng ibang user, tingnan ang mga sensitibong file, baguhin ang data ng ibang user, baguhin ang mga karapatan sa pag-access, atbp.
Maling pagsasaayos ng Security. Ang maling configuration sa seguridad ay ang pinakakaraniwang nakikitang isyu. Karaniwang resulta ito ng mga hindi secure na default na configuration, hindi kumpleto o ad hoc na mga configuration, bukas na cloud storage, maling pagkaka-configure ng mga header ng HTTP, at verbose error na mensahe na naglalaman ng sensitibong impormasyon. Hindi lamang dapat secure na i-configure ang lahat ng operating system, frameworks, library, at application, ngunit dapat silang i-patch/i-upgrade sa napapanahong paraan.
Cross-Site Scripting XSS. Ang mga bahid ng XSS ay nangyayari sa tuwing ang isang application ay nagsasama ng hindi pinagkakatiwalaang data sa isang bagong web page nang walang wastong pagpapatunay o pagtakas, o ina-update ang isang umiiral nang web page na may data na ibinigay ng user gamit ang isang browser API na maaaring lumikha ng HTML o JavaScript. Binibigyang-daan ng XSS ang mga umaatake na magsagawa ng mga script sa browser ng biktima na maaaring mag-hijack ng mga session ng user, masira ang mga web site, o mag-redirect ng user sa mga nakakahamak na site.
Hindi secure na Deserialization. Ang hindi secure na deserialization ay kadalasang humahantong sa remote code execution. Kahit na ang mga deserialization na depekto ay hindi nagreresulta sa remote code execution, magagamit ang mga ito para magsagawa ng mga pag-atake, kabilang ang mga replay attack, injection attack, at privilege escalation attacks.
Paggamit ng Mga Bahaging May Kilalang Mga Kahinaan. Ang mga bahagi, gaya ng mga library, framework, at iba pang software module, ay tumatakbo nang may parehong mga pribilehiyo gaya ng application. Kung ang isang vulnerable na bahagi ay pinagsamantalahan, ang ganitong pag-atake ay maaaring mapadali ang malubhang pagkawala ng data o pagkuha ng server. Ang mga application at API na gumagamit ng mga bahagi na may alam na mga kahinaan ay maaaring makapinsala sa mga depensa ng application at makapag-enable ng iba't ibang pag-atake at epekto.
Hindi Sapat na Pag-log at Pagsubaybay. Ang hindi sapat na pag-log at pagsubaybay, kasama ng nawawala o hindi epektibong pagsasama sa pagtugon sa insidente, ay nagbibigay-daan sa mga umaatake na higit pang atakehin ang mga system, mapanatili ang pagpupursige, mag-pivot sa mas maraming system, at pakialaman, kunin, o sirain ang data. Karamihan sa mga pag-aaral ng paglabag ay nagpapakita na ang oras upang matukoy ang isang paglabag ay higit sa 200 araw, kadalasang nakikita ng mga panlabas na partido sa halip na mga panloob na proseso o pagsubaybay.
Ang mga may-ari ng SMB na bumuo ng code ay dapat magsanay sa OWASP Top 10 na mga panganib sa coding sa lahat ng kanilang mga developer. Maiiwasan nito ang maraming problema na nagiging magastos upang ayusin sa kalsada. Ang CyberHoot ay may 12-bahaging OWASP Coding Training program na handa para sa anumang mga kumpanya ng pagpapaunlad doon.