J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.
5138 links
Un article qui remet les choses à leur place et qui pointe du doigt les dangers liés aux dépendances qu'on ne maitrise pas, dans les projets informatiques (notamment les packages npm, mais pas que).
On peut faire les mêmes remarques aux projets basés sur composer et consort qui téléchargent des codes sans que l'on sache vraiment ce qui est téléchargé.
Via Yome.
Cela veut dire que nos comptes bancaires sont en clairs sur le réseau. 4 petits chiffres de rien du tout... On s'en doutait mais là, on en a la preuve...
Existe-t-il un mouvement d'internautes pour les obliger à changer de méthodes ?
Taille de clé équivalente | Force d’un mot de passe |
---|---|
64 | très faible |
64<80 | faible |
80<100 | moyen |
> 100 | fort |
//== calcul force pwd (tool)
document.getElementById('toolCalcPwd_btOK').addEventListener('click', function() {
document.getElementById('toolCalcPwd_keySize').value = S(document.getElementById('toolCalcPwd_alphabet').value, document.getElementById('toolCalcPwd_longueur').value);
});
//= calcul force pwd
function S(lnN, L) {return (Math.round( parseFloat(lnN) * L));}
Et le formulaire pour le calcul :
<form>
<select id="toolCalcPwd_longueur" name="toolCalcPwd_longueur"><option value="4">4 (PIN code)</option>
<option value="6">6</option>
<option value="8">8 (mot de passe « classique »)</option>
<option selected value="10">10</option>
<option value="12">12</option>
<option value="16">16</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option></select> caractères.
<p><span style="text-decoration: underline;">Alphabet</span> :<select id="toolCalcPwd_alphabet" name="toolCalcPwd_alphabet"><option value="1">2 symboles 0 ou 1 (code binaire)</option>
<option value="3.32">10 symboles de 0 à 9 (code décimal)</option>
<option value="4">16 symboles 0 à 9 et A à F (code hexadécimal)</option>
<option value="4.7">26 symboles de A à Z (code alphabétique)</option>
<option value="5.17">36 symboles 0 à 9 et A à Z (code alphanumérique)</option>
<option value="5.7">52 symboles A à Z et a à z</option>
<option selected value="5.95">62 symboles 0 à 9, A à Z et a à z</option>
<option value="6.13">70 symboles 0 à 9, A à Z, a à z et ! #$*% ?</option>
<option value="6.49">90 symboles 9, A à Z, a à z et ! #$*% ? &[|]@^µ§ :/ ;.,<>°²³</option></select></p>
<p><input id="toolCalcPwd_btOK" type="button" value="Calculer la force"></p>
<p>Un mot de passe avec ces caractéristiques est à peu près équivalent à une clé de <input id="toolCalcPwd_keySize" name="toolCalcPwd_keySize" readonly type="text" value="?"> bits.</p>
</form>
Type de mot de passe | Taille de clé équivalente | Force | Commentaire |
---|---|---|---|
Mot de passe de 8 caractères dans un alphabet de 70 symboles | 49 | Très faible | Taille usuelle |
Mot de passe de 10 caractères dans un alphabet de 90 symboles | 65 | Faible | |
Mot de passe de 12 caractères dans un alphabet de 90 symboles | 78 | Faible | Taille minimale recommandée par l’ANSSI pour des mots de passe ergonomiques ou utilisés de façon locale. |
Mot de passe de 16 caractères dans un alphabet de 36 symboles | 82 | Moyen | Taille recommandée par l’ANSSI pour des mots de passe plus sûrs. |
Mot de passe de 16 caractères dans un alphabet de 90 symboles | 104 | Fort | |
Mot de passe de 20 caractères dans un alphabet de 90 symboles | 130 | Fort | Force équivalente à la plus petite taille de clé de l’algorithme de chiffrement standard AES (128 bits). |
Les inscriptions sont ouvertes. Le projet avance !!!
Cet article va détailler une bonne configuration d'un serveur Apache. Plusieurs critères sont pris en compte : la sécurité système, la sécurité SSL/TLS et la sécurité des données. Cette dernière est pour moi dissociée de la sécurité applicative, principalement à cause du PHP.
Dans une première partie, nous allons voir comment cloisonner son serveur pour qu'un minimum d'information le concernant ne fuite pas. Dans une seconde partie, nous allons nous intéresser à la sécurisation SSL/TLS pour protéger la communication entre le serveur et le client.
En conclusion, une configuration complète fera la synthèse de cet article.
via ecirtam.net
C'est exactement la réflexion que je me faisais. Et même si on paramètre tout comme il faut, encore faut-il que nos contacts en fasse de même, ce qui est peine perdue.
Je l'ai mis en place au boulot pour voir. Aucun, je dis bien aucun, de mes contacts n'utilise de solution chiffrée. Donc, ce que j'ai fait ou rien, c'est pareil.
Et niveau perso, c'est à peu prêt pareil.
If you have ever hosted a website or even administrated a server you'll be very well aware of bad people trying bad things with your stuff.
When I first hosted my own little linux box with SSH access at age 13 I read through the logs daily and report the IPs (mostly from China and Russia) who tried to connect to my sweet little box (which was actually an old ThinkPad T21 with a broken display running under my bed) to their ISPs.
Actually if you have a linux server with SSH exposed you can see how many connection attempts are made every day:
grep 'authentication failures' /var/log/auth.log
Hundreds of failed login attempts even though this server has disabled password authentication and runs on a non-standard port
Ok to be honest, web vulnerability scanners have existed before Wordpress but since WP is so widely deployed most web vuln scanners include scans for some misconfigured wp-admin folders or unpatched plugins.
So if a small, new hacking group wants to gain some hot cred they'll download one of these scanner things and start testing against many websites in hopes of gaining access to a site and defacing it.
Sample of a log file during a scan using the tool Nikto
This is why all server or website admins have to deal with gigabytes of logs full with scanning attempts. So I was wondering..
After going through some potential implementations with IDS or Fail2ban I remembered the old ZIP bombs from the old days.
So it turns out ZIP compression is really good with repetitive data so if you have a really huge text file which consists of repetitive data like all zeroes, it will compress it really good. Like REALLY good.
As 42.zip shows us it can compress a 4.5 peta byte (4.500.000 giga bytes) file down to 42 kilo bytes. When you try to actually look at the content (extract or decompress it) then you'll most likely run out of disk space or RAM.
Sadly, web browsers don't understand ZIP, but they do understand GZIP.
So firstly we'll have to create the 10 giga byte GZIP file filled with zeroes. We could make multiple compressions but let's keep it simple for now.
Creating the bomb and checking its size
dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip
And for checking file size
du -sh 10G.zip
As you can see it's 10 MB large. We could do better but good enough for now.
Now that we have created this thing, let's set up a PHP script that will deliver it to a client.
<?php
//prepare the client to recieve GZIP data. This will not be suspicious
//since most web servers use GZIP by default
header("Content-Encoding: gzip");
header("Content-Length: ".filesize('10G.gzip'));
//Turn off output buffering
if (ob_get_level()) ob_end_clean();
//send the gzipped file to the client
readfile('10G.gzip');
That's it!
So we could use this as a simple defense like this:
<?php
$agent = filter_input(INPUT_SERVER, 'HTTP_USER_AGENT');
//check for nikto, sql map or "bad" subfolders which only exist on wordpress
if (strpos($agent, 'nikto') !== false || strpos($agent, 'sqlmap') !== false || startswith($url,'wp-') || startswith($url,'wordpress') || startswith($url,'wp/'))
{
sendBomb();
exit();
}
function sendBomb(){
//prepare the client to recieve GZIP data. This will not be suspicious
//since most web servers use GZIP by default
header("Content-Encoding: gzip");
header("Content-Length: ".filesize('10G.gzip'));
//Turn off output buffering
if (ob_get_level()) ob_end_clean();
//send the gzipped file to the client
readfile('10G.gzip');
}
function startsWith($a, $b) {
return strpos($a, $b) === 0;
}
This script obviously is not - as we say in Austria - the yellow of the egg, but it can defend from script kiddies I mentioned earlier who have no idea that all these tools have parameters to change the user agent.
Client | Result |
---|---|
IE 11 | Memory rises, IE crashes |
Chrome | Memory rises, error shown |
Edge | Memory rises, then dripps and loads forever |
Nikto | Seems to scan fine but no output is reported |
SQLmap | High memory usage until crash |
Safari | Hight memory usage, then crashes and reloads, then memory rises again, etc.. |
Chrome (Android) | Memory rises, error shown |
(if you have tested it with other devices/browsers/scripts, please let me know and I'll add it here)
signon.autofillForms.http = true empêche que Firefox propose des choix de logins. Pas qu'il n'affiche pas le message de sécurité...
Un peu de sécurité ne fait pas de mal.
Intéressant pour masquer des mots de passe quand on n'a pas de connexion https. À tester.
Intéressant, merci Bronco pour le partage et Matlink pour le tuto.
Intéressant.
Et si le fichier, protéger par vim est ouvert via une interface graphique, on a le même résultat ?
En fait, le rel
n'est pas suffisant et il peut y avoir des cas où le phishing peut encore fonctionner : quand le site est épinglé par exemple. La fonction javascript protège mieux (si javascript est activé bien sûr).
Le mieux est de mettre une classe targetBlank
sur les liens que l'on veut ouvrir dans un nouvel onglet
<a href="monlien" class="targetBlank">Mon lien</a>
et d'ajouter le js suivant :
var targetBlank = document.querySelector('a.targetBlank').addEventListener('click', function(evt) {
evt.preventDefault();
evt.returnValue = false;
openNew(this.href);});
function openNew(url) {
var otherWindow = window.open();
otherWindow.opener = null;
otherWindow.location = url;
}
Comme ça, si js n'est pas activé, le lien s'ouvre normalement. Si js est activé, on est protégé de l'ouverture du nouvel onglet.
Firefox users can limit their exposure to this bug by going to about:config and setting network.IDN_show_punycode to true.
Via Timo
Un tutoriel de l'ANSSI sur les mots de passe
J'avais testé en local (il y a 4 ou 5 ans) une ancienne version et le script avait du mal avec le php.
Apparemment, la version 0.5 est abandonnée et la nouvelle est dispo ici : https://www.ripstech.com
Via Timo.
Vérifiez TOUJOURS l'url du site sur lequel vous vous connectez. TOUJOURS. Même si le cadenas est vert...
Ensemble de recommandations pour sécuriser un serveur.