foss information security practices @openfest 07.11.2015
TRANSCRIPT
КСТ ТУ 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
Защо е необходима информационна сигурност?
Общи понятия
Интегритет
Конфиденциалност
Достъпност
o Информацията през XXI век представлява за компаниите ресурс, сравним с авоарите, материалната база или човешкия капитал
o Информацията не е само дигитална – съществуват договори, фактури, регистри и пр.
o Различните индустрии поставят различен акцент върху важността на дигиталната си информация Циментов бизнес vs. Онлайн търговия
o Всеки бизнес модел може допълнително да репротизира важността на дигиталните си информационни активи:
Quora/Twitter vs. Facebook
Frontend Stack / API
sFTP
Mail servers
Network accessible servers
Host
Web Application
Database
Backend stack
SSH
MongoDB
LDAP
Щом трябва да го охраняваме, колко врати има?
Информационна сигурност – аксиоми
Нулево доверие към околните (сървъри, услуги, хора) що
се отнася до обмен на информация
Самостоятелно инсталирани услуги
„Зная и мога ли достатъчно, за да защитя
инсталираната услуга?“
Системно инсталирани услуги (Windows, Mac, Ubuntu)
Rootkits
Spyware
Не-лично инсталирани услуги на хоста
„Инсталиращият знае и може ли достатъчно за
защитаването на услугата и средата, за да му се
доверя?“
Останалите хостове в мрежата, към които има
политика на доверие
„Ние сме толкова защитени, колкото защитен е
най-уязвимият от нас“
Външния свят – студеният лош Интернет
Приоритизация на рисковете15%
Проблеми на кода на уеб
апликацията, проблеми на API
обмена на данни и т.н.
100%
Всички възможни заплахи и рискове:
- Фалит
- Природно бедствие
- Световна война
50%
Мрежови проблеми и проблеми, свързани
с доверени сървъри, сървъри, с които се
обменя информация, хостове, които
достъпват сървъра и т.н.
25%
Проблеми, свързани с хоста: зле
администриран сървър, уязвими
услуги, проблеми с колокация,
неоторизиран достъп и т.н.
Frontend Stack / API
sFTP
Mail servers
Network accessible servers
Host
Web Application
Database
Backend stack
SSH
MongoDB
LDAP
Карта на заплахите
Магия!
Автоматизирано
сканиране
Ръчен pen testing
Тримесечен одит на
достъпа и апликациите
Автоматизирано
сканиране
Ръчен pen testing
Тримесечен одит на
достъпа и апликациите
Минимален exposure, дори
по-малък отколкото към
Интернет
Стъпки за (само)защита
Сканиране
Комуникационни потоци?
Одит на кода
Постоянно наблюдение
Първата стъпка е сканиране на сървъра за уязвимости. Но сканирането не трябва да е само списък, а план на подобрения, върху който трябва да се работи.
Toolbox: Nessus, OpenVAS
Втората стъпка е одита на комуникационните потоци. Не забравяйте – ако не комуникира с други машини, Вашият сървър би бил много по-защитен.
С кого си говори вашият сървър? Има ли валидна причина за това?
Ключовата стъпка е одит на логиката на кода и интерфейсите му, както и на очакваното поведение спрямо особеностите на апликацията.
Toolbox: Acunetix, ZAP
Информационната сигурност не е явление, а процес.
Като всеки друг процес, и този има нужда от постоянно наблюдение – и постоянна (форс-мажорна?) мотивация.Първата стъпка е идентификация, втората – подобрение, третата – постоянно наблюдение.
Вашият код трябва да е Ваша крепост?
Подготовка за одит Познаване на проблематиката и познаване на кода Дефиниране на контекст и поведение Определяне на атакуваната повърхност
Ефективно моделиране на заплаха Точки на достъп, достъпни за широкия свят Определение и приоритизация на заплахите Намиране на противодействие и имплементацията му
Сверяване на security audit чеклиста (see OWASP Top 10 2015)
Аутентикация / оторизация Управление на cookies
Валидация на input, санитизация на output (вкл. error handling)
Запис и съхранение на събития (логове) Криптиране на ключови данни и канали Управление на сесии
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