Lietojumprogrammu drošība salīdzinājumā ar programmatūras drošību: kāda ir atšķirība?

Monika Čakbortija

Termini “lietojumprogrammu drošība” un “programmatūras drošība” bieži tiek lietoti savstarpēji aizvietojami. Tomēr faktiski starp šiem abiem ir atšķirība. Informācijas drošības pionieris Gerijs Makgrevs apgalvo, ka lietojumprogrammu drošība ir reaģējoša pieeja, kas notiek pēc programmatūras ieviešanas. No otras puses, programmatūras drošība ir saistīta ar proaktīvu pieeju, kas notiek pirmsizvietošanas posmā.
Lai nodrošinātu programmatūras daļas drošību, visos programmatūras izstrādes dzīves cikla (SDLC) posmos ir jāiekļauj drošība. Tādējādi programmatūras drošība nav lietojumprogrammu drošība - tā ir daudz lielāka.

Lietojumprogrammu drošība kā programmatūras drošības apakškopa

Kā jūs jau zināt, lietojumprogrammas ir saites starp datiem un lietotāju (vai citu programmu).
Ja lietotājs vēlas, piemēram, veikt sarežģītu pacienta medicīniskās informācijas analīzi, to var viegli veikt ar lietojumprogrammas palīdzību, lai izvairītos no sarežģītiem, laikietilpīgiem manuāliem aprēķiniem. Tāpat tiešsaistes bankas darījums tiek veikts, izmantojot tīmekļa lietojumprogrammas vai mobilās lietotnes, un šajā procesā tiek apstrādāti, pārsūtīti un glabāti nepubliski finanšu dati.
Programmatūra neatzīst to datu jutīgumu vai konfidencialitāti, kurus tā apstrādā vai pārsūta internetā. Tādējādi programmatūra jāprojektē un jāattīsta, balstoties uz apstrādājamo datu jutīgumu. Ja dati tiek klasificēti kā “publiski”, tad tiem var piekļūt, nepieprasot lietotājam autentificēties. Viens piemērs ir informācija, kas atrodama vietnes kontaktu lapā vai politikas lapā. Tomēr, ja programmatūra veic lietotāju administrēšanu, tad, lai piekļūtu šai informācijai, ir paredzams, ka tā darbosies daudzfaktoru autentifikācijas metode. Balstoties uz lietojumprogrammā apstrādājamo datu klasifikāciju, lietojumprogrammai papildus drošas kodēšanas veikšanai ir jāizstrādā piemērota autentifikācija, autorizācija un datu glabāšanas vai tranzīta aizsardzība.
Lai aizsargātu programmatūru un ar to saistītos sensitīvos datus, katrā SDLC fāzē jāveic mērījums. Šis novērtējums plaši sadala jautājumus pirms un pēc izvietošanas attīstības fāzēs. Atkal programmatūras drošība nodarbojas ar pirmsizvietošanas jautājumiem, un lietojumprogrammu drošība rūpējas par pēcizvietošanas jautājumiem.

Programmatūras drošības (pirmsizvietošanas) darbības ietver:

- Droša programmatūras projektēšana
 - Drošu kodēšanas vadlīniju izstrāde izstrādātājiem, kas jāievēro
 - Drošu konfigurācijas procedūru un standartu izstrāde izvietošanas posmam
 - droša kodēšana, ievērojot noteiktās vadlīnijas
 - Lietotāja ievadīšanas pārbaude un piemērotas kodēšanas stratēģijas ieviešana
 - Lietotāja autentifikācija
 - Lietotāju sesiju pārvaldība
 - piekļuves kontrole funkciju līmenim
 - Spēcīgas kriptogrāfijas izmantošana, lai nodrošinātu datus miera stāvoklī un tranzītā
 - Trešo personu komponentu validācija
 - Jebkādu programmatūras dizaina / arhitektūras nepilnību arests

Lietojumprogrammu drošības (pēc izvietošanas) darbības ietver:

- Drošības testi pēc izvietošanas
 - programmatūras vides konfigurācijas trūkumu fiksēšana
 - ļaunprātīga koda noteikšana (izstrādātājs to ir izveidojis, lai izveidotu aizmugures durvis, laika bumbu)
 - ielāps / jauninājums
 - IP filtrēšana
 - bloķējiet izpildāmās lietas
 - Programmu uzraudzība izpildlaikā, lai ieviestu programmatūras lietošanas politiku

Lai iegūtu vairāk norāžu, pārskatiet ēkas drošības modeli (BSIMM).

1. scenārijs: tīmekļa lietojumprogrammu drošība
 
