25
API АВТЕНТИФИКАЦИЯ И БЕЗОПАСНОСТ И ЗАЩИТА НА WEB ПРИЛОЖЕНИЯ Поля Петкова специалност Информатика ф.н. 10611

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

Embed Size (px)

Citation preview

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

API АВТЕНТИФИКАЦИЯ И

БЕЗОПАСНОСТ И ЗАЩИТА НА

WEB ПРИЛОЖЕНИЯ

Поля Петкова

специалност Информатика

ф.н. 10611

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

СЪДЪРЖАНИЕ

1. Въведение

2. Какво е API? Защо му е нужна

автентификация?

3. Видове Api

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

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

6. Методи за атаки и защита на web

приложения

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

ВЪВЕДЕНИЕ

Използването на интернет с времето става все

по неразривна част от нашия живот.

Всекидневно се налага извършването на какви

ли не действия изискващи автентификация.

Кражбата на лични данни и самоличност може

да причини невъобразими щети на

пострадалия потребител.

За да използват хората спокойно услугите,

програмите и приложенията, които се създават

всекидневно и особено тези, които изполват

интернет, трябва да се подсигури тяхната

безопосност.

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

GIMME AN A! GIMME A P! GIMME AN I!

API

API (Application Programming Interface) или

Приложният програмен интерфейс е набор от

кодове и стандарти за достъпване на уеб-

базирани приложения и услуги.

Изграждането на приложение без API е

равносилно на построяване на къща без врати.

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

Казано накратко API е вратата, през която

трябва да минете, за да използвате

приложения. Ако имате правилния ключ, ще

имате възможност да достъпите продукти и

услуги използвайки различни устройства.

Тъй като API се използват за събиране,

записване и опресняване на информацията

(update) важен момент е автентификацията.

Чрез нея всеки потребител след регистрация

може да докаже пред системата своята

самоличност и да достъпи съответните ресурси,

които се предлагат.

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

ВИДОВЕ API

Публични – обвързани са с минимални или

никакви договорни отношения. Може да бъдат

с ограничени възможности;

Частни – имат сигурни договорни отношения.

Позволяват използването на пълния

потенциал и възможности на API.

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

СИГУРНОСТ И АВТЕНТИФИКАЦИЯ НА API

Мисълта за ефективна защита на API трябва

да бъде заложена още в процеса на

формулиране на дизайна. Методите, които се

използват за сигурност трябва да бъдат

съобразени с бизнеса или вида потребители,

които ще достъпват API. Ако то използва

финансови данни през публични мрежи, е

задължително да се вземат много сериозни

мерки за сигурност.

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

Много малко API работят без никаква автентификация, като регистрация например. Повечето API използват една или повече техники за сигурност:

Идентификация

Кой прави запитване към API?

Автентификация

Наистина ли е този, който твърди че е потребителя?

Ауторизация

Разрешено ли е на този, който опитва да достъпи съответните ресурси да го направи?

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

ИДЕНТИФИКАЦИЯ И API КЛЮЧ

Една от първите стъпки, за да се подсигури едно API е

да се избегне неоторизиран достъп. Един от начините да

се определи кое приложение използва API е като се

използва API ключ.

API ключовете са прости, произволни идентификатори

работещи с HTTP заявки и параметри или нещо друго

равностойно, но просто, което да се използва във всяка API

заявка. За да може разработчика да създаде приложение с API

трябва да използва уникален ключ, който да използва всеки

път

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

Тъй като тези ключове са прости и лесни за

използване, те често не са криптирани, което

ги прави сравнително лесни за откриване и

атакуване от хакери. По тази причина

използването им като средство за защита не е

препоръчително, но от гледна точка на

анализите и наблюденията е добро средство.

Въпреки това за някои API подобен ключ е

всичко, от което се нуждаят.

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

АВТЕНТИФИКАЦИЯ

Автентификацията е начин да се покаже, кой

сте вие за системата. Чрез този метод се

показва дали някой, който се опитва да

достъпи API е този, за който се представя.

Методът за автентификация често използва

потребителски имена и пароли, както и по-

често използвания метод OAuth.

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

Потребителски имена и пароли

Автентификация базирана на сесиен достъп

OАuth

OpenID автентификация

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

