Лекция

Как да пишем сигурен код?

Кадърът е от сървъра на YouTube. Самият плейър — и всичко, което той зарежда — идва едва след като пуснете видеото.

Описание

Първото събитие на Cyber Security Talks Bulgaria в морската ни столица Варна беше наистина специално. Домакин бе Висше военноморско училище „Н. Й. Вапцаров“. Имахме удоволствието събитието да е част от програмата по случай отбелязването на 50-тата годишнина на катедра „Информационни технологии“ към ВВМУ „Н. Й. Вапцаров“.
Събитието се състия от две части:
- Част 1 - Презентации, демонстрации, дискусии и експо част
- Част 2 - Бизнес панел - среща на бизнеса

🎙Ето и темите от Част 1:

00:25 – Откриване

10:22 – Keynote ВВМУ „Н. Й. Вапцаров“

12:50 – Keynote KBC Global Services

18:10 – Как да пишем сигурен код?

32:35 – Цифрова крепост SOC /техническа демонстрация за реакция при инцидент със Информационната сигурност/

1:04:30 – Дронове и Киберсигурност

1:31:23 – Rubber ducky с Raspberry pi Pico

1:58:55 – Примерът е важен

2:05:25 – Information and Cyber security career development - cheat sheet

2:19:37 – European Cybersecurity Skills Framework

2:28:18 – Национален отбор по Киберсигурност - Cybersecurity Challenge Bulgaria

2:34:50 – Дискусия

2:45:25 – Закриване на първа част на събитието

👓Следете страниците ни и канала ни в Discord, за да научите повече за предстоящите събития, лектори и теми:
• Официална страница: https://www.cybersecuritytalks.bg/articles/16-cyber-security-talks-bulgaria-cybervarna
• LinkedIn: https://www.linkedin.com/company/cyber-security-talks-bulgaria
• Meetup: https://www.meetup.com/Cyber-Security-Talks-Bulgaria-Meetup-Group/
• Discord: https://discord.gg/MPMAgmCbWs (#cybersec-talks)

Описанието е на Cyber Security Talks Bulgaria.

Препис

Автоматичен препис — може да съдържа грешки — сверявайте с видеото, преди да цитирате. Изтеглен през Supadata от субтитрите на YouTube.

Клик върху времето пуска видеото от този момент.

↗достъпна от трети страни които се предполага има достъп а как се случва това по отношение на сигурния вход при нас това започва както борис най-вероятно ще ще потвърдя а още преди писането на самия код със създаването на архитектурата на цялото решение с това а да се разграничат всички стъпки от процеса с това да се дефинира в кой етап какво трябва да се случи а по какъв начин трябва да се провери дали се случва правилно съжалявам но не мога прекадено технично да говоря а и това това се имплементира след това в кода като за целта естествено се създават тестове които да го пробват създава се друг вид тестове които са от th парти апликации които удостоверяват че хода ви няма а в не знам как да го кажа на български съжалявам а и в последствие най-важната проверка обикновено е тази на ваши колеги с които вие работите практиката е такава че един код не се в експлоатация

↗преди на финала човек да е казал да това ще работи това е сигурно това тоя си както се очаква а може би борис ще допълне сега малко повече за за процесите защото както той каза full stack моята част от работата е да доставя една информация която да се ползва в последствие от различен тип апликации разработвани в kbc и той е един от хората които имплементират това нещо как да се случва как да го извлекат от една подсигурена среда как да го използват в друга такава и тава правиш благодаря много за интродукцията а като цяло аз ще върна една стъпка назад дори в започването на киберсигурността аз мое мнение е че то освен преди първата линия код и преди създаването на архитектурата започва от избирането на технологии които ще използваме а ние ползваме технологии които са на пазара от страшно много време издържали са теста на времето и след това а на главно това

