Vous êtes sur la page 1sur 4

ESCEP

*****

Niveau : ING3 Module : Sécurité des applications Enseignant: ALMOU Bassirou

TD3
ARZIKI Business Center, une entreprise de commerce de produits vivriers, souhaite avoir une application
Web pour ses différentes agences implantées au Niger. Et voici un extrait de son système informatique
(voir la figures 1).

Figure 1 : architecture du réseau


Partie 1. (11 points)
1. Donner 10 avantages d’un serveur Proxy
2. Donner les points forts et faibles de PostgreSQL et MySQL
3. Donner les points forts et faibles d’un SGBD orienté SQL et un SGBD orienté NoSQL
4. Qu’est-ce qu’une injection SQL. Testez une injection SQL sur votre propre application Web.
5. Comment éviter une injection SQL
6. Donner les quatre avantages du TLS. Et donner les étapes de sa configuration
7. Donner trois (7) attaques sur le serveur d’application Web. Et proposer des solutions techniques
pour contrer ces différentes attaques
8. Donner trois (7) attaques sur le serveur d’application Web. Et proposer des solutions techniques
pour contrer ces différentes attaques
9. Donner la procédure technique d’implémentation d’un serveur antiviurs clamav

1/4
10. Donner le rôle et la différence entre IDS et IPS
11. Ecrire un script Shell Linux ou Python qui permet de vérifier si les services mysql, nginx sur le
serveur Web, sont actifs. Au cas où un service est inactif alors alerter l’administrateur
12. Ecrire un script Shell qui permet de chercher les trois processus gourmands en mémoire RAM sur
les serveurs de base de données 192.168.2.5 et 192.168.2.7
13. Ecrire un script Python qui permet de connaitre les ports ouverts sur les serveurs Web et bases de
données
14. Ecrire un script qui effectue la mise à jour du serveur Web , nettoie les fichiers résiduels et ce,
chaque début du mois a 23 h
15. Ecrire un script Shell ou Python, qui permet de faire le dump de la base de données MySQL du
serveur 192.168.2.5 dans le fichier backupDB.sql, crypter ce fichier et l’envoyer sur le serveur
192.168.2.8 et ce, chaque dimanche à 23h
Ci-joint la structure de la base de données (sous PostgreSQL):
create database vente;
\c vente;
create table article(
ida SERIAL primary key,
article varchar(50) not null,
prix int not null
);
create table commande(
ncom SERIAL primary key,
jour timestamp default current_timestamp,
montant NUMERIC(8) not null,
etat NUMERIC (1) default 1
)
create table lignecommande(
lc SERIAL primary,
prixA NUMERIC(8) not null,
qte NUMERIC(8) not null,
ida INTEGER not null,
ncom INTEGER not null
);
insert into article(article,prix) values('mil',575);
insert into article(article,prix) values ('mais',350);
insert into article(article,prix) values ('riz',300);

insert into commande(montant,etat) values(575,1);


insert into commande(montant,etat) values(3500,1);
insert into commande(montant,etat) values(900,0);
insert into lignecommande(prixA,qte,ida,ncom) values(575,1,1,1);
insert into lignecommande(prixA,qte,ida,ncom) values(350,10,2,2);
insert into lignecommande(prixA,qte,ida,ncom) values(300,3,3,3);

16. Ecrire un script Shell ou Python, qui permet de répliquer les données de la base du serveur
PostgreSQL 192.168.2.5 vers le serveur Oracle 192.168.2.7
2/4
Voici la structure de la base de données sous Oracle :
create user c##vente identified by __vEnTe2024__;
grant dba to c##vente;
sqlplus c##vente/__vEnTe2024__
create table article(
ida NUMBER primary key,
article varchar2(50) not null,
prix NUMBER(8) not null
);
create table commande(
ncom NUMBER primary key,
jour timestamp default current_timestamp,
montant NUMBER(8) not null,
etat NUMBER(1) default 1
)
create table lignecommande(
lc NUMBER primary key,
prixA NUMBER(8) not null,
qte NUMBER(8) not null,
ida NUMBER not null,
ncom NUMBER not null
);

