Inżynieria zabezpieczeń Tom I - Ross Anderson

Kup ebooka

144.00 zł
115.20 zł (89,28 zł najniższa cena z 30 dni)

-
Proszę czekać

Dane oryginału:

Security Engineering: A Guide to Building Dependable Distributed Systems, Ross Anderson

Third edition

Copyright ? 2020 by Ross Anderson

All Rights reserved. This translation published under license with the original publisher John Wiley & Sons, Inc.

Opracowanie okładki na podstawie oryginału

Małgorzata Maciejewska

Wydawca

Dorota Siudowska-Mieszkowska

Koordynator ds. redakcji

Renata Ziółkowska

Redakcja

Małgorzata Dąbkowska-Kowalik

Korekta

Izabela Mika, Małgorzata Dąbkowska-Kowalik

Produkcja

Anna Bączkowska

Skład wersji elektronicznej na zlecenie Wydawnictwo Naukowe PWN S.A.: Michał Latusek

Książka, którą nabyłeś, jest dziełem twórcy i wydawcy. Prosimy, abyś przestrzegał praw, jakie im przysługują. Jej zawartość możesz udostępnić nieodpłatnie osobom bliskimlub osobiście znanym. Ale nie publikuj jej w internecie. Jeśli cytujesz jej fragmenty,nie zmieniaj ich treści i koniecznie zaznacz, czyje to dzieło. A kopiując jej część, rób tojedynie na użytek osobisty.

Szanujmy cudzą własność i prawo.

Więcej na www.legalnakultura.pl.

Polska Izba Książki

Copyright ? for the Polish edition by Wydawnictwo Naukowe PWN SA

Warszawa 2024

ISBN 978-83-01-23312-9

eBook został przygotowany na podstawie wydania papierowego z 2024r. (Wydanie I)

Warszawa 2024

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 2269 54 321; faks 22 69 54 228

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl; reklama@pwn.pl

www.pwn.pl

O autorze

Od ponad 40 lat zajmuję się systemami. W latach 70. ukończyłem matematykę i nauki przyrodnicze na uniwersytecie Cambridge. Zdobyłem też kwalifikacje w dziedzinie inżynierii komputerowej, a moja pierwsza praca dotyczyła awioniki. W latach 80., po tym, jak zainteresowałem się kryptologią i bezpieczeństwem komputerowym, pracowałem w branży bankowej. Następnie zacząłem pracować dla firm projektujących urządzenia dla banków, a nieco później zająłem się powiązanymi z tym zastosowaniami, takimi jak przedpłatowe liczniki energii elektrycznej.

W 1992 roku przeniosłem się do środowiska akademickiego, ale nadal działałem w sektorze przemysłowym jako konsultant do spraw technik bezpieczeństwa. W latach 90. liczba zastosowań kryptologii gwałtownie rosła: pojawiły się alarmy przeciwwłamaniowe, zamki samochodowe, systemy pobierania opłat drogowych oraz telewizja satelitarna. Pojawiły się też pierwsze spory prawne dotyczące tych systemów, a ja miałem szczęście pełnić funkcję biegłego w kilku istotnych sprawach sądowych. Zespół badawczy, którym kierowałem, miał szczęście znaleźć się we właściwym miejscu i we właściwym czasie, kiedy gorącymi tematami stały się systemy peer-to-peer, odporność na manipulacje czy cyfrowe znaki wodne.

Po kilku latach uczenia studentów zagadnień związanych z bezpieczeństwem oraz kryptologią stało się dla mnie jasne, że istniejące podręczniki były zbyt wąskie i zbyt teoretyczne: te dotyczące bezpieczeństwa skupiały się na mechanizmach kontroli dostępu w systemach operacyjnych, a te dotyczące kryptografii - na teorii poświęconej algorytmom kryptograficznym i protokołom. Są to interesujące i ważne tematy, stanowią jednak jedynie fragment opowieści. Większość inżynierów nie jest szczególnie zainteresowana tym, jakie są wewnętrzne zasady funkcjonowania mechanizmów kryptograficznych czy systemów operacyjnych. Interesują ich raczej skuteczne narzędzia oraz zdobycie umiejętności ich efektywnego wykorzystania. Niewłaściwe użycie mechanizmów zabezpieczających jest jedną z głównych przyczyn usterek w zakresie bezpieczeństwa. Zachętę dla mnie stanowił również pozytywny odbiór napisanych przeze mnie artykułów poświęconych inżynierii bezpieczeństwa (począwszy od "Why Cryptosystems Fail" z 1993 roku). W 1999 roku zabrałem się wreszcie do moich notatek z zajęć oraz pewnej liczby studiów przypadku, pisząc na ich podstawie książkę przeznaczoną dla szerokiego grona technicznych odbiorców.

Pierwsze wydanie tej książki, które ukazało się w 2001 roku, pomogło mi zebrać myśli na temat ekonomii bezpieczeństwa informacji. Gdy bowiem udało mi się nadać moim doświadczeniom postać narracji, okazało się, że szkielet opowieści często stanowiły pobudki, z którymi musieli zmierzyć się różni gracze. Gdy pierwsze wydanie tej książki zyskało status standardowego podręcznika w swojej dziedzinie, ja pracowałem nad tym, by ekonomia bezpieczeństwa została uznana za dyscyplinę akademicką. W 2002 roku zorganizowaliśmy po raz pierwszy warsztaty z ekonomiki bezpieczeństwa informacji, by zintegrować ze sobą badaczy i praktyków.

Zanim w 2008 roku ukazało się drugie wydanie, było jasne, że nie poświęciliśmy też wystarczającej uwagi psychologii bezpieczeństwa. Choć od lat 90. XX wieku pracowaliśmy nad użytecznością zabezpieczeń, wiemy dziś, że kryje się za tym znacznie więcej. Musimy zrozumieć całość tego zagadnienia: od sztuki zwodzenia, aż po to, w jaki sposób ludzka percepcja ryzyka ulega manipulacjom. W 2008 roku po raz pierwszy zorganizowaliśmy warsztaty na temat bezpieczeństwa i zachowań ludzkich, na których inżynierowie bezpieczeństwa mieli okazję porozmawiać z psychologami, antropologami, filozofami, a nawet iluzjonistami.

Podczas urlopu naukowego w 2011 roku, który spędziłem pracując częściowo w Google, a częściowo na Carnegie Mellon University, doszedłem do wniosku, że konieczne jest poszerzenie naszej grupy badawczej o psychologów i kryminologów. Ostatecznie w 2015 roku założyliśmy Cambridge Cybercrime Centre, aby zbierać mnóstwo danych na temat wszelkiego rodzaju złych rzeczy dziejących się w sieci i udostępniać je ponad setce badaczy z całego świata. Nie tylko nie przeszkodziło nam to w prowadzeniu badań dotyczących technicznej strony bezpieczeństwa, ale wręcz pomogło wybrać bardziej odpowiednie zagadnienia, które stały się przedmiotem naszych badań technicznych.

Lekarka lub lekarz musi rozumieć cały szereg zagadnień, włączając w to anatomię, fizjologię, biochemię, farmację i psychologię, a następnie uzupełnić tę wiedzę doświadczeniem zdobytym dzięki setkom przypadków, nad którymi pracował wspólnie z doświadczonymi koleżankami i kolegami. Podobnie inżynier bezpieczeństwa musi rozumieć takie obszary techniki jak kryptografia, kontrola dostępu, protokoły i kanały boczne; tę wiedzę należy również doskonalić, studiując rzeczywiste przypadki. Celem mojej kariery akademickiej było złożenie tego wszystkiego w całość. Rezultatem tych wysiłków jest ta książka. Pracując nad nią, wiele się nauczyłem: spisanie tego, co w swoim mniemaniu się wie, jest dobrym sposobem na to, by dowiedzieć się, czego się nie wie. Pisząc tę książkę, nieźle się też bawiłem. Mam nadzieję, że jej lektura będzie równie dobrą zabawą!

Ross Anderson

Cambridge, listopad 2020

Podziękowania

Bardzo wiele osób na różne sposoby pomogło w pracach nad trzecim wydaniem tej książki. Pisząc kolejne rozdziały, zamieszczałem je w Internecie, prosząc o uwagi. Jestem bardzo wdzięczny całej rzeszy osób, które je przeczytały i wskazały różne błędy i niejasności. Te osoby to: Mansoor Ahmed, Sam Ainsworth, Peter Allan, Amit Seal Ami, James Andrews, Tom Auger, Asokan, Maria Bada, Daniel Bates, Craig Bauer, Pilgrim Beart, Gerd Beuster, Johann Bezuidenhoudt, Fred Bone, Matt Brockman, Nick Bohm, Fred Bone, Phil Booth, Lorenzo Cavallaro, David Chaiken, Yi Ting Chua, Valerio Cini, Ben Collier, Hugo Connery, Lachlan Cooper, Franck Courbon, Christopher Cowan, Ot van Daalen, Ezra Darshan, Roman Dickmann, Saar Drimer, Charles Duffy, Marlena Erdos, Andy Farnell, Bob Fenichel, David Fernee, Alexis FitzGerald, Jean-Alain Fournier, Jordan Frank, Steve Friedl, Jerry Gamache, Alex Gantman, Ben Gardiner, Jon Geater, Stuart Gentry, Cam Gerlach, John Gilmore, Jan Goette, Ralph Gross, Cyril Guerin, Pedram Hayati, Chengying He, Matt Hermannson, Alex Hicks, Ross Hinds, Timothy Howell, Nick Humphrey, James Humphry, Duncan Hurwood, Gary Irvine, Erik Itland, Christian Jeschke, Gary Johnson, Doug Jones, Henrik Karlzen, Joud Khoury, Jon Kilian, Timm Korte, Ronny Kuckuck, Mart Kung, Jay Lala, Jack Lang, Susan Landau, Peter Landrock, Carl Landwehr, Peter Lansley, Jeff Leese, Jochen Leidner, Tom de Leon, Andrew Lewis, David Lewis, Steve Lipner, Jim Lippard, Liz Louis, Simon Luyten, Christian Mainka, Dhruv Malik, Ivan Marsa-Maestra, Phil Maud, Patrick McCorry, TJ McIntyre, Marco Mesturino, Luke Mewburn, Spencer Moss, Steven Murdoch, Arvind Narayanan, Lakshmi Narayanan, Kristi Nikolla, Greg Norcie, Stanislav Ochotnický, Andy Ozment, Deborah Peel, Stephen Perlmutter, Tony Plank, William Porquet, David Pottage, Mark Quevedo, Roderick Rees, Larry Reeves, Philipp Reisinger, Mark Richards, Niklas Rosencrantz, Andy Sayler, Philipp Schaumann, Christian Schneider, Ben Scott, Jean-Pierre Seifert, Mark Shawyer, Adam Shostack, Ilia Shumailov, Barbara Simons, Sam Smith, Saija Sorsa, Michael Specter, Chris Tarnovski, Don Taylor, Andrew Thaeler, Kurt Thomas, Anthony Vance, Jonas Vautherin, Alex Vetterl, Jeffrey Walton, Andrew Wat son, Debora Weber-Wulff, Nienke Weiland, David White, Blake Wiggs, Robin Wilton, Ron Woerner, Bruno Wolff, Stuart Wray, Jeff Yan, Tom Yates, Andrew Yeomans, Haaroon Yousaf, Tim Zander i Yiren Zhao. Tom Dinse, Jim Minatel i Pete Gaughan to z kolei moi redaktorzy w wydawnictwie Wiley, którym również winien jestem wdzięczność. Jestem też wdzięczny redaktorkom Judy Flynn i Kim Wimpsett, dzięki którym proces wydawniczy przebiegał gładko.

