ݺߣ

ݺߣShare a Scribd company logo
API АВТЕНТИФИКАЦИЯ И
  БЕЗОПАСНОСТ И ЗАЩИТА НА
  WEB ПРИЛОЖЕНИЯ




Поля Петкова
специалност Информатика
ф.н. 10611
СЪДЪРЖАНИЕ
 1. Въведение
 2. Какво е API? Защо му е нужна
  автентификация?
 3. Видове Api

 4. Сигурност и автентификация на API

 5. Web-приложенията? Какво знаем за тях?

 6. Методи за атаки и защита на web
  приложения
ВЪВЕДЕНИЕ
 Използването на интернет с времето става все
  по неразривна част от нашия живот.
  Всекидневно се налага извършването на какви
  ли не действия изискващи автентификация.
 Кражбата на лични данни и самоличност може
  да причини невъобразими щети на
  пострадалия потребител.
 За да използват хората спокойно услугите,
  програмите и приложенията, които се създават
  всекидневно и особено тези, които изполват
  интернет, трябва да се подсигури тяхната
  безопосност.
GIMME AN A! GIMME A P! GIMME AN I!
                   API
 API (Application Programming Interface) или
  Приложният програмен интерфейс е набор от
  кодове и стандарти за достъпване на уеб-
  базирани приложения и услуги.
 Изграждането на приложение без API е
  равносилно на построяване на къща без врати.
 Казано накратко API е вратата, през която
  трябва да минете, за да използвате
  приложения. Ако имате правилния ключ, ще
  имате възможност да достъпите продукти и
  услуги използвайки различни устройства.
 Тъй като API се използват за събиране,
  записване и опресняване на информацията
  (update) важен момент е автентификацията.
  Чрез нея всеки потребител след регистрация
  може да докаже пред системата своята
  самоличност и да достъпи съответните ресурси,
  които се предлагат.
ВИДОВЕ API
 Публични – обвързани са с минимални или
  никакви договорни отношения. Може да бъдат
  с ограничени възможности;
 Частни – имат сигурни договорни отношения.
  Позволяват използването на пълния
  потенциал и възможности на API.
СИГУРНОСТ И АВТЕНТИФИКАЦИЯ НА API
   Мисълта за ефективна защита на API трябва
    да бъде заложена още в процеса на
    формулиране на дизайна. Методите, които се
    използват за сигурност трябва да бъдат
    съобразени с бизнеса или вида потребители,
    които ще достъпват API. Ако то използва
    финансови данни през публични мрежи, е
    задължително да се вземат много сериозни
    мерки за сигурност.
 Много малко API работят без никаква
  автентификация, като регистрация например.
  Повечето API използват една или повече
  техники за сигурност:
 Идентификация
Кой прави запитване към API?
 Автентификация
Наистина ли е този, който твърди че е
потребителя?
 Ауторизация
Разрешено ли е на този, който опитва да достъпи
съответните ресурси да го направи?
ИДЕНТИФИКАЦИЯ И API КЛЮЧ
   Една от първите стъпки, за да се подсигури едно API е
    да се избегне неоторизиран достъп. Един от начините да
    се определи кое приложение използва API е като се
    използва API ключ.
   API ключовете са прости, произволни идентификатори
    работещи с HTTP заявки и параметри или нещо друго
    равностойно, но просто, което да се използва във всяка API
    заявка. За да може разработчика да създаде приложение с API
    трябва да използва уникален ключ, който да използва всеки
    път
   Тъй като тези ключове са прости и лесни за
    използване, те често не са криптирани, което
    ги прави сравнително лесни за откриване и
    атакуване от хакери. По тази причина
    използването им като средство за защита не е
    препоръчително, но от гледна точка на
    анализите и наблюденията е добро средство.
    Въпреки това за някои API подобен ключ е
    всичко, от което се нуждаят.
АВТЕНТИФИКАЦИЯ
   Автентификацията е начин да се покаже, кой
    сте вие за системата. Чрез този метод се
    показва дали някой, който се опитва да
    достъпи API е този, за който се представя.
    Методът за автентификация често използва
    потребителски имена и пароли, както и по-
    често използвания метод OAuth.
 Потребителски имена и пароли
 Автентификация базирана на сесиен достъп

 OАuth

 OpenID автентификация
