Elaborarea unui program de fixare a încercărilor de a ataca obiectul protejat

Lista literaturii utilizate

Securitatea informațiilor - protecția confidențialității, integrității și accesibilității informațiilor. [1]

Confidențialitatea este o proprietate a resurselor informaționale legate de faptul că acestea nu vor deveni disponibile și nu vor fi divulgate persoanelor neautorizate. [1]

Integritate - invarianța informațiilor în procesul de transmisie sau stocare. [1]

Disponibilitatea - proprietatea resurselor informaționale, care determină posibilitatea primirii și utilizării acestora la cererea persoanelor autorizate. [1]

După cum reiese din cele de mai sus, pentru a asigura securitatea PI, este necesar să se studieze cu atenție toate nuanțele. Lucrul în acest domeniu nu se oprește nici măcar pentru un minut. Software-ul care furnizează securitatea IP devine din ce în ce mai sofisticat și include orice funcționalitate care este necesară în conformitate cu valul timpului. Resursele sunt dezvoltate pentru a ajuta specialiștii să rezolve problemele de securitate - de exemplu, bazele de date de virusi care conțin legături cu mijloacele de combatere a acestora. Aceasta înseamnă că relevanța oricărei evoluții legate de securitatea informațiilor este foarte mare.

1. Dezvoltarea programului

1.1 Sarcina pentru proiectul de curs

Subiect: Elaborarea unui program pentru stabilirea încercărilor de a ataca un obiect care trebuie protejat

Este necesar să se dezvolte un program care să scrie în fișierul de jurnal acțiuni identificate ca încercări de atac asupra obiectului protejat.

1.2 Selectarea instrumentelor

1.3 Descrierea structurii aplicației

Un program de cinci fișiere cu extensie.php:

fișierul logger.php care efectuează sarcina principală de a calcula conexiuni potențial periculoase și de a ține evidența acestora.

config.php este un mic fișier de configurare care conține informațiile necesare pentru conectarea la baza de date MySQL și folosit de alte fișiere de script.

Figura 2. Aspectul paginii de administrare admin.php.

authorized.php este o imitație a paginii resurselor informaționale a utilizatorului, numai link-urile tipice pentru paginile personale ale utilizatorilor sunt prezentate de la controale. Mai mult, crearea unei pagini de utilizator nu are prea mult sens în ceea ce privește obiectivele acestui proiect, așa cum se arată în Figura 3.

Figura 3. Aspectul paginii authorized.php.

1.4 Descrierea tabelelor de baze de date MySQL

În baza de date MySQL va fi creată o bază de date cu trei tabele, fiecare având un scop individual. Nume de tabele de baze de date:

"utilizatori" - așa cum sugerează și numele, conține datele de înregistrare ale utilizatorilor resursei.

"danger_connect" - un tabel în care sunt plasate înregistrări despre conexiuni potențial periculoase, acestea nu sunt șterse și pot fi verificate în orice moment de către administratorul de resurse.

Comenzile pentru crearea de tabele în baza de date au fost executate în consola client mysql-client sub formă de interogări SQL standard la baza de date în conformitate cu Figura 4.

Figura 4. Interogări SQL pentru crearea de tabele în baza de date.

Fiecare dintre tabele conține mai multe câmpuri (coloane), fiecare având un scop individual.

„Id“ - un câmp care conține un ID unic de utilizator, tip de câmp INT întreg (4) (în paranteze indică numărul de octeți alocat pentru a stoca valoarea) este incrementat DBMS la adăugarea unui nou utilizator prin instrucțiuni specifier creare tabel AUTO_INCREMENT.

"user" - conține în mod natural numele de utilizator, are tipul de caractere CHAR (10).

"pass" - conține atât parola utilizatorului, cât și tipul de caractere CHAR (15).

"time" - câmpul care stochează intrarea despre data și ora încercării de conectare are un tip special pentru stocarea datei și orei DATETIME.

"time" - conține timpul de încercare a conexiunii, care în funcție de logica programului este potențial periculos, este de tip DATETIME.

