<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mechanics on Wirez</title><link>https://wirez.top/tags/mechanics/</link><description>Recent content in Mechanics on Wirez</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 19 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://wirez.top/tags/mechanics/index.xml" rel="self" type="application/rss+xml"/><item><title>Reflection attacks in Indonesia: 30% of global traffic</title><link>https://wirez.top/posts/reflection-attacks-in-indonesia-30-of-global-traffic/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://wirez.top/posts/reflection-attacks-in-indonesia-30-of-global-traffic/</guid><description>&lt;!-- wp:html -->
&lt;meta charset="utf-8">
&lt;style>
/* Platform CSS v3.0 */
:root {
 --primary-color: #4285f4;
 --primary-dark: #0057cc;
 --success-color: #34a853;
 --warning-color: #fbbc05;
 --error-color: #ea4335;
 --text-primary: #333333;
 --text-secondary: #666666;
 --text-light: #888888;
 --border-color: #e0e0e0;
 --background-light: #f8f9fa;
 --background-card: #ffffff;
 --background-code: #f5f5f5;
 --spacing-xs: 0.5rem;
 --spacing-sm: 1rem;
 --spacing-md: 1.5rem;
 --spacing-lg: 2rem;
 --border-radius: 8px;
 --border-radius-sm: 4px;
 --box-shadow: 0 2px 8px rgba(0,0,0,0.08);
 --box-shadow-hover: 0 4px 16px rgba(0,0,0,0.12);
}
.section-title {
 color: var(--text-primary);
 margin: var(--spacing-lg) 0 var(--spacing-sm);
 font-size: clamp(1.2rem, 3vw, 1.4rem);
 font-weight: 600;
 line-height: 1.3;
}
.subsection-title {
 color: var(--text-primary);
 margin: var(--spacing-md) 0 var(--spacing-xs);
 font-size: clamp(1.1rem, 2.5vw, 1.2rem);
 font-weight: 600;
}
.std-text {
 font-size: 1rem;
 line-height: 1.6;
 margin-bottom: var(--spacing-sm);
 color: var(--text-primary);
}
.card {
 border: 1px solid var(--border-color);
 padding: var(--spacing-sm);
 background: var(--background-card);
 border-radius: var(--border-radius);
 margin-bottom: var(--spacing-md);
 box-shadow: var(--box-shadow);
 transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
 transform: translateY(-2px);
 box-shadow: var(--box-shadow-hover);
}
.emoji-list {
 font-size: 1rem;
 line-height: 1.7;
 margin-bottom: 0.8rem;
 padding: 0.8rem 0;
 border-bottom: 1px solid var(--border-color);
 color: var(--text-primary);
}
.emoji-list:last-child { border-bottom: none; }
.emoji-list strong { color: var(--primary-color); font-weight: 600; }
.table-container {
 width: 100%;
 overflow-x: auto;
 margin-bottom: var(--spacing-md);
 border-radius: var(--border-radius);
 box-shadow: var(--box-shadow);
}
.table-container + .table-container {
 margin-top: 1.5rem;
}
.data-table {
 width: 100%;
 min-width: 600px;
 border-collapse: collapse;
 background: white;
}
.data-table th, .data-table td {
 padding: var(--spacing-sm);
 border: 1px solid var(--border-color);
 font-size: 0.9rem;
 text-align: left;
}
.data-table th {
 background: var(--primary-color);
 color: white;
 font-weight: 700;
 white-space: nowrap;
}
.data-table td:first-child { font-weight: 700; }
.data-table tbody tr:nth-child(even) { background: #f8f9ff; }
.data-table tbody tr:nth-child(even) td { background: #f8f9ff !important; }
.data-table tbody tr:nth-child(odd) td { background: white !important; }
.data-table tr:hover td { background: #e8f0fe !important; }
.responsive-img {
 max-width: 100%;
 height: auto;
 border-radius: var(--border-radius);
 box-shadow: var(--box-shadow);
}
figure {
 margin: var(--spacing-lg) auto;
 text-align: center;
 width: 100%;
 max-width: 100%;
 display: block;
}
figure img { margin: 0 auto; display: block; max-width: 100%; height: auto; }
.img-caption {
 font-size: 0.9rem;
 color: var(--text-secondary);
 text-align: center;
 margin-top: var(--spacing-xs);
 font-style: italic;
}
.responsive-list {
 padding-left: 1.5rem;
 margin: var(--spacing-sm) 0;
 line-height: 1.7;
}
.responsive-list li { margin-bottom: var(--spacing-xs); padding-left: 0.5rem; }
.responsive-list a { color: var(--primary-color); text-decoration: none; font-weight: 600; }
.responsive-list a:hover { color: var(--primary-dark); text-decoration: underline; }
.callout { display:flex; gap:16px; padding:20px; border-radius:12px; margin:24px 0; border-left:4px solid; }
.callout-icon { font-size:24px; flex-shrink:0; }
.callout-content { flex:1; }
.callout-expert { background:#f0f7ff; border-color:#2563eb; }
.callout-info { background:#f0fdf4; border-color:#16a34a; }
.callout-warning { background:#fffbeb; border-color:#d97706; }
.faq-section {
 margin: var(--spacing-lg) 0;
 padding: var(--spacing-lg) 0;
 border-top: 2px solid var(--border-color);
}
.faq-section-title {
 color: var(--text-primary);
 font-size: clamp(1.2rem, 3vw, 1.4rem);
 font-weight: 700;
 margin-bottom: var(--spacing-lg);
 text-align: center;
}
.faq-item {
 background: var(--background-card);
 border: 1px solid var(--border-color);
 border-radius: var(--border-radius);
 margin-bottom: var(--spacing-sm);
 overflow: hidden;
 transition: all 0.3s ease;
}
.faq-item:hover {
 border-color: var(--primary-color);
 box-shadow: var(--box-shadow-hover);
 transform: translateY(-2px);
}
.faq-question {
 background: var(--background-light);
 padding: var(--spacing-sm) var(--spacing-md);
 cursor: pointer;
 position: relative;
 transition: all 0.3s ease;
 border: none;
 width: 100%;
 text-align: left;
 font-family: inherit;
}
.faq-question:hover { background: #e8f0fe; }
.faq-question-text {
 color: var(--text-primary);
 font-size: 1rem;
 font-weight: 600;
 line-height: 1.5;
 margin: 0;
 padding-right: 2rem;
}
.faq-answer {
 max-height: 0;
 overflow: hidden;
 transition: max-height 0.4s ease, padding 0.4s ease;
 padding: 0 var(--spacing-md);
}
.faq-item.active .faq-answer {
 max-height: 1000px;
 padding: 0 var(--spacing-md) var(--spacing-md);
}
.faq-answer-text {
 color: var(--text-secondary);
 font-size: 1rem;
 line-height: 1.7;
 margin: var(--spacing-sm) 0 0;
}
.about-section {
 background: var(--background-light);
 border-left: 4px solid var(--primary-color);
 border-radius: var(--border-radius);
 padding: var(--spacing-md) var(--spacing-lg);
 margin: var(--spacing-lg) 0;
}
.about-section .std-text {
 color: var(--text-secondary);
 font-size: 0.95rem;
 margin-bottom: 0;
}
.conclusion-section {
 border-top: 2px solid var(--border-color);
 padding-top: var(--spacing-lg);
 margin-top: var(--spacing-lg);
}
.conclusion-section .std-text {
 font-size: 1.05rem;
 line-height: 1.7;
}
@media (max-width: 768px) {
 .card { padding: 0.75rem; }
 .data-table { min-width: 100%; font-size: 0.8rem; }
 .data-table th, .data-table td { padding: 0.5rem 0.25rem; }
 .emoji-list { font-size: 0.95rem; }
}
@media (max-width: 480px) {
 .section-title { margin: var(--spacing-sm) 0 0.5rem; }
 .card { padding: 0.5rem; }
 .data-table th, .data-table td { padding: 0.4rem 0.2rem; font-size: 0.75rem; }
}
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: 0.01ms !important;
 transition-duration: 0.01ms !important;
 }
}
&lt;/style>
&lt;!-- wp:html -->
&lt;style>
/* CSS переменные для единообразного стиля */
:root {
 --primary-color: #4285f4;
 --primary-dark: #0057cc;
 --success-color: #34a853;
 --warning-color: #fbbc05;
 --error-color: #ea4335;
 --text-primary: #333333;
 --text-secondary: #666666;
 --text-light: #888888;
 --border-color: #e0e0e0;
 --background-light: #f8f9fa;
 --background-card: #ffffff;
 --background-code: #f5f5f5;
 --warning-bg: #fff8f8;
 --spacing-xs: 0.5rem;
 --spacing-sm: 1rem;
 --spacing-md: 1.5rem;
 --spacing-lg: 2rem;
 --border-radius: 8px;
 --border-radius-sm: 4px;
 --box-shadow: 0 2px 8px rgba(0,0,0,0.08);
 --box-shadow-hover: 0 4px 16px rgba(0,0,0,0.12);
}

/* Основные стили */
.article-marker {
 background: var(--primary-color);
 color: white;
 text-align: center;
 padding: var(--spacing-sm);
 margin: var(--spacing-lg) 0;
 font-size: 1rem;
 font-weight: 700;
 border-radius: var(--border-radius-sm);
 border: 2px dashed var(--primary-dark);
 box-shadow: var(--box-shadow);
}

.main-title {
 margin-bottom: var(--spacing-md);
 font-size: clamp(1.5rem, 4vw, 2rem);
 font-weight: 700;
 color: var(--text-primary);
 line-height: 1.2;
}

.section-title {
 color: var(--text-primary);
 margin: var(--spacing-lg) 0 var(--spacing-sm);
 font-size: clamp(1.2rem, 3vw, 1.4rem);
 font-weight: 600;
 line-height: 1.3;
}

.subsection-title {
 color: var(--text-primary);
 margin: var(--spacing-md) 0 var(--spacing-xs);
 font-size: clamp(1.1rem, 2.5vw, 1.2rem);
 font-weight: 600;
}

.std-text {
 font-size: 1rem;
 line-height: 1.6;
 margin-bottom: var(--spacing-sm);
 color: var(--text-primary);
}

/* Улучшенные карточки */
.card {
 border: 1px solid var(--border-color);
 padding: var(--spacing-sm);
 background: var(--background-card);
 border-radius: var(--border-radius);
 margin-bottom: var(--spacing-md);
 box-shadow: var(--box-shadow);
 transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover {
 transform: translateY(-2px);
 box-shadow: var(--box-shadow-hover);
}

.warning-box {
 border: 1px solid var(--error-color);
 padding: var(--spacing-sm);
 background: var(--warning-bg);
 border-radius: var(--border-radius);
 margin-bottom: var(--spacing-lg);
 box-shadow: var(--box-shadow);
}

.warning-title {
 color: var(--error-color);
 margin-bottom: var(--spacing-xs);
 font-weight: 700;
 font-size: 1.1rem;
}

/* Emoji списки с лучшими отступами */
.emoji-list {
 font-size: 1rem;
 line-height: 1.7;
 margin-bottom: 0.8rem;
 padding: 0.8rem 0;
 border-bottom: 1px solid var(--border-color);
 color: var(--text-primary);
 background: transparent;
}

.emoji-list:last-child {
 border-bottom: none;
 margin-bottom: 0;
}

.emoji-list strong {
 color: var(--primary-color);
 font-weight: 600;
}

/* Адаптивные таблицы */
.table-container {
 width: 100%;
 overflow-x: auto;
 margin-bottom: var(--spacing-md);
 border-radius: var(--border-radius);
 box-shadow: var(--box-shadow);
}

.data-table {
 width: 100%;
 min-width: 600px;
 border-collapse: collapse;
 background: white;
}

.data-table th,
.data-table td {
 padding: var(--spacing-sm);
 border: 1px solid var(--border-color);
 font-size: 0.9rem;
 text-align: left;
}

.data-table th {
 background: var(--primary-color);
 color: white;
 font-weight: 700;
 white-space: nowrap;
}

.data-table td:first-child {
 font-weight: 700;
 font-size: 0.9rem;
}

.data-table tbody tr:nth-child(even) {
 background: #f8f9ff;
}

/* Убираем синий фон с первой строки tbody */
.data-table tbody tr:first-child {
 background: transparent !important;
 color: inherit !important;
}

.data-table tbody tr:first-child td {
 background: transparent !important;
 color: inherit !important;
}

/* Правильное чередование строк */
.data-table tbody tr:nth-child(even) td {
 background: #f8f9ff !important;
}

.data-table tbody tr:nth-child(odd) td {
 background: white !important;
}

.data-table tr:hover td {
 background: #e8f0fe;
}

.data-table-caption {
 font-size: 0.9rem;
 color: var(--text-secondary);
 text-align: center;
 margin-top: var(--spacing-xs);
 font-style: italic;
}

/* Улучшенные статус-теги */
.status-tag {
 display: inline-block;
 padding: 4px 8px;
 color: white;
 border-radius: 16px;
 font-size: 0.75rem;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.5px;
 box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.status-green { background: linear-gradient(135deg, var(--success-color), #2d8f47); }
.status-blue { background: linear-gradient(135deg, var(--primary-color), #3367d6); }
.status-yellow { background: linear-gradient(135deg, var(--warning-color), #f9ab00); color: #333; }
.status-red { background: linear-gradient(135deg, var(--error-color), #d33b2c); }

/* Адаптивные блоки кода */
.code-block {
 font-family: 'Courier New', Consolas, Monaco, monospace;
 font-size: 0.85rem;
 background: var(--background-code);
 color: var(--text-primary);
 padding: var(--spacing-sm);
 border: 1px solid var(--border-color);
 border-radius: var(--border-radius);
 margin-bottom: var(--spacing-md);
 overflow-x: auto;
 line-height: 1.5;
 box-shadow: var(--box-shadow);
}

/* Адаптивные изображения */
.responsive-img {
 max-width: 100%;
 height: auto;
 border-radius: var(--border-radius);
 box-shadow: var(--box-shadow);
}

.img-caption {
 font-size: 0.9rem;
 color: var(--text-secondary);
 text-align: center;
 margin-top: var(--spacing-xs);
 font-style: italic;
}

/* Адаптивные списки */
.responsive-list {
 padding-left: 1.5rem;
 margin: var(--spacing-sm) 0;
 line-height: 1.7;
}

.responsive-list li {
 margin-bottom: var(--spacing-xs);
 padding-left: 0.5rem;
}

.responsive-list a {
 color: var(--primary-color);
 text-decoration: none;
 font-weight: 600;
 transition: color 0.2s ease;
}

.responsive-list a:hover {
 color: var(--primary-dark);
 text-decoration: underline;
}

/* Медиа-запросы для мобильных устройств */
@media (max-width: 768px) {
 .article-marker {
 font-size: 0.9rem;
 padding: 0.75rem;
 margin: var(--spacing-sm) 0;
 }

 .card, .warning-box {
 padding: 0.75rem;
 margin-bottom: var(--spacing-sm);
 }

 .data-table {
 min-width: 100%;
 font-size: 0.8rem;
 }

 .data-table th,
 .data-table td {
 padding: 0.5rem 0.25rem;
 }

 .status-tag {
 font-size: 0.7rem;
 padding: 3px 6px;
 }

 .code-block {
 font-size: 0.8rem;
 padding: 0.75rem;
 }

 .emoji-list {
 font-size: 0.95rem;
 line-height: 1.6;
 }

 .responsive-list {
 padding-left: 1rem;
 }
}

@media (max-width: 480px) {
 .section-title {
 margin: var(--spacing-sm) 0 0.5rem;
 }

 .subsection-title {
 margin: var(--spacing-sm) 0 0.5rem;
 }

 .card, .warning-box {
 padding: 0.5rem;
 }

 .data-table th,
 .data-table td {
 padding: 0.4rem 0.2rem;
 font-size: 0.75rem;
 }

 .code-block {
 font-size: 0.75rem;
 padding: 0.5rem;
 }
}

/* Улучшение доступности */
@media (prefers-reduced-motion: reduce) {
 .card, .status-tag, .responsive-list a {
 transition: none;
 }
}
&lt;/style>
&lt;!-- /wp:html -->
&lt;style>:root{--text-primary:var(--text,#333333);--background-card:var(--bg-card,#ffffff);--background-light:var(--bg-subtle,#f8f9fa);--background-code:var(--bg-subtle,#f5f5f5);--border-color:var(--border,#e0e0e0)}&lt;/style>
&lt;!-- /wp:html -->
&lt;!-- wp:html -->
&lt;script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "FAQPage",
 "mainEntity": [
 {
 "@type": "Question",
 "name": "Why do attackers prefer Memcached over DNS for amplification?",
 "acceptedAnswer": {
 "@type": "Answer",
 "text": "Attackers choose Memcached because it offers significantly higher bandwidth multiplication than DNS. This protocol allows amplification factors reaching up to 51,200x, making it far more destructive for generating massive traffic floods."
 }
 },
 {
 "@type": "Question",
 "name": "How much did CLDAP-based attack traffic grow recently?",
 "acceptedAnswer": {
 "@type": "Answer",
 "text": "CLDAP-based attack traffic surged dramatically as attackers shifted to less monitored protocols. Data indicates a massive 3,488% increase in Q1 2025, showing rapid adaptation to exploit unfiltered service discovery ports globally."
 }
 },
 {
 "@type": "Question",
 "name": "What peak packet rate did Indonesia record during attacks?",
 "acceptedAnswer": {
 "@type": "Answer",
 "text": "Indonesia recorded a massive peak impact during the first half of 2023. The network experienced 34.82 Million packets per second, illustrating the sheer scale achievable through these specific reflection and amplification vectors."
 }
 },
 {
 "@type": "Question",
 "name": "How much of global DDoS traffic originates from Indonesia?",
 "acceptedAnswer": {
 "@type": "Answer",
 "text": "Indonesia generates a significant portion of global campaign traffic despite regional security efforts. Current data confirms that the country accounts for 30% of this malicious volume, proving previous optimism about improvements was misplaced."
 }
 },
 {
 "@type": "Question",
 "name": "What is the current Mirai botnet share of attacks?",
 "acceptedAnswer": {
 "@type": "Answer",
 "text": "Mirai-derived botnets have grown from a minor portion to a significant threat vector. By early 2026, Mirai accounted for around 10% of global attack traffic, contributing significantly to the persistent DDoS issues."
 }
 }
 ]
}
&lt;/script>
&lt;!-- /wp:html -->
&lt;!-- wp:html -->
&lt;style>
.faq-section { margin: 24px 0; padding: 24px 0; border-top: 2px solid #e5e7eb; }
.faq-section-title { color: #1a1a1a; font-size: clamp(1.2rem, 3vw, 1.4rem); font-weight: 700; margin-bottom: 24px; text-align: center; }
.faq-item { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; margin-bottom: 12px; overflow: hidden; transition: all 0.3s ease; }
.faq-item:hover { border-color: #2563eb; box-shadow: 0 4px 6px rgba(0,0,0,0.05); transform: translateY(-2px); }
.faq-question { background: #f9fafb; padding: 12px 16px; cursor: pointer; position: relative; transition: all 0.3s ease; border: none; width: 100%; text-align: left; font-family: inherit; display: block; }
.faq-question:hover { background: #e8f0fe; }
.faq-question-text { color: #1a1a1a; font-size: 1rem; font-weight: 600; line-height: 1.5; margin: 0; padding-right: 2rem; display: inline-block; }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; padding: 0 16px; }
.faq-item.active .faq-answer { max-height: 1000px; padding: 0 16px 16px; }
.faq-answer-text { color: #4b5563; font-size: 1rem; line-height: 1.7; margin: 12px 0 0; }
&lt;/style>
&lt;script>
(function() {
 function initFAQ() {
 var qs = document.querySelectorAll(".faq-question");
 for (var i = 0; i &lt; qs.length; i++) {
 qs[i].addEventListener("click", function() {
 var item = this.closest(".faq-item");
 var wasActive = item.classList.contains("active");
 var allItems = document.querySelectorAll(".faq-item");
 for (var j = 0; j &lt; allItems.length; j++) { allItems[j].classList.remove("active"); }
 if (!wasActive) item.classList.add("active");
 this.setAttribute("aria-expanded", String(!wasActive));
 });
 }
 }
 if (document.readyState === "loading") {
 document.addEventListener("DOMContentLoaded", initFAQ);
 } else {
 initFAQ();
 }
})();
&lt;/script>
&lt;!-- /wp:html -->
&lt;!-- wp:html -->
&lt;script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "TechArticle",
 "headline": "The Mechanics of Reflection and Amplification Attacks",
 "description": "Indonesia generates 30% of global DDoS campaign traffic, proving optimism about regional security improvements was misplaced. Dave Phelan's analysis for APRI...",
 "author": {
 "@type": "Person",
 "name": "Alexander Timokhin"
 },
 "datePublished": "2026-05-19",
 "url": "https://blog.apnic.net/2026/05/19/ddos-in-indonesia-what-has-changed/",
 "inLanguage": "en",
 "wordCount": 2944,
 "speakable": {
 "@type": "SpeakableSpecification",
 "cssSelector": [
 ".article-intro",
 ".faq-answer"
 ]
 },
 "about": [
 {
 "@type": "Thing",
 "name": "reflection and amplification attack"
 }
 ]
}
&lt;/script>
&lt;!-- /wp:html -->
&lt;!-- wp:paragraph {"className":"std-text"} -->
&lt;!-- /wp:paragraph -->
&lt;!-- wp:paragraph {"className":"std-text"} -->
&lt;p class="std-text">Indonesia generates 30% of global DDoS campaign traffic. Any optimism regarding regional security improvements is now demonstrably misplaced. Dave Phelan&amp;#039;s analysis for APRICOT 2026 confirms that &lt;strong>reflection and amplification attacks&lt;/strong> remain the dominant threat vector due to widespread protocol abuse. (APRICOT&amp;#039;s ddos in indonesia what has changed) Despite repeated warnings, local operators continue to host the vulnerable infrastructure fueling these massive outages.&lt;/p></description></item></channel></rss>