APIt ja tietoturva

Jani Karhunen © 2016

## Kuka puhuu? [Jani Karhunen](https://janikarhunen.fi/) [@JaniKarh](https://twitter.com/JaniKarh)
## API-tyypit Yleisimmät 1. REST (Representational State Transfer) 2. SOAP (Simple Object Access Protocol) 3. RPC (Remote Procedure Call) Keskitytään RESTiin, tosin moni asioista pätee protokollasta ja teknologiasta riippumatta.
## Julkaisu- ja käyttövaihtoehdot Sisäinen vs. ulkoinen API? Käytetäänkö tunnistautumista vai ei? Avoin vai suljettu?
## Tietoturva ja APIn elinkaari 1. Suunnittelu 2. Toteutus 3. Tuotanto (ylläpito & muutokset) 4. Käytöstä poisto. > Tietoturvaa ei voi asentaa jälkikäteen.
## Lisäys edelliseen** API-hallinta voidaan joissakin tilanteissa "pultata" olemassaolevan tietoturvattoman APIn eteen ja siten parantaa rajapinnan tietoturvan tasoa. *Huom! Poikkeus. Ei saa olla sääntö toteuttaa itse APIt sinne päin, ja lisätä "tietoturva-feature" jälkikäteen.* **tietoturvaa jälkikäteen
## Hyvät käytännöt **API = web-sovellus** Samat periaatteet otettava huomioon. Esim. [OWASP TOP 10 Projekti](https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project)
## Salaus ### Liikenteen salaus Https (TLS) pitää olla oletus vähintään julkisissa verkoissa. ### Sisällön salaus Sisällön luottamuksellisuuden mukaan voi olla tarpeen salakirjoittaa myös sisältö (*payload*)
## Autentikaatio & autorisaatio Älä keksi pyörää uudelleen, hyviä tapoja on olemassa. Esim. - http basic - [JSON-webtoken](https://jwt.io/introduction/) - API-avaimet yleisesti käytössä, [muttei välttämättä hyvä tapa](http://nordicapis.com/why-api-keys-are-not-enough/). Valitse suojaustaso tarpeen (mm. käsiteltävä tieto) mukaan!
## Lokitus ja monitorointi (1/2) **Pakollinen**. Ei poikkeuksia. Toteuta riittävällä tasolla huomioiden mm.: 1. Raportointitarpeet esim. laskutusta varten 2. Poikkeamien havainnointi (esim. DDoS) 3. Ongelmanratkaisu, bugikorjaukset.
## Lokitus ja monitorointi (2/2) Muista EU:n Tietosuoja-asetus henkilötietojen käsittelyssä! Esimerkki: [Dynaaminen IP-osoite voi kuulua henkilötietojen piiriin](http://www.hackingthroughcomplexity.fi/2016/11/oikeustilaa-selventava-eu.html) Keskitetty lokienhallinta hyvä vaihtoehto paikallisten lokitiedostojen sijaan. Millä mekanismilla havaitset palvelussasi esiintyvät poikkeamat palvelutasossa ja tunnistat esim. tietomurrot tai palvelunestohyökkäyksen?
## Yhteenveto Hyödynnä suunnittelussa, kehityksessä ja ylläpidossa asiantuntijoita. Testaa. Auditoi. Dokumentoi.