# Snyk vs Sonarqube - Securing your code
###### tags: `research` `devops` `security`
# Tiếng việt
## Bảo mật ứng dụng trong quá trình lập trình phần mềm
- Đây là công đoạn yêu cầu nhiều tài nguyên và cách tiếp cận khác nhau để khai thác trong suốt quá trình phát triển của sản phẩm phần mềm (SDLC)
![](https://i.imgur.com/tfL8j2v.png)(Hình ảnh của *Topdev*)
- Dựa vào hình ảnh ta thấy có 3 trình vận hành của một sản phẩm tượng ứng với nó là sản phẩm kiểm thử đi kèm
- SAST (Kiểm thử phần mềm tĩnh): Dùng trong các dự án kiểm thử Whitebox. Không cần biên dịch nên có thể là thành phần đầu tiên được triển khai. Ex: Sonarqube
- DAST (Kiểm thử phần mềm động): Dùng trong các dự án kiểm thử Blackbox. Chạy rồi mới kiểm thử như là check request, các lỗi phân tích cấu hình máy chủ, .... Ex: ZAP
- IAST (Kiểm thử phần mềm dạng tích hợp): Dùng trong các dự án graybox (Whitebox+blackbox). Cấu hình trong môi trường chạy thử nghiệm. Ex: Constrast Security
- RASP (Nôm na khá giống IDS và IPS). Dùng để có thể cấu hình trên máy chủ và bảo vệ nó theo thời gian thực. Ex Sqreen, Mod-security(Nginx)
- Dependency Scanning: Giúp tìm lỗ hỏng trong quá trình phát triển và kiểm tra ứng dụng như là các thư viện hay package được import vào hệ thống. Ex: Snyk
- Secret detection: Quét và tìm các sensitive data trên db, src, ... Ex: GitGuardian
- Do đó ta có thể thấy rằng snyk và sonarqube thuộc về 2 loại hình khác nhau **nhưng các phiên phản gần đây thì snyk có tích hợp về code analysis** nhưng vẫn chưa đáng kể
## Snyk
1. Snyk là gì?
![](https://i.imgur.com/4bPTg4S.png)
- Đây là môt công cụ cho phép tự động phát hiện và chỉnh sửa lỗ hổng bảo mật trên
- Code
- IaC
- Dependency Package
- Container
- Snyk là công cụ:
- Dễ tích hợp: có mặt trên nhiều nền tảng IDE, workflow, ...
- Giúp chỉnh sửa các lỗ nhanh chóng với 1 cú click (Không chắc chắn)
- Dễ dàng monitor code: Snyk có thể giúp monitoring code theo mỗi khoảng thời gian nhất định,...
- Lợi ích đem lại:
- Chắc chắn là đảm bảo vệ mặt an toàn thông tin.
- Tiếp ứng xử lí kịp thời vì đây là công cụ tích hợp và monitoring code.
2. Các Product nổi bật của Snyk
![](https://i.imgur.com/2bK0T8c.png)
3. Tích hợp nổi bật của Snyk
- Trên IDE thì snyk đã tích hợp trên VScode, VS, PyCharm, ...
![](https://i.imgur.com/N0b7q93.png)
![](https://i.imgur.com/kKieMjX.png)
- Dashboard tương đối dễ theo dõi
![](https://i.imgur.com/NbYgBkN.png)
- Có thể tích hợp sửa đổi vào PR để tạo patch vá
![](https://i.imgur.com/0ac3MjW.png)
## So sánh
1. Có Sonarqube rồi thì có cần snyk không ?
- Sonarqube là một công cụ rất tốt giúp handle trong việc lập trình. Giúp ta clean code, lập trình an toàn và detect những lỗi hay bug không mong muốn trong quá trình chạy. Và Sonarqube cũng có có nhiều pluggin thêm vào khá hay ho và làm được hầu hết công việc snyk có thể đảm nhiệm.
- Vậy Snyk không có tác dụng, Snyk vẫn là công cụ tiên phong giúp detect và vá các package dependecy lỗi trong code, container, k8s, ...Thì Snyk vẫn tốt hơn và việc setup snyk cũng giúp tiết kiệm thời gian hơn (just CLI và tán).
- Việc Snyk có thể sẽ hơn là việc Intergration của snyk khá ngon vì tích hợp vào IDE, Workflow(CI/CD) cũng như tự động đề xuất Fix lỗi bằng PR, tự động Monitor code trong khoảng thời gian cụ thể và có thông báo, cảnh báo, ...
2. Snyk sẽ có thể làm được vài thứ hay ho ?
- Đó là Snyk phát triển là công cụ theo xu hướng ngăn chặn package lỗi vì thế hạn chế rủi ro CVE - [ định nghĩa ở đây ](https://cve.mitre.org/) theo thời gian thực.
- Snyk là dự án đang được update và đẩy mạnh nên là có thể có thêm các cải tiến mới giúp nâng cao được dailywork về security của người sử dụng (Developer can understand Security)
- Snyk còn có một nền tảng giúp nâng cao về hiểu biết an toàn thông tin và các loại lỗi phổ biến như [Learn Snyk](https://learn.snyk.io/)
## Tổng kết
- Snyk sẽ giúp cải thiện được nhiều vấn đề trong việc đơn giản hóa việc áp dụng security vào trong quá trình phát triển phần mềm.
- Khá dễ setup cũng như tích hợp vào trong cái IDE để theo dõi các vấn đề bảo mật có trong code một cách hằng ngày.
- Synk cũng đang phát triển trở thành một SAST để có thể scaning code cũng khá tiện.
## Mô hình
![](https://i.imgur.com/C4bRq6W.png)
![](https://i.imgur.com/cBpHrd7.png)
# English
## Application security during software programming
- This is a stage that requires many different resources and approaches to exploit throughout the development of the software product (SDLC).
![](https://i.imgur.com/tfL8j2v.png)(Image by *Topdev*)
- Based on the image, we see that there are 3 operating processes of a product corresponding to it is the accompanying test product
- SAST (Static Software Testing): Used in Whitebox testing projects. No compilation required so can be the first component deployed. Ex: Sonarqube
- DAST (Dynamic Software Testing): Used in Blackbox testing projects. Run and then test such as check request, server configuration analysis errors, .... Ex: ZAP
- IAST (Integrated Software Testing): Used in graybox projects (Whitebox+blackbox). Configuration in the test run environment. Ex: Constrast Security
- RASP (Similarly similar to IDS and IPS). Used to be configurable on the server and protect it in real time. Ex Sqreen, Mod-security(Nginx)
- Dependency Scanning: Helps find vulnerabilities in the development and testing of applications such as libraries or packages being imported into the system. Ex: Snyk
- Secret detection: Scan and find sensitive data on db, src, ... Ex: GitGuardian
- So we can see that snyk and sonarqube belong to two different categories **but recent versions of snyk have integrated code analysis** but still not significant
## Snyk
1. What is Snyk?
![](https://i.imgur.com/4bPTg4S.png)
- This is a tool that allows automatic detection and correction of security holes on
- Code
- IaC
- Dependency Package
- Containers
- Snyk is the tool:
- Easy to integrate: available on many IDE platforms, workflows, ...
- Helps to edit holes quickly with 1 click (Not sure)
- Easy to monitor code: Snyk can help monitor code at certain intervals,...
- Benefits brought:
- Make sure to protect the information security side.
- Respond in a timely manner because this is an integrated tool and monitoring code.
2. Featured Products of Snyk
![](https://i.imgur.com/2bK0T8c.png)
3. Snyk . Featured Integrations
- On IDE, snyk has integrated on VScode, VS, PyCharm, ...
![](https://i.imgur.com/N0b7q93.png)
![](https://i.imgur.com/kKieMjX.png)
- Easy-to-follow dashboards
![](https://i.imgur.com/NbYgBkN.png)
- Modifications can be integrated into PR to create patch patches
![](https://i.imgur.com/0ac3MjW.png)
## Compare
1. If you have Sonarqube, do you need snyk?
- Sonarqube is a very good tool to help handle in programming. Help us clean code, program safely and detect unexpected errors or bugs during runtime. And Sonarqube also has a lot of cool add-ons that do most of the work snyk can do.
- So Snyk does not work, Snyk is still a pioneer tool to help detect and patch packages dependecy errors in code, containers, k8s, ... Then Snyk is still better and setting up snyk also saves more time ( just CLI and canopy).
- Snyk's work may be better than snyk's integration because it integrates into IDE, Workflow(CI/CD) as well as automatically suggests Fix errors by PR, automatically Monitors code in specific time period and has information. warning, warning, ...
2. Will Snyk be able to do some cool stuff?
- It's Snyk developed as a trending tool that prevents package bugs thus limiting the risk of CVE - [ defined here ](https://cve.mitre.org/) in real time.
- Snyk is a project that is being updated and promoted, so there may be new improvements to help improve the dailywork of users' security (Developer can understand Security)
- Snyk also has a platform to help improve information security understanding and common error types like [Learn Snyk](https://learn.snyk.io/)
## Summary
- Snyk will help improve many problems in simplifying the application of security in the software development process.
- Quite easy to set up as well as integrate into the IDE to monitor security issues in the code on a daily basis.
- Synk is also developing into a SAST so that scanning code is also quite convenient.
## Model
![](https://i.imgur.com/C4bRq6W.png)
![](https://i.imgur.com/cBpHrd7.png)