Osoby, które na różne sposoby przyczyniły się do powstania pierwszego i drugiego wydania to m.in. nieżyjąca już Anne Anderson, a także Adam Atkinson, Jean Bacon, Robin Ball, Andreas Bender, Alastair Beresford, Johann Bezuidenhoudt, Maximilian Blochberger, David Boddie, Kristof Boeynaems, Nick Bohm, Mike Bond, Richard Bondi, Robert Brady, Martin Brain, John Brazier, Ian Brown, Mike Brown, Nick Bohm, Richard Bondi, nieżyjący Caspar Bowden, Duncan Campbell, Piotr Carlson, Peter Chambers, Valerio Cini, Richard Clayton, Frank Clish, Jolyon Clulow, Richard Cox, Dan Cvrcek, George Danezis, James Davenport, Peter Dean, John Daugman, Whit Diffie, Roger Dingledine, Nick Drage, Austin Donnelly, Ben Dougall, Saar Drimer, Orr Dunkelman, Steve Early, Dan Eble, Mike Ellims, Jeremy Epstein, Rasit Eskicio?lu, Robert Fenichel, Fleur Fisher, Shawn Fitzgerald, Darren Foong, Shailendra Fuloria, Dan Geer, Gary Geldart, Paul Gillingwater, John Gilmore, Brian Gladman, Virgil Gligor, Bruce Godfrey, John Gordon, Gary Graunke, Rich Graveman, Wendy Grossman, Dan Hagon, Feng Hao, Tony Harminc, Pieter Hartel, David H?säther, Bill Hey, Fay Hider, Konstantin Hyppönen, Ian Jackson, Neil Jenkins, Simon Jenkins, Roger Johnston, Oliver Jorns, Nikolaos Karapanos, nieżyjący Paul Karger, Ian Kelly, Grant Kelly, Alistair Kelman, Ronald De Keulenaer, Hyoung Joong Kim, Patrick Koeberl, Oliver Kömmerling, Simon Kramer, Markus Kuhn, Peter Landrock, Susan Landau, Jack Lang, Jong-Hyeon Lee, nieżyjący Owen Lewis, Stephen Lewis, Paul Leyland, Jim Lippard, Willie List, Dan Lough, John McHugh, nieżyjący David MacKay, Garry McKay, Udi Manber, John Martin, Nick Mathewson, Tyler Moore, nieżyjący Bob Morris, Ira Moskowitz, Steven Murdoch, Shishir Nagaraja, Roger Nebel, nieżyjący Roger Needham, Stephan Neuhaus, Andrew Odlyzko, Mark Oeltjenbruns, Joe Osborne, Andy Ozment, Alexandros Papadopoulos, Roy Paterson, Chris Pepper, Oscar Pereira, Fabien Petitcolas, Raphael Phan, Mike Roe, Mark Rotenberg, Avi Rubin, Jerry Saltzer, Marv Schaefer, Denise Schmandt-Besserat, Gus Simmons, Sam Simpson, Sergei Skorobogatov, Matthew Slyman, Rick Smith, Sijbrand Spannenburg, nieżyjąca Karen Spärck Jones, Mark Staples, Frank Stajano, Philipp Steinmetz, Nik Sultana, Don Taylor, Martin Taylor, Peter Taylor, Daniel Thomas, Paul Thomas, Vlasios Tsiatsis, Marc Tobias, Hal Varian, Nick Volenec, Daniel Wagner-Hall, Randall Walker, Robert Watson, Keith Willis, Simon Wiseman, Stuart Wray, Jeff Yan oraz nieżyjący Stefek Zaba. Wiele zawdzięczam również mojej pierwszej wydawczyni, Carol Long.

Przez cały ten czas wspierała mnie moja rodzina, w szczególności moja anielsko cierpliwa żona Shireen. Każde wydanie tej książki oznaczało, że przez ponad rok będę stale rozkojarzony. Ogromnie dziękuję wszystkim za to, że ze mną wytrzymujecie!

Przedmowa do wydania trzeciego

Pierwsze wydanie książki Security Engineering ukazało się w 2001[I], a drugie w 2008 roku. Od tego czasu nastąpiły ogromne zmiany.

Najbardziej oczywista z nich polega na tym, że smartfony wypierają komputery stacjonarne i laptopy. Większość światowej populacji przechadza się obecnie, mając przy sobie komputer, który zarazem jest telefonem, kamerą i nawigacją satelitarną, a aplikacje działające na tych magicznych urządzeniach zastąpiły wiele urządzeń, które budowaliśmy jeszcze 10 lat temu. Za przejazd taksówką bardzo często płaci się dziś za pośrednictwem aplikacji, a nie na podstawie taksometru. Bankowość w dużym stopniu przeniosła się do Internetu, a telefony zaczynają wypierać karty płatnicze. Oszczędzanie energii nie polega już na tym, że licznik komunikuje się z systemem ogrzewania, ale na tym, że oba te urządzenia komunikują się z telefonem. Sieci społeczne rządzą życiem wielu osób, napędzając wszystko, od reklam po politykę.

Pokrewną, ale mniej widoczną zmianą jest przejście na duże farmy serwerów. Wrażliwe dane zostały przeniesione z serwerów zlokalizowanych w szkołach, przychodniach lekarskich i kancelariach prawnych i obecnie przechowywane są przez firmy świadczące usługi w chmurze. Wiele osób nie pisze już przy użyciu edytora tekstu uruchomionego na laptopie, ale w Google Docs czy Office365 (ja piszę tę książkę w serwisie Overleaf). Ma to swoje konsekwencje. Złamanie zabezpieczeń może mieć skalę, której 20 lat temu nikt nie mógłby sobie wyobrazić. Przypadki ujawniania dziesiątek milionów haseł czy numerów kart kredytowych niemal stały się codziennością. W 2013 roku zespołowi, do którego należę, udało się natomiast odkryć, że dokumentacja medyczna obejmująca 15 lat działalności brytyjskich szpitali została sprzedana 1200 organizacjom bez zgody pacjentów (których nadal można było zidentyfikować dzięki kodom pocztowym oraz datom urodzenia).

Przełomem na miarę minionej dekady było ujawnienie przez Edwarda Snowdena ponad 50 tys. ściśle tajnych dokumentów dotyczących wywiadu elektronicznego prowadzonego przez amerykańską NSA, które w 2013 roku trafiły do prasy. Skala i natrętność rządowej inwigilacji zaskoczyła nawet cynicznych inżynierów bezpieczeństwa. Wcześniej mogliśmy obserwować skutki działania złośliwego oprogramowania Stuxnet, za pomocą którego Stany Zjednoczone zaatakowały irański program broni jądrowej. Nieco później nastąpił atak NotPyetya, w ramach którego rosyjska cyberbroń została użyta przeciw Ukrainie, narażając firmy z innych krajów na straty uboczne liczone w milionach dolarów. To prowadzi nas do trzeciej istotnej zmiany: znacznie lepiej rozumiemy zagrożenia bezpieczeństwa na poziomie państw. Nie tylko zdajemy sobie sprawę ze zdolności zachodnich agencji wywiadowczych i ich priorytetów, ale też mamy całkiem niezłe pojęcie o tym, co kombinują Chińczycy, Rosjanie, a nawet Syryjczycy.

A tam, gdzie są pieniądze, pojawiają się oszuści. W minionej dekadzie pojawił się cyberprzestępczy ekosystem. Działający w nim twórcy złośliwego oprogramowania dostarczają narzędzi umożliwiających przejęcie kontroli nad milionami komputerów. Wiele z nich wykorzystywanych jest w charakterze przestępczej infrastruktury, podczas gdy inne do oszukiwania na różne sposoby własnych użytkowników. W Cambridge mamy zespół, który - podobnie jak dziesiątki innych grup badawczych na całym świecie - zajmuje się badaniem tych zagadnień. Wzrost cyberprzestępczości powoduje zmiany zarówno w funkcjonowaniu policji, jak i w innych obszarach działalności państwa: kryptowaluty nie tylko sprawiają, że napisanie oprogramowania typu ransomware[II] staje się prostsze, ale też podważają system regulacji finansowych. Temu wszystkiemu towarzyszą zagrożenia niezwiązane ze sferą finansów: od cybernękania, przez mowę nienawiści, aż po manipulacje wyborcze i nagrania wideo morderstw czy gwałtów.

Szkody i krzywdy wyrządzone online wymagają teraz zaangażowania szerokiego kręgu osób, od nauczycieli i policjantów, aż po pracowników sektora bankowego i wojskowych. Ważniejszy niż kiedykolwiek jest pomiar kosztów tych szkód i krzywd, a także skuteczność środków, które stosujemy, by je złagodzić.

Niektóre z tych zmian naprawdę zaskoczyłyby kogoś, kto przeczytał moją książkę przed dziesięciu laty, a następnie spędził całą dekadę w odosobnieniu. Na przykład branża zabezpieczeń wielopoziomowych dogorywa, choć w ciągu czterdziestu lat otrzymała miliardy dolarów dofinansowania ze strony amerykańskiego rządu. Cała filozofia bezpieczeństwa informacji obowiązująca w Pentagonie, oparta na obowiązkowej architekturze powstrzymującej przepływ informacji w dół, od poziomu "ściśle tajne", poprzez "tajne", "poufne" i "jawne", została zarzucona jako niewykonalna. Choć architektura nadal ma znaczenie, nacisk został przesunięty na ekosystemy. Zakładając, że błędy i luki są wszechobecne, a próby ich wykorzystania niemożliwe do uniknięcia, powinniśmy dobrze radzić sobie z wykrywaniem takich prób, naprawianiem błędów i luk oraz odzyskiwaniem sprawności po atakach. Gra nie polega już na tworzeniu zaufanych systemów, ale na koordynowaniu procesu informowania o podatnościach, łączeniu kwestii rozwoju oprogramowania z jego zabezpieczeniem i utrzymaniem (DevSecOps) oraz zapewnianiu zdolności do przywracania sprawności.

Co może przynieść przyszłość? Prawdopodobny przełom związany będzie z tym, że w miarę jak wprowadzamy oprogramowanie do systemów, w których bezpieczeństwo jest kluczową kwestią, takich jak samochody czy urządzenia medyczne, a następnie podłączamy je do Internetu, inżynieria zabezpieczeń (security) i inżynieria bezpieczeństwa (safety) stają się zbieżne. To prowadzi do prawdziwych napięć. Podczas gdy inżynierowie zajmujący się zabezpieczeniami szybko naprawiają błędy, inżynierowie od bezpieczeństwa lubią dokładnie testować systemy pod kątem standardów, które zmieniają się powoli, o ile w ogóle się zmieniają. Trudnym problemem jest to, jak będziemy łatać oprogramowanie w dobrach trwałych. Obecnie możemy liczyć na to, że nasz telefon będzie otrzymywać łatki przez trzy lata, a laptop przez pięć lat. Oczekuje się od nas, że po tym czasie kupimy nowe urządzenie. Samochody jeżdżą jednak średnio przez piętnaście lat i jeśli nagle pojawi się oczekiwanie, że zezłomujemy je po upływie pięciu, koszty środowiskowe okażą się nie do zaakceptowania. I teraz zagadka: jeśli obecnie piszemy oprogramowanie nawigacyjne dla samochodu, który trafi na rynek za 3 lata, w jaki sposób zagwarantujemy, że będziemy w stanie dostarczyć dla niego łatki bezpieczeństwa za kolejne 10, 20 czy 30 lat? Z jakich narzędzi powinniśmy dziś korzystać?

Doszło też wreszcie do całkowitej przemiany środowiska politycznego. Przez dekady liderzy polityczni uważali strategię dotyczącą techniki za zagadnienie dla ludzi mających na tym tle obsesję i ogólnie szli po linii najmniejszego oporu. Raporty dotyczące rosyjskiej ingerencji w referendum dotyczące brexitu oraz wybór Donalda Trumpa zyskały jednak ich uwagę. Perspektywa utraty pracy może skutecznie zwiększyć aktywność intelektualną. Dzięki bacznej uwadze prawodawców zmieniają się reguły gry, po pierwsze przez wprowadzenie bardziej rygorystycznych przepisów ogólnych, takich jak europejskie rozporządzenie o ochronie danych osobowych (General Data Protection Regulation, GDPR), a po drugie przez wprowadzenie przepisów dotyczących produktów, które wymagają zapewnienia bezpieczeństwa, od samochodów i sygnalizacji kolejowej, przez zabawki dziecięce, które zawierają oprogramowanie i łączą się z Internetem, co doprowadziło do wprowadzenia w Europie przepisów dotyczących tego, jak długo oprogramowanie musi być utrzymywane.

Pytania, które dziś musi sobie zadać inżynier bezpieczeństwa, są takie same jak 10 lat temu: czemu staramy się zapobiec i czy proponowane mechanizmy rzeczywiście się sprawdzą? Obszar naszych działań jest jednak znacznie większy i obejmuje już niemal całość ludzkiego życia.

Ross Anderson Cambridge, październik 2020

Przedmowa do wydania drugiego

Pierwsze wydanie Security Engineering ukazało się w maju 2001 roku. Od tej pory świat się zmienił.

Bezpieczeństwo systemu miało wówczas dla Microsoftu jeden z najniższych priorytetów; obecnie ma jeden z najwyższych. Ilość złośliwego oprogramowania wciąż rośnie, tak jak i rosną wyrządzane przez nie szkody. Choć w obronę wkłada się sporo wysiłku - widzieliśmy jak Windows NT zostaje zastąpiony przez XP, a następnie przez Vistę, a sporadyczne dodatki Service Pack zostają zastąpione przez comiesięczne łaty bezpieczeństwa - wysiłek wkładany w ataki wzrósł znacznie bardziej. Osoby piszące wirusy nie robią już tego dla zabawy, ale dla zysku. W ostatnich kilku latach pojawiła się prawdziwa gospodarka przestępcza wspierająca różnorakich specjalistów. Osoby zajmujące się spamem, pisaniem wirusów, phishingiem, praniem brudnych pieniędzy czy działalnością szpiegowską prowadzą między sobą intensywną wymianę handlową.

Kryptografia również poszła do przodu. Zaawansowany standard szyfrowania AES jest wbudowywany w coraz więcej produktów, a i na polu kryptografii klucza publicznego pojawiło się kilka interesujących osiągnięć. Chociaż nasze problemy z algorytmami znajdują rozwiązania, jednak nadal musimy mierzyć się z wieloma kwestiami związanymi z implementacją. Kanały boczne, niestarannie zaprojektowane API oraz usterki protokołów nadal przyczyniają się do przełamania zabezpieczeń różnych systemów. Zajmowanie się kryptografią stosowaną w porządny sposób jest dziś trudniejsze niż kiedykolwiek wcześniej.

Fakt, że z obliczeń korzysta się niemal wszędzie, również tworzy nowe wyzwania. W miarę jak komputery i łączność w niewidzialny sposób są wbudowane niemal wszędzie, problemy, które dawniej dotykały jedynie "prawdziwych komputerów", pojawiają się również we wszelkiego rodzaju innych urządzeniach. Co to znaczy, że termometr albo klimatyzacja są dobrze zabezpieczone?

