<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://cybersecref.me/blog</id>
    <title>CyberSecRef Blog</title>
    <updated>2023-09-13T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://cybersecref.me/blog"/>
    <subtitle>CyberSecRef Blog</subtitle>
    <icon>https://cybersecref.me/img/favicon.svg</icon>
    <entry>
        <title type="html"><![CDATA[Seguridad en Pod]]></title>
        <id>https://cybersecref.me/blog/kubernetes/pod-security</id>
        <link href="https://cybersecref.me/blog/kubernetes/pod-security"/>
        <updated>2023-09-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Estandares de Seguridad en el Pod]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="estandares-de-seguridad-en-el-pod">Estandares de Seguridad en el Pod<a href="https://cybersecref.me/blog/kubernetes/pod-security#estandares-de-seguridad-en-el-pod" class="hash-link" aria-label="Enlace directo al Estandares de Seguridad en el Pod" title="Enlace directo al Estandares de Seguridad en el Pod" translate="no">​</a></h2>
<p>Pod Security Standards (PSS) traducido al ingles. Este estandar define tres políticas diferentes para cubrir ampliamente el espectro de seguridad. Estas políticas son acumulativas y van desde muy permisivas hasta muy restrictivas. Esta guía describe los requisitos de cada política.</p>
<table><thead><tr><th>Perfil</th><th>Descripcion</th></tr></thead><tbody><tr><td>privileged</td><td>Política sin restricciones, que proporciona el nivel más amplio posible de permisos. Esta política permite escaladas de privilegios conocidas</td></tr><tr><td>baseline</td><td>Política mínimamente restrictiva que impide las escaladas de privilegios conocidas. Permite la configuración predeterminada (mínimamente especificada) del pod</td></tr><tr><td>restricted</td><td>Política muy restrictiva, siguiendo las mejores prácticas actuales de refuerzo de Pod</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="aplicar-los-estandares-de-seguridad">Aplicar los estandares de Seguridad<a href="https://cybersecref.me/blog/kubernetes/pod-security#aplicar-los-estandares-de-seguridad" class="hash-link" aria-label="Enlace directo al Aplicar los estandares de Seguridad" title="Enlace directo al Aplicar los estandares de Seguridad" translate="no">​</a></h2>
<p>Una vez habilitada la función o instalado el webhook, se puede configurar los <code>namespace</code> para definir el modo de control de admisión que desea utilizar para la seguridad de los pods en cada espacio de nombres. Kubernetes define un conjunto de etiquetas que puede establecer para definir cuál de los niveles predefinidos de Pod Security Standard desea utilizar para un espacio de nombres. La etiqueta que seleccione define la acción que tomará el plano de control si se detecta una posible infracción:</p>
<table><thead><tr><th>Modo</th><th>Descripción</th></tr></thead><tbody><tr><td>enforce</td><td>Éste modo provoca el rechazo del pod</td></tr><tr><td>audit</td><td>Éste modo provocarán el registro del evento en un fichero de eventos de sistema, pero por lo demás están permitidas</td></tr><tr><td>warn</td><td>Éste modo dará lugar a una advertencia dirigida al usuario, pero por lo demás están permitidas</td></tr></tbody></table>
<p>Para cada modo, hay dos etiquetas que determinan la política utilizada:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># La etiqueta de nivel por modo indica qué nivel de política se debe aplicar para el modo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">#</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># MODE tiene que ser uno de `enforce`, `audit`, or `warn`.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># LEVEL tiene que ser uno de `privileged`, `baseline`, or `restricted`.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">pod-security.kubernetes.io/&lt;MODE&gt;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> &lt;LEVEL</span><span class="token punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Opcional: etiqueta de versión por modo que se puede utilizar para fijar la política a la</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># versión que se incluye con una versión menor determinada de Kubernetes (por ejemplo, v1.34).</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">#</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># MODE tiene que ser uno de `enforce`, `audit`, or `warn`.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># VERSION tiene que ser una version menor valida de Kubernetes, o `latest`.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">pod-security.kubernetes.io/&lt;MODE&gt;-version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> &lt;VERSION</span><span class="token punctuation" style="color:#393A34">&gt;</span><br></span></code></pre></div></div>]]></content>
        <category label="kubernetes" term="kubernetes"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Seguridad de código]]></title>
        <id>https://cybersecref.me/blog/code-review/code-security</id>
        <link href="https://cybersecref.me/blog/code-review/code-security"/>
        <updated>2023-09-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[OWASP Security Code Review 101]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="owasp-security-code-review-101">OWASP Security Code Review 101<a href="https://cybersecref.me/blog/code-review/code-security#owasp-security-code-review-101" class="hash-link" aria-label="Enlace directo al OWASP Security Code Review 101" title="Enlace directo al OWASP Security Code Review 101" translate="no">​</a></h2>