↗което ползваме за а секюрити са вътрешни библиотеки които имаме създадени от наши колеги и ваши тук в публиката има хора които работят в секюрити отдела вече а като най-важните за хора като мен проверки са това какви данни влизат и какви данни излизат от нашите апликации а много е важно а като добра практика е всяка всички данни които влизат да бъдат валидирани и то не веднъж не два пъти а на всяко едно ниво а като цяло много често използвани практики в като атаки са javascript injection предполагам това говори много на вас а днес сутринта специално за тази презентация направих тест като хванах няколко наши апликации моят колега видя и се опитах аз да пробия по някакъв начин не става а добре са подсигурени а също така нещо което се случи случва много често е друг вид атака което е sql injection предполагам колегата е доста запознат с това и мисля че може да ви разкаже

Покажи целия препис — още 10 абзаца (~1529 думи)

↗почка благодаря ту няма много за разказване за sq инжекционите значи като дейте инженери ние основно ползваме python за нашата работа като там това нещо се избягва доста лесно няма да изпад технически подробности но а като цяло при нас както той каза нещата се подсигуряват на ниво реймър използване а постоянно трябва да сме в течени за враби на библиотеките които имплементираме входа си а дали ще използваме обектно ориентиране дали няма да ползваме това абсолютно никакво значение няма относно сигурността така че отново трябва да валидираме абсолютно всяка една стъпка от кода си всяка една едно действие което се извъшва вътре дали отговаря на това което трябва да се случва и и да като цяло ко кодът сам по себе си а тря трябва да се мисли от докато се пише кодът трябва да се мисли това като го направя как мога да го счупим нали това е задължителното правило не да се

↗мисли че това ще работи ли то най лоши случа ще работи малко по-трудно но как може да бъде счупено ако може да измислите как ще му счупите значи не е наред работата да и като цяло ние като хора които имплементираме и създаваме а функционалност а за нас най-важното нещо е окей накарах го да работи щастлив съм но също е много важно да мислиш окей а това сега работи но как може да се използва срещу теб по някакъв начин а и това е мислене което а смятам че се развива с опита и когато се срещнеш с проблеми когато направиш нещо което работи и някой го използва срещу теб а като цяло смятам че а е много важно когато се пише код да минава през възможно най-много хора хора с много опи а колкото повече очи да минат през този код а защото има влита които ти може да пропуснеш влита които софтуерите които ползваш които ти тестват кода да пропуснат а затова като цяло ние също

↗имаме и екип който се грижи това нещо да не е така и да няма абсолютно никакви експлойти които да минат към продъкшън мисля че ва всичко това е като цяло това е процеса който ползваме ние а много очи а много софтуери които минават проверяват кода статични анализи и също така имаме както вече казах секюрити екип който се грижи да няма абсолютно никакви експлойти да и също тиране на информация хард кодовете пароли всякакви чувствителни данни вътре в кода си това са най-основните работи които трябва да се съблюдават и другото което той каза е да се следи за ра те свати апове в а там и и да се говори с колегите да не се срамувате да ви гледат хора да не го приемат като критика че ви казват че нещо не е наред защото то почти винаги няма да е наред и и това е просто се развивате четете и това е един непредставен процес на развитие дори нещо да е сигурно днеска не значи че ще

↗е сигурно утре да колкото по-умни и хитри ставаме ние от страната на тези които се пазят от атаки имайте в предвид че хората които нападат а се движат с може би даже по-голяма скорост от аз и никога не сме в безопасност аз много обичам много обичам да се включвам по време на презентациите ще ме видите през цялото време така а това което чух и от практиката която вие сте внесли е така наречения secure by design нали така а концепцията е точно предполагам прилагате а подход към към това към разработката на софтуер а концепцията там е че имаме едно придвижване наляво какво какво значи това още в момента в който както ти казах когато започнеме да

↗дизайнметал елементи на това а чисто концептуално функционалните елементи на това приложение има и секюрити инженер който се занимава с това да кажа окей тука имате пароли или тука имате всъщност вход за потребителите трябва да въведете още в този момент на архитектурно ниво да измислите как точно да го секюр нете и в момента в който излезе първия код трябва да мине през всъщност още една стъпка назад прави се трит моделинг преди да преди да се премине към писането на код прави се един трет моделинг при който се напасват съответните елементи или връзки с други системи защото тя една система ако живее сама в смисъл почти няма такава която да живее сама има комуникация с база данни има комуникация през мрежа с други системи има апита които слушат или предават информация навън така че всичко това се слага в една система която се казва моли определят се слабите места за

