TTY / TLT / J.Koskinen
TLT-3200 Tietoturvallisuuden jatkokurssi
Harjoitukset 2005-2006
1. Harjoitus 20.10.2005
- 1. Kotitehtävä: Lue
Käyttäjän tietoturvaohje (VAHTI 5/2003).
Minkälainen tietoturvan prosessi siinä ilmenee? Erityisesti mitä piirteitä
on riskienhallinnasta kustannusvertailuineen ja baseline-lähestymistavasta?
Millaisia tietoturvapolitiikkoja ja muita säännöksiä siinä esiintyy?
Mitkä ohjeet ovat sellaisia, joita et ennen ole kuullut tai tullut
ajatelleeksi?
- Keksi jokin tapa jäsentää tietoturvauhkia ja piirrä niistä sen
mukainen käsitekartta.
- Etukäteen on jaettu vanha Tietoturvallisuuden perusteiden rastitentti.
Tehdään samalla kertaa seuraavat tarkastelut:
a) Luokitellaan tehtävät uhkien käsitekarttaan.
Arvioidaan jakaumaa ja katsotaan mitä jää yli.
b) Etsitään A-osasta joitakin tehtäviä, joiden aihe sisältyy Käyttäjän
tietoturvaohjeeseen, mutta jotka menevät sitä pidemmälle.
c) Keskustellaan millaista osaamista tehtävien oikea ratkaiseminen
edellyttää ja edistää. Suhteutetaan tätä siihen, millaista osaamista
tietoturva-alalla yleensä ja nyt alkaneella kurssilla erityisesti pitäisi
tavoitella.
d) Poimitaan tehtävistä sellaisia, joissa väärä vaihtoehto ei eroa tarpeeksi
oikeasta. Kehitetään näihin jokin muunnelma, jossa ongelma on korjattu.
- Onko palomuurin tai vastaavan verkkoliikennettä suodattavan
järjestelmän toiminta sellaista, jota voi kuvata Bell-LaPadulan mallilla?
- Mitä tolkkua olisi sellaisessa politiikassa, joka sallisi toimijan
lukea kahdesta tiedosta kumman vain, mutta ei molempia? Jos tällaista
pitäisi jostain syystä mallintaa Bell-LaPadulan tyyppisesti, mitä
operaatioita ehkä tarvittaisiin?
- Tarvitseeko Delta-CRL -tekniikassa ilmoittaa etukäteen, milloin
uusi koko-CRL julkaistaan?
- Vertaile uhkia varmentajan julkaiseman CRL:n ja
peruutustietopalvelimen (OLRS:n) välillä.
- Kehittele tarkemmaksi ajatus, jossa sulkulistalla ilmoitetaan
ensimmäisen voimassaolevan varmenteen sarjanumero (joka voi sisältää myös
myöntöpäivämäärän) ja sitä suuremmat peruutetut varmenteet. Luentotekstissä
järjestelmää kuvattiin näin:
"Ensimmäisen voimassaolevan varmenteen systeemi" jota voidaan käyttää
nousevasti numeroitujen ilman erillistä voimassaoloaikaa toimivien varmenteiden
tapauksessa. Sulkulistalta saadaan vanhoja pois kun samalla lopetetaan sopivasti
joidenkin muiden voimassaolo."
2. Harjoitus 27.10.2005
- Mitä varmentaja voi tehdä ja varmennepolitiikassa vakuuttaa tekevänsä
torjuakseen ongelmia, joita "10 PKI-riskin" artikkelissa esitetään?
(linkki siihen ja
referaatti)
Mitkä niistä eivät yleensä edes ole ongelmia?
- Kotitehtävä: Tutustu Sähköisten palveluiden ja asioinnin
tietoturvallisuuden yleisohjeeseen. LUE siitä ainakin luku "2 Yhteenveto" ja
liitteet 2 ja 3. Liitteessä 3 kartoitetaan uhkia. Vertaa tätä viime kerran
harjoituksessa luonnostelemaasi yleiseen uhkakarttaan.
- Tarkastellaan yhdessä em. VAHTI-ohjetta laajemmin.
a) Varustetaan yhteenvetoluku 2 viitteillä muihin kohtiin.
b) Haetaan ohjeesta sellaisia seikkoja, jotka {ovat|eivät ole} erityisen
merkityksellisiä kaupallisille sähköisille palveluille.
c) Tuleeko mieleesi sähköiseen kauppaan liittyviä turvatarpeita, jotka tämän
ohjeen perusteella saattaisivat unohtua?
- Kotitehtävä: Tutustu johonkin anonymisoivaan proxy-palveluun (esim.
luennossa mainitun osoitteen
kautta.) Millainen on hinnasto? Onko tarjolla seittiselauksen lisäksi
sähköpostipalvelua? Millaisia takeita palvelu antaa luotettavuudestaan?
- Piirrä kaavio nimeämiseen liittyvistä tietoturvanäkökulmista ja ota
mukaan anonymiteetin jaottelut.
- Miten asiakkaan viesti MIXerille pitää rakentaa, jos halutaan että
palvelimen vastaus ei käytä julkisia avaimia, mutta vastauksen tiedot eivät
paljastu MIXerille?
- Jos lähteen ja kohteen välissä olisi vain yksi sipulireititin, niin
miten järjestelmä (luennolla kuvatulla tarkkuudella) eroaisi MIXeristä?
- Kotitehtävä: Tutustu Creative Commons
-lisenssin sivustoon. Laadi itsellesi jokin muu kuin Public Domain lisenssi
Suomen lain mukaan ja katso millaisilta sen kolme muotoa näyttävät. Tarkasta
erityisesti, mihin sijoittuvat teoksesta, tekijästä ja ajankohdasta antamasi
tiedot. Mitä ovat suomeksi keskeiset termit 'Attribution', 'Noncommercial', 'No
Derivative Works' ja 'Share Alike'? Mitä muita vastaavia termejä löydät ja miten
nämä kaikki jakautuvat RDF-kuvauksissa luokkiin sallitut, kielletyt ja vaaditut
toimet?
- Keksi esimerkkejä erilaisista tilanteista, joissa itse voisit käyttää
kutakin Creative Commons -lisenssin peruspiirrettä. Mikä olisi sopivin lisenssi
kurssin harjoitustyölle ja miten se pitää merkitä?
3. Harjoitus 3.11.2005
- Kotitehtävä: Tutustu Ross Andersonin laajaan dokumenttiin 'Trusted Computing' Frequently
Asked Questions. Sieltä ei löytyne termiä Trusted platform module, vaan
mitä nimeä sirusta käytetään? Joko sellainen on markkinoilla? Mitä sanotaan sen
murrettavuudesta? Liittymäkohtana käyttöjärjestelmiä koskeviin luentoihin lue
myös lyhyt jakso "7. Where did the technical ideas come from?"
- Olisiko digitaalisten tallenteiden standardeihin voitu ottaa mukaan
jonkinlainen kopiosuojausmekanismi? Mitä annettavaa Trusted Computing
-hankkeella olisi kopiosuojalle?
- Oletetaan, että sinulla on lähtökohtana jokin yli 8-kirjaiminen
suomenkielinen sana, esim. 'lukemiseen'. Sitten korvaat vokaalit joillain
erikoismerkeillä, vaihdat konsonanteista jotkin (esim. toisen ja kolmannen)
isoiksi ja katkaiset kahdeksan merkin jälkeen. Tulos voisi olla
'l>K.M&s+'. Se on vahva salasana, ja käytettävyyskin on hyvä, jos
kirjoitat lapulle näin: '>.&+*\ toinen kolmas kuudes',
missä '*\' ja 'kuudes' ovat hämäystä. Jos tämäntapainen
lappu päätyy hyökkääjän haltuun ja hän tietää systeemisi, mutta ei pohjana
olevaa sanaa, minkä verran hänellä on arvaustyötä jäljellä suhteessa
siihen, paljonko 8-kirjaimisia suomenkielisten sanojen alkuosia on?
-
Suunnittele varmuuskopioinnin nauhojen kierto ja piirrä kaavio tilanteesta,
jossa tietystä tietojärjestelmän osasta on kullakin hetkellä
tallella
- 7 tuoreinta päivänauhaa, joilla on muutoskopio ja joista vanhimman
päällekirjoittamisen aikana nauhoja on 6;
- 5 tuoreinta viikkonauhaa, joilla on täyskopio (em.
päällekirjoitusperiaatteella).
Ne ovat joltain tietyltä viikonpäivältä ja yksi niistä palvelee samalla
kuukausinauhana (eli poistuu kierrosta pitkäksi aikaa);
- kuukausinauhat vuoden ajalta. Vuoden ensimmäinen jää vuosinauhaksi;
- kaikki vuosinauhat.
Miten nauhat kannattaisi merkitä?
Jos nauhojen uusimista ei oteta huomioon, montako nauhaa tarvitaan vuodessa?
- Jos Hanoin tornisysteemissä on neljä tasoa eikä mitään nauhaa arkistoida
(eli nauhojakin on neljä), miten vanha kopio kulloinkin on tallella ja mitkä
tiedot viimeksi kuluneelta viikolta? Miten tilanne muuttuu, jos nauhoja on
viisi? Kuusi? Voisiko järjestelmää muokata niin, että se vastaisi lähemmin
edellisessä tehtävässä saavutettavia ominaisuuksia?
- Kotitehtävä: Laadi luentojen ja/tai Tietoteknisten laitetilojen
turvallisuussuosituksen perusteella konehuoneiden turvajärjestelyistä
tiivis tarkastuslista, joka soveltuisi TLT-laitoksen tarpeisiin. (Tämä
tehtävä koskee myös ja enimmäkseen muita osa-alueita kuin materiaalissa oleva
LUE-tehtävä.)
- Tarkastellaan yhdessä ja mahdollisesti muokataan laadittuja listoja.
Käydään lopuksi TLT-laitoksella olevassa konehuoneessa tekemässä "tarkastus".
4. Harjoitus 10.11.2005
-
Tarkastelun kohteena ovat olleet luotettavat ja turvalliset käyttöjärjestelmät.
Laadi taulukko käsitteiden turvallinen ja luotettava eroavuuksista, mm.
seuraavissa ulottuvuuksissa:
mitta-asteikko, kenen/minkä ominaisuus, peruste, suhteellisuus, miten kehittyy.
- Kaiva esille kaikki toiminnot, joiden tiedät kuuluvan käyttöjärjestelmään
ja sijoita ne turvallisuuden kannalta pinoon, jonka alla on vain laitteisto ja
päällä käyttäjän prosessit (siis esim. laskennan tai tekstinkäsittelyn
ohjelmat). Miten voisi saada aikaan 16 tasoa kuten PSOS-järjestelmässä ja VAX
VMM -ytimessä, tai 8 kuten Multicsissa, tai 4 kuten normaalissa
VAX-järjestelmässä.
Erityisesti mitä uhkia voitaisiin torjua sillä, että jotkin kaksi tiettyä
toimintoa ovat eri tasoilla?
-
Hakusanalla "secure operating system" löytyy yli 100 000 verkkosivua.
Tässä on lainaus kahdelta sellaiselta. Arvioi termin "turvallinen
käyttöjärjestelmä" sisältöä näissä tapauksissa.
www.smoothwall.org: "SmoothWall Express is an open source firewall distribution based
on the GNU/Linux operating system. Linux is the ideal choice for security
systems; it is well proven, secure, highly configurable and freely††† available
as open source code. SmoothWall includes a hardened subset of the GNU/Linux
operating system, so there is no separate OS to install. Designed for ease of
use, SmoothWall is configured via a web-based GUI, and requires absolutely no
knowledge of Linux to install or use."
www.trustix.net,
Trustix Security
Implementation luku 3.3 The TSL approach:
The TSL approach to security is quite simple and can be summarized into these
main points:
- Quick security updates - The TSL team consider the necessity of being
updated at any time crucial. With this in mind they developed the swup software
updater tool. swup enables users to automatic keep up to date with the current
security and bug fix updates. swup is one of the most versatile update tools in
the Linux world.
- Stack protection - delivers effective buffer overflow detection and avoids
the corruption of pointers by re-ordering local variables to place buffers after
pointers.
- Always updated installation media - The usability of the distribution is
also a main criteria for the TSL team. To achieve this the downloadable
installation media are always up to date with the rest of the distribution, thus
making life of the user that much simpler.
- Secure default installation - Even if the user choose to install every
package in the TSL distribution, the installed system will not enable any
services to listen on input from the outside world, thus making it virtually
impossible to break in to. Following this aspect, the TSL distribution have
never had a remote hole in the default installation.
- Secure default configurations - TSL supplies secure default
configurations to all included services to ensure that the users wont get any
unwanted surprises. This makes it much easier for new users to explore their
system, as the chance of doing something very wrong, security wise is greatly
reduced.
- Open Source Projects - TSL is totally based on open source software.
The positive results in using open source software has been quite under estimated
over the years, but today there can be no doubt in the fact that the open source
development model is the most secure development model known to man.
- Käsitellään rinnakkain kahta VAHTI-ohjetta: Valtionhallinnon
tietoaineistojen käsittelyn tietoturvallisuusohje (2/2000) ja Arkaluonteiset
kansainväliset tietoaineistot (4/2002). Edelliseen tutustuminen (s. 9-19) olkoon
kotitehtävänä. Käydään ohjeita läpi valitsemalla muutama
tietoturvamenettely kustakin tiedon elinkaaren vaiheesta (synty, siirto,
käsittely, hävitys) ja tutkitaan vertaillen, mitä vaatimuksia ohjeet asettavat
menettelyjen suhteen eri turvaluokissa. Kootaan tuloksia taulukoksi tai
kaavioksi.
- Muokataan ja täydennetään taulukosta runko tietoaineisto-ohjeeksi
monialaiselle isolle yritykselle, jolla on useita toimipaikkoja, kansainvälisiä
liikekumppaneita yms. Missä määrin edelleen korostuu salassapito?
- Millaisia ylimääräisiä kustannuksia ja ongelmia tietoaineistojen
salassapito aiheuttaa?
- Oikeuksien myöntäminen ja myöhempi peruminen SQL:ssä voi muodostua
mielenkiintoiseksi, jos käytetään delegointia. Oletetaan, että A omistaa taulun
ja myöntää delegoituvan lukuoikeuden B:lle ja C:lle. Kumpikin näistä käyttäjistä
myöntää delegoituvan oikeuden D:lle, joka lopuksi myöntää oikeuden B:lle.
Millaisia tilanteita syntyy kun A peruu oikeuksia?
Luennon esitykseen täytyy mainita pieni täydennys. Kukaan ei pysty
peruuttamaan muita oikeuksia kuin niitä, jotka itse on myöntänyt ja joita
delegaatit ovat myöntäneet. Jälkimmäisiä ei voi peruuttaa suoraan, vaan
ainoastaan välillisesti eli sen kautta, jolle ne on itse myöntänyt. Siihen
tarvitaan käsky "REVOKE oikeus FROM x CASCADE", josta CASCADE-määreen voi
kuitenkin jättää pois. Jos sen sijalle kirjoittaa RESTRICT, käsky tuottaa
virheen, jos x on myöntänyt oikeuksia edelleen.
5. harjoitus 17.11.2005
Harjoitus pidetään TLT:n työasemaluokassa TC221, jossa on sekä Windows- että
Linux-koneita. Tehtävät ovat pitkälti muilla kursseilla ja tietokoneen
käytössä omaksutun kertaamista tietoturvanäkökulmasta ja kotitehtävänä on
käydä ne jommallakummalla alustalla läpi. Vaikka asiat olisivat tuttuja
molemmissa ympäristöissä, suositellaan harjoitukseen osallistumista
vertaistuutorin roolissa. Kaikille asiat eivät ole jokapäiväisiä ja opettamalla
voi tutuistakin asioista havaita uusia puolia.
Yleisesti: Kurssimateriaalissa on tekstit "Käyttäjäläheistä
käyttöjärjestelmää; esim. Unix" ja "Turvajärjestelyjä Windows NT:ssä". Etsi
käytössäsi olevasta koneesta kaikki mahdolliset teksteissä mainitut piirteet.
Toimi sekä ylläpitäjänä että tavallisena käyttäjänä. Toimittuasi ja välillä
törmättyäsi pääsynvalvontaan käy katsomassa, mitä lokitietoja on kertynyt.
Ainakin Windowsissa löytänet myös tavan asettaa, mitä kerätään.
Erityisesti: Harjoituksen tavoitteena on tutustua käyttäjähallintoon
koneessa, jossa on useita käyttäjiä -- ottamatta kantaa mistä käsin he konetta
käyttävät. Lähinnä keskitytään toimiin, joilla tiedostojärjestelmän
pääsynvalvontaa säädetään. Seuraavassa on joitakin tehtäviä, joita voit myös
varioida tai laajentaa.
Luo käyttäjiä: a(ino), b(ertil), c(indy), d(avid)
Aseta salasanat (saa olla sama ja helppo), kotihakemistot sekä profiilit ryhmien
'perus' ja 'jatko' perusteella.
Luo ryhmiä: perus={a,b}, jatko={c,d}, proj={b,c}
Luo hakemistoja: x/, x/z/, y/
ja jokaiseen niistä tiedostoja: f, x/fx, x/z/fz, y/fy.
Kopioi nämä käyttäjän a kotihakemistoon hänen omistukseensa, ryhmänä
'perus'. Millaisiksi muodostuvat käyttöoikeudet? Kaikilla pitäisi olla x-oikeus
hakemistoihin.
Tee vastaavat tiedostot käyttäjänä b siten, että ryhmällä 'perus' on
hakemiston b/x alla lukuoikeudet ja hakemistoon b/x/z/ kirjoitusoikeudet.
Tee vastaavat tiedostot käyttäjänä c. Anna b:lle lukuoikeus tiedostoon f
mutta älä muihin. Anna kaikille oikeus lukea hakemistoa y.
Lue a:na tiedosto b/x/z/fz. Editoi sitä ja kirjoita takaisin, jos voit.
Mitkä oikeudet sillä nyt on? Kopio jokin tiedosto tuohon hakemistoon.
Mitkä oikeudet? Tuhoa ne tiedostot, mitkä voit. (Oletko Windowsissa voinut
b:nä myös erikseen estää tuhoamisen?)
Tutki, mitä pääset a:na ja b:nä lukemaan c:n hakemistoista.
Keksi itse jotain "mielenkiintoista" tekemistä d:nä; kokeile esim.
oikeuksien periyttämistä hakemistoja ja niiden tiedostoja luotaessa
(umask- tai Windows-mekanismeilla). Unixissa tee ajettava tiedosto, joka
sisältää komentotulkin kutsun. Tee tästä SUID-ohjelma ja anna kaikille
oikeus ajaa se. Aja sitä esim. a:na ja kirjoita jokin tiedosto. Katso,
mitkä tiedot se saa.
6. harjoitus 24.11.2005
- RAID-levystön luotettavuutta voidaan arvioida yksinkertaistaen
tarkastelemalla MTBF-arvoa eli odotusarvoa vikaantumisten väliajalle (mean
time between failures). Sen käänteisluku on vikaantumistiheys ja kun levyt
vikaantuvat toisistaan riippumatta (ainakin niillä RAID-tasoilla joilla
levyjä kuormitetaan tasaisesti) kokonaisuuden vikaantumistiheys saadaan
sen osien tiheyksien summana. Jos yhden levyn MTBF on puoli miljoonaa
tuntia, niin mikä on nelilevyisen RAID-järjestelmän MTBF (jos muut osat
jätetään huomiotta)?
Yhdistetyillä RAID-tasoilla 01 ja 10 voidaan käyttää neljää samanlaista
levyä. Miksi näitä mekanismeja em. laskelmasta huolimatta pidetään
luotettavampina kuin yhtä levyä? Mitä luotettavuus siis tarkoittaa? Kumpi
on parempi siinä suhteessa, 01 vai 10 ja miksi? (Lähteenä
The PC Guiden RAID-esittelyn sivu "0+1 ja 1+0" -- näistä tasoista on
myös sivulla "X+Y ja Y+X".)
- Kotitehtävä: Tutustu salaavan tiedostojärjestelmän toimintaan
käytössäsi olevalla koneella.
Tarkastele tiedostojen siirtämistä ja kopiointia sekä oikeuksien antamista
muille käyttäjille. Ota selvää miten salasanasi vaikuttaa EFS-järjestelmässä
olevaan julkiseen avaimen systeemiin.
- Kotitehtävä:
Etsi salauskäytäntöjen
VAHTI-ohjeen (3/2001) luvusta 4 asioita, joita kurssilla ei ole tullut esille.
- Seuraavassa on kopioituna em. VAHTI-suosituksesta yksi kappale sivulta 11.
Se on luvusta
"2 Suositukset", alaluvusta "2.3 Salauskäytännöt eri käsittelyvaiheissa",
alakohdasta "Viranomaisten ja kansalaisten / asiakkaiden välinen yhteydenpito"
ja johdantona sillä on "Esimerkkejä mahdollisista tuotteista on lueteltu
seuraavassa:"
Siirrettävien tietoaineistojen luottamuksellisuuden ja usein myös eheyden
turvaamiseen
voidaan käyttää toimikorttipohjaista (varmennesiru) ratkaisua, esimerkiksi
henkilön sähköinen todentamisen teknologiaa. Toimikorttiratkaisun (varmennesiru)
sijasta tai lisäksi voidaan käyttää käyttöjärjestelmiin tai selaimiin
integroituja, vahvaan salaukseen perustuvia turvaratkaisuja, tällä hetkellä
esimerkiksi Windows 2000 (W2K:n turvaamisominaisuudet puutteelliset ja
epästandardit) ja SSL/TLS. SSL ja SSH ovat turvattomia, jos asiakkaan ja
palvelimen välisen reitin kaikkiin väliasemiin ei voi luottaa. Ohjelmallisia
(selaimiin integroituja) varmenteita ei pitäisi hyväksyä vahvaan todentamiseen.
Käyttäjä ei voi olla varma, ettei hänen avaimiaan ole kopioitu ja siten hänen
identiteettinsä voi olla käytössä hänen tietämättään vaikka avainta ei olisi
sinänsä murrettu.
Etsi tästä tekstistä kolme virhettä. Koko dokumentti on spesifikaation tapaan
toisteinen ja yksi tämän kappaleen ongelmista toistuu myös sivuilla 26 ja 38.
- Sama alustusvektori ei saa toistua saman avaimen käytön aikana.
a) Jos näin tapahtuisi OFB- ja CTR-moodissa, tuloksena olisi sama avainvirta,
joka XOR-summataan kahteen eri selkotekstiin. Mitä etua tästä olisi
hyökkääjälle?
b) Vastaavaa ongelmaa ei esiinny CBC-moodissa, mutta siinä tulisi aika ajoin
samanlaista kryptotekstiä. Mitä se kertoisi hyökkääjälle?
c) Mitä keinoja on saada alustusvektori erilaiseksi?
- Materiaalissa on seuraava ylimalkainen esitys OCB-moodista (Offset
Codebook) salauksessa. Miten eheystarkistus ja salauksen purku
tapahtuvat?
Muut paitsi viimeinen kryptolohko saadaan kryptaamalla vastaava
viestilohko ikään kuin ECB:ssä mutta siten, että ennen ja jälkeen
kryptauksen bitteihin XOR-lisätään erikseen kutakin lohkoa varten laskettu
"offset". Se ei riipu viestistä mutta kylläkin avaimesta ja
alustusvektorista. Viimeistä kryptolohkoa tehtäessä viestilohkon bitit
eivät kuljekaan kryptoalgoritmin läpi, vaan sen tekevät bitit, jotka
koodaavat ao. lohkon pituuden. Sitä ennen niihin XOR-lisätään offset ja
muuan toinen vastaava ennalta laskettu bittijono. Kryptaustulokseen
XOR-lisätään offsetin sijasta viimeinen viestilohko. Tarkistussummana on
oleellisesti kaikkien viestilohkojen XOR-summa kryptattuna.
- RSA:n OAEP-salausskeemassa tapahtuu seuraavanlainen maskeeraus:
y = h1(N)+D
x = N + h2(y),
missä
+ tarkoittaa XOR-operaatioita;
h1 ja h2 ovat oikean mittaisiksi pidennetyt tai katkaistut
hash-funktiot;
D on salattava data, jossa on mukana täyte ja mahdollisen
lisätiedon tiiviste (lisätieto kerrotaan RSA-salauksen
ulkopuolella);
N on satunnainen siemenluku, nonce, jota ei kerrota
selväkielisenä.
RSA-salattavaksi viesti tulee 00 || x || y . Miten siitä saadaan data?
7. harjoitus 8.12.2005
- Salaisuuden jakamisessa voidaan saada yksinkertaisella tavalla aikaan
epäsymmetristä rakennetta antamalla yhdelle osapuolelle useampia kuin yksi
palanen. Mikä on tulos, jos (3,5)-kaavion mukaan jaetussa salaisuudessa yhdellä
on kaksi osaa ja kolmella muulla on yksi osa kullakin? Toimiiko vastaava
XOR-systeemissä?
- Valitse jokin salaisuus modulo 11, eli luku 0..10. Jaa se (3,n)-kaavion
mukaisesti osiin Shamirin polynomimenetelmällä avaruudessa modulo 11.
Anna kaverille kolme osaa eli lukuparia (x, polynomi arvolla x). Vastaanota
häneltä niinikään kolme osaaa ja selvitä mikä hänen salaisuutensa on.
- Piirrä kaavio autentikoinnin rakenteesta Passport-järjestelmässä käyttäen
perustana jaksoa "The Authentication Process" dokumentista ".NET Passport Review
Guide".
(Linkki
siihen löytyy myös luentotekstin esitiedosta "Kertakirjautuminen".)
- Voisiko tietoon perustuvaa autentikointia jaotella jotenkin toisin
kuin tekstissä? Mihin luokkiin sijoittuvat tekstissä "Bittipasseista
Kerberokseen" esitetyt mallit, joissa autentikoiva palvelin (S) uskoo
luotetun tahon (T) myöntämän sertifikaatin perusteella autentikoitavasta
asiakkaasta (C) tiedon X? Tarkastele seuraavien vaihtoehtojen eri
yhdistelmiä {a,b} X {i, ii, iii} :
Sertifikaatti on
(a) T:n digitaalisesti allekirjoittama,
(b) muodostettu C:n ja T:n yhteisellä salaisella avaimella.
Tieto X on
(i) C:n julkinen avain.
(ii) T:n generoima istuntoavain C:n ja S:n välille, ja S tietää, että C on
saanut sen tietoonsa, jos ja vain jos C:n käyttäjä tietää salasanansa
(joka on myös T:n tiedossa).
(iii) se, mitä Passport-tekniikan mukaisessa evästeessä välittyy S:lle.
-
Mihin tehtävän 4 kategoriaan TUPAS-järjestelmässä tapahtuva autentikointi
kuuluu?
(Lähteenä
pankkitekniikan esittely, jonka linkki löytyy myös luentotekstistä.)
8. harjoitus 15.12.2005, salissa TB110
Varsinaisiin tehtäviin on tällä kertaa aikaa vain 45 minuuttia. Siksi olisi hyvä
jos ehdit tarkastella niitä etukäteen. Kello yhdeksäksi siirrytään
tietokoneluokkaan TC221, jossa tutustutaan assistentin opastuksella
Tietoliikennetekniikan työkurssin VPN-työhön ja siinä käytettävän
IPSec-ohjelmiston ominaisuuksiin.
- Kotitehtävä: Tutki käytössäsi olevan koneen valmiuksia
IPSecin soveltamiseen. Missä käytät / voisit käyttää IPseciä?
- Oletetaan, että yrityksen sisäverkon ja Internetin välissä on sekä
palomuuri ja IPSec-toiminnan sisältävä yhdyskäytävä. Vertaile vaihtoehtoja
näiden kahden keskinäisessä sijoittelussa.
- Millä tavoin ESP:n eheystarkistus on kätevämpi kuin AH:n?
- Turva-assosiaatio SA on yksisuuntainen. Tiettyä SA:ta soveltavassa
viestissä esiintyy SPI, security parameter index, jonka on valinnut se
taho, jolle viesti on menossa.
a) Miksei SPI:tä ole valinnut se, joka lähettää viestin?
b) SA:n indeksoi SADB:ssä SPI, kohde-IP-osoite ja AH/ESP-tieto. Johda
multicast-lähetyksistä syy siihen, että IP-osoite tarvitaan tässä.
Protokolla-tieto tarvitaan, koska saman SPI:n saa valita eri
protokollille. Voisiko tämän välttää?
- Oletetaan, että jostain sovelluksesta lähetetään toisinaan
sellaista dataa, jolle tarvitaan ESP-salaus. Jos yleensä ei tarvita, mitä
keinoja on SPD-politiikkatietokannan valitsimilla hoitaa asia?
- Mikä hankaluus IKE-neuvottelun vastaanottajalle aiheutuu siitä, että
aloittajan ensimmäisen viestin kryptotarjous esiintyy myöhemmissä
viesteissä hash-funktion syötteenä?
- Kirjoita IKE-vaihto aggressiivisen moodin mukaisesti käyttäen
allekirjoituksiin perustuvaa autentikointia. Olisiko mahdollista, että
tässä tai main-moodissa toisen osapuolen autentikointi perustuisikin
julkisen avaimen salauksen purkuun?
- Miksei aggressiivisessa moodissa voi kryptotarjouksessa esiintyä
kuin yksi Diffie-Hellman-ryhmä? Oletetaan, että A:n aloite aggressiivisen
moodin IKE-vaihtoon epäonnistuu ja A tämän jälkeen yrittää uudelleen
esittäen kryptotarjouksen, jossa DH-ryhmä on pienempi kuin ensimmäisessä
yrityksessä. Mikä vaara tässä on verrattuna siihen, että A yrittäisi
uudelleen main-moodissa tarjoten kaikkia niitä DH-ryhmiä, joita A:lla on
käytössä?
9. harjoitus 22.12.2005 salissa TB110
- Kotitehtävä: Kokeile käytännössä .NET Passport -järjestelmää.
Ilman omaa passiakin saat selville joitakin turvajärjestelyjä, jotka liittyvät
salasanan unohtamistapauksiin.
- Kotitehtävä: Tutki, millä tavoin selainohjelmasi opastaa käyttäjää
ymmärtämään SSL-suojauksen merkityksen. Mitä uutta itse löydät?
Millaisia vasteita saat, kun joidenkin http-osoitteiden sijaan kirjoitatkin
https ja kääntäen? Mitä ne merkitsevät?
- Luonnostele erilaisia menettelyjä, joilla on seuraavanlainen
vaivannäyttö-ominaisuus: A lähettää viestin B:lle ja vastauksen saatuaan voi
ilman omaa lisävaivaa tietää, että B on joutunut toteuttamaan jonkin aikaa
vievän operaation. Ota lähtökohdaksi esim. HIP-protokolla haaste-vaste
-systeemi.
- Tekstissä "Krypto-ohjelmoinnista" (id=486) sanotaan:
"Luonnollisesti avainten ja datan eheyteenkin pitäisi kiinnittää huomiota,
mutta tämä on toissijainen ongelma tässä yhteydessä." Miksi näin on, vai onko
näin?
- Lue ensimmäinen sivu artikkelista Sewell & Vitek:
Secure Composition of Untrusted Code: Wrappers and Causality Types
(1999).
Pohdi sitten, millaisia suodattimia, wrappereita, PC:ssä ajettavien
epäluotettavien ohjelmien välissä tai ympärillä pitäisi olla, jotta
ohjelmissa olevat virheet ja Troijan hevoset eivät pääsisi aiheuttamaan
harmeja?
Käytännön taustaksi pohdinnoille voi ottaa vaikkapa tiedon, että
maailmalla on noin 35 000 ajuria Windows XP:hen ja niistä noin 120 000
versiota. Epäluotettavia ohjelmia siis riittää, ja niitä pystyy lataamaan
lisää toisten ohjelmien ollessa käynnissä.
- Johdannoksi seuraaviin luentoihin pohditaan yleisemmin, mitä
tarkoittaa tietoturvallinen ohjelma.
- Sopimuksen allekirjoittamista käsittelevässä tekstissä on viite
artikkeliin
Modular Fair Exchange for Electronic Commerce.
Tarkastellaan sen avulla reiluuden käsitettä ja menettelyjä, joilla sitä
voidaan tavoitella.
Fairness eli reiluus on sitä, että kahdesta kauppaa käyvästä osapuolesta
kumpikin tulee lopulta saaneeksi sen, mitä on sovittu tai kumpikaan ei
tule. Artikkeli määrittelee 7 tasoa vaihdon reiluudelle. Taso F0 on "ei
reiluutta". Muut on mainittu sekoitetussa järjestyksessä. Mitkä niistä
ovat tasot F1-F6? Ja missä artikkelin kuvan 1 vaiheissa kukin niistä
toteutuu?
Kuvan viisi moduulia muodostavat kaupankäynnin automaattisen systeemin.
Käytetään siitä tasojen määrittelyssä lyhennettä S ja tapauksessa, jossa
toinen osapuoli kokee jossain vaiheessa kärsineensä epäreiluutta, nimetään:
C = se joka ei ole kärsinyt
D = se osapuoli joka on kärsinyt
Tasot ovat:
- S pystyy takaamaan reiluuden automaattisesti tarjoamalla D:lle
kompensaation.
- reiluus pystytään takaamaan vain S:n ulkopuolella tarjoamalla D:lle
kompensaatio.
- S pystyy takaamaan reiluuden automaattisesti ilman C:n enempää
yhteistyötä.
- reiluus pystytään takaamaan vain S:n ulkopuolella mutta käyttämättä
hyväksi C:n yhteistyötä.
- S pystyy takaamaan reiluuden automaattisesti käyttäen hyväkseen C:n
yhteistyötä.
- reiluus pystytään takaamaan vain S:n ulkopuolella käyttäen hyväksi C:n
yhteistyötä.
10. harjoitus 12.1.2006
- Kotitehtävä: Tutustu sivustoon https://buildsecurityin.us-cert.gov.
Mitä käytännön apua ohjelmistosuunnittelija ja ohjelmoija voivat sieltä saada
turvallisen ohjelman tuottamiseksi?
- Tarkastellaan, millaista kehitystä Java-applettien turvamallissa on
tapahtunut versioiden 1.0, 1.1 ja 1.2 välillä
yleiskatsauksen perusteella.
- Kotitehtävä: Lue
tietojenkäsittelyn
turvallisuus -seminaarin raportista luku 7 eli tulkinta kirjan Graff, van
Wyk: "Secure Coding" luvusta "4 Implementation". Tiivistä siitä luettelo, jota
voi verrata luennolla esitettyyn Bishopin kirjan mukaiseen 18 toteutussäännön
luetteloon. (Huomaa, että suuri osa raportista kuuluu muutenkin kurssin
vaatimuksiin.)
- Katsotaan nyt myös (ja käännetään) Bishopin kirjan ohjelmointiin liittyvät
8 hallinnoinnin periaatetta. Suhteutetaan kaikki periaatteet oheiseen luennolla
esitettyyn jaotteluun käyttöjärjestelmien
yhteydessä ilmenevistä tietoturvaongelmista. Luettelon jokaisen rivin
alussa oleva '_' tarkoittaa sanaa 'väärä' tai 'epäasianmukainen'
- _ suoja-alueen alustus ja suojauksen pakottaminen
- _ suoja-alueen alkuvalinta
- _ toteutusyksityiskohtien kätkentä
- _ muutos
- _ nimeäminen
- _ käytöstä poisto tai hävittäminen
- _ validointi: operandit, riippuvuudet jonojen hallinnassa
- _ synkronointi
- _ jakamattomuus
- _ järjestys
- _ operandin tai operaation valinta
- Suhteutetaan artikkelissa
"A Software Flaw Taxonomy" (luvussa 2.2)
esitetty jaottelu muihin esillä olleisiin, erityisesti tehtävään 4.
- Mihin kategoriaan kuuluu seuraava ohjelmointiperiaate? Toimikortin
PIN-luvun syötön yhteydessä pitää ensin vähentää sallittujen
yrityskertojen laskuria, sitten tehdä tarkistus, ja jos PIN on oikein,
laskuria kasvatetaan. Tällöin hyökkääjä ei pääse resetoinnilla ohittamaan
laskurin pienentämistä, vaikka voisikin virrankulutuksesta pystyä
päättelemään, että PIN-arvaus ei onnistunut.
- IT
Press esittelee Howardin ja Leblancin kirjaa 'Ohjelmoijan tietoturvaopas'
näin:
"... kirja sisältää turvallisen sovelluksen rakentamisen periaatteet koko
kehitysprosessin kannalta. Se lähtee turvallisesta suunnittelusta ja päätyy
vakaan, hyökkäykset kestävän koodin kirjoittamiseen ja turvallisuusheikkouksien
testaukseen." Kuinka hyvin tämä sopisi tiivistämään sen mistä turvallisessa
ohjelmoinnissa on kyse? Esittelyssä sanotaan myös, että kirja tarjoaa
"ohjelmistojen suunnittelijoille, arkkitehdeille, ohjelmoijille ja testaajille
sitä koulutusta, teoriaa ja käytännön tekniikkaa, jota he tarvitsevat tehdäkseen
oikeat toimenpiteet ohjelmistonsa turvallisuuden varmistamiseksi." Arvioi tätä
mainoslausetta vastaavaan tapaan. (Kirja on nähtävästi käännös
Microsoft-painotteisesta teoksesta Writing Secure Code, 2nd ed. 2002)
- Mikäli aika riittää, tutustutaan luennolla mainittuun turvasuunnittelun
"malliratkaisukokoelmaan", erityisesti kohtaan "Secure Proxy" ja
vertaillaan siinä esitettyjä kuutta vaihtoehtoa peräkkäisten vahtien asentamiselle.
11. harjoitus 19.1.2006
Tutustutaan työasemaluokan TC 221 Linux-koneilla verkon työaseman tai
palvelimen turvaamiseen. Kuvitellaan, että on vastikään otettu käyttöön
uusi kone tai asennettu uusi käyttöjärjestelmä ja koneen kytkentä verkkoon
on jo tehty, samoinkuin tarpeellisten palvelujen lisääminen koneeseen.
Toteutetaan rajoittamisen periaatetta asettamalla koneeseen
pääsynvalvonnan mekanismeja sille mistä ja minne yhteyksiä voi olla ja
missä tarkoituksessa. Käyttäjäkohtaista pääsynvalvontaa ei toteuteta --
sitä tehtiin aiemmassa harjoituksessa ryhmittelyn ja tiedostojärjestelmän
pääsynvalvontalistoja avulla.
Tavoitteena ei ole oppia työkalujen käyttöä, vaan saada käsitys,
minkätyyppisiä käytännön toimia turvaamisprosessissa tarvitaan.
Turvaamisen kokonaisuudesta tässä keskitytään vain konfigurointiin ja
jätetään erityisesti seuranta tekemättä. Sellaiseen voisi käyttää mm.
seuraavia työkaluja: komento ps (process status); paketinnuuskija tcpdump
tai laajempi tunkeutumisen havainnoitsija Snort. Lisäksi kannattaa käyttää
Tripwire-työkalua eli ansalankaa paljastamaan, missä tärkeistä tiedostoista
on tapahtunut muutoksia. On tärkeää ymmärtää, millaista kokonaisuutta
tässä käsiteltävät työkalut ja esimerkkitilanteet edustavat ja mitä
senkin lisäksi kuuluu turvalliseen konfigurointiin. Tämän pohtiminen
olkoon harjoituksen viimeinen tehtävä.
- Tutkitaan mitä palveluja on auki, ts. mitä taustalla olevia
prosesseja on, joihin voidaan verkon yli ottaa yhteyttä erilaisilla
asiakasohjelmilla: työkaluina nmap ja lsof.
- Karsitaan koneen muille tarjomia palveluja siten, että
- pysäytetään niitä;
- estetään niiden automaattinen käynnistyminen: tiedosto /etc/inittab
tai
sen kautta viitatut run-level -hakemistot /etc/rc[0-6].d
- periaatteessa myös siten, että poistetaan niiden koodit.
"Tarkkailtaviksi" jätetään vain fingerd ja sshd.
- Rajoitetaan
- muiden pääsyä joihinkin tarjottaviin palveluihin käynnistämällä ne
tcpwrapperin kautta ja määrittämällä sille ehdot, joilla palvelu
käynnistetään: tiedostot /etc/inetd.conf , /etc/hosts.allow ja -deny
- liikennettä tietyistä lähteistä ja tiettyihin kohteisiin
iptables-ohjelman avulla. Tällä, toisin kuin tcpwrapperilla, voidaan estää
myös käyttäjän erikseen avaamien palveluiden käyttö politiikan
vastaisesti.
- Ohjataan tieto
- palvelujen käytöstä ja
- torjutuista yrityksistä
yhdelle koneelle syslog-ohjelmalla sekä palvelusta itsestään,
tcpwrapperista että iptablesista.
- Eri vaiheissa kokeillaan:
- Yritetään ottaa yhteyksiä
- Tarkastellaan syntyneitä lokitietoja
Tässä on joitakin luonnehdintoja käytettävistä työkaluista.
- Komento netstat tuottaa listan kaikista aktiivisista ja
odottavista TCP/IP-yhteyksistä koneen ja muiden Internetissä olevien
koneiden välillä (netstat -a, tuloksen LISTEN-rivit).
- Komento lsof (list open files), jos se on käytössä, kattaa
sen mitä netstat, mutta kertoo lisäksi, mikä prosessi kuuntelee mitäkin
porttia.
- Verkkokartoitin nmap (network mapper) on porttiskanneri, joka
käyttää useita eri mekanismeja selvittäessään, mitkä TCP-, UDP- ym. portit
ovat auki nimetyissä koneissa, ts. missä porteissa niissä on jokin
prosessi vastaamassa tavalla tai toisella. Vastauksista voidaan toisinaan
myös päätellä kohteen käyttöjärjestelmä. Se on alunperin hyökkääjien
kehittämä laajojen verkkojen tutkimiseen mutta sitä voi yhtä hyvin käyttää
yhden koneen porttien tutkimiseen. Tutkinta täytyy tietysti tehdä joltain
toiselta koneelta.
- Iptables on Linux-työaseman palomuuri, tai oikeastaan komento,
jolla suodatussäännöstö muodostetaan. Netfilter on ohjelma, joka tulkitsee
näitä sääntöjä ja sallii tai hylkää verkkoliikennettä työasemaan
(INPUT-sääntöketju) tai siitä pois (OUTPUT-ketju). Säännöt ajetaan
komentotiedostosta, kun iptables otetaan käyttöön -- myös esim.
uudelleenkäynnistyksen jälkeen. Komentojonoon lisätään sääntöjä
append-komennolla ja voimassa olevat säännöt saa näkyviin list-komennolla.
- Syslogd on ohjelma, joka kuuntelee toisten ohjelmien
lähettämiä tietoja ja tallettaa niitä paikkaan, joka kerrotaan tiedostossa
/etc/syslogd.conf.
12. harjoitus 26.1.2006
- Kotitehtävä: Tutki sivun
www.helsinki.fi/atk/tietoturva
antia tietoturvaa koskevan tiedon hankinnan näkökulmasta, erityisesti
- millaisia tiedonlähteitä on tarjolla
- millaiseen tietoturvayhteisöön pitäisi liittyä
- mitä sivustoja tietoturvavastaavan pitäisi seurata
- mitä työkaluja tietoturvatyössä voisi käyttää
Arvioi kyseisen sivun hyödyllisyyttä (suhteessa erilaisiin kohdeyleisöihin) ja
vertaa sitä joihinkin muihin vastaaviin linkkisivustoihin, esim.
www.eniro.fi/lo/tietokone_ja_internet/tietoturva_ja_virukset/.
Mitä vastaavia sivustoja löydät suomen kielellä?
-
Luetaan Valtion tietotekniikkahankintojen tietoturvallisuuden tarkistuslistaa
(VAHTI 6/2001).
Tehdään aluksi vertailu eri hankintatyyppien välillä ensin taustakysymysten
ja sitten yhteistyökysymysten osalta.
Tarkastellaan seuraavaksi hankinnan kohdetta koskevia kysymyksiä ja jokaisen
aiheen puitteissa pohditaan,
- miten tarkistuskysymysten vastauksista voisi vakuuttua?
- mitä tilaajatahon omassa tietoturvallisuudessa pitää tehdä, jotta
vastauksilla olisi merkitystä?
- löytyykö sellaisia asioita, joita tässä kurssissa ei ole käsitelty
lainkaan?
- Tarkastellaan, miten kurssi vastasi tavoitteitaan. Keskustellaan
harjoitustöistä. Laaditaan lisää tenttitehtäviä. Ratkaistaan epäselviksi
jääneitä asioita.
Jollei aiheita löydy, käytetään
apuna Tietoturvallisuuden hallintajärjestelmän arviointisuosituksen Liitettä 6
(VAHTI 3/2003,
joka on varsinaisesti esillä TT:n johtamisen kurssilla).
Siinä on yhteensä 61 kohtaa ja jokaisessa useita kysymyksiä, yhteensä 642.
Tässä on kevään 2004 kurssin viimeisessä harjoituksessa keksittyjä
tenttitehtäviä. Osa niistä oli vain otsikkomaisia, mutta useimpien määrittelyä
on tässä viety pitemmälle. Monet kysymyksistä koskettelevat tärkeitä asioita,
joskin useita aihepiirejä jää vielä ulkopuolelle. Vuoden 2005 kurssin jälkeen
todettiin, että jos allaoleviin osaa vastata, selvittää kyllä kaksi tai kolme
tentin viidestä tehtävästä. Nyt vuonna 2006 tilannetta voi hieman muuttaa
harjoitustöiden esiintyminen tentissä.
- Miksi tietoturvapolitiikka on tärkeä?
- Mihin tarvitaan uhka-analyyseja ja mihin uhkamalleja?
- Mitä ongelmia voi tulla uhkien toteutuessa, jos ei ole
tietoturvapolitiikkaa?
- Miten IT-laitetilojen kulunvalvonta pitäisi järjestää?
- Anomymiteetin takaaminen: keinot ja toteutustavat?
- Miten roskasähköpostia voidaan torjua?
- Mitä pitää ottaa huomioon, kun kasvokkain käytävissä neuvotteluissa
käsitellään arkaluonteisita asioita?
- Millä tavoin levymuistin RAID-tekniikka edistää tietoturvallisuutta?
Mitkä piirteet siinä ovat muuten mukavia mutta eivät tietoturvan kannalta?
- Miten turvakäyttöjärjestelmät eroavat tavallisista? Käytä
vertailukohtana (tavallisena) Windowsia, Unixia tai Linuxia.
- Miten puskurin ylivuodosta aiheutuvia tietoturvauhkia voisi estää?
- Mitkä ovat tärkeimmät tehtävät turvattaessa Internettiin
kytkettävää yrityksen sisäverkkoa?
- IPSecin perusideat?
- Mikä on IDS:n käyttötarkoitus?
- Mitä on nollatieto ja mihin sitä voi soveltaa?
- Mitä yhtymäkohtia on käsitteillä luotettu tietojenkäsittely ja
isoveli (se joka "valvoo")? Ensimmäinenhän on kai myönteinen ja
jälkimmäinen kielteinen, vai kuinka?
- Mitä kuuluu hyvään salasanajärjestelmään?
- Missä autentikointijärjestelmissä huomioidaan eri tahojen
hallinnassa olevat toimialueet?
- Mistä kaikesta voi olla kyse tiedon piilottamisessa -- erotuksena
sen salaamisesta?