-
30/08/2016
-
319
-
448 bài viết
Sonarqube - công cụ phát hiện lỗi bảo mật code cho Website
SonarQube là một nền tảng mã nguồn mở được phát triển bởi SonarSource để liên tục kiểm tra chất lượng code, review tự động với việc phân tích code để phát hiện lỗi, đoạn code không tốt, hoặc lỗ hổng bảo mật trên 20 ngôn ngữ lập trình.
Sonarqube hiện hỗ trợ các ngôn ngữ lập trình sau: Java (including Android), C#, PHP, JavaScript, C/C++, COBOL, PL/SQL, PL/I, ABAP, VB.NET, VB6, Python, RPG, Flex, Objective-C, Swift, Web and XML.
Nó được tích hợp vào công cụ phát triển Eclipse, Visual Studio, IntelliJ IDEA thông qua plugin SonarLint và tích hợp với các công cụ khác như LDAP, Active Directory, GitHub….
-----------------------------------------------------------------------------------------------------
Kiểm tra và cấu hình trước khi cài đặt trên Linux
(Yêu cầu restart sau khi cấu hình)
Kiểm tra seccomp
[imath]grep SECCOMP /boot/config-[/imath](uname -r)
Kết quả trả về mong muốn
Cài đặt các gói yêu cầu:
Java11:
Kiểm tra version sau khi đã cài xong
Postgresql10:
Kiểm tra version
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Chỉnh file pg_hba
Khởi động postgreasql
Kiểm tra postgreasql
sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
Tạo user postgres
Tải ứng dụng
Chỉnh cấu hình để kết nối db, port, webservice
Chỉnh cấu hình service
sudo vi /etc/systemd/system/sonarqube.service
Run
Check service
sudo systemctl status sonarqube
Let’s scan
Bước 2: Điền tên của Project của bạn để tạo token
Bước 3: Chọn ngôn ngữ chính cho Project của bạn
Bước 4: Thực hiện theo thứ tự:
– Chọn hệ điều hành
– Định nghĩa 1 project key
– Download Scanner tool.
Ví dụ: Git clone 1 dự án có mã nguồn mở tại đây
Các bạn cấu hình file sonar-project.properties
Sau khi config xong bạn tải file sonar-scanner về và chạy lệnh scan như ví dụ bên dưới
Pull docker & tạo file cấu hình
Sau đó chạy lệnh
Khởi động với lệnh
Hướng dẫn cài đặt trên Windows
BƯỚC 1: CÀI ĐẶT JDK 11
BƯỚC 2: TẢI CÁC PACKAGE
Các bạn giải nén tất cả và đổi tên thư mục thành sonarqube và sonar-scanner.
Copy tất cả các thư mục trên vào Program Files của ổ C.
BƯỚC 3: START SERVER CỦA SONARQUBE
Mở file sonar.properties tại Crogram Filessonarqubeconf. Bỏ comment lệnh #sonar.search.port=9001 và đổi lại thành sonar.search.port=0
Vào trong thư mục Crogram Filessonarqubebinwindows-x86-64, tìm và chạy file StartSonar.bat để bật server sonarqube lên. Sau khi chạy thành công thì vẫn để cửa sổ chứ không được tắt.
Thấy dòng chữ SonarQube is up là thành công.
Sonarqube hiện hỗ trợ các ngôn ngữ lập trình sau: Java (including Android), C#, PHP, JavaScript, C/C++, COBOL, PL/SQL, PL/I, ABAP, VB.NET, VB6, Python, RPG, Flex, Objective-C, Swift, Web and XML.
Nó được tích hợp vào công cụ phát triển Eclipse, Visual Studio, IntelliJ IDEA thông qua plugin SonarLint và tích hợp với các công cụ khác như LDAP, Active Directory, GitHub….
-----------------------------------------------------------------------------------------------------
Kiểm tra và cấu hình trước khi cài đặt trên Linux
Mã:
vi /etc/sysctl.conf
vm.max_map_count=262144
Mã:
vi /etc/security/limits.conf
* soft nproc 8192
* hard nproc 8192
* soft nofile 65536
* hard nofile 65536
(Yêu cầu restart sau khi cấu hình)
Kiểm tra seccomp
[imath]grep SECCOMP /boot/config-[/imath](uname -r)
Kết quả trả về mong muốn
Cài đặt các gói yêu cầu:
Java11:
Mã:
curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
tar zxvf openjdk-11.0.2_linux-x64_bin.tar.gz
sudo mv jdk-11.0.2/ /usr/local/
sudo vim /etc/profile.d/jdk11.sh
export JAVA_HOME=/usr/local/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile.d/jdk11.sh
Kiểm tra version sau khi đã cài xong
Postgresql10:
Mã:
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/postgresql10-libs-10.7-2PGDG.rhel7.x86_64.rpm
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/postgresql10-10.7-2PGDG.rhel7.x86_64.rpm
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/postgresql10-server-10.7-2PGDG.rhel7.x86_64.rpm
Kiểm tra version
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Chỉnh file pg_hba
Mã:
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Khởi động postgreasql
Mã:
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Kiểm tra postgreasql
sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
Tạo user postgres
Mã:
sudo passwd postgres
su - postgres
createuser sonar;
psql
ALTER USER sonar WITH ENCRYPTED password 'P@ssword';
CREATE DATABASE sonar OWNER sonar;
\q
exit
Tải ứng dụng
Mã:
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.0.zip
sudo unzip sonarqube-8.0.zip -d /opt
sudo mv /opt/sonarqube-8.0 /opt/sonarqube
sudo useradd sonar
sudo chown -R sonar:sonar /opt/sonarqube
Chỉnh cấu hình để kết nối db, port, webservice
Mã:
sudo vi /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=P@ssword
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.web.host=0.0.0.0
Chỉnh cấu hình service
sudo vi /etc/systemd/system/sonarqube.service
Mã:
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/bin/nohup /opt/java/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-8.0.jar
StandardOutput=syslog
LimitNOFILE=65536
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Run
Mã:
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
/opt/sonarqube/bin/linux-x86-64/sonar.sh status
/opt/sonarqube/bin/linux-x86-64/sonar.sh restart
Check service
sudo systemctl status sonarqube
Let’s scan
Hướng dẫn sử dụng SonarQube
Bước 1: Click vào “Login” và sử dụng tài khoản mặc định “admin” với password “admin” để đăng nhậpBước 2: Điền tên của Project của bạn để tạo token
Bước 3: Chọn ngôn ngữ chính cho Project của bạn
Bước 4: Thực hiện theo thứ tự:
– Chọn hệ điều hành
– Định nghĩa 1 project key
– Download Scanner tool.
Ví dụ: Git clone 1 dự án có mã nguồn mở tại đây
Các bạn cấu hình file sonar-project.properties
Mã:
sonar.projectKey=org.sonarqube:sonarqube-scanner
sonar.projectName=Example of SonarQube Scanner Usage
sonar.projectVersion=1.0
sonar.sources=src,copybooks
sonar.sourceEncoding=UTF-8
## Cobol Specific Properties
# comma-separated paths to directories with copybooks
sonar.cobol.copy.directories=copybooks
# comma-separated list of suffixes
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy
## Flex Specific Properties
# retrieve code coverage data from the Cobertura report
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml
# PL/I Specific Properties
sonar.pli.marginLeft=2
sonar.pli.marginRight=0
Sau khi config xong bạn tải file sonar-scanner về và chạy lệnh scan như ví dụ bên dưới
Sau khi scan xong, về lại trang chủ để xem report project của các bạnHướng dẫn cài đặt Sonarque trên docker
Pull docker & tạo file cấu hình
Mã:
docker pull sonarqube
Mã:
$ docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
Sau đó chạy lệnh
Mã:
$ docker run -d --name sonarqube \
-p 9000:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar \
sonarqube
Khởi động với lệnh
Mã:
$ docker start sonarqube
Hướng dẫn cài đặt trên Windows
BƯỚC 1: CÀI ĐẶT JDK 11
- Tải JDK 11 và cài đặt vào ổ C:Java
- Mở Control Panel, chọn Advanced System Settings
- Set JAVA_HOME: đường dẫn cài đặt JDK
- Set Path: đường dẫn chứa thư mục bin của JDK
BƯỚC 2: TẢI CÁC PACKAGE
- Tải SonarQube (bản Community)
- Tải SonarQube-Scanner (bản Windows)
Các bạn giải nén tất cả và đổi tên thư mục thành sonarqube và sonar-scanner.
Copy tất cả các thư mục trên vào Program Files của ổ C.
BƯỚC 3: START SERVER CỦA SONARQUBE
Mở file sonar.properties tại Crogram Filessonarqubeconf. Bỏ comment lệnh #sonar.search.port=9001 và đổi lại thành sonar.search.port=0
Vào trong thư mục Crogram Filessonarqubebinwindows-x86-64, tìm và chạy file StartSonar.bat để bật server sonarqube lên. Sau khi chạy thành công thì vẫn để cửa sổ chứ không được tắt.
Thấy dòng chữ SonarQube is up là thành công.
Chỉnh sửa lần cuối bởi người điều hành: