__pycache__ | ||
.idea | ||
datasets | ||
utils | ||
__init__.py | ||
environment.yml | ||
main.py | ||
nb.joblib | ||
README.md | ||
test_main.py | ||
vec.joblib |
Temat projektu
Projekt zwraca użytkownikowi informacje na temat tego czy przekazany poprzez API ciąg znaków zawiera w sobie próbę ataku z jednej z poniższych klas: Cross Site-Scripting SQL Injection OS Command Injection
Dane trenujące
Do wytrenowania sieci wykorzystano publicznie dostępne zbiory przykładowych payloadów: https://github.com/payloadbox/xss-payload-list/blob/master/Intruder/xss-payload-list.txt https://github.com/CyberM0nster/SQL-Injection-Payload-List- https://github.com/omurugur/OS_Command_Payload_List/blob/master/OS-Command-Fuzzing.txt
Dane "zwykłe" (w rozumieniu - wolne od próby ataku na aplikacje) uzyskano poprzez framework Faker (10200 wartości). Dane te wygenerowano z użyciem następujących funkcji: faker.ascii_company_email() faker.city() faker.country() faker.postcode() faker.street_address() faker.iban() faker.company() faker.credit_card_number() faker.date_of_birth() faker.domain_name() faker.job() faker.sentence(nb_words=10) faker.passport_number() faker.name() faker.phone_number() faker.ssn() faker.user_agent() Zbiór ten reprezentuje typowe dane wprowadzane przez użytkowników do formularzy w aplikacjach webowych.
Prezentacja do projektu
Prezentacja do projektu znajduje się pod tym adresem.
Test jednostkowe Rest API
Stworzonych zostało 8 testów API, zarówno dla metody GET jak i POST.
Dostęp do aplikacji
Aplikacja dostępna jest w sieci wydziałowej pod adresem:
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/docs
Instalacja odbyła się bez anacondy, ponieważ w kontenerze zabrakło wolnego miejsca na dysku.
Przykładowe wywołania (dla GET):
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/courtneybennett@miller.com - dane normalne
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/1))%20or%20sleep(5)# - sql injection
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/%3Cimg%20src=%22javascript:alert(2)%22%3E - xss
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/%22%7Cecho%20DKGJRP$((17%2B97))$(echo%20DKGJRP)DKGJRP' - os command injection
Sposób komunikacji poprzez POST można zobaczyć w pliku test_main.py