Figura 5. Interogări SQL la baza de date, afișând structura câmpurilor din tabele.

Figura 6. Interogări SQL la baza de date pentru crearea de conturi.

1.5 Descrierea algoritmului programului

Acum, să ne uităm la lucrarea fiecărui fișier. Să începem în ordine.

Fișierul index.php. Acesta este un document HTML normal, cu inserarea codului PHP. Structura HTML nu va fi luată în considerare în detaliu, deoarece este secundară, cu excepția etichetei

, descriind elementele interactive ale paginii. Eticheta în sine este utilizată în formular . Există mai mulți parametri:

"nume" - conține numele formularului care poate fi folosit în apeluri pentru a forma elemente prin structura ierarhiei documentului HTML.

„Metoda“ - un parametru important care indică modul în care transferul de date php-script care utilizează metoda POST, care este mai sigur decât metoda GET, deoarece, în acest caz, datele formularul este transmis în corpul HTTP-cerere, mai degrabă decât în ​​URL-ul, care este vizibil .. utilizator și, prin urmare, este ușor de forjat.

Apoi, ia în considerare micul fișier de configurare config.php.

Există doar 4 linii care conțin parametrii conexiunii la baza de date:

"$ dbhost =" localhost "" - șirul conține urlul gazdei pe care se află baza de date, în acest caz valoarea localhost înseamnă că baza de date este pe același server.

"$ dbadmin =" root "" - numele administratorului DBMS.

"$ dbpass =" c2h5oh "" este parola administratorului DBMS.

"$ dbname =" attack_logger "" - numele bazei de date în care sunt stocate tabelele care se referă la proiectul nostru.

În continuare, ia în considerare fișier logger.php care face toate lucrările. Script-ul începe cu linia „require_once«./config.php»“, care se conectează la acest script fișierul de configurare config.php, ca urmare, variabile declarate în cadrul acesteia sunt puse la codul de script-ul curent.

Următoarea linie verifică dacă variabila "go" (flag) este setată în matricea globală $ _POTS, prezența căreia înseamnă că datele sunt transferate din formular în script pentru procesare. Iată linia:

$ rows = 0 - variabila necesară pentru a lucra cu baza de date.

$ flag = $ _ POST ['go'] este o variabilă care stochează valoarea pavilionului "go" descris mai sus.

$ user = $ _ POST ['user'] este o variabilă care primește numele de utilizator din formular, care este extras din matricea globală $ _POST.

$ pass = $ _ POST ['passwd'] - o variabilă care primește o parolă din formular.

$ Timevisit = data ( 'Y-m-d H-i-s') - Aceasta stochează variabili data și ora curentă obținută prin apel la "data", într-un format compatibil cu DATETIME utilizate în baza de date MySQL pentru a stoca această valoare.

În listare 4, scriptul este conectat la DBMS, iar baza de date este selectată pentru operare.

Acum este momentul să verificați validitatea login-ului și a parolei introduse de utilizator. Pentru aceasta, o interogare SQL este compilată și executată folosind funcția mysql_query, verificând executarea cu succes a interogării. Apoi verificăm rezultatul returnat de funcție. Mai întâi, calculați numărul de rânduri returnate. Aceste acțiuni sunt afișate în Lista 8.

Acum, ia în considerare opțiunea când login-ul / parola nu este corectă. Codul care efectuează această funcție este afișat în Lista 10.

Următoarea linie închide conexiunea cu baza de date MySQL în mod explicit, deși la sfârșitul scriptului resursele vor fi eliberate automat.

În cele din urmă, linia finală a scriptului, care va funcționa numai în cazul unei eventuale defecțiuni, rezultând variabila "Go", nu va fi instalată. Linia trimite doar textul care anunță ce sa întâmplat.

În acest moment scriptul logger.php este terminat, puteți trece mai departe.

În listare 11, se verifică dacă este setată variabila "vezi".

