Technology Toolkit 2021 is a technical white paper describing core technologies that
are being researched and developed by Samsung SDS R&D Center. We would like to introduce in this paper a total of
seven technologies concerning AI, Blockchain, Cloud, and Security with details on their technical definition, key
features, differentiating points, and use cases to give our readers some insights into our work.
With the arrival of 4th industrial revolution era and digital transformation becoming a necessity rather than a
choice for organizations and businesses, non-face-to-face work environment is expanding more than ever, especially so
with Covid 19 pandemic. Moreover, as the digital transformation accelerates, life without IT is now unimaginable, but
unfortunately it has led to higher security risks and more cyber-crimes with hackers exploiting this opportunity to
launch cyber-attacks. Most of security vulnerabilities occur during the application development phase in other word,
coding, so the best way to prevent security risks would be to pay close attention from design and development
phase.
However, in today’s market wherein product lifespan is becoming shorter and the resulting burden on product
development and cost is growing, companies can easily neglect security issues. As a result, the need has become
greater for automated DevSecOps (DevOps+Security) technology that allows developers to identify and remove security
bugs in development phase. If security bug analysis and removal tool can be incorporated and automated in development
operation cycle, it will free up developers to better focus their attention on product development itself and in the
end, increase productivity and save a lot of money on troubleshooting. Nowadays, it's easy to find global leading
companies that are either adopting or internalizing such tool for their infrastructure due to these beneficial
reasons.
We have been using our very own security bug detection tool – a tool that we built using program semantic
analysis technology - for our Java program inspections for several years. Since 2020, we have added the language
support for ABAP, a de facto programming language in ERP projects, and integrated it into CAFA+, the Samsung
SDS’s standard code inspection tool for ABAP, to enable inspection for code quality and security weaknesses in a
single tool.
The security bug inspection feature offered by CAFA+ incorporates Abstract Interpretation technology, a
representative static analysis technique that analyzes codes without executing a program. In particular, Taint
Analysis built on top of Abstract Interpretation allows us to infer data inflow path by analyzing data flow. This
allows us to detect data from unreliable source such as values entered by an arbitrary user so that we could prevent
them from penetrating into sensitive areas like SQL execution statements and be exploited by an attacker. Security
vulnerabilities such as XSS, SQL Injection, and Path Traversal all are of the same type and our Taint Analysis
function allows us to perform error-free inspection that is unmatchable to simple syntax pattern inspection of the
past. CAFA+ further enhances the accuracy of detection by leveraging Variable Analysis in predicting the range of
variable values and presence of constants, and using the findings in areas such as conditional branch statements
analysis.
String user =request.getParameter('user'); Statement st = conn.createStatement(); String query ='SELECT*FROM User where userId='+user+''; ResultSet res = st.executeQuery(qyery) - executeQuery: Vulnerable funcion - (qyery): Parameters that could be problematic
CAFA+ is ABAP code quality and security vulnerability inspection tool that’s built upon our 15 years of
know-hows for ERP development and operation. We have continued to build a robust security response system, reacting
quickly to changes in SAP ABAP technology environment.
Our technology supports new HANA DB environment and the latest ABAP 7.5 syntax. It automatically identifies codes
that need to be modified for migration to HANA DB and accurately analyzes security bugs written in new ABAP 7.5
syntax.
DB : Supports ABAP code inspection in HANA DB environment: row-store DB Oracle, DB2 and column-store DB UI : Supports code quality inspection in backend area of Flore web environment and SAP GUI environment Ver : Supports new syntax-based code inspection for NetWeaver 7.5 plus (the latest ABAP version)
HANA DB Code inspeciton1. HANA DB Inspection Rule, 2. Target HANA DB, 3. Defect Derected
Our CAFA+ provides about 150 code inspection rules and this number keeps on growing thanks to years of our ERP
operation know-hows. These inspection rules allow us to provide our developers with support that they need to ensure
safe and quality coding. These rules are used to 1) check for developers’ compliance with basic development
standards, 2) address design issues like low maintainability resulting from high code complexity or improper
modularization, 3) handle performance degradation issues like codes that have the potential to be executed
indefinitely or expensive statements that are repeatedly executed, and 4) inspect abnormal termination issues like
uncaught exceptions.
We’ve listened to the voices of our on-site developers for a year concerning issues such as authentication
bypass, incorrect password use, and SQL statement injection and we used the findings towards our handling of security
defects that are occurring frequently and have high impact. We go beyond of just providing simple result to our
developers but provide easy-to-understand explanations and specific examples of counter-measures we took,
subsequently, minimizing the time and efforts that they put into their work and still enhance their work quality.
As shown below, CAFA+ offers our customers more varied functions than the default code inspection function offered in
SAP platform.
First, our tool provides about 150 code inspection rules and security vulnerability inspection function currently
applied in development and operation of ERP for Samsung Group. It enables to us to improve customers’ code
security and reinforce maintenance & repair process with inspection rules that have been refined with years of our
on-site experience.
Second, our tool scores individual inspection result and provides a quantified comprehensive quality index. Unlike
most of other tools that only provides item-by-item compliance status, CAFA+ provides quantified result in single
quality index that’s useful in setting quality gate standard.
Third, our tool can customize inspection items and action policies to meet the needs of organizations and projects at
hand. Most CAFA+ functions can be configured through SAP GUI environment familiar to ABAP developers, and
administrators are free to establish policies according to the needs, quality requirement, and on-site situation of
each project and thus boost the efficiency of project.
Fourth, developers can easily use the tool at any time with simple manipulation of menu items without leaving SAP
environment. The tool allows developers to check for issues every time they code a function or save a file and as a
result, they can acquire safe coding habit in no time.
We can use CAFA+ not only as a development security tool for SAP development projects but also as an operational
security tool for operation projects. Because it can be executed with just a few click of a button without having to
leave SAP environment, CAFA+ provides real-time quality enhancement environment where a coding developer or inspecting
operator can perform quality and security inspection using one-stop process. This helps to eliminate all the
inspection processes that are not needed thereby shortening inspection time and improving productivity in general.
Moreover, integrated batch inspection (weekly, monthly) function allows QAO and security personnel to automatically
perform full inspection of SW quality and security, leading to an improvement in work efficiency and quality
standard.
We implemented a methodology that reflects code inspection and tuning from the point when we first launched ERP
business. We built our own CAFA+ that supports the latest ABAP syntax and HANA DB environment to allow us to quickly
respond to changes in SAP technology environment. There are many individual tools that are applicable to areas such as
security vulnerability check, program structure analysis, program performance prediction, and program maturity index
measurement, but CAFA+ is the only integrated ABAP inspection platform that is capable of performing all these
functions at once.
The work that remains to be done is detecting security defects in programs written in multiple languages. An example
would be identifying potential threat where an unidentified attack code introduced in JavaScript frontend may flow
into sensitive function after it goes to ABAP backend. If we can build a technology that can link and analyze programs
written in different languages, we can inspect everything from SAP’s new frontend environment, JavaScript-based
Fiori to backend ABAP program as a single context and detect hidden security vulnerabilities more accurately.
# References
[1] Gartner, “DevSecOps: How to Seamlessly Integrate Security Into DevOps”
[2] Capers Jones, Applied Software Measurements, McGraw-Hill, 1996-2008
▶ The content is proected by law and the copyright belongs to the author.
▶ The content is prohibited to copy or quote without the author's permission.
SW Security Team at Samsung SDS R&D Center
As SW security expert at Samsung SDS, he is involved in malicious code detection and counter-attack technology and automated program analysis technology for security bug detection.
If you have any inquiries, comments, or ideas for improvement concerning technologies introduced in Technology Toolkit 2021, please contact us at techtoolkit@samsung.com.