Кіріспе
Қолданба қауіпсіздігін жақсарту үшін қабылданған шаралар. Қолданба қауіпсіздігі (қысқаша AppSec) – дамыту командаларына қауіпсіз бағдарламалық жасақтаманы әзірлеу өмірлік циклін енгізуге бағытталған барлық міндеттерді қамтиды. Оның басты мақсаты – қауіпсіздік шараларын жақсарту, соның арқасында қолданбалардағы қауіпсіздік мәселелерін анықтау, түзету және мүмкіндігінше алдын алу. Ол талаптарды талдау, жобалау, іске асыру, тексеру және техникалық қолдауды қамтитын қолданбаның толық өмірлік циклін қамтиды. Веб-қосымшалар қауіпсіздігі – ақпараттық қауіпсіздіктің веб-сайттар, веб-қосымшалар және веб-сервистердің қауіпсіздігімен айналысатын жеке саласы. Жоғары деңгейде веб-қосымшалар қауіпсіздігі қолданба қауіпсіздігі принциптерін пайдаланады, бірақ оларды интернет және веб-жүйелерге қатысты қолданады. Қолданба қауіпсіздігі сонымен қатар мобильді қосымшаларға және олардың қауіпсіздігіне назар аударады, оған iOS және Android қосымшалары кіреді. Веб-қосымшалар қауіпсіздігі құралдары – HTTP трафигімен жұмыс істеуге арналған мамандандырылған құралдар, мысалы, веб-қосымшалардың қабырғалары.
Application security (short AppSec) includes all tasks that introduce a secure software development life cycle to development teams. Its final goal is to improve security practices and, through that, to find, fix and preferably prevent security issues within applications. It encompasses the whole application life cycle from requirements analysis, design, implementation, verification as well as maintenance. Web application security is a branch of information security that deals specifically with the security of websites, web applications, and web services. At a high level, web application security draws on the principles of application security but applies them specifically to the internet and web systems. The application security also concentrates on mobile apps and their security which includes iOS and Android Applications
Web Application Security Tools are specialized tools for working with HTTP traffic, e. g., Web application firewalls.
Қадамдар
Әртүрлі тәсілдер бағдарламалық қамтамасының өмірлік циклының әртүрлі кезеңдерінде тиімді болып, қолданбадағы жасырын қауіпсіздік осалдықтарының әртүрлі топтарын анықтайды. Олардың әрқайсысы уақыт, күш-жігер, шығын және табылған осал жақтар арасындағы әртүрлі айырбас саудасын білдіреді. Жобаны қарау. Код жазылатын алдында, қолданбаның архитектурасы мен дизайны қауіпсіздік мәселелеріне қатысты қарастырылуы мүмкін. Бұл кезеңде кең таралған тәсіл – қауіптер моделін жасау. Ақ қораппен қауіпсіздік тексеруі, немесе кодты қарау. Бұл қауіпсіздік инженерінің қолданбаны терең түсінуі, бастапқы кодты қолмен қарап, қауіпсіздік кемшіліктерін анықтауы. Қолданбаны түсіну арқылы, оған тән осал жақтарды табуға болады. Қара қораппен қауіпсіздік аудиті. Бұл қолданбаны қана пайдаланып, оның қауіпсіздік осал жерлерін тексеруді қамтиды, бастапқы код қажет емес. Автоматтандырылған құралдар. Көптеген қауіпсіздік құралдарын әзірлеу немесе сынау ортасына енгізу арқылы автоматтандыруға болады. Мысалы, код редакторына немесе CI/CD платформасына интеграцияланған автоматтандырылған DAST/SAST құралдарын атауға болады. Ұйымдастырылған осал жақтар платформалары. Бұл көптеген веб-сайттар мен бағдарламалық жасақтама әзірлеушілер ұсынатын хакерлерге негізделген қолданба қауіпсіздігі шешімдері, олар арқылы адамдар қателер туралы хабарлағандары үшін танылу мен сыйақы ала алады.
Қауіпсіздікті тексеруге арналған құралдар
Қауіпсіздік сынау әдістері қолданбалардағы осалдықтар мен қауіпсіздік кемшіліктерін анықтауға бағытталған. Бұл осалдықтар қолданбаларды сыртқы шабуылдарға ұшыратуы мүмкін. Қауіпсіздік сынағы бағдарламалық жасақтаманы әзірлеудің толық өмірлік циклі (SDLC) бойына енгізілуі тиіс, осылайша осалдықтарды уақтылы және тиімді жоюға болады. Қолданбалардағы осалдықтарды анықтау үшін көптеген автоматтандырылған құралдар бар. Қолданбаның осал жерлерін анықтау үшін қолданылатын негізгі құралдардың санаттарына мыналар жатады: Статикалық қолданба қауіпсіздігін сынау (SAST) – қолданбаны дамыту кезінде қауіпсіздік кемшіліктерін анықтау үшін бастапқы кодты талдау. DAST-пен салыстырғанда, SAST қолданба орындалатын күйге келгенге дейін де қолданылуы мүмкін. SAST толық бастапқы кодқа қол жеткізе алатындықтан, ол «ақ қорап» әдісі болып табылады. Бұл толыққанды нәтижелерді қамтамасыз етеді, бірақ көптеген жалған оң нәтижелерге әкелуі мүмкін, оларды қолмен тексеру қажет. Динамикалық қолданба қауіпсіздігін сынау (DAST, көбінесе осалдық сканері деп аталады) веб-сайттарды шолу және талдау арқылы осалдықтарды автоматты түрде анықтайды. Бұл әдіс жоғары масштабируемостьға, оңай интеграцияға және жылдам орындалуға мүмкіндік береді. DAST құралдары инъекциялық қателер сияқты төменгі деңгейдегі шабуылдарды жоюға жақсырақ, бірақ логикалық немесе бизнес-логикалық қателер сияқты жоғары деңгейдегі кемшіліктерді анықтау үшін тиімді емес. Фүззинг құралдары көбінесе кіріс сынағы үшін қолданылады. Интерактивті қолданба қауіпсіздігін сынау (IAST) бағдарламалық қамтамасыз ету құралдарын пайдалану арқылы қолданбаны іштен бағалайды. Бұл SAST және DAST әдістерінің артықшылықтарын біріктіреді, сонымен қатар кодқа, HTTP трафигіне, кітапхана ақпаратына, артқы қосылымдарға және конфигурация ақпаратына қол жеткізуді қамтамасыз етеді. Кейбір IAST өнімдері қолданбаға шабуыл жасауды талап етеді, ал басқаларын қалыпты сапаны қамтамасыз ету сынағы кезінде пайдалануға болады. Орындалу кезіндегі қолданбаның өзін-өзі қорғауы қолданыстағы қолданбаларды кеңейтіп, қолданба орындалу кезінде кіргізуді анықтау және алдын алу үшін мүмкіндік береді. Тәуелділік сканерлері (Бағдарламалық құралымды талдау деп те аталады) белгілі осалдықтары бар бағдарламалық компоненттердің қолданылуын анықтауға тырысады. Бұл құралдар талап бойынша, мысалы, бастапқы кодты құру процесінде немесе мерзімді түрде жұмыс істей алады. Абстракция – күрделі нәрсені қарапайым ету идеясы. Қолданба қауіпсіздігін қызмет ретінде сынау (ASTaaS): Бұл жағдайда ұйым өз қолданбалары үшін барлық сынақтарды жүргізу үшін сыртқы компанияны тартады. ASTaaS әдетте статикалық және динамикалық қауіпсіздік әдістерін біріктіреді, соның ішінде ену сынағы және қолданбалық бағдарламалау интерфейстерін (API) бағалау. Резин – қолданба қауіпсіздігін жақсарту және осалдықтарды азайтуға арналған жаңа құрал. Бұл әзірлеушілерге қауіпсіздік мәселелерін болдырмау үшін деректер қолданба арқылы қалай ағылуы керектігі туралы ережелерді анықтауға мүмкіндік береді. Бұл саясат объектілерін ережелерді анықтау үшін, деректер ағынын бақылау үшін деректерді қадағалауды және деректер ағынының нақты нүктелерінде ережелерді тексеру үшін сүзгі объектілерін пайдалану арқылы жүзеге асырылады.
Static Application Security Testing (SAST) analyzes source code for security vulnerabilities during an application's development. Compared to DAST, SAST can be utilized even before the application is in an executable state. As SAST has access to the full source code it is a white box approach. This can yield more detailed results but can result in many false positives that need to be manually verified. Dynamic Application Security Testing (DAST, often called Vulnerability scanners) automatically detects vulnerabilities by crawling and analyzing websites. This method is highly scalable, easily integrated and quick. DAST tools are well suited for dealing with low level attacks such as injection flaws but are not well suited to detect high level flaws, e. g., logic or business logic flaws. Fuzzing tools are commonly used for input testing. Interactive Application Security Testing (IAST) assesses applications from within using software instrumentation. This combines the strengths of both SAST and DAST methods as well as providing access to code, HTTP traffic, library information, backend connections and configuration information. Some IAST products require the application to be attacked, while others can be used during normal quality assurance testing. Runtime application self protection augments existing applications to provide intrusion detection and prevention from within an application runtime. Dependency scanners (also called Software Composition Analysis) try to detect the usage of software components with known vulnerabilities. These tools can either work on demand, e. g., during the source code build process, or periodically. Abstraction is the idea of making more complex things less complex. Application security testing as a service (ASTaaS): In this scenario, the organization enlists an external company to perform all testing for their applications. ASTaaS usually combines static and dynamic security methods, including penetration testing and evaluating application programming interfaces (APIs). Resin is a new tool for improving application security and reducing vulnerabilities. It allows developers to specify rules about how data should flow through an application to prevent security issues. This is done using policy objects to define the rules, data tracking to monitor the data flow, and filter objects to check the rules at specific points in the data flow.