Chuyển đến nội dung chính

Find Security Bugs với Jenkins, Maven và Sonaqube


https://find-sec-bugs.github.io/

Findsecbugs là một plugin cho việc kiểm tra các lỗi bảo mật cho một ứng dụng web chạy Java.

Plugin này có thể tích hợp với nhiếu công cụ phát triền khác nhau như : Eclipse , IntelliJ và NetBeans.

Ngoài ra nó được dùng trong CI như Jenkins và Sonar.

Bài viết này tập  trung vào việc Findsecbugs tích hợp với Maven và Jenkins.

I. Cài đặt FindBug plugin trên Jenkins.

Manage Jenkins >> Manage Plugin >> Available

Select : "FindBug Plug-in"

II. Configure Maven:

1. Cấu hình file POM:

Trong file pom.xml :
[...]
<build>
    <plugins>
        
        [...]
        <!-- SpotBugs Static Analysis -->
        <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
                <effort>Max</effort>
                <threshold>Low</threshold>
                <failOnError>true</failOnError>
                <includeFilterFile>${session.executionRootDirectory}/spotbugs-security-include.xml</includeFilterFile>
                <excludeFilterFile>${session.executionRootDirectory}/spotbugs-security-exclude.xml</excludeFilterFile>
                <plugins>
                    <plugin>
                        <groupId>com.h3xstream.findsecbugs</groupId>
                        <artifactId>findsecbugs-plugin</artifactId>
                        <version>LATEST</version> <!-- Auto-update to the latest stable -->
                    </plugin>
                </plugins>
            </configuration>
        </plugin>
    </plugins>

</build>

File: /spotbugs-security-include.xml

<FindBugsFilter>
    <Match>
        <Bug category="SECURITY"/>
    </Match>
</FindBugsFilter>


File : /spotbugs-security-exclude.xml

<FindBugsFilter>
</FindBugsFilter>
2. Chạy Scan: 
mvn compile
mvn spotbugs:spotbugs

Với :findbugs:findbugs
thì complie code trong /target/classes/
3. Phân tích kết quả: 
Offical GUI: 
mvn spotbugs:gui

XML report; 
target/findbugsXml.xml
Khi chạy scan thì kết quả xuất ra file report trong thư mục : target 
III. Build trong Jenkins: 
clean install findbugs:findbugs
Thiết lập : Build Settings : Check "Publish FindBugs analysis results"
IV: FindBug với Sonarque : 
Cài đặt FindBugs: 

Mặc định là profile là Sonar way. Bạn chọn một trong 2 profile :
FindBugs Security Audit or FindBugs Security Minimal

Chạy maven:

   mvn sonar:sonar




Tạo một custom profile thì bạn chọn repository : 
Find Sec Bugs: 


















Nhận xét

Bài đăng phổ biến từ blog này

Cách sử dụng sys.argv trong python.

Cách sử dụng sys.argv trong python. sys.argv là môt danh sách [list] trong python, nó được sư dụng khi bạn chạy một lệnh command-line nào đó trên hệ thống. Và argument này được đẩy vào script python để thực thi khi chạy câu lệnh. Ví dụ: python sys.argv arg1 arg2 Trước tiên bạn phải import mô đun sys trong script. import sys print "This is the name of the script: " , sys . argv [ 0 ] print "Number of arguments: " , len ( sys . argv ) print "The arguments are: " , str ( sys . argv ) Tên của script này : sysargv.py Số lượng arg là : 1 Arg là : ['sysargv.py'] python test1020.py 111 This is the name of the script:  test1020.py Number of arguments:  2 The arguments are:  ['test1020.py', '111']

GitHub Actions là gì ? Làm quen với GitHub Actions.

  Như ta đã biết github là nới chứa source code nổi tiếng thế giới hiện nay, ngoài github còn có gitlab, bitbucket, codecommit, ... Cơ bản github miễn phí cho người dùng developer, nếu nhu cầu sử dụng nhiều repo cũng như project có nhiều thanh viên developer tham gia thì bạn có thể mua bản nâng cao.  Về tiến trình CI/CD process, chúng ta có thể biết tới như Jenkins, Team City, Codepipeline trên AWS, ...  GitHub Actions mới ra đời gần đây , ngày 13 tháng 11 năm 2019, GitHub Actions ra phiên bản đầu tiên, trước đó khoảng 1 năm bản beta ra đời.  Tham khảo tại đây : https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/ GitHub Actions khá đơn giản, khi tiến trình build, test và deploy được viết trong một file có định dạng yaml nằm trong thư mục .github/workflows/ trong chính source code của bạn.  GitHub Actions là một event-driven nghĩa là chương trình chạy một loạt các dòng lệnh khi bạn nhận được 1 event, ví dụ mỗi lần một developer nào đó tạo một pull request cho một repositor

Trang web medium.com chết, vì sao ?

 Medium.com là trang web có những bài viết về IT, phần mềm và công nghệ nói chung rất phổ biến và chất lượng.  Nhưng khoảng 1 tuần nay không vào được bằng cả mạng viettel và 4G của Mobi phone.  Dân It thường tham khảo các bài viết trên trang này. Nhiều bài viết hay và chất lượng. là một cơ sở dữ liệu lớn cho dân IT nhưng đã bị chặn.  Các bài viết này thường thì có tính quy chuẩn và dài hơn, các topic có chất lượng hơn so với stackoverflow.  Nhưng các subdomain thì vẫn truy cập được như:  https://about.medium.com Bạn có thể tham khảo lý do vì sao medium.com bị chặn ở Việt nam. tại trang tinh tế:  Nói chung mình không thích điều này.  https://tinhte.vn/thread/website-medium-khong-truy-cap-duoc-la-do-website-chet-hay-chan-ip-viet-nam-nhi.3231608/