SPM Project Report
SPM Project Report
MICRO-PROJECT REPORT ON
By
Dr. C. P. Ahir
Lecturer, Department of Computer Engineering
1
Microproject Report of Java Programming
CERTIFICATE
2
Microproject Report of Java Programming
Mission
1. To develop competent diploma engineers suitable for contemporary industrial environment.
2. To inculcate socially accepted ethics & values among budding engineers.
3. To nurture innovations and entrepreneurship.
4. To produce engineers with psychomotor & cognitive skills committed to lifelong learning.
Vision
Provide skilled professionals in Computer Engineering to contribute towards the
advancement of technology useful for society and the industrial environment.
Mission
1. Impart need-based and value-based education by providing exposure to the latest tools and
technologies in the area of computer engineering to satisfy the stakeholders.
2. Upgrade and maintain facilities for quality technical education with continuous effort for
excellence in Computer Engineering.
3. Train students with Computer Engineering knowledge to apply it in the general disciplines of
design, deployment of software, and integration of existing technologies for E-governance and
benefit of society.
4. Provide a learning ambiance to enhance innovations, problem-solving skills, leadership
qualities, team spirit, and ethical responsibilities.
3
Microproject Report of Java Programming
INDEX
1 Title Page 1
2 Certificate 2
4 Index 5
5 Figures Index 6
6 Report Part – A 7
7 Conclusion 22
8 References 23
4
Microproject Report of Java Programming
FIGURES INDEX
1 Fig 6.1 11
2 Fig 6.2 12
3 Fig 6.3 13
4 Fig 6.4 14
5 Fig 6.5 15
6 Fig 6.6 17
7 Table 6.7 21
5
Microproject Report of Java Programming
PART - A
1. Brief Introduction
Along with this, this project report also includes what are Software Security Activities,
attacks, challenges in implementing security, guiding principles, security practices, practices
to follow in every phase as well as best practices to follow. This project report is very
beneficial for those who want to learn and understand about what is SSDLC and how to
implement it in real-time software development.
6
Microproject Report of Java Programming
1 INTERNET --
7
Microproject Report of Java Programming
PART - B
1. Brief Introduction
Along with this, this project report also includes what are Software Security Activities, attacks,
challenges in implementing security, guiding principles, security practices, practices to follow in
every phase as well as best practices to follow. This project report is very beneficial for those
who want to learn and understand about what is SSDLC and how to implement it in real-time
software development.
8
Microproject Report of Java Programming
1 INTERNET --
9
Microproject Report of Java Programming
INTRODUCTION:
Software security is an idea implemented to protect software against malicious attack and
other hacker risks so that the software continues to function correctly under such potential
risks. Security is necessary to provide integrity, authentication and availability. Any
compromise to integrity, authentication and availability makes a software unsecure.
Software systems can be attacked to steal information, monitor content, introduce
vulnerabilities and damage the behaviour of software. Malware can cause DoS (denial of
service) or crash the system itself.
Software security looks to increase the integrity of software by testing and fortifying
software at the various stages and environments it moves through during the software
development lifecycle (SDLC) and following its release.
10
Microproject Report of Java Programming
11
Microproject Report of Java Programming
The most common attacks on software are Buffer overflow, stack overflow, command
injection and SQL injections. Buffer and stack overflow attacks overwrite the contents of
heap or stack respectively by writing extra bytes.
Command injection can be achieved on the software code when system commands are
used predominantly. New system commands are appended to existing commands by
malicious attack. SQL injections use malicious SQL code to retrieve or modify important
information from database servers. SQL injections can be used to bypass login credentials.
Sometimes SQL injections fetch important information from a database or delete all
important data from a database.
12
Microproject Report of Java Programming
13
Microproject Report of Java Programming
14
Microproject Report of Java Programming
The following lists some of the recommended web security practices that are more specific
for software developers.
What is SSDLC ?
Established in the late 1960s, the Secure Software Development Life Cycle (SDLC) has
grounded itself in nearly every modern software company.
The secure software development life cycle is a step-by-step procedure to develop software
with several objectives, including:
In a world overrun by devices, gadgets and electronics, security vulnerabilities can spell
disaster for people and organizations. If you’re a company, ignoring security can lead to
15
Microproject Report of Java Programming
huge financial losses. It only takes the exploitation of a single vulnerability to wreak
havoc on an organization’s systems.
In this landscape, any software developer needs to make security the key consideration at
every stage of the development life cycle.
SSLDC offers solutions to such security disasters, empowering organizations to
minimize risks and take control of their reputation and financial security significantly
more effectively. This is the main reason behind companies’ adoption of SSDLC
Planning
Requirement and Analysis
Architecture and Design
Development / Coding
Testing
Maintenance
Secure Software Development Life Cycle Processes?
While building security into every phase of the SDLC is first and foremost a mindset that
everyone needs to bring to the table, security considerations and associated tasks will
actually vary significantly by SDLC phase.
16
Microproject Report of Java Programming
The planning phase is where security and development teams get details on the project
requirements and start planning the execution of the entire project. In order to secure this phase,
developers and security experts need to think about which common risks might require attention
during development and prepare for it.
This phase translates in-scope requirements into a plan of what this should look like in the
actual application. Here, functional requirements typically describe what should happen,
while security requirements usually focus on what shouldn’t.
This is when experts should consider which vulnerabilities might threaten the security of the
chosen development tools in order to make the appropriate security choices throughout
design and development.
17
Microproject Report of Java Programming
To ensure that security considerations are also integrated into the overall project plan,
enterprises can take the following steps:
Access customer needs: Depending on the end product being designed, you need to create
a list of security requirements that need to be included as part of the entire project. One of
the primary goals of this is to not only strengthen application security, but to also make it as
easy as possible for the development team to code securely.
Incorporate industry-standards on security: Once the initial planning is completed,
developers need to include and abide by the industry-standard compliance practices and
policies. Application security features that are standard to the industry need to be included
as an essential requirement, while additional security features can be added during delivery.
So don’t go trying to roll your own authentication or session management. There are good
strong references for this, use those.
Assign responsibility for software security: Before you start development, it is vital to
have a team responsible for the application security. Assign the role to the security team
responsible for doing quality checks and test each aspect of the solution. Develop security
stories as part of the lifecycle and continually do threat modeling to feed these stories.
Choose the right architecture: When planning, developers need to think about which
common risks might require attention during development, and prepare for them.
Depending on the architecture and design of the application, security requirements need to
be included accordingly. Again, the goal is to have the architecture make it easy for the
developers to code securely and have secure code if they follow established patterns.
Teams should follow the architecture and design guidelines to address the risks that were
already considered and analyzed during the previous stages.
This phase translates in-scope requirements into a plan of what this should look like in the
actual application.
Threat modelling :
Early detection of possible threats not only reduces the likelihood of successful attacks but
also reduces costs associated with security integration for the whole project.
18
Microproject Report of Java Programming
The modelling results help teams prepare design documents identifying security
requirements and key vulnerabilities that need to be addressed for the security of the
application.
It is paramount to check and monitor possible security holes in third-party apps and apply
patches as necessary for the integrity of the whole application system.
Phase 4: Development/build/implementation
In this stage, developers build code using secure coding standards and ensure their systems
are working within the set security frameworks.
During the development phase, teams need to make sure they use secure coding standards.
While performing the usual code review to ensure the project has the specified features and
functions, developers also need to pay attention to any security vulnerabilities in the code.
Design of the various items like input, output, programs, procedures, controls, and
database.
The installation of both software and relevant hardware.
Depending on what the project is, another element involves converting between old and
new systems.
Running tests on the system.
Giving adequate personnel training on how the system should be used
Perfecting the different elements of the system to correct the issues that may linger.
Secure coding :
Secure best practices for application coding such as authentication and encryption are taken
care of in this stage.
19
Microproject Report of Java Programming
Static scanning helps discover security issues at any stage of development, making it easier
to detect and fix issues as the project evolves. Because of this, developers can test and review
code before the application is developed.
Human supervision is still needed to identify potential issues in the code that malicious
attackers could potentially exploit.
Using parameterized, read-only SQL queries to read data from the database and
minimize chances that anyone can ever commandeer these queries for nefarious purposes
Validating user inputs before processing data contained in them
Sanitizing any data that’s being sent back out to the user from the database
Checking open source libraries for vulnerabilities before using them
Phase 5: Testing
Testing phase includes security tests, application testing, penetration testing, and other
DevSecOps automation test processes.
Dynamic Scanning :
Dynamic application scanner tools (DAST) simulate hacking attempts and threats at runtime
to expose application vulnerabilities. Combined with SAST in the previous stage, DAST
adds an extra layer of testing that eliminates most security errors.
Fuzzing :
Developers generate random inputs that mimic custom patterns and check if the application
can handle these inputs. This helps build protection for problems like SQL injection, which
is essentially a form of malicious input.
Penetration Testing :
It’s always possible for the developing team to overlook certain attack scenarios that the
experience and knowledge of third-party experts might reproduce through penetration
20
Microproject Report of Java Programming
The maintenance stage is where the security teams continuously analyze and evaluate the
progress of the solution while mitigating any risks or activities that are suspicious.
Maintenance is an ongoing process in secure SDLC. It continues up until the discovery
of a new issue in the system.
The eligibility of the software for periodic updates will depend on the policies of the
company involved.
Here are some requirements of this phase of the secure development lifecycle:
There’s a need to analyze the feasibility of some elements like legal requirements, value,
technical parts, economic value, operation and scheduling need, and their relevance to the
system in the long term.
Delivering improved systems when necessary
Periodically replacing old hardware.
Providing updates for specific components to ensure they meet standards
Regularly evaluating system performance as the secure SDLC progresses
Environmental Response :
Once an application is launched, monitoring the environment and its influence on the app’s
behaviour and integrity is a critical aspect of maintenance.
An incident response plan prescribes the plans, actions, and procedures that your team must
follow in the event of a breach.
Security Checks :
Frequent security checks help protect applications from new forms of attacks and
vulnerabilities.
21
Microproject Report of Java Programming
PRACTICES DESCRIPTION
Specify your Requirements Should have precise and specific
requirements.
Vulnerabilities should be handled
appropriately and immediately.
The secure SDLC process requires specific knowledge from the developers involved.
Developers should be appropriately educated on aspects like the creation of a secure coding
guideline. Also, they should be provided with secure coding training and security awareness
22
Microproject Report of Java Programming
before the project begins. Besides, clear expectations regarding how fast issues or risks found
out are handled should be set.
The big problems are usually the more critical and demanding issues that need fixing. A good
approach would be to focus on them instead of fixing all the project’s threats or loopholes. This
is especially helpful in applications or software that are bigger. Fixing newer and smaller issues
in place of the big ones won’t be feasible in that instance. Focusing on the problems in the
secure development lifecycle helps stop problematic issues from entering production. With this
approach, they are handled on time.
One way to go about the whole secure SDLC process and succeed is to keep an open mind. This
approach should be cultivated amongst the security team working on the project as well. It will
help developers to further enhance the security of their applications.
23
Microproject Report of Java Programming
CONCLUSION
24
Microproject Report of Java Programming
REFERENCES
(1) Software development security Wikipedia:
Software Development Security
(2) Synopsis.com:
Synopsis.com
(3) Cypressdatadefence.com:
cypressdatadefence.com
(4) Synk.io:
synk.io
(5) Trio.dev :
Trio.dev
(6) Resourcesinfo.com
Resourcesinfo.com
25