mirror of https://github.com/MISP/misp-training
Merge pull request #22 from righel/0-intro-shorter-spanish
new: spanish versions of some slidespull/24/head
commit
d142f2ff6d
|
@ -0,0 +1,165 @@
|
|||
% DO NOT COMPILE THIS FILE DIRECTLY!
|
||||
% This is included by the other .tex files.
|
||||
|
||||
\begin{frame}[t,plain]
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP, comenzando desde un caso práctico}
|
||||
\begin{itemize}
|
||||
\item Durante un taller de análisis de malware en 2012, descubrimos que habíamos estado trabajando analizando el mismo malware.
|
||||
\item Quisimos compartir información de forma fácil y automatizada para así {\bf evitar la duplicación de trabajo}.
|
||||
\item Christophe Vandeplas (trabajando en el CERT del MINDEF Belga en aquel entonces) nos mostró su trabajo en una plataforma que luego se convertiría en MISP.
|
||||
\item Una primera versión de MISP fue utilizada por el MALWG y {\bf los comentarios de los usuarios} nos ayudaron a realizar mejoras en la plataforma.
|
||||
\item Actualmente MISP es {\bf un desarrollo impulsado por la comunidad}.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Acerca de CIRCL}
|
||||
El Centro de Respuesta ante Emergencias Informáticas de Luxemburgo (CIRCL) es una iniciativa impulsada por el gobierno, diseñada para proveer una respuesta sistemática a incidentes y amenazas de seguridad informática.
|
||||
\linebreak
|
||||
\linebreak
|
||||
CIRCL es el CERT del sector privado, municipios y entidades no gubernamentales en Luxemburgo y es operado por LHC g.i.e.
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP y CIRCL}
|
||||
\begin{itemize}
|
||||
\item CIRCL es conducido por el Ministerio de Economía y actúa como el CERT Nacional para el sector privado.
|
||||
\item CIRCL lidera el desarrollo de MISP, la plataforma de código abierto de inteligencia de amenazas, que es utilizada por muchas comunidades militares o de inteligencia, empresas privadas, sector financiero, CERTs nacionales y fuerzas de seguridad (LEAs) en todo el mundo.
|
||||
\item {\bf CIRCL opera múltiples comunidades de MISP, que a diario comparten información de inteligencia de amenazas (threat-intelligence)}.
|
||||
\end{itemize}
|
||||
\includegraphics{en_cef.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{¿Qué es MISP?}
|
||||
\begin{itemize}
|
||||
\item MISP es una plataforma libre y de código abierto para el {\bf intercambio de información de amenazas}.
|
||||
\item Es una herramienta que {\bf recolecta} información proveniente de diferentes participantes, sus analistas, sus herramientas, fuentes de inteligencia, etc.
|
||||
\item Normaliza, {\bf correlaciona} y {\bf enriquece} la información.
|
||||
\item Permite {\bf colaborar} a los diferentes equipos y comunidades.
|
||||
\item {\bf Alimenta} las herramientas de seguridad y de los analistas con sus resultados.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Desarrollo basado en comentarios de los usuarios}
|
||||
\begin{itemize}
|
||||
\item Existen muchos diferentes tipos de usuarios de plataformas de intercambio de información como MISP:
|
||||
\begin{itemize}
|
||||
\item {\bf Analistas de Malware} dispuestos a compartir indicadores de compromiso con sus respectivos colegas.
|
||||
\item {\bf Analistas de Seguridad} buscando, validando y utilizando indicadores en seguridad operacional.
|
||||
\item {\bf Analistas de Inteligencia} recopilando información acerca de ciertos grupos de adversarios.
|
||||
\item {\bf Fuerzas de Seguridad} utilizando indicadores para dar soporte a casos de análisis forense digital (DFIR).
|
||||
\item {\bf Equipos de Análisis de Riesgos} dispuestos a saber más sobre nuevas amenazas, probabilidades e incidencias.
|
||||
\item {\bf Analistas de Fraude} dispuestos a compartir indicadores financieros para detectar fraudes.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Modelo de gobernabilidad de MISP}
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.2]{governance.png}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Múltiples objetivos según diferentes grupos de usuarios}
|
||||
\begin{itemize}
|
||||
\item Compartiendo indicadores para la {\bf detección}.
|
||||
\begin{itemize}
|
||||
\item '¿Existen sistemas infectados en mi infraestructura o en las redes que opero?'
|
||||
\end{itemize}
|
||||
\item Compartiendo indicadores para {\bf bloquear}.
|
||||
\begin{itemize}
|
||||
\item 'Utilizo estos indicadores para bloquear el acceso o redireccionar el tráfico.'
|
||||
\end{itemize}
|
||||
\item Compartiendo indicadores para {\bf realizar actividades de inteligencia}.
|
||||
\begin{itemize}
|
||||
\item 'Recopilando información acerca de campañas y ataques. ¿Están relacionados? ¿Quién me tiene como objetivo? ¿Quiénes son los adversarios?'
|
||||
\end{itemize}
|
||||
\item $\rightarrow$ Estos objetivos pueden ser contradictorios (p. ej. Los falsos-positivos tienen diferentes impactos)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Comunidades utilizando MISP}
|
||||
\begin{itemize}
|
||||
\item Las comunidades son grupos de usuarios que comparten un conjunto objetivos o valores comunes.
|
||||
\item CIRCL opera múltiples instancias de MISP con una gran cantidad de usuarios (más de 1200 organizaciones con más de 4000 usuarios).
|
||||
\item {\bf Grupos de confianza} operando comunidades de MISP en modo aislado (air-gapped) o parcialmente conectados.
|
||||
\item {\bf Sector financiero} (bancos, Centros de Análisis e Intercambio de Información (ISACs), organizaciones de procesamiento de pagos) utilizan MISP como mecanismo de intercambio.
|
||||
\item {\bf Organizaciones internacionales y militares} OTAN, CSIRTs militares, CERTs, ...
|
||||
\item {\bf Proveedores de Seguridad} operando sus propias comunidades o interconectados con otras comunidades.
|
||||
\item {\bf Comunidades temáticas} creadas para abordar problemáticas específicas (COVID-19 MISP)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Las dificultades de compartir información}
|
||||
\begin{itemize}
|
||||
\item Las dificultades de compartir información no suelen ser problemas de índole tecnológico, en general se deben a las {\bf interacciones sociales} (p. ej. {\bf confianza}).
|
||||
\item Restricciones legales\footnote{\url{https://www.misp-project.org/compliance/}}
|
||||
\begin{itemize}
|
||||
\item "Nuestro marco legal no nos permite compartir información."
|
||||
\item "El riesgo de filtraciones de información es muy alto y riesgoso para nuestra organización y nuestros socios."
|
||||
\end{itemize}
|
||||
\item Restricciones prácticas
|
||||
\begin{itemize}
|
||||
\item "No tenemos información para compartir."
|
||||
\item "No tenemos tiempo para procesar o contribuir con indicadores."
|
||||
\item "Nuestro modelo de clasificación no se ajusta al modelo de MISP."
|
||||
\item "Las herramientas para intercambio de información están asociadas a un formato específico, nosotros utilizamos otro."
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Vista general del Proyecto MISP}
|
||||
\includegraphics[scale=0.35]{misp-overview-simplified.pdf}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Compartiendo en MISP}
|
||||
\begin{itemize}
|
||||
\item Compartiendo vía listas de distribución - {\bf Grupos de intercambio} (sharing groups)
|
||||
\item {\bf Delegación} para intercambio de información pseudo-anonimizada
|
||||
\item {\bf Propuestas} y {\bf Eventos extendidos} para compartir información en forma colaborativa
|
||||
\item Sincronización, Fuentes (feeds), intercambio aislado (air-gapped)
|
||||
\item {\bf Filtros de intercambio } definidos por el usuario para todos los métodos mencionados anteriormente
|
||||
\item {\bf Almacenamiento en caché} para búsquedas rápidas en grandes volúmenes de datos
|
||||
\item Soporte de múltiples instancias de MISP para enclaves internas
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Gestión de la calidad de la Información}
|
||||
\begin{itemize}
|
||||
\item Información correlacionada
|
||||
\item Ciclo de retroalimentación de detecciones vía {\bf Avistamientos} (Sightings)
|
||||
\item {\bf Gestión de falsos positivos} vía el sistema de alertas (warninglists)
|
||||
\item Sistema de {\bf enriquecimiento} vía MISP-modules
|
||||
\item Sistema de {\bf flujos de trabajo} para revisar y controlar la información que se publica
|
||||
\item {\bf Integraciones} con un gran número de herramientas y formatos
|
||||
\item {\bf API} flexible y soporte de {\bf librerías} tales como PyMISP para facilitar la integración
|
||||
\item {\bf Líneas de tiempo} (timelines) para dotar a la información de un marco temporal
|
||||
\item Cadena completa de la {\bf gestión del ciclo de vida de indicadores}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Conclusión}
|
||||
\begin{itemize}
|
||||
\item {\bf Las prácticas de intercambio de información vienen con su uso} y con el ejemplo (p. ej. aprender mediante la imitación de la información compartida).
|
||||
\item MISP es sólo una herramienta. Lo que importa son sus prácticas de intercambio. La herramienta debería darle soporte de la manera más transparente posible.
|
||||
\item Permitir a los usuarios customizar MISP para satisfacer las necesidad de los casos de uso de su comunidad.
|
||||
\item El proyecto MISP combina código abierto, estándares abiertos, mejores prácticas y comunidades para convertir el intercambio de información en una realidad.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
\documentclass{beamer}
|
||||
\usetheme[numbering=progressbar]{focus}
|
||||
\definecolor{main}{RGB}{47, 161, 219}
|
||||
\definecolor{textcolor}{RGB}{128, 128, 128}
|
||||
\definecolor{background}{RGB}{240, 247, 255}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{tikz}
|
||||
\usepackage{listings}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{shapes,arrows}
|
||||
|
||||
|
||||
\title{Una introducción al Intercambio de Información de Ciberseguridad}
|
||||
\subtitle{MISP - Threat Sharing}
|
||||
\author{\small{\input{../includes/authors.txt}}}
|
||||
\date{\input{../includes/location.txt}}
|
||||
\titlegraphic{\includegraphics[scale=0.85]{misp.pdf}}
|
||||
\institute{MISP Project \\ \url{https://www.misp-project.org/}}
|
||||
|
||||
|
||||
\begin{document}
|
||||
\include{content_es}
|
||||
\end{document}
|
||||
|
|
@ -0,0 +1,244 @@
|
|||
% DO NOT COMPILE THIS FILE DIRECTLY!
|
||||
% This is included by the other .tex files.
|
||||
|
||||
%\colorlet{punct}{red!60!black}
|
||||
%\definecolor{background}{HTML}{EEEEEE}
|
||||
%\definecolor{delim}{RGB}{20,105,176}
|
||||
%\colorlet{numb}{magenta!60!black}
|
||||
|
||||
\lstdefinelanguage{json}{
|
||||
basicstyle=\ttfamily\footnotesize,
|
||||
numbers=left,
|
||||
numberstyle=\ttfamily\footnotesize,
|
||||
stepnumber=1,
|
||||
numbersep=8pt,
|
||||
showstringspaces=false,
|
||||
breaklines=true,
|
||||
frame=lines,
|
||||
backgroundcolor=\color{background},
|
||||
literate=
|
||||
*{0}{{{\color{numb}0}}}{1}
|
||||
{1}{{{\color{numb}1}}}{1}
|
||||
{2}{{{\color{numb}2}}}{1}
|
||||
{3}{{{\color{numb}3}}}{1}
|
||||
{4}{{{\color{numb}4}}}{1}
|
||||
{5}{{{\color{numb}5}}}{1}
|
||||
{6}{{{\color{numb}6}}}{1}
|
||||
{7}{{{\color{numb}7}}}{1}
|
||||
{8}{{{\color{numb}8}}}{1}
|
||||
{9}{{{\color{numb}9}}}{1}
|
||||
{:}{{{\color{punct}{:}}}}{1}
|
||||
{,}{{{\color{punct}{,}}}}{1}
|
||||
{\{}{{{\color{delim}{\{}}}}{1}
|
||||
{\}}{{{\color{delim}{\}}}}}{1}
|
||||
{[}{{{\color{delim}{[}}}}{1}
|
||||
{]}{{{\color{delim}{]}}}}{1},
|
||||
}
|
||||
|
||||
\begin{frame}[t,plain]
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - VM}
|
||||
\begin{itemize}
|
||||
\item Credenciales
|
||||
\begin{itemize}
|
||||
\item MISP admin: admin@admin.test/admin
|
||||
\item SSH: misp/Password1234
|
||||
\end{itemize}
|
||||
\item Disponible para descargar aquí (VirtualBox and VMWare):
|
||||
\begin{itemize}
|
||||
\item \url{https://www.circl.lu/misp-images/latest/}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Uso Básico}
|
||||
Plan para esta parte de la capacitación
|
||||
\begin{itemize}
|
||||
\item Modelo de datos
|
||||
\item Visualizando datos
|
||||
\item Alta de datos
|
||||
\item Cooperación
|
||||
\item Distribución
|
||||
\item Exportando datos
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (El componente fundamental de MISP)}
|
||||
\includegraphics[scale=0.45]{screenshots/datamodel1.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (Atributos, dando significado a los eventos)}
|
||||
\includegraphics[scale=0.45]{screenshots/datamodel2.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (Correlaciones entre atributos similares)}
|
||||
\includegraphics[scale=0.45]{screenshots/datamodel3.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (Propuestas)}
|
||||
\includegraphics[scale=0.45]{screenshots/datamodel4.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (Etiquetas)}
|
||||
\includegraphics[scale=0.45]{screenshots/datamodel5.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (Discusiones)}
|
||||
\includegraphics[scale=0.45]{screenshots/datamodel6.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (Taxonomías y propuestas de correlaciones)}
|
||||
\includegraphics[scale=0.35]{screenshots/datamodel7.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Eventos (El estado del arte del modelo de datos de MISP)}
|
||||
\includegraphics[scale=0.25]{screenshots/datamodel8.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Visualizando el listado de Eventos}
|
||||
\begin{itemize}
|
||||
\item Listar Eventos
|
||||
\begin{itemize}
|
||||
\item Contexto del Evento
|
||||
\item Etiquetas
|
||||
\item Distribución
|
||||
\item Correlaciones
|
||||
\end{itemize}
|
||||
\item Filtros
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Visualizando un Evento}
|
||||
\begin{itemize}
|
||||
\item Ver Evento
|
||||
\begin{itemize}
|
||||
\item Contexto del Evento
|
||||
\item Atributos
|
||||
\begin{itemize}
|
||||
\item Categoría/tipo, IDS, Correlaciones
|
||||
\end{itemize}
|
||||
\item Objetos
|
||||
\item Galáxias
|
||||
\item Propuestas
|
||||
\item Discusiones
|
||||
\end{itemize}
|
||||
\item Herramientas para encontrar lo que buscas
|
||||
\item Grafos de correlaciones
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Alta y carga de eventos en diferentes formas (demo)}
|
||||
\begin{itemize}
|
||||
\item Las principales formas de cargar eventos
|
||||
\begin{itemize}
|
||||
\item Añadir atributos / Añadir en lotes
|
||||
\item Añadir objetos y cómo funcionan las plantillas de objetos
|
||||
\item Importar texto libre
|
||||
\item Importar
|
||||
\item Plantillas
|
||||
\item Añadir archivos adjuntos / capturas de pantalla
|
||||
\item API
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Diferentes funcionalidades para añadir información}
|
||||
\begin{itemize}
|
||||
\item ¿Qué sucede automáticamente cuando agregamos información?
|
||||
\begin{itemize}
|
||||
\item Correlación automática
|
||||
\item Modificación de la carga vía validación y filtros (regex)
|
||||
\item Etiquetado / Cúmulos de galaxias
|
||||
\end{itemize}
|
||||
\item Diferentes formas de publicar información
|
||||
\begin{itemize}
|
||||
\item Publicar con/sin enviar un e-mail
|
||||
\item Publicar vía la API
|
||||
\item Delegación
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Utilizando la información}
|
||||
\begin{itemize}
|
||||
\item Grafos de correlaciones
|
||||
\item Descargando la información en diferentes formatos
|
||||
\item API (más detalles luego)
|
||||
\item Colaborando con usuarios (propuestas, discusiones, emails)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Sincronización en detalle}
|
||||
\begin{itemize}
|
||||
\item Conexiones de sincronización
|
||||
\item Modelo pull/push
|
||||
\item Previsualización de instancias
|
||||
\item Filtrado de la sincronización
|
||||
\item Herramienta de prueba de conexión
|
||||
\item Modo de selección manual
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Fuentes (feeds) en detalle}
|
||||
\begin{itemize}
|
||||
\item Tipos de fuentes (MISP, texto libre, CSV)
|
||||
\item Alta/edición de fuentes
|
||||
\item Previzualización de fuentes
|
||||
\item Fuentes Locales vs. Remotas
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Distribuciones en detalle}
|
||||
\begin{itemize}
|
||||
\item Solo Mi Organización
|
||||
\item Solo Esta Comunidad
|
||||
\item Comunidades Conectadas
|
||||
\item Todas las Comunidades
|
||||
\item Grupo de Intercambio
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Distribución y Topología}
|
||||
\includegraphics[scale=0.45]{screenshots/sync.png}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Exportar y API}
|
||||
\begin{itemize}
|
||||
\item Descargar un evento
|
||||
\item Un vistazo a las APIs
|
||||
\item Descargar resultados de una búsqueda
|
||||
\item API REST y generador de consultas
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{MISP - Tareas administrativas}
|
||||
\begin{itemize}
|
||||
\item Configuración
|
||||
\item Resolución de problemas
|
||||
\item Trabajadores (workers)
|
||||
\item Registros (logs)
|
||||
\end{itemize}
|
||||
\end{frame}
|
|
@ -0,0 +1,28 @@
|
|||
\documentclass{beamer}
|
||||
\usetheme[numbering=progressbar]{focus}
|
||||
\definecolor{main}{RGB}{47, 161, 219}
|
||||
\definecolor{textcolor}{RGB}{128, 128, 128}
|
||||
\definecolor{background}{RGB}{240, 247, 255}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{tikz}
|
||||
\usepackage{listings}
|
||||
\usepackage{adjustbox}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{shapes,arrows}
|
||||
%\usepackage[T1]{fontenc}
|
||||
%\usepackage[scaled]{beramono}
|
||||
|
||||
\author{\small{\input{../includes/authors.txt}}}
|
||||
|
||||
\title{Capacitación de Usuario de MISP - Uso básico de MISP}
|
||||
\subtitle{MISP - Threat Sharing}
|
||||
\institute{\href{http://www.misp-project.org/}{http://www.misp-project.org/} \\ Twitter: \emph{\href{https://twitter.com/mispproject}{@MISPProject}}}
|
||||
\date{\input{../includes/location.txt}}
|
||||
\titlegraphic{\includegraphics[scale=0.85]{misp.pdf}}
|
||||
|
||||
|
||||
\begin{document}
|
||||
\include{content_es}
|
||||
\end{document}
|
||||
|
8
build.sh
8
build.sh
|
@ -13,7 +13,9 @@ for slide in ${slidedecks[@]}; do
|
|||
cd ${slide}
|
||||
if test -f "slide_nl.tex"; then
|
||||
pdflatex slide_nl.tex
|
||||
pdflatex slide_nl.tex
|
||||
fi
|
||||
if test -f "slide_es.tex"; then
|
||||
pdflatex slide_es.tex
|
||||
fi
|
||||
pdflatex slide.tex
|
||||
pdflatex slide.tex
|
||||
|
@ -30,6 +32,10 @@ for slide in ${slidedecks[@]}; do
|
|||
cp slide_nl.pdf ../output/${slide}_nl.pdf
|
||||
rm slide_nl.pdf
|
||||
fi
|
||||
if test -f "slide_es.tex"; then
|
||||
cp slide_es.pdf ../output/${slide}_es.pdf
|
||||
rm slide_es.pdf
|
||||
fi
|
||||
cd ..
|
||||
echo "--- Finished building ${slide}"
|
||||
done
|
||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue