OWASP چیست؟ | استانداردها و پروژههای اواسپ
آشنایی با Open Web Application Security Project
OWASP چیست؟
OWASP مختصر Open Web Application Security Project، بنیادی غیردولتی میباشد که به منظور بهبود امنیت در نرم افزارها شکل گرفته است. OWASP یا اواسپ در واقع پروژهای منبع باز (Open-source) و جامعهباز (Open-Community) است که بواسطه صدها فصل متن و اطلاعات از سراسر جهان، همکاری دهها هزار نفر و کنفرانسهای آموزشی به منبعی برای توسعه دهندگان و متخصصان فنآوری به منظور تولید و نگهداشت برنامههای کاربردی وب تبدیل شده است.
امروزه استانداردهای اواسپ، معیاری است برای تخمین و بررسی میزان امنیت برنامههای کاربردی تحت وب و این امر مورد تایید سازمانها و بنیادهای سراسر جهان و همچنین ایران میباشد.
OWASP به خودی خود یک استاندارد نیست بلکه صرفا یک متودولوژی است. این بدین معنی است که اواسپ مجموعهای از فرایندها، رویهها و ایدهها را به منظور رسیدن به هدف خود یعنی امنسازی، در خود جای میدهد. ولی این بدین معنی نمیباشد که اواسپ هیج استانداردی را در خود جای نمیدهد برخی از اسناد اواسپ با نام استاندارد (مانند Application Security Verification Standard) عمومی میشوند و برخی دیگر هم وجود دارند که اگرچه نام استاندارد روی خود ندارند ولی سازمانها از آن به عنوان یک استاندارد بهره میگیرند.
سازمان OWASP یک سازمان با ساختار نوین است. استقلال ما از فشارهای تجاری، امکان ارائهی اطلاعات بیطرفانه، عملی، و مقرون بهصرفه دربارهی امنیت برنامههای کاربردی را فراهم میکند. اگرچه OWASP از استفادهی آگاهانهی فناوری امنیتی تجاری پشتیبانی میکند، ولی هیچ گونه وابستگی حقوقی به سازمانهای تجاری ندارد. مؤسسه OWASP یک موجودیت کاملا غیرانتفاعی است.
این بند تعریفی است که اواسپ از خود ارائه میدهد و خود را بدلیل داوطلبانه بودن پروژه از فشارهای مالی مبرا میسازد.
توسعه دهندگان و متخصصان فناوری میتوانند با بررسی منظم اسناد تولید شده اواسپ، خود را در بحث امنیت بروز نگه دارند زیرا که اکثر اسناد اواسپ به صورت سالانه بروز شده و براساس نتایج آمارهای جدید ویرایش میشوند. نمونه ای از این اسناد، سند OWASP Top 10 میباشد که تا 6 نسخه از آن عمومی شده است.
باید دانست که تغییرات مورد بحث، بسیار زیاد است و توسعه دهنده یا متخصص با بررسی اسناد قدیمیتر نمیتواند به اندازه کافی برنامهای امن را متناسب با آسیبپذیریهای روز تولید نماید. به همین دلیل بررسی منظم بروزرسانیها امری واجب میباشد.
تاریخچه OWASP
برای داشتن یک تاریخچه از فعالیتها و اقدامات اواسپ نیاز است که به سال 2001 برگردیم. نخستین بار در این سال اواسپ به عنوان مجموعهای غیر رسمی شروع به جمعآوری روشهای برنامه نویسی ایمن نمود و فعالیت خود را آغاز کرد. در این زمان اواسپ به این شدت شناخته شده نبود و هنوز در دید عموم معتبر خوانده نمیشد.
در سال 2004، OWASP به عنوان یک سازمان غیردولتی ثبت گردید و شروع فعالیتهای رسمی خود را از این سال آغاز نمود این سازمان که در پی جلوگیری از حملات معمول در برنامههای کاربردی بود، رفته رفته شناختهتر شد و قدرت گرفت. در واقع این اولین تلاش برای استانداردسازی شیوههای کدنویسی ایمن بود. این یعنی اواسپ تبدیل به اولین سازمان بیطرف با رویکردی مبتنی بر ریسک شد که برای جلوگیری از نفوذ به هر شرکت یا سازمانی طراحی شده است.
قابل ذکر است که جف ویلیامز از همین زمانها بود که به صورت داوطلبانه ریاست هیئت مدیره اواسپ را قبول کرد و به عهده گرفت.
در سال 2015 ریاست هیئت مدیره اواسپ توسط مت کوندا قبول شد و ایشان این عنوان را تا سال 2018 اداره نمودند.
مدیر حال حاضر OWASP آقای اندرو ون در استاک میباشد که از سال 2018 فعالیت خود را با این عنوان آغاز نموده است. قابل ذکر است که اواسپ در کشور بلژیک تحت نام OWASP Europe VZW ثبت شده است.
لیست پروژه های OWASP
OWASP AMASS
پروژه OWASP Amass به منظور توسعه یک ابزار جهت نقشه برداری شبکهای از سطوح مختلف حمله و کشف داراییهای خارجی با استفاده از تکنیکهای جمعآوری اطلاعات منبع باز (open source information gathering) و تکنیکهای شناسایی فعال (active reconnaissance techniques) تعریف شد.
این تکنیکها شامل موارد زیر میباشند.
تکنیک | منابع اطلاعتی |
DNS | Brute forcing, Reverse DNS sweeping, NSEC zone walking, Zone transfers, FQDN alterations/permutations, FQDN Similarity-based Guessing |
Scraping | AbuseIPDB, Ask, AskDNS, Baidu, Bing, DNSDumpster, DuckDuckGo, Gists, HackerOne, HyperStat, IPv4Info, PKey, RapidDNS, Riddler, Searchcode, Searx, SiteDossier, SpyOnWeb, Yahoo |
Certificates | Active pulls (optional), Censys, CertSpotter, Crtsh, Digitorus, FacebookCT, GoogleCT |
APIs | 360PassiveDNS, ARIN, Ahrefs, AlienVault, AnubisDB, BinaryEdge, BGPView, BufferOver, BuiltWith, C99, Chaos, CIRCL, Cloudflare, CommonCrawl, DNSDB, DNSlytics, DNSRepo, Detectify, FOFA, FullHunt, GitHub, GitLab, Greynoise, HackerTarget, Hunter, IntelX, IPdata, IPinfo, Maltiverse, Mnemonic, N45HT, NetworksDB, ONYPHE, PassiveTotal, PentestTools, Quake, RADb, Robtex, SecurityTrails, ShadowServer, Shodan, SonarSearch, Spamhaus, Spyse, Sublist3rAPI, TeamCymru, ThreatBook, ThreatCrowd, ThreatMiner, Twitter, Umbrella, URLScan, VirusTotal, WhoisXMLAPI, ZETAlytics, ZoomEye |
Web Archives | ArchiveIt, Arquivo, HAW, UKWebArchive, Wayback |
OWASP ASVS
OWASP Application Security Verification Standard که به مختصر به صورت ASVS هم از آن یاد میشود با هدف تولید یک استاندارد امنیتی برنامهباز (open application security standard) برای سرویسها و برنامههای وبی تعریف شد.
این استاندارد مبنایی است برای طراحی، ساخت و آزمایش کنترلهای امنیتی برنامه ( از جمله معماری، چرخه عمر توسعه امن یا secure development lifecycle، مدل سازی تهدید و المانهای agile security ).
OWASP Cheat Sheet Series
OWASP Cheat Sheet Series پروژهای به منظور کمک رسانی به عدم فراموشی دستورالعملها میباشد.
همانطور که از نام این پروژه پیدا است این پروژه مجموعهای از برگههای تقلب است.
شما میتوانید این پروژه را از گیتهاب دانلود و سپ بیلد (Build) نمایید و یا نسخه بیلد شده آن را از صفحه این پروژه دانلود نمایید.
OWASP CSRFGuard
همانطور که از نام این ابزار میتوان فهمید پروژه CSRFGuard با هدف جلوگیری از حملات CSRF تعریف شده است.
این ابزار کتابخانهای میباشد که نوعی الگوی توکن همگامساز (synchronizer) را پیادهسازی میکند.
OWASP CycloneDX
امروزه نرمافزارهای مدرن با استفاده از اجزای شخص ثالث و منبع باز مونتاژ میشوند. اجزای برنامهها با روشهایی پیچیده و منحصر به فردی به هم چسبیده میشوند و اجزای خارجی با کد اصلی یکپارچه میشود تا نیاز و هدف برنامه کاربردی تامین شود. دانستن دقیق و داشتن لیستی از تمامی این جزءها، سازمانها را قادر میسازد تا ریسکها را شناسایی و خطرات احتمالی را پوشش دهند. این موضوع شفافیت را بیشتر و تجزیه و تحلیل سریعتر را ممکن میکند.
هدف پروژه OWASP CycloneDX انجام این مهم میباشد. این پروژه یک استاندارد SBOM یا Software Bill of Materials سبک وزن میباشد که به منظور استفاده در زمینههای امنیتی در برنامهها و انجام تجزیه و تحلیل تمام اجزای یک برنامه، تعریف شده است.
OWASP Defectdojo
OWASP Defectdojo یک ابزار مدیریت آسیب پذیری (vulnerability management) منبع باز میباشد که فرایند آزمایش مواردی مانند ارائه دادن الگو، تولید گزارش، معیار و ابزارهای سلف سرویس پایهای (baseline self-service) را ساده مینماید.
DefectDojo یک ابزار یا برنامه کاربردی امنیتی است که به زبان پایتون توسعه داده شده است. این پروژه در سال 2013 شروع و در سال 2015 بصورت منبع باز منتشر شد. این ابزار برای کاهش دردسرهای بهینهسازی ردیابی آسیبپذیریها یا vulnerability tracking optimization تعریف شد و هدف اصلی آن کاهش زمان مورد نیاز برای لاگ کردن آسیب پذیریها توسط متخصصان امنیتی میباشد.
OWASP Dependency-Check
Dependency-Check یک ابزار SCA یا همان Software Composition Analysis میباشد که تلاش میکند آسیب پذیریهای افشا شده و عمومی موجود در dependency های یک پروژه را شناسایی نماید.
این ابزار هدف خود را با تعیین اینکه آیا یک CPE یا Common Platform Enumeration برای یک dependency مشخص وجود دارد یا نه، محقق نمینماید. در صورتی که برای یک dependency یک CPE یافت شود گزارشی را ایجاد و در آن شما را به ورودی CVE مرتبط انتقال میدهد
OWASP Dependency-Track
Dependency-Track یک پلتفرم هوشمند تجزیه و تحلیل Component میباشد که به سازمانها اجازه میدهد که ریسک را در زنجیره تامین (supply chain) شناسایی و کاهش دهد. Dependency-Track با استفاده از قابلیتهای ابزار SBOM رویکردی منحصر به فرد و بسیار سودمند را در پیش میگیرد. این رویکرد قابلیتهایی را فراهم میکند که راهحلهای سنتی SCA نمیتواند به آن دست یابد.
OWASP Juice Shop
Juice Shop پروژهای که برای تمرین، توسعه فردی و انجام آزمایشات تعریف شده است.
Juice Shop یک فروشگاه ناامن انلاین است که به شما فضایی را ارائه میدهد تا فرایندهایی مانند تست نفوذ و یا تست ابزارهای ارزیابی آسیب پذیری یا vulnerability assessment را آزمایش نمایید.
این CTF شامل تمام 10 آسیب پذیری برتر OWASP و بسیاری آسیبپذیریهای دیگر میباشد. آسیب پذیریهایی که در برنامههای کاربردی دنیای واقعی یافت خواهید کرد.
OWASP Mobile Security Testing Guide
Mobile Security Testing guide که به مختصر به صورت MSTG یاد میشود دفترچه راهنمایی جامع برای تست امنیت برنامههای تلفن همراه و راهنمایی برای مهندسی معکوس برای کارشناسان و تسترهای امنیتی Android و IOS میباشد.
محتواهایی که شما در این راهنما میتوانید بخوانید عبارت اند از:
- پلتفرمهای داخلی موبایل
- آزمایشهای امنیتی در چرخه عمر توسعه برنامه موبایل
- آزمایشهای امنیتی به صورت پویا و ایستا
- مهندسی معکوس و دستکاری برنامههای کاربردی موبایل
- ارزیابی حفاظتهای پیادهسازی شده روی نرم افزار
- مواردی مفصل به منظور آزمایش مطابق با الزامات MASVS
OWASP ModSecurity Core Rule Set
ModSecurity Core Rule Set و به مختصر ModSecurity CRS مجموعهای از قوانین برای تشخیص حملات عمومی و برای استفاده با ModSecurity یا فایروالهای برنامههای کاربردی وب میباشد.
هدف CRS محافظت از برنامههای کاربردی وب در برابر طیف گستردهای از حملات، از جمله ده آسیب پذیری برتر OWASP با تمرکز بر به حداقل رسانی هشدارهای نادرست میباشد.
OWASP Nightingale
برای درک بهتر این پروژه در مرحله اول بهتر است بدانید داکر چیست.
در سادهترین تعریف پروژه Nightingale یک Docker image برای کارشناسان تست نفوذ میباشد.
Nightingale شامل تمامی ابزارهای معروف مورد نیاز برای یک پن تستر میباشد که در زمان تست به آن نیاز دارد.
لیست ابزارهای این Docker image را میتوانید از صفحه این پروژه مشاهده فرمایید.
OWASP OWTF
در ساده ترین تعریف هدف OWTF انجام آزمون تست نفوذ با ویژگیهای زیر است:
- همراستا با OTG، PTES و NIST
- کارآمد
- فراگیرتر
- خلاقانه و سرگرم کننده تر (به حداقل رساندن کار غیر خلاقانه)
و به طوری باشد که پن تستر زمان بیشتری برای موراد زیر داشته باشد:
- تفکر خارج از جعبه (Thinkign Out of the box)
- کشف و ترکیب آسیب پذیریها به صورت موثرتر
- داشتن زمان بیشتر برای بررسی آسیبپذیریهای پیچیده مانند منطق کسب و کار (business logic)، نقصهای معماری (architectural flaws) یا نشستهای مجازی میزبان (virtual hosting sessions)
- انجام فازهای تاکتیکی/ هدفمند در نواحی به ظاهر دارای ریسک
- ایجاد تاثیری واقعیتر با وجود زمانهای کمی که معمولا در اختیار کارشناسان تست نفوذ قرار داده میشود.
OWASP SAMM
پروژه SAMM که مختصر Software Assurance Maturity Model میباشد با هدف ارائه راهی موثر و قابل اندازهگیری برای تجزیه و تحلیل و همچنین بهبود چرخه عمر توسعه برنامه کاربردی امن، تعریف شده است.
SAMM از چرخه عمر توسعه برنامههای کاربردی بصورت کامل پشتیبانی میکند و اواسپ اذعان دارد که آن را به گونهای ساخته که ماهیت تکاملی و ریسک محور داشته باشد زیرا هیچ دستورالعمل واحدی وجود ندارد که برای همه سازمانها پاسخگو باشد.
OWASP Security Knowledge Framework
Security Knowledge Framework که به مختصر به صورت SKF از آن یاد میشود یک برنامه کاربردی تخت وب است که تعریفی برای اصول کدنویسی ایمن در چندین زبان محتلف ارائه میدهد. هدف OWASP-SKF این است که به شما کمک کند امنیت را با طراحی در توسعه نرم افزار خود بیاموزید و آن را با برنامه خود یکپارچه کنید تا بتوانید برنامههای بسازید که از نظر طراحی، ایمن هستند.
OWASP-SKF این کار را از طریق پروژههای توسعه نرم افزار که قابل مدیریت با چک لیستها (یعنی OWASP-ASVS، OWASP-MASVS یا حتی چک لیستهای شخصی سازی شده) و آزمایشگاهها هستند، انجام میدهد.
OWASP Security Shepherd
پروژه Security Shepherd در راستای تولید یک پلتفرم برای آموزش امنیت در برنامههای کاربردی وب و موبایل طراحی شده است. Security Shepherd برای تقویت و بهبود آگاهی امنیتی در میان باقی مجموعه مهارتهای وابسته به آمارگیری به وجود آمد و هدف آن جذب افراد مبتدی در مبحث AppSec و یا مهندسان با تجربه و تقویت مهارت تست نفوذ آنها و تبدیل آنها به متخصصان امنیتی میباشد.
OWASP Top 10
OWASP Top 10 یک استاندارد یا سند آگاهی برای توسعه دهندگان و امنیت برنامههای کاربردی وب میباشد. Top 10 یک اجماع گسترده در مورد حیاتیترین و خطرناک ترین آسیبپذیریهای سطح وب میباشد.
OWASP Web Security Testing Guide
Web security testing guide که به صورت WSTG هم یاد میشود یکی از معتبرترین و مهم ترین منابع برای توسعه دهندگان برنامههای کاربردی تحت وب میباشد
WSTG یک راهنمایی گام به گام و جامع برای آزمایش امنیت برنامههای کاربردی وب و وب سرویسها است و چهارچوبی از بهترین شیوههای تست نفوذ برای سازمانها در سراسر جهان ارائه میدهد.
این نکته قابل ذکر است که این راهنما مورد قبول شرکتها و سازمانهای ایرانی هم میباشد.
همچنین شما میتوانید با دریافت مشاوره از متخصصان امنیتی ما، سامانههای تحت وب خود را براساس این راهنمای امنیتی مورد بررسی قرار دهید.
OWASP ZAP
OWASP ZAP یا همان OWASP Zed Attack Proxy یکی از محبوب ترین ابزارهای امنیتی رایگان و که به طور فعال توسط یک تیم بینالمللی از داوطلبان نگهداری میشود. ZAP Proxy میتواند به شما در خودکارسازی شناسایی آسیب پذیریها کمک کند. شما میتوانید اینکار را حتی حین توسعه و یا آزمایش برنامههای کاربردی انجام دهید.
همچنین این ابزار میتواند به نفوذگران با تجربه کمک کند و یک تست امنیتی برای برنامههای کاربردی به صورت دستی همراه با تجربهای بهتر رقم زند.