Web lietojumprogrammas visbiežāk ir klienta-servera lietojumprogrammas, kurās pārlūks darbojas kā klients, nosūtot pieprasījumus un saņemot atbildes no servera, lai lietotājam sniegtu informāciju. Tāpēc tīmekļa lietojumprogrammu drošības problēmas ir saistītas ar klienta puses problēmām, servera puses aizsargāšanu un datu aizsardzību miera stāvoklī un tranzītā.
Klienta puses problēmas ir grūtāk novērst, ja vien lietotāja interfeisa projektēšanas laikā netiek ņemti vērā piesardzības pasākumi. Kā piemēru var minēt vietņu skriptus uz DOM, kuros DOM objekta vērtība tiek iestatīta no cita DOM objekta, kuru var modificēt, izmantojot Javascript. Mūsdienu pārlūkprogrammas vairāk aizsargā programmas, taču daudzas lietojumprogrammas joprojām atbalsta atpakaļejošu savietojamību, iekļaujot plašāku lietotāju loku, vecākas pārlūku versijas un nedrošus klientu datorus. Tāpēc klienta puses komponentiem ir jāīsteno drošība jau projektēšanas posmā, apsverot šos jautājumus.
Servera puses komponentus var aizsargāt, ieviešot pretpasākumus lietojumprogrammu izstrādes un kodēšanas fāzēs. Tas prasa, lai būtu instalēta droša sistēmas / servera programmatūra. Novecojusi servera programmatūra, piemēram, Apache Tomcat (3.1 un vecāka), vairs netiek oficiāli atbalstīta, un šīm versijām var būt nepaziņota ievainojamība. Tie nekavējoties jājaunina uz jaunāko versiju.

Citas izplatītas infrastruktūras drošības ievainojamības ir šādas:

- Verbose servera reklāmkarogs
 - To lapu kešatmiņā, kas ļauj datus glabāt lokāli un tranzītā
 - Vājas šifru paketes, kuras atbalsta serveris
 - iekšējā tīkla adreses, kuras atklāj sīkfaili
 - Sīkdatņu drošība

2. scenārijs: mobilo lietojumprogrammu drošība

Mūsdienās mobilajām sistēmām, piemēram, viedtālruņiem un planšetdatoriem, kurās tiek izmantotas dažādas operētājsistēmas un drošības dizaini, ir lielāka pretestība nekā tīmekļa lietojumprogrammām. Šīs ierīces un lietojumprogrammas, kas darbojas šajās ierīcēs, var radīt milzīgu risku to glabātajiem sensitīvajiem datiem. Biznesa e-pastus un personiskos kontaktus var atklāt neuzticami tīkli. Šīs lietojumprogrammas mijiedarbojas arī ar daudziem atbalsta pakalpojumiem. Ierīces var nozagt. Var instalēt ļaunprātīgu programmatūru. Mobilās lietotnes var mainīt, lai piekļūtu sensitīvajiem korporatīvajiem datiem. Šīs ir tikai dažas no iespējām. Turklāt dažas mārketinga lietojumprogrammas, kas darbojas mobilajās ierīcēs, var apkopot personisku vai profesionāli sensitīvu informāciju, piemēram, īsziņas, tālruņu zvanu vēsturi un kontaktinformāciju.

Riska faktori mobilajā programmatūrā ietver:

- lietojumprogrammu kodēšana
 - lietojumprogrammu izplatīšana
 - lietojumprogrammu konfigurācija
 - ierīces konfigurācija

Mobilās lietojumprogrammas jāprojektē ar iebūvētām Saknes / Jailbreak atklāšanas iespējām, pretestības viltojumiem pret reverso inženieriju, daudzslāņu autentificēšanai, izmantojot balsi, pirkstu nospiedumiem, attēlam un ģeogrāfiskajai atrašanās vietai. Nemaz nerunājot par to, ka viņiem jāievēro drošas kodēšanas vadlīnijas.
Dažādu mobilo ierīču pārdevēju lietojumprogrammu veikali izmanto dažādus drošības pārbaudes procesus. Izplatīšanas laikā ir jāpārliecinās, ka lietojumprogrammas netiek bojātas. Šajā posmā īpaši svarīga ir pretestība pret viltojumiem.
Ierīces, kurās darbojas šīs lietojumprogrammas, izmanto savas sistēmas programmatūru, un tās var būt konfigurētas nedroši. Ierīču konfigurācijas, kas saistītas ar lietojumprogrammu koda aizsardzību, sakņu / ļaunprātīgas programmatūras noteikšanu, autentificēšanu un kanālu pārbaudi, jāveic pēc mobilās ierīces konfigurācijas standartiem. Šeit ir svarīgi atzīmēt ne tikai lietojumprogrammu; arī mobilā programmatūra ir jāizstrādā, ņemot vērā visas šīs iespējas, un tā ir jākonfigurē drošā veidā.
Drošības pasākumu ieviešana mobilajās lietojumprogrammās ir grūtāka nekā tīmekļa lietojumprogrammās. Mobilājās lietojumprogrammās vairāk nekā tīmekļa lietojumprogrammās ir vajadzīgi tādi pasākumi kā koda aizslēpšana un viltojuma noteikšana (lai izvairītos no koda viltošanas).

Lietojumprogrammu pārbaudes veidi

