<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Development System of Application Security Testing</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Abdul</forename><surname>Razaque</surname></persName>
							<email>a.razaque@edu.iitu.kz</email>
							<affiliation key="aff0">
								<orgName type="institution">International Information Technology University</orgName>
								<address>
									<addrLine>Manas St. 34/1</addrLine>
									<postCode>050040</postCode>
									<settlement>Almaty</settlement>
									<country key="KZ">Kazakhstan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Saule</forename><surname>Amanzholova</surname></persName>
							<email>s.amanzholova@iitu.edu.kz</email>
							<affiliation key="aff0">
								<orgName type="institution">International Information Technology University</orgName>
								<address>
									<addrLine>Manas St. 34/1</addrLine>
									<postCode>050040</postCode>
									<settlement>Almaty</settlement>
									<country key="KZ">Kazakhstan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Amir</forename><surname>Akimbayev</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">International Information Technology University</orgName>
								<address>
									<addrLine>Manas St. 34/1</addrLine>
									<postCode>050040</postCode>
									<settlement>Almaty</settlement>
									<country key="KZ">Kazakhstan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Emil</forename><surname>Kovalenko</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">International Information Technology University</orgName>
								<address>
									<addrLine>Manas St. 34/1</addrLine>
									<postCode>050040</postCode>
									<settlement>Almaty</settlement>
									<country key="KZ">Kazakhstan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Dilnaz</forename><surname>Ashimzhanova</surname></persName>
							<email>ashimzhanova00@mail.ru</email>
							<affiliation key="aff0">
								<orgName type="institution">International Information Technology University</orgName>
								<address>
									<addrLine>Manas St. 34/1</addrLine>
									<postCode>050040</postCode>
									<settlement>Almaty</settlement>
									<country key="KZ">Kazakhstan</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Development System of Application Security Testing</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">F580217158AE0F737FBF561225E12F3D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-06-19T14:24+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>AST</term>
					<term>SAST</term>
					<term>DAST</term>
					<term>Django</term>
					<term>Libsast</term>
					<term>Bandit</term>
					<term>code review</term>
					<term>Semgrep</term>
					<term>JSON 1</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The main objective of the scientific work was to use theoretical and practical knowledge gained during studying at the university, as well as their further application in the development of a scientific work on the system of application security testing -AST. Various statistical data were collected on which products of this type are present on the world market, as well as on the market of Kazakhstan, analysis of the security of banks' web resources, and much more. Also, to achieve this goal, available resources associated with the algorithms of the work of statistical and dynamic analysis were studied, as well as piloting similar products from foreign vendors, which are actively used in Kazakhstan banks. In this work, libraries and tools such as Django, Libsast, Bandit, Semgrep, and other dependencies were used. During the scientific work, a corporate-level web application was developed that scans and analyzes the repository of the downloaded application to further display statistics and a summary of the vulnerabilities found, as well as methods for solving them in a single JSON format. This scientific work is aimed at implementation in the banks of the Republic of Kazakhstan and its use by security departments and code review.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>The relevance. The entry level of attackers is the application. Each application has vulnerability in cases that we are currently observed. Companies waste money on ineffective Pentest audits, which aren't effective, against which they order a system that can find and resolve all vulnerabilities. Even the largest companies have poor quality and security of source code <ref type="bibr">[1]</ref>.</p><p>The scientific novelty. The existing approaches through the use of manual auditing are too outdated, but the approach of Static Code AST is the most modern way to do this. This product will adhere to modern application security standards, as well as be able to flexibly customize the functionality for the task set by the company and the platform on which this product will be used, and integration tools. There are only a few vendors offer tools for static code analysis tools. It's easy to implement, to add a static scanner to your development pipeline and provide feedback on a potential problem.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Main part</head><p>The prepared scientific work from our team is aimed at testing application security, but we don't want to limit ourselves to SAST, or other AST. We want to present a product near to ASTO -Application security testing orchestration. Main goal of this scientific work is to provide a comprehensive protection by scanning applications for vulnerabilities, starting from static scanning, and ending with other types of scanning. Integration with software development life cycle gives needed efficiency of product, it also includes analytics of the scans. <ref type="bibr" target="#b0">[2]</ref> Process of testing code will be delegated by modules starting from SAST -static scanning code on vulnerabilities by white box testing, source code will be scanned by parsers, and scanners. SAST, it's a very old and stable type of scan, it takes responsibility for undeclared possibilities. Our SAST will employ predetermined rules, such as coding errors in the source code that must be corrected. Idea of SAST is to scan but not to start or run it. Use of opensource vulnerabilities databases will increase efficiency, and time by time, for example if some critical vulnerability will born into world, and start to infect all computers, our solution will send update to servers to find and destroy this type of vulnerabilities, or use WAF, IDS, IPS system to close this gateway before vulnerability can be used to hack to system, so it's update, upgrade and control system <ref type="bibr" target="#b1">[3]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 1: Mechanism of SAST analysis</head><p>At the final stage a system engine will be used that will work by list of vulnerabilities to find false positives and delegate them. It will be very useful for security officers who have not so much time to look at each vulnerability every time.</p><p>Profit of a scientific work product that is not framed by method of scanning application, will give effort in Kazakhstan, and worldwide against other big solutions in the market. Against comparison of other product, it will have more efficiency and more possibilities to defense scientific work by the fact that it's complex solution that customer can buy and be sure about security safety of applications <ref type="bibr" target="#b2">[4]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Technical implementation</head><p>In addition to the main Django library, also used two libraries for the regex-based pattern matching -Libsast and Bandit. To implement the semantic analysis, the Semgrep libraries were used, which can only be used in the Linux environment <ref type="bibr" target="#b3">[5]</ref>. For them, self-written various rules were independently written that meet the standards of modern actual vulnerabilities such as Log4J, NPM, etc.  In order to ensure the smooth operation of users from the very beginning, it was necessary to design the login screen as intuitively as possible. This screen is usually the first step for the user when getting acquainted with the product, moreover, security is important when authenticating users.</p><p>The user interface has been designed to be user-friendly. The initial login page uses two-factor authentication and without the possibility of registration (determined by internal security protection purposes) in this case, using the product license, a regulated number of accesses is issued. The 2FA application of Google Code Authenticator works perfectly and it correctly uses the reading of the generated tokens corresponding to the generation on the server. In the case of corporate product development, there is a field input check, which will give the user, first of all, a convenient start with the platform <ref type="bibr" target="#b4">[6]</ref>.</p><p>The EternalSec user interface looks and works as familiar to most users. The navigation step structure on the left makes it easier to move inside the platform, for a more user-friendly functionality, the ability to switch to dark-mode has been developed <ref type="bibr" target="#b5">[7]</ref>. The top panel displays information about the workspace or task selected in the left panel. Multiple users can simultaneously access the user interface through web browsers. In the same system-wide database, users have access to the same information details. The permissions provided to each user control access to tasks and objects. The home page can save the mode that the user prefers in a session variable. The view switches the mode that the user wants to use -in turn, the binding tag references this view to switch the css mode. Saving the user's theme in localStorage and every time the page loads, js-code is launched, which sets the css of the user's choice. To use the default theme, the information is stored in cookies and allows Django to deliver pages with the right theme instead of relying on js speed <ref type="bibr" target="#b6">[8]</ref>.</p><p>The Analytics section allows you to see basic statistics for all scans and compare the results of the analysis of the most common vulnerabilities.     The about section provides a timeline and general information about the beginning of product development, and planned updates, so the user is always aware of the current status of the product.</p><p>ASTO starts SAST scan by request of the user from the web interface. Users send source code of file in ZIP, RAR format, with other information, for example, name, link to a git repository.</p><p>As a server, it takes this source code zip and adds it to our database field -"FileField", and creates a new repository, with a new scan. The status function here needs to track the status of scanning to show it to the user interface. Using zip libraries, it unpacks the src path to see the source code in the needed format.</p><p>By using thread function, the application can do scanning function in the thread with the daemon, the process of scanning is in parallel, it needs technical requirements for that, but it gives the best efficiency of the functionality <ref type="bibr" target="#b8">[11]</ref>. Libraries that helped to build the scanner were: Bandit, Libsast, Semgrep, JSON.    </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Conclusion</head><p>In conclusion, to summarize the development of the ASTO scientific work, a web-based information system, and functions were created that will scan applications for information security, show how to solve issues and vulnerabilities, and determine the level and criticality of the application and be complex to customers.</p><p>In the technical part, a lot of work has been done to develop this product, various frameworks have been used like Django, tools like various packages, and libraries like libsast, bandit, and semgrep. More than 2-3 thousand lines of code have been written. Own rules for static and semantic analysis were written without being tied to a specific programming language, which makes this product crossplatform and allows it to be deployed both on Windows and Linux. The web interface also complies with all modern UI/UX design standards, providing a pleasant user experience and rich functionality. Existing resources have been extended by adding the necessary checks for their functionality.</p><p>This enterprise-level product is recommended for use in security departments of banks, regulators, as well as in integrator companies and software developers. Since this product is a modular orchestrator, it will be easy to customize it to the needs of the company, as well as integrate it into any stage of the development process.</p><p>As a result, we have a product that has assembled all the necessary things to ensure the information security of an application, and which economic efficiency is very positive. In the future, this product can compete with the current market leaders.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Example of B105 -hardcoded_password_string Custom Rule in Bandit</figDesc><graphic coords="2,117.48,616.33,360.48,113.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Example of autoescape-disabled Custom Rule in Semgrep</figDesc><graphic coords="3,117.60,72.00,360.23,158.35" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Dark/Light modes</figDesc><graphic coords="3,121.65,491.23,176.50,183.65" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Dashboard Page</figDesc><graphic coords="4,133.88,122.60,327.75,163.39" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: Scan information</figDesc><graphic coords="4,124.43,471.75,346.65,176.95" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 7 :</head><label>7</label><figDesc>Figure 7: Scan vulnerabilities listThe report page allows the user to upload data in the most readable form(.json), it was also taken into account that most often the internal security structure uses files of this type to select them in SIEM systems and scan signatures with machine code [10].</figDesc><graphic coords="5,128.73,72.00,338.05,153.50" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 8 :</head><label>8</label><figDesc>Figure 8: About</figDesc><graphic coords="5,118.10,298.90,359.29,176.65" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Figure 9 :</head><label>9</label><figDesc>Figure 9: Start scan structure</figDesc><graphic coords="5,129.00,500.69,336.84,238.55" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Figure 10 :</head><label>10</label><figDesc>Figure 10: Libsast structureLibsast library uses a pattern matcher to find vulnerabilities, this helps to scan any source code language and to increase functionality it uses python regex rule patterns to create custom patterns<ref type="bibr" target="#b9">[12]</ref>. Many popular scanners nowadays are based on the libsast library, for instance, njsscan, MobSF, etc. Results of libsast are based on a regex test of the given source code, it shows match lines, position, file path and results can be fully customized by different options. It uses JSON format to output findings.</figDesc><graphic coords="6,117.57,497.51,360.28,155.25" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Figure 11 :</head><label>11</label><figDesc>Figure 11: Bandit structure Bandit library finds security vulnerabilities only in Python code, but it can be modified to increase the number of supported languages. Using the os system package helps to start a scan and track the process, and check the conditions that you should pay attention to. Results of bandit are based on a test of abstract syntax trees of given source code, it shows match lines, position, file path, level of confidence and severity, etc. It uses JSON format to output findings. Users see results by web interface in section vulnerabilities, and source code in the right grid with a window of code. Using section reports, users or</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head>Figure 12 :</head><label>12</label><figDesc>Figure 12: Parser structure</figDesc><graphic coords="7,131.43,122.60,332.62,295.20" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_11"><head>Figure 13 :</head><label>13</label><figDesc>Figure 13: JSON structure</figDesc><graphic coords="7,118.30,452.40,358.89,226.55" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<ptr target="http://ranking.kz/ru/a/infopovody/kolichestvo-kiberatak-v-kazahstane-uvelichilos-pochti-v-3-raza-do-3-tysyach-incidentov-90-iz-nih-prihoditsya-na-botnety" />
		<title level="m">Information security incident statistics</title>
				<imprint>
			<date type="published" when="2021-01">January 2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><surname>Imperva</surname></persName>
		</author>
		<ptr target="https://www.imperva.com/learn/application-security/application-security-testing/#:~:text=Application%20security%20testing%20(AST)%20is,started%20as%20a%20manual%20process" />
		<title level="m">Application Security Testing</title>
				<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Myths and Facts About Static Application Security Testing Tools: An Action Research at Telenor Digital</title>
		<author>
			<persName><forename type="first">J</forename><surname>Garbajosa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Wang</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="24" to="48" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">What You Need To Know About Application Security Testing Orchestration</title>
		<author>
			<persName><forename type="first">P</forename><surname>Johnson</surname></persName>
		</author>
		<ptr target="https://www.mend.io/resources/blog/asto-application-security-testing-orchestration/" />
		<imprint>
			<date type="published" when="2020-12-10">December 10, 2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><surname>Nabe</surname></persName>
		</author>
		<ptr target="https://www2.deloitte.com/ch/en/pages/risk/articles/impact-covid-cybersecurity.html" />
		<title level="m">Impact of COVID-19 on Cybersecurity</title>
				<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<ptr target="https://www.ptsecurity.com/ru-ru/products/ai/" />
		<title level="m">PT Application Inspector</title>
				<imprint/>
	</monogr>
	<note>official description</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title/>
		<author>
			<persName><surname>Sonarqube</surname></persName>
		</author>
		<ptr target="https://www.sonarqube.org/" />
		<imprint/>
	</monogr>
	<note>official description</note>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<ptr target="https://rt-solar.ru/products/solar_appscreener/" />
		<title level="m">Solar appScreener</title>
				<imprint/>
	</monogr>
	<note>official description</note>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">The number of cyberattacks in the Republic of Kazakhstan increased by 20% over the year</title>
		<author>
			<persName><surname>Profit</surname></persName>
		</author>
		<author>
			<persName><surname>Kz</surname></persName>
		</author>
		<ptr target="https://profit.kz/news/61600/Kolichestvo-kiberatak-v-RK-viroslo-na-20-za-god/" />
		<imprint>
			<date type="published" when="2021-07-08">8 July 2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Cyber risk assessment in banks of Kazakhstan by Deloitte on forum &quot;Making an Impact That Matters</title>
		<imprint>
			<date type="published" when="2021-06">June 2021</date>
		</imprint>
		<respStmt>
			<orgName>ZAO Deloitte &amp; Touche CIS</orgName>
		</respStmt>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