Ogromna różnorodność inteligentnych urządzeń skutkuje ogromną różnorodnością punktów widzenia i aktorów. Opracowywanie zabezpieczeń nie polega jedynie na tym, by złych ludzi nie wpuszczać do środka. W coraz większym stopniu jest to walka o władzę i kontrolę. DRM po jednej stronie stawia konsumentów, a po drugiej twórców treści oraz platformy służące do ich upowszechniania, nastawiając jednych przeciw drugim. Kontrola akcesoriów wykorzystywana jest do tego, by związać drukarki z pojemnikami na tusz dostarczanymi przez producentów samych drukarek, co prowadzi do pozwów antymonopolowych i rządowych interwencji. Bezpieczeństwo zależy również od odpowiednich zabezpieczeń w przypadku zastosowań związanych z samochodami, usługami komunalnymi czy elektronicznymi systemami ochrony zdrowia.

Wszechobecność urządzeń cyfrowych znaczy, że "zabezpieczenia komputerowe" nie są już tylko problemem specjalistów znających się na kilku systemach. Niemal wszystkie przestępstwa białych kołnierzyków (a także sporo poważnych przestępstw z użyciem przemocy) jest teraz związanych z komputerami lub telefonami komórkowymi. Funkcjonariuszka prowadząca dochodzenie musi więc rozumieć komputerowe techniki śledcze, tak samo jak musi wiedzieć, jak prowadzić samochód. Coraz więcej prawników, księgowych, menedżerów oraz innych osób niemających żadnego formalnego wykształcenia inżynierskiego będzie musiało rozumieć zabezpieczenia systemów, aby dobrze wykonywać swoją pracę.

Gwałtowny wzrost serwisów internetowych, od Google i Facebooka po gry wieloosobowe, również zmienił świat. Błędy w aplikacjach internetowych mogą zostać bardzo szybko naprawione, gdy tylko zostaną zauważone, ale aplikacje te stają się coraz bardziej złożone, a skutki uboczne ich działania trudniejsze do przewidzenia. Możemy mieć całkiem dobre pojęcie o tym, co to znaczy, że system operacyjny czy serwis bankowy są dobrze zabezpieczone, ale nie możemy tego powiedzieć w przypadku sieciowych stylów życia, które bezustannie ewoluują. Wkraczamy w nowy świat stale zmieniających się systemów społeczno-technicznych, co każe zadać poważne pytania o to, co napędza te zmiany i kto ma nad nimi kontrolę.

Największe zmiany mogą jednak nastąpić wskutek tragicznych wydarzeń września 2001 roku i w wyniku naszej reakcji na nie. Wydarzenia te na wiele sposobów zmieniły sposób postrzegania i priorytety, a także kształt branży zajmującej się zabezpieczeniami. Terroryzm to nie tylko kwestia stwarzania zagrożenia, ale i postrzegania zagrożenia i manipulowania tym postrzeganiem. Trzeba więc również uwzględnić kwestie psychologiczne i polityczne. Inżynierowie zabezpieczeń również mają obowiązek uczestniczyć w politycznej debacie. Tam, gdzie nieodpowiednie reakcje na zbrodnie terrorystów doprowadziły do wielkiego marnotrawstwa zasobów i niewymuszonych błędów w strategii postępowania, musimy nadal zwracać ludziom uwagę, by zadawali kilka prostych pytań: czemu usiłujemy zapobiec i czy proponowane mechanizmy rzeczywiście się tu sprawdzą?

Ross Anderson

Cambridge, styczeń 2008

Przedmowa do wydania pierwszego

Przez pokolenia ludzie definiowali i chronili swoją własność oraz prywatność, korzystając z zamków, płotów, podpisów, pieczęci, ksiąg rachunkowych i liczników. Zabiegi te wspierał cały szereg społecznych konstruktów, od traktatów międzynarodowych, przez prawo krajowe, aż po maniery i zwyczaje.

Taki stan rzeczy ulega gwałtownym zmianom. Moje rejestry są teraz elektroniczne, od kont bankowych po księgi wieczyste. Transakcje również mają coraz częściej postać elektroniczną, sklepy przenoszą się bowiem do Internetu. Równie istotna, ale mniej oczywista, jest mnogość napotykanych przez nas na co dzień systemów, które zostały zautomatyzowane. Alarmy przeciwwłamaniowe nie budzą już wszystkich sąsiadów, ale po cichu wysyłają wiadomość na posterunek policji. Studenci nie wrzucają już w akademiku monet do pralek czy suszarek, ale płacą za nie za pomocą inteligentnych kart, które można doładować w uczelnianej księgarni. Działanie zamków nie jest już prostą kwestią mechaniki, ale do ich obsługi konieczne bywają piloty zdalnego sterowania czy karty magnetyczne. Z kolei zamiast wypożyczać kasety wideo, miliony osób dociera do filmów za pośrednictwem satelity czy kanałów telewizji kablowej. Nawet zwykły banknot nie jest już tylko kwestią tuszu naniesionego na papier, ale może zawierać cyfrowe znaki wodne umożliwiające wykrywanie fałszerstw przez maszynę.

Jak dobre są te nowe techniki zabezpieczające? Niestety, szczera odpowiedź jest taka, że nawet w przybliżeniu nie są tak dobre, jak być powinny. Nowe systemy są często łamane w mgnieniu oka, a te same elementarne błędy są powtarzane w kolejnych zastosowaniach. Nierzadko potrzeba czterech czy pięciu prób, aby zaprojektować odpowiednie zabezpieczenia. To zdecydowanie zbyt wiele.

Media regularnie donoszą o internetowych włamaniach; banki toczą boje ze swoimi klientami o "fantomowe wypłaty" z bankomatów; Visa donosi o znacznym wzroście liczby kwestionowanych transakcji kartami kredytowymi w Internecie; firmy zajmujące się dostarczaniem telewizji satelitarnej ścigają piratów kopiujących ich inteligentne karty, a organy ścigania usiłują zabezpieczyć obszar w cyberprzestrzeni za pomocą przepisów regulujących użycie szyfrowania. Co gorsza, funkcje wchodzą ze sobą w interakcję. Telefon komórkowy, który dzwoni na ostatnio wybrany numer, jeśli jeden z klawiszy zostanie naciśnięty przez przypadek, może stanowić jedynie błahą niedogodność. Wszystko to do czasu, aż ktoś wymyśli maszynę, która wydaje puszkę napoju za każdym razem, gdy ktoś zadzwoni na jej numer telefonu. Gdy nagle znajdziemy 50 puszek coli na naszym rachunku telefonicznym, kto będzie za to odpowiedzialny? Firma telefoniczna, producent telefonu czy może operator automatu? Gdy niemal każde urządzenie mające wpływ na nasze życie zostanie podłączone do Internetu, co zdaniem Microsoftu powinno nastąpić do roku 2010, co będą dla nas znaczyć "zabezpieczenia internetowe" i jak będziemy sobie z nimi radzić?

Tak jak wiele systemów zawodzi, wiele po prostu nie działa wystarczająco dobrze. Systemy dokumentacji medycznej nie pozwalają lekarzom na udostępnianie osobistych informacji dotyczących stanu zdrowia tak, jak by tego chcieli, ale nadal nie chronią ich przed wścibskimi parami oczu. Kosztujące "gazyliony" dolarów systemy uniemożliwiają dostęp do informacji wywiadowczych każdemu, kto nie posiada uprawnień na poziomie "ściśle tajne", ale często są zaprojektowane w taki sposób, że niemal każdy potrzebuje tych uprawnień, by móc wykonać jakąkolwiek pracę. Pasażerskie systemy biletowe są zaprojektowane w taki sposób, by uniemożliwić klientom dokonywanie oszustw, ale gdy federalni urzędnicy antytrustowi zabierają się za podział przedsiębiorstw kolejowych, nie są w stanie powstrzymać nowopowstałych firm przed oszukiwaniem siebie nawzajem. Wiele z tych porażek można było przewidzieć, gdyby tylko projektanci wiedzieli odrobinę lepiej, co zostało już wypróbowane gdzie indziej i zdążyło już zawieść.

Inżynieria zabezpieczeń to nowa dyscyplina, która zaczyna wyłaniać się z tego chaosu.

Choć większość fundamentalnych technik (związanych z kryptologią, niezawodnością oprogramowania, odpornością na manipulacje, drukiem zabezpieczonym, audytami itp.) jest stosunkowo dobrze rozumiana, wiedza i doświadczenie w ich skutecznym stosowaniu są znacznie mniejsze. A ponieważ przejście od rozwiązań mechanicznych do cyfrowych dokonuje się wszędzie w tej samej chwili, zwyczajnie brakuje czasu na to, by zebrane doświadczenia zdążyły rozejść się w społeczności inżynierów. Raz za razem jesteśmy więc świadkami rozwiązywania problemu kwadratury koła.

Branże, które najsprawniej poradziły sobie z tym przejściem, to często te, którym udało się zapożyczyć odpowiednie techniki z innych dziedzin. Za przykład może tu posłużyć ponowne wykorzystanie zaprojektowanej dla wojska techniki identyfikacji swój-obcy w bankomatach czy nawet przedpłacanych licznikach gazu. Tak więc nawet jeśli osoba projektująca zabezpieczenia ma ogromną wiedzę specjalistyczną w jakimś konkretnym obszarze - czy ma wykształcenie matematyczne i zajmuje się szyfrowaniem, czy też wykształcenie chemiczne i pracuje nad tuszami do produkcji banknotów - rozsądnie byłoby, gdyby w ogólnym zarysie znała ona całą dziedzinę. Istotą dobrej inżynierii zabezpieczeń jest zrozumienie potencjalnych zagrożeń systemu, a następnie zastosowanie odpowiedniej kombinacji chroniących przed nimi środków zarówno technicznych, jak i organizacyjnych, umożliwiających ich kontrolę. Wiedza o tym, co w innych zastosowaniach się sprawdziło, a co ważniejsze, co w nich zawiodło, bardzo pomaga w wyrobieniu umiejętności prawidłowego osądu. Można również zaoszczędzić mnóstwo pieniędzy.

Książka ta ma na celu zapewnienie rzetelnego wprowadzenia do inżynierii zabezpieczeń, tak jak jest ona rozumiana na początku XXI wieku. Moim zamiarem jest, by sprawdziła się na czterech różnych poziomach:

(1) Jako podręcznik stanowiący wprowadzenie do tej dziedziny, który w ciągu kilku dni można przeczytać od deski do deski. Książka ta przyda się przede wszystkim profesjonalistom z branży IT, którzy muszą zapoznać się z inżynierią zabezpieczeń, lecz można ją też wykorzystać w ramach semestralnego wykładu uniwersyteckiego.

(2) Jako materiał źródłowy, w którym znaleźć można ogólny opis zasad działania pewnych konkretnych typów systemów (takich jak bankomaty, taksometry, urządzenia zakłócające radary, bazy danych anonimowych informacji o stanie zdrowia).

(3) Jako wprowadzenie do podstawowych technik, takich jak kryptografia, kontrola dostępu, kontrola wnioskowania, odporność na manipulacje czy pieczętowanie. Szczupłość miejsca powstrzymuje mnie tu przed wchodzeniem w szczegóły, ale w przypadku każdego tematu będzie można znaleźć swoistą mapę drogową oraz listę lektur dla tych, których dany temat zaciekawi (a także listę otwartych problemów badawczych dla tych osób, które być może planują podjąć stosowne studia).

(4) Jako oryginalny wkład w naukę, w którym próbuję podjąć temat wspólnych zasad leżących u podstaw inżynierii zabezpieczeń, oraz jako wnioski, które twórcy systemów danego rodzaju powinni byli wyciągnąć z cudzych doświadczeń. W ciągu wielu lat pracy przy tworzeniu zabezpieczeń wciąż natrafiam na takie przypadki. Na przykład prosty atak na szyfry strumieniowe nie był znany osobom projektującym przeciwlotniczy radar sterowania ogniem, co sprawiło, że był on łatwy do zakłócenia. Natomiast sztuczka dobrze znana społeczności konstruktorów radarów nie została należycie przyswojona przez osoby zajmujące się drukowaniem banknotów i projektowaniem schematów oznaczania praw autorskich, co doprowadziło do dość powszechnego ataku na większość cyfrowych znaków wodnych.

Starałem się, by ta książka była ulokowana gdzieś pośrodku Atlantyku między Ameryką a Europą. Książka traktująca o inżynierii zabezpieczeń musi taka być, ponieważ podstawowe techniki i technologie wywodzą się z Ameryki, a zarazem wiele interesujących zastosowań ma rodowód europejski. (Nie powinno to stanowić zaskoczenia, biorąc pod uwagę lepsze finansowanie amerykańskich uniwersytetów i laboratoriów badawczych oraz większą różnorodność narodów i rynków w Europie). Co więcej, wiele europejskich innowacji, którym udało się odnieść sukces - od kart inteligentnych, przez telefony komórkowe GSM i usługi telewizyjne typu "płać za to, co oglądasz" (pay-per-view) przekroczyło Atlantyk i obecnie rozkwita w obu Amerykach. Niezbędne są zarówno badania naukowe, jak i studia przypadków.

