Archives pour l'étiquette Sécurité

Sécurité en Vidéo … le fail du LoupZeur

Plop à tous …

Histoire de passer moins de temps à bloguer (déjà que je n’écrit plus grand chose), je me suis dit que faire des vidéos serait plus facile, on tourne le truc, on upload et basta …
L’idée était de faire un truc assez complet sur « comment sécuriser un site web » avec pas mal d’outils libres/gratuits (iptables, apache, modsecurity, ossec, tomoyo, …).

La vidéo d’intro c’est plutot bien passé, 5 minutes sans coupure, un son pas trop moche, un upload rapide …

La première vidéo parlant de la sécurité apache et modsecurity à été plus laborieuse … 45 minutes de « tournage », le micro branché sur la jack de sortie (donc c’est le micro interne de l’ordi qui a enregistré le son….), énorme décalage son/vidéo, 1 heure d’upload :/, un bon fail de 10 minutes sur une regexp …

J’essaierai de voir comment ça se passe dans les prochaines vidéos mais au final, écrire un article reste plus simple ^^, je suis pas sur de terminer la « série », mais ça reste intéressant de découvrir les difficultés propres à ce domaine, entre l’encodage de la vidéo, de l’audio, la synchro, le conteneur, … j’ai appris pas mal de chose, au pire je tenterai un upload live via rtmp avec ffmpeg sur youtube histoire de rire.

Voilà, amusez vous bien 😉

Linux MAC (Mandatory Access Control) avec Akari (Tomoyo)

Plop à tous …

Aujourd’hui je vais parler MAC (Mandatory Access Control), l’une des techniques les plus simple pour contrôler l’ensemble des actions des processus sous linux et pourtant si peux utilisé :s.

Généralement en MAC, on parle souvent de GrSec, AppArmor ou encore de SeLinux.

Entre apparmor qui gère à peine le réseau (ça se limite à autoriser de l’udp ou du tcp, sans plus de détaille), SeLinux avec ses liens avec la NSA, ainsi qu’une syntaxe hardcore et GrSec qui nécessite de patcher son kernel.
Continuer la lecture de Linux MAC (Mandatory Access Control) avec Akari (Tomoyo)

LoupZeur à la recherche d’un emploi

plop,

Je viens de terminer mon alternance pour mon Master (Bac+4), et je suis donc à la recherche d’un emploi dans la region Alsace (Strasbourg et environs) dans le domaine de l’informatique bien sûr ;).

Mon superbe CV en html est dispo ici.

Les domaines qui m’intéressent :

  • L’administration système (Linux)
    • Services maitrisés :
      • Web : Apache (php,modsecurity), nginx
      • DB : MySQL
      • Failover : RHC (RGmanager, corrosync, …), DRBD (réplication de bases de données)
      • VPN : OpenVPN, Cisco, pptpd
      • Mail : Exim/Dovecot
      • Partage de fichiers : (pro|pure)ftpd, samba
    • Gestion des utilisateurs, des droits, …
  • Sécurité informatique (Linux)
    • Évaluation des risques
    • Audit (pas de quoi être un pentester pro, juste assez pour comprendre les vecteurs d’attaques)
    • Définition et mise en place des SP, AC et RAP (Iptable, Akari, ModSecurity, /etc/security)
    • Mise en place de solutions de chiffrement de connexions (IpSec, SSL, Vpn) et de données (Cryptoloop, …)
    • Définition et mise en place d’architectures réseaux et systèmes « sécurisées » (Ossec, Snort/Suricata, Prelude) à coupler avec les SP, AC et RAP.
  • Développement
    • Langages, méthodes et … : Cf. CV

Si jamais mes compétences peuvent vous sembler utile, mon mail et mon téléphone sont dispo sur le CV.

Bonnes vacances.

Automatiser la récupération et la compilation du kernel et de son patch GrSec

Plop à tous…

Petit truc de geek … un script pour automatiser la récupération du dernier kernel stable depuis le site kernel.org puis le dernier patch grsecurity à appliquer sur le kernel en question (qui sort généralement un jour après la release du kernel).
Sur ubuntu, il faut tout d’abord installer le paquet kernel-package :

sudo apt-get install kernel-package

Puis récupérer le script suivant (nommé chez moi recupKernel.pl dans la commande qui suivra) :

Il suffit ensuite d’executer la commande suivante :

perl recupKernel.pl && cd linux-* && make menuconfig && make-kpkg clean && make-kpkg --initrd --append-to-version "LoupZeur-grsec" kernel_image

Ce qui générera un fichier .deb qu’il faudra installer par un bon vieux dpkg -i.

PS: Lors de l’execution de la commande make menuconfig, une fenetre « bleu » apparaitra, il faudra selectionner la menu « security », puis grsecurity et choisir le niveau de sécurité « HIGH ».

