Security testing of any system is about finding all possible ambiguities and flaws of the system which might result in loss of information at the hands of employees or outsiders of the organization. This seminar will give you knowledge of Security Testing and related topics with simple and useful examples to help you approach it easily.
8. TECHNIQUES
7. Missing Function Level Access Control
8. Cross-Site Request Forgery (CSRF)
9. Using Components with Known
Vulnerabilities
10. Unvalidated Redirects and Forwards
12. $sql ="SELECT count(*) FROM user WHERE
username = '$username' AND password =
‘$password'";
SELECT count(*) FROM user WHERE username
= ‘thuynguyen' AND password = ‘123456’
SELECT * FROM user WHERE username =
'thuynguyen' AND password = 'something' OR '1'
Injection
13. Injection
$sql = "SELECT count(*) FROM user WHERE
username = '$username' AND password =
‘$password'";
SELECT * FROM user WHERE username =
'thuynguyen' AND password = ‘123456' OR ‘1=1'
SELECT * FROM user WHERE username =
'thuynguyen' AND password = 'something' ; DROP
TABLE Suppliers'
14. 2 - BROKEN AUTHENTICATION
AND SESSION MANAGEMENT
Security is set of measures to protect an application against unforeseen actions that cause it to stop functioning or being exploited. Unforeseen actions can be either intentional or unintentional.
Bảo mật là một bộ các biện pháp để bảo vệ một ứng dụng chống lại các hành động không lường trước khiến nó ngừng hoạt động hoặc bị khai thác. Hành động không lường trước có thể là cố ý hoặc vô ý.
A testing technique to determine if an information system protects data and maintains functionality as intended.
Một kỹ thuật kiểm tra để xác định xem một hệ thống thông tin bảo vệ dữ liệu và duy trì các chức năng như dự định.
Security testing takes the following six measures to provide a secured environment:
Confidentiality - It protects against disclosure of information to unintended recipients.
Nó bảo vệ chống lại tiết lộ thông tin cho người nhận không mong muốn.
Cross-Site Scripting (XSS)
Security Misconfiguration
Cross-Site Request Forgery (CSRF)
Unvalidated Redirects and Forwards
Integrity - It allows transferring accurate and correct desired information from senders to intended receivers.
Nó cho phép truyền tải chính xác và chính xác thông tin mong muốn từ người gửi cho người nhận dự định.
Authentication - It verifies and confirms the identity of the user.
Nó kiểm tra và xác nhận danh tính của người dùng.
Authentication and Session Management
Injection
Authorization - It specifies access rights to the users and resources.
Nó quy định quyền truy cập cho người dùng và tài nguyên.
Missing Function Level Access Control
Insecure Direct Object References
Security Misconfiguration
Sensitive Data Exposure
Missing Function Level Access Control
Availability - It ensures readiness of the information on requirement.
Nó đảm bảo sẵn sàng của các thông tin về yêu cầu.
Non-repudiation - It ensures there is no denial from the sender or the receiver for
having sent or received the message.
Nó đảm bảo không có sự từ chối từ người gửi hoặc người nhận cho đã gửi hoặc nhận tin nhắn.
You can try this very basic test on any web application:
Log into the web application using valid credentials.
Log out of the web application.
Click the BACK button of the browser.
Verify if you are asked to log in again or if you are able go back to the logged in page again.
SQL injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp.
Broken Authentication and Session Management
Kẻ tấn công có thể là những kẻ tấn công nặc danh, hoặc người người dùng sở hữu tài khoản muốn ăn cắp thông tin từ tài khoản khác.
Cross-Site Scripting (XSS)
Cross Site Scripting (XSS) là gì ? Là một kiểu tấn công cho phép hacker chèn vào những đoạn script độc hại (thông thường là javascript hoặc HTML) vào website và sẽ được thực thi ở trình duyệt người dùng.
Insecure Direct Object References
lỗi bảo mật đối tượng tham chiếu thiếu an toàn
Security Misconfiguration
Có thể là những kẻ tấn công nặc danh từ phía ngoài, hoặc người người dùng sở hữu tài khoản muốn kiểm soát hệ thống.
Kẻ tấn công sử dụng tài khoản tài khoản mặc định, trang web không được sử dụng, lỗi bảo mật chưa được vá, tập tin và thư mục không được bảo vệ để thu thâp thông tin hoặc truy cập hệ thống một cách bất hợp pháp.
Sensitive Data Exposure
Hãy xem xét đến những người sử dụng hệ thống của bạn. Liệu họ có muốn truy cập vào dữ liệu mật mà họ không được uỷ quyền không?
Thông thường, những kẻ tấn công không bẻ mật mã mà phá hoại
những thứ khác: chẳng hạn tìm các khóa, lấy các bản sao dữ liệu không được mã hóa, hoặc truy cập dữ liệu qua các kênh có thể tự động giải mã.
Missing Function Level Access Control
Hầu hết các trang web đều có 1 hàm phân quyền cho người dùng. Nhưng nếu hàm đó không được đồng bộ thực hiện đúng đắn như phía người dùng thì kẻ tấn công có thể được lợi dụng lỗ hỏng này để tấn công vào trang web với những đặc quyền cao hơn.
Thay đổi địa chỉ web để có được những đặc quyền cao hơn trong quản trị trang web. Ví dụ như đang ở mức người dùng bình thường thay đổi có thể lên mức admin.
Cross-Site Request Forgery (CSRF)
Cross-Site Request Forgery (CSRF) là cách tấn công mà kẻ tấn công sử dụng một trang web độc hại, email, blog, tin nhắn để dụ người dùng ấn vào những thành phần ở trong trang web đó như các link, ảnh ... rồi sau đó thực hiện một hành động trên một trang web tin cậy mà người dùng hiện đang được chứng thực.
Đối với CSRF để khai thác được thì người dùng phải đăng nhập vào các trang web mục tiêu - Tức là người dùng phải có chứng thực trên các trang web mục tiêu mà kẻ tấn công nhắm tới.
Mục đích tấn công:
Thực hiện các hành động người dùng không mong muốn trên các website kẻ tấn công nghĩ người dùng có chứng thực mà nó lại có lợi cho kẻ tấn công.
Using Components with Known Vulnerabilities
• Hầu như tất cả các phần của phần mềm hiện nay đều sử dụng các thành phần bên ngoài hoặc thư viện. Nó mang lại lợi thế đáng kể cho người lập trình về thời gian và công sức.
• Lỗ hổng từ các thành phần hợp thành như thư viện, framework, plug-in và các module phần mềm khác được gọi là các lỗ hổng thành phần.
Unvalidated Redirects and Forwards
• OWASP: Là các liên kết từ một trang an toàn đến một trang không an toàn.
• Google: Chuyển hướng không tin cậy đơn giản là spam hay malware.
• Microsoft: Là bất kỳ ứng dụng web nào chuyển hướng đến một URL độc hại bên ngoài
• Tóm lại: Chuyển hướng và chuyển hướng không an toàn là liên kết từ trang web tin cậy sẽ đưa người dùng đến một trang web không tin cậy để lừa đảo hoặc thu thập thông tin từ người dùng.
Application functions related to authentication and session management are often not implemented correctly
Các chức năng ứng dụng liên quan đến xác thực và quản lý phiên thường không được thực hiện chính xác
Cross-site Scripting (XSS) refers to client-side code injection attack where in an attacker can execute malicious scripts (also commonly referred to as a malicious payload) into a legitimate website or web application
Cross-Site Scripting (XSS) đề cập đến tấn công bằng mã lệnh phía máy khách, trong đó kẻ tấn công có thể thực hiện các tập lệnh độc hại (thường được gọi là payload độc hại) vào một trang web hoặc ứng dụng web hợp pháp
Security misconfiguration can happen at any level of an application stack, including the network services, platform, web server, application server, database, frameworks, custom code, and pre-installed virtual machines, containers, or storage.
Việc cấu hình sai về bảo mật có thể xảy ra ở bất kỳ cấp ứng dụng nào, bao gồm các dịch vụ mạng, nền tảng, máy chủ web, máy chủ ứng dụng, cơ sở dữ liệu, khuôn khổ, mã tùy chỉnh và các máy ảo, thùng chứa hoặc lưu trữ sẵn.
The application server comes with sample applications that are not removed from the production server
Máy chủ ứng dụng đi kèm với các ứng dụng mẫu không được gỡ bỏ từ máy chủ sản xuất
Directory listing is not disabled on the server
Kịch bản số 2: Danh sách thư mục không bị vô hiệu trên máy chủ
A cloud service provider has default sharing permissions open to the Internet by other CSP users
Nhà cung cấp dịch vụ đám mây có quyền chia sẻ mặc định mở cho người dùng CSP khác trên Internet
Content Security Policy (CSP) là chính sách bảo mật nội dung, được sử dụng để xác định các nguồn nội dung an toàn trên website mà trình duyệt có thể tải về cho người dùng.
An application encrypts credit card numbers in a database using automatic database encryption.
Một ứng dụng mã hóa số thẻ tín dụng trong một cơ sở dữ liệu sử dụng mã hóa cơ sở dữ liệu tự động.
A site doesn't use or enforce TLS for all pages or supports weak encryption
Trang web không sử dụng hoặc thi hành TLS cho tất cả các trang hoặc hỗ trợ mã hóa yếu
The password database uses unsalted or simple hashes to store everyone's passwords.
Cơ sở dữ liệu mật khẩu dùng unsigned hoặc đơn giản băm để lưu trữ mật khẩu của mọi người.
The attacker simply force browses to target URLs.
Kẻ tấn công chỉ cần lực lượng duyệt để nhắm mục tiêu URL.
Cross-Site Request Forgery (CSRF)An attack that forces an end user to execute unwanted actions on a web application
This kind of threat occurs when the components such as libraries and frameworks used within the app almost always execute with full privileges
Loại đe dọa này xảy ra khi các thành phần như thư viện và khuôn khổ được sử dụng trong ứng dụng hầu như luôn luôn thực hiện với các đặc quyền đầy đủ
By failing to provide an identity token, attackers could invoke any web service with full permission. (Apache CXF is a services framework, not to be confused with the Apache Application Server.)
Bằng cách không cung cấp mã thông báo nhận dạng, kẻ tấn công có thể gọi bất kỳ dịch vụ web nào với sự cho phép đầy đủ. (Apache CXF là một khung dịch vụ, không nên nhầm lẫn với Apache Application Server.)
Abuse of the Expression Language implementation in Spring allowed attackers to execute arbitrary code, effectively taking over the server.
Lạm dụng việc triển khai ngôn ngữ Expression trong mùa xuân cho phép kẻ tấn công thực hiện mã tùy ý, có hiệu quả chiếm trên máy chủ.
Unvalidated redirects and forwards are possible when a web application accepts untrusted input that could cause the web application to redirect the request to a URL contained within untrusted input.
Chuyển hướng không chuyển hướng và chuyển tiếp có thể xảy ra khi một ứng dụng web chấp nhận đầu vào không đáng tin cậy có thể khiến ứng dụng web chuyển hướng yêu cầu đến một URL chứa trong đầu vào không đáng tin cậy.