Książka ta wyrosła z wykładów z inżynierii zabezpieczeń prowadzonych przeze mnie na Cambridge University. Zredagowałem jednak swoje notatki w taki sposób, by stały się niezależne, oraz dodałem co najmniej tyle samo materiału. Książka ta powinna być przydatna jako podstawowy materiał źródłowy dla doświadczonych profesjonalistów, takich jak menedżerowie lub konsultanci zawodowo zajmujący się zabezpieczeniami. Skorzystają z niej również akademiccy informatycy prowadzący badania naukowe w zakresie kryptologii, policyjni detektywi próbujący rozwikłać zagadkę najnowszego oszustwa komputerowego oraz maniakom polityki zmagającym się z konfliktami związanymi z przepisami dotyczącymi kryptografii i anonimowości. Nade wszystko jednak książka ta jest adresowana do Dilbertów. Główną grupę jej odbiorców stanowią osoby pracujące jako programiści lub inżynierowie, usiłujące projektować prawdziwe systemy, które będą nadal działać pomimo ogromnych wysiłków klientów, menedżerów i wszystkich pozostałych osób.

Książka ta została podzielona na trzy części.

- Pierwsza z nich obejmuje podstawowe pojęcia, zaczynając od głównego pojęcia, czyli protokołu zabezpieczeń, przez interfejs człowiek-komputer, kontrolę dostępu, kryptologię i kwestie związane z systemami rozproszonymi. Nie wymaga ona jakiejś szczególnej wiedzy technicznej poza podstawowe obycie z komputerem. Oparta jest na wykładzie "Wprowadzenie do zabezpieczeń", który prowadzimy dla studentów drugiego roku studiów pierwszego stopnia.

- W drugiej części znaleźć można znacznie bardziej szczegółową analizę pewnej liczby ważnych zastosowań, takich jak łączność wojskowa, systemy informacji medycznej, bankomaty, telefony komórkowe i płatna telewizja. Korzystam z nich, aby wprowadzić większą liczbę zaawansowanych pojęć i technik. Jest w niej również omówione zabezpieczanie informacji z punktu widzenia wielu różnych grup interesariuszy, takich jak przedsiębiorstwa, konsumenci, przestępcy, policja i szpiedzy. Materiał ten pochodzi z mojego zaawansowanego wykładu dotyczącego zabezpieczeń, z moich prac badawczych oraz doświadczeń konsultingowych.

- Trzecia część poświęcona jest kwestiom organizacyjnym i związanym z tworzeniem polityki: w jaki sposób zabezpieczenia komputerowe wchodzą w interakcję z prawem, dowodami czy polityka korporacyjną? W jaki sposób możemy uzyskać pewność, że system będzie działać zgodnie z przeznaczeniem? W jaki sposób najlepiej zarządzać całą działalnością związaną z inżynierią zabezpieczeń?

Jestem przekonany, że budowanie systemów, które nadal działają niezawodnie w obliczu zagrożeń, jest jednym z najważniejszych, najbardziej interesujących i najtrudniejszych zadań, przed którymi stają inżynierowie w XXI wieku.

Ross Anderson

Cambridge, styczeń 2001

Dla mojej córki oraz innych prawników...

Sztuczki opisane w tej książce mają jedynie umożliwić budowanie lepszych systemów. W żadnym razie nie mają one pomagać we włamaniach do nich ani w jakichkolwiek innych nielegalnych działaniach. Tam, gdzie tylko było to możliwe, wstawiałem opisy konkretnych przypadków o poziomie szczegółowości, który ilustruje podstawowe zasady, ale nie tworzy hakerskiej "książki kucharskiej".

Do przełomu XX i XXI wieku rządy walczyły o to, by ograniczyć wiedzę na temat kryptografii. Nadal zresztą mogą istnieć osoby, które uważają, że wiedza zawarta w tej książce nie powinna być upubliczniana.

Odpowiedź na ich obawy znaleźć można w pierwszej angielskojęzycznej książce omawiającej zagadnienia kryptologii - traktacie z 1641 roku o optycznej i akustycznej telegrafii, autorstwa Johna Wilkinsa, który był zarazem kryptografem i zięciem Olivera Cromwella [2025]. Doszukał się on śladów naukowej cenzury aż u egipskich kapłanów, którzy zabronili posługiwania się pismem alfabetycznym w obawie o to, że przyczyni się to do zwiększenia piśmienności wśród ludu i w ten sposób będzie potęgować różnice zdań. Jak powiedział:

Nie wynika z tego, że wszystko, co może być nadużywane, musi być zakazane [...] . Jeśli zatem wszystkie użyteczne wynalazki, które mogą być nadużywane, powinny być ukryte, nie ma żadnej nauki, która mogłaby być legalnie rozpowszechniana.

Pytanie to powróciło w XIX wieku, gdy pewni mający dobre chęci ludzie chcieli zakazać książek na temat ślusarstwa. W 1853 roku ówczesny pisarz skomentował to następująco [1899]:

Wiele osób o dobrych intencjach uważa, że dyskusja na temat środków służących do obalenia rzekomego bezpieczeństwa zamków premiuje nieuczciwość, pokazuje bowiem innym, jak być nieuczciwym. To błąd. Łotrzy są bardzo bystrzy w swoim fachu i już wiedzą znacznie więcej, niż możemy ich nauczyć w zakresie tych kilku rodzajów oszustw. Złodzieje wiedzieli wiele o otwieraniu zamków na długo przed tym, zanim ślusarze dyskutowali o tym między sobą... jeśli wystąpi szkoda, zostanie ona z nawiązką zrównoważona dobrem.

30 lat później, w pierwszej pracy poświęconej inżynierii kryptograficznej, Auguste Kerckhoffs wyjaśnił, że zawsze należy zakładać, że druga strona zna system. Zabezpieczenia muszą więc polegać na doborze klucza. Od tamtej pory jego mądrość została potwierdzona wieloma doświadczeniami. Względne korzyści "otwartych" i "zamkniętych" systemów zabezpieczeń zostały również zbadane przez naukowców dysponujących narzędziami umożliwiającymi analizę niezawodności i opłacalności zabezpieczeń. Ich odkrycia zostaną omówione w tej książce. Krótko mówiąc, chociaż niektórzy źli ludzie skorzystają z książki takiej jak ta, w większości wiedzą już wszystko, co trzeba, a ci dobrzy skorzystają na niej znacznie bardziej.

Ross Anderson

Cambridge, listopad 2020 r.

Wstęp

W artykule napisanym wraz z Rogerem Needhamem, Ross Anderson ukuł frazę "programowanie komputera szatana", opisującą problemy napotykane przez inżynierów zajmujących się zabezpieczeniami komputerowymi. Jest to ten rodzaj sugestywnego obrazu, jakiego spodziewałbym się po Rossie, oraz zwrot, którego od tamtej pory używam.

