Submind YouTube summaries
Thumbnail for Session Hijacking, Stolen Cookies, and the Blind Spot in WordPress Security | Robert Abela

Session Hijacking, Stolen Cookies, and the Blind Spot in WordPress Security | Robert Abela

Watch on YouTube

Video summary

The core subject of this presentation is the critical vulnerability in WordPress security known as session hijacking, which relies heavily on stolen cookies to impersonate users without needing passwords or bypassing firewalls. Unlike stateless applications, WordPress maintains a stateful connection by storing session IDs in its database and corresponding cookies in the user's browser, creating a shared identity that attackers can exploit. The speaker highlights alarming statistics indicating a massive surge in identity theft, with billions of stolen session cookies captured recently and identity threats accounting for over half of all security detections. This rise is driven by the fact that cookies act as credentials; once an attacker obtains them, they can maintain persistent access to a user's account indefinitely, effectively bypassing multi-factor authentication (MFA) if the attack occurs after the initial login. Attacks are facilitated by a combination of technical vulnerabilities and human error, creating a significant "blind spot" in post-login security that is often overlooked. Common vectors include shared accounts among team members, which exponentially increases the number of active sessions and the potential attack surface, as well as poor hygiene practices like leaving laptops unlocked or logging into public networks. Advanced techniques such as man-in-the-middle attacks and SSL stripping allow attackers to intercept traffic on insecure connections, while phishing campaigns have evolved to capture MFA codes by acting as reverse proxies between the user and the legitimate site. Furthermore, outdated plugins and themes provide known entry points for Cross-Site Request Forgery (CSRF) attacks, where a malicious script tricks a logged-in browser into submitting requests that perform unauthorized actions, such as creating new admin accounts or changing settings, all while appearing legitimate to the server. To mitigate these risks, the speaker advocates for a holistic security approach that combines technical hardening with rigorous session management and user education. Technical measures include implementing activity logs to monitor live sessions, setting strict inactivity timeouts to automatically terminate dormant sessions, and limiting concurrent logins to prevent unauthorized access from multiple devices. Administrators should also enforce the principle of least privilege by creating custom roles for team members rather than granting full admin rights, deleting unused accounts regularly, and utilizing device recognition features to alert users when logins occur from unfamiliar locations or machines. Additionally, changing security salts in the configuration file is noted as a drastic measure that logs everyone out, so it should only be used when suspicious activity is detected rather than as a routine maintenance task. Ultimately, the presentation concludes that technology alone cannot solve the problem of session hijacking because humans remain the weakest link in the security chain. Attackers are increasingly using AI to craft highly realistic phishing emails and social engineering tactics that bypass traditional defenses, making user awareness essential. Organizations must foster a culture where employees feel safe reporting mistakes without fear of retribution and undergo regular training to recognize sophisticated threats like deepfake-style emails or QR code scams. By layering these technical controls with continuous education and simulated attack drills, website owners can significantly reduce the window of opportunity for attackers and ensure that every user understands their role in maintaining the overall security posture of the platform.
Read the full video transcript
Thank you for coming. A quick raise of hands. Who likes cookies? Here. Nice. Nice. Here. Some more. Um, they have milk and nuts. So, if you have an allergies, be careful. Thank you very much for coming. Uh, let's set up this scenario right away. Imagine an attacker has access to your WordPress website and they have never guessed your password. broke your 2FA or bypassed your firewall. How is this possible? Basically, uh attackers, malicious users like you, they crave cookies because by stealing your cookies, they can hijack your session. They can impersonate you. There are many techniques that they can use and all of those are derived basically from user mistakes and exploiting vulnerabilities in software. this happened. Uh this is not just me saying it or exaggerating or scaremongering. These are some numbers from some reports from this year and last year. This year in Spy Cloud 2026 identity exposure report they captured roughly 8.6 billion stolen session cookies in 2025. recorded future identity threat landscape report they identified 276 million credentials with active session cookies usable to bypass MFA and from this year's Red Canary report they claimed that identity threats accounted for 53% of the total detection volume in 2025 which is up from 20 20% in 2024. So we are seeing a huge rise in these type of session hijacking and identity theft. This happens because cookies are credentials. So when you log in to your WordPress website, it generates a number of cookies. These are stored in your browser and basically that is that's how WordPress recognizes you and your session. In fact, most probably you've heard that WordPress is a stateless application. It is actually a stateful application. Stateless means that there's nothing common between the client and the server, the web application. However, when it comes to WordPress sessions, you have the session ID stored in the WordPress database and the cookies stored in your browser. And that is something in common and that is your session. And basically, whoever has those cookies can impersonate you or can trick your browser to do something with those cookies. WordPress the idea of sessions and cookies. It's not just it's not a WordPress problem. It's the the concept of sessions and cookies is used is how web applications sus online services work. Uh but the reason why I wanted to do this talk is because there is lack of control and visibility in post login security in WordPress and that is a blind spot in security. a quick overview of what we're going to cover in this presentation. We're going to see how WordPress authentication works, how sessions are stored and how they work in WordPress and what the risks are. We're going to see a few examples of high how sessions are hijacked and what we can do to protect these sessions and improve visibility. Let's start right away with authentication. Once you log into WordPress, so you go to the login page, you enter the username, password, and hopefully a FA code. WordPress creates a session token and it stores it in the database and it creates a number of cookies, session and authentication cookies and it sends them to your browser. These are the cookies. We have WordPress WordPress security. The first two are the authentication cookies. We have two for backward compatibility reasons for legacy reasons for when we used to access the internet over HTTP and we used to access the back end over HTTPS. In fact, one of them is basically an admin context HTTPS check. So we can work with one but of course because of all the websites we maintain both. The WordPress logged in basically is the session cookie for the front end. So when you are logged into a website and you browse the homepage and you see that admin bar at the top that's basically you can see that one because WordPress recognizes the session cookie and in each of these cookies you can find the username the expiration time of the session the session ID and the hmac this is an example of a cookie uh that's the cookie name you have the WordPress logged in and the hash the hash is a MD5 check sum of the website URL it's basically an identifier for the cookie. Then we have let me see here. Yeah, this is the username. You can see the username, the expiration time, it's in Unix time stamp. The session token, it's uh WordPress doesn't store the session ID as a as clear text in the database. It uh it hashes it in SHA 256 just uh just in case the database is leaked basically. And we have the HMAS signature which is basically hashbased message authentication code. It's a signature and it's generated basically from the username. Just a second. Sorry for that. Is generated from the username, a fragment from your password, the expiration time, the session ID and the WordPress s. And we use that one. So if any of those change basically that cookie is no longer valid and this session is terminated. It's a sort of security check. In fact it's very common uh if it's one of the best practices if you suspect you have any issues with some sessions maybe some some one session was hijacked or you're not sure if you change the WordPress results in the WP config file it basically invalidates all the cookies and all logged in sessions are no longer valid. The session tokens are stored in the WordPress database and they are stored in the user meta and you get one session token for every user session. So if a user logs in the same user logs in from multiple devices it gets multiple session ids and basically this is how it's stored in the WordPress database. It's a PHP serialized array and if we un serialize it that's how it looks. You have the hash session token ID SHA256, the expiration time in Unix of the session, the IP address of the client, the user agent of the browser and the login time. And basically whenever you are logged into WordPress and you click somewhere, the browser as you can see send the cookies with that s with with that request and that is how WordPress identifies who you are and that you are logged in. Here's a quick summary of what we discussed. So you log into your WordPress website. The user logs in. Just move those here. There username, password, and to FA for example. WordPress authenticates the user, confirms the password to FA code. It creates the session token. It stores it in the database. It creates the cookies and it sends them to to your browser. The browser stores these cookies and with every request sent to your website basically it includes those cookies so WordPress can identify you with every request WordPress validates the cookies check the session token and if all those match then the user is it means the user is authenticated. Now uh these are some properties about the WordPress sessions. So first of all the same user can have multiple sessions at the same time. This means a user can have 10 20 30 sessions. Uh so if the username is shared between a number of people this happens quite often and also sessions expire after by default after 48 hours or when the user logs out. Now from my experience most people don't log out. They just close the browser window and when you close the browser window the session is not terminated. So let's say you have logged into your website, you've done four hours of work, you close your browser window, that session and those cookies are still valid for 44 hours. It can also there's the option of having the cookies expire after 14 days. So when you go to your WordPress login page and there's that option remember me, if you take that one, then the cookies and the session are valid for 14 days. There are number of pros and cons to this approach. Uh however of course the advantage is users have to login less often. However this one the session duration and the fact that users can have multiple sessions also has introduces a lot of security risks. So basically every session is an authenticated identity an access point and unfortunately a possible entry point to malicious users. the the more sessions you have and the longer they are, the larger is the attack surface of your website and the more difficult it is for you as a website owner or for someone who manages website to track or spot suspicious activities. But that also means it's easier for the attackers because they have more time to do their job, try to hijack a session and to hide their activity. So roughly that's how the WordPress authentications works. And now we're going to see how attackers can steal and compromise sessions. Uh what I'm going to mention a few things. Not all of the things I'm going to mention lead directly to hijack to a hijack session. However, all of these together of course they uh they grow the attack surface for the attackers and they can lead to a lot of issues with with session hijacking. We start with the most common one shared accounts. Unfortunately, it's very common. You see it a lot of at agencies for example or bigger companies where 10, 20, 30 people in the same team use the same username and password to login to the website or agencies using the same username and password to access all of their client websites. That's one of the issues we have lack of security hygiene basically uh people not using password managers unlocked laptops. I travel to a few conferences. Even just yesterday, I was at the contributor day. I was surprised that you always see quite a few unlocked laptops and then attended on tables. It's just a perfect recipe for someone to take over your session. Uh logging in public computers or other devices. This might sound something old like from the internet cafe days, but it's not. Uh nowadays, especially people are traveling more uh and they need to log into the website. They forgot to charge their mobile. they forgot the laptop at at home or in the hotel room. So they ask a colleague or someone they know at a conference to login from their laptop to check their website or do something. And all of these basically is just a recipe. You are creating more sessions and you are growing your attack service. This goes hand inhand with what I just mentioned like you have infected computers with malware, malicious browsers, key loggers that steal data from computers. So the more you log in, the more sessions you have, the more devices you use, etc., the bigger is the attack surfaces and the bigger the chance of your sessions being hijacked. You also have issues like browser browser profile theft and also stolen devices, physical stolen devices. Uh with stolen devices, it's important to point out sessions work with cookies and Chrome and other browsers actually encrypt the cookies, which is a good security uh technique. So basically however it encrypts the cookies when at rest which means when the machine is switched off the cookies which are actually text file on your hard disk they are encrypted. So if someone steals your laptop and tries to re the hard disk at least the cookies are encrypted. So we have some sort of protection there. Other dangers public Wi-Fi and networks packet sniffing man in the middle attacks. It's also becoming very common for evil twin Wi-Fi hotspot. So basically this means someone sets up a Wi-Fi hotspot that looks legitimate. So let's assume you go to hotel X, their Wi-Fi is called Hotel X and the malicious user set also sets up a Wi-Fi called Hotel X and they can capture your traffic. Now nowadays we browse the internet over HTTPS. So your traffic is encrypted. However, there are many ways, tips, tricks that attackers can use to trick your browser to either communicate over HTTP or to use a less secure uh encryption protocol like SSL. These are called SSL stripping, HTTPS downgrade tech, etc. Are there things that leads to session hijacking, fishing get tech? We have the good old fishing text just stealing credentials. However, there's also a rise in adversary in the middle fishing attacks. These type of attacks basically work like the first one, the old fishing attacks where they credentials. Nowadays, if you are using tofa or some sort of MFA, they don't work. However, the adversary in the middle, they also work with MFA. The idea is the attacker sets up FA login page between your browser and the website and it's a reverse proxy. So it it receives the information from you. It forwards them to the website and it captures your session details. Here's an example. So let's wait here. There. So this is your browser. Someone sends you an email to log into your website. Uh it looks exactly like your login page. This is the attackers reverse proxy. Basically you submit your credentials and the reverse proxy forwards those credentials to your actual website to the legitimate website. If the credentials are correct and you are using TOFFA or some sort of MFA, the website responds with the prompt back the attackers proxy responds to your browser and you're going to see the 2FA prompt. So for you everything looks legitimate. You fill in the 2FA code. It goes to the attackers reverse proxy. It forwards it to the website. Now WordPress has seen everything is legitimate. It received the login credentials. It received the 2FA code. So it authenticates the user. It generates the cookies and the session ID and it sends the cookies to the reverse proxy. The attacker keeps a copy and forwards you the cookies as well. You are redirected to your website. So to you everything is transparent. You just log into your website. However, the attacker has a copy of your cookies which means from no one they can basically impersonate you. The said reality about these things is you don't need to be uh you don't need to be some security experts. The we have nowadays commodity toolings. There are also SUS online services for these things that allow um attackers to set up these attacks. All you need is just a conferencing email and the link. You can buy actually you can download software for free or you can buy software for a few hundred to launch these type of attacks within just a few hours. Other issues that lead to session hijacking outdated and exploitable software as we all know plugins themes WordPress any software quite frankly there's no 100% secure software every software has or can have vulnerabilities uh but unfortunately even though vendors keep their software up to date whenever there are issues users take time to update their their software uh we look at our plugins for example it's very when we release an update, uh, only around 20% update their plug-in within the first 24 hours. Within one to two weeks, it's around 40%. The rest, it can take unfortunately months and even years sometimes. So to exploit a vulnerability, you don't need to find some zero day exploit. Most people run old software. So yeah, you just need to find a vulnerab a vulnerable version of a plug-in that is just two or three versions old. That's all. Also on top of this one, uh people use null plugins and null software, correct software. And whenever you use this type of software, you have no idea what type of backd doorors it has or what type of other malicious code is running on it. And we're also of course a lot of people are using AI to build their own plugins and software. Now there's nothing wrong with AI. We use it as well. However, if you don't have certain level of experience and you know how software works, the chances of you developing something that is actually opening security doors on your website rather than closing is is very high. So all these basically lead to a lot of issues on websites. Talking about exploiting vulnerabilities, I'm sure most probably heard this one that by exploiting across scripting vulnerability attackers can steal your cookies. In the case of WordPress, this is not exactly correct. Uh kudos to WordPress because WordPress sets the HTTP only flag on the authentication cookies. What this flag does basically it tells the browser that client side scripts cannot access these cookies. So regardless if it's if you if you access a website and there are client side scripts regardless if that script is legitimate or not these the authentication cookies of WordPress do not show in the document.cookie so they can never be stolen. So that's again another security uh hardening that we have in browsers that we have that in cookies that helps kind of like mitigating these type of attacks. However, this doesn't protect from cookies being sent and this is where CSRF or session writing comes in. CSRF stands for cross- site request forgering and what it does basically if a plug-in or a software is vulnerable to CSRF. The attacker basically can trick your browser. can trick you to brow to access a website and that website tricks your browser to send a request to your WordPress website to do something malicious. So for example, let's assume uh a malicious user knows you are running a vulnerable plug-in, a plug-in that is vulnerable to CSRF. They send you a link to a page where there's an image or some text. But this page on it there's a hidden form that creates that when triggered this form creates a new user on a WordPress website. Um so basically uh and it automatically this form is automatically triggered when you load this page. So if someone if you are logged into your website someone sends you an email and you click on this page for example let's say of an image or something this is how it works. uh you click on the link, you access the malicious website. There's maybe on it there's content that that you want to see, some text or an image. However, as soon as you click on it, this website loads and triggers also the hidden form. That hidden form tricks your browser. Let's say the form creates a new user on WordPress, tricks your browser to send that request to your WordPress website. Now because you already logged in to your WordPress website, the browser is going to include the cookies with the request. So to WordPress, everything is legitimate. It received the request from your browser with the correct cookies. You are logged in. So it's going to do what the form is telling it to create a new user. And at this stage, basically the attacker can access has has uh created a new user on the website and can log into your website using these type using that account. It doesn't of course it's not it doesn't depend only on one security issue. So it's very common as well there are a lot of attacks where attackers use a number of security issues to achieve what they need to achieve most actually especially when it comes to bigger attacks it's not just about a cross-ite scripting or an SQL injection it's adding them together to achieve something bigger basically um in fact that is why we need to take a more holistic approach towards WordPress security for example we've mentioned HTTP only for the cookies which protects them from being uh stolen during a cross-ite scripting attack. Chrome encrypts cookies. We have firewalls to have we have a lot of things when it comes to hardening and type of security protection. However, each of these things they block only one thing. They they they have a purpose. There is no solution that blocks everything. In fact, security is not a switch that you flip. It's an ongoing process and it's usually using a collection. you need to use as a a collection of tools because it's about layers. Similar example, if you look at old classes, usually they are built on a hill. If they are not on a hill, they have a moat around them, but there's also the bridge. They have several layers of security. They have the bastions, several layers of walls, the towers, etc. So, and security is the same. There's no one solution that is going to stop every type of attack. And all of these, we've seen all of these issues that can lead to session hijacking. Um, however, all of these depend on one thing. They depend on the weakest link, which is as humans, they depend on a human clicking something, accessing an uh downloading an attachment, executing a file, accessing a web page, etc. Um, so this has to be solved as well. And the targets, the reason why the targets aren't only um administrators. Actually, attackers can still achieve, especially by exploiting a chain of of of vulnerabilities, can still achieve a lot by uh hijacking even non-admin accounts as we're going to see later. By the way, I've see I see it a lot like PE when I'm talking to people like, "Hey, we're a small team. We're five, six developers. We know not to click. No one everyone knows not to click on a weird link. That is not control. That is hope. Unfortunately, that that that doesn't work. Um it happens to the best of us. Uh these type of issues happen to support teams at Twitter, Microsoft, Facebook, um Troy Hunt, a very popular security researcher, the owner of Have I Been Pond? Funnily enough, last year was a victim of a fishing tech and had his mailchimp list stolen. The reason why we're seeing these type of attacks basically is we are getting better at hardening like fire was technology to have fus keys. Things are getting better. We're still not there yet but there's more adoption of these things and it's no longer worth it for the attackers to try to find some security hole in a firewall. um the the they are targeting the weakest link which is humans and AI is making it even much easier because with AI um it's making it easier to build attacks to build very credible attacks and which are very hard to identify. In fact there I've even heard jokes I was at cloud festival earlier on this year and there was a security expert joking that nowadays uh fishing emails are actually more realistic than the actually legitimate emails. Um and you can by because of AI you can build your own scripts very easily and this software software to launch any type of fishing getex and scanners etc has become commodity software and also because of AI it's working against us because we are getting we are no longer troubleshooting things we are no longer challenging our minds so our our um cognitive abilities are being lowered so the chances of us be becoming victim of these type of effects are much higher. Now, if someone hijacks an admin session, it's basically game over because they have full control to the website. Um, and very often what they do in this case is create another account or install a back door which is not even part of WordPress, a PHP application, an independent web application and they retain access. And the idea is whenever someone hijacks a session, they don't want to interrupt the current session. Otherwise, they you will notice they just leave that session and they want to operate in the background. Um, however, it's not just admin accounts. Even if they hack a non-admin account, there are a lot of things that attack the attackers can do. So, for example, if you look at an e-commerce solution, if they hack an a customer account, they can do a lot of things. Now I know of course the hardening of an admin account should be much more than that of a customer account. However, it's very important to keep visibility on everything on the website because let's assume someone manages to hijack a customer account on an e-commerce website. They can do reconnaissance which means basically it allows them to learn about your business, how your team operates, what systems you're using, how your team responds to certain things etc. And that basically makes it much easier to uh learn about internal visibility about your team, what what vulnerabilities you have on your website, maybe you are running an outdated version of some software. But also it makes it also easier for social engineering at text because if you or your team you have an e-commerce website for example or a membership website, if you receive this random fishing email, most probably recognize it. However, if you receive an email that mentions the customer name, the order details, etc. because they have hijacked that session. So, they know what that customer is doing, it's more credible. So, the chances of you falling for these type of attacks are much higher. There's also vulnerability chaining something that we mentioned before. So, if if they know of a certain issue, they can use a number of issues together and the social engineering get tech to achieve what they want to achieve. This happened in the past. I remember this particular case um on apach.org. The the Apach is one of the world's most popular web servers where malicious users identified this happened a few years ago but identified that they are using a vulnerable web- based bug tracking system. It was a bit outdated. It had a cross-ite scripting vulnerability. So someone posted a ticket, a support ticket pretending they're a client. They had some problem. The support people clicked on the link, their sessions got hijacked and within a few hours the attackers by accessing the support account uh the account of the support people I through that they identified other vulnerabilities on the the system they use a number of social engineering get tax and within a few hours they managed to gain root access to the main apach to the main apach.org servers. So that's why it's very important to make sure every account, everything that's happening on your website, you need to be aware of what's happening. Um, and hijack accounts, especially on WordPress, they go unnoticed because there are no login alerts, there's no visibility of live sessions, no logs, there are no controls and checks and sessions remain valid for very long. Uh, this is not just a a problem with WordPress. It's it's very common. You hear even of big brands where they identify a hack and they find out that they've been hacked for six months or for a year for example. It happens to everyone. I was just talking to Franchesco Carluchi. He's a bug bount hunter uh in WordPress and who was telling me how one of his customers they were doing this SEO test on their website using AI and AI identified some weird links basically and they asked Franchesco to look into it. Uh and he logged in and based on what he saw in the logs this website has been hacked for more than a year. And the reason why he knows that because the the website only had logs for about a year and even from the beginning of the logs this website was already hacked. So most probably the attackers have had access to this website for quite a few months. And the reason this happens is we focus a lot on hardening which is very important. There's nothing wrong with hardening you know credentials hygiene pass keys brute force protection firewalls keeping patch management that's all very important. However, there's yeah there's a blind spot when it comes to post login security. We focus a lot on what happens until the user logs in until the login page. But after that, we are ignoring it. We don't know what active sessions there are from where users are logging in, what devices they are using, etc. Now, I'm going to mention a few best practices and things we can do on WordPress. All of these you can achieve with a number of different plugins, free and premium. Uh let's start. um activity logs. So basically activity logs allow you to keep an eye on what's happening. They also allow you to do forensic work in an unfortunate event of course. But most plugins they also have notifications which allow you to set up notifications which is very important. So basically with activity logs you can actually build an ID intrusion detection system for your website which means a system that alerts you whenever something unusual happens. A lot of people ask me usually like what type of notifications should I set up on my website. It's very hard to answer because every business is different. You can have a business with 10 people who log in from the same location from Monday to Friday 9 to5 from the same office. But you can also have the same business 10 people but they all work remotely from different continents. So you have people logging in at different times. So if you are responsible for the security of a website, it's up to you to learn about the business, how the website is being used, etc. to to configure the notifications that you need. It's very important because if you configure a lot of notifications and you get a lot of false positives that will lead to to a cribal situation. It happens. It happened to me in the past. We used preg Google era. I used to work for a big software company. We used to manage the web servers and we had this monitoring server uh that used to send us an SMS whenever a server is down. Unfortunately the connection of the server wasn't very good. So we used to receive these SMSs quite often and after a few times we started ignoring these SMSs. One day the server one of the servers went down 40 and we found out from the management which wasn't a good idea. So um other things we can do session management. There are plugins and tools that allow you to see who is logged in in real time to your website. We can also limit concurrent user sessions. As I said before like users can login as many times as they want. Like if you have a user called Robert, it can be used as many times as they want. There's no point in that. Maybe you can allow two three concurrent sessions. Maybe someone has a laptop and a mobile and maybe a tablet. But there's no point in having more sessions. If you have a user account that is used by multiple people, every person should have their own user account. This is not just about security. It's also about accountability and compliance and many other things. You can also implement use tools to implement inactivity timeout. So basically there are tools and plugins that when you log in and that user does something on the website but then doesn't do anything else after an hour or two, there are plugins which terminate those sessions. And of course, it's highly recommended to shorten the default session duration. By default, as we said, it's 48 hours. There's no point. No one is going to work 48 hours straight. I would say best practice is to set it. A normal day of work is 8 to 10 hours. Set the session duration to 10 hours. It's not considering the tradeoffs. It's not a big ask to ask a user to login once a day. It's okay. Other things we can do uh user account management, delete active users. This is a very big problem especially on bigger membership websites, e-commerce websites and similar websites. Um it's also very common. Most of us I'm sure we've been through it. You needed to give access to a third party marketeteer developer designer on your website. You create a username for them and then you forget it. uh these these accounts are never deleted and unfortunately especially on membership websites and e-commerce websites most of these accounts are using the same email and password that that people use the same on on their Gmail on their Facebook and everything. So if any of these are ever leaked then you the chances of your website being hacked through these accounts is even much higher. So there are plugins which allow you to delete accounts that have never logged in for example since the last for the last 12 months for example. And if you need to give temporary access to someone you can also there are plugins which allow you to create a temporary link and you can specify when this link expires or how often this link can be used. Uh because creating users is very often as we said um you don't delete them. So by creating a temporary link someone can use this link they log in they do their job and then the the link is it expires after a certain period of time. You can also add security questions and to have FA to sensitive actions. For example, if someone wants to reset their password, uh if someone if an administrator is trying to change a user role, this like kind of like the same concept of sudo on Unix basically. Are there other things we can do with user accounts? Restrict user login times especially most people normally work they have a routine. They work from Monday to Friday 9 to 5. Um, so you can actually use plugins to allow users to login between, let's say, 8 am and 7 p.m. and then the rest they not allowed to login. As you're seeing, these are all different types of layers we're adding up to make it always harder for for the attackers. And last but not least, use custom roles and apply the principle of lease privileges. Uh, admin users with admin role. Of course, everything works. However, um, admin rights are not human rights basically. Um um so yeah so use the principle of lease privileges whenever you create a user whenever someone joins your team it takes a bit more time but work with them create a custom role for them and work with them to make sure they have access only to what they need to again similar to other things this is not just about security this is also about best practices about compliance about accountability and many other things and what we're doing here especially by using delete privileges, you are limiting the blast radius because if an attacker hacks an account at least he he he can only access what that user can access. Now as we have seen of course attackers can do much more even with non-admin accounts but the more layers we are adding the more difficult we are making it to attackers um and also basically by making it more difficult the the longer it will take them to achieve something. So the chances of you identifying any suspicious activities is much higher. Other things we can do device recognition there are again like other plugins which allow you to limit for example IP address uh and machine combinations. These are very common like especially if you use Google, Facebook and any of these services. If someone logs in for example from a new device you receive an an email like was this did you did you log in from this IP? was this and there are plugins actually which you can use which add trusted devices. So if there's another login from a different machine the user is notified. Um there's other other type of notifications we can do for example um if there are multiple simultaneous multiple simultaneous sessions etc. The more we notify the users I mean users are part of the whole they're part of the whole chain of your WordPress security. So the more the users are notified, the more the users are aware of what's happening, the the better it is for the the security of your website. Um whatever I've mentioned are technical fixes um which are very important. However, these technical fixes will only work if the human layer discovered as I was just saying. So it's very important to train your team uh train your team to recognize possible attacks. They don't need to be the next Kevin Mitnik or Adrien Lammo, but at least they need to know what's a fishing attack. What type of attacks your business can can can be victim of, what's a social engineering attack. They need to have basic understanding of what these type of attacks are. It's also important to encourage a reporting culture. We are all humans. We all make mistakes and we all have pride. So most of what everyone usually is afraid to admit they made a mistake. Um, however, if your team is afraid to admit they made a mistake, most probably you will find out from the attackers or from the news rather from them. And it's always better to find out from your team. This is very important, especially in bigger companies. I've worked in bigger companies and what happens is people spot things, but they don't know where to report them. So, they just ignore them and then it might be too late. So it's very important to train your team to know where to report certain issues if they spot issues and that it's safe to report something because everyone makes mistakes. And it's very important to also simulate fishing and other type of attacks. These type of simulations they should be like fire drills. Um they shouldn't be like I got you moment because people will make mistakes. You I everyone will make mistakes. The point is when you make these type of tests, everyone should learn from them. And the more you do these type of tests, the more your users will become aware of what's around them and what's their responsibility. This sounds a bit apocalyptic. Uh it sounds a bit extreme. However, unfortunately, this is the reality of having access to an online presence, having access to a website. It's it's every user is part of the whole security chain of your website. And last but not least, of course, follow best practices, credentials hygiene, lock your laptop, use password managers, use VPN services. Not sometimes. Use them always, unless you're in the office or at home. Always use VPN services. Um, only use assigned devices. Very important as well. Don't share devices. Don't log in from unknown devices or from some other people devices. And keep everything up to date. To recap, user sessions are an attack surface. So visibility is very critical. As we've seen, there's a lot of things we can do from the website point of view. Session management, website user accounts, device recognition, notifying the users, keeping them informed about their accounts and what's happening. And last but not least, education goes a very long way because as we've seen, all of these type of attacks basically depend on one human making a mistake, clicking something that they were not supposed to click. If you scan this QR codes, you can download the slides. There are links to the studies I have mentioned and the reports. There are also links to a number of other articles about authentication, cookies, WordPress sessions, how they work, etc. And there's also a list of premium and free plugins that you can use. There's a selection of plugins that you can use to achieve everything that we've mentioned. Thank you very much for listening. I'm Robert Abella and I'm the CEO and founder of Malapress. Yeah, if there's Yeah, there's there three minutes left. So, any questions? I've got a question. So, I talked about Claude and I'm thinking about AI in WordPress and people wanting to connect AI to their WordPress so that they can work in Claude on their desktop and have Claude do things in their WordPress account. And that requires some sort of authentication, right? Because the Claude agent needs to be able to do stuff in WordPress. And that means that there needs to be some credential there that is stored somewhere in a presumably secure way. I would love to hear you talk about what your thoughts are about how AI opens up this problem to a whole new realm of exciting uh security vulnerabilities and threats. >> Yes, most probably it will be my presentation next next year. But good point. Um yes first of all if you are connecting via rest API of course use application passwords it's very important there is the AI connector I was talking yesterday and even at work with David I think a core committer about AI because at the moment people are just putting the API key and let it run and that is basically a website a WordPress website with an API key to claude to whatever that's a gold mine um at the moment there are no limits but we were talking fact about possible solutions there's still a lot of unknown in terms of AI Okay, the only the most common thing is again the rest API using AI to connect by the rest API is make sure you use at least application passwords and and or use a dedicated account as well. Don't share the application password of your admin account for AI. The more you can segregate again permissions, the more you can split, the better it is. Thanks Chris. >> Hi, I'm Michelle. I had a question. So you were talking about if you change the salt in the WP config, it logs everybody out. >> Yes. >> What if you did that as a routine like at 2 in the morning every day? >> Uh I think there are plugins which reset it like at least once a month. I mean you can do it. The problem is there are especially if you are using application password and some accounts for some activity that takes much longer. you are logging out those users as well. Also, there are plugins like tof plugins which use those uh salts to create their own encryption keys for their users. So, whenever you're changing those you are resetting the configuration of the users. So, I I wouldn't I wouldn't recommend it actually. It's not like especially every day it's not a good idea. I mean if you suspect something is wrong of course do it but yeah whenever you're doing it you're you literally every session is terminated. >> I was just curious. >> Yeah, that's a good question. Yeah, >> thank you. >> Another one or >> Oh, we're done. Okay. Sorry. I mean, I I'll be I'll be around today tomorrow, etc. So you can find me around in the