Code Runners' CTO talking about the caveats of information security, how to secure assets better and how to code in a more sustainable fashion. Language: Bulgarian; English on demand: dimiter.shalvardjiev@code-runners.com
2. КСТ ТУ 2006-2010
3xCCNP Cisco Systems 2008-2010
CEH and CISSP trained HP 2010-2011
Sys/netadmin Evolink 2008-2010
Information Security Officer Nokia, Ericsson 2010-2012
Бизнес консултант Philips, Pfizer 2012-2015
CTO CodeRunners 2012 +
$ whoami
3. Защо е необходима информационна сигурност?
Общи понятия
Интегритет
Конфиденциал
ност
Достъпност
o Информацията през XXI век представлява за
компаниите ресурс, сравним с авоарите, материалната
база или човешкия капитал
o Информацията не е само дигитална – съществуват
договори, фактури, регистри и пр.
o Различните индустрии поставят различен акцент върху
важността на дигиталната си информация
Циментов бизнес vs. Онлайн търговия
o Всеки бизнес модел може допълнително да
репротизира важността на дигиталните си
информационни активи:
Quora/Twitter vs. Facebook
4. Frontend Stack /
API
sFTP
Mail servers
Network accessible
servers
Host
Web Application
Database
Backend stack
SSH
MongoDB
LDAP
Щом трябва да го охраняваме, колко врати има?
5. Информационна сигурност – аксиоми
Нулево доверие към околните (сървъри, услуги, хора) що
се отнася до обмен на информация
Самостоятелно инсталирани услуги
„Зная и мога ли достатъчно, за да защитя
инсталираната услуга?“
Системно инсталирани услуги (Windows, Mac, Ubuntu)
Rootkits
Spyware
Не-лично инсталирани услуги на хоста
„Инсталиращият знае и може ли достатъчно за
защитаването на услугата и средата, за да му се
доверя?“
Останалите хостове в мрежата, към които има
политика на доверие
„Ние сме толкова защитени, колкото защитен е
най-уязвимият от нас“
Външния свят – студеният лош Интернет
6. Приоритизация на рисковете
15%
Проблеми на кода на уеб
апликацията, проблеми на API
обмена на данни и т.н.
100%
Всички възможни заплахи и рискове:
- Фалит
- Природно бедствие
- Световна война
50%
Мрежови проблеми и проблеми, свързани
с доверени сървъри, сървъри, с които се
обменя информация, хостове, които
достъпват сървъра и т.н.
25%
Проблеми, свързани с хоста: зле
администриран сървър, уязвими
услуги, проблеми с колокация,
неоторизиран достъп и т.н.
7. Frontend Stack /
API
sFTP
Mail servers
Network accessible
servers
Host
Web Application
Database
Backend stack
SSH
MongoDB
LDAP
Карта на заплахите
Магия!
Автоматизирано
сканиране
Ръчен pen testing
Тримесечен одит на
достъпа и апликациите
Автоматизирано
сканиране
Ръчен pen testing
Тримесечен одит на
достъпа и апликациите
Минимален exposure, дори
по-малък отколкото към
Интернет
9. Стъпки за (само)защита
Сканиране
Комуникационни
потоци?
Одит на кода
Постоянно
наблюдение
Първата стъпка е сканиране на сървъра за уязвимости.
Но сканирането не трябва да е само списък, а план на подобрения, върху който
трябва да се работи.
Toolbox: Nessus, OpenVAS
Втората стъпка е одита на комуникационните потоци. Не забравяйте – ако не
комуникира с други машини, Вашият сървър би бил много по-защитен.
С кого си говори вашият сървър? Има ли валидна причина за това?
Ключовата стъпка е одит на логиката на кода и интерфейсите му, както и на
очакваното поведение спрямо особеностите на апликацията.
Toolbox: Acunetix, ZAP
Информационната сигурност не е явление, а процес.
Като всеки друг процес, и този има нужда от постоянно наблюдение – и постоянна
(форс-мажорна?) мотивация.
Първата стъпка е идентификация, втората – подобрение, третата – постоянно
наблюдение.
10. Вашият код трябва да е Ваша крепост?
Подготовка за одит
Познаване на проблематиката и познаване на кода
Дефиниране на контекст и поведение
Определяне на атакуваната повърхност
Ефективно моделиране на заплаха
Точки на достъп, достъпни за широкия свят
Определение и приоритизация на заплахите
Намиране на противодействие и имплементацията му
Сверяване на security audit чеклиста (see OWASP Top 10 2015)
Аутентикация / оторизация
Управление на cookies
Валидация на input, санитизация на output (вкл. error handling)
Запис и съхранение на събития (логове)
Криптиране на ключови данни и канали
Управление на сесии
11. OWASP Top 10
Injections
Broken authentication / Session Management
XSS
Insecure Direct Object References
Security misconfiguration <3
Sensitive Data Exposure
Missing Function Level Access Control
CSRF
Components with known vulnerabilities
Unvalidated Redirects / Forwards
Buffer overflow