PS2: Il faut aussi bien entendu selectionner ou deselectionner tout les modules inutiles (genre usb, support agp et … ).

P’tite News …

Bijour à tous …

Quelques petites infos …

Côté sécurité informatique … z’avez sûrement entendu parler de Wapiti, une alpha a été release il y a peu (la 1.1.7), avec l’ajout de nouvelle règle pour contourner les scripts de détection de XSS/SQL Injection …

Je manquais d’idée pour coder mon toolz (cf. 2g’s web vulnerability scanner), me voilà reparti, d’ici là, je commiterai des fix pour windows (jusque là c’était inutilisable …), certaines idée semble plutôt sympa, et se retrouveront sûrement dans mon logiciel ^^, c’est beau l’open-source!! (cela dit, je suis très loin de ce superbe outil ;-)).

Maltego2.10 est sortie depuis un bail déjà mais bon …pour ce qui savent pas trop à quoi sert ce logiciel :

C’est pour faire comme les RG … ça permet de récupérer et de mettre en forme des ensembles d’information sur des données sur le net (genre lié des adresses mail à des noms, des noms de domaines, des ip’s, …). Ce qui peut être utile pour du social engineering voir que sur internet personne n’est inconnu ^^ … c’est zarb … je trouve pas ma grand-mère avec ce toolz ;-).

Google chrome sort le dev-channel … pour avoir les dernières up avant tous le monde 😉 … pourquoi les autres blogs n’en parlent pas ??? Je suis « has been » ou « on the edge » là?? A quand le paquet .deb pour Ubuntu? ^^

Du côté personnel, j’arrête php-engineering (fin du domaine pour le 31 octobre), j’ai déjà déréférencer le site, histoire que le parking qui le remplace ne rapporte rien ^^ (avoué qu’il n’y avait plus grand chose à déréférencer!!).

Niveau boulot, je suis depuis 1 semaines déjà, développeur chez advisa en alternance avec ma licence CDED (quoi tous le monde s’en fout ??). Juste un truc pour les DUT/BTS info qui veulent faire une licence pro … la CDED saymal … que de la gestion de projet … très peu de dev et de sys :-s.

Sinon, par rapport à mon boulot, ma mission est … si je l’accepte bien sûr de dev un outil d’envoi de spam de newsletters en liaison avec le CMS de la boite ou à partir d’une liste de mails, avec la possibilité de dev la chose en plusieurs partie (CLI, interface web et …) selon plusieurs orientation possible (choix de la structure de la bdd et de la forme de la chose)… et bien sûr la possibilité de récupérer les stats (lecture du mail, clics sur les liens, …) et plein d’autre réjouissance en cours de route. Malheureusement le tout en PHP … pas un misérable bout de C++/QT :’-(

Juste une question … pourquoi moi???^^ Je déteste les mails et encore plus les newsletters …

Paranoïa sur le net …^^

Bijour à tous …

En ces temps tumultueux sur internet, et suite notamment à cette article, me voici dans ma période « faire joujou avec l’anonymat et le chiffrage ».

Bon question anonymat je suis cuit (suffit de taper mon pseudo sur google et …), mais bon je peux rattraper le coup avec le chiffrage de mes données sensibles!!

Donc voilà quelque astuces pour épargner vos informations persos (mdp, …) des flics véreux, des FAI ou des personnes mal intentionnées.

Pour l’anonymat et la sécurité des données sur le net :

  • Courriels :
    • Connexion aux webmails/serveurs de mails en cryptées :
      • Soit par le protocole https pour les webmails
      • Option https de Gmail
      • Soit par les protocoles imaps / pop3s
    • Envoyer les messages et les pièces jointe chiffrées (quand ce sont des informations qui en valent la peine bien sûr ^^) :
      • Utiliser les clés de chiffrages GPG quand l’interlocuteur en a une.
      • Utilisation de l'extension FireGpg pour chiffrer et signer un message sur gmail
      • Utiliser des cryptages symétrique sinon (AES, RSA, …) en gardant à l’esprit que ça se casse facilement.
  • Messagerie instantanée :
    • Utilisation de chiffrage lors des authentifications (cf. option Amsn pour MSN)
    • Chiffrer les messages avec l’interlocuteur si le protocole le permet (cf. XMPP)
  • Navigation Web :
    • Préférer les systèmes d’authentification cryptés lors de l’utilisation d’identifiant/mdp (car ceux-ci devront être enregistré par le FAI si la loi cité dans le lien passe, … donc si c’est crypté ils ne peuvent rien en faire).
    • Utiliser des proxies (Tor ;)) situé dans d’autre pays (et de préférences crypté) lorsque vous navigué sur des pages à contenu … litigieux?? (warez, … ^^ mais qui donc oserais??)
    • Sinon, prendre un login et un mot de passe bidon pour tous les autre sites