WEB-ПРИЛОЖЕНИЯТА? КАКВО ЗНАЕМ ЗА
ТЯХ?

   Накратко Web-приложение е софтуер, който
    работи в интернет браузъра. В това кратко
    определение може да се допълни, че този код е
    със строго определена цел. Това означава, че
    Web-приложението изпълнява една или повече
    зададени задачи.
МЕТОДИ ЗА АТАКИ И ЗАЩИТА НА WEB
ПРИЛОЖЕНИЯ

 Препълване на буфера
Буферът е временна област за съхранение на
данни. Когато там се поставят повече данни,
отколкото е предвидено първоначално от даден
програмен и системен процес, допълнителните
данни ще го препълнят. Това причинява част от
данните да изтекат към други буфери, което
може да разруши данните, които те съдържат
или да запише върху тях.
ЗАЩИТА НА WEB ПРИЛОЖЕНИЯТА ОТ
ПРЕПЪЛВАНЕ НА БУФЕРА

-   Да се избягва използването на
 библиотечни файлове
-   Да се филтрират въвежданията от
 потребителите
-   Тестване на приложенията преди да бъдат
 внедрени
CROSS-SITE SCRIPTING (XSS)
 Най-общо казано Cross-Site Scripting (XSS)
  представлява начин за инжектиране на код в
  генериран HTML. Това става с помощта на
  променливите, предавани чрез метода GET
  или при нефилтрирано (непроверено) поле за
  специални символи, използвани в HTML.
 Основно XSS се използва за крадене на сесия
  или „бисквитки” (“cookies”). XSS е атака, която
  използва уязвимост при приложението и
  „вмъква” нежелан код, който се изпълнява в
  браузера на крайния потребител.
CROSS-SITE SCRIPTING (XSS)
ЗАЩИТА ОТ CROSS-SITE SCRIPTING (XSS)


 Подсигуряване, че динамично генерираните
  страници не съдържат потребителски данни,
  които не са проверени;
 Ясно оказване на character set-а, който ползва
  страницата;
 Използване на POST, а не GET във формите;

 Използване на HTTP ONLY „бисквитки”.
SQL ИНЖЕКЦИИ
 При този вид атака нападателите получават
  достъп до уеб приложенията като добавят
  Structured Query Language (SQL) код към поле
  на уеб форма за въвеждане под формата на
  SQL заявка, което е искане към базата данни
  да изпълни специфично действие.
 Обикновено по време на потребителското
  удостоверяване се въвеждат потребителско име
  и парола и се включват в запитване. След това
  на потребителя или му се предоставя, или му
  се отказва достъп в зависимост дали е дал
  правилни данни.
ПРЕДПАЗВАНЕ ОТ SQL ИНЖЕКЦИИ

 Да ограничи привилегиите за достъп на
  потребителите
 Осигурете бдителност на потребителите по
  отношение на сигурността
 Намалете информацията за отстраняване на
  бъговете
 Тествайте Web-приложението
DISTRIBUTED DENIAL OF SERVICES
(DDOS) АТАКА
   Най-общо казано DDoS атаките умишлено
    възпрепятстват достигането до
    информационните ресурси на Internet
    потребителя, обикновено чрез претоварване на
    мрежата чрез изпращане на излишен трафик
    от много източници. Този вид атаки
    обикновено се осъществяват като излишния
    трафик бъде инжектиран в онзи, който трябва
    да стигне до самите потребители.
ПРЕДПАЗВАНЕ ОТ DDOS АТАКИ
 Уверете се, че имате излишък от честотна
  лента във връзката на организацията с
  интернет
 Уверете се, че използвате система за откриване
  на прониквания (Intrusion Detection System,
  IDS).
 Поддържане на резервна интернет връзка с
  отделна база с интернет адреси за критични
  потребители
SOURCE CODE DISCLOSURE (SCD)
   В най-общи линии Source Code Disclosure
    (SCD) атаките позволяват на злонамерения
    потребител да получи изходния код на server-
    side приложение. Тази уязвимост предоставя
    на хакерите по-дълбоко познаване на логиката
    на самото Web-приложение.