Pentru a testa setarea variabilei "vezi", aceasta este căutată după numele ei în matricea globală $ _POST. Apoi conectați-vă la baza de date MySQL. Acum trebuie să selectăm în DBMS baza noastră de date pentru lucru. Datele pentru conectarea și selectarea bazei de date sunt preluate din fișierul de configurare config.php, care este conectat la începutul fișierului admin.php în linia "require_once" ./ config.php "". Acum, creăm o interogare SQL, care extrage toate datele din tabela periculoasă a conexiunii pericol_connect. Apoi trebuie să executați această interogare în baza de date și să obțineți rezultatul. Apoi, pentru a ieși la documentul HTML a fost structurat, trebuie să determinați numărul de rânduri și coloane primite din baza de date. Acest lucru se face folosind funcțiile create special pentru aceasta. Funcția mysql_numrows returnează numărul de rânduri din rezultat din baza de date. Funcția mysql_numfields returnează numărul de câmpuri, adică coloanele din rezultatul obținut din baza de date. Codul este afișat în Lista 12.

Codul din Lista 13 afișează sub forma unei tablete datele primite din baza de date:

Există două bucle imbricate "pentru" care selectează datele din rezultat utilizând funcția mysql_result și le trimit folosind funcția "ecou". Ieșirea paginii va arăta similar cu Figura 8.

Apoi, închideți conexiunea cu MySQL și procesați cazul când variabila "vezi" nu este setată, ieșind un spațiu în acest caz în locul unui tabel.

Figura 8. Rezultatul rezultatului interogării prin bucla imbricată.

Luați în considerare ultimul fișier autorized.php, care implementează funcționalitatea paginii personale a utilizatorului. Acesta este un document HTML normal, cu introducerea codului php. Codul este afișat în Lista 14.

Aici, toate funcționalitatea este retragerea de litere mari roșii numele de utilizator în salutarea. În cazul unui număr mare de utilizatori reali ai resursei ar fi adecvate pentru a crea tabelele bazei de date de stocare a datelor cu caracter personal pentru fiecare utilizator și „pull“ a derivarea paginii concentrandu-se pe recepționată în matrice globală ($ _GET [ „utilizator“]) numele de utilizator, punerea în aplicare a acestor caracteristici în acest fișier.

2. Manual de utilizare

Manualul de utilizare în acest caz este foarte ușor, deoarece funcționalitatea este implementată automat, fără participarea activă a utilizatorului. Recomandările sunt adresate numai administratorului. Împărțim folosirea sistemului în pași și le considerăm secvențial.

Pasul 2. Introduceți numele de utilizator și parola, în conformitate cu Figura 11.

Figura 11. Introduceți numele de utilizator și parola.

Pasul 3. Apărăm pe pagina administratorului, conform Figura 12.

Figura 12. Pagina pentru administratorul resursei de informații.

Figura 13. Afișează informații despre încercările de a ataca.

În acest curs, sunt rezolvate sarcinile de dezvoltare a unui program de fixare a atacurilor asupra obiectului protejat.

Pe baza celor de mai sus, putem vorbi despre realizarea cu succes a obiectivelor cursului de lucru.

Lista literaturii utilizate

// Manipulați funcțiile de ștergere a etichetelor HTML (pentru a exclude posibilitatea

// (pentru a exclude posibilitatea de a scrie scripturi pe Perl).

// Conectați-vă la baza de date

mysql_connect ($ dbhost, $ administratorbd, $ dbpass) sau die ( "EROARE" .mysql_errno () "" .mysql_error ().);

mysql_select_db ($ dbname) sau muri ("ERROR" .mysql_errno (). "" .mysql_error (). "\ n");

// Verificați prezența acestui ip în tabela de control

$ sql_exist_ctrl = "selectați num_logon din log_control unde ip = '". $ ip. "'";

$ Res = mysql_query ($ sql_exist_ctrl) sau die ( "EROARE" .mysql_errno () "\ N" ".mysql_error ().".);

dacă ($ rows == 0) // dacă ip nu este scris

/ / Introduceți un nou IP în lista de verificare

$ sql_begin_ctrl = "introduceți în log_control set time = '". $ timevisit. "', ip = '". $ ip. "', num_logon =". $ i;

mysql_query ($ sql_begin_ctrl) sau die (.mysql_errno "EROARE" () "\ n" ".mysql_error ().".);

else // dacă ip există deja în tabel

// verificați validitatea perechii de login-parolă

$ sql_autoriz = "selectați id de la utilizatori unde user = '". $ user.' 'și pass =' ​​". $ pass.

$ Res = mysql_query ($ sql_autoriz) sau die ( "EROARE" .mysql_errno () "\ N" ".mysql_error ().".);

dacă ($ rânduri> 0) // dacă parola de conectare este corectă

// ștergeți înregistrările din tabelul de contra

$ sql_end_ctrl = "șterge din log_control unde ip = '". $ ip. "";

altceva // DACĂ parola de conectare este incorectă

$ i ++; // crește numărul încercat cu 1

$ sql_up2i_ctrl = "actualizare log_control set num_logon =". $ i "unde ip = '". $ ip. "";

// set. Noua valoare a numărului încercat în tabelul de control

mysql_query ($ sql_up2i_ctrl) sau die (.mysql_errno "EROARE" () "\ n" ".mysql_error ().".);

dacă (($ i% 3) == 0) // dacă numărul acestei încercări este un multiplu de 3m

$ sql_danger_connect = "introduceți în pericolul setat de periculos_connect = ''. $ timevisit. '', ip = '". $ ip. "";

mysql_query ($ sql_danger_connect) sau muri ("ERROR" .mysql_errno (). "" .mysql_error (). "\ n");

// parametru care indică autentificarea nereușită a utilizatorului.

echo "EROARE Nu este setată variabila Go!";

Un program care va scrie în fișierul de jurnal acțiuni identificate ca încercări de a ataca obiectul protejat. Limba de programare PHP. Descrierea tabelelor MySQL. Algoritmul programului. Rezultă rezultatul interogării printr-o buclă imbricată.

Caracteristicile lucrării arhivatorului - un program de calculator care comprimă datele într-un fișier de arhivă pentru transfer mai ușor, depozitare compactă. Caracteristicile procesului de arhivare - scrierea și dezarhivarea fișierelor - deschiderea fișierelor.

Caracteristicile funcționale ale programului pentru formatarea fișierelor text, cerințele pentru interfața și datele sale. Schema de interacțiune a componentelor sistemului, selectarea mediului de execuție și implementarea de software a algoritmilor. Testarea și evaluarea calității programului.

Compilarea unui program care efectuează o operație aritmetică asupra numerelor pozitive în ceea ce privește valorile introduse de x, y și numărul de acțiune. Algoritmul și codul programului. Realizarea seturilor de testare. Testarea și rezultatul programului.

Caracteristicile formatelor de fișiere wav și mp3. Utilizarea diagramelor casetelor de utilizare, dezvoltarea unei interfețe grafice și a unei arhitecturi de aplicații. Dezvoltarea algoritmilor pentru program: TrimWavFile, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2.

Caracteristicile programului în limba VBA, care introduce datele originale, efectuează calcule și afișează rezultatele pe ecran. Descrierea variabilelor din program, a diagramei sale și a algoritmului de funcționare. Listarea programului. Descrierea datelor de intrare și a rezultatelor calculelor.

Matrice transformare în conformitate cu reguli date. Metoda de lucru cu matrice, bazată pe algoritmi clasici. Dezvoltarea și descrierea diagramă a algoritmului. Afișarea programului, a ecranelor de lucru și a programului de depanare. Instrucțiuni pentru utilizatorii programului.

Descrierea caracteristicilor limbajului de programare Turbo Pascal. Scrierea unui program pentru crearea de fișiere cu acces direct, care să se ocupe și de seturi de date cu anumite câmpuri și restricții. Un test pentru un motor de căutare.

Algoritmul pentru scrierea unui program de căutare a fișierelor muzicale în catalogul electronic al magazinului în limbajul de programare C ++. Proiectarea meniului consolei pentru a oferi interacțiunea utilizatorului cu computerul. Testarea programului pe compilator.