code-quality-scanner-appsec

Chất lượng mã và Code Security Họ đã sống trong hai môi trường hoàn toàn khác nhau. Họ không nhất thiết phải như vậy.

Hầu hết các nhóm kỹ thuật đều có hai cuộc thảo luận riêng biệt về cùng một mã nguồn. Một là về bảo mật: liệu có nguy cơ tấn công SQL injection, mã bí mật được mã hóa cứng, hay một sự phụ thuộc có thể bị khai thác hay không. Cuộc thảo luận còn lại là về khả năng bảo trì: liệu chức năng này có quá phức tạp không, liệu đoạn mã này có bị trùng lặp ba lần không, liệu có đoạn mã chết nào mà không ai dám xóa hay không.

Những cuộc thảo luận này thường diễn ra trên các công cụ khác nhau, do các nhóm khác nhau vận hành, theo các lịch trình khác nhau. Một công cụ quét bảo mật sẽ chỉ ra những lỗ hổng có thể bị khai thác. Một công cụ kiểm tra chất lượng riêng biệt, thường được mua và quản lý độc lập, sẽ chỉ ra những lỗ hổng tốn kém chi phí bảo trì. Hai giấy phép, hai dashboardHai trình phân tích cú pháp cùng duyệt qua cây cú pháp trừu tượng để trả lời hai câu hỏi khác nhau.

Việc phân chia đó có cái giá của nó. Các lỗi về độ tin cậy (loại gây ra sự cố trong quá trình hoạt động, chứ không phải vi phạm an ninh) không được xử lý theo cùng một quy trình ưu tiên như các phát hiện về an ninh, bởi vì chúng nằm ngoài phạm vi của nhóm an ninh. dashboardVà khi một nhóm đã có sẵn công cụ phân tích tĩnh để kiểm tra mọi tập tin vì mục đích bảo mật, việc thiết lập thêm một công cụ thứ hai, không liên quan, chỉ để kiểm tra chất lượng mã là công việc thừa thãi và không mang lại lợi ích chung nào.

Tại sao chất lượng mã nguồn lại quan trọng (và nó khác với điều gì) Code Security)

Chất lượng mã và code security Trả lời hai câu hỏi khác nhau. Code security Kiểm định chất lượng mã nguồn đặt câu hỏi: Mã nguồn này có thể bị khai thác không? Kiểm định chất lượng mã nguồn đặt câu hỏi: Mã nguồn này có thể được bảo trì không? Một hàm có thể hoàn toàn an toàn nhưng vẫn là một mớ hỗn độn năm trăm dòng mã mà không ai muốn động đến, và một mô-đun được tổ chức tốt, dễ đọc vẫn có thể chứa một lỗ hổng tấn công nghiêm trọng. Cả hai lĩnh vực này không thể thay thế cho nhau.

Chi phí của việc bỏ qua chất lượng mã không hiển thị ngay lập tức dưới dạng vi phạm. Nó thể hiện ra chậm hơn: một nhân viên mới mất hai tuần thay vì hai ngày để thực hiện một thay đổi an toàn, một tính năng thông thường mất ba sprint vì không ai có thể dự đoán được một khối mã trùng lặp sẽ gây ra lỗi gì ở những nơi khác, một kỹ sư trực ca mất một giờ để tìm lỗi trong mã nguồn cũ lẽ ra đã phải được loại bỏ từ một năm trước. Không có điều nào trong số đó kích hoạt cảnh báo bảo mật. Tất cả đều thể hiện qua tốc độ làm việc, và đến khi nó được phát hiện trong buổi họp sprint, việc khắc phục đã tốn kém.

Đó là lý do tại sao cần phải coi trọng chất lượng như vấn đề bảo mật: không phải vì một "mùi" mã là mối đe dọa, mà vì việc để cho các vấn đề về khả năng bảo trì tích lũy mà không được giám sát sẽ khiến mã nguồn trở thành nơi các tính năng bị "chết dần chết mòn".

Phương pháp tốt hơn: Một công cụ, hai bộ quy tắc

Công cụ quét chất lượng mã của Xygeni phân tích mã nguồn để tìm các lỗi về khả năng bảo trì và độ tin cậy: các "mùi mã", vi phạm độ phức tạp, mã chết và mã trùng lặp - những mẫu này không gây ra vi phạm nhưng lại gây ra sự cố ngừng hoạt động, lỗi hồi quy và làm chậm tiến độ của nhóm.

