<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Security on Shaowen Chen's Website</title><link>https://www.chenshaowen.com/en/tags/security/</link><description>Recent content in Security on Shaowen Chen's Website</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&amp;copy;2016 - {year}, All Rights Reserved.</copyright><lastBuildDate>Thu, 04 Sep 2025 00:00:00 +0000</lastBuildDate><sy:updatePeriod>weekly</sy:updatePeriod><atom:link href="https://www.chenshaowen.com/en/tags/security/atom.xml" rel="self" type="application/rss+xml"/><item><title>Kubernetes Base Environment Requirements</title><link>https://www.chenshaowen.com/en/blog/kubernetes-base-environment-requirements.html</link><pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><atom:modified>Thu, 04 Sep 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/kubernetes-base-environment-requirements.html</guid><description>1. Base Packages Kubernetes version ≥ 1.18 socat Required conntrack Required ebtables Optional, but recommended ipset Optional, but recommended ipvsadm Optional, but recommended 1 apt-get -y install socat conntrack ebtables ipset ipvsadm 2. Port Requirements 2.1 Base Node Services Service Protocol Action Start Port End Port Comment ssh TCP allow 22 22 Node remote management docker TCP allow 2375 2376 Docker remote communication etcd TCP allow 2379 2380 etcd cluster communication 2.</description><dc:creator>微信公众号</dc:creator><category>Kubernetes</category><category>Cluster</category><category>Configuration</category><category>Security</category><category>Operations</category><category>Learning</category><category>Installation</category><category>Dependencies</category><category>Best Practices</category></item><item><title>Deploying Jumpserver as a Bastion Host on Kubernetes</title><link>https://www.chenshaowen.com/en/blog/how-to-deploy-jumpserver-on-kubernetes.html</link><pubDate>Thu, 09 Jan 2025 00:00:00 +0000</pubDate><atom:modified>Thu, 09 Jan 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-deploy-jumpserver-on-kubernetes.html</guid><description>1. Deploying Jumpserver You need a StorageClass ready in advance to store Jumpserver&amp;rsquo;s data. Besides the database mentioned below, each component — jms-core, jms-web, jms-koko, jms-lion, jms-chen — also needs a PV for storage. 1.1 Deploying MySQL Refer to https://github.com/shaowenchen/ops-hub/blob/main/database/mysql8.yaml to deploy MySQL. You need to adjust the StorageClass field</description><dc:creator>微信公众号</dc:creator><category>Kubernetes</category><category>Jumpserver</category><category>Security</category><category>Operations</category><category>Bastion Host</category><category>Deployment</category><category>Learning</category></item><item><title>Using Falco to Monitor Runtime Security</title><link>https://www.chenshaowen.com/en/blog/listen-runtime-security-using-falco.html</link><pubDate>Sat, 11 Feb 2023 00:00:00 +0000</pubDate><atom:modified>Sat, 11 Feb 2023 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/listen-runtime-security-using-falco.html</guid><description>1. What Falco Is Falco is a cloud-native runtime security project contributed to the CNCF by Sysdig.
Falco implements an extensible event rule filtering engine. Through a series of operations — capturing events, matching security rules, and producing alert notifications — it can surface security problems in a system. The events come from system calls, and it also supports an ebpf probe; the rules are open source [1] and you can define your own extensions [2].</description><dc:creator>微信公众号</dc:creator><category>Falco</category><category>Kubernetes</category><category>Security</category><category>Tools</category><category>Operations</category></item><item><title>How to Hijack docker.io Image Traffic to a Private Repository</title><link>https://www.chenshaowen.com/en/blog/hijack-docker-io-req-to-private-repository.html</link><pubDate>Mon, 18 Jul 2022 00:00:00 +0000</pubDate><atom:modified>Mon, 18 Jul 2022 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/hijack-docker-io-req-to-private-repository.html</guid><description>1. Self-signing a *.docker.io Domain Certificate 1.1 Creating a CA Certificate Generate the CA certificate private key 1 openssl genrsa -out ca.key 4096 Generate the CA certificate 1 2 3 4 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj &amp;#34;/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=chenshaowen.com&amp;#34; \ -key ca.key \ -out ca.crt 1.2 Creating a *.</description><dc:creator>微信公众号</dc:creator><category>Jenkins</category><category>Kubernetes</category><category>Docker</category><category>Images</category><category>Operations</category><category>Security</category></item><item><title>Adding SSH Key Login and Troubleshooting</title><link>https://www.chenshaowen.com/en/blog/add-ssh-key-login-os-and-troubleshooting.html</link><pubDate>Thu, 10 Mar 2022 00:00:00 +0000</pubDate><atom:modified>Thu, 10 Mar 2022 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/add-ssh-key-login-os-and-troubleshooting.html</guid><description>1. Steps to Add a Key 1.1 Generate an SSH Key on the Client There are two key formats:
Old format, the private key begins with -----BEGIN RSA PRIVATE KEY----- 1 ssh-keygen -m PEM -t rsa -b 4096 -C &amp;#34;mail@chenshaowen.com&amp;#34; New format, the private key begins with -----BEGIN OPENSSH PRIVATE KEY----- 1 ssh-keygen -t rsa -b 4096 -C &amp;#34;mail@chenshaowen.</description><dc:creator>微信公众号</dc:creator><category>SSH</category><category>Operations</category><category>Configuration</category><category>Security</category><category>Troubleshooting</category></item><item><title>How to Configure NetworkPolicy for NodePort in Kubernetes</title><link>https://www.chenshaowen.com/en/blog/how-to-configure-networkpolicy-for-nodeport.html</link><pubDate>Wed, 23 Jun 2021 00:00:00 +0000</pubDate><atom:modified>Wed, 23 Jun 2021 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-configure-networkpolicy-for-nodeport.html</guid><description>1. Background As shown above, the business team needs to isolate the services in a namespace, forbidding access from workloads in the bar namespace while allowing users to reach the service through a Load Balancer (LB) via NodePort. It is easy to write a network policy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 apiVersion: networking.</description><dc:creator>微信公众号</dc:creator><category>NetworkPolicy</category><category>Network</category><category>Kubernetes</category><category>Operations</category><category>Security</category><category>Learning</category><category>NodePort</category><category>Network Isolation</category></item><item><title>Run `rm -rf /` Under Kubernetes and You Can Just Run Away</title><link>https://www.chenshaowen.com/en/blog/attack-vectors-under-kubernetes.html</link><pubDate>Fri, 22 Jan 2021 00:00:00 +0000</pubDate><atom:modified>Fri, 22 Jan 2021 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/attack-vectors-under-kubernetes.html</guid><description>This document is mainly meant to demonstrate the dangers of Docker privileged mode, so please proceed with caution. Users without CLI access can copy the example YAML and directly create cluster workloads such as Pod, Job, and DaemonSet to carry out the operations.
1. Directly Deleting All Resources If you can log in to the machine, pack your things, and run the command:</description><dc:creator>微信公众号</dc:creator><category>Kubernetes</category><category>Security</category><category>Attack Vectors</category><category>Operations</category><category>Docker</category><category>Troubleshooting</category></item><item><title>How to Debug a Container on the Host and Operate the Host from Inside a Container</title><link>https://www.chenshaowen.com/en/blog/operate-host-in-container-and-debug-container-on-host.html</link><pubDate>Mon, 11 Jan 2021 00:00:00 +0000</pubDate><atom:modified>Mon, 11 Jan 2021 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/operate-host-in-container-and-debug-container-on-host.html</guid><description>1. A Strange Requirement My boss had a strange requirement: use a single kubeconfig file to fetch all kinds of host status information, such as the process list and process states.
My first reaction was that he must not understand containers — how could anyone use them that way, and if you were going to use them that way, why use containers at all?</description><dc:creator>微信公众号</dc:creator><category>Containers</category><category>Security</category><category>Kubernetes</category><category>Docker</category><category>Operations</category></item><item><title>How to Integrate Kata into a Kubernetes Cluster</title><link>https://www.chenshaowen.com/en/blog/how-to-integrate-kata-in-kubernetes-cluster.html</link><pubDate>Sun, 30 Aug 2020 00:00:00 +0000</pubDate><atom:modified>Sun, 30 Aug 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-integrate-kata-in-kubernetes-cluster.html</guid><description>1. What Problem Kata Solves Security and isolation are what make Kata Container stand out from Docker Container.
Kata Container comes from the merger of the Intel Clear Containers and Hyper runV projects. Intel Clear Containers used Intel VT-x technology to provide containers through lightweight virtual machines, solving the security problem while delivering excellent performance.</description><dc:creator>微信公众号</dc:creator><category>Kubernetes</category><category>Kata</category><category>Containers</category><category>Security</category><category>Operations</category><category>Virtualization</category></item><item><title>Incomplete Data When Using Base64 to Decode JWT Playload</title><link>https://www.chenshaowen.com/en/blog/incomplete-data-using-base64-decoding-jwt-playload.html</link><pubDate>Mon, 08 Jun 2020 00:00:00 +0000</pubDate><atom:modified>Mon, 08 Jun 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/incomplete-data-using-base64-decoding-jwt-playload.html</guid><description>When Base64-decoding a JWT, I found that the JSON data was incomplete. This article mainly introduces the relevant knowledge and solves this problem. 1. Introduction to JWT JWT passes authentication by setting Authorization: Bearer &amp;lt;token&amp;gt; in the Header. A JWT Token is a Base64-encoded string joined by dots, something like</description><dc:creator>微信公众号</dc:creator><category>Go</category><category>JWT</category><category>Encoding</category><category>Base64</category><category>Security</category><category>R&amp;D</category></item><item><title>SELinux and iptables</title><link>https://www.chenshaowen.com/en/blog/selinux-and-iptables-on-linux.html</link><pubDate>Fri, 21 Sep 2018 00:00:00 +0000</pubDate><atom:modified>Fri, 21 Sep 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/selinux-and-iptables-on-linux.html</guid><description>While working on servers recently, I ran into a few concepts I wasn&amp;rsquo;t clear about, so I looked up some references and organized them as follows. 1. The BLP Security Model The model divides the entities in an information system into two parts: Subject: the entity performing the operations, such</description><dc:creator>微信公众号</dc:creator><category>Security</category><category>Linux</category><category>iptables</category><category>SELinux</category><category>Operations</category></item><item><title>Frontend-Backend Symmetric Encrypted Transmission - AES</title><link>https://www.chenshaowen.com/en/blog/symmetric-encrypted-transmission-of-aes.html</link><pubDate>Wed, 26 Jul 2017 18:52:18 +0000</pubDate><atom:modified>Wed, 26 Jul 2017 18:52:18 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/symmetric-encrypted-transmission-of-aes.html</guid><description>1. Basic Concepts Symmetric encryption: Symmetric encryption is an encryption method that uses a single-key cryptosystem, in which the same key is used both to encrypt and to decrypt the information. Because it is fast, it is often used to encrypt the transmission of large amounts of data. DES (Data</description><dc:creator>微信公众号</dc:creator><category>Security</category><category>Frontend</category><category>Backend</category><category>Encryption</category><category>R&amp;D</category></item><item><title>Django Forms Functionality</title><link>https://www.chenshaowen.com/en/blog/django-forms-function.html</link><pubDate>Fri, 21 Jul 2017 21:29:40 +0000</pubDate><atom:modified>Fri, 21 Jul 2017 21:29:40 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/django-forms-function.html</guid><description>1. Automatically Generating HTML Form Elements A Widget is the tool used to render an HTML element. Specifying a widget 1 2 3 4 5 6 from django import forms class CommentForm(forms.Form): name = forms.CharField() url = forms.URLField() comment = forms.CharField(widget=forms.Textarea) Output of CommentForm().as_table() 1 2 3 4 5 6</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Python</category><category>Security</category><category>R&amp;D</category></item><item><title>Permission Management in Django REST Framework</title><link>https://www.chenshaowen.com/en/blog/permissions-of-django-rest-framework.html</link><pubDate>Fri, 07 Jul 2017 06:47:19 +0000</pubDate><atom:modified>Fri, 07 Jul 2017 06:47:19 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/permissions-of-django-rest-framework.html</guid><description>1. Permission Management in DRF Permission management in Django REST Framework consists of two parts.
One is Authentication. It specifies how the user is authenticated, obtaining request.user. The other is Permissions. It performs permission control over Django resources and user categories. 1.1 Authentication Methods The relevant source is in the rest_framework/authentication.</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Python</category><category>Backend</category><category>Security</category><category>API</category><category>Permissions</category><category>R&amp;D</category></item><item><title>Arachni Security Scanner Source Code Analysis (Part 1)</title><link>https://www.chenshaowen.com/en/blog/source-code-analysis-of-arachni-1.html</link><pubDate>Fri, 16 Jun 2017 21:02:22 +0000</pubDate><atom:modified>Fri, 16 Jun 2017 21:02:22 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/source-code-analysis-of-arachni-1.html</guid><description>Arachni is a web security vulnerability scanner built on the Ruby on Rails framework.
1. Ruby on Rails Ruby on Rails, abbreviated ROR, is a web framework that consists of two parts: the Ruby language and the Rails framework. Ruby had always been popular in Japan, until 2004, when a 26-year-old Dane, David Heinemeier Hansson, proposed the web framework Rails.</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Security</category><category>Source Code</category><category>R&amp;D</category><category>Ruby</category></item><item><title>XSS Cheat Sheet</title><link>https://www.chenshaowen.com/en/blog/xss-cheat-sheet.html</link><pubDate>Sat, 20 May 2017 09:12:31 +0000</pubDate><atom:modified>Sat, 20 May 2017 09:12:31 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/xss-cheat-sheet.html</guid><description>If you use the Chrome browser to test XSS vectors, disable the browser&amp;rsquo;s XSS interception first. First, close all Chrome browser processes, then run:
1 chrome.exe -args --disable-xss-auditor --args --disable-web-security Enter non-web-safe mode.
1. Injecting HTML/JavaScript with the &amp;lt;&amp;gt; tags 1 &amp;lt;script&amp;gt;alert(&amp;#39;XSS&amp;#39;)&amp;lt;/script&amp;gt; 1 &amp;#39;&amp;#39;;!--&amp;#34;&amp;lt;XSS&amp;gt;=&amp;amp;{()} 1 2 //The quotes around SRC can be omitted &amp;lt;SCRIPT SRC=http://ha.</description><dc:creator>微信公众号</dc:creator><category>Security</category><category>XSS</category><category>R&amp;D</category><category>Vulnerability</category><category>Frontend</category></item><item><title>XSS Principles and Construction</title><link>https://www.chenshaowen.com/en/blog/principle-and-construction-of-xss.html</link><pubDate>Tue, 16 May 2017 20:04:53 +0000</pubDate><atom:modified>Tue, 16 May 2017 20:04:53 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/principle-and-construction-of-xss.html</guid><description>XSS is an attack technique that executes JavaScript in the frontend. With the popularity of UGC sites, the data generated by users has surged, and the ever-denser network of data blocks makes it easier to carry out and spread XSS. The damage XSS causes includes: stealing user cookies and personal information; hijacking sessions and manipulating users&amp;rsquo; network data; launching DDoS attacks; tampering with pages, popping up ads, and so on.</description><dc:creator>微信公众号</dc:creator><category>Security</category><category>JavaScript</category><category>XSS</category><category>R&amp;D</category></item><item><title>Permission Control in Django</title><link>https://www.chenshaowen.com/en/blog/django-permissions-control.html</link><pubDate>Sun, 22 Jan 2017 09:23:45 +0000</pubDate><atom:modified>Sun, 22 Jan 2017 09:23:45 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/django-permissions-control.html</guid><description>1. Django Built-in Permission Management 1.1 Permission Categories Permission Used to define User A&amp;rsquo;s permission on Task. User If User A has permission on Model B, then User A has the corresponding permission on all instances in Model B. The user_permission field of the User object is used to manage</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Development</category><category>Permissions</category><category>Python</category><category>R&amp;D</category><category>Learning</category><category>Security</category><category>RBAC</category><category>Authentication</category></item><item><title>Learning and Using BWAPP</title><link>https://www.chenshaowen.com/en/blog/study-of-bwapp.html</link><pubDate>Sun, 25 Dec 2016 15:38:42 +0000</pubDate><atom:modified>Sun, 25 Dec 2016 15:38:42 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/study-of-bwapp.html</guid><description>1. Introduction to BWAPP buggy web Application, abbreviated BWAPP, is an open-source web application that packs in all kinds of common and recent vulnerabilities, with the goal of helping security enthusiasts, developers, and students find and prevent web vulnerabilities. It contains more than 100 vulnerabilities, covering every major known web vulnerability, including the OWASP Top 10 security risks, and most importantly it already includes the OpenSSL and ShellShock vulnerabilities.</description><dc:creator>微信公众号</dc:creator><category>Security</category><category>Network</category><category>Learning</category><category>BWAPP</category></item></channel></rss>