<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikicyber.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AdminUser</id>
	<title>WikiCyber - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wikicyber.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AdminUser"/>
	<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php/Special:Contributions/AdminUser"/>
	<updated>2026-09-24T05:38:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=132</id>
		<title>Help:Your first article</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=132"/>
		<updated>2026-09-18T20:05:37Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Updated &amp;quot;Dont&amp;#039;s section with new rule&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The basics ==&lt;br /&gt;
&lt;br /&gt;
WikiCyber articles go through three stages: &#039;&#039;&#039;drafting&#039;&#039;&#039; in your personal sandbox, &#039;&#039;&#039;submission&#039;&#039;&#039; for review, and &#039;&#039;&#039;publication&#039;&#039;&#039; to the main wiki. This guide walks through all three.&lt;br /&gt;
&lt;br /&gt;
== Before you start writing ==&lt;br /&gt;
&lt;br /&gt;
=== Pick a topic you actually know or can research well ===&lt;br /&gt;
&lt;br /&gt;
The strongest WikiCyber articles come from editors who either work in the area professionally, have studied it formally, or are willing to do serious research to get the details right. Be honest with yourself about which category you&#039;re in, as it determines your sourcing obligations (see below).&lt;br /&gt;
&lt;br /&gt;
=== Check whether the article already exists ===&lt;br /&gt;
&lt;br /&gt;
Search the wiki before you start. If a related article exists, consider whether your topic is better as:&lt;br /&gt;
* A new standalone article&lt;br /&gt;
* A new section within the existing article&lt;br /&gt;
* An expansion of an existing but underdeveloped section&lt;br /&gt;
&lt;br /&gt;
Duplicate or heavily overlapping articles fragment coverage and make the wiki harder to navigate. Reviewers may ask you to merge your draft into an existing page instead of publishing separately.&lt;br /&gt;
&lt;br /&gt;
=== Gather your sources first ===&lt;br /&gt;
&lt;br /&gt;
Before writing a word, collect what you&#039;ll be citing:&lt;br /&gt;
* Official documentation (RFCs, vendor docs, NIST/OWASP publications, CVE entries)&lt;br /&gt;
* Academic papers or textbooks&lt;br /&gt;
* Reputable community sources like well-maintained GitHub repositories, established security research blogs, credible conference talks (DEF CON, Black Hat, etc.), or established YouTube channels in the field&lt;br /&gt;
&lt;br /&gt;
Skim them and take notes before drafting. Trying to find sources &#039;&#039;after&#039;&#039; writing a claim tends to produce weaker, cherry-picked citations.&lt;br /&gt;
&lt;br /&gt;
=== Does this topic belong on WikiCyber? ===&lt;br /&gt;
&lt;br /&gt;
Ask yourself:&lt;br /&gt;
* Is this a real, established topic in cybersecurity, IT, or a closely related field?&lt;br /&gt;
* Can it be covered with real depth, not just a stub definition?&lt;br /&gt;
* Is there enough legitimate source material to support it?&lt;br /&gt;
&lt;br /&gt;
If yes to all three, it&#039;s a good candidate. If you&#039;re unsure, ask an administrator!&lt;br /&gt;
&lt;br /&gt;
=== Look at similar articles ===&lt;br /&gt;
&lt;br /&gt;
Before drafting, read one or two existing WikiCyber articles on related topics. Pay attention to how they build from overview to advanced material, as this is the structure reviewers will expect from your draft too.&lt;br /&gt;
&lt;br /&gt;
== Writing your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Choose an editing tool ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber supports both:&lt;br /&gt;
* &#039;&#039;&#039;VisualEditor&#039;&#039;&#039;: a visual, formatted editing experience. Easier for prose-heavy sections.&lt;br /&gt;
* &#039;&#039;&#039;Source editing&#039;&#039;&#039; (wikitext): more control, and necessary for some formatting like citation templates or code blocks. Most experienced editors end up using source editing for technical articles, since it makes handling code snippets and references easier.&lt;br /&gt;
&lt;br /&gt;
You can switch between the two at any time using the tabs at the top of the edit screen.&lt;br /&gt;
&lt;br /&gt;
=== Where to start writing ===&lt;br /&gt;
&lt;br /&gt;
Draft in your personal sandbox: &amp;lt;code&amp;gt;Special:MyPage/sandbox&amp;lt;/code&amp;gt;. This is your own space to write, revise, and abandon drafts without affecting the live wiki.&lt;br /&gt;
&lt;br /&gt;
=== Structuring your content ===&lt;br /&gt;
&lt;br /&gt;
Follow WikiCyber&#039;s structure:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Overview&#039;&#039;&#039;: a plain-language summary. Anyone should be able to read this and understand what the topic is and why it matters.&lt;br /&gt;
# &#039;&#039;&#039;Core concepts&#039;&#039;&#039;: these are the foundational mechanics required before going deeper.&lt;br /&gt;
# &#039;&#039;&#039;Deeper mechanics&#039;&#039;&#039;: implementation details, protocol-level behavior, real configuration or code examples, attack/defense specifics. This is where WikiCyber articles should go further than a general-purpose encyclopedia.&lt;br /&gt;
# &#039;&#039;&#039;Advanced / practitioner notes&#039;&#039;&#039; (optional): nuance for someone working in the field: pitfalls, current best practices, tooling, open problems, etc.&lt;br /&gt;
&lt;br /&gt;
Use section headings (&amp;lt;code&amp;gt;== Heading ==&amp;lt;/code&amp;gt;) to mark divisions clearly.&lt;br /&gt;
&lt;br /&gt;
=== Citing sources ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber has a specific sourcing policy:&lt;br /&gt;
&lt;br /&gt;
; Editors with at least an Associate&#039;s degree (or higher) in Computer Science, Cybersecurity, or a closely related field&lt;br /&gt;
: May cite their own expertise directly, without an external source, &#039;&#039;&#039;within their area of expertise&#039;&#039;&#039;. State your credential on your user page so reviewers can verify it.&lt;br /&gt;
&lt;br /&gt;
; Editors without such a credential&lt;br /&gt;
: Must cite an external source for non-trivial claims, using &amp;lt;code&amp;gt;&amp;amp;lt;ref&amp;amp;gt;&amp;lt;/code&amp;gt; tags. Acceptable sources include official documentation, academic papers, reputable security research, and credible community sources (established GitHub repos, respected YouTube channels, conference talks).&lt;br /&gt;
&lt;br /&gt;
Regardless of credential: if a claim is surprising, safety-relevant, or likely to be challenged, cite a source anyway.&lt;br /&gt;
&lt;br /&gt;
=== AI-assisted writing ===&lt;br /&gt;
&lt;br /&gt;
AI tools may be used to help draft or edit content. However, &#039;&#039;&#039;the editor remains fully responsible for accuracy&#039;&#039;&#039;, inaccuracies introduced by AI assistance are treated the same as any other editing error. Verify anything AI-generated against a real source before submitting, especially specific technical details (command syntax, version numbers, CVE identifiers, protocol behavior) where AI tools are prone to mistakes and hallucinations.&lt;br /&gt;
&lt;br /&gt;
=== Dos and don&#039;ts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do:&#039;&#039;&#039;&lt;br /&gt;
* Build from simple to advanced&lt;br /&gt;
* Cite according to the policy above&lt;br /&gt;
* Use real, working code/config examples where relevant, clearly marked as such&lt;br /&gt;
* Keep terminology consistent with how it&#039;s used elsewhere on the wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t:&#039;&#039;&#039;&lt;br /&gt;
* Copy text from other websites or documentation verbatim&lt;br /&gt;
* Leave advanced sections uncited even if the overview section is well-sourced&lt;br /&gt;
* Submit a draft that&#039;s still an outline&lt;br /&gt;
* Add promotional links (your own website, donation or &#039;buy me a coffee&#039; pages, affiliate links). These belong only on your user profile page.&lt;br /&gt;
&lt;br /&gt;
== Publish your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Pre-publication checklist ===&lt;br /&gt;
&lt;br /&gt;
Before submitting, check that your draft:&lt;br /&gt;
* Has a clear overview any reader could follow&lt;br /&gt;
* Builds logically from basic to advanced material&lt;br /&gt;
* Is properly sourced according to your citation tier&lt;br /&gt;
* Doesn&#039;t duplicate an existing article&#039;s coverage&lt;br /&gt;
&lt;br /&gt;
=== Ask for a review ===&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Submit}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to the very top of your draft page. This will:&lt;br /&gt;
* Display a notice that the draft has been submitted for review&lt;br /&gt;
* Add the page to the review queue, where an experienced editor will find it&lt;br /&gt;
&lt;br /&gt;
A reviewer will look at your draft and either publish it to the main wiki or send it back with feedback. You can keep editing while you wait.&lt;br /&gt;
&lt;br /&gt;
=== After review ===&lt;br /&gt;
&lt;br /&gt;
If approved, your draft is moved into the main article space and becomes a normal WikiCyber page. An administrator approves a draft with the &#039;&#039;&#039;Approve draft&#039;&#039;&#039; button in its &amp;quot;submitted for review&amp;quot; notice, and you will be emailed when it is published.&lt;br /&gt;
&lt;br /&gt;
== Help is available ==&lt;br /&gt;
&lt;br /&gt;
If you get stuck at any point, reach out to an administrator via [[Special:ListUsers/sysop]].&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=PAM_(Pluggable_Authentication_Module)&amp;diff=128</id>
		<title>PAM (Pluggable Authentication Module)</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=PAM_(Pluggable_Authentication_Module)&amp;diff=128"/>
		<updated>2026-09-18T19:53:26Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: AdminUser moved page Draft:PAM (Pluggable Authentication Module) to PAM (Pluggable Authentication Module) without leaving a redirect: Approved by AdminUser&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/account_policies/pam (source: docs/linux/account_policies/pam.md) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- REVIEW: source used JSX (JSX style object); layout-only divs were dropped. Compare with the original. --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Kirill Shore&lt;br /&gt;