↗комуникацията се казва когато имаш комуникация към базата данни сървър ти за база данни трябва да е в друга мрежа комуникацията трябва да е задължително криптирана и както ти каза трябва да сатира и данните които текат между тях затова който има интерес в разработването на на сигурен код потърсете в интернет p by design има изключително много литература и със сигурност ще ви допадне като като идея така че след това пък имаме другите стъпки с vulnerability сега след като излезе кодът имаме статичен код анализ на на приложението което ви казвам един в смисъл казвам вие знаете един един огромен документ който ако нямате система за автоматизация и проверка нали и разпределяне на задачите е кошмар да се занимавате след това има още по-голямата енигма именно динамичен код анализ след това пък имаме след като готов вече продукта имаме vulnerability scan където сканираме инфраструктурата

↗отдолу сканираме самото приложение за някакви уязвимости в него и чак след това правим последния етап е треш тестинг а именно наемаме си това което се опитах да направя сутринта да наемаме си хакери така наречените бели хакери а хора които се занимават с пенетрейшън тестване или тестване на системите от страна на хакера и те се опитват да счупят а нали софтуера който имаме или приложението което сме създали защо го правим това нещо на финален етап защото а възможно е при създаването на код а вбити сканирането и секюрити код анализа всичките подходи които сме внесли преди това да не са хванали или да са маркирали като малки диъ или low а слабости в нашия код и хакерът да успее да навърже тези слабости да си свърши работата да открадне данните да достигне до до сървъра отдолу да си вдигне шел в смисъл затова има такъв подход да видим нашето приложение то се прави на

↗абсолютно последна стъпка имаме user acceptance тест след това имаме петрей тест в пре среда качваме го вече в про след като сме изчистили нещата и сме сигурни че към момента на качване методологията която е приложена върху него е актуална и то е защитено но както ти каза след пе минути тя вече не е така след една секунда не е така защото всеки ден излизат десетки десетки уязвимости а в в пространството в интернет пространството стават ясни и библиотеки които използвам отдолу подходи които до вчера са били сигурни изведнъж няма да споменаваме мина миналата година беше не по-миналата декември wog for j където буквално по коледа имаше десетки стотици хиляди специалисти които просто не спяха по коледа за да могат да си заключат системите и да да премахне в просто то е изност така че една малка библиотека една малка част от кода публично достъпна open source може да срине

↗цялата инфраструктура така че secure by design е смятам че е правилният подход и ако някой от вас а понеже това беше една от моите теми на защита на на дипломна работа а това е интересна тема за развитие и за дипломна работа така че заповядайте и вземете като пример [музика] в допълнение само исках да кажа за secure by design че в нашия случай цялата корпорация работи на този принцип абсолютно цялата инфраструктура е разработена което за нас е добре понеже ни гарантира по-лесно използване на всичко подсигурено като код като готови библиотеки но остава това важно правило че ние сме хората които трябва да съблюдават с нови вълни ралитата защото ние де факто сме първата линия и знаем най-бързо къде какво смете имплементирали и какво трябва да качим като версия понякога се налага да стари версии да се връщат нали за да избегнем трудности и и това е да има стандарти в

↗интернет като os топ 10 в които публикуват а десетте най популярни известни към момента уязвимости за съответната нали технология или по-скоро извинявам се по-скоро направление дали да е уеб дали да е internet дали да е m и така нататък така че да това е правилното спазване на тези неща трудно е за постигане за съжаление но пък това довежда до един по-сигурен ход в пространството благодаря много за за за участието ви и благодаря много за вниманието тук са до края на презентацията заповядайте да дадете вашите въпроси а продължаваме към следващата тема и бих искал да поканя колегите от мнемоника а да заповядат те ще ви покажат как се как се справят секюрити аналитиците с зареден код на сцената до мен ще станат вихрен славчев който е ce и създател на компанията мнемоника мнемоника е една от най-разпознаваемите компании български в страната по за информационни технологии виктор

← Всички лекции