<p>Ejercicios interactivos para distinguir código seguro vs. inseguro. <strong>Gratis</strong></p>
<ul>
<li class=""><a href="https://owasp.org/SecureCodingDojo/codereview101/" target="_blank" rel="noopener noreferrer" class="">OWASP Foundation</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="owasp-code-review-guide">OWASP Code Review Guide<a href="https://cybersecref.me/blog/code-review/code-security#owasp-code-review-guide" class="hash-link" aria-label="Enlace directo al OWASP Code Review Guide" title="Enlace directo al OWASP Code Review Guide" translate="no">​</a></h2>
<p>Referencia esencial sobre enfoque, checklists y tipos de fallos. <strong>Gratis</strong></p>
<ul>
<li class=""><a href="https://owasp.org/www-project-code-review-guide/" target="_blank" rel="noopener noreferrer" class="">OWASP Foundation</a></li>
<li class=""><a href="https://owasp.org/www-project-code-review-guide/assets/OWASP_Code_Review_Guide_v2.pdf" target="_blank" rel="noopener noreferrer" class="">OWASP Code Review Guide v2</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="semgrep-academy">Semgrep Academy<a href="https://cybersecref.me/blog/code-review/code-security#semgrep-academy" class="hash-link" aria-label="Enlace directo al Semgrep Academy" title="Enlace directo al Semgrep Academy" translate="no">​</a></h2>
<p>Cursos gratuitos <a href="https://academy.semgrep.dev/courses/semgrep-101" target="_blank" rel="noopener noreferrer" class="">Semgrep 101</a> (SAST práctico) y <a href="https://academy.semgrep.dev/courses/AppSec-1" target="_blank" rel="noopener noreferrer" class="">AppSec Foundations</a> (programas y guardrails)</p>
<p>Ideal para meter análisis estático en tu CI.</p>
<ul>
<li class=""><a href="https://academy.semgrep.dev/" target="_blank" rel="noopener noreferrer" class="">Semgrep Academy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="github-codeql-formación-oficial">GitHub CodeQL (formación oficial)<a href="https://cybersecref.me/blog/code-review/code-security#github-codeql-formaci%C3%B3n-oficial" class="hash-link" aria-label="Enlace directo al GitHub CodeQL (formación oficial)" title="Enlace directo al GitHub CodeQL (formación oficial)" translate="no">​</a></h2>
<p>Módulo en Microsoft Learn + curso "Introduction to CodeQL" y tutoriales para escribir queries. Perfecto para detecciones personalizadas. <strong>Gratis</strong></p>
<ul>
<li class=""><a href="https://learn.microsoft.com/en-us/training/modules/code-scanning-with-github-codeql" target="_blank" rel="noopener noreferrer" class="">Code scanning with GitHub CodeQL</a></li>
<li class=""><a href="https://github.com/skills/introduction-to-codeql" target="_blank" rel="noopener noreferrer" class="">Introduction to CodeQL</a></li>
<li class=""><a href="https://codeql.github.com/docs/writing-codeql-queries/ql-tutorials" target="_blank" rel="noopener noreferrer" class="">Writing CodeQL Queries</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="htb-academy">HTB Academy<a href="https://cybersecref.me/blog/code-review/code-security#htb-academy" class="hash-link" aria-label="Enlace directo al HTB Academy" title="Enlace directo al HTB Academy" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://academy.hackthebox.com/course/preview/secure-coding-101-javascript" target="_blank" rel="noopener noreferrer" class="">Secure Coding 101: JavaScript</a></li>
</ul>
<p>Cubre code review, SAST/DAST y parcheo, con labs</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="secure-code-warrior">Secure Code Warrior<a href="https://cybersecref.me/blog/code-review/code-security#secure-code-warrior" class="hash-link" aria-label="Enlace directo al Secure Code Warrior" title="Enlace directo al Secure Code Warrior" translate="no">​</a></h2>
<p>Plataforma gamificada orientada a devs; buena para practicar patrones de fallos por lenguaje (comercial)</p>
<ul>
<li class=""><a href="https://securecodewarrior.com/" target="_blank" rel="noopener noreferrer" class="">Secure Code Warrior</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sans-developer-security-awareness--catálogo">SANS (Developer Security Awareness / catálogo)<a href="https://cybersecref.me/blog/code-review/code-security#sans-developer-security-awareness--cat%C3%A1logo" class="hash-link" aria-label="Enlace directo al SANS (Developer Security Awareness / catálogo)" title="Enlace directo al SANS (Developer Security Awareness / catálogo)" translate="no">​</a></h2>
<p>Formación enterprise de alto nivel; cara pero muy reconocida</p>
<ul>
<li class=""><a href="https://www.sans.org/for-organizations/workforce/risk-management/developer" target="_blank" rel="noopener noreferrer" class="">SANS Institute</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-journey-owasp-content">Security Journey (OWASP content)<a href="https://cybersecref.me/blog/code-review/code-security#security-journey-owasp-content" class="hash-link" aria-label="Enlace directo al Security Journey (OWASP content)" title="Enlace directo al Security Journey (OWASP content)" translate="no">​</a></h2>
<p>Itinerarios prácticos sobre OWASP Top 10 para equipos (comercial)</p>
<ul>
<li class=""><a href="https://info.securityjourney.com/owasp-training" target="_blank" rel="noopener noreferrer" class="">OWASP Training</a></li>
</ul>]]></content>
        <category label="owasp" term="owasp"/>
        <category label="semgrep" term="semgrep"/>
        <category label="github" term="github"/>
        <category label="sans" term="sans"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Revision general]]></title>
        <id>https://cybersecref.me/blog/code-review/general-review</id>
        <link href="https://cybersecref.me/blog/code-review/general-review"/>
        <updated>2023-09-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Google Engineering Practices]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="google-engineering-practices">Google Engineering Practices<a href="https://cybersecref.me/blog/code-review/general-review#google-engineering-practices" class="hash-link" aria-label="Enlace directo al Google Engineering Practices" title="Enlace directo al Google Engineering Practices" translate="no">​</a></h2>