&lt;br /&gt;
Last Updated: 10-02-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is PAM? ==&lt;br /&gt;
&lt;br /&gt;
PAM stands for Pluggable Authentication Module. It&#039;s a framework that provides important ways to create authentication (and related) programs indipendently of the applications that use them. PAM may be used to handle tasks like verifying a username and password, checking biometric data, or working with external systems like Kerberos, LDAP, or 2FA. PAM systems administartors have the ability to then plug in different authentication module methods (like 2FA) without changing/rewriting applications/programs. I.e. you may switch from password authentication to security keys. Fun fact: the applications themselves don&#039;t know how authentication is performed. The only thing they do is ask pam if the user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
== Pam Basics ==&lt;br /&gt;
&lt;br /&gt;
There are several PAM services (not to be confused with modules), as an example:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt;, which handles authentication for remote logins via SSH. It validates credentials like passwords, keys, MFA, etc., enforces different policies like banning the ability to login as root, or requiring 2FA. It can also prevent brute force attempts when combined with modules like pam_tally2.&lt;br /&gt;
* &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, it controls authentication for users who are logging in via a text console (i.e. tty). It verifies the username and password, checks if the account is locked/expired, and applies restrictions like time of day logins.&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, manages authentication when a user attempts to run commands as another user (i.e. su). It prompts the user for password before escalating privelages. It also has the ability to timeout someone who is root and force them to re-login. On many distros, su cannot be run alone to switch to root, as the root account is disabled by default (meaning its password is locked). Sudo su is instead used. Sudo checks if your user in the sudo or wheel group, asks for your password, and then runs su as root so that there is no need for a root password. Each PAM service also has its own file in &amp;lt;code&amp;gt;/etc/pam.d&amp;lt;/code&amp;gt;. These files define which modules are being user (modules are shared libraries that perform special security functions, such as user authetication, account management, session management, or password management). Some PAM modules are, but not limited to:&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_unix.so&amp;lt;/code&amp;gt; (Default PAM module)&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_tally2.so&amp;lt;/code&amp;gt; (Which is used to count login attempts and lock an account after a specified number of failed attempts)&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_google_authenticator.so&amp;lt;/code&amp;gt; (Which provides 2FA support if you use the Google Authenticator app on a mobile device)&lt;br /&gt;
&lt;br /&gt;
== PAM Security Principles ==&lt;br /&gt;
&lt;br /&gt;
In any Cybersecurity industry, the idea of Least Privilege is important, in order to prevent users from having more power than they need. For example, a teller for FreedomBank has to process a transaction, depositing phyisical cash and adding it to the customers bank account. This employee should not, nor do they need, access to information (unless for verification purposes) such as the tiles or details of past transactions other than their amounts, investment accounts, debts or loans, etc. In this case, the teller is given the minimum privileges to do their job, and nothing more. But how can PAM be used in this case? Let&#039;s suppose that the teller logs into a banking application or a Linux shell for deposits. In &amp;lt;code&amp;gt;/etc/pam.d/deposit_app&amp;lt;/code&amp;gt;, we would configure PAM to allow teller group users or higher to authenticate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_unix.so&lt;br /&gt;
account required    pam_succeed_if.so   user    ingroup tellers&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Note that the above is a basic configuration that will ONLY allow tellers to login. An example of a more realistic configuration is below)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_faillock.so preauth silent  deny=5  unlock_time=600 # (this would lockout the account to prevent brute-force attacks&lt;br /&gt;
auth    required    pam_unix.so try_first_pass # (primary password authentication)&lt;br /&gt;
auth    required    pam_u2f.so  authfile=/etc/security/u2f_mappings cue # (this would require 2FA via FIDO/U2F security key, and store mappings in /etc/security/u2f_mappings)&lt;br /&gt;
auth    required    pam_faillock.so authfail # (count failures, records them in /var/run/faillock. If the amount of failures exceeds the threshold, the account is locked for the configured time)&lt;br /&gt;
auth    sufficient  pam_faillock.so reset # (If this module succeeds---thus the user authenticates---then it clears any failed login attempts for that user, and resest the counter to 0 for that user)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== PAM Control Flags and Keywords ==&lt;br /&gt;
&lt;br /&gt;
Now, you may be asking: what do those flags, like &amp;lt;code&amp;gt;auth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sufficient&amp;lt;/code&amp;gt; and etc. mean? Well, these words are PAM control flags, and they decide when a specific module is invoked, how its result is interpreted, and whwether or not pam keeps processing.&lt;br /&gt;
&lt;br /&gt;
First, there are the facility keywords. These keyowrds tell PAM which phase or type of check the line belongs to.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;auth&amp;lt;/code&amp;gt; -&amp;amp;gt; This verifies a users identity (i.e. Password check, 2FA, smartcard)&lt;br /&gt;
* &amp;lt;code&amp;gt;account&amp;lt;/code&amp;gt; -&amp;amp;gt; This determines if the account is allowed access. (i.e. Is the account expired? Is the user allowed to login from 21:00-08:00?)&lt;br /&gt;
* &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; -&amp;amp;gt; This handles changing or updating credentials. (i.e. Enforcing strong password rules when a user runs the command &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;session&amp;lt;/code&amp;gt; -&amp;amp;gt; This manages session startup and shutdown. (i.e. Logging session start/stop, mounting home directiories, applying resource limits)&lt;br /&gt;
&lt;br /&gt;
Next, we have the control flags. These define what pam should do with the results of the module.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; -&amp;amp;gt; This instructs that the module must succeed in order for authentication to succeed. However, if the module fails, PAM will continue processing, to prevent the user from knowing which check had failed. If any &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; module fails, the outcome will be fail, no matter if other modules succeeded.&lt;br /&gt;
* &amp;lt;code&amp;gt;requisite&amp;lt;/code&amp;gt; -&amp;amp;gt; This is mostly the same as &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; above. However, instead of continuing upon failure, PAM will stop immediatley and deny access.&lt;br /&gt;
* &amp;lt;code&amp;gt;sufficient&amp;lt;/code&amp;gt; -&amp;amp;gt; If the module succeeds, no further checks are required, and access will be immediatley granted. However, if the module fails, then PAM will keep going.&lt;br /&gt;
* &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt; -&amp;amp;gt; Whether or not the success or failure of that module will be considered is if it is the only module of that type. Otherwise, it&#039;ll be ignored. This is mainly used for logging modules and non-critical checks.&lt;br /&gt;
* &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; -&amp;amp;gt; This isn&#039;t a flag, but actually a directive. It means &#039;include another PAM configuration file here&#039;. It is mostly used for reusing common configurations.&lt;br /&gt;
&lt;br /&gt;
== PAM Modules ==&lt;br /&gt;
&lt;br /&gt;
Most linux systems come pre-installed with PAM and some modules, whcih are commonly located in &amp;lt;code&amp;gt;/lib/x86_64-linux-gnu/security/&amp;lt;/code&amp;gt; (on Debian/Ubuntu distros; path will/,ay differ on others). Below is a list of common modules, what each of them do, and vulnerabilities/misconfigurations.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_unix&amp;lt;/code&amp;gt; Handles traditional UNIX authentication (passwords stored in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;). Vulnerability: If the passwords in &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; are compromised, or weak passwords are used, threat actors can brute force credentials.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_cracklib&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_pwquality&amp;lt;/code&amp;gt; Enforces password strength rules (length, complexity, dictionary checks). Vulnerability: If module isn&#039;t used, weak passwords will be used. If misconfigured, the rules may bee too relaxed (meaning simple passwords) or too strict (meaning passwords complex enough that most users would write their passwords on a sticky note... which they would stick to their monitor).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_limits&amp;lt;/code&amp;gt; Applies limits defined in &amp;lt;code&amp;gt;/etc/security/limits.conf&amp;lt;/code&amp;gt; (i.e., max processes, file sizes). Vulenrability: Weak or missing limits will allow Denial of Service (Dos) via fork bombs or resource exhaustion.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_securetty&amp;lt;/code&amp;gt; Restricts &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; login to &amp;amp;quot;secure&amp;amp;quot; terminals that are listed in &amp;lt;code&amp;gt;/etc/securetty&amp;lt;/code&amp;gt;. Vulnerability: If misconfigured, threat actors could login as root from unsafe terminals (i.e. remote consoles).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_nologin&amp;lt;/code&amp;gt; Blocks non-root users from logging in if &amp;lt;code&amp;gt;/etc/nologin&amp;lt;/code&amp;gt; exists (can be used when editing an account to prevent access to it during a timeframe when root permissions are being changed, i.e. an employee being demoted in a company). Vulnerability: If neglected, it may unintentionally lock out legitimate users, or vice-versa not be deployed when it should&#039;ve been.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_time&amp;lt;/code&amp;gt; Restricts logins based on time of day rules in &amp;lt;code&amp;gt;/etc/security/time.conf&amp;lt;/code&amp;gt;. Vulnerability: Misconfiguration could allow off hours logins to systems when it should be denied (i.e. a bank representative accessing users&#039; accounts at 2am).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_access&amp;lt;/code&amp;gt; Controls access based on user and host rules from &amp;lt;code&amp;gt;/etc/security/accesss.conf&amp;lt;/code&amp;gt;. Vulnerability: Misconfiguration can grant the wrong users access and deny access to the users that need it.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_tally&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_tally2&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_faillock&amp;lt;/code&amp;gt; Counts failed login attempts and can lock accounts after there were too many failed attempts. Vulnerability: &amp;lt;code&amp;gt;pam_tally&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pam_tally2&amp;lt;/code&amp;gt; have been deprecated due to counting errors, possible username leakage, and more. Replaced with &amp;lt;code&amp;gt;pam_faillock&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_wheel&amp;lt;/code&amp;gt; Restricts the &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; command to users in the &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt; (also called &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;) group. Vulnerability: Exploiting [https://nvd.nist.gov/vuln/detail/CVE-2003-0388 CVE-2003-0388] could allow a threat actor to gain &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; privilages, then modify files like &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;pam_exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_exec&amp;lt;/code&amp;gt; Runs an external program or script during authentication. Vulnerability: Misconfiguration may result in running incorrect programs during authentication.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_systemd&amp;lt;/code&amp;gt; Integrates uers sessions with systmd. Vulneravility: could be exploited to read coredump information, which may include &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;. [https://nvd.nist.gov/vuln/detail/CVE-2025-4598 CVE-2025-4598].&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_xauth&amp;lt;/code&amp;gt; Handles X11 forwarding authentication for X11 graphical sessions. Vulnerability: If misconfigured, an insecure forwarding setup may allow [https://www.tenable.com/plugins/nessus/31737?utm_source=chatgpt.com X11 session hijacking].&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_umask&amp;lt;/code&amp;gt; Sets the default file creation permissions (umask) for users. Vulnerability: if minimum permissions are not implemented, users may be able to create world-readable files that leak data (i.e., private keys and SSH data like ~/.ssh/id_rsa).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_group&amp;lt;/code&amp;gt; Assigns users to groups at login based on rules. Vulnerability: Misconfiguration could result in users being granted unintended group privilages.&lt;br /&gt;
&lt;br /&gt;
=== Practice ===&lt;br /&gt;
&lt;br /&gt;
Can you instruct PAM to have a user login, verify via Google authenticator (&amp;lt;code&amp;gt;pam_google_authenticator.so&amp;lt;/code&amp;gt;), and solve a Captcha (&amp;lt;code&amp;gt;/usr/local/sbin/pam_captcha.sh&amp;lt;/code&amp;gt;) before being granted access? If the user fails the captcha three times, the account is immediatley locked.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Solution (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_faillock.so preauth silent deny=3   unlock_time=900&lt;br /&gt;
auth    required    pam_unix.so try_first_pass&lt;br /&gt;
auth    required    pam_google_authenticator.so&lt;br /&gt;
auth    required    pam_exec.so quiet   log=/var/log/pam_captcha.log seteuid /usr/local/sbin/pam_captcha.sh&lt;br /&gt;
auth    required    pam_faillock.so authfail&lt;br /&gt;
auth    sufficient  pam_faillock.so reset&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Explanation (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
The first line is a pre-auth. It defines that after 3 total auth failures, the account will be locked.&amp;lt;br /&amp;gt; The second line defines that the primary authentication factor that must be met is the password.&amp;lt;br /&amp;gt; The third line defines that the secondary authentication factor that must be met is getting a code from Google Authenticator.&amp;lt;br /&amp;gt; The fourth line executes a captcha via an external script, and the script will pass to PAM whether or not it failed.&amp;lt;br /&amp;gt; The fith line counts failures.&amp;lt;br /&amp;gt; The sixth line resets the failure counter upon success.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open-ended question:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first line is a pre-auth. It defines that after 3 total auth failures, the account will be locked.&amp;lt;br /&amp;gt; The second line defines that the primary authentication factor that must be met is the password.&amp;lt;br /&amp;gt; The third line defines that the secondary authentication factor that must be met is getting a code from Google Authenticator.&amp;lt;br /&amp;gt; The fourth line executes a captcha via an external script, and the script will pass to PAM whether or not it failed.&amp;lt;br /&amp;gt; The fith line counts failures.&amp;lt;br /&amp;gt; The sixth line resets the failure counter upon success.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open-ended question:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why do you think &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; was used instead of &amp;lt;code&amp;gt;requisite&amp;lt;/code&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PAM Vulnerabilites ==&lt;br /&gt;
&lt;br /&gt;
Although PAM seems to be a very straightforward and secure authentication method, it introduces serious security risks if it is not managed correctly.&lt;br /&gt;
&lt;br /&gt;
Most exploits boil down to attackers using [https://www.broadcom.com/support/security-center/protection-bulletin/plague-a-linux-backdoor malicious module] to create backdoors. Because PAM modules run with higher privileges, any compromised or malicious modules can log credentials, grant unauthorized access, or lock out accounts. Current PAM vulnerabilites can be found [https://www.cve.org/CVERecord/SearchResults?query=pam+linux here].&lt;br /&gt;
&lt;br /&gt;
== PAM Auditing ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/usr/lib64/security&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/pam.d&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/security&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/log/secure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.kirillshore.com My wesbite]&lt;br /&gt;
&lt;br /&gt;
[https://buymeacoffee.com/kirillshore Buy me a coffee]&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
&lt;br /&gt;
https://www.redhat.com/en/blog/pam-configuration-file&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.redhat.com/en/blog/pluggable-authentication-modules-pam&amp;lt;br /&amp;gt;&lt;br /&gt;
https://unit42.paloaltonetworks.com/linux-pam-apis/&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.broadcom.com/support/security-center/protection-bulletin/plague-a-linux-backdoor&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.cyberark.com/resources/blog/plague-malware-exploits-pluggable-authentication-module-to-breach-linux-systems&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This Wiki page was authored by Kirill Shore. Within cypat.guide, this content is licensed under CC-BY 4.0. All use outside of cypat.guide is governed by the Shore-Roger Enterprises End User License Agreement (https://www.kirillshore.com/eula). Proper attribution to Kirill Shore as the original author is required. Unauthorized copying, modification, or redistribution without appropriate credit constitutes plagiarism and may be subject to U.S. copyright law.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Account Policies|025]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=PAM_(Pluggable_Authentication_Module)&amp;diff=127</id>
		<title>PAM (Pluggable Authentication Module)</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=PAM_(Pluggable_Authentication_Module)&amp;diff=127"/>
		<updated>2026-09-18T19:53:26Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Approved by AdminUser: removing the submission notice and Pending review category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Migrated from https://cypat.guide/docs/linux/account_policies/pam (source: docs/linux/account_policies/pam.md) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- REVIEW: source used JSX (JSX style object); layout-only divs were dropped. Compare with the original. --&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Author(s): Kirill Shore&lt;br /&gt;
&lt;br /&gt;
Last Updated: 10-02-2025&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Recommended Prerequisites (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== What is PAM? ==&lt;br /&gt;
&lt;br /&gt;
PAM stands for Pluggable Authentication Module. It&#039;s a framework that provides important ways to create authentication (and related) programs indipendently of the applications that use them. PAM may be used to handle tasks like verifying a username and password, checking biometric data, or working with external systems like Kerberos, LDAP, or 2FA. PAM systems administartors have the ability to then plug in different authentication module methods (like 2FA) without changing/rewriting applications/programs. I.e. you may switch from password authentication to security keys. Fun fact: the applications themselves don&#039;t know how authentication is performed. The only thing they do is ask pam if the user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
== Pam Basics ==&lt;br /&gt;
&lt;br /&gt;
There are several PAM services (not to be confused with modules), as an example:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt;, which handles authentication for remote logins via SSH. It validates credentials like passwords, keys, MFA, etc., enforces different policies like banning the ability to login as root, or requiring 2FA. It can also prevent brute force attempts when combined with modules like pam_tally2.&lt;br /&gt;
* &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, it controls authentication for users who are logging in via a text console (i.e. tty). It verifies the username and password, checks if the account is locked/expired, and applies restrictions like time of day logins.&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, manages authentication when a user attempts to run commands as another user (i.e. su). It prompts the user for password before escalating privelages. It also has the ability to timeout someone who is root and force them to re-login. On many distros, su cannot be run alone to switch to root, as the root account is disabled by default (meaning its password is locked). Sudo su is instead used. Sudo checks if your user in the sudo or wheel group, asks for your password, and then runs su as root so that there is no need for a root password. Each PAM service also has its own file in &amp;lt;code&amp;gt;/etc/pam.d&amp;lt;/code&amp;gt;. These files define which modules are being user (modules are shared libraries that perform special security functions, such as user authetication, account management, session management, or password management). Some PAM modules are, but not limited to:&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_unix.so&amp;lt;/code&amp;gt; (Default PAM module)&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_tally2.so&amp;lt;/code&amp;gt; (Which is used to count login attempts and lock an account after a specified number of failed attempts)&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_google_authenticator.so&amp;lt;/code&amp;gt; (Which provides 2FA support if you use the Google Authenticator app on a mobile device)&lt;br /&gt;
&lt;br /&gt;
== PAM Security Principles ==&lt;br /&gt;
&lt;br /&gt;
In any Cybersecurity industry, the idea of Least Privilege is important, in order to prevent users from having more power than they need. For example, a teller for FreedomBank has to process a transaction, depositing phyisical cash and adding it to the customers bank account. This employee should not, nor do they need, access to information (unless for verification purposes) such as the tiles or details of past transactions other than their amounts, investment accounts, debts or loans, etc. In this case, the teller is given the minimum privileges to do their job, and nothing more. But how can PAM be used in this case? Let&#039;s suppose that the teller logs into a banking application or a Linux shell for deposits. In &amp;lt;code&amp;gt;/etc/pam.d/deposit_app&amp;lt;/code&amp;gt;, we would configure PAM to allow teller group users or higher to authenticate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_unix.so&lt;br /&gt;
account required    pam_succeed_if.so   user    ingroup tellers&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Note that the above is a basic configuration that will ONLY allow tellers to login. An example of a more realistic configuration is below)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_faillock.so preauth silent  deny=5  unlock_time=600 # (this would lockout the account to prevent brute-force attacks&lt;br /&gt;
auth    required    pam_unix.so try_first_pass # (primary password authentication)&lt;br /&gt;
auth    required    pam_u2f.so  authfile=/etc/security/u2f_mappings cue # (this would require 2FA via FIDO/U2F security key, and store mappings in /etc/security/u2f_mappings)&lt;br /&gt;
auth    required    pam_faillock.so authfail # (count failures, records them in /var/run/faillock. If the amount of failures exceeds the threshold, the account is locked for the configured time)&lt;br /&gt;
auth    sufficient  pam_faillock.so reset # (If this module succeeds---thus the user authenticates---then it clears any failed login attempts for that user, and resest the counter to 0 for that user)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== PAM Control Flags and Keywords ==&lt;br /&gt;
&lt;br /&gt;
Now, you may be asking: what do those flags, like &amp;lt;code&amp;gt;auth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sufficient&amp;lt;/code&amp;gt; and etc. mean? Well, these words are PAM control flags, and they decide when a specific module is invoked, how its result is interpreted, and whwether or not pam keeps processing.&lt;br /&gt;
&lt;br /&gt;
First, there are the facility keywords. These keyowrds tell PAM which phase or type of check the line belongs to.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;auth&amp;lt;/code&amp;gt; -&amp;amp;gt; This verifies a users identity (i.e. Password check, 2FA, smartcard)&lt;br /&gt;
* &amp;lt;code&amp;gt;account&amp;lt;/code&amp;gt; -&amp;amp;gt; This determines if the account is allowed access. (i.e. Is the account expired? Is the user allowed to login from 21:00-08:00?)&lt;br /&gt;
* &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; -&amp;amp;gt; This handles changing or updating credentials. (i.e. Enforcing strong password rules when a user runs the command &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;session&amp;lt;/code&amp;gt; -&amp;amp;gt; This manages session startup and shutdown. (i.e. Logging session start/stop, mounting home directiories, applying resource limits)&lt;br /&gt;
&lt;br /&gt;
Next, we have the control flags. These define what pam should do with the results of the module.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; -&amp;amp;gt; This instructs that the module must succeed in order for authentication to succeed. However, if the module fails, PAM will continue processing, to prevent the user from knowing which check had failed. If any &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; module fails, the outcome will be fail, no matter if other modules succeeded.&lt;br /&gt;
* &amp;lt;code&amp;gt;requisite&amp;lt;/code&amp;gt; -&amp;amp;gt; This is mostly the same as &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; above. However, instead of continuing upon failure, PAM will stop immediatley and deny access.&lt;br /&gt;
* &amp;lt;code&amp;gt;sufficient&amp;lt;/code&amp;gt; -&amp;amp;gt; If the module succeeds, no further checks are required, and access will be immediatley granted. However, if the module fails, then PAM will keep going.&lt;br /&gt;
* &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt; -&amp;amp;gt; Whether or not the success or failure of that module will be considered is if it is the only module of that type. Otherwise, it&#039;ll be ignored. This is mainly used for logging modules and non-critical checks.&lt;br /&gt;
* &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; -&amp;amp;gt; This isn&#039;t a flag, but actually a directive. It means &#039;include another PAM configuration file here&#039;. It is mostly used for reusing common configurations.&lt;br /&gt;
&lt;br /&gt;
== PAM Modules ==&lt;br /&gt;
&lt;br /&gt;
Most linux systems come pre-installed with PAM and some modules, whcih are commonly located in &amp;lt;code&amp;gt;/lib/x86_64-linux-gnu/security/&amp;lt;/code&amp;gt; (on Debian/Ubuntu distros; path will/,ay differ on others). Below is a list of common modules, what each of them do, and vulnerabilities/misconfigurations.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_unix&amp;lt;/code&amp;gt; Handles traditional UNIX authentication (passwords stored in &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;). Vulnerability: If the passwords in &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt; are compromised, or weak passwords are used, threat actors can brute force credentials.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_cracklib&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_pwquality&amp;lt;/code&amp;gt; Enforces password strength rules (length, complexity, dictionary checks). Vulnerability: If module isn&#039;t used, weak passwords will be used. If misconfigured, the rules may bee too relaxed (meaning simple passwords) or too strict (meaning passwords complex enough that most users would write their passwords on a sticky note... which they would stick to their monitor).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_limits&amp;lt;/code&amp;gt; Applies limits defined in &amp;lt;code&amp;gt;/etc/security/limits.conf&amp;lt;/code&amp;gt; (i.e., max processes, file sizes). Vulenrability: Weak or missing limits will allow Denial of Service (Dos) via fork bombs or resource exhaustion.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_securetty&amp;lt;/code&amp;gt; Restricts &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; login to &amp;amp;quot;secure&amp;amp;quot; terminals that are listed in &amp;lt;code&amp;gt;/etc/securetty&amp;lt;/code&amp;gt;. Vulnerability: If misconfigured, threat actors could login as root from unsafe terminals (i.e. remote consoles).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_nologin&amp;lt;/code&amp;gt; Blocks non-root users from logging in if &amp;lt;code&amp;gt;/etc/nologin&amp;lt;/code&amp;gt; exists (can be used when editing an account to prevent access to it during a timeframe when root permissions are being changed, i.e. an employee being demoted in a company). Vulnerability: If neglected, it may unintentionally lock out legitimate users, or vice-versa not be deployed when it should&#039;ve been.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_time&amp;lt;/code&amp;gt; Restricts logins based on time of day rules in &amp;lt;code&amp;gt;/etc/security/time.conf&amp;lt;/code&amp;gt;. Vulnerability: Misconfiguration could allow off hours logins to systems when it should be denied (i.e. a bank representative accessing users&#039; accounts at 2am).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_access&amp;lt;/code&amp;gt; Controls access based on user and host rules from &amp;lt;code&amp;gt;/etc/security/accesss.conf&amp;lt;/code&amp;gt;. Vulnerability: Misconfiguration can grant the wrong users access and deny access to the users that need it.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_tally&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_tally2&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pam_faillock&amp;lt;/code&amp;gt; Counts failed login attempts and can lock accounts after there were too many failed attempts. Vulnerability: &amp;lt;code&amp;gt;pam_tally&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pam_tally2&amp;lt;/code&amp;gt; have been deprecated due to counting errors, possible username leakage, and more. Replaced with &amp;lt;code&amp;gt;pam_faillock&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_wheel&amp;lt;/code&amp;gt; Restricts the &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; command to users in the &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt; (also called &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;) group. Vulnerability: Exploiting [https://nvd.nist.gov/vuln/detail/CVE-2003-0388 CVE-2003-0388] could allow a threat actor to gain &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; privilages, then modify files like &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;pam_exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_exec&amp;lt;/code&amp;gt; Runs an external program or script during authentication. Vulnerability: Misconfiguration may result in running incorrect programs during authentication.&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_systemd&amp;lt;/code&amp;gt; Integrates uers sessions with systmd. Vulneravility: could be exploited to read coredump information, which may include &amp;lt;code&amp;gt;/etc/shadow&amp;lt;/code&amp;gt;. [https://nvd.nist.gov/vuln/detail/CVE-2025-4598 CVE-2025-4598].&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_xauth&amp;lt;/code&amp;gt; Handles X11 forwarding authentication for X11 graphical sessions. Vulnerability: If misconfigured, an insecure forwarding setup may allow [https://www.tenable.com/plugins/nessus/31737?utm_source=chatgpt.com X11 session hijacking].&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_umask&amp;lt;/code&amp;gt; Sets the default file creation permissions (umask) for users. Vulnerability: if minimum permissions are not implemented, users may be able to create world-readable files that leak data (i.e., private keys and SSH data like ~/.ssh/id_rsa).&lt;br /&gt;
* &amp;lt;code&amp;gt;pam_group&amp;lt;/code&amp;gt; Assigns users to groups at login based on rules. Vulnerability: Misconfiguration could result in users being granted unintended group privilages.&lt;br /&gt;
&lt;br /&gt;
=== Practice ===&lt;br /&gt;
&lt;br /&gt;
Can you instruct PAM to have a user login, verify via Google authenticator (&amp;lt;code&amp;gt;pam_google_authenticator.so&amp;lt;/code&amp;gt;), and solve a Captcha (&amp;lt;code&amp;gt;/usr/local/sbin/pam_captcha.sh&amp;lt;/code&amp;gt;) before being granted access? If the user fails the captcha three times, the account is immediatley locked.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Solution (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;auth    required    pam_faillock.so preauth silent deny=3   unlock_time=900&lt;br /&gt;
auth    required    pam_unix.so try_first_pass&lt;br /&gt;
auth    required    pam_google_authenticator.so&lt;br /&gt;
auth    required    pam_exec.so quiet   log=/var/log/pam_captcha.log seteuid /usr/local/sbin/pam_captcha.sh&lt;br /&gt;
auth    required    pam_faillock.so authfail&lt;br /&gt;
auth    sufficient  pam_faillock.so reset&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Explanation (click to expand)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
The first line is a pre-auth. It defines that after 3 total auth failures, the account will be locked.&amp;lt;br /&amp;gt; The second line defines that the primary authentication factor that must be met is the password.&amp;lt;br /&amp;gt; The third line defines that the secondary authentication factor that must be met is getting a code from Google Authenticator.&amp;lt;br /&amp;gt; The fourth line executes a captcha via an external script, and the script will pass to PAM whether or not it failed.&amp;lt;br /&amp;gt; The fith line counts failures.&amp;lt;br /&amp;gt; The sixth line resets the failure counter upon success.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open-ended question:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first line is a pre-auth. It defines that after 3 total auth failures, the account will be locked.&amp;lt;br /&amp;gt; The second line defines that the primary authentication factor that must be met is the password.&amp;lt;br /&amp;gt; The third line defines that the secondary authentication factor that must be met is getting a code from Google Authenticator.&amp;lt;br /&amp;gt; The fourth line executes a captcha via an external script, and the script will pass to PAM whether or not it failed.&amp;lt;br /&amp;gt; The fith line counts failures.&amp;lt;br /&amp;gt; The sixth line resets the failure counter upon success.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open-ended question:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why do you think &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; was used instead of &amp;lt;code&amp;gt;requisite&amp;lt;/code&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PAM Vulnerabilites ==&lt;br /&gt;
&lt;br /&gt;
Although PAM seems to be a very straightforward and secure authentication method, it introduces serious security risks if it is not managed correctly.&lt;br /&gt;
&lt;br /&gt;
Most exploits boil down to attackers using [https://www.broadcom.com/support/security-center/protection-bulletin/plague-a-linux-backdoor malicious module] to create backdoors. Because PAM modules run with higher privileges, any compromised or malicious modules can log credentials, grant unauthorized access, or lock out accounts. Current PAM vulnerabilites can be found [https://www.cve.org/CVERecord/SearchResults?query=pam+linux here].&lt;br /&gt;
&lt;br /&gt;
== PAM Auditing ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/usr/lib64/security&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/pam.d&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/security&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/log/secure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.kirillshore.com My wesbite]&lt;br /&gt;
&lt;br /&gt;
[https://buymeacoffee.com/kirillshore Buy me a coffee]&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
&lt;br /&gt;
https://www.redhat.com/en/blog/pam-configuration-file&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.redhat.com/en/blog/pluggable-authentication-modules-pam&amp;lt;br /&amp;gt;&lt;br /&gt;
https://unit42.paloaltonetworks.com/linux-pam-apis/&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.broadcom.com/support/security-center/protection-bulletin/plague-a-linux-backdoor&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.cyberark.com/resources/blog/plague-malware-exploits-pluggable-authentication-module-to-breach-linux-systems&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This Wiki page was authored by Kirill Shore. Within cypat.guide, this content is licensed under CC-BY 4.0. All use outside of cypat.guide is governed by the Shore-Roger Enterprises End User License Agreement (https://www.kirillshore.com/eula). Proper attribution to Kirill Shore as the original author is required. Unauthorized copying, modification, or redistribution without appropriate credit constitutes plagiarism and may be subject to U.S. copyright law.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Account Policies|025]]&lt;br /&gt;
[[Category:Migrated from cypat.guide]]&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=125</id>
		<title>Help:Your first article</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=125"/>
		<updated>2026-09-18T19:44:16Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Addressed formatting errors that were missing nowiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The basics ==&lt;br /&gt;
&lt;br /&gt;
WikiCyber articles go through three stages: &#039;&#039;&#039;drafting&#039;&#039;&#039; in your personal sandbox, &#039;&#039;&#039;submission&#039;&#039;&#039; for review, and &#039;&#039;&#039;publication&#039;&#039;&#039; to the main wiki. This guide walks through all three.&lt;br /&gt;
&lt;br /&gt;
== Before you start writing ==&lt;br /&gt;
&lt;br /&gt;
=== Pick a topic you actually know or can research well ===&lt;br /&gt;
&lt;br /&gt;
The strongest WikiCyber articles come from editors who either work in the area professionally, have studied it formally, or are willing to do serious research to get the details right. Be honest with yourself about which category you&#039;re in, as it determines your sourcing obligations (see below).&lt;br /&gt;
&lt;br /&gt;
=== Check whether the article already exists ===&lt;br /&gt;
&lt;br /&gt;
Search the wiki before you start. If a related article exists, consider whether your topic is better as:&lt;br /&gt;
* A new standalone article&lt;br /&gt;
* A new section within the existing article&lt;br /&gt;
* An expansion of an existing but underdeveloped section&lt;br /&gt;
&lt;br /&gt;
Duplicate or heavily overlapping articles fragment coverage and make the wiki harder to navigate. Reviewers may ask you to merge your draft into an existing page instead of publishing separately.&lt;br /&gt;
&lt;br /&gt;
=== Gather your sources first ===&lt;br /&gt;
&lt;br /&gt;
Before writing a word, collect what you&#039;ll be citing:&lt;br /&gt;
* Official documentation (RFCs, vendor docs, NIST/OWASP publications, CVE entries)&lt;br /&gt;
* Academic papers or textbooks&lt;br /&gt;
* Reputable community sources like well-maintained GitHub repositories, established security research blogs, credible conference talks (DEF CON, Black Hat, etc.), or established YouTube channels in the field&lt;br /&gt;
&lt;br /&gt;
Skim them and take notes before drafting. Trying to find sources &#039;&#039;after&#039;&#039; writing a claim tends to produce weaker, cherry-picked citations.&lt;br /&gt;
&lt;br /&gt;
=== Does this topic belong on WikiCyber? ===&lt;br /&gt;
&lt;br /&gt;
Ask yourself:&lt;br /&gt;
* Is this a real, established topic in cybersecurity, IT, or a closely related field?&lt;br /&gt;
* Can it be covered with real depth, not just a stub definition?&lt;br /&gt;
* Is there enough legitimate source material to support it?&lt;br /&gt;
&lt;br /&gt;
If yes to all three, it&#039;s a good candidate. If you&#039;re unsure, ask an administrator!&lt;br /&gt;
&lt;br /&gt;
=== Look at similar articles ===&lt;br /&gt;
&lt;br /&gt;
Before drafting, read one or two existing WikiCyber articles on related topics. Pay attention to how they build from overview to advanced material, as this is the structure reviewers will expect from your draft too.&lt;br /&gt;
&lt;br /&gt;
== Writing your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Choose an editing tool ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber supports both:&lt;br /&gt;
* &#039;&#039;&#039;VisualEditor&#039;&#039;&#039;: a visual, formatted editing experience. Easier for prose-heavy sections.&lt;br /&gt;
* &#039;&#039;&#039;Source editing&#039;&#039;&#039; (wikitext): more control, and necessary for some formatting like citation templates or code blocks. Most experienced editors end up using source editing for technical articles, since it makes handling code snippets and references easier.&lt;br /&gt;
&lt;br /&gt;
You can switch between the two at any time using the tabs at the top of the edit screen.&lt;br /&gt;
&lt;br /&gt;
=== Where to start writing ===&lt;br /&gt;
&lt;br /&gt;
Draft in your personal sandbox: &amp;lt;code&amp;gt;Special:MyPage/sandbox&amp;lt;/code&amp;gt;. This is your own space to write, revise, and abandon drafts without affecting the live wiki.&lt;br /&gt;
&lt;br /&gt;
=== Structuring your content ===&lt;br /&gt;
&lt;br /&gt;
Follow WikiCyber&#039;s structure:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Overview&#039;&#039;&#039;: a plain-language summary. Anyone should be able to read this and understand what the topic is and why it matters.&lt;br /&gt;
# &#039;&#039;&#039;Core concepts&#039;&#039;&#039;: these are the foundational mechanics required before going deeper.&lt;br /&gt;
# &#039;&#039;&#039;Deeper mechanics&#039;&#039;&#039;: implementation details, protocol-level behavior, real configuration or code examples, attack/defense specifics. This is where WikiCyber articles should go further than a general-purpose encyclopedia.&lt;br /&gt;
# &#039;&#039;&#039;Advanced / practitioner notes&#039;&#039;&#039; (optional): nuance for someone working in the field: pitfalls, current best practices, tooling, open problems, etc.&lt;br /&gt;
&lt;br /&gt;
Use section headings (&amp;lt;code&amp;gt;== Heading ==&amp;lt;/code&amp;gt;) to mark divisions clearly.&lt;br /&gt;
&lt;br /&gt;
=== Citing sources ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber has a specific sourcing policy:&lt;br /&gt;
&lt;br /&gt;
; Editors with at least an Associate&#039;s degree (or higher) in Computer Science, Cybersecurity, or a closely related field&lt;br /&gt;
: May cite their own expertise directly, without an external source, &#039;&#039;&#039;within their area of expertise&#039;&#039;&#039;. State your credential on your user page so reviewers can verify it.&lt;br /&gt;
&lt;br /&gt;
; Editors without such a credential&lt;br /&gt;
: Must cite an external source for non-trivial claims, using &amp;lt;code&amp;gt;&amp;amp;lt;ref&amp;amp;gt;&amp;lt;/code&amp;gt; tags. Acceptable sources include official documentation, academic papers, reputable security research, and credible community sources (established GitHub repos, respected YouTube channels, conference talks).&lt;br /&gt;
&lt;br /&gt;
Regardless of credential: if a claim is surprising, safety-relevant, or likely to be challenged, cite a source anyway.&lt;br /&gt;
&lt;br /&gt;
=== AI-assisted writing ===&lt;br /&gt;
&lt;br /&gt;
AI tools may be used to help draft or edit content. However, &#039;&#039;&#039;the editor remains fully responsible for accuracy&#039;&#039;&#039;, inaccuracies introduced by AI assistance are treated the same as any other editing error. Verify anything AI-generated against a real source before submitting, especially specific technical details (command syntax, version numbers, CVE identifiers, protocol behavior) where AI tools are prone to mistakes and hallucinations.&lt;br /&gt;
&lt;br /&gt;
=== Dos and don&#039;ts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do:&#039;&#039;&#039;&lt;br /&gt;
* Build from simple to advanced&lt;br /&gt;
* Cite according to the policy above&lt;br /&gt;
* Use real, working code/config examples where relevant, clearly marked as such&lt;br /&gt;
* Keep terminology consistent with how it&#039;s used elsewhere on the wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t:&#039;&#039;&#039;&lt;br /&gt;
* Copy text from other websites or documentation verbatim&lt;br /&gt;
* Leave advanced sections uncited even if the overview section is well-sourced&lt;br /&gt;
* Submit a draft that&#039;s still an outline&lt;br /&gt;
&lt;br /&gt;
== Publish your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Pre-publication checklist ===&lt;br /&gt;
&lt;br /&gt;
Before submitting, check that your draft:&lt;br /&gt;
* Has a clear overview any reader could follow&lt;br /&gt;
* Builds logically from basic to advanced material&lt;br /&gt;
* Is properly sourced according to your citation tier&lt;br /&gt;
* Doesn&#039;t duplicate an existing article&#039;s coverage&lt;br /&gt;
&lt;br /&gt;
=== Ask for a review ===&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Submit}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to the very top of your draft page. This will:&lt;br /&gt;
* Display a notice that the draft has been submitted for review&lt;br /&gt;
* Add the page to the review queue, where an experienced editor will find it&lt;br /&gt;
&lt;br /&gt;
A reviewer will look at your draft and either publish it to the main wiki or send it back with feedback. You can keep editing while you wait.&lt;br /&gt;
&lt;br /&gt;
=== After review ===&lt;br /&gt;
&lt;br /&gt;
If approved, your draft is moved into the main article space and becomes a normal WikiCyber page. An administrator approves a draft with the &#039;&#039;&#039;Approve draft&#039;&#039;&#039; button in its &amp;quot;submitted for review&amp;quot; notice, and you will be emailed when it is published.&lt;br /&gt;
&lt;br /&gt;
== Help is available ==&lt;br /&gt;
&lt;br /&gt;
If you get stuck at any point, reach out to an administrator via [[Special:ListUsers/sysop]].&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Submit&amp;diff=37</id>
		<title>Template:Submit</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Submit&amp;diff=37"/>
		<updated>2026-08-08T19:49:26Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Submit&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border:1px solid #ccc; background:#f8f9fa; padding:10px; margin-bottom:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;This draft has been submitted for review.&#039;&#039;&#039; A reviewer will check it for structure, sourcing, and accuracy. You may continue editing while you wait.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Help:Templates&amp;diff=36</id>
		<title>Help:Templates</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Help:Templates&amp;diff=36"/>
		<updated>2026-08-08T19:48:43Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Help:Templates&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Special:PrefixIndex/Template:}}&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Help:Templates&amp;diff=35</id>
		<title>Help:Templates</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Help:Templates&amp;diff=35"/>
		<updated>2026-08-08T19:48:36Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;{{Special:PrefixIndex/Template:}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Special:PrefixIndex/Template:}}&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Reflist&amp;diff=34</id>
		<title>Template:Reflist</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Reflist&amp;diff=34"/>
		<updated>2026-08-08T19:45:54Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;reflist&amp;quot; style=&amp;quot;font-size: 90%; margin-top: 1em;&amp;quot;&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
Place &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{reflist}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; under a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;==References==&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; heading&lt;br /&gt;
near the end of an article, instead of a bare &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;lt;references /&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
tag. Produces the same footnote list, just in a smaller font matching&lt;br /&gt;
Wikipedia&#039;s convention.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Reflist&amp;diff=33</id>
		<title>Template:Reflist</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Reflist&amp;diff=33"/>
		<updated>2026-08-08T19:44:02Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Reflist&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;reflist&amp;quot; style=&amp;quot;font-size: 90%; margin-top: 1em;&amp;quot;&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
Place &amp;lt;code&amp;gt;{{reflist}}&amp;lt;/code&amp;gt; under a &amp;lt;code&amp;gt;==References==&amp;lt;/code&amp;gt; heading&lt;br /&gt;
near the end of an article, instead of a bare &amp;lt;code&amp;gt;&amp;amp;lt;references /&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
tag. Produces the same footnote list, just in a smaller font matching&lt;br /&gt;
Wikipedia&#039;s convention.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Reflist&amp;diff=32</id>
		<title>Template:Reflist</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Reflist&amp;diff=32"/>
		<updated>2026-08-08T19:43:47Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;reflist&amp;quot; style=&amp;quot;font-size: 90%; margin-top: 1em;&amp;quot;&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; == Usage == Place &amp;lt;code&amp;gt;{{reflist}}&amp;lt;/code&amp;gt; under a &amp;lt;code&amp;gt;==References==&amp;lt;/code&amp;gt; heading near the end of an article, instead of a bare &amp;lt;code&amp;gt;&amp;amp;lt;references /&amp;amp;gt;&amp;lt;/code&amp;gt; tag. Produces the same footnote list, just in a smaller font matching Wikipedia&amp;#039;s convention. &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;reflist&amp;quot; style=&amp;quot;font-size: 90%; margin-top: 1em;&amp;quot;&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
Place &amp;lt;code&amp;gt;{{reflist}}&amp;lt;/code&amp;gt; under a &amp;lt;code&amp;gt;==References==&amp;lt;/code&amp;gt; heading&lt;br /&gt;
near the end of an article, instead of a bare &amp;lt;code&amp;gt;&amp;amp;lt;references /&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
tag. Produces the same footnote list, just in a smaller font matching&lt;br /&gt;
Wikipedia&#039;s convention.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Citation&amp;diff=31</id>
		<title>Template:Citation</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Citation&amp;diff=31"/>
		<updated>2026-08-08T19:43:28Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}, }}{{#if:{{{url|}}}|[{{{url}}} {{{title|}}}]|{{{title|}}}}}{{#if:{{{source|}}}|, {{{source}}}}}{{#if:{{{date|}}}|, {{{date}}}}}{{#if:{{{access-date|}}}|, retrieved {{{access-date}}}}}.&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Citation&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| source = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use this for anything that doesn&#039;t fit cite web/book/journal/news —&lt;br /&gt;
GitHub repos, standards docs, conference talks, etc.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Citation&amp;diff=30</id>
		<title>Template:Citation</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Citation&amp;diff=30"/>
		<updated>2026-08-08T19:43:10Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Citation&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Generic fallback for source types that don&#039;t fit the other templates)&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}, }}{{#if:{{{url|}}}|[{{{url}}} {{{title|}}}]|{{{title|}}}}}{{#if:{{{source|}}}|, {{{source}}}}}{{#if:{{{date|}}}|, {{{date}}}}}{{#if:{{{access-date|}}}|, retrieved {{{access-date}}}}}.&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Citation&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| source = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use this for anything that doesn&#039;t fit cite web/book/journal/news —&lt;br /&gt;
GitHub repos, standards docs, conference talks, etc.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Citation&amp;diff=29</id>
		<title>Template:Citation</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Citation&amp;diff=29"/>
		<updated>2026-08-08T19:43:02Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Generic fallback for source types that don&#039;t fit the other templates)&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}, }}{{#if:{{{url|}}}|[{{{url}}} {{{title|}}}]|{{{title|}}}}}{{#if:{{{source|}}}|, {{{source}}}}}{{#if:{{{date|}}}|, {{{date}}}}}{{#if:{{{access-date|}}}|, retrieved {{{access-date}}}}}.&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Citation&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| source = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use this for anything that doesn&#039;t fit cite web/book/journal/news —&lt;br /&gt;
GitHub repos, standards docs, conference talks, etc.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Citation&amp;diff=28</id>
		<title>Template:Citation</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Citation&amp;diff=28"/>
		<updated>2026-08-08T19:42:37Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;(Generic fallback for source types that don&amp;#039;t fit the templates above — e.g. GitHub repos, conference talks, standards documents.) &amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}, }}{{#if:{{{url|}}}|[{{{url}}} {{{title|}}}]|{{{title|}}}}}{{#if:{{{source|}}}|, {{{source}}}}}{{#if:{{{date|}}}|, {{{date}}}}}{{#if:{{{access-date|}}}|, retrieved {{{access-date}}}}}.&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; == Usage == &amp;lt;pre&amp;gt; {{Citation | author =  | title =  | ur...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Generic fallback for source types that don&#039;t fit the templates above —&lt;br /&gt;
e.g. GitHub repos, conference talks, standards documents.)&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}, }}{{#if:{{{url|}}}|[{{{url}}} {{{title|}}}]|{{{title|}}}}}{{#if:{{{source|}}}|, {{{source}}}}}{{#if:{{{date|}}}|, {{{date}}}}}{{#if:{{{access-date|}}}|, retrieved {{{access-date}}}}}.&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Citation&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| source = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use this for anything that doesn&#039;t fit cite web/book/journal/news —&lt;br /&gt;
GitHub repos, standards docs, conference talks, etc.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_news&amp;diff=27</id>
		<title>Template:Cite news</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_news&amp;diff=27"/>
		<updated>2026-08-08T19:42:22Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Cite news&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}{{#if:{{{url|}}}|[{{{url}}} &amp;quot;{{{title|}}}&amp;quot;]|&amp;quot;{{{title|}}}&amp;quot;}}.{{#if:{{{newspaper|}}}| &#039;&#039;{{{newspaper}}}&#039;&#039;.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{access-date|}}}| Retrieved {{{access-date}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite news&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| newspaper = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_news&amp;diff=26</id>
		<title>Template:Cite news</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_news&amp;diff=26"/>
		<updated>2026-08-08T19:42:03Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}{{#if:{{{url|}}}|[{{{url}}} &amp;quot;{{{title|}}}&amp;quot;]|&amp;quot;{{{title|}}}&amp;quot;}}.{{#if:{{{newspaper|}}}| &amp;#039;&amp;#039;{{{newspaper}}}&amp;#039;&amp;#039;.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{access-date|}}}| Retrieved {{{access-date}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; == Usage == &amp;lt;pre&amp;gt; {{cite news | author =  | title =  | url =  | newspaper =  | date =  | access-date =  }} &amp;lt;/pre&amp;gt; &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}{{#if:{{{url|}}}|[{{{url}}} &amp;quot;{{{title|}}}&amp;quot;]|&amp;quot;{{{title|}}}&amp;quot;}}.{{#if:{{{newspaper|}}}| &#039;&#039;{{{newspaper}}}&#039;&#039;.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{access-date|}}}| Retrieved {{{access-date}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite news&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| newspaper = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_journal&amp;diff=25</id>
		<title>Template:Cite journal</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_journal&amp;diff=25"/>
		<updated>2026-08-08T19:41:48Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Cite journal&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}&amp;quot;{{{title|}}}&amp;quot;.{{#if:{{{journal|}}}| &#039;&#039;{{{journal}}}&#039;&#039;.}}{{#if:{{{volume|}}}| vol. {{{volume}}}.}}{{#if:{{{issue|}}}| no. {{{issue}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{pages|}}}| pp. {{{pages}}}.}}{{#if:{{{doi|}}}| doi:[https://doi.org/{{{doi}}} {{{doi}}}].}}{{#if:{{{url|}}}| [{{{url}}} Link].}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite journal&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| journal = &lt;br /&gt;
| volume = &lt;br /&gt;
| issue = &lt;br /&gt;
| date = &lt;br /&gt;
| pages = &lt;br /&gt;
| doi = &lt;br /&gt;
| url = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_journal&amp;diff=24</id>
		<title>Template:Cite journal</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_journal&amp;diff=24"/>
		<updated>2026-08-08T19:41:41Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}&amp;quot;{{{title|}}}&amp;quot;.{{#if:{{{journal|}}}| &amp;#039;&amp;#039;{{{journal}}}&amp;#039;&amp;#039;.}}{{#if:{{{volume|}}}| vol. {{{volume}}}.}}{{#if:{{{issue|}}}| no. {{{issue}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{pages|}}}| pp. {{{pages}}}.}}{{#if:{{{doi|}}}| doi:[https://doi.org/{{{doi}}} {{{doi}}}].}}{{#if:{{{url|}}}| [{{{url}}} Link].}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; == Usage == &amp;lt;pre&amp;gt; {{cite journal | author =  | title =  | journal...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}&amp;quot;{{{title|}}}&amp;quot;.{{#if:{{{journal|}}}| &#039;&#039;{{{journal}}}&#039;&#039;.}}{{#if:{{{volume|}}}| vol. {{{volume}}}.}}{{#if:{{{issue|}}}| no. {{{issue}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{pages|}}}| pp. {{{pages}}}.}}{{#if:{{{doi|}}}| doi:[https://doi.org/{{{doi}}} {{{doi}}}].}}{{#if:{{{url|}}}| [{{{url}}} Link].}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite journal&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| journal = &lt;br /&gt;
| volume = &lt;br /&gt;
| issue = &lt;br /&gt;
| date = &lt;br /&gt;
| pages = &lt;br /&gt;
| doi = &lt;br /&gt;
| url = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_book&amp;diff=23</id>
		<title>Template:Cite book</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_book&amp;diff=23"/>
		<updated>2026-08-08T19:41:20Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Cite book&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}&amp;quot;{{{title|}}}&amp;quot;.{{#if:{{{publisher|}}}| {{{publisher}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{isbn|}}}| ISBN {{{isbn}}}.}}{{#if:{{{page|}}}| p. {{{page}}}.}}{{#if:{{{pages|}}}| pp. {{{pages}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite book&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| publisher = &lt;br /&gt;
| date = &lt;br /&gt;
| isbn = &lt;br /&gt;
| page = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_book&amp;diff=22</id>
		<title>Template:Cite book</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_book&amp;diff=22"/>
		<updated>2026-08-08T19:40:55Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}&amp;quot;{{{title|}}}&amp;quot;.{{#if:{{{publisher|}}}| {{{publisher}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{isbn|}}}| ISBN {{{isbn}}}.}}{{#if:{{{page|}}}| p. {{{page}}}.}}{{#if:{{{pages|}}}| pp. {{{pages}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; == Usage == &amp;lt;pre&amp;gt; {{cite book | author =  | title =  | publisher =  | date =  | isbn =  | page =  }} &amp;lt;/pre&amp;gt; &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}&amp;quot;{{{title|}}}&amp;quot;.{{#if:{{{publisher|}}}| {{{publisher}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{isbn|}}}| ISBN {{{isbn}}}.}}{{#if:{{{page|}}}| p. {{{page}}}.}}{{#if:{{{pages|}}}| pp. {{{pages}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite book&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| publisher = &lt;br /&gt;
| date = &lt;br /&gt;
| isbn = &lt;br /&gt;
| page = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_web&amp;diff=21</id>
		<title>Template:Cite web</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_web&amp;diff=21"/>
		<updated>2026-08-08T19:40:37Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Template:Cite web&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}{{#if:{{{url|}}}|[{{{url}}} &amp;quot;{{{title|}}}&amp;quot;]|&amp;quot;{{{title|}}}&amp;quot;}}.{{#if:{{{website|}}}| &#039;&#039;{{{website}}}&#039;&#039;.}}{{#if:{{{publisher|}}}| {{{publisher}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{access-date|}}}| Retrieved {{{access-date}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| website = &lt;br /&gt;
| publisher = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used inside a &amp;lt;code&amp;gt;&amp;amp;lt;ref&amp;amp;gt;...&amp;amp;lt;/ref&amp;amp;gt;&amp;lt;/code&amp;gt; tag to cite a webpage.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Cite_web&amp;diff=20</id>
		<title>Template:Cite web</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Cite_web&amp;diff=20"/>
		<updated>2026-08-08T19:40:25Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}{{#if:{{{url|}}}|[{{{url}}} &amp;quot;{{{title|}}}&amp;quot;]|&amp;quot;{{{title|}}}&amp;quot;}}.{{#if:{{{website|}}}| &amp;#039;&amp;#039;{{{website}}}&amp;#039;&amp;#039;.}}{{#if:{{{publisher|}}}| {{{publisher}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{access-date|}}}| Retrieved {{{access-date}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; == Usage == &amp;lt;pre&amp;gt; {{cite web | author =  | title =  | url =  | website =  | publisher =  | date =  | access-date =  }} &amp;lt;/pre&amp;gt; Used inside...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;{{#if:{{{author|}}}|{{{author}}}. }}{{#if:{{{url|}}}|[{{{url}}} &amp;quot;{{{title|}}}&amp;quot;]|&amp;quot;{{{title|}}}&amp;quot;}}.{{#if:{{{website|}}}| &#039;&#039;{{{website}}}&#039;&#039;.}}{{#if:{{{publisher|}}}| {{{publisher}}}.}}{{#if:{{{date|}}}| {{{date}}}.}}{{#if:{{{access-date|}}}| Retrieved {{{access-date}}}.}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| author = &lt;br /&gt;
| title = &lt;br /&gt;
| url = &lt;br /&gt;
| website = &lt;br /&gt;
| publisher = &lt;br /&gt;
| date = &lt;br /&gt;
| access-date = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used inside a &amp;lt;code&amp;gt;&amp;amp;lt;ref&amp;amp;gt;...&amp;amp;lt;/ref&amp;amp;gt;&amp;lt;/code&amp;gt; tag to cite a webpage.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=MediaWiki:Common.js&amp;diff=10</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=MediaWiki:Common.js&amp;diff=10"/>
		<updated>2026-08-08T06:34:18Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;/* Any JavaScript here will be loaded for all users on every page load. */  mw.loader.using( [ &amp;#039;mediawiki.util&amp;#039;, &amp;#039;mediawiki.Title&amp;#039; ] ).done( function () { 	var title = new mw.Title( &amp;#039;Special:MyPage/sandbox&amp;#039; ); 	var url = title.getUrl(); 	mw.util.addPortletLink( 		&amp;#039;p-personal&amp;#039;, 		url, 		&amp;#039;Sandbox&amp;#039;, 		&amp;#039;pt-sandbox&amp;#039;, 		&amp;#039;Go to your sandbox&amp;#039;, 		null, 		&amp;#039;#pt-preferences&amp;#039; 	); } );&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
mw.loader.using( [ &#039;mediawiki.util&#039;, &#039;mediawiki.Title&#039; ] ).done( function () {&lt;br /&gt;
	var title = new mw.Title( &#039;Special:MyPage/sandbox&#039; );&lt;br /&gt;
	var url = title.getUrl();&lt;br /&gt;
	mw.util.addPortletLink(&lt;br /&gt;
		&#039;p-personal&#039;,&lt;br /&gt;
		url,&lt;br /&gt;
		&#039;Sandbox&#039;,&lt;br /&gt;
		&#039;pt-sandbox&#039;,&lt;br /&gt;
		&#039;Go to your sandbox&#039;,&lt;br /&gt;
		null,&lt;br /&gt;
		&#039;#pt-preferences&#039;&lt;br /&gt;
	);&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Category:Pending_review&amp;diff=9</id>
		<title>Category:Pending review</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Category:Pending_review&amp;diff=9"/>
		<updated>2026-08-08T06:23:40Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;This category lists all drafts that have been submitted for review via &amp;lt;code&amp;gt;{{tl|submit}}&amp;lt;/code&amp;gt;. Reviewers should check this list regularly.  Once a draft is approved and moved to the main article space, remove this category and the submission notice from the page.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category lists all drafts that have been submitted for review via &amp;lt;code&amp;gt;{{tl|submit}}&amp;lt;/code&amp;gt;. Reviewers should check this list regularly.&lt;br /&gt;
&lt;br /&gt;
Once a draft is approved and moved to the main article space, remove this category and the submission notice from the page.&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Template:Submit&amp;diff=7</id>
		<title>Template:Submit</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Template:Submit&amp;diff=7"/>
		<updated>2026-08-08T06:20:22Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;&amp;lt;div style=&amp;quot;border:1px solid #ccc; background:#f8f9fa; padding:10px; margin-bottom:1em;&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;This draft has been submitted for review.&amp;#039;&amp;#039;&amp;#039; A reviewer will check it for structure, sourcing, and accuracy. You may continue editing while you wait. &amp;lt;/div&amp;gt; Category:Pending review&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border:1px solid #ccc; background:#f8f9fa; padding:10px; margin-bottom:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;This draft has been submitted for review.&#039;&#039;&#039; A reviewer will check it for structure, sourcing, and accuracy. You may continue editing while you wait.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Pending review]]&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=6</id>
		<title>Help:Your first article</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=6"/>
		<updated>2026-08-08T06:11:44Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Protected &amp;quot;Help:Your first article&amp;quot;: Help page protected by default. ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The basics ==&lt;br /&gt;
&lt;br /&gt;
WikiCyber articles go through three stages: &#039;&#039;&#039;drafting&#039;&#039;&#039; in your personal sandbox, &#039;&#039;&#039;submission&#039;&#039;&#039; for review, and &#039;&#039;&#039;publication&#039;&#039;&#039; to the main wiki. This guide walks through all three.&lt;br /&gt;
&lt;br /&gt;
== Before you start writing ==&lt;br /&gt;
&lt;br /&gt;
=== Pick a topic you actually know or can research well ===&lt;br /&gt;
&lt;br /&gt;
The strongest WikiCyber articles come from editors who either work in the area professionally, have studied it formally, or are willing to do serious research to get the details right. Be honest with yourself about which category you&#039;re in, as it determines your sourcing obligations (see below).&lt;br /&gt;
&lt;br /&gt;
=== Check whether the article already exists ===&lt;br /&gt;
&lt;br /&gt;
Search the wiki before you start. If a related article exists, consider whether your topic is better as:&lt;br /&gt;
* A new standalone article&lt;br /&gt;
* A new section within the existing article&lt;br /&gt;
* An expansion of an existing but underdeveloped section&lt;br /&gt;
&lt;br /&gt;
Duplicate or heavily overlapping articles fragment coverage and make the wiki harder to navigate. Reviewers may ask you to merge your draft into an existing page instead of publishing separately.&lt;br /&gt;
&lt;br /&gt;
=== Gather your sources first ===&lt;br /&gt;
&lt;br /&gt;
Before writing a word, collect what you&#039;ll be citing:&lt;br /&gt;
* Official documentation (RFCs, vendor docs, NIST/OWASP publications, CVE entries)&lt;br /&gt;
* Academic papers or textbooks&lt;br /&gt;
* Reputable community sources like well-maintained GitHub repositories, established security research blogs, credible conference talks (DEF CON, Black Hat, etc.), or established YouTube channels in the field&lt;br /&gt;
&lt;br /&gt;
Skim them and take notes before drafting. Trying to find sources &#039;&#039;after&#039;&#039; writing a claim tends to produce weaker, cherry-picked citations.&lt;br /&gt;
&lt;br /&gt;
=== Does this topic belong on WikiCyber? ===&lt;br /&gt;
&lt;br /&gt;
Ask yourself:&lt;br /&gt;
* Is this a real, established topic in cybersecurity, IT, or a closely related field?&lt;br /&gt;
* Can it be covered with real depth, not just a stub definition?&lt;br /&gt;
* Is there enough legitimate source material to support it?&lt;br /&gt;
&lt;br /&gt;
If yes to all three, it&#039;s a good candidate. If you&#039;re unsure, ask an administrator!&lt;br /&gt;
&lt;br /&gt;
=== Look at similar articles ===&lt;br /&gt;
&lt;br /&gt;
Before drafting, read one or two existing WikiCyber articles on related topics. Pay attention to how they build from overview to advanced material, as this is the structure reviewers will expect from your draft too.&lt;br /&gt;
&lt;br /&gt;
== Writing your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Choose an editing tool ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber supports both:&lt;br /&gt;
* &#039;&#039;&#039;VisualEditor&#039;&#039;&#039;: a visual, formatted editing experience. Easier for prose-heavy sections.&lt;br /&gt;
* &#039;&#039;&#039;Source editing&#039;&#039;&#039; (wikitext): more control, and necessary for some formatting like citation templates or code blocks. Most experienced editors end up using source editing for technical articles, since it makes handling code snippets and references easier.&lt;br /&gt;
&lt;br /&gt;
You can switch between the two at any time using the tabs at the top of the edit screen.&lt;br /&gt;
&lt;br /&gt;
=== Where to start writing ===&lt;br /&gt;
&lt;br /&gt;
Draft in your personal sandbox: &amp;lt;code&amp;gt;Special:MyPage/sandbox&amp;lt;/code&amp;gt;. This is your own space to write, revise, and abandon drafts without affecting the live wiki.&lt;br /&gt;
&lt;br /&gt;
=== Structuring your content ===&lt;br /&gt;
&lt;br /&gt;
Follow WikiCyber&#039;s structure:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Overview&#039;&#039;&#039;: a plain-language summary. Anyone should be able to read this and understand what the topic is and why it matters.&lt;br /&gt;
# &#039;&#039;&#039;Core concepts&#039;&#039;&#039;: these are the foundational mechanics required before going deeper.&lt;br /&gt;
# &#039;&#039;&#039;Deeper mechanics&#039;&#039;&#039;: implementation details, protocol-level behavior, real configuration or code examples, attack/defense specifics. This is where WikiCyber articles should go further than a general-purpose encyclopedia.&lt;br /&gt;
# &#039;&#039;&#039;Advanced / practitioner notes&#039;&#039;&#039; (optional): nuance for someone working in the field: pitfalls, current best practices, tooling, open problems, etc.&lt;br /&gt;
&lt;br /&gt;
Use section headings (&amp;lt;code&amp;gt;== Heading ==&amp;lt;/code&amp;gt;) to mark divisions clearly.&lt;br /&gt;
&lt;br /&gt;
=== Citing sources ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber has a specific sourcing policy:&lt;br /&gt;
&lt;br /&gt;
; Editors with at least an Associate&#039;s degree (or higher) in Computer Science, Cybersecurity, or a closely related field&lt;br /&gt;
: May cite their own expertise directly, without an external source, &#039;&#039;&#039;within their area of expertise&#039;&#039;&#039;. State your credential on your user page so reviewers can verify it.&lt;br /&gt;
&lt;br /&gt;
; Editors without such a credential&lt;br /&gt;
: Must cite an external source for non-trivial claims, using &amp;lt;code&amp;gt;&amp;amp;lt;ref&amp;amp;gt;&amp;lt;/code&amp;gt; tags. Acceptable sources include official documentation, academic papers, reputable security research, and credible community sources (established GitHub repos, respected YouTube channels, conference talks).&lt;br /&gt;
&lt;br /&gt;
Regardless of credential: if a claim is surprising, safety-relevant, or likely to be challenged, cite a source anyway.&lt;br /&gt;
&lt;br /&gt;
=== AI-assisted writing ===&lt;br /&gt;
&lt;br /&gt;
AI tools may be used to help draft or edit content. However, &#039;&#039;&#039;the editor remains fully responsible for accuracy&#039;&#039;&#039;, inaccuracies introduced by AI assistance are treated the same as any other editing error. Verify anything AI-generated against a real source before submitting, especially specific technical details (command syntax, version numbers, CVE identifiers, protocol behavior) where AI tools are prone to mistakes and hallucinations.&lt;br /&gt;
&lt;br /&gt;
=== Dos and don&#039;ts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do:&#039;&#039;&#039;&lt;br /&gt;
* Build from simple to advanced&lt;br /&gt;
* Cite according to the policy above&lt;br /&gt;
* Use real, working code/config examples where relevant, clearly marked as such&lt;br /&gt;
* Keep terminology consistent with how it&#039;s used elsewhere on the wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t:&#039;&#039;&#039;&lt;br /&gt;
* Copy text from other websites or documentation verbatim&lt;br /&gt;
* Leave advanced sections uncited even if the overview section is well-sourced&lt;br /&gt;
* Submit a draft that&#039;s still an outline&lt;br /&gt;
&lt;br /&gt;
== Publish your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Pre-publication checklist ===&lt;br /&gt;
&lt;br /&gt;
Before submitting, check that your draft:&lt;br /&gt;
* Has a clear overview any reader could follow&lt;br /&gt;
* Builds logically from basic to advanced material&lt;br /&gt;
* Is properly sourced according to your citation tier&lt;br /&gt;
* Doesn&#039;t duplicate an existing article&#039;s coverage&lt;br /&gt;
&lt;br /&gt;
=== Ask for a review ===&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;{{subst:submit}}&amp;lt;/code&amp;gt; to the very top of your draft page. This will:&lt;br /&gt;
* Display a notice that the draft has been submitted for review&lt;br /&gt;
* Add the page to the review queue, where an experienced editor will find it&lt;br /&gt;
&lt;br /&gt;
A reviewer will look at your draft and either publish it to the main wiki or send it back with feedback. You can keep editing while you wait.&lt;br /&gt;
&lt;br /&gt;
=== After review ===&lt;br /&gt;
&lt;br /&gt;
If approved, your draft is moved into the main article space and becomes a normal WikiCyber page.&lt;br /&gt;
&lt;br /&gt;
== Help is available ==&lt;br /&gt;
&lt;br /&gt;
If you get stuck at any point, reach out to an administrator via [[Special:ListUsers/sysop]].&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
	<entry>
		<id>https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=5</id>
		<title>Help:Your first article</title>
		<link rel="alternate" type="text/html" href="https://wikicyber.org/index.php?title=Help:Your_first_article&amp;diff=5"/>
		<updated>2026-08-08T06:09:41Z</updated>

		<summary type="html">&lt;p&gt;AdminUser: Created page with &amp;quot;== The basics ==  WikiCyber articles go through three stages: &amp;#039;&amp;#039;&amp;#039;drafting&amp;#039;&amp;#039;&amp;#039; in your personal sandbox, &amp;#039;&amp;#039;&amp;#039;submission&amp;#039;&amp;#039;&amp;#039; for review, and &amp;#039;&amp;#039;&amp;#039;publication&amp;#039;&amp;#039;&amp;#039; to the main wiki. This guide walks through all three.  == Before you start writing ==  === Pick a topic you actually know or can research well ===  The strongest WikiCyber articles come from editors who either work in the area professionally, have studied it formally, or are willing to do serious research to get the det...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The basics ==&lt;br /&gt;
&lt;br /&gt;
WikiCyber articles go through three stages: &#039;&#039;&#039;drafting&#039;&#039;&#039; in your personal sandbox, &#039;&#039;&#039;submission&#039;&#039;&#039; for review, and &#039;&#039;&#039;publication&#039;&#039;&#039; to the main wiki. This guide walks through all three.&lt;br /&gt;
&lt;br /&gt;
== Before you start writing ==&lt;br /&gt;
&lt;br /&gt;
=== Pick a topic you actually know or can research well ===&lt;br /&gt;
&lt;br /&gt;
The strongest WikiCyber articles come from editors who either work in the area professionally, have studied it formally, or are willing to do serious research to get the details right. Be honest with yourself about which category you&#039;re in, as it determines your sourcing obligations (see below).&lt;br /&gt;
&lt;br /&gt;
=== Check whether the article already exists ===&lt;br /&gt;
&lt;br /&gt;
Search the wiki before you start. If a related article exists, consider whether your topic is better as:&lt;br /&gt;
* A new standalone article&lt;br /&gt;
* A new section within the existing article&lt;br /&gt;
* An expansion of an existing but underdeveloped section&lt;br /&gt;
&lt;br /&gt;
Duplicate or heavily overlapping articles fragment coverage and make the wiki harder to navigate. Reviewers may ask you to merge your draft into an existing page instead of publishing separately.&lt;br /&gt;
&lt;br /&gt;
=== Gather your sources first ===&lt;br /&gt;
&lt;br /&gt;
Before writing a word, collect what you&#039;ll be citing:&lt;br /&gt;
* Official documentation (RFCs, vendor docs, NIST/OWASP publications, CVE entries)&lt;br /&gt;
* Academic papers or textbooks&lt;br /&gt;
* Reputable community sources like well-maintained GitHub repositories, established security research blogs, credible conference talks (DEF CON, Black Hat, etc.), or established YouTube channels in the field&lt;br /&gt;
&lt;br /&gt;
Skim them and take notes before drafting. Trying to find sources &#039;&#039;after&#039;&#039; writing a claim tends to produce weaker, cherry-picked citations.&lt;br /&gt;
&lt;br /&gt;
=== Does this topic belong on WikiCyber? ===&lt;br /&gt;
&lt;br /&gt;
Ask yourself:&lt;br /&gt;
* Is this a real, established topic in cybersecurity, IT, or a closely related field?&lt;br /&gt;
* Can it be covered with real depth, not just a stub definition?&lt;br /&gt;
* Is there enough legitimate source material to support it?&lt;br /&gt;
&lt;br /&gt;
If yes to all three, it&#039;s a good candidate. If you&#039;re unsure, ask an administrator!&lt;br /&gt;
&lt;br /&gt;
=== Look at similar articles ===&lt;br /&gt;
&lt;br /&gt;
Before drafting, read one or two existing WikiCyber articles on related topics. Pay attention to how they build from overview to advanced material, as this is the structure reviewers will expect from your draft too.&lt;br /&gt;
&lt;br /&gt;
== Writing your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Choose an editing tool ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber supports both:&lt;br /&gt;
* &#039;&#039;&#039;VisualEditor&#039;&#039;&#039;: a visual, formatted editing experience. Easier for prose-heavy sections.&lt;br /&gt;
* &#039;&#039;&#039;Source editing&#039;&#039;&#039; (wikitext): more control, and necessary for some formatting like citation templates or code blocks. Most experienced editors end up using source editing for technical articles, since it makes handling code snippets and references easier.&lt;br /&gt;
&lt;br /&gt;
You can switch between the two at any time using the tabs at the top of the edit screen.&lt;br /&gt;
&lt;br /&gt;
=== Where to start writing ===&lt;br /&gt;
&lt;br /&gt;
Draft in your personal sandbox: &amp;lt;code&amp;gt;Special:MyPage/sandbox&amp;lt;/code&amp;gt;. This is your own space to write, revise, and abandon drafts without affecting the live wiki.&lt;br /&gt;
&lt;br /&gt;
=== Structuring your content ===&lt;br /&gt;
&lt;br /&gt;
Follow WikiCyber&#039;s structure:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Overview&#039;&#039;&#039;: a plain-language summary. Anyone should be able to read this and understand what the topic is and why it matters.&lt;br /&gt;
# &#039;&#039;&#039;Core concepts&#039;&#039;&#039;: these are the foundational mechanics required before going deeper.&lt;br /&gt;
# &#039;&#039;&#039;Deeper mechanics&#039;&#039;&#039;: implementation details, protocol-level behavior, real configuration or code examples, attack/defense specifics. This is where WikiCyber articles should go further than a general-purpose encyclopedia.&lt;br /&gt;
# &#039;&#039;&#039;Advanced / practitioner notes&#039;&#039;&#039; (optional): nuance for someone working in the field: pitfalls, current best practices, tooling, open problems, etc.&lt;br /&gt;
&lt;br /&gt;
Use section headings (&amp;lt;code&amp;gt;== Heading ==&amp;lt;/code&amp;gt;) to mark divisions clearly.&lt;br /&gt;
&lt;br /&gt;
=== Citing sources ===&lt;br /&gt;
&lt;br /&gt;
WikiCyber has a specific sourcing policy:&lt;br /&gt;
&lt;br /&gt;
; Editors with at least an Associate&#039;s degree (or higher) in Computer Science, Cybersecurity, or a closely related field&lt;br /&gt;
: May cite their own expertise directly, without an external source, &#039;&#039;&#039;within their area of expertise&#039;&#039;&#039;. State your credential on your user page so reviewers can verify it.&lt;br /&gt;
&lt;br /&gt;
; Editors without such a credential&lt;br /&gt;
: Must cite an external source for non-trivial claims, using &amp;lt;code&amp;gt;&amp;amp;lt;ref&amp;amp;gt;&amp;lt;/code&amp;gt; tags. Acceptable sources include official documentation, academic papers, reputable security research, and credible community sources (established GitHub repos, respected YouTube channels, conference talks).&lt;br /&gt;
&lt;br /&gt;
Regardless of credential: if a claim is surprising, safety-relevant, or likely to be challenged, cite a source anyway.&lt;br /&gt;
&lt;br /&gt;
=== AI-assisted writing ===&lt;br /&gt;
&lt;br /&gt;
AI tools may be used to help draft or edit content. However, &#039;&#039;&#039;the editor remains fully responsible for accuracy&#039;&#039;&#039;, inaccuracies introduced by AI assistance are treated the same as any other editing error. Verify anything AI-generated against a real source before submitting, especially specific technical details (command syntax, version numbers, CVE identifiers, protocol behavior) where AI tools are prone to mistakes and hallucinations.&lt;br /&gt;
&lt;br /&gt;
=== Dos and don&#039;ts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do:&#039;&#039;&#039;&lt;br /&gt;
* Build from simple to advanced&lt;br /&gt;
* Cite according to the policy above&lt;br /&gt;
* Use real, working code/config examples where relevant, clearly marked as such&lt;br /&gt;
* Keep terminology consistent with how it&#039;s used elsewhere on the wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t:&#039;&#039;&#039;&lt;br /&gt;
* Copy text from other websites or documentation verbatim&lt;br /&gt;
* Leave advanced sections uncited even if the overview section is well-sourced&lt;br /&gt;
* Submit a draft that&#039;s still an outline&lt;br /&gt;
&lt;br /&gt;
== Publish your draft ==&lt;br /&gt;
&lt;br /&gt;
=== Pre-publication checklist ===&lt;br /&gt;
&lt;br /&gt;
Before submitting, check that your draft:&lt;br /&gt;
* Has a clear overview any reader could follow&lt;br /&gt;
* Builds logically from basic to advanced material&lt;br /&gt;
* Is properly sourced according to your citation tier&lt;br /&gt;
* Doesn&#039;t duplicate an existing article&#039;s coverage&lt;br /&gt;
&lt;br /&gt;
=== Ask for a review ===&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;{{subst:submit}}&amp;lt;/code&amp;gt; to the very top of your draft page. This will:&lt;br /&gt;
* Display a notice that the draft has been submitted for review&lt;br /&gt;
* Add the page to the review queue, where an experienced editor will find it&lt;br /&gt;
&lt;br /&gt;
A reviewer will look at your draft and either publish it to the main wiki or send it back with feedback. You can keep editing while you wait.&lt;br /&gt;
&lt;br /&gt;
=== After review ===&lt;br /&gt;
&lt;br /&gt;
If approved, your draft is moved into the main article space and becomes a normal WikiCyber page.&lt;br /&gt;
&lt;br /&gt;
== Help is available ==&lt;br /&gt;
&lt;br /&gt;
If you get stuck at any point, reach out to an administrator via [[Special:ListUsers/sysop]].&lt;/div&gt;</summary>
		<author><name>AdminUser</name></author>
	</entry>
</feed>