SKF and Newly Introduced Mobile Section

SKF and Newly Introduced Mobile Section

I have recently contributed a cool, community driven open source project and I would like to give you a brief introduction about it. 

Security Knowledge Framework (SKF) is an OWASP project which is leaded by Glenn Ten Cate and it is getting better with helps of 50+ contributors. 

The OWASP Security Knowledge Framework is an open source web application that explains secure coding principles in multiple programming languages. The goal of OWASP-SKF is to help you learn and integrate security by design in your software development and build applications that are secure by design. OWASP-SKF does this through manageable software development projects with checklists (using OWASP-ASVS/OWASP-MASVS or custom security checklists) and labs to practice security verification (using SKF-Labs, OWASP Juice-shop, and best practice code examples from SKF and the OWASP-Cheatsheets).

SKF is a well-known security source for researcher, developers, students, auditors, etc and last year I have worked to build up a new section for mobile security. You may already know, SKF has many great sources for web related attacks, and now it also covers mobile security as well.

Before I start, I would like to mention personally what I like about SKF:

  • It is both for developers and security researchers
  • It shows both theoretical and practical ways
  • It follows industry standards
  • It does not depend on some specific languages or platforms
  • And you can define your security scope with answering 'Yes/No' question sets

SKF Installation

If you want to install it to your environment, you can follow instructions from official GitHub page:

And also you can test it online:

You may just click 'Skip Login' to access page content.

SKF Mobile Part

SKF Mobile part is dedicated to mobile security controls and mostly based on two other great OWASP projects:

You may already know, MASVS is giving an overview about security requirements, and it is a little bit more theoretical. On the other hand, MSTG is more practical, and it shows how to control and test issues.

You can reach mobile security items from ‘Checklists’ or ‘Knowledgebase’ links. 

Mobile security items

Two different links representation of two different approaches. The former one shows chapter view and the latter one shows security controls itself directly.

Mobile Questionaries

‘Questionaries’ is a set of questions, and you need to answer them to find out which MASVS items you should focus on for your project. That means, you can tailor your security scope instead of focusing everything. For example, you are a mobile developer, and your application does not keep any sensitive data on the client side. Therefore, you don’t need to deal with client-side sensitive data requirements, if you pick ‘No’ for ‘Does your application keep sensitive data on the client side?’ question. The result will only show related items within your scope and ignore the rest.

An Example Case

Let’s dig up this part and work on a test case step by step. We will create a scenario, answers questionaries and review each step.

Let's say, we have a mobile chat application with following features:

  1. The application deletes chat messages after one day
  2. It does not store or keep any sensitive data on the client side. Everything is stored on the server side.
  3. It does not share any info with third parties
  4. It checks for account abnormalities
  5. It provides some level of screen privacy
  6. And users login with personal phone numbers

After this definition, let's start to find out which MASVS security controls we need in terms of data storage and privacy requirements.

Accessing URL:

Platform selection

Step 1: we need to pick which platform we will work on: Web, Mobile or even we can create our own custom checklists.

Maturity Level selection

Step 2: MASVS classifies 3 different maturity levels:

  1. Level 1 (MASVS-L1) - Standard Security: It contains generic security requirements that are recommended for all mobile apps.
  2. Level 2 (MASVS-L2) - Defense-in-Depth: It should be applied to apps handling highly sensitive data.
  3. Level 3 (MASVS-R) - Resiliency Against Reverse Engineering and Tampering: It covers additional protective controls that can be applied if preventing client-side threats is a design goal.

Higher levels always cover lower ones. For example, if you pick ‘Level 2’ for your project, it will bring 'Level 1' and 'Level 2' related items together and you will not see anything from 'Level 3'.

Category selection

Step 3: MASVS consist of 8 main categories and 80+ security items. For this example, we will pick ‘Data Storage and Privacy Requirements’. Each category has different question sets and different security requirements.

Questionnaires

Step 4: after category selection, now we should answer some questions. This will filter MASVS and bring up only items which are related with our need.

Setup selection

Step 5: We give a name to our ‘Sprint’ and click ‘Next’.

Save configurations

Step 6: and click ‘Submit’.

View results

We could successfully save our 'Sprint' and ready to see its result.

No alt text provided for this image

When we click 'view' link, it shows we should only focus on only 5 items from ‘Data Storage and Privacy Requirements’ chapter. The result depends on our answers and that defines our security scope.

You may also notice, there are 2 different icons before items. The yellow one represents 'Level 1' and the green one is for 'Level 2'. As you see, maturity level selection directly effects our results.

That is all. Now we know which security items should be in our scope.

It was just a brief introduction for mobile section of SKF. I have tried to give you an overview and I hope you liked it : )

Thank you for reading.

Mitchell DeMazza

AE | Cyclist | Father | Aspiring Sales Leader

3y

Fantastic work, congratulations!

Like
Reply
Glenn ten Cate

ING Security Chapter leader / The Linux Foundation Security Instructor

3y

Volkan Dindar First of all thank you for this amazing contribution to the SKF project! It was a pleasure working with you and you did an amazing job implementing the OWASP-MASVS project in SKF. Also all the knowledge base items you created and the questionnaire in SKF was spot on! Also I think it is very useful the page you created to showcase how Mobile developers can utilise the work you have added in SKF and enabling them to build secure mobile applications. Again many thanks and great job, we really appreciate it!

To view or add a comment, sign in

More articles by Volkan Dindar

  • Agartha - LFI, RCE, SQLi, Auth, HTTP to JS

    Agartha is a Burp extension which creates dynamic payload lists and user access matrix to reveal injection flaws and…

    3 Comments

Insights from the community

Others also viewed

Explore topics