<p>"How to do a code review" (guía abierta, excelente para estándares y trade-offs)</p>
<p><a href="https://google.github.io/eng-practices/review/" target="_blank" rel="noopener noreferrer" class="">Google GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="effective-code-review-practices">Effective Code Review Practices<a href="https://cybersecref.me/blog/code-review/general-review#effective-code-review-practices" class="hash-link" aria-label="Enlace directo al Effective Code Review Practices" title="Enlace directo al Effective Code Review Practices" translate="no">​</a></h2>
<p>Técnicas, checklists y automatización de pruebas</p>
<p><a href="https://www.coursera.org/learn/fundamentals-of-effective-code-review-practices" target="_blank" rel="noopener noreferrer" class="">Coursera</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="generative-ai-your-personal-code-reviewer">Generative AI: Your Personal Code Reviewer<a href="https://cybersecref.me/blog/code-review/general-review#generative-ai-your-personal-code-reviewer" class="hash-link" aria-label="Enlace directo al Generative AI: Your Personal Code Reviewer" title="Enlace directo al Generative AI: Your Personal Code Reviewer" translate="no">​</a></h2>
<p>Aprender cómo apoyarte en IA en el review, pros/cons</p>
<p><a href="https://www.coursera.org/learn/generative-ai---your-personal-code-reviewer" target="_blank" rel="noopener noreferrer" class="">Coursera</a></p>]]></content>
        <category label="google" term="google"/>
        <category label="coursera" term="coursera"/>
    </entry>
</feed>