Điểm khác biệt trong thiết kế nằm ở kiến ​​trúc, chứ không phải thẩm mỹ. Code Quality chia sẻ công cụ phân tích tĩnh của mình với... Xygeni's SAST máy quét: cùng một trình phân tích cú pháp, cùng một cấu trúc AST, cùng một cơ chế phát hiện tập tin. Điều mà nó không chia sẻ là danh mục quy tắc. Các quy tắc chất lượng được giới hạn trong phạm vi chất lượng, không phải bảo mật, và các phát hiện được hiển thị trong một phần Chất lượng chuyên dụng của nền tảng Xygeni, được tách biệt khỏi các phần khác. SAST và các bảng rủi ro bảo mật còn lại.

Kết quả: các nhóm có được cái nhìn về khả năng bảo trì và cái nhìn về bảo mật từ cùng một quá trình phân tích cơ bản, mà không cần gộp hai mối quan tâm khác nhau thành một vấn đề gây nhiễu. dashboard.

Hai cách để có được tín hiệu chất lượng trong... Pipeline

Không phải mọi tính năng "chất lượng mã" đều hoạt động giống nhau bên trong hệ thống. Nhiều tính năng như vậy CI/CD-Các công cụ chất lượng gốc là các lớp tổng hợp: Họ không tự mình phân tích mã của bạn.Chúng nhập kết quả từ bất kỳ trình kiểm tra cú pháp nào bạn đã chạy (trình kiểm tra cú pháp JavaScript, trình kiểm tra cú pháp Python, trình phát hiện trùng lặp), mỗi kết quả được định dạng lại thành một lược đồ JSON chung, mỗi lược đồ được kết nối như một thành phần riêng biệt. pipeline bước. Điều đó linh hoạt, nhưng có nghĩa là tín hiệu chất lượng của bạn chỉ nhất quán như số lượng các công cụ, định dạng và người bảo trì riêng biệt mà bạn đã ghép lại với nhau, mỗi ngôn ngữ một cái.

Công cụ quét chất lượng mã của Xygeni đi theo con đường khác: một công cụ gốc, đã hoạt động để đảm bảo an ninh, được mở rộng với một danh mục quy tắc chất lượng. Không cần cài đặt trình kiểm tra cú pháp riêng cho từng ngôn ngữ, không cần định dạng lại báo cáo, không cần duy trì công việc riêng biệt cho mỗi công cụ. Bạn chỉ cần một lệnh, một mô hình mức độ nghiêm trọng nhất quán và một... dashboard phần này, bởi vì việc phân tích ban đầu không hề được chia nhỏ theo từng công cụ.

Làm Thế Nào Nó Hoạt Động?

Công cụ Kiểm tra Chất lượng Mã (Code Quality) hoạt động như một lệnh CLI riêng biệt:

chất lượng xygeni -d [tùy chọn] (xygeni code-quality hoạt động như một bí danh.)

Nó chia sẻ mô hình tùy chọn với oxy sastVì vậy, bất kỳ ai đã sử dụng trình quét bảo mật của Xygeni sẽ nhận ra giao diện ngay lập tức:

Tùy chọn Những gì nó làm
-d, --dir Thư mục để phân tích
--detectors Chạy các ID máy dò cụ thể, hoặc mức độ nghiêm trọng và tất cả các mức độ cao hơn.
--fail-on Thoát với giá trị khác 0 ở mức độ nghiêm trọng nhất định, đối với CI/CD cổng
--baseline So sánh với mức cơ sở và chỉ trả về những phát hiện mới.
--upload Gửi kết quả lên nền tảng Xygeni.

Tạo báo cáo chất lượng mã

Quá trình quét sẽ tạo ra báo cáo chất lượng mã mà bạn có thể gửi lên nền tảng, xuất dưới dạng JSON cho các tạo phẩm CI hoặc chuyển cho trưởng nhóm mà không cần gửi trực tiếp cho họ. dashboard truy cập. Cả hai đều là lệnh một dòng:

# Quét và tải trực tiếp lên nền tảng Xygeni

xygeni quality -n MyProject –upload

# Xuất báo cáo chất lượng mã dưới dạng JSON, chỉ bao gồm các phát hiện quan trọng.

chất lượng xygeni -d –các bộ dò quan trọng –định dạng json –chất lượng đầu ra quality.json

Sau khi tải lên, báo cáo chất lượng mã đó sẽ tự động hiển thị trong mục Chất lượng của hệ thống. dashboard: Có thể lọc, với chi tiết dạng trượt cho mỗi phát hiện, đường cơ sở và hành vi báo cáo tương tự như các nhóm đã sử dụng. SAST.

Kiểm tra chất lượng song song với quá trình quét bảo mật.

Đối với các đội muốn nhận cả hai tín hiệu từ một đường chuyền duy nhất, thì SAST máy quét chấp nhận một –bao gồm chất lượng cờ:

oxy sast -d –bao gồm chất lượng

