Кіріспе
Бағдарламалық қамтамасыз ету қауіпсіздігін қамтамасыз ету - бұл бағдарламалық қамтамасыз етуде қамтылған және басқарылатын деректер мен ресурстарды қорғайтын бағдарламалық қамтамасыз етуді жобалауға және іске асыруға көмектесетін процесс. Бағдарламаның өзі ресурс болып табылады, сондықтан оған тиісті қауіпсіздікті қамтамасыз ету керек.
Бағдарламалық қамтамасыз ету қауіпсіздігін қамтамасыз ету дегеніміз не?
Бағдарламалық қамтамасыз ету қауіпсіздігін қамтамасыз ету (SSA) - бағдарламалық қамтамасыз етудің ол пайдаланатын, бақылайтын және қорғайтын деректер мен ресурстарды жоғалтудан, дәлсіздіктен, өзгертуден, қол жетімділіктен айырудан немесе дұрыс пайдаланбаудан туындайтын ықтимал зиянға сәйкес келетін қауіпсіздік деңгейінде жұмыс істеуге арналғандығын қамтамасыз ету процесі. Бағдарламалық қамтамасыз ету қауіпсіздігін қамтамасыз ету процесі бағдарламалық қамтамасыз етуде қамтылатын немесе пайдаланылатын ақпаратты анықтаудан және жіктеуден басталады. Ақпаратты оның сезімталдығына қарай жіктеу керек. Мысалы, ең төменгі санатта қауіпсіздікті бұзудың әсері өте аз (яғни бағдарламалық жасақтама иесінің миссиясына, функцияларына немесе беделіне әсері елеусіз). Алайда, жоғары санаттағы бағдарламалардың әсері адам өміріне қауіп төндіруі мүмкін; бағдарламалық жасақтама иесінің миссиясына, функцияларына, имиджіне немесе беделіне қалпына келтірілмейтін әсері болуы мүмкін; немесе маңызды активтер мен ресурстарды жоғалтуға әкелуі мүмкін. Ақпаратты жіктегеннен кейін қауіпсіздік талаптары әзірленуі мүмкін. Қауіпсіздік талаптары қолжетімділікті бақылауға, соның ішінде желіге және физикалық қолжетімділікке; деректерді басқаруға және деректерге қолжетімділікке; қоршаған ортаны бақылауға (электр қуаты, ауа-райына және т.б.) қатысты болуы тиіс. және желіден тыс сақтау; адам ресурстарының қауіпсіздігі; және аудит жолдары мен пайдалану жазбалары.
Бағдарламалық қамтамасыз етудегі қауіпсіздік проблемаларын не тудырады?
Бағдарламалық жасақтамадағы барлық қауіпсіздік кемшіліктері бағдарламалық жасақтамадағы қауіпсіздік қателерінің немесе ақауларының нәтижесі болып табылады. Көп жағдайда бұл ақаулар екі негізгі себеппен пайда болады: 1) сәйкестіксіз немесе талаптарды қанағаттандыруда; 2) бағдарламалық қамтамасыз ету талаптарының қатесі немесе қатесі.
Сәйкестіксіздік немесе талаптарға сәйкес келмеу
Сәйкестіксіздік қарапайым болуы мүмкін - ең көп таралған кодтау қатесі немесе ақаулық - немесе күрделірек (яғни, уақыт қатесі немесе кіріс құптау қатесі). Қалыптылық нормаларына сәйкес келмеудің маңызды жағы - тексеру және растау әдістері оларды анықтау үшін, ал қауіпсіздікті қамтамасыз ету әдістері олардың алдын алу үшін жасалған. Бұл әдістерді жетілдіру бағдарламалық қамтамасыз ету қауіпсіздігін қамтамасыз ету бағдарламасы арқылы бағдарламалық қамтамасыз ету қауіпсіздігін арттыра алады.
Бағдарламалық қамтамасыз ету талаптарындағы қателер немесе қателіктер
Бағдарламалық қамтамасыз етуді негіздеген жүйелердің ең күрделі қауіпсіздік проблемалары бағдарламалық қамтамасыз ету талаптары дұрыс емес, орынсыз немесе жүйе жағдайына сәйкес емес кезде пайда болады. Өкінішке қарай, талаптарға қатысты қателіктерді немесе кемшіліктерді анықтау қиынырақ. Мысалы, бағдарламалық қамтамасыз ету қалыпты пайдалану кезінде талап етілгендей орындауы мүмкін, бірақ талаптар кейбір жүйелік жағдайларды дұрыс қарастырмауы мүмкін. Жүйе осы проблемалық күйге кіргенде, күтпеген және жағымсыз мінез-құлық пайда болуы мүмкін. Бұл мәселені бағдарламалық қамтамасыз ету саласында шешу мүмкін емес; ол жүйелік және бағдарламалық қамтамасыз ету процестерінің қателігінен туындайды, олар жүйелік талаптарды бағдарламалық қамтамасыз етуге дайындады және бөлді.
Қауіпсіз құрылыс
Бағдарламалық жасақтаманы әзірлеу процесін жақсарту және олардан жақсы бағдарламалық жасақтаманы жасау - бағдарламалық жасақтаманың қауіпсіздігін жақсартудың жолдары, олар бағдарламалық жасақтаманы кемшіліктері мен осалдықтары аз шығару арқылы. Бірінші кезектегі тәсіл - қауіпсіздікке байланысты функцияларды басқаратын маңызды бағдарламалық жасақтама компоненттерін анықтау және оларға әзірлеу және сынау процесінде ерекше назар аудару. Бұл әдіс қауіпсіздік ресурстарын ең маңызды салаларға бағыттауға көмектеседі.
Құралдар мен әдістер
Бағдарламалық қамтамасыз ету қауіпсіздігін қамтамасыз ету іс-шараларын қолдау үшін көптеген коммерциялық (COTS) бағдарламалық жасақтама пакеттері бар. Алайда, оларды қолданудан бұрын, бұл құралдарды мұқият бағалау керек және олардың тиімділігі қамтамасыз етілуі керек.
Ортақ кемшіліктер тізімі
Бағдарламалық қамтамасыз ету қауіпсіздігін жақсартудың бір жолы - бағдарламалық қамтамасыз ету қауіпсіздігіне әсер ететін ең көп таралған әлсіздіктерді жақсырақ түсіну. Осыны ескере отырып, қазіргі уақытта қоғамдастыққа негізделген "Жалпы әлсіздіктерді санау" жобасы бар, оны Митр корпорациясы қолдап отыр, ол осындай әлсіздіктерді анықтау және сипаттау үшін. Қазіргі уақытта өте алдын ала түрде жасалған тізімде бағдарламалық қамтамасыз етудің жалпы әлсіз жерлері, ақаулары мен кемшіліктері сипатталған.
Қауіпсіздік архитектурасы/жоспарлауды талдау
Қауіпсіздік архитектурасы/конструкторлық талдау бағдарламалық жасақтаманың қауіпсіздік талаптарын дұрыс іске асыратынын тексереді. Жалпы алғанда, қауіпсіздік архитектурасы/конструкциясын талдау үшін төрт негізгі әдіс қолданылады.
Логикалық талдау
Логикалық талдау бағдарламалық жасақтаманың теңдеулерін, алгоритмдерін және басқару логикасын бағалайды.
Деректерді талдау
Деректерді талдау бағдарламалық жасақтаманың құрауышын жобалауда пайдаланылатын әрбір деректің сипаттамасын және мақсатты қолданылуын бағалайды. Тоқтатуларды пайдалану және олардың деректерге әсері, тоқтаммен жұмыс істеу реті басқа ретімен пайдаланылатын маңызды деректерді өзгертпеуін қамтамасыз ету үшін ерекше назар аудару керек.
Интерфейс талдау
Интерфейс талдау бағдарламалық компоненттің жүйедегі басқа компоненттермен, соның ішінде компьютерлік жабдықпен, бағдарламалық қамтамасыз етумен және соңғы пайдаланушылармен интерфейстерінің дұрыс жобалануын тексереді.
Шектеулерді талдау
Шектеулер талдауы бағдарламалық жасақтама компонентінің дизайнын талаптарға және нақты әлемдегі шектеулерге байланысты шектеулерге қарай бағалайды. Құрылым бағдарламалық жасақтама компонентінің барлық белгілі немесе күтілетін шектеулеріне жауап беруі тиіс. Бұл шектеулерге уақытты, өлшемін және өткізу қабілетін шектеулер, кіріс және шығыс деректерінің шектеулері, теңдеулер мен алгоритмдердің шектеулері және басқа да жобалау шектеулері кіруі мүмкін.
Кодтарды тексеру, тексеру және тексеруді қамтамасыз ету
Кодты талдау бағдарламалық қамтамасыз етудің бастапқы коды дұрыс жазылғандығын, қажетті дизайнды іске асырғанын және қауіпсіздік талаптарын бұзбайтынын тексереді. Жалпы алғанда, кодты талдау кезінде қолданылатын әдістер дизайнды талдау кезінде қолданылатын әдістерге ұқсас. Қауіпсіз кодтың тексерулері әзірлеу кезеңінде және соңында белгіленген қауіпсіздік талаптары, қауіпсіздік жобалау тұжырымдамалары және қауіпсіздікке қатысты ерекшеліктер орындалған-осызығын анықтау үшін жүргізіледі. Бұл шолулар әдетте материалды шолу тобына ұсынудан тұрады. Қауіпсіз кодты тексеруді тексерілетін бағдарламалық жасақтаманы әзірлеуге тікелей қатысы жоқ қызметкерлер жүргізгенде тиімді болады.
Бейресми тексерулер
Қажеттілігіне қарай бейресми қауіпсіз кодты тексеру жүргізілуі мүмкін. Бейресми шолу жүргізу үшін әзірлеуші тек бір немесе бірнеше шолушыларды таңдайды және қарастырылатын материалды ұсынады және/немесе ұсынады. Материал псевдокод немесе қолмен жазылған құжаттама сияқты бейресми болуы мүмкін.
Ресми тексерулер
Әрбір бағдарламалық жасақтама компоненті үшін әзірлеу кезеңінің соңында ресми қауіпсіз кодты тексеру жүргізіледі. Бағдарламалық жасақтаманың тапсырыс берушісі ресми тексеру тобын тағайындайды, ол бағдарламалық жасақтаманың даму өмірлік циклының келесі кезеңіне өту үшін "бар/жоқ" шешімін қабылдауы немесе оған әсер етуі мүмкін.
Тексерулер мен тексерулер
Қауіпсіз кодты тексеру немесе тексеру - бұл өнімнің қадамдық немесе жолдық (көз кодтың) негізінде егжей-тегжейлі тексерілуі. Қауіпсіз кодты тексеруді немесе тексеруді жүргізудің мақсаты қателерді табу болып табылады. Әдетте, тексеру немесе тексеру жүргізетін топты әзірлеу, қауіпсіздік инженериясы және сапаны қамтамасыз етуден шыққан әріптестер құрайды.
Қауіпсіздікті тексеру
Бағдарламалық қамтамасыз ету қауіпсіздігін тексеру, оның ішінде кіруді тексеру, жобалау және кодты талдау нәтижелерін растайды, бағдарламалық қамтамасыз етудің әрекетін зерттейді және бағдарламалық қамтамасыз етудің қауіпсіздік талаптарына сәйкес келетіндігін тексереді. Қауіпсіздікті арнайы сынау, қауіпсіздікті сынау жоспары мен процедураларына сәйкес жүргізіледі, бағдарламалық қамтамасыз етудің қауіпсіздік талаптарына сәйкестігін анықтайды. Қауіпсіздікті сынау бағдарламалық қамтамасыз етудің әлсіз жерлерін табуға және бағдарламалық қамтамасыз етудің қауіпсіздік талаптарын бұзуға әкелетін жолдармен сәтсіздікке ұшырауы мүмкін экстремалды немесе күтпеген жағдайларды анықтауға бағытталған. Қауіпсіздікті сынау жұмыстары көбінесе "аяу" қауіпсіздік элементтері ретінде жіктелетін бағдарламалық қамтамасыз ету талаптарымен шектеледі.