17. Ecrire un script Shell ou Python, qui alerte l’administrateur sur la température du microprocesseur
du serveur 192.168.2.5. Si la température dépasse 35o C alors alerter l’administrateur
18. Ce script permet de faire le backup complet du système :

#!/bin/bash
r='192.168.2.'
for x in 5 7;do
ping -c 5 $r$x
if [ $? -eq 0 ];then
ssh root@$r$x "tar cfj backup$x.tar.bz2 --exclude=/tmp --
exclude=/root/backup$x.tar.bz2 \
--exclude=/sys --exclude=/proc --exclude=/boot /"
if [ $? -ne 0 ]; then
echo "$(date +'%Y%m%d') backup realise avec succes sur $r$x">>
/var/log/backup.txt
fi
scp -3 root@$r$x :/root/backup$x.tar.bz2
root@192.168.2.8:/root/backup$x.tar.bz2
fi
done
Modifier ce script pour crypter le backup$x.tar.bz2 avant d’être envoyé sur le serveur de
fichiers 192.168.2.8

19. Ecrire un script Shell ou Python, qui permet d’automatiser la mise à jour le serveur de base de
données PostgreSQL et le serveur Web Nginx et ce, chaque dimanche à 22h30.

3/4
20. Ecrire un script Shell qui vérifie l’espace disque des serveurs de base de données 192.168.2.5 et
192.168.2.7. Si l’espace disque utilisé est supérieur à 70% alors alerter l’administrateur
21. Configurer le serveur Web Nginx pour qu’il accepte 100 connexions concurrentes au maximun
22. Sur le serveur Oracle 192.168.2.5, configurer le pare-feu avec iptables pour accepter uniquement
les trafics à destination du port 1521
23. Sur le serveur de base de données 192.168.2.5, définir une politique de sécurité par défaut qui
bloque les trafics dont les sources sont inconnues
24. Sur le serveur Web , configurer le pare-feu pour accepter au maximum 3 ping par seconde
25. Accepter le trafic des réseaux 192.168.1.0/24 et 192.168.3.0/24 vers le serveur d’application, de
8h à 22h30
26. Sur l’interface eth0 du pare-feu, accepter le trafic venant uniquement des serveurs des réseaux
192.168.1.0/24 et 192.168.3.0/24
27. Sur l’interface eth0 du pare-feu, accepter le trafic venant uniquement des serveurs du réseau
192.168.1.0/24 les jours ouvrables de 8h00 à 18h00 ; à destination du serveur de base de données
192.168.2.5
28. Accepter l’accès SSH sur le serveur 192.168.2.8 de la machine 192.168.1.11 qui a une adresse
mac dc :1e:ab:b1:ba:c4
29. Empêcher le serveur d'applications Web d'initialiser tout trafic
30. A l’entrée de l’interface eth0, bloquer 3 ouvertures de session SSH concurrentes sur le serveur des
fichiers 192.168.2.5
31. Bloquer l’attaque SYN-FLOOD et XMAS à l’entrée de l’interface eth0 du pare-feu principal
32. Bloquer les paquets vides à l’entrée de l’interface eth0 du pare-feu principal

Partie 2 : création d’une application de gestion de vente de produits vivriers (4 points)


33. Faire une étude comparative de 4 langages de programmation et choisir un, tout en justifiant le
choix. Les critères de choix doivent porter sur les principes de la sécurité
34. Ecrire un script qui permet de faire une attaque brute-force par tentative d’accès via un
dictionnaire de mots de passe jusqu’à trouver le bon mot de passe
35. L’entreprise vous demande de faire une étude comparative des systèmes d’exploitation Windows
Server 2019 et Oracle Linux Unbreakable. Dégager 5 points forts et 5points faibles de chaque
système et faire un choix.
Partie 3 : Conception et réalisation d’une application Web (5 points)
Objectif :
- Créer une application e-commerce avec Django et l’interfacer avec le serveur Web Nginx
- Créer une application e-commerce avec Laravel
- Créer une application e-commerce avec Golang
4/4

Vous aimerez peut-être aussi