1 / 34

Информационна сигурност и наличност на приложения използващи СУБД

Божидар Цендов TEST SOLUTIONS Bojidar_Tzendov@mtel.net 02 9696060 0888 605365. Информационна сигурност и наличност на приложения използващи СУБД . ТЕСТ СОЛЮШЪНС. Решения за наблюдение и управление за телекомуникациите

shanae
Télécharger la présentation

Информационна сигурност и наличност на приложения използващи СУБД

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Божидар Цендов TEST SOLUTIONS Bojidar_Tzendov@mtel.net 02 9696060 0888 605365 Информационна сигурност и наличност на приложения използващи СУБД

  2. ТЕСТ СОЛЮШЪНС • Решения за наблюдение и управление за телекомуникациите • Решения за информационна сигурност – FW, VPN, Intrusion Prevention, Antivirus, Web Filtering, Anti-Spam и т.н. • Оценка на сигурността/Security Audit • Откриване проблеми в мрежи и приложения (LAN/WAN, IP, MPLS, Voice и т.н.)

  3. СЪДЪРЖАНИЕ - Защо да контролираме входните данни- Проверка за цялостна сигурност- Наличност на Web приложения

  4. Конфиденциалност – Запазване на информацията Интегритет – Непротиворечивост на данните Наличност – Услугата може да се ползва винаги, когато е нужна Трите елемента на сигурността

  5. Доколко да вярваме на потребителите ?!?!? Потребители: Злонамерени Немарливи Просто допускащи грешки Резултатът: Разкриване на информация Загуба на Интегритет Загуба на данни Потребител -> Приложение -> База от Данни

  6. Контролът на входните данни от страна на клиента (клиентската част) е само за негово улесняване и on-line корекции. Контролът на входните данни и къде го правим

  7. Средство за манипулиране на входните данни номер 1

  8. Средство за манипулиране на входните данни номер 2

  9. Средство за манипулиране на входните данни номер 2

  10. int get_user_profile_number (char **user_data) { char username[256]; strcpy(username, user_data[1]); } Първо да проверим за размер

  11. Формирали сме стринг string sql = "select * from client where name = '" + name + "'" Очакваме променливата name от потребителя. Той ни дава: GOSHO' or 1=1 – Така получаваме заявка: select * from client where name = ‘GOSHO' or 1=1 -- Какво получава потребителя? Но да оставим дължината

  12. Добаване последователност оператори Викане функции Викане съхранени процедури SQL injection И за да стане по-зле:Името става GOSHO' drop table client --

  13. Друг пример: .................. try { ………………. } catch (SqlException se) { Status = sqlstring + " failed\n\r"; foreach (SqlError e in se.Errors) { Status += e.Message + "\n\r"; } } catch (Exception e) { Status = e.ToString(); } Какъв ще е резултатът? SQL injection

  14. int age = каквото ни дава потребителя string name = каквото ни дава потребителя name = name.Replace("'","''"); //Да заменим единичния апостроф с два. Резултатът – грешен SQL оператор. Проблемът е решен? Да опитаме да решим проблема с конкатенацията – да махнем апострофите на хакера

  15. При горния пример хакерът може да: Въведе възрастage = 35; shutdown ИЛИ35 shutdown Замени апострофа с char(0x27) Да използва declare @a char(20) select @a=0x73687574646f776e exec(@a) Проверката за символи не решава проблема

  16. exec sp_GetName ‘GOSHO' or 1=1 -- ‘ е невалиден оператор, но exec sp_GetName ‘GOSHO' insert into client values(1005, 'Mike') -- ' Съхранените процедури го решават донякъде

  17. Не използвайте административни потребители, когато се връзвате от Web Проверявайте входните данни ... за всичко Не използвайте string concatenation Не оставяйте пароли на потребители в кода Не давайте излишна информация на крайния потребител Добри практики

  18. Вариант е използването на автентикация през операционната система По-добрият е създаването на специален потребител на базата от данни с точно определени и ограничени привилегии Този потребител трябва редовно да бъде проверяван от гледна точка на права и слабости в политиката на сигурността, както така трябва да бъде проверявана и цялата база от данни Създайте междинна База от Данни, която е между ДМЗ и вътрешната мрежа Административен достъп и сигурност на Базите от Данни

  19. Защита в дълбочина Company Confidential

  20. Автоматичен анализ на уязвими места свързани с пароли, роли, привилеги, ресурси и т.н. Следене за базова линия на сигурността (baseline) Следене за сигурността на операционната система Вградена експертиза Средства за анализ на сигурността на база от данни и поддържане на базова линия на сигурносттаInternet Security System (ISS) Database&System Scanner (www.iss.net)

  21. ISS Database Scanner основни проверки

  22. Параметризиране на SQL изразите: SELECT count(*) FROM client WHERE name=? AND pwd=? След това дефиниране и проверка на параметрите Входните данни

  23. Никакви “празни” пароли за достъп до База от Данни. Като четете паролата от някъде, я проверявате дали е празна и ако е празна, не правите опит да се вържете до базата. Може админа по погрешка да е направил такъв потребител за достъп. Ако четете само един ред, се подсигурете, че четете само него. Твърдо се проверява всеки вход дали отговаря на дефинициите. Стрингът за връзка в базата не е в кода, а някъде другаде (регистър на Windows машината например) Използвайте съхранени процедури, за да скриете логиката на приложението. Използвайте възможно най-безсилния по привилегии достъп до базата Изпозлвайте параметри, не конкатенация В случай на грешка не давайте информация Връзката с базата винаги се прекратява, независимо от това дали кода е успял или е имало грешки Използване няколко нива на защита

  24. Цялостна картина на осигуряване на наличност на Web приложения и бази данни с помоща на: Firewall Two-way Load Balancing Aplication level Inspection Two Site Fail-Over Наличност + защита в дълбочина

  25. Клиент ИНТЕРНЕТ LAN Тръгваме от Firewall – ако искаме наличност на Web приложение, то наличността на Firewall-а не трябва да е по-малка StoneGateна Stonesoft (www.stonesoft.com) От най-защитените firewall (EAL4, augm ALC_FLR.1) Високо надежденскалируем firewall с вградена клъстеризация База от Данни Web Приложение On-Line Клъстер (до 16 машини или appliances) Firewall-ът изглежда и се управлява като една машина Link fail-over ISP C

  26. Традиционен FW сравнен със StoneGate • Традиционни решения: • - Много доставчици • допълнителен хардуер • много администрация • нужда от режим на администриране • поддръжка на допълнителен хардуер и операционни системи

  27. Multi-Link Техноогия Интернет/Интранет Връзка A ВръзкаB ВръзкаC LAN StonegateTwo-way Load Balancing • Непрекъсваем мрежов достъп • Възка към множество преносни канали (стандартни Интернет, MAN мрежи, наети линии, LAN, ISDN и т.н.) • Автоматично прехвърляне и балансиране • Три решима на работа: • Изходящи връзки • Входящи връзки • VPN тунели

  28. Клиент SYN • SYN пакет стига до клъстера • StoneGate репликира SYN пакета към всички връзки и го маркира различно за всяка NAT NAT NAT RST Преносна Среда RST • Сърверът отноваря на всички SYN пакети със SYN-ACK • Връзката връщаща SYN-ACK пакет с най-добра скорост и т.н. ще се използва за комуникацията • RST – останалите линии се изчистват LAN Stonegate Two-way Load Balancing • Multi-Link Technology : Изходящи Връзка A Връзка C Връзка B Сървер

  29. Клиент прави DNS заявка • DNS връща адреси – по един за всяка връзка • Клиентът се връзва към сървера посредством един от адресите. Internet/Intranet • Firewall-ът NAT-ва входящата връзка към вътрешния адрес на сървера • Обратните пакети се маршрутизират през същата връзка LAN Stonegate Two-way Load Balancing • Multi-Link Technology : Входящи DNS Сървер Web Сървер Връзка A Връзка B Връзка C • Ako има timeout клиентът използва някой от другите IP адреси и така автоматично минава по друга връзка

  30. Multi-Link VPN създава подканали използвайки всяка възможна комбинация от крайните IP адреси Преносна среда • Ако подканал откаже се използват автоматично останалите LAN LAN Stonegate Two-way Load Balancing • Multi-Link Technology : VPN Тунели • Multi-Link контролира състоянието и производителността на всеки подтунел Връзка A Връзка B Връзка C • Подтунелите с по-добра производителност получават повече трафик Връзка Y Връзка X

  31. Клиент ИНТЕРНЕТ LAN Stonegate Application Level Inspection Добавя сигурност на протоколно ниво и други възможности с помоща на протоколни агенти База от Данни Web Приложение Exec Drop Session Found tag ‘SELECT * FROM….” ISP C

  32. Клиент ИНТЕРНЕТ/ИНТРАНЕТ LAN Stonesoft Full Cluster Oracle Agent Failover StoneGate Cluster – висока надежндност за приложения и бази от данни ORACLE База от Данни Web Приложение StoneGate On-Line Клъстер ISP C

  33. Клиент Клиент ИНТЕРНЕТ/ИНТРАНЕТ LAN LAN Stonesoft Full Cluster Oracle Agent Failover Failover Между Две Площадки ORACLE База от Данни Web Приложения ORACLE База от Данни StoneGate On-Line Клъстер StoneGate On-Line Клъстер VPN Канали ISP C

  34. Клиент Клиент ИНТЕРНЕТ/ИНТРАНЕТ LAN LAN Най-добра комбинация: StoneGate + Oracle RAC Disaster Recovery Case ORACLE REAL APPLICATION CLUSTER Web Приложения StoneGate On-Line Клъстер StoneGate On-Line Клъстер VPN Канали ISP C

More Related