Pārbaude paredzēta, lai atklātu ieviešanas kļūdas, dizaina un arhitektūras nepilnības un nedrošas konfigurācijas. Šeit ir daži efektīvi lietojumprogrammu drošības pārbaudes veidi:

  1. Statiskā lietojumprogrammu drošības pārbaude (SAST) koncentrējas uz avota kodu.
  2. Dinamiskā lietojumprogrammu drošības pārbaude (DAST) ir vērsta uz lietojumprogrammā un infrastruktūrā esošo ievainojamību noteikšanu.
  3. Interaktīvā lietojumprogrammu drošības testēšana (IAST) izmanto gan DAST, gan SAST kombināciju un veic uzvedības analīzi, lai noteiktu datu plūsmu, ievadi / izvadi utt.
  4. Runtime Application Self Protection (RASP) ļauj lietojumprogrammām sevi aizsargāt, izmantojot lietojumprogrammu izpildlaika dzinēja drošības funkcijas, piemēram, sesijas pārtraukšanu, lietojumprogrammas pārtraukšanu, paziņojumus par kļūmēm utt.

To sakot, ir svarīgi atzīmēt, ka lietojumprogrammu drošība ir tikai viena no daudzajām programmatūras drošības jomām.

Programmatūras riski ietver:

- Web / nav tīmekļa lietojumprogramma / infrastruktūra
 - Nedrošs dizains
 - nepareiza konfigurācija
 - tehnoloģijas ierobežojumi
 - Pārraides šifrēšana
 - Back-end datu bāzes drošība

Kā redzams divos iepriekš aprakstītajos scenārijos, lietojumprogrammu testēšana tīmekļa un mobilo lietojumprogrammu pēcizvietošanas fāzē daudzējādā ziņā atšķiras. Mobilās lietojumprogrammas ir vairāk pakļautas viltojumiem nekā tīmekļa lietojumprogrammas. Turklāt mobilo ierīču aparatūras drošība ir galvenais mobilo lietojumu drošības faktors.

Kur tīkla drošība iekļaujas šajā visā?

Par programmatūras drošību ir izplatīts nepareizs uzskats, ka perifērijas pretpasākumi, piemēram, ugunsmūri, ir pietiekami labi, lai ierobežotu lietojumprogrammas izpildi vai datu apstrādi konkrētās lietotnēs. Uzņēmumi tērē daudz, lai ieviestu tīkla drošības pretpasākumus (piemēram, maršrutētāji, kas var novērst atsevišķa datora IP adreses tiešu redzamību internetā).

Pie citiem izplatītiem pretpasākumiem pieder:

- Parastie ugunsmūri
 - Šifrēšanas / atšifrēšanas programmas
 - Pretvīrusu programmas
 - Spiegprogrammatūru atklāšanas / noņemšanas programmas
 - Biometriskās autentifikācijas sistēmas
 - Datu analīze un datu zaudēšanas novēršanas rīki

2015. gada Verizon datu pārkāpuma ziņojums parāda tikai 9,4% tīmekļa lietotņu uzbrukumu dažādu veidu incidentos. Organizācijas programmatūras drošības iniciatīvai (SSI) ir jāraugās ārpus lietojumprogrammu drošības un jāizmanto holistiska pieeja, paredzot visa veida programmatūru.

[tweetthis remove_hidden_hashtags = ”true”] # Appsec un #Swsec bieži tiek lietoti savstarpēji aizstājami. Tomēr pastāv ievērojama atšķirība. Lūk, kāpēc: [/ tweetthis]

Lietojumprogrammu drošība salīdzinājumā ar programmatūras drošību: to apkopošana

Droša lietojumprogrammas projektēšana un kodēšana nav vienīgais veids, kā nodrošināt lietojumprogrammu. Droši jākonfigurē infrastruktūra, kurā darbojas lietojumprogramma, kā arī serveri un tīkla komponenti. Lai lietojumprogramma būtu pēc iespējas drošāka, ir jāņem vērā visu lietojumprogrammu un serveru konfigurācijas, pārraides šifrēšana, autentifikācijas akreditācijas saglabāšana un piekļuves kontrole datu bāzei, kurā tiek glabāti akreditācijas dati un šifrēšanas atslēgas.
Lai uzturētu programmatūras drošības augstāko līmeni, ir jāaizsargā gan programmatūra, gan infrastruktūra, kurā programmatūra darbojas. Tas ietver gan programmatūras drošību (projektēšanas, kodēšanas un testēšanas fāzēs), gan lietojumprogrammu drošību (testēšana pēc izvietošanas, uzraudzība, labošana, jaunināšana utt.). Programmatūras drošība ir saistīta ar holistisku pieeju organizācijā, lai uzlabotu tās informācijas drošības stāvokli, aizsargātu aktīvus un ieviestu nepubliskas informācijas privātumu; tā kā lietojumprogrammu drošība ir tikai viena joma visā procesā.

Lietojumprogrammu drošība ir tikai pirmais solis programmatūras drošības braucienā. Uzzināt vairāk.