Programowanie komputera to prosta sprawa: trzeba tak długo pracować nad danym problemem, aż komputer zacznie robić to, co powinien. Duże programy użytkowe oraz systemy operacyjne są znacznie bardziej skomplikowane, ale metodologia pozostaje w zasadzie ta sama. Napisanie niezawodnego programu komputerowego jest znacznie trudniejsze, ponieważ taki program musi działać nawet w obliczu przypadkowych błędów i pomyłek (czyli na komputerze Murphy'ego, jeśli wolicie takie określenie). W obszarze projektowania niezawodnego oprogramowania została przeprowadzona znaczna liczba badań i istnieje wiele aplikacji o kluczowym znaczeniu, które zostały zaprojektowane tak, by sprostać prawom Murphy'ego.

Napisanie dobrze zabezpieczonego programu komputerowego to już zupełnie inna sprawa. Zabezpieczenia wiążą się z zapewnieniem, że wszystko będzie działać nie w obecności przypadkowych usterek, ale w obliczu inteligentnego i złośliwego przeciwnika, próbującego sprawić, że wszystko zawiedzie w najgorszy możliwy sposób w najgorszym możliwym czasie... i tak raz za zarazem. To istotnie jest programowanie komputera Szatana.

Inżynieria zabezpieczeń różni się od wszystkich innych rodzajów programowania. Jest to coś, na co bezustannie zwracam uwagę w mojej własnej książce Secrets and Lies, w moim comiesięcznym newsletterze "Crypto-Gram" i w innych moich tekstach. Jest to również coś, na co Ross zwraca uwagę w każdym rozdziale tej książki. To dlatego książkę tę po prostu musi przeczytać każdy, kto zajmuje się inżynierią zabezpieczeń, a nawet jeśli jedynie myśli o zajmowaniu się inżynierią zabezpieczeń.

Do tego pojawia się ona w idealnym momencie. Historię Internetu można podzielić na trzy fale. Pierwsza z nich koncentrowała się wokół komputerów typu mainframe i terminali. Komputery były wtedy drogie i były rzadkością. Druga fala, trwająca od około 1992 roku do dziś, skupiona była wokół komputerów osobistych, przeglądarek i wielkich programów użytkowych. Wreszcie trzecia fala, która właśnie się rozpoczyna, będzie świadkiem połączenia wszelkiego typu urządzeń, które obecnie pracują w sieciach zastrzeżonych, nie są podłączone do sieci ani nie są skomputeryzowane. Do roku 2003 do Internetu będzie podłączonych więcej telefonów komórkowych niż komputerów. W ciągu kilku lat zobaczymy jak lodówki, kardiomonitory, automaty biletowe czy liczniki energii elektrycznej komunikują się za pomocą protokołu internetowego. Komputery osobiste będą w Internecie jedynie graczami mniejszościowymi.

Inżyniera zabezpieczeń, szczególnie w tej trzeciej fali, wymaga innego sposobu myślenia. Trzeba dowiedzieć się nie tyle tego, jak coś działa, ale tego, jak można sprawić, by przestało działać. Trzeba wyobrazić sobie inteligentnego i złośliwego przeciwnika znajdującego się wewnątrz systemu (pamiętacie komputer szatana?), który bezustannie próbuje nim zachwiać na coraz to nowe sposoby. Trzeba uwzględnić wszystkie sposoby, na jakie system może zawieść, z których większość nie ma żadnego związku z tym, jak został zaprojektowany. Trzeba przyjrzeć się wszystkiemu z tyłu, do góry nogami i z boku. Trzeba myśleć jak kosmita.

Jak powiedział zmarły niedawno legendarny redaktor książek science fiction, John. W. Campbell: "Obcy myśli równie dobrze jak człowiek, ale nie tak jak człowiek". Tworzenie zabezpieczeń komputerowych w dużym stopniu takie właśnie jest. Ross jest jedną z tych nielicznych osób, które potrafią myśleć jak kosmita, a następnie wyjaśnić ten sposób myślenia ludziom. Miłej lektury!

Bruce Schneier

styczeń 2001 r.

CZĘŚĆ I

W pierwszej części tej książki zostaną omówione podstawowe zagadnienia. W pierwszym rozdziale precyzuję pojęcia i terminologię, opisując rozproszone systemy zabezpieczone powszechnie spotykane w czterech środowiskach: w banku, bazie sił powietrznych, szpitalu oraz domu. Drugi rozdział wprowadza nas w sedno sprawy, opisując "aktorów" stanowiących zagrożenie, oraz to, jak działają. Przyjrzymy się aktorom państwowym pod postacią środowisk wywiadowczych Stanów Zjednoczonych, Chin i Rosji, o których obecnie wiemy całkiem sporo dzięki dokumentom ujawnionym przez Edwarda Snowdena i innych. Poznamy cyberprzestępczy ekosystem, który badam już od kilku lat, a także nadużycia niezwiązane z finansami, takie jak te dotyczące znęcania się nad drugą osobą w związku, cybernękania, manipulowania wyborami czy politycznej radykalizacji. Nauczy nas to, że cała gama różnych napastników korzysta z podobnych metod nie tylko na poziomie technicznym. A wszystko to, aby w coraz większym stopniu oszukiwać ludzi i nimi manipulować.

W trzecim rozdziale zajmiemy się psychologią. Podszywanie się (phishing) to kluczowa metoda stosowana zarówno w przestępczości internetowej, jak i w celu gromadzenia danych przez wywiady krajowe. Niepowodzenia dotyczące użyteczności są wykorzystywane przez cały czas i stanowią naprawdę istotny czynnik zarówno w celu zabezpieczeń, jak i dla bezpieczeństwa w szerszym sensie. Jednym z najowocniejszych obszarów badań nad bezpieczeństwem była w ostatnich latach psychologia. Inżynierowie bezpieczeństwa muszą rozumieć, w jaki sposób ludzie mogą być zwodzeni, tak by mogli projektować systemy, które utrudniają oszustwo. Musimy też rozumieć, w jaki sposób oddaliły się od siebie postrzeganie ryzyka i rzeczywiste ryzyko.

W kolejnych rozdziałach zagłębimy się w szczegóły techniczne. Czwarty rozdział poświęcony jest protokołom zabezpieczeń, które określają, w jaki sposób gracze w obrębie systemu - czy to ludzie, komputery, telefony, czy jakieś inne urządzenia elektroniczne - ustanawiają i utrzymują zaufanie. Rozdział piąty poświęcony jest swoistej "srebrnej taśmie klejącej", stanowiącej podstawę większości protokołów i trzymającej razem systemy rozproszone: kryptografii. Jest to sztuka (a zarazem nauka) poświęcona kodom i szyfrom, zarazem jednak jest to znacznie więcej niż zmyślny sposób na utrzymanie napastnika z dala od tajnego komunikatu. W dzisiejszych czasach polega ona na przenoszeniu zaufania z miejsca, w którym się znajduje, do miejsca, w którym jest potrzebne, utrzymywaniu integralności kontekstów zabezpieczeń i wykonywaniu wielu innych zadań.

Szósty rozdział dotyczy kontroli dostępu: jak możemy oddzielić od siebie różne aplikacje w telefonie, różne maszyny wirtualne lub kontenery na serwerze i w jaki sposób możemy sterować tymi przepływami danych, na które chcemy między nimi pozwolić. Niekiedy można tego dokonać w schludny sposób, często jednak okazuje się to trudne. Przeglądarki internetowe muszą radzić sobie z kodem JavaScript pochodzącym z wielu niezaufanych stron internetowych, podczas gdy asystenty domowe muszą radzić sobie z różnymi osobami.

Następny rozdział dotyczy systemów rozproszonych. Systemy, które działają na wielu urządzeniach, muszą radzić sobie z problemami koordynacji, takimi jak sterowanie współbieżnością, tolerowanie usterek czy nazewnictwo. Kwestie te nabierają zupełnie nowego znaczenia, gdy systemy muszą stać się odporne zarówno na złe zamiary, jak i przypadkowe awarie. Wiele systemów działa słabo, a nawet zawodzi, ponieważ ich projektanci nie przemyśleli tych kwestii.

Ostatni rozdział w tej części jest poświęcony kwestii opłacalności. Ekonomika zabezpieczeń ogromnie się rozwinęła od 2001 roku, kiedy to ukazało się pierwsze wydanie tej książki, które pomogło zainicjować ten temat. Dziś wiemy już, że wiele awarii zabezpieczeń spowodowanych jest raczej przez przewrotne pobudki, a nie braki technicznych mechanizmów zabezpieczających. (W istocie te pierwsze często wyjaśniają te drugie). Niezawodność systemu to w coraz większym stopniu pojawiająca się własność, która zależy od egoistycznego dążenia dużej liczby graczy. W rezultacie jest to pewna równowaga rynkowa. Mechanizmy zabezpieczeń nie służą po prostu do tego, by trzymać "złych" ludzi z dala od "dobrych" systemów, ale by umożliwić jednemu uczestnikowi na zdobycie władzy nad innym. Często są one nadużywane, by przechwycić rynki lub zaburzyć ich funkcjonowanie. Jeśli chcemy zrozumieć takie rozgrywki lub projektować systemy zdolne oprzeć się strategicznej manipulacji, będziemy potrzebować odrobiny teorii gier i teorii aukcji.

Te rozdziały obejmują podstawowy materiał i w dużej mierze odpowiadają temu, czego uczymy studentów na pierwszym i drugim roku studiów w Cambridge. Mam jednak nadzieję, że studia przypadków okażą się interesujące i wartościowe nawet dla ekspertów.

ROZDZIAŁ 1Czym jest inżynieria zabezpieczeń?

Z drewna tak krzywego jak to, z którego jest zrobiony człowiek, nie da się wystrugać nic prostego[III].

IMMANUEL KANT

Świat nigdy nie będzie idealny, czy to online, czy offline. Nie stosujmy więc niemożliwie wysokich standardów względem tego online.

ESTHER DYSON

1.1. Wprowadzenie

W inżynierii zabezpieczeń chodzi o budowanie systemów w taki sposób, by pozostawały niezawodne w obliczu złych zamiarów, błędów i nieszczęśliwych wypadków. Jako dyscyplina skupia się ona na narzędziach, procesach i metodach potrzebnych do tego, by projektować, implementować i testować kompletne systemy, a także by adaptować istniejące systemy w miarę ewolucji ich otoczenia.

Inżynieria zabezpieczeń wymaga specjalistycznej wiedzy obejmującej wiele obszarów, od kryptografii i zabezpieczeń komputerowych, przez sprzętową odporność na manipulacje, aż po ekonomię, psychologię stosowaną, funkcjonowanie organizacjami oraz prawo. Umiejętności związane z inżynierią systemów, od analizy procesów biznesowych, poprzez inżynierię oprogramowania po ewaluację i testowanie, również są istotne. Nie są jednak wystarczające, ponieważ dotyczą jedynie błędów i nieszczęśliwych wypadków, ale nie sytuacji, w których w grę wchodzą złe zamiary. Osoba zajmująca się inżynierią zabezpieczeń, podobnie jak szachista, potrzebuje pewnych umiejętności myślenia w taki sposób, w jaki myśli przeciwnik. Trzeba zbadać wiele ataków, które okazały się skuteczne w przeszłości: od ich otwarcia, poprzez środkową część, aż do ostatecznego wyniku.

W stosunku do wielu systemów mamy wysokie wymagania dotyczące gwarancji bezpieczeństwa. Jeśli zawiodą, może to zagrozić życiu ludzkiemu albo środowisku (jak w przypadku zabezpieczeń i systemów sterowania w instalacjach jądrowych), wyrządzić poważne szkody w obrębie głównej infrastruktury gospodarczej (bankomaty i internetowe systemy płatności), narazić na szwank prywatność jednostek (systemy dokumentacji medycznej), podważyć możliwość funkcjonowania całych sektorów biznesu (przedpłatowe liczniki mediów) lub ułatwić życie przestępcom (alarmy samochodowe i przeciwwłamaniowe). Kwestie zabezpieczeń i bezpieczeństwa splatają się ze sobą bardziej niż kiedykolwiek przedtem, ponieważ oprogramowanie można znaleźć wszędzie. Nawet samo wrażenie, że system jest bardziej podatny na ataki lub mniej godny zaufania, niż jest w rzeczywistości, może generować realne koszy społeczne.

Zgodnie z konwencjonalnym poglądem w inżynierii oprogramowania chodzi o to, by zagwarantować, że do czegoś dojdzie ("Jan może odczytać ten plik"), natomiast w zabezpieczeniach chodzi o zagwarantowanie, że do czegoś nie dojdzie ("Chiński rząd nie może odczytać tego pliku"). Rzeczywistość jest jednak bardziej złożona. Wymogi dotyczące zabezpieczeń znacznie się różnią w zależności od systemu. Zazwyczaj potrzebna jest jakaś kombinacja uwierzytelniania użytkownika, integralności i rozliczalności transakcji, odporności na awarie, tajności wiadomości i skrytości. Wiele systemów jednak zawodzi, ponieważ ich projektanci chronili nie to, co trzeba, lub to, co trzeba, ale w niewłaściwy sposób.

Opracowanie właściwych zabezpieczeń zależy więc od kilku różnych typów procesów. Trzeba ustalić, co wymaga ochrony i w jaki sposób ją zapewnić. Trzeba też zapewnić, że ludzie, którzy będą chronić system i odpowiadać za jego utrzymanie, są odpowiednio zmotywowani. W kolejnym podrozdziale przedstawię schemat pojęciowy dotyczący tych kwestii. Następnie, w celu zilustrowania rozległości zakresu zadań, które muszą realizować systemy zabezpieczeń oraz bezpieczeństwa, przyjrzę się szybko czterem obszarom ich zastosowań. Będą to bank, baza wojskowa, szpital oraz dom. Po podaniu konkretnych przykładów tego, co inżynierowie zabezpieczeń muszą zrozumieć i zbudować, będę mógł następnie zaproponować kilka definicji.

1.2. Schemat pojęciowy

Aby budować naprawdę niezawodne systemy, należy zapewnić, aby współgrały ze sobą cztery elementy. Muszą istnieć zasady określające, co powinniśmy osiągnąć. Musi istnieć mechanizm: szyfry, kontrola dostępu, sprzętowa odporność na manipulację, a także inne mechanizmy, z których korzystamy, by wdrożyć tę politykę. Musi istnieć gwarancja: stopień, w jakim możemy polegać na każdym konkretnym mechanizmie, oraz to, jak dobrze te mechanizmy ze sobą współpracują. I wreszcie musi istnieć motywacja: powody, dla których ludzie strzegący systemu i odpowiadający za jego utrzymanie należycie wykonują swoją pracę, a także powody, dla których napastnicy próbują uniemożliwić realizację polityki. Wszystkie te czynniki wzajemnie na siebie oddziałują (patrz rys. 1.1.).

Rysunek 1.1. Analityczny schemat pojęciowy inżynierii zabezpieczeń

Pomyślmy na przykład o atakach terrorystycznych z 11 września 2001 roku. To, że napastnikom udało się przenieść noże przez lotniskowe bramki bezpieczeństwa nie było kwestią wadliwego mechanizmu, ale niewłaściwych zasad. Pracownicy kontroli bezpieczeństwa wykonali swoje zadanie polegające na niewpuszczaniu osób posiadających broń lub materiały wybuchowe, ale w owym czasie noże z ostrzami o długości do trzech cali były dozwolone. Zasady szybko zostały zmienione: początkowo w taki sposób, by zakazać wszystkich noży, a następnie większości rodzajów broni (kije baseballowe są obecnie zakazane, ale butelki whisky są dozwolone). Zasady w wielu szczegółach zmieniały się raz w jedną, raz w drugą stroną (zakazano zapalniczek butanowych, by potem ponownie je dopuścić). Mechanizm jest słaby za sprawą rzeczy, takich jak noże kompozytowe czy materiały wybuchowe niezawierające azotu. Gwarancje są słabe: wiele ton nieszkodliwych przedmiotów należących do pasażerów jest co miesiąc wyrzucanych na śmieci, podczas gdy mniej niż połowa prawdziwych broni przenoszonych przez stanowiska bezpieczeństwa (czy to przypadkowo, czy dla celów testowych) jest wykrywana i konfiskowana.

Większość rządów wyższy priorytet daje środkom widocznym, a nie tym skutecznym. Na przykład TSA wydała miliardy na kontrolę pasażerów, która jest dość nieskuteczna. Zarazem 100 milionów dolarów wydane na wzmocnienie drzwi kokpitów usunęło większość ryzyka [1526]. Przewodniczący organizacji Airline Pilots Security Alliance zauważył, że większość obsługi naziemnej nie jest kontrolowana, a niemal żadnej uwagi nie przykłada się do ochrony samolotów stojących przez noc na ziemi. Ponieważ większość linii lotniczych nie stosuje zamków w drzwiach, niewiele robi się, by powstrzymać złoczyńcę chcącego podjechać schodkami pod samolot i podłożyć bombę na pokładzie. Gdyby taki ktoś miał umiejętności pilotażu i trochę tupetu, mógłby zgłosić plan lotu i uciec [1204]. Mimo to kontrolowanie obsługi czy pilnowanie samolotów po prostu nie stanowią priorytetu.

Dlaczego dokonuje się takich właśnie wyborów? To proste. Pobudki, którymi kierują się osoby podejmujące decyzje, faworyzują widoczne formy kontroli, a nie te skuteczne. Rezultatem jest, jak określił to Bruce Schneier, "teatr bezpieczeństwa": środki zaprojektowane tak, by dawały poczucie bezpieczeństwa, a nie rzeczywiste bezpieczeństwo. Większość graczy jest też motywowana, by wyolbrzymiać zagrożenie ze strony terrorystów. Politycy chcą "przyciągnąć głosy strachem" (jak określił to prezydent Obama), dziennikarze chcą sprzedać więcej gazet, przedsiębiorstwa chcą sprzedać więcej sprzętu, rządowi oficjele chcą budować swoje imperia, a naukowcy zajmujący się kwestiami bezpieczeństwa chcą zdobyć granty. W rezultacie szkody wyrządzone przez terrorystów krajom demokratycznym biorą się z przesadnej reakcji. Na szczęście wyborcy z czasem zdają sobie z tego sprawę i obecnie, dziewiętnaście lat po 11 września, marnowane jest mniej pieniędzy. Teraz wiemy już rzecz jasna, że znacznie większa część środków przeznaczanych na wzmocnienie ochrony naszego społeczeństwa powinna być przeznaczana na przygotowania na wypadek pandemii. Zagadnienie to znajdowało sią na szczycie brytyjskiego rejestru ryzyka, ale terroryzm był politycznie bardziej seksowny. Te państwa, które bardziej racjonalnie zarządzały swoimi priorytetami, osiągnęły znacznie lepsze rezultaty.

Inżynierowie zabezpieczeń muszą to wszystko rozumieć. Musimy mieć umiejętność umieszczania zagrożeń w kontekście, dokonywać realistycznych ocen tego, co może pójść nie tak, i dawać naszym klientom dobre rady. Zależy to od szerokiego zrozumienia, co w przypadku różnych systemów z czasem poszło nie tak. Jakiego rodzaju ataki się powiodły, jakie były ich konsekwencje i w jaki sposób próbowano je powstrzymać (o ile opłacało się tak postąpić). Historia również ma znaczenie, ponieważ jest źródłem złożoności, a ta z kolei prowadzi do wielu usterek. Znajomość historii współczesnych sposobów zabezpieczania informacji pozwala nam zrozumieć ich złożoność i lepiej się w nich poruszać.

Książka ta jest więc pełna historii przypadków. Aby odpowiednio przygotować grunt, przedstawię tu kilka krótkich przykładów interesujących systemów zabezpieczeń oraz tego, do czego zostały zaprojektowane.

1.3. Przykład 1: bank

W banku działa mnóstwo systemów komputerowych krytycznych z punktu widzenia zabezpieczeń.

(1) Działania banku zależą od podstawowego systemu księgowego. Trzymane są w nim główne pliki kont klientów oraz pewna liczba dzienników rejestrujących transakcje przychodzące i wychodzące. Główne zagrożenie stanowi tu sam personel banku. Każdego roku mniej więcej 1% pracowników oddziałów banków jest zwalnianych z pracy, głównie za sprawą drobnej nieuczciwości (średnia wartość kradzieży wynosi jedynie kilka tysięcy dolarów). Tradycyjnie możliwość obrony dawały procedury księgowe, które wyewoluowały w ciągu stuleci. Na przykład każdemu wydatkowi z jakiegoś konta musi odpowiadać wpływ na jakiś inny rachunek. Pieniądze mogą więc być jedynie przenoszone w obrębie banku, a nie tworzone ani niszczone. Dodatkowo duże transfery pieniężne wymagają zwykle potwierdzenia przez dwie osoby. Istnieją również systemy alarmowe poszukujące transakcji o nietypowych kwotach lub wzorcach, a od członków personelu wymaga się, by brali regularne urlopy, w trakcie których pozbawieni są dostępu do systemów banku.

(2) Jedną z publicznych twarzy banku są bankomaty. Uwierzytelnianie transakcji na podstawie karty klienta oraz numeru PIN, tak by obronić się zarówno przed atakiem zewnętrznym, jak i wewnętrznym, jest trudniejsze, niż się wydaje! W wielu krajach dochodziło do epidemii "fantomowych wypłat", gdy miejscowi przestępcy (lub pracownicy banku) dowiadywali się o istnieniu luk w systemie i postanawiali je wykorzystać. Bankomaty są również interesujące z tego powodu, że stanowiły pierwszy przypadek wielkoskalowego komercyjnego użycia kryptografii, pomagając ustanowić szereg standardów kryptograficznych. Mechanizmy opracowane z myślą o bankomatach znalazły zastosowanie w sklepowych terminalach płatniczych, co pozwoliło płatnościom kartami w dużym stopniu wyprzeć gotówkę. Zaadaptowano je również do innych zastosowań, takich jak przedpłatowe liczniki mediów.

(3) Kolejną publiczną twarzą banku jest jego strona internetowa oraz aplikacja mobilna. Większość klientów załatwia obecnie swoje rutynowe sprawy, takie jak opłacanie rachunków czy przelewy między rachunkami rozliczeniowymi i oszczędnościowymi, w trybie online, a nie w oddziale. Od 2005 roku strony banków są przedmiotem intensywnych ataków polegających na wyłudzaniu informacji (phisingu), który polega na tym, że klienci proszeni są o wprowadzenie swoich haseł na fałszywych witrynach. Standardowe, zaprojektowane w latach 90. XX wieku mechanizmy zabezpieczeń okazały się mniej skuteczne, gdy przestępcy zaczęli atakować klientów, a nie bank. Wiele banków przesyła więc klientom wiadomość tekstową z kodem uwierzytelniającym. W reakcji oszuści wybierają się do punktu sprzedaży sieci komórkowej, podszywają się pod klienta banku i kupują nowy aparat, który przejmuje jego numer telefonu. Ten wyścig zbrojeń stwarza wiele frapujących problemów z zakresu inżynierii zabezpieczeń, łącząc elementy dotyczące uwierzytelniania, użyteczności, psychologii, działania i ekonomii.

(4) Za kulisami znajdują się systemy przesyłania komunikatów wysokiej wartości, wykorzystywane do transferu wielkich sum między bankami, handlu papierami wartościowymi, wydawania listów kredytowych, gwarancji i tak dalej. Atak na taki system to marzenie każdego przestępcy biegłego w nowinkach technicznych. Powiada się, że rząd Korei Północnej ukradł wiele milionów, atakując banki. Obronę stanowi tu mieszanka kontroli księgowej, kontroli dostępu i kryptografii.

(5) Oddziały banków wydają się ogromne, pewne i zamożne, co daje klientom pewność, że ich pieniądze są bezpieczne. Kamienna fasada to jednak teatr, a nie rzeczywistość. Gdybyśmy weszli do jednego z nich z bronią, kasjerzy wydaliby nam całą gotówkę znajdującą się w zasięgu naszego wzroku. Gdybyśmy włamali się do niego w nocy, moglibyśmy dostać się do sejfu w ciągu kilku minut, pomagając sobie szlifierką kątową. Efektywne środki kontroli koncentrują się na systemach alarmowych połączonych z centrami sterowania firm ochroniarskich, których obsługa sprawdza, co się dzieje za pomocą monitoringu i w razie konieczności informuje policję. Kryptografia jest wykorzystywana w celu uniemożliwienia rabusiom manipulacji łącznością i wytworzenia wrażenia, że alarm informuje, iż "wszystko jest w porządku", podczas gdy tak naprawdę tak nie jest.

W kolejnych rozdziałach przyjrzymy się tym zastosowaniom. Bankowe zabezpieczenia komputerowe są ważne: aż do początku XXI wieku banki stanowiły najważniejszy element cywilnego rynku dla wielu produktów związanych z komputerowymi zabezpieczeniami, miały więc ogromny wpływ na standardy w tym obszarze.

1.4. Przykład 2: baza wojskowa

Systemy wojskowe były innym czynnikiem napędzającym rozwój techniki w XX wieku. Od wczesnych lat 80. stanowiły one bodziec dla dużej części akademickich badań naukowych nad zabezpieczeniami komputerowymi, finansowanych ze środków rządowych. Tak jak w przypadku bankowości mowa tu nie o jednym zastosowaniu, ale o wielu.

(1) Łączność wojskowa jest czynnikiem napędzającym rozwój kryptografii już od czasów starożytnego Egiptu i Mezopotamii. Często jednak zwyczajne zaszyfrowanie komunikatu nie wystarcza: wróg, który dostrzeże komunikat zaszyfrowany za pomocą cudzego klucza może po prostu zlokalizować i zaatakować nadajnik. Jedną z odpowiedzi stanowią łącza radiowe o niskim prawdopodobieństwie przechwycenia (ang. low-probability-of-intercept, LPI). Korzystają one ze sztuczek, które obecnie są już zaadaptowane w ramach łączności, z jakiej korzystamy na co dzień, takiej jak Bluetooth.

(2) Począwszy od lat 40. XX wieku rządy wydawały mnóstwo pieniędzy na systemy walki elektronicznej. Wyścig zbrojeń, w którym z jednej strony usiłowano zagłuszyć radary wroga i zapobiec zagłuszeniu przez niego własnych radarów doprowadziło do powstania wielu wyrafinowanych, zwodniczych, przeciwśrodków i przeciw-przeciwśrodków, o głębi, subtelności i szerokiej gamie wykorzystanych strategii, których nie sposób znaleźć gdziekolwiek indziej. Podszywanie się (spoofing) oraz ataki wykorzystujące blokadę usług były tu rzeczywistością na długo, zanim szantażyści wzięli na celownik witryny internetowe bankierów, bukmacherów czy graczy.

(3) Organizacje wojskowe muszą pewne informacje trzymać przy orderach. Chodzi tu o źródła wywiadowcze czy plany przyszłych operacji. Oznacza się je zwykle klauzulą "ściśle tajne", a związane z nimi czynności wykonywane są w ramach osobnych systemów. Dostęp do nich można dalej ograniczyć, stosując grodzie, tak aby najbardziej wrażliwe informacje znane były jedynie garstce osób. Przez lata podejmowano próby wprowadzenia w życie reguł przepływu informacji, tak by możliwe było skopiowanie plików z tajnych systemów magazynowania do ściśle tajnego systemu dowodzenia, ale nie odwrotnie. Zarządzanie wieloma systemami z ograniczeniami przepływu informacji to skomplikowany problem, a miliardy wydane na próby automatyzacji wojskowych zabezpieczeń doprowadziły do opracowania technik kontroli dostępu, które mamy dziś w naszych telefonach komórkowych i laptopach.

(4) Problemy związane z bezpieczeństwem broni jądrowej doprowadziły do opracowania wielu świetnych technik zabezpieczeń, od systemów uwierzytelniania, których bezpieczeństwa można dowieść, przez światłowodowe czujniki alarmowe po metody identyfikacji osób wykorzystujące biometrię, w tym wzorce tęczówki wykorzystywane obecnie do identyfikacji wszystkich obywateli Indii.

Inżynier zabezpieczeń nadal może się wiele z tego nauczyć. Na przykład wojsko do niedawna było jednym z zaledwie kilku klientów na systemy oprogramowania, które musiały być utrzymywane przez dekady. Teraz, gdy oprogramowanie oraz łączność internetowa trafiają do takich dóbr konsumenckich jak samochody, gdzie kwestia bezpieczeństwa jest krytyczna, możliwość długoterminowego utrzymania oprogramowania coraz częściej staje się przedmiotem troski. W 2019 roku Unia Europejska uchwaliła prawo stanowiące, że sprzedawca dóbr zawierających komponenty cyfrowe musi zapewnić dla tych komponentów utrzymanie przez okres 2 lat. Ulega on wydłużeniu, o ile klient może tego w rozsądnych sposób oczekiwać, co w przypadku samochodów i dużego sprzętu AGD oznacza dziesięcioletni okres utrzymania. Oprogramowanie dla samochodu lub lodówki, które będą w sprzedaży przez siedem lat, trzeba będzie utrzymywać przez prawie 20 lat. Jakich narzędzi należy użyć w takim przypadku?

1.5. Przykład 3: szpital

Od bankierów i żołnierzy przejdźmy teraz do kwestii ochrony zdrowia. Szpitale mają szereg wymogów dotyczących ochrony głównie związanych z bezpieczeństwem i prywatnością pacjentów.

(1) Użyteczność rozwiązań mających zapewnić bezpieczeństwo jest ważne w przypadku wyposażenia medycznego i w żadnym razie nie jest rozwiązanym problemem. Szacuje się, że awarie związane z użytecznością powodują tyle zgonów, co wypadki drogowe - na przykład w Stanach Zjednoczonych będzie to kilkadziesiąt tysięcy przypadków rocznie, a w Wielkiej Brytanii kilka tysięcy. Największy problem dotyczy pomp infuzyjnych służących do podawania pacjentom leków przez kroplówkę. Typowy szpital może dysponować urządzeniami kilku marek, z których każda ma nieco inny sposób sterowania, co zwiększa prawdopodobieństwo popełnienia śmiertelnych błędów. Użyteczność rozwiązań mających zapewnić bezpieczeństwo jest powiązana z zabezpieczeniami: niebezpieczne urządzenia, które dodatkowo okazują się być podatne na zhakowanie, są znacznie bardziej narażone na wycofanie produktu, ponieważ organy regulacyjne wiedzą, że głód ryzyka wśród społeczeństwa jest mniejszy, gdy w grę zaczynają wchodzić wrogie działania. Tak więc w miarę jak coraz więcej urządzeń medycznych zostaje wyposażonych nie tylko w oprogramowanie, ale i w łączność radiową, wrażliwość zabezpieczeń może prowadzić do poprawy bezpieczeństwa.

(2) Systemy dokumentacji medycznej nie powinny pozwalać na to, by cały personel mógł mieć dostęp do informacji dotyczących każdego pacjenta. W przeciwnym razie należy oczekiwać, że dojdzie do naruszenia prywatności. W rzeczywistości, od czasu ukazania się drugiego wydania tej książki, jeden z europejskich sądów postanowił, że pacjenci mają prawo do ograniczenia dostępu do swoich osobistych informacji na temat zdrowia personelowi klinicznemu biorącemu udział w ich leczeniu. Oznacza to, że systemy muszą wdrażać zasady takie jak ta, że "pielęgniarki mają prawo wglądu w dokumentację każdego pacjenta przyjętego na ich oddział w dowolnym momencie w ciągu ostatnich 90 dni". Może to być trudniejsze, niż się wydaje. (Amerykańska ustawa HIPAA ustanawia standardy, którym łatwiej sprostać, ale nadal stanowi istotny czynnik wpływający na nakłady na zabezpieczenia informacji).

(3) Dokumentacja pacjentów jest często zanonimizowana na potrzeby badań, ale dobra anonimizacja jest bardzo trudna. Proste zaszyfrowanie nazwisk pacjentów nie wystarcza. Zapytanie takie jak "pokaż mi wszystkich mężczyzn urodzonych w 1953 roku, którzy byli leczeni z powodu migotania przedsionków 19 października 2003 roku" powinno wystarczyć do utrafienia byłego premiera Wielkiej Brytanii Tony'ego Blaira, który tego dnia został pospiesznie przetransportowany do szpitala, gdzie poddał się leczeniu z powodu zaburzeń rytmu serca. Ustalenie, jakie dane mogą zostać skutecznie zanonimizowane, jest trudne. Jest to również swoisty ruchomy cel, ponieważ zyskujemy dostęp do coraz większej ilości danych społecznych oraz kontekstowych, nie mówiąc już nawet o danych genetycznych naszych bliskich i dalekich krewnych.

(4) Nowe technologie mogą powodować pojawienie się ryzyka, które jest słabo rozumiane. Szpitalni administratorzy rozumieją potrzebę istnienia awaryjnych procedur na wypadek przerwy w dostawach energii. Szpitale powinny poradzić sobie z ofiarami wypadków, nawet jeśli ich główne źródła wody i zasilania zawiodą. Jednak kiedy w maju 2017 roku komputery w kilku brytyjskich szpitalach zostały zainfekowane przez złośliwe oprogramowanie Wannacry i aby ograniczyć kolejne infekcje, wyłączono sieci komputerowe, okazało się, że trzeba zamknąć oddziały wypadkowe i ratunkowe, ponieważ zdjęcia rentgenowskie nie są już przesyłane z maszyny do sali operacyjnej w kopercie, ale za pośrednictwem serwera w odległym mieście. Awaria sieci może więc sprawić, że lekarze nie będą w stanie operować, podczas gdy awaria zasilania nie będzie miała takiego skutku. Do dyspozycji były zapasowe generatory, ale nie zapasowa sieć. Usługi w chmurze mogą sprawić, że wszystko będzie bardziej niezawodne, ale awarie są wtedy większe, bardziej złożone i skorelowane. Kwestią, która ujrzała światło dzienne za sprawą pandemii koronawirusa, jest kontrola nad akcesoriami: niektóre urządzenia medyczne uwierzytelniają swoje części zamienne, tak jak drukarki uwierzytelniają wkłady z tuszem. Choć ich wytwórcy twierdzą, że jest tak z powodów bezpieczeństwa, tak naprawdę dzieje się tak, by mogli kasować więcej pieniędzy za części zamienne. To wprowadza jednak kolejną podatność na zagrożenie: gdy łańcuch dostaw zostanie zakłócony, znacznie trudniej jest naprawić urządzenia.

Zabezpieczeniom (a także bezpieczeństwu) systemu medycznego przyjrzymy się bardziej szczegółowo nieco później. Jest to obszar młodszy niż bankowe czy wojskowe systemy IT. Ponieważ jednak we wszystkich krajach rozwiniętych ochrona zdrowia stanowi większą część produktu narodowego brutto niż którykolwiek z nich, staje się coraz istotniejsza. Jest to również niezmiennie największe źródło naruszeń prywatności w krajach, w których raportowanie takich zdarzeń jest obowiązkowe.

1.6. Przykład 4: dom

Może się wydawać, że typowa rodzina nie korzysta z żadnych zabezpieczonych systemów. Pomyślmy jednak przez chwilę.

(1) Możemy korzystać z któregoś z opisanych już systemów. Może to być oparty na sieci elektroniczny system bankowy do opłacania rachunków. Możemy też mieć internetowy dostęp do gabinetu naszego lekarza, dzięki czemu możemy zamawiać recepty na stale przyjmowane leki. Jeśli mamy cukrzycę, nasza pompa insulinowa może komunikować się ze stacją dokującą stojącą koło łóżka. Nasz domowy alarm przeciwwłamaniowy może co kilka minut przesyłać do firmy ochroniarskiej zaszyfrowany sygnał "wszystko w porządku" i nie budzić wszystkich sąsiadów, gdy do czegoś dojdzie.

(2) Nasz samochód prawdopodobnie ma elektroniczny immobilizer. Jeśli został wyprodukowany przed rokiem mniej więcej 2015, drzwi samochodu otwiera się przez przyciśnięcie przycisku na kluczu, co powoduje wysłanie zaszyfrowanego polecenia odblokowującego. Jeśli jest to nowszy model, w którym nie trzeba niczego naciskać, a wystarczy po prostu mieć klucz w kieszeni, samochód przesyła zaszyfrowane wyzwanie do klucza i czeka na prawidłową odpowiedź. Wyeliminowanie naciśnięcia przycisku znaczy jednak, że jeśli zostawimy nasze klucze w pobliżu drzwi wejściowych, złodziej może posłużyć się przekaźnikiem radiowym, by ukraść nasz samochód. Od czasu wprowadzenia tej technologii złodzieje samochodów również wiele się nauczyli.

(3) Nasze telefony komórkowe uwierzytelniają się w sieci dzięki kryptograficznemu protokołowi wyzwanie-odpowiedź, podobnego do tych wykorzystywanych w zamkach samochodowych i immobilizerach. Policja może jednak wykorzystać w celach podsłuchowych fałszywe stacje bazowe, które w Europie znane są jaki IMSI-catcher, a w Ameryce jako Stingray. Jak już wiemy, wiele firm telekomunikacyjnych bez problemu wydaje nowe karty SIM osobom, które twierdzą, że ich telefon został skradziony. Tak więc oszust mógłby ukraść nasz numer telefonu i wykorzystać go do ograbienia naszego konta bankowego.

(4) W ponad 100 krajach gospodarstwa domowe mogą być wyposażone w przedpłatowe liczniki energii elektrycznej i gazu, które doładowuje się za pomocą 20-cyfrowego kodu kupowanego za pośrednictwem bankomatu lub serwisu internetowego. Działa to nawet tam, gdzie nie ma sieci przesyłowej. W kenijskich wsiach osoby, które nie mogą pozwolić sobie na wydanie 200 dolarów na zakup panelu słonecznego, mogą otrzymać do niego dostęp za jedyne 2 dolary tygodniowo i odblokować generowaną przez niego elektryczność, korzystając z kodu kupowanego za pomocą telefonu komórkowego.

(5) Ponad wszystko jednak dom jest ostoją prywatności i fizycznego bezpieczeństwa. Zmienia się to jednak na szereg sposobów. Włamywaczy martwią nie tyle zamki w drzwiach, co obecność mieszkańców, więc alarmy i systemy monitoringu mogą się przydać. Monitoring sam w sobie staje się jednak wszechobecny w sytuacji, w której wiele gospodarstw domowych kupuje systemy takie jak Alexa czy Google Home, które nasłuchują tego, co mówią ludzie. Wszelkiego rodzaju inne gadżety są obecnie wyposażone w mikrofony i kamery, ponieważ interfejsy z wykorzystaniem głosu i gestów stają się powszechne. Przetwarzanie mowy jest zaś zwykle dokonywane w chmurze, aby wydłużyć czas pracy baterii. Przed rokiem 2015 rada doradców do spraw nauki i techniki prezydenta Obamy przewidywała, że niedługo każde zamieszkałe miejsce na ziemi będzie wyposażone w mikrofony połączone z niewielką liczbą dostawców usług chmurowych (Stany Zjednoczone i Europę charakteryzują różne spojrzenia na to, w jaki sposób prawa dotyczące prywatności powinny sobie z tym radzić). Tak czy inaczej, może się okazać, że bezpieczeństwo naszych domostw zależy od zdalnych systemów, nad którymi mamy bardzo niewielką kontrolę.

W ciągu następnych kilku lat liczba takich systemów gwałtownie wzrośnie. Opierając się na wcześniejszych doświadczeniach, można powiedzieć, że wiele z nich będzie źle zaprojektowanych. Na przykład w 2019 roku w Europie zakazano sprzedaży zegarka dla dzieci, który łączył się z serwisem chmurowym producenta za pomocą niezaszyfrowanej łączności. Podsłuchiwacz mógł pobrać historię lokalizacji dowolnego dziecka i sprawić, że zegarek zaczynał dzwonić na dowolny numer na świecie. Gdy zdano sobie z tego sprawę, w Unii Europejskiej natychmiast ogłoszono wezwanie do zwrotu wszystkich zegarów z przyczyn związanych z bezpieczeństwem [903].

Celem tej książki jest pomoc w uniknięciu takich sytuacji. Aby projektować systemy, które są bezpieczne i dobrze zabezpieczone, inżynier musi wiedzieć, jakie systemy istnieją, jak działają i - rzecz co najmniej równie istotna - dlaczego zawodziły w przeszłości. Specjaliści od inżynierii lądowej dowiadują się znacznie więcej dzięki jednemu mostowi, który się zawalił, niż dzięki setkom tych stojących nadal. Identycznie wygląda to w przypadku inżynierii zabezpieczeń.

1.7. Definicje

Wiele terminów używanych w inżynierii zabezpieczeń jest prosta, niektóre są jednak mylące, a nawet kontrowersyjne. Bardziej szczegółowe definicje terminów technicznych znajdują się w odpowiednich rozdziałach i można je znaleźć, korzystając z indeksu. W tym podrozdziale spróbuję wskazać, gdzie leżą najważniejsze problemy.

Pierwszą rzeczą, którą musimy wyjaśnić, jest to, co rozumiemy przez system. W praktyce może on oznaczać:

(1) produkt lub element, taki jak protokół kryptograficzny, karta inteligentna lub sprzęt telefonu, laptopa lub serwera;

(2) jedno z powyższych plus system operacyjny, łączność i inna infrastruktura;

(3) to, co powyżej plus jedna lub więcej aplikacji (aplikacja bankowa, zdrowotna, odtwarzacz mediów, przeglądarka, pakiet księgowy/płacowy i tak dalej, włączając w to zarówno komponenty po stronie klienta, jak i chmury);

(4) jedno (lub wszystkie) z powyższych plus personel IT;

(5) jedno (lub wszystkie) z powyższych plus użytkownicy wewnętrzni i kierownictwo;

(6) jedno (lub wszystkie) z powyższych plus klienci i inni użytkownicy zewnętrzni.

Powyższy zamęt definicyjny jest bogatym źródłem błędów i podatności. Ogólnie mówiąc, wytwórca i społeczności walidatorów skupiają się na pierwszej i (sporadycznie) drugiej definicji, podczas gdy biznes będzie się skupiać na szóstej (i czasami piątej) z nich. Napotkamy wiele przykładów systemów, które były reklamowane, a nawet certyfikowane jako bezpieczne, ponieważ taki był sprzęt, ale które padły z kretesem po uruchomieniu konkretnej aplikacji lub gdy sprzęt został użyty w sposób, którego projektanci się nie spodziewali. Pomijanie czynnika ludzkiego, a stąd też zaniedbywanie kwestii użyteczności, to jedno z najważniejszych źródeł zawodności zabezpieczeń. Będziemy więc generalnie posługiwać się definicją numer 6. Gdy przyjmujemy bardziej ograniczoną perspektywę, powinno to jasno wynikać z kontekstu.

Następny zestaw problemów bierze się z braku jasności co do tego, kim są gracze i czego próbują dowieść. W literaturze poświęconej zabezpieczeniom i kryptologii istnieje konwencja, zgodnie z którą najważniejsze osoby uczestniczące w protokołach bezpieczeństwa są identyfikowane za pomocą imion (zwykle) dobranych w taki sposób, by zaczynały się na kolejne litery alfabetu. Coś jak huragany, tyle że w naszym przypadku naprzemiennie zmieniamy ich płeć. Widzimy więc wiele zdań takich jak "Alicja uwierzytelnia się przed Bobem". Dzięki temu sprawy stają się dużo bardziej czytelne, choć może się to dziać kosztem precyzji. Czy mamy na myśli to, że Alicja stara się dowieść Bobowi, że naprawdę ma tak na imię? A może stara się dowieść, że dysponuje jakimiś poświadczeniami? Czy mamy na myśli tego, że uwierzytelnia się Alicja człowiek z krwi i kości, czy może inteligentna karta albo jakieś oprogramowanie działające w charakterze pełnomocnika Alicji? Czy mamy pewność, że to naprawdę Alicja, a nie Carol, której Alicja pożyczyła swoją kartę, lub David, który ukradł jej telefon, albo Ewa, która zhakowała jej laptopa?

Przez podmiot rozumieć należy osobę fizyczną występującą w dowolnej roli, włączając w to role operatora, uczestnika lub ofiary. Przez osobę rozumieć będziemy zarówno osobę fizyczną, jak i prawną, taką jak przedsiębiorstwo lub rząd[1].

Uczestnik systemu zabezpieczeń to jednostka będąca jego częścią. Tą jednostką może być jakiś podmiot, osoba, rola lub sprzęt taki jak laptop, telefon, inteligentna karta lub czytnik kart. Uczestnikiem może być również kanał łączności (którym w zależności od okoliczności może być numer portu czy klucz kryptograficzny). Uczestnik może również składać się z innych uczestników. Przykłady stanowią tu grupa (Alicja lub Bob), połączenie (Alicja i Bob działający razem), rola złożona (Alicja działająca jako menedżer Boba) lub delegacja (Bob działający w imieniu Alicji pod jej nieobecność).

Zauważmy, że grupy i role to nie to samo. Przez grupę będziemy rozumieć zbiór uczestników, podczas gdy rola jest zbiorem funkcji przyjmowanych kolejno przez różne osoby (np. "oficer wachtowy na lotniskowcu USS Nimitz" czy "tymczasowy prezes Islandzkiego Towarzystwa Medycznego"). Uczestnika systemu zabezpieczeń można rozważać na więcej niż jednym poziomie abstrakcji. Na przykład "Bob działający w imieniu Alicji pod jej nieobecność" może znaczyć, że "karta inteligentna Boba reprezentuje Boba działającego w imieniu Alicji pod jej nieobecność", a nawet że "Bob posługuje się kartą inteligentną Alicji pod jej nieobecność". Gdy będzie trzeba wziąć pod uwagę więcej szczegółów, będę bardziej precyzyjny.

Znaczenie słowa tożsamość jest kontrowersyjne. Gdy będzie trzeba zachować ostrożność, będą go używać jako zgodności nazw dwóch uczestników systemu zabezpieczeń, oznaczającej, że odnoszą się do tej samej osoby lub sprzętu. Na przykład może być istotne, że Bob w zdaniu "Alicja działa jako menedżerka Boba" to ten sam Bob co w zdaniu "Bob działa jako menedżer Charliego" oraz w zdaniu "Bob jako menedżer oddziału podpisuje razem z Davidem przekaz bankowy". Słowo "tożsamość" często bywa nadużywane w taki sposób, w którym jego znaczenie zostaje zrównane ze słowem "nazwa". Nadużycie to wzmacniane jest przez takie wyrażenia jak "tożsamość użytkownika" czy "dowód tożsamości".

Definicje zaufania i bycia godnym zaufania są często mylone. Następujący przykład ilustruje tę różnicę. Jeśli ktoś dostrzeże, że pracownik NSA w kabinie toaletowej na lotnisku Baltimore Washington International sprzedaje ważne materiały chińskiemu dyplomacie, wtedy (zakładając, że jego działania nie były uprawnione), będziemy mogli powiedzieć o nim, że "jest zaufany, ale nie jest godny zaufania". Korzystam z definicji NSA, zgodnie z którą zaufany system lub komponent to taki, którego awaria może doprowadzić do złamania polityki zabezpieczeń. Natomiast system lub komponent godny zaufania, to taki, który nie zawiedzie.

Istnieje wiele alternatywnych definicji zaufania. W korporacyjnym świecie zaufany system może oznaczać "system, który nie doprowadzi do tego, że mnie zwolnią, jeśli zostanie zhakowany, gdy będę na posterunku", a nawet "system, który jesteśmy w stanie ubezpieczyć". Jednak jeśli będę mieć na myśli system zatwierdzony, system dający się ubezpieczyć lub system, który został ubezpieczony, oznajmię to wprost.

Definicje poufności, prywatności i tajności otwierają kolejną puszkę Pandory. Znaczenia tych terminów pokrywają się, ale nie są dokładnie takie same. Jeśli mój sąsiad odrobinę przytnie bluszcz porastający płot oddzielający nasze posesje, w wyniku czego jego dzieciaki będą mogły zaglądać do mojego ogrodu i droczyć się z moimi psami, to nie moja poufność zostanie naruszona. Z kolei obowiązek trzymania buzi na kłódkę w sprawach dotyczących byłego pracodawcy będzie kwestią zachowania poufności, nie zaś prywatności.

Będę używać tych słów w następujący sposób:

- Tajność to termin z zakresu inżynierii odnoszący się do efektu działania mechanizmów mających ograniczyć liczbę uczestników, którzy mogą uzyskać dostęp do informacji, takich jak kryptografia czy środki kontroli dostępu do komputera.

- Poufność wiąże się ze zobowiązaniem do ochrony tajemnic jakiejś innej osoby lub organizacji, o ile je znamy.

- Prywatność to możliwość i/lub prawo do ochrony naszych osobistych informacji. Obejmuje ona na możliwość i/lub prawo do zapobiegania wtargnięciu w naszą przestrzeń osobistą (której dokładna definicja różni się w zależności od kraju). Prywatność może obejmować rodziny, ale nie osoby prawne, takie jak korporacje.

Na przykład pacjenci szpitala mają prawo do prywatności i aby respektować to prawo, lekarze, pielęgniarki i inny personel ma obowiązek zachowania poufności odnośnie do ich spraw. Szpital nie ma prawa do prywatności w odniesieniu do swoich operacji biznesowych, ale na tych pracownikach, którzy są w nie wtajemniczeni, może ciążyć obowiązek zachowania poufności (chyba że powołają się na prawo sygnalistów do ujawniania nieprawidłowości). W typowym ujęciu prywatność to tajność mająca chronić dobro jednostki, a poufność to tajność mająca chronić dobro organizacji.

Sprawy stają się jeszcze bardziej złożone, ponieważ sama ochrona danych, takich jak treść komunikatu, nie wystarcza. Trzeba jeszcze chronić metadane, takie jak rejestry tego, kto z kim rozmawiał. Wiele krajów ma na przykład przepisy chroniące tajność leczenia chorób przenoszonych drogą płciową. Gdyby jednak ktoś spostrzegł, że wymieniamy zaszyfrowane komunikaty z kliniką zajmującą się ich terapią, mógłby dojść do wniosku, że się tam leczymy. W rzeczywistości kluczowa brytyjska sprawa sądowa związana z prywatnością dotyczyła takiego przypadku: pewna modelka skutecznie pozwała tabloid w związku z faktem, że ten opublikował jej zdjęcie przedstawiające jak opuszcza spotkanie grupy anonimowych narkomanów. Anonimowość może więc być równie istotnym czynnikiem dla zachowania prywatności (lub poufności) co tajność. O anonimowość jest jednak bardzo trudno. Trudno ją zachować w pojedynkę, zwykle potrzebny jest tłum, w którym można się schować. Nasze prawo również nie zostało zaprojektowane tak, by wspierać anonimowość. Policji znacznie łatwiej jest uzyskać z firmy telekomunikacyjnej szczegółowe informacje bilingowe, mówiące, kto do kogo dzwonił, niż założyć prawdziwy podsłuch. (Ten pierwszy rodzaj informacji często jest zresztą bardziej przydatny).

Znaczenie autentyczności i integralności również może subtelnie się różnić. W akademickiej literaturze poświęconej zabezpieczeniom protokołów autentyczność oznacza integralność wraz ze świeżością: ustalamy, że komunikujemy się z rzeczywistym uczestnikiem, a nie z odtworzeniem poprzedniego komunikatu. W przypadku protokołów bankowych mamy do czynienia z czymś podobnym. Jeśli miejscowe przepisy bankowe stanowią, że czeki tracą ważność po sześciu miesiącach, siedmiomiesięczny niezrealizowany czek ma wprawdzie cechę integralności (o ile nie został zmodyfikowany), ale nie jest już ważny. Istnieją jednak pewne dziwne przypadki brzegowe. Na przykład integralność sfałszowanego czeku zostanie zachowana, jeśli funkcjonariusz policji na miejscu zbrodni umieści go w torebce na dowody. (Znaczenie integralności zmieniło się w tym nowym kontekście i obejmuje nie tylko podpis, ale również odciski palców).

Jako hakowanie często określane są rzeczy, których nie chcemy, by je tak określano. Postąpię tak jak Bruce Schneier i zdefiniuję hakowanie jako coś, na co reguły systemu pozwalają, ale co jest nieprzewidziane i niechciane przez jego projektantów [1682]. Na przykład prawnicy od podatków analizują przepisy podatkowe, aby odnaleźć luki, na podstawie których opracowują strategie umożliwiające unikanie opodatkowania. Dokładnie w ten sposób złoczyńcy badają kod oprogramowania, aby odnaleźć luki i wykorzystać je następnie do przeprowadzenia ataku hakerskiego. Takie ataki mogą być skierowane nie tylko przeciwko systemowi podatkowemu lub komputerowemu, ale też przeciwko gospodarce rynkowej, naszym systemom służącym do wyboru przywódców, a nawet przeciwko naszym systemom kognitywnym. Może do nich dochodzić na wielu poziomach: prawnicy mogą hakować przepisy podatkowe lub pójść dalej i zhakować ciało ustawodawcze, a nawet media. W ten sam sposób moglibyśmy zhakować system kryptowalutowy - wystarczyłoby odnaleźć jakąś matematyczną słabość w algorytmie szyfrującym. Moglibyśmy też zejść poziom niżej i zmierzyć pobór energii implementującego go urządzenia i rozpracować klucz albo wejść poziom wyżej i zwieść osobę opiekującą się tym urządzeniem w taki sposób, by posłużyła się nim wtedy, gdy nie powinna tego robić. Książka ta zawiera wiele przykładów. W szerszym kontekście hakowanie staje się niekiedy źródłem znaczących innowacji, jak wtedy, kiedy atak hakerski staje się popularny i aby go powstrzymać, mogą zostać zmienione reguły. Może też jednak ulec normalizacji (przykłady rozciągają się tu od bibliotek, przez obstrukcje parlamentarne po wyszukiwarki i media społecznościowe).

Ostatnią rzeczą, którą tutaj wyjaśnię, jest terminologia opisująca to, co staramy się osiągnąć. Podatność to własność systemu lub jego środowiska, która w połączeniu z wewnętrznym lub zewnętrznym zagrożeniem może doprowadzić do awarii, którą jest naruszenie polityki zabezpieczeń systemu. Przez politykę zabezpieczeń będę rozumieć zwięzłe oświadczenie dotyczące strategii ochrony systemu (na przykład: "w przypadku każdej transakcji sumy wpłat i wypłat są równe, a wszystkie transakcje powyżej 1 miliona dolarów muszą być autoryzowane przez dwóch menedżerów"). Cel zabezpieczeń to bardziej szczegółowa specyfikacja, która określa środki, za pomocą których polityka bezpieczeństwa zostanie wdrożona w danym produkcie: mechanizmy szyfrowania i podpisu cyfrowego, środki kontroli dostępu, dzienniki audytu i tak dalej. To one staną się kryterium oceny tego, czy inżynierowie dobrze wykonali swoją pracę. Między tymi dwoma poziomami znaleźć można profil ochrony, który przypomina cel zabezpieczeń z tym wyjątkiem, że jest napisany w sposób dostatecznie niezależny od urządzenia, tak by umożliwić porównawcze oceny różnych produktów i różnych wersji tego samego produktu. Zagadnienia polityki bezpieczeństwa, celów zabezpieczeń i profili ochrony omówię w części 3. Mówiąc ogólnie, słowo ochrona odnosić się będzie do właściwości, takich jak poufność czy integralność, zdefiniowanych w dostatecznie abstrakcyjny sposób, który pozwoli nam na wnioskowanie o nim w kontekście ogólnych systemów, a nie konkretnych implementacji.

Do pewnego stopnia odzwierciedla to terminologię, którą posługujemy się w przypadku systemów krytycznych dla bezpieczeństwa. A ponieważ będziemy musieli rozplanować razem kwestie zabezpieczeń oraz bezpieczeństwa w jeszcze większej liczbie zastosowań, myślenie o nich, tak jakby stały obok siebie, może być użyteczne.

W świecie bezpieczeństwa krytyczny system lub komponent to taki, którego awaria mogłaby doprowadzić do wypadku, biorąc pod uwagę jakieś zagrożenie - zbiór warunków wewnętrznych lub zewnętrznych okoliczności. Niebezpieczeństwo to prawdopodobieństwo, że zagrożenie doprowadzi do wypadku, a ryzyko to całkowite prawdopodobieństwo wypadku. Tak więc ryzyko to poziom zagrożenia w powiązaniu z niebezpieczeństwem i opóźnieniem - narażeniem na zagrożenie i czasem jego trwania. Z niepewnością mamy do czynienia, gdy ryzyko jest niepoliczalne, a bezpieczeństwo to brak wypadków. Mamy więc politykę bezpieczeństwa, która daje nam zwięzłe instrukcje, w jaki sposób ryzyko będzie utrzymywane poniżej akceptowalnego poziomu (instrukcje te mogą być rzeczywiście zwięzłe, np. "nie umieszczaj materiałów wybuchowych i detonatorów na tej samej ciężarówce", ale też może być dużo bardziej złożone, np. zasady stosowane w medycynie czy lotnictwie). Jeden poziom niżej możemy odnaleźć analizę bezpieczeństwa wykonaną dla konkretnego komponentu, takiego jak samolot, silnik samolotowy, a nawet oprogramowanie sterujące silnikiem samolotowym.

1.8. Podsumowanie

"Zabezpieczenie" to okropnie przeładowane słowo, które dla różnych osób ma znaczenia, które nijak do siebie nie przystają. Dla korporacji może ono oznaczać możliwość monitorowania e-maili i przeglądarek internetowych wszystkich pracowników. Dla pracowników może ono oznaczać możliwość korzystania z poczty e-mail i przeglądania sieci, nie będąc monitorowanym.

W miarę upływu czasu mechanizmy zabezpieczające są coraz częściej i częściej wykorzystywane przez ludzi, którzy kierują projektem systemu, by uzyskać nieco przewagi rynkowej nad osobami, które z nich korzystają. W związku z tym możemy oczekiwać narastania konfliktów, zamętu i zwodniczego korzystania z języka.

Przypomina to fragment z Lewisa Carrolla[IV]:

- Gdy ja używam jakiegoś słowa - powiedział Humpty Dumpty z przekąsem - oznacza ono dokładnie to, co mu każę oznaczać... ni mniej nie więcej.

- Pozostaje pytanie - powiedziała Alicja - czy potrafisz nadawać słowom tak wiele rozmaitych znaczeń?

Pozostaje pytanie - powiedział Humpty Dumpty - kto ma być panem... to wszystko.

Inżynier zabezpieczeń musi być wrażliwy na różnie niuanse znaczeń, których słowa nabierają w różnych zastosowaniach. Musi też potrafić sformalizować to, jakie tak naprawdę są polityka zabezpieczeń i jej cel. Niekiedy może to być niewygodne dla klientów, którzy chcieliby, by coś im się upiekło, ale ogólnie rzecz biorąc, porządny projekt zabezpieczeń wymaga, by cele ochrony były wyraźnie określone.