Developers’ understanding on secure software development — How training affects software developers’ understanding of secure development lifecycle and software security
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2024-08-19
Department
Major/Subject
Security and Cloud Computing
Mcode
SCI3084
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
72+5
Series
Abstract
Secure Development Lifecycle (SDL) is a method of integrating software security into software development to help prevent security issues in a more proactive manner. As security issues are becoming more and more common, organisations need ways to tackle them. Software security is traditionally left as the responsibility of software developers with limited resources snd knowledge to implement it. SDL provides guidance and best practices to improve software security. This thesis studied how do developers comprehend the best practices of software security. More specifically, the aim of the study was to find out what are the best practices of SDL and how familiar developers are with the practices. Finally, it was studied if training has any effect on the developers’ understanding on SDL practices. The study was based on a self-learning training created for developers. The research included a literature review, a comparative study with surveys before and after the course, as well as semi-structured interviews for both developers who had completed the course and developers who had not enrolled on the course. The results of the study show that SDL consists of activities divided into six phases: analysis and planning, requirements definition, architecture design, implementation, testing and verification, as well as operation and maintenance. The most important activities are defining security requirements, conducting threat modelling, securing the software operating environment, and following secure development guidelines. They were presented by close to all SDL frameworks and most literature. Additionally, the study found that developers are not security experts, yet they claim most of the responsibility over software security for themselves. Developers who had completed the course placed more of the responsibility over software security to the parties in charge of granting and allocating resources. The study also concludes that training is an efficient way to educate developers on the concepts of software security and SDL in the short-term, but it is not enough to implement software security.Tietoturvallisen ohjelmistokehityksen elinkaari on malli ohjelmistoturvallisuuden sisällyttämiseksi ohjelmistokehitykseen tietoturvapoikkeamien ehkäisemiseksi. Organisaatiot tarvitsevat keinoja yhä yleistyviin tietoturvapoikkeamiin. Tyypillisesti ohjelmistoturvallisuus on vastuutettu ohjelmistokehittäjille ilman riittäviä resursseja turvallisuuden varmistamiseksi. Turvallisen ohjelmistokehityksen elinkaarimalli tarjoaa opastusta ja parhaita käytäntöjä ohjelmistoturvallisuuden parantamiseksi. Tämä opinnäytetyö tutki miten ohjelmistokehittäjät käsittävät ohjelmistoturvallisuuden parhaat käytännöt. Opinnäytetyön keskeisenä tavoitteena oli turvallisen ohjelmistokehityksen parhaiden käytänteiden määrittely sekä ohjelmistokehittäjien ymmärryksen selvittäminen. Lopuksi opinnäytetyö tutki, onko koulutuksella vaikutusta näiden käytänteiden ymmärtämiseen. Tutkimus perustui itseopiskeltavaan kurssiin, joka luotiin ohjelmistokehittäjille. Tutkimus suoritettiin kirjallisuuskatsauksella, vertaavilla kyselyillä ennen ja jälkeen kurssin suorittamisen, sekä puolistrukturoiduilla haastatteluilla kehittäjille, jotka olivat suorittaneet kurssin, ja kehittäjille, jotka eivät olleen suorittaneet kurssia. Tutkimuksen tulokset osoittavat, että tietoturvallisen ohjelmistokehityksen elinkaari koostuu toimista, jotka voidaan jakaa kuuteen vaiheeseen: analyysi ja suunnittelu, vaatimusmäärittely, arkkitehtuurin suunnittelu, toteutus, testaaminen ja varmentaminen, sekä toimitus ja ylläpito. Tärkeimmät toiminnot olivat tietoturvavaatimusten määrittely, uhkamallinnus, ohjelmiston ympäristön turvaaminen ja turvallisen ohjelmoinnin oppaiden seuraaminen. Nämä toimet esitettiin lähes jokaisessa viitekehyksessä ja useimmassa julkaisuissa. Tämä tutkimus osoittaa, että ohjelmistokehittäjät eivät ole tietoturva-asiantuntijoita, mutta he ottavat suurimman vastuun tietoturvasta harteilleen. Kurssin suorittaneet ohjelmistokehittäjät myös painottivat resursseja myöntävän ja allokoivat tahon vastuuta tietoturvassa. Tutkimuksesta voi päätellä, että kouluttaminen on tehokas tapa opettaa ohjelmistokehittäjille ohjelmistoturvallisuuden ja tietoturvallisen ohjelmistokehityksen elinkaaren käsitteitä, mutta se ei riitä ohjelmistoturvallisuuden takaamiseksi.Description
Supervisor
Suoranta, SannaThesis advisor
Jallow, MusaKeywords
software security, secure software development, secure development lifecycle, training