@@ -85,25 +85,247 @@ \section{Packet filters}
8585
8686\begin {frame }
8787 \begin {figure }
88- \includegraphics [width=\columnwidth ]{figs/network-layers.pdf}
88+ \includegraphics [width=\columnwidth ]{figs/network-layers-fw .pdf}
8989 \caption {Communication between Bob and a server.}
9090 \end {figure }
9191\end {frame }
9292
93+ \begin {frame }[fragile]
94+ \begin {definition }[Packet filter]
95+ \begin {itemize }
96+ \item \emph {Stateless } filtering based on transport layer data.
97+ \end {itemize }
98+ \end {definition }
99+
100+ \begin {minted }{json}
101+ {
102+ "src addr" : "Bob" ,
103+ "dst addr" : "server" ,
104+ "payload" : {
105+ "src port" : "random" ,
106+ "dst port" : "https" ,
107+ "payload" : "unintelligible blob"
108+ }
109+ }
110+ \end {minted }
111+ \end {frame }
112+
113+ \begin {frame }
114+ \begin {definition }[Ingress, egress filtering]
115+ \begin {description }
116+ \item [Ingress] inbound traffic.
117+ \item [Egress] outbound traffic.
118+ \end {description }
119+ \end {definition }
120+ \end {frame }
121+
122+ \begin {frame }[fragile]
123+ \begin {example }[Ingress filtering]
124+ \begin {minted }{json}
125+ {
126+ "src addr" : "not internal" ,
127+ "dst addr" : "Bob" ,
128+ "payload" : {
129+ "src port" : "random" ,
130+ "dst port" : "https" ,
131+ "payload" : "unintelligible blob"
132+ }
133+ }
134+ \end {minted }
135+ \end {example }
136+ \end {frame }
137+
138+ \begin {frame }[fragile]
139+ \begin {example }[Egress filtering]
140+ \begin {minted }{json}
141+ {
142+ "src addr" : "Bob" ,
143+ "dst addr" : "server" ,
144+ "payload" : {
145+ "src port" : "random" ,
146+ "dst port" : "http" ,
147+ "payload" : "unintelligible blob"
148+ }
149+ }
150+ \end {minted }
151+ \end {example }
152+ \end {frame }
153+
154+ \begin {frame }
155+ \begin {remark }
156+ \begin {itemize }
157+ \item A blunt tool.
158+ \item Discard or forward a packet.
159+ \item Vulnerable to TCP/IP bugs.
160+ \end {itemize }
161+ \end {remark }
162+ \end {frame }
93163
94- \section {Circuit-level gateways }
95164
165+ \section [SPI ]{Circuit-level gateways }
96166
97- \section {Application firewalls }
167+ \begin {frame }[fragile]
168+ \begin {definition }[Stateful firewall/circuit-level gateway]
169+ \begin {itemize }
170+ \item Stateful filtering based on transport layer data.
171+ \end {itemize }
172+ \end {definition }
98173
174+ \begin {columns }[T]
175+ \begin {column }{0.35\columnwidth }
176+ \begin {minted }{json}
177+ {
178+ "src addr" : "Bob" ,
179+ "dst addr" : "server" ,
180+ "payload" : {
181+ "flag" : "SYN" ,
182+ "seq num" : 0,
183+ "src port" : "random" ,
184+ "dst port" : "https" ,
185+ "payload" : "blob"
186+ }
187+ }
188+ \end {minted }
189+ \end {column }
190+ \begin {column }{0.55\columnwidth }
191+ \begin {tabular }{llll}
192+ \textbf {src } & \textbf {dst } & \textbf {state } & \textbf {sn } \\
193+ \midrule
194+ Bob:random & server:https & SYN & 0
195+ \end {tabular }
196+ \end {column }
197+ \end {columns }
198+ \end {frame }
99199
100- \section {Summary }
200+ \begin {frame }[fragile]
201+ \begin {columns }[T]
202+ \begin {column }{0.35\columnwidth }
203+ \begin {minted }{json}
204+ {
205+ "src addr" : "server" ,
206+ "dst addr" : "Bob" ,
207+ "payload" : {
208+ "flag" : "ACK" ,
209+ "seq num" : 1,
210+ "src port" : "https" ,
211+ "dst port" : "random" ,
212+ "payload" : "blob"
213+ }
214+ }
215+ \end {minted }
216+ \end {column }
217+ \begin {column }{0.55\columnwidth }
218+ \begin {tabular }{llll}
219+ \textbf {src } & \textbf {dst } & \textbf {state } & \textbf {sn } \\
220+ \midrule
221+ Bob:random & server:https
222+ & \only <1>{SYN}\only <2>{\color {blue}ACK}
223+ & \only <1>{0}\only <2>{\color {blue}1}
224+ \end {tabular }
225+ \end {column }
226+ \end {columns }
227+ \end {frame }
101228
102229\begin {frame }
103- \begin {block }{Summary }
230+ \begin {remark }
104231 \begin {itemize }
105- \item \dots
232+ \item Keeps track of TCP connections.
233+ \item Avoids TCP/IP bugs.
106234 \end {itemize }
235+ \end {remark }
236+ \end {frame }
237+
238+
239+ \section [DPI ]{Application firewalls }
240+
241+ \begin {frame }
242+ \begin {figure }
243+ \includegraphics [width=\columnwidth ]{figs/network-layers-dpi.pdf}
244+ \caption {Communication between Bob and a server.}
245+ \end {figure }
246+ \end {frame }
247+
248+ \begin {frame }[fragile]
249+ \begin {definition }[Application firewalls/Deep packet inspection]
250+ \begin {itemize }
251+ \item Stateful filtering based on data from \emph {all layers }.
252+ \end {itemize }
253+ \end {definition }
254+ \begin {minted }{json}
255+ {
256+ "src addr" : "server" ,
257+ "dst addr" : "Bob" ,
258+ "payload" : {
259+ "flag" : "ACK" ,
260+ "seq num" : 4,
261+ "src port" : "http" ,
262+ "dst port" : "random" ,
263+ "payload" : {
264+ "data" : "...<h1>Down with government!</h1>..."
265+ }
266+ }
267+ }
268+ \end {minted }
269+ \end {frame }
270+
271+ \begin {frame }
272+ \begin {remark }
273+ \begin {itemize }
274+ \item Can detect banned content.
275+ \item Can detect forbidden protocols on non-standard ports.
276+ \item Can even detect certain buffer-overflow attacks.
277+ \item Essentially a combination of stateful firewall and network-based
278+ intrusion detection system.
279+ \end {itemize }
280+ \end {remark }
281+ \end {frame }
282+
283+ \begin {frame }
284+ \begin {example }[The Great Firewall of China]
285+ \begin {itemize }
286+ \item Many countries engaging in censorship use DPI.
287+ \item See
288+ \citetitle {MeasuringCircumventingInternetCensorship }\footfullcite {MeasuringCircumventingInternetCensorship}
289+ for an adversarial treatment of DPI.
290+ \end {itemize }
291+ \end {example }
292+ \end {frame }
293+
294+
295+ \section {Placement }
296+
297+ \begin {frame }
298+ \centering
299+ \only <1>{
300+ \includegraphics [height=0.70\textheight ]{figs/network-rotated.pdf}
301+ }
302+ \only <2>{
303+ \includegraphics [height=0.70\textheight ]{figs/network-dmz-rotated.pdf}
304+ }
305+
306+ \begin {question }
307+ \begin {itemize }
308+ \item Where to place the firewall?
309+ \end {itemize }
310+ \end {question }
311+ \end {frame }
312+
313+ \begin {frame }
314+ \begin {block }{Types}
315+ \begin {description }
316+ \item [Bastion host] Stronghold in network.
317+ \begin {itemize }
318+ \item Minimize attack surface.
319+ \end {itemize }
320+
321+ \item [Host based] Firewalls on servers, secure individual host.
322+ \begin {itemize }
323+ \item Tailored filter to host needs.
324+ \item Protects from internal attacks.
325+ \end {itemize }
326+
327+ \item [Personal] Firewall on workstations, much less complex.
328+ \end {description }
107329 \end {block }
108330\end {frame }
109331
0 commit comments