Pour la sécurité des données de votre PC :

  • Cryptage des données :
    • Partition entière ou répertoire :
    • Chiffrage de quelque données perso via GnuPG
  • Suppression des données :
    • Préférer des commandes de destruction et non l’utilisation de la corbeille ou du rm :
      shred -n 35 -z -u nomDuFichier

      Pour les fichiers qui en valent la peine ^^, genre les films qui ont été gravé ;), et bien sûr éviter d’utiliser des partitions journalisées pour ce genres de données.

  • Accès physique à l’ordinateur : (ça peut arriver ^^)
    • Mettre un mot de passe au lancement du BIOS.
    • Mettre un mot de passe au lancement du GRUB. (bof bof)
    • Utiliser un bon mot de passe pour le lancement des sessions (avec un système de cryptages des partitions qui décrypte les partitions qu’a partir du moment où l’on est loggué, ça peut être super efficace).

Bon … faudrait pas que ce soit au point de vous dégouter de l’informatique ^^. Mais envisager de changer certaine de ces habitudes quant à l’utilisation des logins/mdp et du chiffrages de certain de ses courriels pour être assez utiles pour l’avenir …

Voilà, le chiffrage c’est bien sûr comme les préservatifs … c’est pas sûr à 100%, mais avec c’est mieux :p, et ont à tendance à ce prendre pour un agent secret lorsqu’on reçoit un message crypté^^

Php: éviter les injections tout en préservant l’intégrité des données

Re bijour ^^

Encore une astuce à haute valeur philosophique …

Rapide rappel :

Pour éviter les SQL injections … la plupart du temps on fait appel à des addslashes, mysql_real_escape et … qui peuvent s’avérer dangeureuse suivant qu’on utilise du PHP5 ou PHP4 (et encore … la plupart du temps, il faut regarder les sous-sous version), alors il faut faire des fonctions qui teste tout et n’importe quoi … mais on est jamais sûr que sur tel ou tel serveur le script est sécurisé …

Alors voici une rapide astuce qui permet d’assurer la sécurité et l’intégrité des données (qui peut fonctionner tant que l’on ne fait pas d’insertion ^^).

Utiliser du md5!!! ou un autre type de chiffrage via crypt, … qui vous permettront de préserver l’intégrité des données transportées tout en ne portant pas préjudice au serveur SQL.

Exemple lors du login d’une personne, la requête associée pourrait être :

mysql_query(« select * from utilisateurs where login=' ».mysql_real_escape($_POST[‘login’]). »‘; »);

donc si un jour on transfert ce code sur un serveur ayant php 4.2 … le script ne marche plus ^^ (d’accord … qui irait passer de php5 à php 4.2 -> c’est pour l’exemple).

Par contre avec ce code :

mysql_query(« select * from utilisateurs where MD5(login)=' ».md5($_POST[‘login’]). »‘; »);

aucun problème … ^^ et vous êtes sûr que si ça renvoie une ligne ça soit la bonne ;).

Bon comme dit dans l’introduction, il faut quand même insérer des données (et ouai ça arrive parfois :p), et là … ça ne marcherait plus trop à part si vous êtes billingue français/md5.

A propos de billinguisme français/md5, y’a un superbe logiciel qui permet de craquer du md5 de façon sympa et très rapide les md5 (md5brute : http://www.tuxemu.se.nu/)

Bloquer les visiteurs de votre site web utilisant tor

Bonjour à tous …

Rapide astuce pour bloquer l’accès à votre site web depuis un réseaux Tor :

Il suffit de mettre le code suivant au début de vos page php (header ou autre).

A noter qu’il faudrait peut-être tester aussi les port 9001 (autre port de tor) et le port 8118 (le port de privoxy)
[sourcecode language= »php »]if(@fsockopen($_SERVER[‘REMOTE_ADDR’], »9050″,$err1,$err2,0.5))
{
die(« Vous n’êtes pas autorisé à accéder à ce site web via le réseau Tor. »);
}[/sourcecode]
Ce qui aura pour effet de bloquer l’accès au site en affichant le superbe message dans le die().

Mais pourquoi bloquer l’accès au visiteur utilisant le réseaux tor ? Tous simplement parce que des hackers s’éclatent à scanner des sites web (via acunetix ou autre) pour trouver des failles … en utilisant le réseau tor pour masquer leurs ip et ainsi agir en toute impunité.

Pour aller plus loin …

Si vous êtes futé … vous aurez remarqué qu’ici on test le port 9050 du client (le port de tor), l’on pourrait bien sùr créer un tableau pour bloquer l’accès au client ayant le port 8080 (proxy http) ouvert, ou bien d’autre ports réputés être le port d’un proxy ^^.

Utilisation de socat avec Tor

Bonjour à tous …

Alors voilà, dans mes éternelles idées stupide, j’ai voulu rediriger des ports de mon ordi sur d’autres ordis via le réseaux tor

L’intérêt ?? L’anonymité bien sûr xD. (et d’autre chose bien plus suptile, mais bon :)).

Imaginons (simple exemple (très inutile)), que l’on veuille ce connecter au superbe site php-engineering.info (donc au port 80), en passant par une addresse local, qui redirigera via le proxy tor au site du domaine php-engineering.info.

Les outils :

socat et tor (a installer si ça n’est pas déjà fait).

La commande de socat à exécuter :

socat TCP4-LISTEN:1337,fork SOCKS4A:localhost:www.php-engineering.info:80,socksport=9050

(avec tor sur le port 9050 bien sûr ^^).

Ensuite, prenez votre navigateur favoris et allez à l’adresse http://127.0.0.1:1337, et là comme par magie vous tombez sur le site de php-engineering.info. Oui mais la vous allez dire : qu’est-ce que tu nous sort là … on a des proxy qui nous permettent de faire ça … (via privoxy ou autres astuces).

Oui, mais là l’astuce c’est que l’on peut utiliser notre navigateur, mais aussi d’autre logiciel qui ne peuvent pas utiliser des proxies (qui a dit nmap??).

Donc voilà … vous voulez jouer à ETQW sur un serveur via un proxy tor … vous avez la solution ;).

