Transcript
This transcript was autogenerated. To make changes, submit a PR.
And welcome to my talk titled Security best practices with
against common vulnerabilities. My name is Kanadin.
I'm a full stack web developer security researcher connected me
on LinkedIn. I currently work as a backend developer at Star
Technologies and a full stack of developer as a freelancer.
Let's delve into the top, so we'll be covering introduction to
Python security, commerce security threats in Python, secure coding
practices in Python authentication and authorization,
hashing and encryption in Python encryption and hashing,
Python security tools and libraries, emerging threats and future
consideration and finally a conclusion.
So let's get right into it. Section one introduction of
Python Security an overview of Python's popularity and relevance
in software development. Python was officially released on the 20
February 1991 by Python Software foundation
as the direction of video van Rosam. It has grown
considerable heights over the years up to now. In our current time in
our current time, Python ranks at number one in
the PYPL index, that is the popularity of programming
languages index. So we can see in the charts how Python
was from 2005 up to number one
in 2024 being
utilized in the development community among both engineering and computing
teams also in the advantage sector at large.
This provides efficient efficiency of Python as a
reliable development programming language. Python is
also known to be used in large scale enterprises, some of which
are listed below. So Python is used in Netflix, Google,
Reddit, Spotify, Instagram, Dropbox. These are
just a few of the numerous companies that make use of Python.
The importance of security in Python based application security
in Python web applications, applications in general has become a top
priority and a crucial aspect to consider during development.
Many Unix systems come with Python pre installed, making them potentially vulnerable
to Python scripted attacks. If a Python application running a compromised
unit space system lacks proper system measures,
it's highly suspectible to attacks that
could lead to the theft or leakage of sensitive information.
On June 5, 2012, popular social network
website LinkedIn was hacked. In this popular hack,
the passwords were of over 6.5 million users. User accounts
were stolen. Internet security experts said that the passwords were
easy to unscramble because of LinkedIn's failure to
use assault when hashing them. We'll cover that in ticker
coding practices when we go over to section three, the password
we are caught in as a result of an SQL injection attack.
These attackers, the attackers exploited common vulnerabilities in a third party
library used in LinkedIn to inject a malicious
SQL code, granted them to fast amount
of user data. LinkedIn apologized immediately and which
seems like a very efficient response to the situation,
probably after fixing the bug, most likely. See brief
on the article's purpose and structure. This presentation aims
to provide a clear and detailed insight to the essential security best practices
in Python, web applications and general Python development.
We will delve into the following areas. The common vulnerabilities and trade specific Python
applications. We cover topics like SQL injection,
cross site scripting, cross site crossford G secure
coding practices in Python we'll handle image
validation and standardization, proper use of libraries and dependencies secure
file handling avoiding common pitfalls, that is, learn how to avoid
common security mistakes that can lead to SQL eyes
and xss. From there, we'll proceed to authentication and authorization
method, the best practices implementing secure authorization schemes.
We will then give a noteworthy coverage on encryption and hashing
in Python, so let's delve into these topics.
Section two common security threats in Python an overview
of common vulnerabilities and threats specific to Python applications
recognize that modern applications are inherently susceptible to
security flaws. Some of these flaws are inherent to the
technology stack, while others are common pitfalls in programming
projects. Regardless of the source, virtually all application built with
any programming language will inevitably have security vulnerabilities.
Therefore, it falls on developers like ourselves to identify
and address these vulnerabilities before malicious actors exploit them.
Let's start with the first one. SQL injections SQL injection
SQL ICE is a common and dangerous web security vulnerability
that arises when malicious SQL code is injected into an
application's impute and subsequently sent to the database.
This allows attackers to manipulate the Internet SQL queries,
potentially granting them unauthorized access to information
or even control over the database itself.
SQL injection can have devastating consequences,
potentially leading to data theft.
Hackers can state sensitive information like usernames,
passwords, credit card information, and more.
Data manipulation. They can modify or delete data,
impacting website functionalities or causing financial losses.
System takeover in extreme cases, they might even gain full
control of database server. The next one is cross site scripting.
XSS cross site scripting is a web security vulnerability
that allows attackers to inject malicious scripts into websites.
These scripts are then executed by unsuspecting users and
browsers, potentially leading to data theft.
Attackers can still seek information like cookies, session ids, and other
data stored in the browser. Account takeover
they can hijack user accounts by capturing login credentials
or manipulating session data. The next one website defacement.
They can alter website content or redirect users to malicious websites,
which is really, really dangerous. Spreading malware they
can inject malicious code into other websites visited by the user.
Cross site request forgive CSRF
cross site request forgery, also known as CSOf, is an attack
that forces an end user to execute unwanted actions
on a web application in which they are currently authenticated.
They can have significant consequences like unauthorized transaction,
data theft, website facement. The last one we'll
cover is command injection. Command injection is a
less popular attack popular injection attack compared to
SQL injection attacks. This is because orchestrating such
an attack takes time and consideration.
However, overlooking command injection attacks can leave your system or
application vulnerable to some big threats and in some cases
lead to full system compromise. Command injection sends malicious
data into an application that can lead to a grave damage
that can lead to great damage when evaluated by the code interpreter.
Simply put, this is when an attacker is able to execute common
on your application server via a loophole in your application code.
We could also call this remote code execution data theft.
This could lead to data theft. Attackers can access sensitive information
stored on the server's file system, database and other
systems. System takeover they can gain control of
the server, allowing them to install malware, delete files,
or disrupt operations. Lateral movement they can use this
compromised server as launching points to attack other systems
on the network. Some other notable mentions includes
attackers can also leverage on misconfiguration in our Python
application, such as insecure file handling, insecure authentication,
and insecure object references.
Next section says next subsection says
examples of fast security incidents in Python
based application in Dropbox Dropbox in 2012,
a large scale phishing attack compromised over 68
million user accounts, potentially leading exposing
potentially exposing email addresses, names, and passwords
hashed, but not something Reddit. In 2018,
editor breach affected over 50 million user accounts, including usernames,
user email addresses, and passwords hashed with
SHS ShA, one considered weak
at that time. That was 2018 Yahoo. In 2014,
a series of data breaches compromised over 1 billion
user accounts, exposing various personal information,
including names, email addresses, phone numbers, and even dates.
Then the next section says understanding the risks why Python applications
are targeted Python popularity and ease of use makes
it a target for attackers due to several inherent environmental
factors. This report explores the key risks associated with
Python web applications. Key vulnerabilities
impute validation assess and sanitization inadequate
impute handling can lead to SQL injection, xss,
and command injection. Third party libraries vulnerable
libraries introduce non cybersecurity risk into
application framework specific vulnerabilities. Each framework
has unique security consideration that require authentication
that require attention. Preinstalled Python on Unix
preinstallation can be convenient but requires
consistent updates to adjust vulnerabilities. Then we
have system permissions. Improper permissions can grant unauthorized
access to sensitive files and directories.
We are going to the next section, which is section three. Secure practices
secure coding practices in Python, we start with impute validation
and sanitization. Default line defense against injections
that's what I like to call it. Impute validation is
the process of ensuring data entered by user
is valid and safe before it's been processed by the application.
This is a crucial step in ensuring a Python application against
securing a Python application against common vulnerabilities such as
SQL injections and cross site scripting.
Part of data validation which should be considered involves
the following step trimming of data imputes regular expression
and, for impute validation, enforcing the use of secure passwords
numeric reach validation drop menu selection
for impute validation, let's start with trimming of data impute.
This simply involves removing leading or trailing spaces from
user impute fields like names or addresses.
Shimming ensures consistency and avoids unintentional white
space in data storage or processing.
This makes sure to utilize string functions like trim in
Python or dedicated trimming libraries.
Regular expression regex as usually call
it and form validation validating
imputex and email addresses to ensure they follow
the standard custom formats. Using regex patterns
regex helps enforce specific constraints on data formats,
preventing invalid entries like missing ad symbols or
incorrect domain names. Libraries such as re in Python
offer rejects functionalities. Also, validation packages
like django forms also support regex based validation,
the percentages of secure passwords, checking password lengths,
character types, that is, the uppercase, lowercase numbers,
symbols, and disallowing common dictionary words.
Strong password policies prevent weak and easily
guessable passwords. Mitigated unauthorized access weeks
libraries like passlib in Python can generate
and hash passwords securely. Django uses decrypt,
an industry standard algorithm known for its high computational
costs and resistance to brute force attack.
Drop menu selection. This is also a good option to
consider as it limits the selectable options
and application predefined list. This way, invalid or unsafe
responses cannot be imputed as values. File upload
validation this is a very important step as invalid file
uploads have been known to create backdoor access or lead to reverse
shell instances. Measures to validate files on the
server side and never rely on client side validation alone.
Always maintain updated versions of file validation libraries
to ensure potential vulnerabilities to address
potential vulnerabilities, here are some detailed considerations to
take number one file type validation
implement measures to check the file
MIE MIME type to measures
it matches allowed types that is image
jpeg application Pdf format.
Consider utilizing the Django's file content type property.
Check the file extension against whitelist of permitted extensions
such as JPeg PDf using the file Txt property
in file size number two file size validation
set the maximum file size allowed for upload using
max upload size setting. Implement logic to restrict the
total combined size of uploaded files per user or
session here. These are efficient and
effective to ensuring proper and safe file upload.
These are very good practices. Malicious content
detection leverage on antivirus libraries
and all APIs to scan uploaded
files. Malicious content make use of PU to
validate the image integrity and upload potential
vulnerabilities and prevent protecting vulnerabilities like cross site
scripting attacks. Temporary storage consider
using temporary storage locations for uploaded files
before final processing and validation.
The next one we have proper use of libraries and
dependencies it is important to ensure proper
use of libraries and dependencies in our Python application to
help manage code lifecycle dependencies and outdated
library vulnerabilities. When it comes to proper management of libraries
and dependencies python development, it is necessary to state that
it's necessary that the use of poetry is
a first class solution worth mentioning and looking into.
Poetry is a tool for dependency management and packaging in Python.
Poetry basically allows you to declare libraries your
project depends on and it will manage them for you. It is worth
mentioning that poetry can also build your project
for distribution. The next subsection goes
handling sensitive data most of the time,
sensitive data includes data designed by a business
to be labeled as sensitive. This could be personal information,
biodata, or information generated by a user while on an application.
There are also information which should be generally considered
as sensitive data, such as financial information.
We can say that sensitive data is
any data that an attacker values the most. That is
definitely sensitive data, so you want to keep that data away from the attacker.
To create methods to securely handle sensitive sensitive data,
we think about what matters the most to application and
to our users question on decentralization of this data and its
security. We can as well leverage on platforms that
offer authorization as a service, platforms like payments,
IO, and piano. Steps to follow when
implementing methods to handle sensitive data we can follow
encryption, authentication, sanitization, login,
and testing. All these steps help when it comes to handling
sensitive data. Then you go to the last section,
the D section, which says secure file handling.
When it comes to handling files in python application,
they are fully important actions carried out. Let's talk about some of
them below. Number one, impute validation and sanitization.
Start by validating file names. Restrict allowed characters
and remove potentially harmful elements to prevent paths,
traversal attacks, or code injection. Since sanitize file content
depending on the context, consider techniques like antivirus
scanning, image integrity checks, or content
parsing for malicious code before processing.
Validate file types and extension. Use backlist to accept only
permitted file types such as JPEG or ptfs,
and prevent unauthorized uploads that might introduce vulnerabilities.
Number two secure storage store files in secure
locations. Employ appropriate permissions and access control
mechanisms. That is, change mode change ownership to restrict
unauthorized access. Consider temporary storage.
Use temporary directories or processing uploaded
files before moving them to permanent storage locations,
minimizing potential damage in case of vulnerabilities.
Encrypt sensitive sensitive data in files.
If files contain sensitive information, encrypt them at rest
using libraries like ferrets and then decrypt them only when
necessary. Good level best practices used context
managers the first one says use context managers
utilize context managers such as like open for opening
files to ensure proper file closing and resource management,
preventing potential vulnerabilities like leaving files open
for unauthorized access. Avoid hard coded parts very important
dynamically construct file paths based on user impute
or other variables. Certain static
parts might be exploitable.
Utilize secure libraries employ well maintained and
secure libraries for specific file handling tags e.
G. OS path for basic operations
and pillow for image manipulation
regularly update dependencies keep your Python interpreter
libraries and frameworks updated to ensure to address
potential security vulnerabilities. The next section
which says authentication and authorization the first subsection
states best practice for user authentication
in developing user authentication in
developing user authentication in python applications, here are
some best practices to be mindful of utilize when possible
number one. Secure password management a.
Strong password policies b. Secure hashing C.
Salt generation d. Multifactor authentication MFA
number two. Secure session management a.
HTTPs measures enforce HTTPs for
all communication to prevent interception of login credentials
and other sensitive data. B. Secure session tokens
use secure and unique session tokens instead of relying on
cookies alone. C. Session timeouts
use appropriate session timeouts to automatically log out inactive
users, minimizing the risk of unauthorized access d.
Secure token storage store session tokens securely
on the server side never inclined site storage d.
Number three impute validation and sanitization a.
Validate and sanitize all user imputes, that is,
prevent SQL injection, cosite scripting, and other attacks
by carefully validating and sanitizing all user imputes,
especially login credentials and search queries.
B. Rate limiting implement
rate limiting to prevent root force attacks and denial of service
attempts. These are all worth
mentioning. Secure number four secure coding practices
a. Avoid hard coded credentials. Never store sensitive information
like passwords or API keys directly on your code.
Use environment variables or secure configuration files instead.
B. Use secure libraries and frameworks.
Utilize well maintained and secure libraries like flux login
or the Django authentication system for user authentication
functionalities c. Stay updated keep your Python
interpreter libraries and frameworks updated to address potential
security vulnerabilities. Number five additional considerations
a. Use secure password. Best mechanisms allow
users to reset their password safely through image verification or other
secure methods. B. Log authentication attempts log
login attempts, including successful unfield ones, for security
monitoring and forensic analysis. C. Perform regular
security audits conduct regular security audits of your application
to identify and address potential vulnerabilities in your
user authentication system. The next subsection says implementing
secure authorization methods building for choices implementing
secure authorization mechanisms I put like kind of team
kind of thing so we have security. Your web application goes beyond
strong authentication. It requires repost
authorization mechanisms to control access and protect sensitive
data. Here is roadmap to guide your implementation. Number one,
HTTPs the essential shield encrypts all communication
between users and applications using HTTPs. This prevents
eavesdropping and ensures data integrity safeguarding
safeguarding login credentials and user and other sensitive information.
Number two strong authentication the gatekeeper
choose a robust authentication method,
ideally multifactor, to verify user identities
effectively. Don't settle for weak passwords, enforce complexity,
and regularly require password updates. Number three
authorization defining access rules implement a
granting authorization mechanism that defines who
can access what. Utilize rule based access
control, RBaC, or regular modules to
assign permissions based on user roles and attributes.
Session management vigilance guidance protect
session management use secure tokens enforce timeout for
inactive sessions and ensure proper storage
on the server side never inclined side storage number five
secure coding build with caution follow secure coding practices
avoid hard coded credentials rigorously validate and sanitize
user imputes and leverage well maintained security libraries. Remember,
a single vulnerability can breach your entire defense update
and monitoring. Number six update and monitor
internal vigilance. Keep your web application frameworks
and dependencies updated to patch vulnerabilities promptly
conduct regular cybersecurity audits and monitor application
activity for suspicious behavior practices.
Defense is key. By implementing these steps, you build secure
authorization methods mechanisms that protect your web application from unauthorized
access, data breaches, and other threats.
Remember, security is an ongoing journey, not a
destination. Stay vigilant and adapt your defenses as the
landscape evolves. Number four encryption
and hashing in python over an
overview of encryption and hashing techniques in the digital world,
protecting data is paramount. Two key techniques used for
this purpose are encryption and hashing. While goods transform
data, they serve distinct purposes. Number one encryption
reversible number one encryption encryption is reversible.
Encrypted data can be decrypted back to its original form using a secret
key. B confidentiality it protects data
confidentiality by making it unreadable to anyone without the
key. C. Common uses secure communication
HTTPs storing sensitive data on digs protecting
it files in transit popular algorithms involved
popular algorithms involve AES, RSA,
charch 20 the next one is hashing.
Hashing is one is one
way. It transforms data into a unique fixed
length stream called a hash. B integrity it
ensures data hasn't been tampered with. Any change
in the data will result in different hash. C common uses
password storage hashed not stored in plain text,
verifying file integrity digital signatures d
popular algorithms involved shall two, five, six, shard 2512
shall three and b trips. B trips are my personal favorite and
the key differences in purpose encryption focuses on confidentiality,
while hashic focuses on data integrity reversibility.
Encrypted data can be decrypted, while hash data
cannot be reversed. Computational cost hashing is generally
faster than encryption using the right
technique. The choice between encryption and hashing depends on
your specific needs. You need to access original data, use encryption
won't need to verify data integrity. Use hashing.
Want to combine boots? Use salting with hashing for password
storage. That is, add random string to the password before
hashing, making it even harder to crack. Remember,
both encryption and hashing are essentially essential
tools for data security. Choose the right technique based on specific
needs. Keep your eyes and embroidery secure.
Now implementing encryption and hashing in python application.
So let's go to code
sample we have.
So in this code sample,
I would quickly change to my
so first of all, we have our Python environments created.
Let's change to our python environments
to check. While it's
doing that, let me create an encryption py.
This is where we test our encryption. We'll have our
hash hashing py.
So let's quickly install.
Let's also install cryptography.
These are important it
so let's start with encryption that is installed
so we can get cryptography.
This is our module
import and
it so let's start first
of all by creating a cipher key, useful encryption so
printers generates generates
key. Then we have Sephora
suites
in our key,
which I've created here. Now let's encrypt
our message.
So let's create a message set.
This message invites. This is the
confidential text
received from NSA.
Encrypted encrypt.
So this way, we encrypt our message.
Now let's decrypt this same message.
Decrypt our message.
Decrypted message.
So we still call our cipher suits decrypt,
passing our encrypted message.
So in this case, we'll print our
message just
so. Here we print it.
It. Encrypted message.
Encrypted message. I've encrypted
message here.
For this we shall do decode
to get it to print.
Let's not forget to save the file.
Yeah. So this is the confidential text from
the NSA. Original message. Then we encrypted it.
This is the encryption, and then we
decrypted the text again. So it works
very well. This is a very good method. So it lies in our
python applications or python
projects, in case you're working with.
Working with a framework that doesn't. You don't
understand the essay, you don't understand the encryption
method or the hashing method. So you want to use your own.
You can easily use this method, which has been shown here,
to encrypt your information, and you can make it more, much more difficult
depending on what you want to do with it. So now let's work on the
hashing. So, to get our hashing working,
we import hashlib. Let's import recrypt.
Let's also import random.
Now let's get our data to hash. Let's see
this. Let's make the page data. This is
data from my
father. Now let's hash
this sh two five
six. Apologies.
Using the shift button down there. So we
call it the sh two five six hash,
because in this case, we want to hash it using
the sh two five six algorithm we'll call hashlib.
I'll do sh two five six, and we'll pass
our data in it. In here, we'll simply
then say digest.
Hex. Digest as to converts it.
So this is our hash data, which will print
very soon. Now let's hash with sha
two five six. This time with
salts. So this basically makes
good hash
data much more difficult to crack.
So in this case, we created some random bits and give it to five six
value there. Sh two five six hash.
It's called sh
two five six data. And here
we simply just provide this to bytes to
byte. This is currently in a string format, and we have
a data in a string format. So that's in a byte.
Format. So let's convert this to bytes
and simply xhs.
Now that is for just using the hash leap
to hash. So now let's make use of let's hash with
bcrypts. I mentioned Bcrypt because even
in the jungle I'm going to look at my node applications. I still make sure
to use decrypt because it really makes your passwords
really complex, gives that complex feeling.
So let's work with BcrypTW,
most likely password pass our data,
and let's pass bcrypt gen salt.
Let's generate assault so
you can actually add your own custom values there. But let's just use the
default one provided by,
let's call this shard two five six hash.
Have this as shut five six hash and
I will simply create a new line.
Let me duplicate that. And this
is big ribs hash.
Call this bgrib with
save this and let's run our code
python.
So as you can see, the bitcrypt looks
a lot more complicated. We're having
full stops, we're having dollar signs, we're having slash. On the other hand,
Sha is just numerals,
and I don't think I even see
capital letters here. It's just a bunch of small
letters and numbers. First one is just numbers. Second one is
just numbers and letters too. But we
get the point. So these are very good methods
that we can use for creating hashing and encryption of
messages, text, whatever information you want to secure.
I hope that was a good example
for you, and you really understood that. So now
let's come back to our talk. So I've gone through implementing
encryption and hashing in Python application.
Let's now go to best practices for storage for secure
storage of password and sensitive information protecting
sensitive information, especially password discretion for any application.
There are some clear some practices. Number one, never store passwords
in plain text. Never do that. Use secure hashing
with salting, just like I showed you. So verify password.
Securely store hashes and salt securely utilize environment
variables or secure configuration files to store hashes and salts
not directly on your code. Consider utilizing password management systems
for additional cybersecurity. There are other libraries you can leverage on for that,
use secure frameworks and libraries. The Django and Flux offer
builtin's passwords action mechanisms.
Utilize libraries like passlive for password advanced
password hashing features. Then the last one,
encrypt sensitive data. For data beyond
passwords, consider encryption libraries like Frenet
or cryptography for secure storage and transmission.
So number five, we have Python security tools
and libraries. So number one, here we have
introduction our first subsection, we have introduction
to security focused libraries in Python. So in
the ever evolving landscape security landscape, Python developers have
access to rich ecosystem of libraries that empower secure coding practices.
This note delves into the strength and use
case of several prominent libraries offering
guidance on how they can enhance the security of your Python application.
So number one, we have cryptography. Core features
include facility cryptography operations including symmetric
inclusion, escape 20,
asymmetric encryption, RSC, ECC hashing.
Also sharp two, five, six on bitcrypt message
authentication quotes. We have HMTC
and digital signatures.
The next one we have security use cases securely store and
transmit sensitive data implements user authentication and
authorization mechanisms digitally sign and verify
files to ensure integrated integrity securely communicates
over networks using TLS
and SSM as transport layer security and secure
socket layer. So we have Nmap.
Core features include network discovery scanning,
including port scans, os detection, service identification,
viability detection limited,
and packet sniffing. So use case security use case here is
identify potential security vulnerabilities in your network infrastructure enumerate
services running on remote hosts to access potential
attack vendors. Gather network intelligence for penetration testing
and security assessment. Then, number two, we have ScaPI.
Core measures include network packet manipulation,
crafting sniffing analysis, supporting various network
layers and protocols, TCP IP,
Internet security use, case develop and
test custom network cybersecurity tools for intrusion detection,
penetration testing, network forensics. This involves
analyzing network traffic to identify suspicious activity of
protocol deviation, crafting custom network packets,
vulnerability protecting, and network force. Number four,
we have core features. Number four, we have impact packets,
a package that I really, really care about.
The core features include interact with network protocols
like SMB, file sharing, RPC,
DcerPC, and active directory,
primarily used for Windows systems. Cybersecurity use
case includes automate penetration testing and variability
assessment in Windows environments,
perform credentialed attacks and
post exploitation activities after gaining initial access,
extract information from network shares and active directory from
security analysis. So analysis and demonstration of
security tools and integration
of usage examples within I'll
cover this integration and use examples within
Python project, so I'll cover this while we have done
almost done with most of the topic talk.
So number section six
emergent threats and future constraint okay, as we are coming
closer to the end of it, what are some emergent threats
and future constraint? Anticipating and mitigating
emerging trades so, a rapid evolution in technology
and the evergreen attack surface make anticipating
and mitigating emerging threats crucial for any Python
developer. This article here explores
key strategies to stay ahead of the curve and measures robust
security in your project number one involves identifying potential
threats. Next under
the sublist include staying informed. Regularly follow security
news and updates on vulnerabilities affecting Python libraries,
frameworks and dependencies. Subscribe to security
advisories and mailing list of prominent
Python projects. Another thing to do is to
join Python communities. We have them on discord slack
all around. I think also on Twitter we can find Python communities to
join and get engaged. Understand attack vectors
familiarize yourself common attack vectors targeting
Python applications such as SQL injection, XSS code injection,
and vulnerabilities in external libraries.
Proactive threat modeling to
conduct threats modeling exercises for your application
to identify potential attack surfaces and vulnerabilities early in
the development process. Mitigating risk that's number two,
secure how to not mitigate risk now secure
coding practices fully established secure coding practices
like input validation, output encoding, proper error
handling secure password management use libraries like cryptography
for encryption and passlik for password hashing.
Next one dependency management choose secure,
well maintained libraries and frameworks regularly update your dependencies parts
known vulnerabilities. Utilize tools like tree
for dependencies, but visualization and vulnerability
analysis okay, we serve secure configuration ensure
the application configuration is secure evolving exposure
of sensitive information use environments vulnerabilities
for storing secret secrets instead of hardcoding them
in code. Continuous monitoring implementing login
and monitoring system to detect suspicious activity
and potential incidents tools like
elk stack or gridlock can be helpful
to concentrate log management and analysis.
Penetration testing conduct regular penetration testing of
your application to identify and address exploitable vulnerabilities.
Utilize tools like metasploits Kali Linux
for penetration testing exercises. Always make sure to
do things like this with the team so that you don't
just be working alone and you get point of views of other
people in case you're missing something. Staying ahead of the code.
That's number two, staying agile and adaptable being prepared
to adapt to security practices based on the latest
threats and vulnerabilities. Emerging threats are constantly evolving,
so continuous learning and adaptation are key.
The next one says leverage community resources like I mentioned earlier,
participate in community security, Python security community.
Utilize forum mailing list and security conferences to stay informed,
share knowledge, and learn from others experience. Last one says embrace
security automation, automate security tasks and tasks
like dependency scanning, vulnerability passion, and configuration management
for improved efficiency and consistency. Remember,
security is an ongoing process, not a one time fix.
By adopting these strategies, you can practically anticipate,
imagine threats, mitigate risk, and build more
secure Python applications, which is the goal. So some
additional tips to mention consider using secure coding
frameworks frameworks like the Django Flags
pyramid offer built in security features
that can help protect against common vulnerabilities. Number two,
educate your team. Make sure to get your team first of all,
encourage your development team to follow secure coding practices and
stay up to date on security threats. Utilize cloud
services following up
security threats a good mining service that can follow is the hacker news.
It's worth mentioning, so they give quality and top notch
news on the latest data breaches and hacking news
generally. So the next one says it's lice. Cloud security services
Cloud platforms like AWS, Azure and GCP
offer various security features that can benefit your Python
applications. So b future lookout
for Python security practices and advancements here
are some key points to consider. Growing security awareness
okay, so the binary community is increasingly aware
of security concerns, leading to a greater focus on security on secure
coding practices, vulnerability management and threats mitigation
strategies security focused libraries and frameworks
like cryptography, passlib, and bandits are seen wider adoption
and development take a course on YouTube take a course
on coursera anywhere you can find probably udemy. There are
lots of courses that talk about these frameworks and how they can be used properly,
so you know how to utilize them in your Python applications and
make more secure and more strategies.
Python applications so educational resources
and training programs on Python security are becoming more readily
available. So just with the amount of money
you can get these courses and get certified in
them also and have the knowledge. So number two states
advanced security tools and techniques static code
analysis tools continued advancements in tools like
bandits, flake aids, PY links will enable practices,
identification and prevention of security vulnerabilities in code.
The next one says AI power, threats, detection, machine learning
and artificial intelligence will play a bigger role, analyzing code traffic,
network traffic, and log data to detect and respond to security
events in real time. Next one says quantum
resistance cryptography as
quantum computing evolves, any cryptographic algorithms
and libraries will be developed to ensure the security of data and
communication. The third one is integration with development workflows.
Security will become more seamlessly integrated into development
processes with tools and embedded practices
embedded in CI CD continuous integration,
continuous development pipelines, and automated testing frameworks.
Security considerations will be evolving into all aspects
of the development process, from design and architecture
to coding and development. Developers will have access to better documentation,
tutorials and training, and navigate security concerns
and integrate them effectively. Focus on cloud security okay,
this is the last one. With the increasing popularity of
cloud based development and deployments,
cloud security solutions specifically designed for Python applications
will become more prevalent integration of
Python security tools with cloud platforms, which practices
and provide specialization management for
security configurations. That's AWS,
GCP, Azure and Digitalocean and the likes
of that. So section seven,
summary of key takebase. So summary here,
I will just basically give you what's on my mind on
the summary. So we've covered a bit of a lot of things.
I talked about the best practices, look, the best practices,
and how to make sure that let
me just briefly come over to so
I talked about the introduction to Python security, common security trends
in python security practices in python authentication and
authorization encryption and hashing in Python, which I
gave a good sample, python security tools and libraries,
emerging trends and future consideration. So all of these
are really important information. With this knowledge
and extra practice, you can gradually
implement them in your Python application and Python development.
And with strict adherence to
some of these best practices, and many of these best practices, you can
ensure to build more rigid and
secure web applications, both web applications
and Python applications
generally. So, encouragement for
implementing best practices and staying updated in security measurements.
Well, I'll say one big encouragement is try not to get hacked
because you're protecting fines in
those companies that get hacked. That's a lot of money. So you save your
company, you save your team a lot of money by
implementing best practices and secure
applications that are difficult to
get hacked. Because most of the times we believe that,
yeah, there's no way this can get hacked. And eventually something
happens and hacker finds zero d. And yeah,
it's done. So by focusing a lot on these
best practices and securing our pattern applications
as much as possible, we ensure that we are not vulnerabilities
to this event, this unfortunate event.
So that is a very big encouragement and also just to become better.
That is a big encouragement. So I have
had an amazing time with you.
I guess I could not cover probably as much as I wanted to cover,
but I guess I would also see,
yeah, it's been an amazing time having this talk and I really
hope you had a lot to learn from
and you enjoyed it as much as I did. Thank you so much.
Remember, my name is kanadin, you can contact me on
LinkedIn. Yeah, whatever it is,
we can talk about it. Thank you so much and goodbye.