summaryrefslogtreecommitdiff
path: root/talk.tex
blob: 3cbabeca99f712a46f96e0a6c0e0773e84976273 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
\documentclass[compress]{beamer}
\mode<presentation>
{
  \usetheme{Warsaw}
  \setbeamertemplate{footline}{}
  \setbeamertemplate{headline}{}
}
\usepackage{pgfpages}
\usepackage[english]{babel}

\usepackage[utf8]{inputenc}

\usepackage{times}
\usepackage[T1]{fontenc} \title{Debian LTS / Library security upgrades} \subtitle{The same principles still apply}

\author[Guido Günther]
{
Guido Günther
{\it <agx@sigxcpu.org>}
}

\date[FSFE-BN1]{FSFE Fellowhip Treffen Bonn, 2014-09-08}

\begin{document}

\section*{Einführung}
\begin{frame}
  \titlepage
\end{frame}

\begin{frame}
\frametitle{Debian LTS / Library security upgrades}
\tableofcontents
\end{frame}

\begin{frame}
\frametitle{Me, myself and I}
\begin{itemize}
  \item Guido Günther
  \item Free Software Developer\footnote{\url{https://www.ohloh.net/accounts/agx/positions}}
  \item Freiberufler\footnote{\url{http://godiug.net}}
  \item Debian Entwickler seit 1999
  \item GNOME Foundation Mitglied
  \item FSFE Fellow
  \item Blog: {\url{http://honk.sigxcpu.org/con}}
  \item SMTP/XMPP: {\it agx@sigxcpu.org}
\end{itemize}
\end{frame}

\section{Debian LTS}

\begin{frame}
  \frametitle{Debian LTS}
  \begin{itemize}
  \item Verlängerter Security Support (5 Jahre)
  \item Für Squeeze bis Februar 2016
  \item \url{https://wiki.debian.org/LTS}
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Aus User Sicht}
{\small
    \begin{verbatim}
deb http://ftp.debian.org/debian/ squeeze-lts \
                          main contrib non-free

deb-src http://ftp.debian.org/debian/ squeeze-lts \
                          main contrib non-free
    \end{verbatim}}
    \begin{itemize}
      \item Derzeit nur i386 und amd64
      \item \url{https://wiki.debian.org/LTS/Using}
    \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Aus Maintainer Sicht}
  \begin{itemize}
    \item Secure Testing Alioth Project{\footnote{\url{https://alioth.debian.org/projects/secure-testing/}}}
    \item \url{https://wiki.debian.org/LTS/Development}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Unterschiede zur debian-security}
  \begin{itemize}
    \item Wird nicht vom Debian Security Team gepflegt (aber Überlapp bei den Entwicklern)
    \item Freiwillige und bezahlte Entwickler
    \item Kommerzieller Support wird über Freexian{\footnote{\url{http://www.freexian.com/en/services/debian-lts.html}}} koordiniert
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Wie geht es weiter}
  \begin{itemize}
    \item Bei Erfolg Wheezy LTS, Jessie LTS, ...
  \end{itemize}
\end{frame}

\section{Shared Library Securit Updates}
\begin{frame}[fragile]
  \frametitle{Was ist eine Shared Library}
  \begin{itemize}
    \item Beim Programmstart durch ld.so geladener Code (Shared Objects)
    \item Welche Bibliotheken ein Programm benutzt kann via ldd nachgesehen werden
{\tiny
\begin{verbatim}
$ ldd /usr/sbin/atd 
linux-vdso.so.1 (0x00007fff2014f000)
libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f377cf34000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f377cb8b000)
libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f377c965000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f377c761000)
/lib64/ld-linux-x86-64.so.2 (0x00007f377d36c000)
\end{verbatim}}
    \item Nach dem Programmstart können weitere Shared Objects via {\it dlopen(3)} geladen werden.
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Wie sieht das im Speicher aus?}
  \begin{itemize}
    \item Für laufende Prozesse:
  \end{itemize}
{\tiny
\begin{verbatim}
$ sudo cat /proc/`pidof atd`/maps 
7f1ce6ab1000-7f1ce6abc000 r-xp 00000000 fd:02 1704639 /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f1ce6abc000-7f1ce6cbb000 ---p 0000b000 fd:02 1704639 /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f1ce6cbb000-7f1ce6cbc000 r--p 0000a000 fd:02 1704639 /lib/x86_64-linux-gnu/libnss_files-2.19.so
7f1ce6cbc000-7f1ce6cbd000 rw-p 0000b000 fd:02 1704639 /lib/x86_64-linux-gnu/libnss_files-2.19.so
...
7f1ce7711000-7f1ce78b0000 r-xp 00000000 fd:02 1704626 /lib/x86_64-linux-gnu/libc-2.19.so
7f1ce78b0000-7f1ce7ab0000 ---p 0019f000 fd:02 1704626 /lib/x86_64-linux-gnu/libc-2.19.so
7f1ce7ab0000-7f1ce7ab4000 r--p 0019f000 fd:02 1704626 /lib/x86_64-linux-gnu/libc-2.19.so
7f1ce7ab4000-7f1ce7ab6000 rw-p 001a3000 fd:02 1704626 /lib/x86_64-linux-gnu/libc-2.19.so
...
\end{verbatim}}
\pause
  \begin{itemize}
    \item Bei Updates: die alten Shared Objects werden durch neue aus dem Update ersetzt...
      \pause
    \item Die Mappings bleiben bestehen
      \pause
    \item Langlaufende Dienste sind immer noch verwundbar.
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Lösungsansätze}
  \begin{itemize}
    \item Restarts vom Diensten im postinst (glibc, openssl)
{\tiny
\begin{verbatim}
      echo -n "Checking for services that may need to be restarted..."
      check="amanda-server anon-proxy apache2 apache-ssl"
      check="$check apf-firewall asterisk bacula-director-common"
      check="$check bacula-fd bacula-sd bind9 bip boinc-client"
      ...
\end{verbatim}}
\pause
    \item Problem: Hart kodierte Listen von Diensten, neue/selbstgebaute Dienste werden nicht neu gestartet
\pause
    \item Dienste erkennen die Shared Objects benutzen und neu starten (checkrestart, needrestart, whatmaps)
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Whatmaps Features}
  \begin{itemize}
    \item Unterstützt Deb und RPM
    \item Unterstützt sysvinit und systemd
    \item Integration in APT
    \item Kann Skript zur späteren Ausführung erzeugen
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Whatmaps benutzen}
  \begin{itemize}
  \item Auf der Kommandozeile
\begin{verbatim}
whatmaps [--debug] libvirt0
whatmaps --print-cmds=outfile \
         --restart libvirt0
whatmaps --restart libvirt0
\end{verbatim}
  \item Via apt
\begin{verbatim}
 dpkg-reconfigure whatmaps
\end{verbatim}
\item Siehe {\it /etc/apt/apt.conf.d/20services}
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Whatmaps installieren}
\begin{verbatim}
apt-get install whatmaps
\end{verbatim}
  Verfügbar in Jessie, Sid und Wheezy-Backports
\end{frame}

\begin{frame}
  Danke für die Aufmerksamkeit\\[1cm]
  Projektseite:\\
{\small
 \url{https://honk.sigxcpu.org/piki/projects/whatmaps/}}\\[1cm]
{\small  Mailing Liste:\\
 \url{https://lists.sigxcpu.org/mailman/listinfo/whatmaps}}\\[1cm]
  Fragen, Anregungen?
\end{frame}
\end{document}

%%  LocalWords:  make debian fragile Tarball verbatim uscan Git
%%  LocalWords:  Commit Fellowhip Developer