ЗАКЛЮЧЕНИЕ
   Не се доверявайте сляпо на нищо и никой,
    подлагането на съмнение и тестове на вашите
    приложения ще гарантира продукти, които
    потребителите ще използват доверявайки
    личните си данни, ако се налага.
БЛАГОДАРЯ ЗА ВНИМАНИЕТО!
Ad

Recommended

API Authentication
API Authentication
petya_st
Api автентификация и безопасност и защита на web-приложения
Api автентификация и безопасност и защита на web-приложения
Poli Petkova
API Authentication
API Authentication
petya_st
Bezopastnost i zashtita na web priolojeniq
Bezopastnost i zashtita na web priolojeniq
Martin Kenarov
безопасност и защита на Web приложения
безопасност и защита на Web приложения
karizka3
защита при създаване на Asp.net
защита при създаване на Asp.net
Monika Petrova
Защита при създаване на Dot net приложения в интернет
Защита при създаване на Dot net приложения в интернет
Monika Petrova
Congreso 50 años del concilio vaticano II
Theotokos2013
Kursova 116679
Kursova 116679
superazo
PHP Security
PHP Security
LogMan Graduate School on Knowledge Economy
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Ilko Kacharov
Web Applications Security
Web Applications Security
LogMan Graduate School on Knowledge Economy
Защита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в Интернет
Anton Shumanski
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojenia
Martin Kenarov
Безопасност и защита на Web приложения
Безопасност и защита на Web приложения
DiNikolo
Защита при създаване на Java приложения в интернет
Защита при създаване на Java приложения в интернет
Tanya Tabakova
Заплахи за уеб приложенията на фирмите и предлагани решения за защита
Заплахи за уеб приложенията на фирмите и предлагани решения за защита
Iva Dimitrova
Php security
Php security
Nikolai
Информационна сигурност - интро
Информационна сигурност - интро
LogMan Graduate School on Knowledge Economy
Php sec referat
Php sec referat
Dido_mn
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
eismail
11086 browser-security
11086 browser-security
Atanas Sqnkov
FOSS Information Security Practices @OpenFest 07.11.2015
FOSS Information Security Practices @OpenFest 07.11.2015
Code Runners
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
Валентин Атанасов
Безопасност и защита на Web приложения
Безопасност и защита на Web приложения
DiNikolo

More Related Content

Similar to Api автентификация и безопасност и защита на web (20)

Kursova 116679
Kursova 116679
superazo
PHP Security
PHP Security
LogMan Graduate School on Knowledge Economy
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Ilko Kacharov
Web Applications Security
Web Applications Security
LogMan Graduate School on Knowledge Economy
Защита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в Интернет
Anton Shumanski
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojenia
Martin Kenarov
Безопасност и защита на Web приложения
Безопасност и защита на Web приложения
DiNikolo
Защита при създаване на Java приложения в интернет
Защита при създаване на Java приложения в интернет
Tanya Tabakova
Заплахи за уеб приложенията на фирмите и предлагани решения за защита
Заплахи за уеб приложенията на фирмите и предлагани решения за защита
Iva Dimitrova
Php security
Php security
Nikolai
Информационна сигурност - интро
Информационна сигурност - интро
LogMan Graduate School on Knowledge Economy
Php sec referat
Php sec referat
Dido_mn
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
eismail
11086 browser-security
11086 browser-security
Atanas Sqnkov
FOSS Information Security Practices @OpenFest 07.11.2015
FOSS Information Security Practices @OpenFest 07.11.2015
Code Runners
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
Валентин Атанасов
Безопасност и защита на Web приложения
Безопасност и защита на Web приложения
DiNikolo
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Ilko Kacharov
Защита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в Интернет
Anton Shumanski
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojenia
Martin Kenarov
Безопасност и защита на Web приложения
Безопасност и защита на Web приложения
DiNikolo
Защита при създаване на Java приложения в интернет
Защита при създаване на Java приложения в интернет
Tanya Tabakova
Заплахи за уеб приложенията на фирмите и предлагани решения за защита
Заплахи за уеб приложенията на фирмите и предлагани решения за защита
Iva Dimitrova
Php sec referat
Php sec referat
Dido_mn
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
eismail
FOSS Information Security Practices @OpenFest 07.11.2015
FOSS Information Security Practices @OpenFest 07.11.2015
Code Runners
Защита при създаване на PHP-приложения в Интернет
Защита при създаване на PHP-приложения в Интернет
Валентин Атанасов
Безопасност и защита на Web приложения
Безопасност и защита на Web приложения
DiNikolo