Se protéger contre la failles CSRF

Bonjour,

Avec la technologie ajax, les failles CSRF commencent à fleurirent sur internet. Mais qu’est-ce que la faille CSRF ?

Un petit tour sur Wikipedia suffit, ça signifie : Cross-Site Request Forgeries, en fait, il s’agit d’une technique très simple de hacking, qui consiste à rediriger une personne (de préférence un administrateur), sur son site avec des requêtes (en GET ou en POST cf. Protocole HTTP) susceptible de porter atteinte au contenu du site web.

Exemple :

Soit le Pigeon P, administrateur d’un site web dans lequel l’url suivante : http://p-site/post.php?titre=titre&art=article permet l’ajout d’un article avec le titre et le contenu de l’article (exemple stupide).

Imaginons, que P fréquente souvent un forum F, et qu’un Hacker H le sache, il suffit à H de mettre le code suivant comme avatar : http://p-site/post.php?titre=Owned&art=hacked, générant donc sur le forum F, le code suivant : <img src= »http://p-site/post.php?titre=Owned&art=hacked » />, lorsque P regardera le post du hacker H, son navigateur cherchera l’image du lien, et executera l’ajout de l’article (si P était encore authentifié sur son site bien sûr …).

Vous aurez donc très vite compris l’interêt de ce déconnecter d’un site web, d’un forum ou d’un blog tous de suite après avoir effectué vos actions courante …

Bien entendu ce protéger de ce genre d’attaque peut être mieux que de ce déconnecter à chaque fois, d’autant plus que parfois, ça arrive, on oublie de ce déconnecter.

Une technique de protection pour une requête de type POST peut-être la suivante :

$url_de_votre_site="http://www.php-engineering.info/";
if($_SERVER['REQUEST_METHOD']=="POST" AND
!preg_match("#^".$url_de_votre_site."#i",$_SERVER['HTTP_REFERER']))
{
echo "Tentative de CSRF sur un formulaire";
exit;
}
?>

Une technique de protection pour une requête de type GET peut-être la suivante :

$url_de_votre_site="http://www.php-engineering.info/";

//les fichiers auquels on ne peut accéder directement via un autre site
$tab_fichier_interdit[]="edit.php";
$tab_fichier_interdit[]="supprime.php";

if($_SERVER['REQUEST_METHOD']=="GET" AND
!preg_match("#^".$url_de_votre_site."#i",$_SERVER['HTTP_REFERER']))
{
$f=substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],"?"));
//on enlève ce qui est après le ?
$f=substr($f,strrpos($f,"/")+1,strlen($f));
//on isole le nom du fichier

//et on regarde si c'est un fichier qui ne doit pas être accéder
//directement depuis un autre site web
if(in_array($f,$tab_fichier_interdit))
{
echo "Tentative de CSRF sur une url";
exit;
}
}

Bon, bien sûr, il existe d’autre technique, comme mettre un captcha.

Mais pourquoi ai-je critiqué l’ajax ?

Tous simplement, parce que la plupart du temps les développeurs ajax, préfère utiliser du get que du post … aller savoir pourquoi (avec scriptaculous, que ce soit en GET ou en POST c’est presque la même chose).

A noter que par exemple gmail n’utilise que du get dans son système de mail … il paraitrait que des hackers se sont pas mal amusé avec, et qu’il existerait encore des failles … penser à vous déconnecter.