From Code To Customer White Paper - 2
From Code To Customer White Paper - 2
From Code To Customer White Paper - 2
Software development is a multifaceted process, with many stages in the road from code to customer.
Unlike most other software, security products consist of numerous components, some deeply integrated
into the OS and this makes solving security issues even more important – not doing so could take an entire
system down.
One of the biggest challenges in software development is avoiding what developers refer to as ‘whack-a-
mole’, an ongoing situation where the same problems keep reoccurring, again and again. This is inefficient –
and dangerous.
When the architecture of software components is done right, this situation can be avoided. And combined
with a collaborative software development lifecycle that puts security front and center of every
single step in the development process, it’s even safer. This is what Kaspersky does – we’ve adopted
a fundamental, strategic approach involving cross-team collaboration, diverse internal and external
information sources and ongoing education.
We’ve refined the entire process and the result is hands-down the best way to embed safety into our
products – and deliver the same to our customers. Continue reading to find out how we do this.
From code to customer:
The road to making our products secure
We at Kaspersky take our role as a leading security vendor seriously. In the process of developing our
products, we are guided every step of the way by the core principles that make them secure. Unlike other
software, security products consist of many components, some integrated deeply into the OS, which is
why solving security issues in our products is so important.
It’s been over two decades since we developed our first antivirus solution, and over this time we’ve gained
unique, first-hand experience in how to respond quickly and effectively to the new and evolving challenges
of the cybersecurity industry. The evolution of security products – as well as other software – occurs
in parallel with the growth of the vulnerabilities research industry. As the threat landscape continues to
develop, the structure and nature of our products become more complex, with enhancements and new
features in every release.
We understand the direct link between making a product more complex and the number of potential
vulnerabilities to be found in it. Our specialist product teams and our entire development process are
geared towards ensuring that our software engineering processes are as safe as possible. Building the
highest levels of security into our products is at the heart of what we do.
Maintenance Requirements
Analysis,
Testing
Design
Development
Fuzzing Attack Surface Analysis
Securing the development process. The first three steps in particular – planning, requirements and analysis and design –
help to avoid a ‘whack a mole’ situation.
At Kaspersky, this is where the Secure Development Lifecycle Our product security team is the entry point for R&D for
comes in, an approach which involves making security a priority all issues relating to the security risks of products and
during the development process of a product. Eliminating the infrastructure. The team is responsible for a number of critical
likelihood of a ‘whack-a-mole’ scenario during architecture tasks, including preparing the initial requirements, code auditing,
development not only eradicates ongoing problems with vulnerabilities response, risks analysis, vulnerabilities assessment,
the same vulnerabilities, it also frees up resources that can providing mitigations, fuzzing processes integration, penetration
be redeployed to work on developing other products and testing, and more. Our Anti-Malware Research Team (AMR) also
maintaining already released products. The net result is secure provides crucial input during these steps.
product architecture that has numerous advantages, including:
Product Security
How the product and product security teams interact. The security champion is an additional layer that ensures that
information from product security is correctly applied.
Product Team
Product Team
Responding to reports
Responding to vulnerabilities reports is a separate process Kaspersky involvement with the Bug Bounty program at
with a special workflow. The response process starts when we HackerOne is in response to the evolving challenges of
receive information about a potential vulnerability that may the security industry. Of course, we have our own highly
affect our products. Sometimes, we receive a report that’s specialized security researchers and architects in-house,
supposedly about a vulnerability in one of our products but is but we also recognize that external, independent security
in fact a vulnerability or weak spot inside an OS. In such cases, researchers can bring their own points of view and thinking to
we also provided an update to mitigate this situation. the process, and by letting these external researchers pentest
our products, it makes them even stronger and more secure.
We also believe that paying hackers to report vulnerabilities • User mode (Ring 3) is where the antivirus service and GUI
is right as well as smart – not doing so may see them being processes execute – the antivirus service is a high priority
tempted to sell their information to cybercriminals instead. process, while GUI is low priority.
Their qualified reports must fulfil stringent guidelines, • Antivirus drivers execute into Kernel mode (Ring 0) and
including a detailed explanation of the vulnerability they’re obtain access to the Windows kernel and all processes
reporting together with technical details and an example of a in VM (virtual memory). This kind of exploitation is highly
reliable working exploit or proof of concept. dangerous because Ring 0 has the most privileges and a
Report
submitting
Bounty Report
payout confirmation
A patch Response to
releasing researcher
Vulnerability
assessment
The scope of our Bug Bounty program currently includes successful exploitation here can lead to the entire system
Kaspersky Internet Security 2019 Beta and Kaspersky Endpoint being compromised.
Security 11. Vulnerability exploitations should apply to Windows • Some antivirus products contain special components
8.1+, and we compensate researchers for discovering Remote that work at the hypervisor level (known as Ring -1). These
Code Execution (RCE) vulnerabilities, Local Privilege Escalation components control cross-VM (virtual memory) operations
(LPE) and Information Disclosure (ID) – the latter being and provide protection from screenshotting. Exploiting a
limited to sensitive user data like passwords, payment data vulnerability at this level compromises virtual machines and
and authentication tokens. For a detailed report and working can also bypass built-in security measures (such as Device
exploit example of the <<unicorn>> vulnerability, which allows Guard and Credential Guard).
an attacker to remotely execute malicious code inside our
high-privilege process using the ‘man-in-the-middle’ vector, the
pay-out can be as high as $100k.
Ring 3
Ring 3 (high Ring 0 Ring -1
(low privileges) privileges)
AV bypass
Types of vulnerabilities found in antivirus products. Attackers use ‘AV bypass’ to circumvent major parts of a product’s protection.
The darker the cube, the more serious the level of danger
Never stop learning
As we continue to integrate secure practices into our software insights from our product security team who continuously
development lifecycle, we also encourage our developers and update their knowledge and skills with new and emerging
architects to learn about them. We combine our knowledge of practices. The result is the implementation of the following major
secure development from our existing R&D experience with vectors into our product security training:
Importance of Threat
cryptography modeling
This approach is highly beneficial to our developers and to about different areas of computer security that they may not
the company as a whole – please refer to the image below for otherwise consider and it also helps reduce the total cost of
more information. It not only encourages developers to think software maintenance and boosts our reputation.
Advantages
Сode analysis
• Lower expenses for security
updates issue
• Freeng human resources for
Secure coding products support
• Improving the reputation of the
company
• Improving developer’s skills
Сrypto
Threat modeling