Api автентификация и безопасност и защита на web

  • 1. API АВТЕНТИФИКАЦИЯ И БЕЗОПАСНОСТ И ЗАЩИТА НА WEB ПРИЛОЖЕНИЯ Поля Петкова специалност Информатика ф.н. 10611
  • 2. СЪДЪРЖАНИЕ  1. Въведение  2. Какво е API? Защо му е нужна автентификация?  3. Видове Api  4. Сигурност и автентификация на API  5. Web-приложенията? Какво знаем за тях?  6. Методи за атаки и защита на web приложения
  • 3. ВЪВЕДЕНИЕ  Използването на интернет с времето става все по неразривна част от нашия живот. Всекидневно се налага извършването на какви ли не действия изискващи автентификация.  Кражбата на лични данни и самоличност може да причини невъобразими щети на пострадалия потребител.  За да използват хората спокойно услугите, програмите и приложенията, които се създават всекидневно и особено тези, които изполват интернет, трябва да се подсигури тяхната безопосност.
  • 4. GIMME AN A! GIMME A P! GIMME AN I! API  API (Application Programming Interface) или Приложният програмен интерфейс е набор от кодове и стандарти за достъпване на уеб- базирани приложения и услуги.  Изграждането на приложение без API е равносилно на построяване на къща без врати.
  • 5.  Казано накратко API е вратата, през която трябва да минете, за да използвате приложения. Ако имате правилния ключ, ще имате възможност да достъпите продукти и услуги използвайки различни устройства.  Тъй като API се използват за събиране, записване и опресняване на информацията (update) важен момент е автентификацията. Чрез нея всеки потребител след регистрация може да докаже пред системата своята самоличност и да достъпи съответните ресурси, които се предлагат.
  • 6. ВИДОВЕ API  Публични – обвързани са с минимални или никакви договорни отношения. Може да бъдат с ограничени възможности;  Частни – имат сигурни договорни отношения. Позволяват използването на пълния потенциал и възможности на API.
  • 7. СИГУРНОСТ И АВТЕНТИФИКАЦИЯ НА API  Мисълта за ефективна защита на API трябва да бъде заложена още в процеса на формулиране на дизайна. Методите, които се използват за сигурност трябва да бъдат съобразени с бизнеса или вида потребители, които ще достъпват API. Ако то използва финансови данни през публични мрежи, е задължително да се вземат много сериозни мерки за сигурност.
  • 8.  Много малко API работят без никаква автентификация, като регистрация например. Повечето API използват една или повече техники за сигурност:  Идентификация Кой прави запитване към API?  Автентификация Наистина ли е този, който твърди че е потребителя?  Ауторизация Разрешено ли е на този, който опитва да достъпи съответните ресурси да го направи?
  • 9. ИДЕНТИФИКАЦИЯ И API КЛЮЧ  Една от първите стъпки, за да се подсигури едно API е да се избегне неоторизиран достъп. Един от начините да се определи кое приложение използва API е като се използва API ключ.  API ключовете са прости, произволни идентификатори работещи с HTTP заявки и параметри или нещо друго равностойно, но просто, което да се използва във всяка API заявка. За да може разработчика да създаде приложение с API трябва да използва уникален ключ, който да използва всеки път
  • 10. Тъй като тези ключове са прости и лесни за използване, те често не са криптирани, което ги прави сравнително лесни за откриване и атакуване от хакери. По тази причина използването им като средство за защита не е препоръчително, но от гледна точка на анализите и наблюденията е добро средство. Въпреки това за някои API подобен ключ е всичко, от което се нуждаят.
  • 11. АВТЕНТИФИКАЦИЯ  Автентификацията е начин да се покаже, кой сте вие за системата. Чрез този метод се показва дали някой, който се опитва да достъпи API е този, за който се представя. Методът за автентификация често използва потребителски имена и пароли, както и по- често използвания метод OAuth.
  • 12.  Потребителски имена и пароли  Автентификация базирана на сесиен достъп  OАuth  OpenID автентификация
  • 13. WEB-ПРИЛОЖЕНИЯТА? КАКВО ЗНАЕМ ЗА ТЯХ?  Накратко Web-приложение е софтуер, който работи в интернет браузъра. В това кратко определение може да се допълни, че този код е със строго определена цел. Това означава, че Web-приложението изпълнява една или повече зададени задачи.
  • 14. МЕТОДИ ЗА АТАКИ И ЗАЩИТА НА WEB ПРИЛОЖЕНИЯ  Препълване на буфера Буферът е временна област за съхранение на данни. Когато там се поставят повече данни, отколкото е предвидено първоначално от даден програмен и системен процес, допълнителните данни ще го препълнят. Това причинява част от данните да изтекат към други буфери, което може да разруши данните, които те съдържат или да запише върху тях.
  • 15. ЗАЩИТА НА WEB ПРИЛОЖЕНИЯТА ОТ ПРЕПЪЛВАНЕ НА БУФЕРА - Да се избягва използването на библиотечни файлове - Да се филтрират въвежданията от потребителите - Тестване на приложенията преди да бъдат внедрени
  • 16. CROSS-SITE SCRIPTING (XSS)  Най-общо казано Cross-Site Scripting (XSS) представлява начин за инжектиране на код в генериран HTML. Това става с помощта на променливите, предавани чрез метода GET или при нефилтрирано (непроверено) поле за специални символи, използвани в HTML.  Основно XSS се използва за крадене на сесия или „бисквитки” (“cookies”). XSS е атака, която използва уязвимост при приложението и „вмъква” нежелан код, който се изпълнява в браузера на крайния потребител.
  • 18. ЗАЩИТА ОТ CROSS-SITE SCRIPTING (XSS)  Подсигуряване, че динамично генерираните страници не съдържат потребителски данни, които не са проверени;  Ясно оказване на character set-а, който ползва страницата;  Използване на POST, а не GET във формите;  Използване на HTTP ONLY „бисквитки”.
  • 19. SQL ИНЖЕКЦИИ  При този вид атака нападателите получават достъп до уеб приложенията като добавят Structured Query Language (SQL) код към поле на уеб форма за въвеждане под формата на SQL заявка, което е искане към базата данни да изпълни специфично действие.  Обикновено по време на потребителското удостоверяване се въвеждат потребителско име и парола и се включват в запитване. След това на потребителя или му се предоставя, или му се отказва достъп в зависимост дали е дал правилни данни.
  • 20. ПРЕДПАЗВАНЕ ОТ SQL ИНЖЕКЦИИ  Да ограничи привилегиите за достъп на потребителите  Осигурете бдителност на потребителите по отношение на сигурността  Намалете информацията за отстраняване на бъговете  Тествайте Web-приложението
  • 21. DISTRIBUTED DENIAL OF SERVICES (DDOS) АТАКА  Най-общо казано DDoS атаките умишлено възпрепятстват достигането до информационните ресурси на Internet потребителя, обикновено чрез претоварване на мрежата чрез изпращане на излишен трафик от много източници. Този вид атаки обикновено се осъществяват като излишния трафик бъде инжектиран в онзи, който трябва да стигне до самите потребители.
  • 22. ПРЕДПАЗВАНЕ ОТ DDOS АТАКИ  Уверете се, че имате излишък от честотна лента във връзката на организацията с интернет  Уверете се, че използвате система за откриване на прониквания (Intrusion Detection System, IDS).  Поддържане на резервна интернет връзка с отделна база с интернет адреси за критични потребители
  • 23. SOURCE CODE DISCLOSURE (SCD)  В най-общи линии Source Code Disclosure (SCD) атаките позволяват на злонамерения потребител да получи изходния код на server- side приложение. Тази уязвимост предоставя на хакерите по-дълбоко познаване на логиката на самото Web-приложение.
  • 24. ЗАКЛЮЧЕНИЕ  Не се доверявайте сляпо на нищо и никой, подлагането на съмнение и тестове на вашите приложения ще гарантира продукти, които потребителите ще използват доверявайки личните си данни, ако се налага.