Harare Institute of Technology School of Information Science and Technology Dept: Information Technology
Harare Institute of Technology School of Information Science and Technology Dept: Information Technology
PART: 2.1
ASSIGNMENT 2
1. A bank has developed a new mobile banking application. The application allows users
to check account balances, transfer money, pay bills, and manage account settings.
Design a test plan to assess the security of the login and money transfer features,
Include the types of tests you would perform and the tools you would use. (13)
1. Introduction
This test plan focuses on assessing the security of the login and money transfer features of the
new mobile banking application. The objective is to ensure these features are secure from
unauthorized access and potential vulnerabilities.
2.Scope:
This test plan will focus on:
3.Objectives
4. Types of Tests
A. Authentication Tests
Brute Force Attack: Attempt multiple logins using common passwords and analyze
account lockout mechanisms.
Session Management: Test session expiration and invalidation upon logout and
inactivity.
Replay Attack Prevention: Ensure tokens are one-time use and cannot be reused by
intercepting login attempts.
B. Authorization Tests
Privilege Escalation: Ensure users with different privilege levels (e.g., standard user
vs. admin) cannot access restricted features.
Cross-Account Access: Verify that users cannot access other users' accounts or
transfer money on their behalf by altering request parameters.
Man-in-the-Middle (MITM) Attack: Simulate attacks using tools like Burp Suite or
OWASP ZAP to intercept data in transit, verifying it is encrypted.
SSL/TLS Verification: Confirm that all data transmitted between the mobile app and
server is encrypted using HTTPS with up-to-date SSL/TLS configurations.
SQL Injection: Attempt to input SQL injection strings into login and money transfer
fields to check for proper sanitization.
Cross-Site Scripting (XSS): Ensure input fields sanitize user inputs to prevent XSS
attacks, especially in user account management.
Command Injection: Check if it’s possible to inject malicious code into fields used
in the backend (e.g., account or transfer information).
API Endpoint Authorization: Test that the API endpoints related to login and
money transfer are restricted to authorized users.
Rate Limiting and Throttling: Test the app's resilience against abuse by simulating
high volumes of login and transfer requests.
Error Messaging: Verify error messages do not reveal sensitive information, which
could aid attackers in exploiting vulnerabilities.
Sensitive Data Storage: Confirm that sensitive data (e.g., login tokens) is not stored
in plaintext in local storage.
Encryption at Rest: Check that sensitive data, such as user credentials, are stored
securely on the server with encryption.
5. Testing Tools
Burp Suite - for testing authentication, API security, and data transmission security
(MITM attacks).
OWASP ZAP - for web application security testing, especially for session and input
validation tests.
JMeter - for simulating load on login and money transfer requests and testing rate
limiting.
SQLmap - for detecting SQL injection vulnerabilities in login and transfer requests.
Appium - for automating functional and security tests on the mobile application.
6. Test Execution
Each test will be executed in a staging environment using test accounts. Results, including
logs, screenshots, and error messages, will be recorded for analysis.
7. Reporting
Upon completion of the test plan, a detailed report will be created, documenting identified
vulnerabilities, severity levels, recommendations, and remediation actions.
2. Describe three challenges associated with Regression Testing in Agile environments.
[7]
Regression testing in Agile environments presents unique challenges due to the iterative,
rapid-paced nature of development cycles. Here are three key challenges:
3. Consider a program that takes three numbers as input and print the values of these
numbers in descending order. Its input is a triple of positive integers (say x, y and 2)
and values are from interval [300,7001]. Generate I. Worst case II. robust test cases.
I. Worst Case Scenarios
Worst-case scenarios test the limits of the input range and challenging cases for ordering: