- 
							
							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 C rogram Filessonarqubeconf. Bỏ comment lệnh #sonar.search.port=9001 và đổi lại thành sonar.search.port=0
rogram 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 C rogram 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.
rogram 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.shKiể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.rpmKiể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             md5Khởi động postgreasql
		Mã:
	
	sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10Kiể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
exitTả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/sonarqubeChỉ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.0Chỉ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.targetRun
		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 restartCheck 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=0Sau 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 sonarqubeSau đó 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 \
sonarqubeKhởi động với lệnh
		Mã:
	
	$ docker start sonarqubeHướ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 C
Vào trong thư mục C
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: 
			
		
	
										
										
											
	
										
									
								 
 
		 
 
		