170 likes | 360 Vues
Yasca. Introduction. Mã nguồn mở. Là phần mềm tích hợp “plus a little more”. Bao gồm basic front-end(CMD-Win GUI), a set of scanning plugins and report renderers, and an engine to tie them all together. Hoạt động dựa trên bộ Plugins. Plugins.
E N D
Introduction • Mã nguồn mở. • Là phần mềm tích hợp “plus a little more”. • Bao gồm basic front-end(CMD-Win GUI), a set of scanning plugins and report renderers, and an engine to tie them all together. • Hoạt động dựa trên bộ Plugins.
Plugins • Mỗi Plugins là một phần mềm mã nguồn mở được tích hợp vào Yasca. • Jlint, antiC, PMD, FindBugs…. • Nằm trong thư mục Plugins của Yasca.
Plugins • PMD Plugin: Uses PMD to parse and scan Java (and JSP) source code for issues. • JLint Plugin: Uses J-Lint to scan Java .class files for issues. • antiC Plugin: Uses antiC to scan Java and C/C++ source code for issues. • FindBugs Plugin: Uses FIndBugs to scan Java class and Jar files for issues. • Grep Plugin: Uses external GREP files to scan target files for simple patterns. • …
Run Plugins • Only Run One Plugin: yasca –p plugins/PluginName.php <target directory> • Run All Plugin: yasca <target directory> • Run All Plugin (Not one or more): yasca –px <Plugins> <target directory>
Run Plugins • Sau khi Scan, một bản Report dạng HTML được in ra ngoài Desktop. • Có thể đổi đường dẫn của Report: yasca -o z:\Yasca_Output c:\work\myproject
PMD Plugin • Biên dịch một phần mã nguồn tập tin Java và JSP. • Scan the resulting abstract syntax tree for certain patterns. • Chỉ hoạt động trên mã nguồn Java and JSP.
JLint Plugin • Sử dụng phần mềm open-source JLint v3.0. • Quét các tập tin .class đã được biên dịch. • Search: • Bug. • Inconsistencies. • Synchronization problems.
antiC Plugin • Sử dụng phần mềm open-source antiC v1.11.1. • Quét các tập tin Java and C/C++ source code. • Search: • Bug. • Inconsistencies. • Synchronization problems.
Minor Plugins • Được sử dụng khi một mô hình đã quá phức tạp. • Nằm trong thư mục plugins/default.
Minor Plugins(tt) • Weak Authentication: Được phát hiện khi những dòng gần nhau tự định nghĩa username và pass giống nhau: database.conn.username = tango44opine database.conn.password = tango44opine
Minor Plugins(tt) • Redundant Null Check: Được phát hiện khi một đối tượng được kiểm tra null trực tiếp sau khi nó đã được sử dụng trước đó: foo.bar(); if (foo != null) { ... }
Minor Plugins(tt) • Empty Catch Block: Kiểm tra các biểu thức có bắt exceptions hay không: try{ … } catch (Exception ex){ … }
Minor Plugins(tt) • Non-Standard/Outdated Libraries: • Scan all library files(.jar, .so, .dll) có phù hợp với whitelist của thư viện hiện tại lưu trong: resources/current_libraries/. • Bất cứ thư viện nào không có trong whitelist sẽ được đánh dấu.
Minor Plugins(tt) • Temporary Files: Kiểm tra tên tập tin có phải là quy ước đặt tên tạm thời hay không: VD: 'tmp', 'temp', 'dummy', or a prefix of '~$'
Minor Plugins(tt) • Cross Site Scripting: Simple via Servlets : Plugin này sẽ cố gắng tìm các ví dụ đơn giản của Cross Site Scripting trong một Servlets: class FooServlet extends Servlet { public void doPost(HttpServletRequest req, HttpServletResponse res) { String bar = req.getParameter("bar"); ... out.println("bar = " + bar); } }
Minor Plugins(tt) • External E-Mail Address: Plugin này sẽ cố gắng tìm các External E-Mail Address có trong file mã nguồn hoặc file khác: