Biztonságos programozás
A biztonságos programozás egy olyan szoftverfejlesztési technika , amely megakadályozza a sebezhetőségek véletlen bejutását , valamint védelmet nyújt a rosszindulatú programokkal és az illetéktelen hozzáféréssel szemben . A szoftverhibák és logikai hibák a szoftversebezhetőség fő okai.
A biztonságos szoftver olyan szoftver, amelyet egy sor intézkedéssel fejlesztettek ki, amelyek célja a program sebezhetőségeinek megjelenése és megszüntetése [1] .
A biztonságos programozás feladata a felhasználói adatok megóvása a lopástól és sérüléstől, a rendszer feletti ellenőrzés fenntartása. A nem biztonságos programok potenciális célpontok a támadók számára, akik a meglévő biztonsági rések segítségével megtekinthetik, módosíthatják vagy törölhetik a meglévő információkat, befolyásolhatják a programok és szolgáltatások működését (indítás vagy leállítás), valamint rosszindulatú kódokat juttathatnak be a rendszerbe [2] .
Terminológia
Az angol szakirodalomban két kifejezést lehet biztonságos programozásnak fordítani.
A defenzív programozás egy olyan szoftverfejlesztési alapelv , amelyben a fejlesztők igyekeznek minden lehetséges hibát és meghibásodást figyelembe venni, azokat a lehető legnagyobb mértékben elkülöníteni, és ha lehetséges, meghibásodás esetén helyreállítani a program teljesítményét. Ez stabilabbá és kevésbé sebezhetővé teszi a szoftvert. Ennek az elvnek egy hardveres megvalósítása például egy watchdog időzítő , ellenőrzőösszeg számítás - a csomag adatátviteli hibák észlelésére [3] .
A biztonságos kódolás egy technika olyan programok írására , amelyek ellenállnak a rosszindulatú programok és a behatolók támadásainak. A biztonságos programozás segít megvédeni a felhasználói adatokat a lopástól vagy a sérüléstől. Ezenkívül egy nem biztonságos program hozzáférést biztosíthat a támadónak a felhasználó szerverének vagy számítógépének vezérléséhez; A következmények az egy felhasználó szolgáltatásmegtagadásától az érzékeny információk kompromittálásáig , a szolgáltatás elvesztéséig vagy több ezer felhasználó rendszerének károsodásáig terjedhetnek [2] .
Fontosság
A rendszer biztonságának és működőképességének biztosításának kérdése a tervezési szakasz ( rendszertervezés ) szerves részét képezi) [4] . Az egyes informatikai termékekre és rendszerekre vonatkozó biztonsági követelményeket a meglévő és előre jelzett biztonsági fenyegetések, a követett biztonsági politika , valamint az alkalmazási feltételek figyelembevételével határozzák meg [5] . A biztonsági megoldások bevezetése a rendszer kifejlesztése után bonyolult és költséges. Ezért a biztonsági követelményeket kezdettől fogva figyelembe kell venni a rendszer teljes életciklusa során [4] .
Az információs rendszer fizikai és logikai szintre oszlik. Annak megértése, hogy pontosan mit kell védeni a külső tényezőktől, segít a védekezési intézkedések leghatékonyabb kiválasztásában és alkalmazásában. A szintek közötti világos határvonalat a fizikai határokkal rendelkező információs és információs technológiák bizonyos halmazát szabályozó biztonsági politikának kell meghatároznia . További bonyodalom, hogy ugyanaz a számítógép vagy szerver tud nyilvános és privát információkat is tárolni. Ennek eredményeként több biztonsági házirend is alkalmazható ugyanarra a gépre vagy ugyanazon a rendszeren belül. Ezért egy információs rendszer kidolgozásakor figyelembe kell venni a biztonsági határokat, és azokat a vonatkozó dokumentációban és rendszerbiztonsági szabályzatokban le kell írni [4] . Fejlesztőinek biztosítaniuk kell a rendszer biztonságát tervezés , fejlesztés , kezelés és konfigurálás , integráció során ., megfelelően tesztelje [6] .
Az elemzés (kézi vagy automatikus) és a biztonság költséges eljárás, amely növeli a szoftvertermékek összköltségét . Korábban a kockázatok teljes kiküszöbölése a biztonság közös célja volt. Ma már elismert tény, hogy minden kockázat kiküszöbölése nem költséghatékony. Minden javasolt ellenőrzési rendszer esetében költség-haszon elemzést kell végezni. Egyes esetekben a biztonságosabb rendszer előnyei nem indokolják a közvetlen és közvetett költségeket. Az előnyök nem csak a pénzbeli veszteségek megelőzését jelentik; Érdemes megfontolni például a hírnév elvesztését. A közvetlen költségek magukban foglalják a technológia beszerzésének és telepítésének költségeit; A közvetett költségek közé tartozik a rendszer teljesítményének csökkenése és az alkalmazottak további képzése [7] .
Alapelvek
Jelenleg számos technológia létezik a biztonságos szoftverek fejlesztésére . De van egy sor alapelv, amelyet minden megközelítés figyelembe vesz [8] :
- teljesítmény és hasznosság ( usability , angol usability ) ;
- biztonság ( angol biztonság ) - a külső fenyegetések, támadások elleni védelem és a teljesítmény fenntartása azok tükrözése és megszüntetése után;
- megbízhatóság ( angolul reliability ) - kiszámítható, helyes és hibamentes viselkedés hibás kezdeti adatok esetén;
- titkosság ( angolul privacy ) - a biztonságos és korrekt munkavégzés biztosítása bizalmas információkkal;
- Az üzlet integritásának és korrektségének biztosítása ( angol business integrity ) - a program karbantartásának egyértelmű megszervezése, az átláthatóság, a jogszerűség, a felhasználó munkájának helyességének ellenőrzése.
Az utolsó négy minőség a megbízható számítástechnika (TwC) ( Eng. Trustworthy computing ) („Computations that are trustworthy”) – a Microsoft Corporation kezdeményezéseinek alapja, amelynek fő feladata, hogy felhívja a fejlesztők figyelmét a ezen követelmények biztosítása a szoftverfejlesztés minden szakaszában [9] .
Számos szoftverbiztonsági elv létezik, amelyek többsége hasonló egymáshoz. Általánosításuknak tekinthetjük a fenti elveket [10] .
A sérülékenységek osztályozása és típusai
Osztályozók
A szabványosított biztonsági résleírások használata leegyszerűsíti az információbiztonsági szakemberek munkáját. Jelenleg számos népszerű osztályozó létezik [11] :
- CVE (Common Vulnerabilities and Exposures) – adott termékek konkrét sebezhetőségeinek szótára;
- CWE(Common Weakness Enumeration) – a sebezhetőség típusainak adatbázisa. A projekt fő célja, hogy leírásokat adjon a sérülékenységek gyakori típusairól, azok megelőzésének, felderítésének és javításának módjairól;
- Security Focus BID;
- OSVDB(Open Sourced Vulnerability Database) – „a sebezhetőségek nyílt adatbázisa”, amelyet három non-profit szervezet hozott létre. 2016. április 5-én leállt. A blog tovább működik [12] ;
- Secunia - a jól ismert dán Secunia cég sebezhetőségeinek szalagja a számítógép- és hálózatbiztonság területén;
- IBM ISS X Force.
A modern kódelemzők és automatizált auditorok hasonló sebezhetőségi alapokat tudnak kihasználni. Ez növeli a termékbe vetett bizalom szintjét, és fontos lehet a szoftvertermékben található sebezhetőségekről szóló jelentéseknél is [13] .
Vannak más osztályozók is. A velük való munka során figyelni kell a szerzőkre, hiszen minden osztályozási rendszert e terület szakértőinek kell elkészíteniük [14] .
Metrikák
Minden program potenciális célpont a támadók számára. Miután az alkalmazásokban vagy szolgáltatásokban sebezhető pontokat találtak, megpróbálják felhasználni azokat bizalmas információk ellopására, adatok megsértésére, számítógépes rendszerek és hálózatok vezérlésére [15] . A sérülékenység tulajdonságainak leírására a szakértők a CVSS sebezhetőségi kockázati rendszert használják . Ez egy skála, amely alapján a pontszámokat adják. A mérőszámrendszert úgy alakították ki, hogy a sebezhetőségek kijavítását előnyben részesítse. Minden skála egy adott szemantikai szakaszra utal, amelyet metrikának neveznek. Három ilyen mérőszám létezik [16] [17] [11] :
- Base ( angol alap ) - sebezhetőségi jellemzők, amelyek nem függnek az időtől és a végrehajtási környezettől. Leírja a sebezhetőség kihasználásának nehézségeit, az információk bizalmasságának, integritásának és elérhetőségének lehetséges károsodását;
- Időbeli ( angolul temporal ) - olyan mérőszám, amely figyelembe veszi az időtényezőt, például a sebezhetőség javításának idejét;
- Kontextuális ( angol környezeti ) - egy mérőszám, amely figyelembe veszi a szoftver környezetével kapcsolatos információkat.
Az utolsó két mérőszám segéd jellegű, és csak az alapmetrika mutatóinak beállítására szolgál, különféle sajátosságok figyelembevételével [18] .
A sérülékenységek típusai
A modern programok biztonságát veszélyeztető gyakori hibák listája [19] :
- SQL kód implementálása ( eng. SQL injekció );
- webszerverekhez kapcsolódó sebezhetőségek ( XSS , XSRF , HTTP kérés felosztása ( HTTP válasz felosztás ));
- webkliens sebezhetőségei ( DOM XSS );
- puffer túlcsordulás ( angolul Buffer Overflow );
- formátum string hibák [20] ( Uncontrolled format string );
- integer overflows ( eng. Integer overflow );
- a kivételek és hibák helytelen kezelése ;
- parancsinjektálás (parancsinjektálás, eng. Command injekció );
- információszivárgás ( angol Information Exposure );
- verseny állapota ; _ _
- rossz használhatóság [21] ( Insufficient Psychological Acceptability );
- kód végrehajtása emelt jogosultságokkal ( eng. Execution with Unnecessary Privileges );
- nem védett adatok tárolása ( védelmi mechanizmus meghibásodása );
- mobilkód problémák( Eng. Mobile Code Issues );
- gyenge jelszavak ;
- gyenge véletlenszámok;
- a kriptográfiai algoritmusok rossz választása;
- nem biztonságos kriptográfiai megoldások használata;
- nem védett hálózati forgalom ( érzékeny információk egyértelmű szöveges továbbítása ) ;
- a PKI ( angol helytelen tanúsítvány érvényesítése ) helytelen használata ;
- bizalom a hálózatnév-feloldási mechanizmusban ( eng. Reliance on Reverse DNS Resolution ).
Lehetetlen felsorolni az összes ismert sebezhetőséget , mivel minden nap újak jelennek meg. Ez a lista olyan gyakori sebezhetőségeket tartalmaz, amelyeket könnyű elkövetni, de amelyek következményei katasztrofálisak lehetnek. Például a Blaster féreg terjedését mindössze két kódsoros hiba okozta [22] .
Védekezés
A hibák és sebezhetőségek elleni védekezés helyes stratégiája a megelőzés és a megelőzés. Ehhez a fejlesztőnek folyamatosan ellenőriznie kell a bemeneti adatokat. Például a puffertúlcsordulási támadások elleni védekezés legjobb módja annak biztosítása, hogy a bemeneti adatok ne haladják meg annak a puffernek a méretét, amelyben azokat tárolják. Az adatbázisba küldeni kívánt adatok ellenőrzést igényelnek a támadások, például az SQL-befecskendezés elleni védelem érdekében. Ha adatokat küldenek egy weboldalra, akkor azokat XSS ellen kell érvényesíteni . A túlzott számú ellenőrzés azonban megnehezíti a program forráskódjának fejlesztését, és új hibák megjelenéséhez vezethet, ezért ezt a stratégiát másokkal kell kombinálni [23] .
A hibavédelmi mechanizmusokat a fordítóprogram vagy az operációs rendszer biztosíthatja . A GCC fordító lehetővé teszi a _builtin_object_size () függvény használatával egy objektum méretét az objektumra mutató mutató segítségével, így használata biztonságosabbá teszi a másolási eljárást. Az MSVC a /RTCs jelző használatakor lehetővé teszi a fordítási idő ellenőrzését a helyi változók túlcsordulása, az inicializálatlan változók használata és a veremmutató-sérülések nem egyező hívási konvenciói miatt. A CRED (C range error detector) technológia és a verem védett szakasza előtti speciális betétek ( StackGuard , SSP ) alkalmazása részben lehetővé teszi a tömb túlcsordulásával és verem pusztításával kapcsolatos támadások észlelését és megelőzését [24] .
Az operációs rendszer a program végrehajtását is szabályozhatja. Ez a stratégia akkor lehet hasznos, ha a program forráskódja ismeretlen. Az ASLR (Address Space Schema Randomization) egy operációs rendszer biztonsági funkciója, amely megakadályozza tetszőleges kód futtatását. Az ASLR jelenleg Linuxon és Windowson is támogatott . A biztonsági szint növelése nem végrehajtható veremtechnológiák használatával érhető el: W^X, PaX [24] .
A webszolgáltatások elleni tipikus támadások az SQL injekció, az XSS, a CSRF és a clickjacking . A modern keretrendszerek segítenek a fejlesztőknek biztonságos webalkalmazások létrehozásában. A kész megoldások használata lehetővé teszi, hogy ne foglalkozzon a bejövő adatok számos ellenőrzésével: a HTTP kérések fejlécétől a tartalmukig. Biztonságosabb módszert biztosít az adatbázissal való munkavégzéshez is - ORM [25] [26] .
Kár
A sebezhetőségekre vonatkozó információkat a támadók vírusok írására használhatják fel . Például az egyik első ismert hálózati féreg ( a Morris vírus ) 1988-ban kihasználta a Unix finger démon biztonsági réseit, például puffertúlcsordulást , hogy szétterjedjen a gépek között. Akkor a fertőzött autók száma körülbelül 6 ezer [27] volt , a gazdasági kár pedig az USA Számvevőszéke szerint 10 és 100 millió dollár között mozgott [28] .
2016 -ban a számítógépes vírusok 450 milliárd dolláros kárt okoztak a világgazdaságban [29] [30] .
2017-ben a WannaCry vírus okozta kárt 1 milliárd dollárra becsülték. Legalább 150 országban jelentettek fertőzést [31] [32] [33] . A vírus az EternalBlue exploitot használta, kihasználva az SMB protokoll puffertúlcsordulási sebezhetőségét [34] [35] [36] [37] .
Jegyzetek
- ↑ GOST R 56939-2016, 2016 , Kifejezések és meghatározások, pp. 2.
- ↑ 1 2 Bevezetés a biztonságos kódolási útmutatóba .
- ↑ Védekező programozás .
- ↑ 1 2 3 Mérnöki alapelvek az információtechnológiai biztonsághoz, 2004 , Biztonsági alapok. 2. alapelv, pp. 7.
- ↑ Informatikai biztonsági értékelési kritériumok, 2002 , Általános rendelkezések, pp. III-IV.
- ↑ Mérnöki alapelvek az információtechnológiai biztonsághoz, 2004 , Biztonsági alapok, pp. 6-8.
- ↑ Mérnöki alapelvek az információs technológia biztonságához, 2004 , Biztonsági alapok. 5. alapelv, pp. nyolc.
- ↑ Modern technológiák megbízható és biztonságos programok fejlesztéséhez, 2008 , pp. 25-26.
- ↑ Modern technológiák megbízható és biztonságos programok fejlesztéséhez, 2008 , pp. 26.
- ↑ Biztonságos programozás HOGYAN - Biztonságos szoftver létrehozása, 2015 , Biztonsági alapelvek, pp. 7-8.
- ↑ 1 2 Hacker magazin: Mérjük a sebezhetőségeket, 2009 , pp. 48-51.
- ↑ OSVDB: FIN, 2016 .
- ↑ Hacker Magazin: Sebezhetőségek mérése, 2009 , Osztályozók használata szkennerekben, pp. 51: „A modern automatizált auditorokat általában egy adott tudásbázisra szabják. Először is tekintélyes, másodszor pedig hasznos. Például, amikor valamelyik modern szabvány (NERC-CIP, PCI , FISMA, GLBA vagy HIPAA) szerinti tanúsításra készül, az adminisztrátor lehetőséget kap arra, hogy a könyvvizsgáló által kiállított dokumentumnak megfelelő mintajelentést kapjon.
- ↑ Hacker Magazin: Sebezhetőségek mérése, 2009 , Válogatott osztályozások, pp. 51: "Néha teljesen saját készítésű besorolásokat lehet látni a weben... Természetesen egy ilyen rendszernek nincs nagy súlya, mert valódi szakértőknek kell összeállítaniuk, akik értik a probléma lényegét."
- ↑ Bevezetés a biztonságos kódolási útmutatóba , egy pillantásra.
- ↑ Common Vulnerability Scoring System, 2006 , 86. o.
- ↑ CVSS: Specifikáció .
- ↑ CVSS: Specifikáció , 1.2. Pontozás: "Az alapmutató pontosítható időbeli és kontextuális mutatók kiszámításával, hogy jobban tükrözze a sebezhetőség által a felhasználó számára okozott kockázatot."
- ↑ A szoftverbiztonság 24 halálos bűne: programozási hibák és kijavításuk, 2009 , Bevezetés.
- ↑ Formátumkarakterlánc sebezhetőség keresési módszere, 2015 , Bevezetés: „Még a 90-es évek munkáiban is kimutatták, hogy a formátumkarakterlánc helytelen használata komoly szoftverbiztonsági sérülékenységekhez vezethet, például tetszőleges kódfuttatáshoz, jogosultságok kiszélesítéséhez és érzékeny adatok."
- ↑ The Protection of Information in Computer Systems, 1975 , h) Pszichológiai elfogadhatóság: „Nagyon fontos, hogy a felhasználói felület felhasználóbarát legyen, hogy a felhasználók intuitív módon és egyszerűen a megfelelő módon alkalmazzák a védelmi mechanizmusokat. Ha a felhasználó mentális ábrázolásai a védelmi célokról összhangban vannak a gyakorlatban használt mechanizmusokkal, a hibák száma minimálisra csökken. Ha a felhasználónak a védelemmel kapcsolatos elképzeléseit a specifikációk egy teljesen más nyelvére kell lefordítania, akkor elkerülhetetlenül hibázik.
- ↑ Biztonságos kódolás C és C++ nyelven, 2013 , 1.2. ábra. A W32.Blaster.Worm által kihasznált logika hibája: "A W32.Blaster.Worm féreg által kihasznált logikai hibák a 2. ábrán láthatók. 1.2. A hiba az, hogy a 21. és 22. sorban lévő while ciklus (amely a gazdagép nevének egy hosszú karakterláncból való kinyerésére szolgál) nincs eléggé lehatárolva."
- ↑ Biztonságos kódolás C és C++ nyelven, 2013 , 2.6 Futásvédelmi stratégiák: Bemeneti ellenőrzés.
- ↑ 1 2 Biztonságos kódolás C és C++ nyelven, 2013 , 2.6 Runtime Protection Strategies.
- ↑ Django Security .
- ↑ Ruby on Rails Security .
- ↑ Egy számítógépes víruskutató feljegyzései, 2005 , 3.1. táblázat, p. 90.
- ↑ Malware History, 2010 , The NSA versus Morris: $100 Million in Damage, p. 23.
- ↑ CNBC International: A kiberbűnözés 450 milliárd dollárjába kerül a világgazdaságnak .
- ↑ The New Paper: A kiberbűnözés tavaly 620 milliárd dollárjába került a világgazdaságnak .
- ↑ RBC: A WannaCry vírus okozta kárt 1 milliárd dollárra becsülték .
- ↑ 6abs: A WannaCry vírus okozta kár meghaladta az 1 milliárd dollárt .
- ↑ Hi-Tech Mail.ru: A szakértők rekord mennyiségű kárt neveztek meg a WannaCry vírustól .
- ↑ MS17-010: Az EternalBlue nagy, nem lapozható medencetúlcsordulása az SRV illesztőprogramjában .
- ↑ A WannaCry ransomware világszerte elterjedt támadásokban használatos .
- ↑ CNews: Vírusok gazdasági kárai .
- ↑ Nettó veszteségek: A kiberbűnözés globális költségének becslése .
Irodalom
- Kaspersky K. Egy számítógépes víruskutató feljegyzései . - Péter, 2005. - P. 93, 103-104, 117-122. — 316 p. — ISBN 5469003310 .
- GOST R 56939-2016: Információbiztonság. Biztonságos szoftver fejlesztése. Általános követelmények / Szövetségi Műszaki Szabályozási és Metrológiai Ügynökség. - Standartinform, 2016. - 24 p.
- GOST R ISO/IEC 25010-2015: Információtechnológia. Rendszer- és szoftverfejlesztés. Rendszerek és szoftverek követelményei és minőségértékelése (SQuaRE). Rendszerek és szoftvertermékek minőségi modelljei / Szövetségi Műszaki Szabályozási és Metrológiai Ügynökség. - Standartinform, 2015. - 36 p.
- Oroszország Állami Műszaki Bizottsága . Útmutató dokumentum. Informatikai biztonság. Az információtechnológiai biztonság értékelésének kritériumai . - 2002. - P. III-IV. — 48p.
- Vállalkozás információbiztonsága. Az üzleti információbiztonság jelenlegi trendjeinek tanulmányozása. : Kutatás / Kaspersky Lab. - 2014. - 14. o.
- Komarov A. Mérjük a sebezhetőségeket // Hacker : Journal. - 2009. - 04 (124) sz . - P. 48-51.
- Safonov V. O. Modern technológiák megbízható és biztonságos programok fejlesztéséhez // Számítógépes eszközök az oktatásban : Journal. - 2008. - 06. sz . - P. 25-33.
- Vakhrusev I.A., Kaushan V.V., Padaryan V.A., Fedotov A.N. Formátumkarakterlánc sebezhetőség keresési módszere // Proceedings of ISP RAS. - 2015. - T. 27 , 4. sz . - S. 23-38 . - P. 25-33.
- Howard M., LeBlanc D., Viega J. A szoftverbiztonság 24 halálos bűne : Programozási hibák és azok kijavítása . - McGraw Hill Professional, 2009. - 464 p. — ISBN 9780071626767 .
- Seacord RC Secure Coding C és C++ nyelven . - 2. - Addison-Wesley, 2013. - 600 p. — ISBN 9780132981972 .
- Stoneburner G., Hayden C., Feringa A. Engineering Principles for Information Technology Security (A Baseline for Achieing Security) (angol) / National Institute of Standards and Technology . - Revízió A. - 2004. - 33 p.
- Wheeler D.A. Biztonságos programozás HOGYAN – Biztonságos szoftver létrehozása . - 2015. - 186 p.
- Malware History (angol) / BitDefender . - 2010. - P. 23-24. — 71 p.
- Howard M., LeBlanc D. Biztonsági kód írása . - 2. - Microsoft Press, 2002. - P. 43. - 512 p. — ISBN 9780735615885 .
További olvasnivalók
Linkek
- Bondarenko, Maria . A WannaCry vírus okozta kárt 1 milliárd dollárra becsülték , Moszkva: RBC (2017. május 25.). Letöltve: 2017. október 23.
- Matyukhin, Grigorij . A szakértők rekordméretű károkat neveztek meg a WannaCry vírus által, Moszkva: Hi-Tech Mail.ru (2017. május 25.). Letöltve: 2017. október 23.
- Borovko, Roman . Vírusok gazdasági kárai, Moszkva: CNews Analytics (2003). Letöltve: 2017. október 23.
- Bevezetés a biztonságos kódolási útmutatóba . https://developer.apple.com/ . Apple Inc. . Letöltve: 2017. október 23.
- Django Software Foundation . Biztonság a Djangoban . https://www.djangoproject.com/ _ Letöltve: 2017. december 5.
- Ruby on Rails biztonsági útmutató . http://rubyonrails.org/ . Letöltve: 2017. december 5.
- Graham, Luke . A kiberbűnözés 450 milliárd dollárjába kerül a világgazdaságnak: vezérigazgató , USA: CNBC International (2017. február 7.). Letöltve: 2017. október 23.
- Sun, David . A kiberbűnözés tavaly 620 milliárd dollárjába került a világgazdaságnak , Szingapúr: The New Paper (2017. július 5.). Letöltve: 2017. október 23.
- A WannaCry vírus okozta kár meghaladta az 1 milliárd dollárt (angolul) , USA: 6abc (2017. május 25.). Archiválva az eredetiből 2017. október 15-én. Letöltve: 2017. október 23.
- William Gamazo Sanchez (Vulnerability Research). MS17-010: Az EternalBlue nagy, nem lapozható medencetúlcsordulása az SRV illesztőprogramjában . http://blog.trendmicro.com/ . Trend Micro (2017. június 2.). Letöltve: 2017. október 23.
- A WannaCry zsarolóprogramok, amelyeket világszerte elterjedt támadásokban használnak . https://securelist.com/ . ZAO Kaspersky Lab (2017. május 12.). Letöltve: 2017. október 23.
- M. Tim Jones. Defensive Programming (angol) (nem elérhető link) (2005. február 1.). Letöltve: 2017. november 12. Az eredetiből archiválva : 2017. november 13.
- OSVDB: FIN (angol) (downlink) . https://blog.osvdb.org/ (2016. április 5.). Letöltve: 2017. december 3. Az eredetiből archiválva : 2016. május 28..
- Általános sebezhetőségi pontozási rendszer v3.0 : Specifikációs dokumentum . https://www.first.org/ . ELSŐ. Letöltve: 2017. november 12.