Bởi vì SAST Và Code Quality cùng chia sẻ giai đoạn phân tích cú pháp, điều này hiệu quả hơn so với việc chạy hai trình quét liên tiếp. Nó tạo ra hai báo cáo riêng biệt, bảo mật và chất lượng, và mỗi báo cáo vẫn được gửi đến thư mục riêng của nó. dashboard mục này. Cờ này thay đổi cách thức thực thi quá trình quét, chứ không phải cách sắp xếp kết quả.

Quét mà không cần kết nối

Đối với môi trường không kết nối mạng hoặc các trình chạy CI không có kết nối ra nền tảng Xygeni, các bản quét chất lượng có thể được chạy cục bộ và tải lên sau đó:

chất lượng xygeni -d -n Dự án của tôi

# …sau đó, từ một máy chủ có kết nối:

xygeni report-upload -n MyProject -r depsdoctor-quality.json

Các phát hiện được đưa vào phần Chất lượng giống hệt như từ một lần quét trực tiếp: cùng một quy trình phân loại, cùng một chính sách, cùng một hành vi cơ bản.

Tại sao việc tách biệt chất lượng khỏi bảo mật lại quan trọng

Việc gộp các "mùi mã" vào cùng danh sách mức độ nghiêm trọng với lỗ hổng có thể khai thác là điều dễ dàng. Xygeni cố tình không làm vậy. Một hàm trùng lặp và một cuộc tấn công SQL injection không phải là cùng một loại rủi ro, và việc xử lý chúng theo cùng một cách sẽ khiến các nhóm hoặc phản ứng thái quá với những vấn đề về khả năng bảo trì hoặc phản ứng không đủ với những phát hiện bảo mật thực sự. Việc giữ nguyên các danh mục quy tắc, báo cáo và... dashboard Việc tách biệt các góc nhìn nhưng vẫn sử dụng chung công cụ xử lý dữ liệu cơ bản có nghĩa là mỗi nhóm sẽ nhận được tín hiệu quan trọng đối với họ mà không cần phải trả tiền cho một công cụ phân tích tĩnh thứ hai.

Hãy thử xem: Tính năng Kiểm tra Mã (Code Quality) hiện đã có sẵn thông qua Xygeni CLI. Các nhóm hiện đang sử dụng oxy sast có thể thêm –bao gồm chất lượng đến hiện tại của họ pipeline Tóm lại, không cần cài đặt thêm công cụ mới, không mất thêm thời gian nào. dashboard để kiểm tra.

FAQ

Xygeni Code Quality là gì?

Xygeni Code Quality là một công cụ phân tích tĩnh giúp phát hiện các lỗi về khả năng bảo trì và độ tin cậy, bao gồm các vấn đề về chất lượng mã, vi phạm độ phức tạp, mã chết và mã trùng lặp. Nó chạy như một lệnh độc lập (chất lượng xygeni) và báo cáo vào một mục Chất lượng riêng biệt của nền tảng Xygeni, tách biệt với các phát hiện về bảo mật.

Chất lượng mã có giống với SAST?

Không. Chất lượng mã và SAST Chúng cùng chia sẻ một công cụ phân tích cú pháp cơ bản nhưng sử dụng các danh mục quy tắc độc lập và tạo ra các báo cáo độc lập. SAST Kiểm tra các lỗ hổng bảo mật; Kiểm tra chất lượng mã nguồn tập trung vào các lỗi về khả năng bảo trì và độ tin cậy.

Tôi có thể chạy quét chất lượng và quét bảo mật cùng lúc không?

Vâng. Chạy bộ oxy sast -d –bao gồm chất lượng Chương trình thực thi cả hai bộ quy tắc trong một lần chạy duy nhất, hiệu quả hơn so với việc chạy hai trình quét riêng biệt, vì chúng dùng chung giai đoạn phân tích cú pháp. Kết quả vẫn tạo ra hai báo cáo riêng biệt và hiển thị trong hai tệp riêng. dashboard phần.

Tôi có cần giấy phép riêng cho Code Quality không?

Việc tải lên và xem kết quả chất lượng yêu cầu quyền Code Quality, cũng chính là quyền cần thiết để chạy quá trình quét.

Code Quality có thể hoạt động mà không cần kết nối internet không?

Vâng. Quá trình quét có thể chạy cục bộ mà không cần... – tải lên gắn cờ, và báo cáo kết quả có thể được tải lên sau đó từ một máy chủ được kết nối bằng cách sử dụng Tải báo cáo xygeni lên.

sca-tools-software-composition-analysis-tools
Ưu tiên, khắc phục và bảo mật các rủi ro phần mềm của bạn
Đăng ký tài khoản miễn phí ngay.
Không cần thẻ tín dụng.

Bảo mật quá trình phát triển và phân phối phần mềm của bạn.

với bộ sản phẩm Xygeni