diff --git a/.gitignore b/.gitignore index f743531..fe518ac 100644 --- a/.gitignore +++ b/.gitignore @@ -90,4 +90,5 @@ sympy-plots-for-*.tex/ conteudo/commit_log.tex # temporary tex files -*.tex \ No newline at end of file +*.tex +.DS_Store \ No newline at end of file diff --git a/Makefile b/Makefile index feb2b45..e2d4816 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,8 @@ BIBTEX = bibtex LATEX = xelatex DVIPS = dvips PS2PDF = ps2pdf -TEMPLATE = ieee +# TEMPLATE = ieee +TEMPLATE = eisvogel VERSION = 0.1.0 @@ -29,7 +30,7 @@ endif # $J .PHONY: all clean dist-clean -TEX_FILES := $(shell find . -type f -name "*.tex") +TEX_FILES := $(shell find . -type f -name "*.tex" | grep -v "cover.tex") MD_FILES := $(shell find . -type f -name "*.md" | grep -v "README.md") all: convert @@ -62,8 +63,8 @@ clean: rm -f *.lof *.lot *.bbl *.blg *.brf *.toc *.idx *.lol *.bcf *.xml install: - #echo deb http://br.archive.ubuntu.com/ubuntu/ jammy multiverse > /etc/apt/sources.list - #apt update -qq - # apt install -y pandoc pandoc-citeproc latexmk + # echo deb http://br.archive.ubuntu.com/ubuntu/ jammy multiverse > /etc/apt/sources.list + # apt update -qq + wget https://github.com/jgm/pandoc/releases/download/3.1.13/pandoc-3.1.13-1-amd64.deb && dpkg -i pandoc-3.1.13-1-amd64.deb cp -v *.ttf /usr/local/share/fonts fc-cache -fv \ No newline at end of file diff --git a/bibliography.bib b/bibliography.bib index c2a299b..a91dcf5 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -2,123 +2,70 @@ % Encoding: UTF-8 % See the "IEEEtran_bst_HOWTO.pdf" manual for usage information. -@BOOK{msp430, - title = {MSP430 Microcontroller Basics}, - publisher = {1rd}, - editor = {Editora Newnes}, - author = {Jonh Davies}, - owner = {luiz}, - timestamp = {2012.01.09}, - year = 2001 +@online{crowdstrike_executive_summary, + title = {Resumo executivo do Arquivo de Canal 291 RCA}, + author = {{CrowdStrike}}, + year = {2024}, + url = {https://www.crowdstrike.com.br/channel-file-291-rca-executive-summary/}, + urldate = {2024-09-30}, } -@www{ti_exemplos, - title = "MSP430G2x53, MSP430G2x33, MSP430G2x13, MSP430G2x03 Code Examples (Rev. A)", - author = "Texas Instruments", - urlaccessdate = "\today", - url = "\url{http://www.ti.com/litv/zip/slac485a}" +@online{migalhas_bug_2024, + title = {O bug do ano 2024: Risco sistêmico das tecnologias}, + author = {{Migalhas}}, + year = {2024}, + url = {https://www.migalhas.com.br/depeso/412010/o-bug-do-ano-2024-risco-sistemico-das-tecnologias}, + urldate = {2024-09-30}, } -@www{dsl, - title = "Damn Small Linux - Not! - Forum", - author = "Damn Small Linux", - timestamp = {2012.01.09}, - urlaccessdate = "\today", - url= "\url{http://www.damnsmalllinux.org/dsl-n/f/}" - } - -@www{ddsl, - title = "Damn Small Linux", - crossref ="dsl", - url= "\url{http://www.damnsmalllinux.org/}" - } - -@www{valgrind, - title = "Valgrind - Manual", - author = "The Valgrind developers and Andres Roldan", - timestamp = {2012.01.09}, - urlaccessdate = "\today", - url= "\url{http://www.valgrind.org/docs/manual/index.html}" - } - -@www{dossier, - title = "The Pac-Man Dossier", - author = "Jamey Pittman", - timestamp = {2011.06.16}, - urlaccessdate = "\today", - url= "\url{http://home.comcast.net/~jpittman2/pacman/pacmandossier.html}" - } - -@www{algrithm, - title = "Perfect Maze Creation Algorithms", - author = "Walter D. Pullen", - timestamp = {2011.01.24}, - urlaccessdate = "\today", - url= "\url{http://www.astrolog.org/labyrnth/algrithm.htm}" - } - -@www{arduino_code, - title = "Arduino", - author = "Arduino Team", - timestamp = {2012.09.16}, - urlaccessdate = "23 de fevereiro de 2013", - url= "\url{http://www.arduino.cc/}" - } - -@www{textile, - title = "Textile 2 - Documentation", - author = "Movable Type", - timestamp = {2007}, - urlaccessdate = "\today", - url= "\url{http://www.movabletype.org/documentation/author/textile-2-syntax.html}" - } - - +@online{correio_brasiliense_crowdstrike, + title = {CrowdStrike divulga relatório sobre causa do apagão cibernético global}, + author = {{Correio Brasiliense}}, + year = {2024}, + url = {https://www.correiobraziliense.com.br/economia/2024/07/6905695-crowdstrike-divulga-relatorio-sobre-causa-do-apagao-cibernetico-global.html}, + urldate = {2024-09-30}, +} -@www{python, - title = "Maze generation algorithm", - author = "Nathaniel Johnston", - timestamp = {2010.08.21}, - urlaccessdate = "\today", - url= "\url{http://en.wikipedia.org/wiki/Maze_generation_algorithm}" - } +@online{crowdstrike_conformidade, + title = {CrowdStrike Conformidade e Certificação}, + author = {{CrowdStrike}}, + year = {2024}, + url = {https://www.crowdstrike.com.br/por-que-crowdstrike/certificacoes-de-conformidade-crowdstrike/}, + urldate = {2024-10-01}, +} -@www{ruby, - title = "An implementation of the Growing Tree algorithm for maze generation.", - author = "Jamis Buck", - timestamp = {2010}, - urlaccessdate = "\today", - url= "\url{https://gist.github.com/760749}" - } +@online{sankhya_cmmi, + title = {CMMI: o que é e para o que serve?}, + year = {2024}, + url = {https://www.sankhya.com.br/blog/cmmi-capability-maturity-model-integration/}, + urldate = {2024-10-01}, +} +@online{kalinowski_mps_br, + title = {MPS.BR - Melhoria do Processo de Software Brasileiro}, + year = {2024}, + url = {https://www-di.inf.puc-rio.br/~kalinowski/publications/MPSBR_Guia_Geral.pdf}, + urldate = {2024-10-01}, +} -@www{pinkybug, - title = "Why do Pinky and Inky have different behaviors when Pac-Man is facing up?", - author = "Don Hodges", - timestamp = {2008.12.30}, - urlaccessdate = "\today", - url= "\url{http://donhodges.com/pacman_pinky_explanation.htm}" - } +@online{forbes_apagao_julho, + title = {CrowdStrike revela o que causou o apagão cibernético de julho}, + year = {2024}, + url = {https://forbes.com.br/forbes-tech/2024/08/crowdstrike-revela-o-que-causou-o-apagao-cibernetico-de-julho/}, + urldate = {2024-10-01}, +} -@manual{Advpdf, - title = "Advanced Linux Programming", - author = "Mark Mitchell and Jeffrey Oldham and Alex Samuel", - publisher = "David Dwyer", - language = "English", - year= 2001 - } +@online{KB5042426, +title = {KB5042426: CrowdStrike issue impacting Windows servers causing an 0x50 or 0x7E error message on a blue screen}, +url = {https://support.microsoft.com/en-us/topic/0d7741f7-aca1-4487-8a54-bd431cb49455}, +urldate = {2024-10-01}, +year = {2024}, +} -@manual{thepdf, - title = "The Linux Programming Interface", - author = "Michael KerrisK", - Publisher = "William Pollock", - year = 2010, - organization = "No Starch Press Inc." - } +@online{KB5042421, +title = {KB5042421: problema do CrowdStrike que afeta pontos de extremidade do Windows causando uma mensagem de erro 0x50 ou 0x7E em uma tela azul}, +url = {https://support.microsoft.com/help/5042421}, +urldate = {2024-10-01}, +year = {2024}, +} -@book{tanenbaum2007distributed, - title={Distributed systems}, - author={Tanenbaum, Andrew and Van Steen, Maarten}, - year={2007}, - publisher={Pearson Prentice Hall} -} \ No newline at end of file diff --git a/eisvogel.latex b/eisvogel.latex index 119761e..def072f 100644 --- a/eisvogel.latex +++ b/eisvogel.latex @@ -1,6 +1,6 @@ %% -% Copyright (c) 2017 - 2023, Pascal Wagler; -% Copyright (c) 2014 - 2023, John MacFarlane +% Copyright (c) 2017 - 2024, Pascal Wagler; +% Copyright (c) 2014 - 2024, John MacFarlane % % All rights reserved. % @@ -65,6 +65,9 @@ $endif$ $if(aspectratio)$ aspectratio=$aspectratio$, $endif$ +$if(babel-lang)$ + $babel-lang$, +$endif$ $endif$ $for(classoption)$ $classoption$$sep$, @@ -100,13 +103,13 @@ $if(section-titles)$ } \setbeamertemplate{section page}{ \centering - \begin{beamercolorbox}[sep=12pt,center]{part title} + \begin{beamercolorbox}[sep=12pt,center]{section title} \usebeamerfont{section title}\insertsection\par \end{beamercolorbox} } \setbeamertemplate{subsection page}{ \centering - \begin{beamercolorbox}[sep=8pt,center]{part title} + \begin{beamercolorbox}[sep=8pt,center]{subsection title} \usebeamerfont{subsection title}\insertsubsection\par \end{beamercolorbox} } @@ -138,8 +141,7 @@ $else$ $endif$ \usepackage{iftex} \ifPDFTeX - % \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} - \usepackage[T1]{fontenc} + \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} \usepackage[utf8]{inputenc} \usepackage{textcomp} % provide euro and other symbols \else % if luatex or xetex @@ -152,7 +154,6 @@ $if(mathspec)$ $else$ \usepackage{unicode-math} % this also loads fontspec $endif$ - \defaultfontfeatures{Mapping=tex-text} \defaultfontfeatures{Scale=MatchLowercase}$-- must come before Beamer theme \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} \fi @@ -160,7 +161,6 @@ $if(fontfamily)$ $else$ $-- Set default font before Beamer theme so the theme can override it \usepackage{lmodern} -\usepackage{fontawesome} $endif$ $-- Set Beamer theme before user font settings so they can override theme $if(beamer)$ @@ -175,8 +175,6 @@ $if(fonttheme)$ $endif$ $if(mainfont)$ \usefonttheme{serif} % use mainfont rather than sansfont for slide text -% \defaultfontfeatures{Mapping=tex-text} -% \setmainfont[SmallCapsFont = Fontin SmallCaps]{Fontin} % Main document font $endif$ $if(innertheme)$ \useinnertheme{$innertheme$} @@ -192,13 +190,37 @@ $endif$ \ifPDFTeX\else % xetex/luatex font selection $if(mainfont)$ - \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} + $if(mainfontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("mainfontfallback",{ + $for(mainfontfallback)$"$mainfontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} $endif$ $if(sansfont)$ - \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$} + $if(sansfontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("sansfontfallback",{ + $for(sansfontfallback)$"$sansfontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$$if(sansfontfallback)$,RawFeature={fallback=sansfontfallback}$endif$]{$sansfont$} $endif$ $if(monofont)$ - \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$} + $if(monofontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("monofontfallback",{ + $for(monofontfallback)$"$monofontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$if(monofontfallback)$,RawFeature={fallback=monofontfallback}$endif$]{$monofont$} $endif$ $for(fontfamilies)$ \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$} @@ -370,15 +392,17 @@ $endif$ $if(graphics)$ \usepackage{graphicx} \makeatletter -\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} -\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} -\makeatother -% Scale images if necessary, so that they will not overflow the page -% margins by default, and it is still possible to overwrite the defaults -% using explicit options in \includegraphics[width, height, ...]{} -\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +\newsavebox\pandoc@box +\newcommand*\pandocbounded[1]{% scales image to fit in text height/width + \sbox\pandoc@box{#1}% + \Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}% + \Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}% + \ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both + \ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}% + \else\usebox{\pandoc@box}% + \fi% +} % Set default figure placement to htbp -\makeatletter % Make use of float-package and set default placement for figures to H. % The option H means 'PUT IT HERE' (as opposed to the standard h option which means 'You may put it here if you like'). \usepackage{float} @@ -395,6 +419,15 @@ $-- also used for underline \usepackage[soul]{lua-ul} \else \usepackage{soul} +$if(beamer)$ + \makeatletter + \let\HL\hl + \renewcommand\hl{% fix for beamer highlighting + \let\set@color\beamerorig@set@color + \let\reset@color\beamerorig@reset@color + \HL} + \makeatother +$endif$ $if(CJKmainfont)$ \ifXeTeX % soul's \st doesn't work for CJK: @@ -419,14 +452,28 @@ $if(beamer)$ $else$ $if(block-headings)$ % Make \paragraph and \subparagraph free-standing +\makeatletter \ifx\paragraph\undefined\else \let\oldparagraph\paragraph - \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} + \renewcommand{\paragraph}{ + \@ifstar + \xxxParagraphStar + \xxxParagraphNoStar + } + \newcommand{\xxxParagraphStar}[1]{\oldparagraph*{#1}\mbox{}} + \newcommand{\xxxParagraphNoStar}[1]{\oldparagraph{#1}\mbox{}} \fi \ifx\subparagraph\undefined\else \let\oldsubparagraph\subparagraph - \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} + \renewcommand{\subparagraph}{ + \@ifstar + \xxxSubParagraphStar + \xxxSubParagraphNoStar + } + \newcommand{\xxxSubParagraphStar}[1]{\oldsubparagraph*{#1}\mbox{}} + \newcommand{\xxxSubParagraphNoStar}[1]{\oldsubparagraph{#1}\mbox{}} \fi +\makeatother $endif$ $endif$ $if(pagestyle)$ @@ -469,16 +516,16 @@ $if(csl-refs)$ $endif$ $if(lang)$ \ifLuaTeX -\usepackage[bidi=basic]{babel} +\usepackage[bidi=basic,brazil]{babel} \else -\usepackage[bidi=default]{babel} +\usepackage[bidi=default,brazil]{babel} \fi $if(babel-lang)$ -\babelprovide[main,import]{$babel-lang$} +% \babelprovide[main,import,brazil]{$babel-lang$} $if(mainfont)$ \ifPDFTeX \else -\babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} +\babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} \fi $endif$ $endif$ @@ -491,13 +538,15 @@ $endfor$ % get rid of language-specific shorthands (see #6817): \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} +$if(selnolig-langs)$ +\ifLuaTeX + \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures +\fi +$endif$ $endif$ $for(header-includes)$ $header-includes$ $endfor$ -\ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures -\fi $if(dir)$ \ifPDFTeX \TeXXeTstate=1 @@ -523,7 +572,7 @@ $endif$ $if(csquotes)$ \usepackage{csquotes} $endif$ -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\usepackage{bookmark} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available \urlstyle{$if(urlstyle)$$urlstyle$$else$same$endif$} $if(links-as-notes)$ @@ -555,8 +604,11 @@ $if(colorlinks)$ filecolor={$if(filecolor)$$filecolor$$else$default-filecolor$endif$}, citecolor={$if(citecolor)$$citecolor$$else$default-citecolor$endif$}, urlcolor={$if(urlcolor)$$urlcolor$$else$default-urlcolor$endif$}, +$else$ +$if(boxlinks)$ $else$ hidelinks, +$endif$ $endif$ breaklinks=true, pdfcreator={LaTeX via pandoc with the Eisvogel template}} @@ -575,14 +627,14 @@ $else$ $endif$ \subtitle{$subtitle$} $endif$ -\author{$for(author)$$author$$sep$ \and $endfor$} -\date{\today} + +\date{$date$} $if(beamer)$ $if(institute)$ \institute{$for(institute)$$institute$$sep$ \and $endfor$} $endif$ $if(titlegraphic)$ -\titlegraphic{\includegraphics{$titlegraphic$}} +\titlegraphic{\includegraphics$if(titlegraphicoptions)$[$for(titlegraphicoptions)$$titlegraphicoptions$$sep$, $endfor$]$endif${$titlegraphic$}} $endif$ $if(logo)$ \logo{\includegraphics{$logo$}} @@ -703,8 +755,9 @@ $endif$ $if(beamer)$ $else$ \usepackage{titling} +\pretitle{$pretitle$} \title{$title$} -\author{$for(author)$$author$$sep$, $endfor$} +\author{$for(author)$$author.name$$sep$, $endfor$} \date{$date$} $endif$ @@ -877,6 +930,8 @@ $endif$ $if(beamer)$ $else$ $if(disable-header-and-footer)$ +\usepackage{fancyhdr} +\pagestyle{empty} $else$ \usepackage[headsepline,footsepline]{scrlayer-scrpage} @@ -885,7 +940,7 @@ $else$ \ihead*{$if(header-left)$$header-left$$else$$title$$endif$} \chead*{$if(header-center)$$header-center$$else$$endif$} \ohead*{$if(header-right)$$header-right$$else$$date$$endif$} - \ifoot*{$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$} + \ifoot*{$if(footer-left)$$footer-left$$else$$for(author)$$author.name$$sep$, $endfor$$endif$} \cfoot*{$if(footer-center)$$footer-center$$else$$endif$} \ofoot*{$if(footer-right)$$footer-right$$else$\thepage$endif$} \addtokomafont{pageheadfoot}{\upshape} @@ -914,11 +969,9 @@ $endif$ %% %% end added %% -\usepackage{multicol} -\usepackage{lipsum} \begin{document} - +\sffamily %% %% begin titlepage %% @@ -927,7 +980,7 @@ $else$ $if(titlepage)$ \begin{titlepage} $if(titlepage-background)$ -\newgeometry{top=2cm, right=4cm, bottom=3cm, left=4cm} +\newgeometry{top=2cm, right=2cm, bottom=3cm, left=2cm} $else$ \newgeometry{left=6cm} $endif$ @@ -943,24 +996,54 @@ $endif$ \noindent \\[-1em] \color[HTML]{$if(titlepage-text-color)$$titlepage-text-color$$else$5F5F5F$endif$} -\makebox[0pt][l]{\colorRule[$if(titlepage-rule-color)$$titlepage-rule-color$$else$435488$endif$]{1.3\textwidth}{$if(titlepage-rule-height)$$titlepage-rule-height$$else$4$endif$pt}} \par \noindent $if(titlepage-background)$ % The titlepage with a background image has other text spacing and text size { - \setstretch{2} + % \setstretch{2} + \textcolor[rgb]{0.1,0.2,0.5}{ + \begin{center} + \vskip 4em + \Large \textbf{\textsf{$pretitle$}}\\ + \noindent {\Large \textbf{\textsf{$title$}}} + $if(subtitle)$ + \vskip 2em + {\Large \uppercase{\textbf{\textsf{$subtitle$}}}} + $endif$ + \end{center} \vfill - \vskip -8em - \noindent {\huge \textbf{\textsf{$title$}}} - $if(subtitle)$ - \vskip 1em - {\Large \textsf{$subtitle$}} - $endif$ - \vskip 2em - \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$} \vskip 0.6em \textsf{$date$}} + \vskip 4em + \begin{flushright} + \noindent {\Large \textbf{\textsf{$for(author)$$author.name$\\ $endfor$}}} + \vskip 2em + \noindent{\Large \textbf{\textsf{$professor.title$: $professor.name$}}} + \vskip 7em + \end{flushright}} \vfill + + \newpage + \centering + \textbf{\textsf{$for(author)$$author.name$\\ $endfor$}} + \vfill + \begin{center} + \uppercase{\textbf{\textsf{$subtitle$}}} + \end{center} + \vfill + $if(resumo)$ + \begin{flushright} + \begin{minipage}{0.5\textwidth} + \textsf{$resumo$} + + \textsf{$professor.title$: $professor.name$} + \end{minipage} + \end{flushright} + \vskip 5em + $endif$ + \begin{center} + $date$ + \end{center} } $else$ { @@ -972,7 +1055,7 @@ $else$ {\Large \textsf{$subtitle$}} $endif$ \vskip 2em - \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}} + \noindent {\Large \textsf{$for(author)$$author.name$$sep$, $endfor$}} \vfill } $endif$ @@ -993,6 +1076,7 @@ $endif$ $endif$ $endif$ + %% %% end titlepage %% @@ -1032,7 +1116,8 @@ $if(beamer)$ $if(toc-title)$ \frametitle{$toc-title$} $endif$ - \tableofcontents[hideallsubsections] + \setcounter{tocdepth}{$toc-depth$} + \tableofcontents \end{frame} $if(toc-own-page)$ \newpage @@ -1062,14 +1147,7 @@ $endif$ $if(has-frontmatter)$ \mainmatter $endif$ - -\begin{multicols}{2} -%\begin{alphasection} - $body$ - \rowcolors{0}{white}{white} -%\end{alphasection} -\end{multicols} - +$body$ $if(has-frontmatter)$ \backmatter @@ -1078,9 +1156,9 @@ $if(natbib)$ $if(bibliography)$ $if(biblio-title)$ $if(has-chapters)$ -\renewcommand\bibname{$biblio-title$} +\renewcommand\bibname{\small$biblio-title$} $else$ -\renewcommand\refname{$biblio-title$} +\renewcommand\refname{\small$biblio-title$} $endif$ $endif$ $if(beamer)$ @@ -1101,7 +1179,13 @@ $if(beamer)$ \printbibliography[heading=none] \end{frame} $else$ -\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ +\addcontentsline{toc}{section}{$biblio-title$} +\renewcommand*{\bibfont}{\normalfont} +\printbibliography$if(biblio-title)$[sorting=nty,title=\Large $biblio-title$]$endif$ +$endif$ + +$if(nocite)$ + \nocite{*} $endif$ $endif$ @@ -1109,4 +1193,4 @@ $for(include-after)$ $include-after$ $endfor$ -\end{document} \ No newline at end of file +\end{document} diff --git a/ieee.latex b/ieee.latex index 9458152..8f7d700 100644 --- a/ieee.latex +++ b/ieee.latex @@ -130,7 +130,8 @@ $if(babel-newcommands)$ $endif$ \else \usepackage{polyglossia} - \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$} + % \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$} + \setmainlanguage[variant=brazilian]{portuguese} $for(polyglossia-otherlangs)$ \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$} $endfor$ @@ -410,6 +411,10 @@ $abstract$ \end{abstract} $endif$ +$if(cover)$ +\include{cover} +$endif$ + $if(keywords)$ \begin{IEEEkeywords} $for(keywords)$ diff --git a/lena.png b/lena.png deleted file mode 100644 index 958b3ca..0000000 Binary files a/lena.png and /dev/null differ diff --git a/main.md b/main.md index c06216a..df9b961 100644 --- a/main.md +++ b/main.md @@ -1,5 +1,8 @@ --- -title: "My Nice Report" +pretitle: Pró-Reitoria Acadêmica +title: "Curso de Tecnologia em Análise e Desenvolvimento de Sistemas +" +subtitle: "Estudo de Caso Apagão Cibernético" author: - name: Example Author affiliation: Universidade de Brasília @@ -9,6 +12,13 @@ author: affiliation: Universidade Católica de Brasília location: Brasília, Brazil email: user2@mail.com + - name: And The Last Author + affiliation: Universidade Católica de Brasília + location: Brasília, Brazil + email: user2@mail.com +professor: + name: Hélio Guilherme Dias Silva + title: Professor pdfsubject: Markdow example for LaTeX keywords: - Markdown @@ -17,63 +27,79 @@ type: SPECIFICATION status: DRAFT bibliography: bibliography.bib csl: abnt.csl -date: "2024-07-29" -mainfont: Optima -fontsize: 8pt -numbersections: yes +date: "2024" +mainfont: Arial +fontsize: 12pt +# numbersections: yes lang: pt +cover: yes nocite: yes # Includes all entries in bibliography.bib file -abstract: | - Some fancy abstract Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. - - Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. +titlepage: true +book: true +titlepage-background: assets/cover.pdf +toc: true +toc-own-page: true +disable-header-and-footer: true +toc-title: Sumário +biblio-title: Referências Bibliográficas +biblatexoptions: + - backend=biber + - style=numeric +resumo: Estudo de caso apresentado ao curso superior de Tecnologia em Análise e Desenvolvimento de Software, da Escola de Educação, Tecnologia e Comunicação da Universidade Católica de Brasília, como requisito parcial da disciplina Qualidade de Software e Governança. --- -# Olar +# Introdução + +Este estudo de caso descreve o apagão cibernético global ocorrido em 19 de julho de 2024, verificando o contexto em que o apagão ocorreu, as causas, os impactos e a resposta dos envolvidos. A análise técnica do caso é fundamentada na ISO/IEC 12.207, norma de padronização dos processos de ciclo de vida do software, e leva em consideração as boas práticas apresentadas na norma para apresentar possíveis medidas a serem implementadas para a prevenção de ocorrências futuras. Também foram buscadas referências nas normas CMMI e MPS.BR, que avaliam os processos de Engenharia de Software em níveis de maturidade. + +# Descrição do Caso + +Em 19 de julho de 2024, às 04:09 UTC, como parte das operações em andamento, a CrowdStrike lançou uma atualização de configuração do sensor para sistemas Windows. Essa atualização de configuração continha um erro de out-of-bounds read, ou seja, tentava acessar um endereço de memória ao qual não existia ou não tinha permissão de leitura. Tal erro ao acontecer a nível de kernel, como era o caso, produz o conhecido erro de tela azul no Windows e mantém o dispositivo em um estado de reinício contínuo (registrados como incidentes KB5042426[@KB5042426] e KB5042421[@KB5042421] pela Microsoft ). + +As interrupções foram registradas em todo o mundo, refletindo o amplo uso do Microsoft Windows e do software CrowdStrike por corporações globais em diversos setores empresariais. Na época do incidente, a CrowdStrike afirmou ter mais de 24.000 clientes, incluindo quase 60% das empresas da Fortune 500 e mais da metade das empresas da Fortune 1000. Em 20 de julho, a Microsoft estimou que 8,5 milhões de dispositivos foram afetados pela atualização, o que, segundo a empresa, representava menos de um por cento de todos os dispositivos Windows. + +Interrupções generalizadas foram imediatamente relatadas em vários países, com grandes perturbações globais experimentadas pelo público em geral, varrendo de leste a oeste de fuso horário em fuso horário. Às 04:09 UTC de 19 de julho, quando a atualização com falha foi emitida, era o meio do dia útil na Oceania e na Ásia, as primeiras horas da manhã na Europa e meia-noite em grande parte das Américas. + +Alguns países foram menos afetados. A China, que tem buscado a autossuficiência em TI, sofreu pouco impacto em serviços-chave como companhias aéreas e bancos, embora empresas estrangeiras e hoteis de luxo no país tenham sido afetados. Rússia e Irã — ambos restritos por sanções internacionais de utilizar serviços de empresas americanas de alta tecnologia — não relataram interrupções. + +No Brasil, o banco Bradesco confirmou ter sido afetado, atualizando seu aplicativo móvel para temporariamente impedir o login dos usuários. Clientes dos bancos Pan, do Next e do Neon também relataram problemas. + -Some nice text about [@msp430] that you should know. +# Análise Técnica -## What is Lorem Ipsum? +O Apagão Cibernético foi causado por falhas técnicas na atualização do sensor CrowdStrike Falcon para Windows. A origem do problema estava em uma incompatibilidade de parâmetros: o Tipo de Modelo IPC esperava 21 parâmetros, mas apenas 20 foram fornecidos. Essa discrepância, não detectada durante o desenvolvimento e os testes, resultou em uma leitura fora dos limites da memória. -Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. +O erro ocorreu porque o Interpretador de Conteúdo tentou acessar um 21º parâmetro inexistente, levando a uma falha no driver csagent.sys, que gerou a "Tela Azul da Morte" (BSOD). A distribuição em larga escala do conteúdo problemático amplificou o impacto, afetando muitos sistemas globalmente. -## Why do we use it? +Os processos de validação e teste não foram abrangentes o suficiente para identificar a incompatibilidade, pois os testes usaram critérios genéricos que mascararam o problema. Isso levou a uma falha crítica não detectada até que já tivesse causado um efeito cascata em vários sistemas. -It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like), see figure \ref{lena}. +A incompatibilidade entre os parâmetros esperados (21) e fornecidos (20) mostrou falhas nas especificações do sistema. Um design mais robusto e verificações de segurança adequadas poderiam ter prevenido problemas. -![Lena is over here \label{lena}](lena.png "lena") +Os testes e a verificação não foram suficientes para detectar a falha, enquanto o gerenciamento inadequado de configuração resultou na distribuição do erro. Melhorias na garantia de qualidade e na confiabilidade do sistema, como auditorias, testes de regressão, monitoramento em tempo real e mecanismos de recuperação, são necessárias. +Por fim, uma abordagem integrada é essencial para segurança, planejamento de contingência e análise das interações no sistema. + As empresas precisam demonstrar ao público externo que cumpre com o que declara em relação a segurança e conformidade. As certificações de qualidade como as ISOs, faz com que as empresas que a possuem se sobressaiam em relação às outras, pois passam segurança para os clientes, está seguindo um padrão de qualidade traz credibilidade e confiança. -## Where does it come from? +A CrowdStrike garantir a confiança dos clientes, de que as operações de negócios estão seguras e em conformidade, oferece uma garantia aos clientes do Falcon Complete que cobre até US$ 1 milhão em despesas com resposta a ataques caso haja um incidente de segurança no ambiente protegido pelo CrowdStrike, faz validação e a acreditação externas como: PCI DSS v3.2, FedRAMP, ESCUDO DE PROTEÇÃO DA PRIVACIDADE UE-EUA, ESCUDO DE PROTEÇÃO DA PRIVACIDADE SUÍÇA-EUA, HIPAA, NIST, FFIEC, NSA-CIRA, CREST, SOC 2, TESTE AV-COMPARATIVES, CSA-STAR, AMTSO, VPAT. -Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and [Why do we use it?](#why-do-we-use-it) of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. +Tendo em vista que o apagão cibernético de 19/07/2024, foi causado por uma falha de atualização do sensor de segurança Falcon da empresa CrowdStrike. Podemos presumir que não foi realizada uma testagem adequada da atualização antes que fosse liberada para os clientes, podemos identificar então uma falha nos processos de requisitos de software. Para que mais episódios como este não ocorram novamente é necessário adotar algumas medidas de gestão de processos, segurança e requisitos de software. -$$ y = mx +b $$ +De acordo com o modelo CMMI (Capability Maturity Model Integration) poderíamos adotar as seguintes medidas como a Gestão de Configuração por exemplo, com a finalidade de implementar um sistema de gestão de configuração para controlar mudanças que ocorram no software e fazer com que apenas versões aprovadas sejam liberadas. Outra medida seria a Verificação e Validação, que seria a realização de verificações e validações feitas de forma contínua com a finalidade de localizar defeitos e assim corrigi-los antes que sejam disponibilizados para os usuários. Uma terceira medida do CMMi que poderia ser adotada seria a Gestão de Riscos, que consiste em desenvolver um plano que identifique, analise e mitigue riscos associados às atualizações de software. -The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham. +Analisando o modelo MPS.BR (Melhoria de Processo do Software Brasileiro) podemos identificar processos de software que podem ser adotados com a finalidade de evitar incidentes como este, sendo eles o Gerenciamento de Projetos, que consiste em estabelecer práticas para o gerenciamento de processos tais como o monitoramento, o planejamento e também o controle do desenvolvimento e manutenção do software. Outro importantíssimo ponto é a Garantia da Qualidade de software, segundo o MPS.BR poderia ser implementado um processo que garanta que os produtos de software atendam todos os requisitos especificados e estejam livres de defeitos. O MPS.BR conta também com uma Gestão de configuração bastante similar com a do CMMi (citada anteriormente), que garantiria que todas as mudanças de software sejam devidamente controladas e documentadas. - -\begin{equation} \label{eq1} -\begin{split} -A & = \frac{\pi r^2}{2} \\ - & = \frac{1}{2} \pi r^2 -\end{split} -\end{equation} +Podemos citar também a ISO/IEC 12207 que conta com o Processo de Manutenção, que apresenta um processo de manutenção que conta com a análise dos impactos de eventuais mudanças e a implementação de correções de forma controlada. Essa ISO também fala sobre outro ponto que seria o Processo de Desenvolvimento, onde práticas de desenvolvimento seriam adotadas essas práticas contam com rigorosos testes e revisões, que visam garantir a qualidade do software e por fim podemos citar a Gestão de Incidentes, onde um processo seria adotado, onde falhas no sistemas seriam respondidas de forma veloz visando minimizar o impacto das mesmas mitigando assim os danos causados aos usuários uma vez que o apagão cibernético da CrowdStrike afetou não somente ambientes corporativos civis comuns, uma vez que diversos setores foram afetados como bancos e aeroportos. -When $a \ne 0$, there are two solutions to $(ax^2 + bx + c = 0)$ and they are +A adoção dessas e diversas outras práticas quando integradas e devidamente implementadas diminuem bastante as chances de incidentes como este ocorrer, e caso venham a acontecer será possível resolvê-lo com mais rapidez e restaurar a normalidade do sistema o mais rápido o possível. -$$ x = {-b \pm \sqrt{b^2-4ac} \over 2a} $$ +Vale citar também a ISO/IEC 27.001 que trata justamente do ponto da segurança cibernética, tendo em vista que essa falha deixou o sistema suscetível a ataques. Esta norma especifica os requisitos para um sistema de gestão de segurança da informação (SGSI). Ela possibilita que as organizações protejam suas informações de maneira sistemática e eficaz. A ISO 27.001 deixa claro a importância do monitoramento feito de forma contínua para os sistemas de segurança da informação. Isso teria possibilitado a CrowdStrike ter agido de forma mais rápida e corrigido o problema da forma mais eficaz possível. Outro ponto de extrema importância seriam os controles técnicos, que possibilitam a identificação e correção do erro antes mesmo de sua implementação, ou seja, antes de chegar aos usuários. Pois esse controle conta com a realização de auditorias de segurança e de testes automatizados, tendo em vista que a falta de testes feita de forma adequada foi uma das causadoras do apagão. -Or you may cite an equation, like the \ref{eq1}. -### Where can I get some? -There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. +# Considerações Finais +O apagão cibernético de 2024 evidenciou lacunas críticas no processo de gestão de atualizações de software da CrowdStrike, em especial no que diz respeito à insuficiência de validação prévia e ao controle inadequado das mudanças. Embora a ISO/IEC 12207 forneça diretrizes robustas para o ciclo de vida de desenvolvimento de software, sua implementação, neste caso, revelou-se superficial, uma vez que a falta de testes rigorosos e específicos permitiu que a falha passasse despercebida. A dependência de testes genéricos, mencionada no caso, indica que os procedimentos de verificação recomendados pela norma não foram aplicados de forma adequada. -```python -def nice_method(a:str) -> bool: - return len(a) > 3 -``` +Além disso, a abordagem reativa da CrowdStrike, que não conseguiu prever os riscos associados à atualização, contraria as recomendações da ISO/IEC 27001, que exige um monitoramento contínuo e mecanismos preventivos de segurança cibernética. A norma enfatiza a importância de uma gestão proativa e a implementação de controles técnicos que poderiam ter evitado o incidente, especialmente considerando o impacto global e os setores críticos afetados. Este cenário aponta para a necessidade de revisitar e reforçar as práticas de conformidade às normas de segurança, indo além do simples cumprimento burocrático para adotar medidas preventivas mais eficazes. -You may also include a whole file with \lstinputlisting{./.github/workflows/latex.yml} \ No newline at end of file +A análise do apagão de 2024 evidencia que a adesão às normas ISO, CMMI e MPS.BR não é suficiente para garantir a segurança e a robustez dos sistemas. O incidente demonstra que o sucesso dessas normas depende de sua aplicação rigorosa e adaptada ao contexto operacional de cada organização, especialmente em ambientes críticos. Para evitar falhas semelhantes, é fundamental que as empresas não se limitem à conformidade de mercado, mas invistam em auditorias contínuas, testes personalizados e uma gestão de processos que considere as particularidades e os riscos específicos de seus sistemas.