WEB-ПРИЛОЖЕНИЯТА? КАКВО ЗНАЕМ ЗА

ТЯХ?

Накратко Web-приложение е софтуер, който

работи в интернет браузъра. В това кратко

определение може да се допълни, че този код е

със строго определена цел. Това означава, че

Web-приложението изпълнява една или повече

зададени задачи.

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

МЕТОДИ ЗА АТАКИ И ЗАЩИТА НА WEB

ПРИЛОЖЕНИЯ

Препълване на буфера

Буферът е временна област за съхранение на

данни. Когато там се поставят повече данни,

отколкото е предвидено първоначално от даден

програмен и системен процес, допълнителните

данни ще го препълнят. Това причинява част от

данните да изтекат към други буфери, което

може да разруши данните, които те съдържат

или да запише върху тях.

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

ЗАЩИТА НА WEB ПРИЛОЖЕНИЯТА ОТ

ПРЕПЪЛВАНЕ НА БУФЕРА

- Да се избягва използването на

библиотечни файлове

- Да се филтрират въвежданията от

потребителите

- Тестване на приложенията преди да бъдат

внедрени

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

CROSS-SITE SCRIPTING (XSS)

Най-общо казано Cross-Site Scripting (XSS)

представлява начин за инжектиране на код в

генериран HTML. Това става с помощта на

променливите, предавани чрез метода GET

или при нефилтрирано (непроверено) поле за

специални символи, използвани в HTML.

Основно XSS се използва за крадене на сесия

или „бисквитки” (“cookies”). XSS е атака, която

използва уязвимост при приложението и

„вмъква” нежелан код, който се изпълнява в

браузера на крайния потребител.

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

CROSS-SITE SCRIPTING (XSS)

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

ЗАЩИТА ОТ CROSS-SITE SCRIPTING (XSS)

Подсигуряване, че динамично генерираните

страници не съдържат потребителски данни,

които не са проверени;

Ясно оказване на character set-а, който ползва

страницата;

Използване на POST, а не GET във формите;

Използване на HTTP ONLY „бисквитки”.

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

SQL ИНЖЕКЦИИ

При този вид атака нападателите получават

достъп до уеб приложенията като добавят

Structured Query Language (SQL) код към поле

на уеб форма за въвеждане под формата на

SQL заявка, което е искане към базата данни

да изпълни специфично действие.

Обикновено по време на потребителското

удостоверяване се въвеждат потребителско име

и парола и се включват в запитване. След това

на потребителя или му се предоставя, или му

се отказва достъп в зависимост дали е дал

правилни данни.

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

ПРЕДПАЗВАНЕ ОТ SQL ИНЖЕКЦИИ

Да ограничи привилегиите за достъп на

потребителите

Осигурете бдителност на потребителите по

отношение на сигурността

Намалете информацията за отстраняване на

бъговете

Тествайте Web-приложението

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

DISTRIBUTED DENIAL OF SERVICES

(DDOS) АТАКА

Най-общо казано DDoS атаките умишлено

възпрепятстват достигането до

информационните ресурси на Internet

потребителя, обикновено чрез претоварване на

мрежата чрез изпращане на излишен трафик

от много източници. Този вид атаки

обикновено се осъществяват като излишния

трафик бъде инжектиран в онзи, който трябва

да стигне до самите потребители.

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

ПРЕДПАЗВАНЕ ОТ DDOS АТАКИ

Уверете се, че имате излишък от честотна

лента във връзката на организацията с

интернет

Уверете се, че използвате система за откриване

на прониквания (Intrusion Detection System,

IDS).

Поддържане на резервна интернет връзка с

отделна база с интернет адреси за критични

потребители

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

SOURCE CODE DISCLOSURE (SCD)

В най-общи линии Source Code Disclosure

(SCD) атаките позволяват на злонамерения

потребител да получи изходния код на server-

side приложение. Тази уязвимост предоставя

на хакерите по-дълбоко познаване на логиката

на самото Web-приложение.

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

ЗАКЛЮЧЕНИЕ

Не се доверявайте сляпо на нищо и никой,

подлагането на съмнение и тестове на вашите

приложения ще гарантира продукти, които

потребителите ще използват доверявайки

личните си данни, ако се налага.

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

БЛАГОДАРЯ ЗА ВНИМАНИЕТО!