You are on page 1of 19

Protgez votre site en utilisant la

technique du Pot de Miel

DanstouslessitesWebinteractifs,ilyaunepartieditessensiblecomme
parexemplelapartieadministrativequipermetd'avoirlecontrledela
quasitotalitdusite.Danscetarticle,nousallonsapprendrecrerunpot
demiel(ouhoneypot),plusexactementunefaussepartieadministrative
quipermetd'apprendrecommentlepirates'yprendpourexploiterles
vulnrabilitsdevotresite,maisaussiledcourager/stopperdansla
continuationdesonactedepiratage,unpeucommeleprincipedupotde
miel.
Cet article explique : Ce qu'il faut savoir :
Lutilitdunpotdemiel. ConnaissancedebaseenPHP.
Commentmettreenplaceunpotdemielsurson NotionsenPOO.
site,plusexactementunefaussepartie
Connatrelesenjeuxetlesconsquences
administrative.
delascuritinformatique.
Miseenplacedunefaussepartieadministrative
surunCMS.ExempleavecJoomla.
Ided'autrespotsdemieletexplicationdes
deuxtypesdistinctsdepotsdemiel.

E ngnral,quandunpirateinformatique
essayedes'introduiredansunsiteWeb,il
vaessayerdepasseroutrelascuritdela
connexiondupanneaudadministrationsoiten
exploitantuneventuellefailledescurit
dadministrationquilarendainsiimmunisparles
attaquants,maisgalementnouspermettre
d'analyserlamanirequilsutilisentpourexploiter
lesventuellesvulnrabilitsdusiteWeb.

(injectionSQL,),soitavecunbotquivatenter Vousl'avezcompris,danscetutoriel,jevaisdonc
touteslescombinaisonsdeloginpossiblespour vousexpliquercommentcrerunefaussepartie
ainsiyaccderetyfairecequ'ildsire. administrativequivaservirdepotdemiel.

Unepremiretechniquedeprotectionconsiste Pourcefaire,renommezvotrevraidossier
modifierlenometl'emplacementdudossier d'administrationdevotresiteparunnomdifficile
dadministrationpourcompliquerlatchedu devinermaisfacileretenir(ex:/dossiersecret
pirate. admindifficileatrouver/).
Aulieudavoirundossiernommadmin, Puiscrerlafaussepartieadministrativedansun
administrationouencoreadmin.php,vous dossiersouslenomadminavecunfichier
pouvezluidonnerunnomdifficiletrouver,mais index.phpquidemanderal'identifiantde
celanempchepaslespiratesadapterune l'administrateuretgreralestracesdupiratequi
stratgiepourdcouvrirlenomdudossier. tenteradeselogerdansl'administrationdevotre
site(listing1).
Alors,toutengardantlevraidossier
d'administrationcach,nousallonssimulerune Noubliezpasqueledesigndecettefausse
faussepartied'administrationquivaattirerles interfaced'administrationdoitressemblerau
piratesparcetteproiefacilequivanonseulement maximumvotresite,afinquelepiratenece
lesfaireperdredutempsprcieuxessayerdese doutepasquec'estunefaussepagedeconnexion.
connecteraulieudechercherlavraiepage
Listing1.Fichierindex.phpquivaservircommefaussepagedeconnexion

<?php
/**
*Thispageisafakeadminloginpageofsite.
*YourrealloginpageitjustanotherURL(e.g.http://yoursite.com/_mysecretadminpage/).
*/
require'../../_inc/Sniff.class.php';//Includetheclass.
$bErr=false;//Initializetheerrorvariable.

if(isset($_POST['usr'],$_POST['pwd']))
{
sleep(6);//Securityagainstbruteforceattackandthiswillirritatethehacker...
$bErr=true;//Displayanerrormessageindicatingthattheloginisincorrect.
newSniff($_POST['usr'],$_POST['pwd']);////Classdeclarationwithinitializationvaluesconnection.
}

/**
*ChecksiftheIPaddressisbanned.
*/
if(Sniff::isIpBlock())
{/**
*Redirecttotheindexpage.
*Instead,youcandisplayamessageindicatingthattheuserhasbeenbannedoranotherredirection.

*/

header('Location:../');
exit;
}
?>

<!DOCTYPEhtml>
<html>
<head>
<title>Honeypot|Standaloneexample</title>
<linkrel="stylesheet"href="./../static/css/general.css"/>
<!YourAnalyticsCodehere(e.g.GoogleAnalytics:http://www.google.com/analytics/,Piwik:
http://piwik.org)>
</head>
<body>
<divid="container">

<header>
<h1>HoneypotExample</h1>
</header>

<h2class="blue">AdminPanel</h2>
<formclass="center"action="index.php"method="post">
<fieldset>
<legend>Login</legend>
<?phpif($bErr)echo'<pclass="centerwarning_block">Yourusernameorpasswordwas
incorrect.Pleasetryagain.</p>';?>
<labelfor="usr">Username:</label>
<inputtype="text"name="usr"id="usr"value="admin"onfocus="if('admin'==this.value)
this.value='';"onblur="if(''==this.value)this.value='admin';"required="required"/>
<labelfor="pwd">Password:</label>
<inputtype="password"name="pwd"id="pwd"required="required"/>
<divclass="center"><buttontype="submit"name="submit">Login</button></div>
</fieldset>
</form>

<footer>
<p>By<strong><ahref="http://ph7.github.com">pH7</a></strong>&copy;2012.</p>
</footer>

</div>
</body>
</html>

Nousallonsmaintenantrcuprerlesinformationsenvoyerparleformulairedeconnexionetlesstocker
dansunfichierdelogsoulesenvoyerparemail,ainsivousserezimmdiatementavertiquandquelquun
essayeradeseconnecter.

Vouspouvezgalementajouteruncodedesuivianalytiquepouravoirdeplusamplesinformations
(provenancedupays,ville,tempsrestsurlapage,etc.)surlespersonnesquitententdeseconnecterla
faussepartiedadministrationdevotresite.

Enfin,jaiplaclafonctionsleep()quipermetdendormirlescriptpendantquelquessecondesafindese
scurisercontrelesattaquesforcebrutecauspardventuelsbots,maisgalementpouragacerle
pirate.

EtmaintenantvoicilaclasseSniffer(listing2)quivapermettredercuprerlaplupartdesactionsde
lattaquant,ainsiquelventuellepossibilitdebannirautomatiquementlespersonnesquitententdese
connecterdanslapartieadministrative(carsouventcesvisiteursnapportentriendepositifvotresite).

Danscetteclasse,nouscronscinqconstantes.
Lesdeuxpremiresconcernentlerapportd'email,lasuivanteestl'activationdubannissement
automatiqued'adresseIP,enfinlesdeuxderniressontlescheminsdufichierdelogetdufichierdela
listedesadressesIPbannisdusite.
Puisnouscronsleconstructeurquiinitialiselesvariablesdeloginentresvial'interfaced'administration.
Aprs,nousinitialisonsetcrivonslemessagedelogaveclesmthodessetLogMsg()etwriteFile(),enfin
nousenvoyonsunemailaveclaidedelamthodesendMessage()silaconstanteEMAIL_REPORTest
vraieetnousbannissonsl'adresseIPduspammeurlaidedelamthodeblockIp()silaconstante
AUTO_IP_BLOCKestvraie.

Listing2.Laclassequipermetd'analyseretdestockerlescomportementsdupirate

<?php
classSniff
{

/**
*Yourinformationshere.
*/

//TRUE=enablesendingemailtoeachsomeonetriestoconnecttoadminlogin.

constEMAIL_REPORT=true;

//EmailaddresswherereportswillbesentemailsifSniff::EMAIL_REPORTisTRUE.

constEMAIL_ADDRESS='you@yourdomain.com';

/**
*Settingsofapplication.
*/

//TRUE=Automaticallybannedallthosewhoattempttologintotheadmin.
constAUTO_IP_BLOCK=false;

//Pathwherewillbestoredlogfiles.
constLOG_PATH='../../_data/logs/attackers/';

//PathfromthelistofIPaddressesthatarebannedfromthesite.
constBAN_IP_FULL_PATH='../../_data/bans/ip.txt';

private$_sUsername,$_sPassword,$_sIp,$_sContents;

/**
*Constructor.
*
*@paramstring$sUsernameTheUsernameoftheAdminLogin.
*/
publicfunction__construct($sUsername,$sPassword)
{//Initializesloginvariables.
$this>_sUsername=$sUsername;
$this>_sPassword=$sPassword;



//Createsthelogmessageandaddsittothelistoflogs.
$this>setLogMsg()>writeFile();

//Sendstheemailreport.
if(self::EMAIL_REPORT)$this>sendMessage();

//BlocksIPaddress.
if(self::AUTO_IP_BLOCK)$this>blockIp();
}

/**
*CheckiftheIPaddressisbanned.
*
*@returnbooleanReturnstrueiftheipisbanned,otherwisereturnsfalse.
*/
publicstaticfunctionisIpBlock()
{
if(is_file(self::BAN_IP_FULL_PATH))
{
$aIpBans=file(self::BAN_IP_FULL_PATH);

foreach($aIpBansas$sIp)
{
$sIp=trim($sIp);
if(0==strcmp(self::getIp(),$sIp))returntrue;
}
}

returnfalse;
}

/**
*ReturntheIPaddressofaclient.
*
*@returnstring
*/
publicstaticfunctiongetIp()
{
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$sIp=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(!empty($_SERVER['HTTP_CLIENT_IP']))
{
$sIp=$_SERVER['HTTP_CLIENT_IP'];
}
else
{
$sIp=$_SERVER['REMOTE_ADDR'];
}

returnpreg_match('/^[az09:.]{7,}$/',$sIp)?$sIp:'0.0.0.0';
}

/**
*Buildthelogmessage.
*
*@returnobjectthis
*/
protectedfunctionsetLogMsg()
{
$sReferer=(!empty($_SERVER['HTTP_REFERER']))?$_SERVER['HTTP_REFERER']:'NO
HTTPREFERER';
$sAgent=(!empty($_SERVER['HTTP_USER_AGENT']))?$_SERVER['HTTP_USER_AGENT']:
'NOUSERAGENT';
$sQuery=(!empty($_SERVER['QUERY_STRING']))?$_SERVER['QUERY_STRING']:'NO
QUERYSTRING';

$this>_sIp=self::getIp();

$this>_sContents=
'Date:'.date('Y/m/d')."\n".
'IP:'.$this>_sIp."\n".
'QUERY:'.$sQuery."\n".
'Agent:'.$sAgent."\n".
'Referer:'.$sReferer."\n".
'LOGINUsername:'.$this>_sUsername.'Password:'.$this>_sPassword."\n\n\n";
return$this;
}

/**
*Writealogfilewiththehacherinformations.
*
*@returnobjectthis
*/
protectedfunctionwriteFile()
{
$sFileName=$this>_sIp.'.log';
$sFullPath=self::LOG_PATH.$sFileName;
file_put_contents($sFullPath,$this>_sContents,FILE_APPEND);

return$this;
}

/**
*BlockingIPaddress.
*
*@returnobjectthis
*/
protectedfunctionblockIp()
{
$sContent=$this>_sIp."\n";
file_put_contents(self::BAN_IP_FULL_PATH,$sContent,FILE_APPEND);

return$this;
}

/**
*Sendanemail.
*
*@returnbooleanReturnsTRUEifthemailwassuccessfullyacceptedfordelivery,FALSE
otherwise.
*/
protectedfunctionsendMessage()
{
$sHeaders="From:\"{$_SERVER['HTTP_HOST']}\"<{$_SERVER['SERVER_ADMIN']}>\r\n";
returnmail(self::EMAIL_ADDRESS,'ReportingoftheFakeAdminHoneypot',$this>_sContents,
$sHeaders);
}

Pourplusd'informationssurcetteclasse,consultezl'URLducodesourcedecetarticledanslasectiondes
liens.

Utiliser cette technique dans un CMS


CettetechniqueestparfaitementutilisabledansunCMS(mmeconseill),eneffet,lesCMSsont
gnralementbeaucoupplusrisquedecegenred'attaque,carlapersonnequiveuthackervotresiteva
d'abordexaminerattentivementlescodessourceduscriptenquestionafindeconnatresonarchitectureet
larpartitiondesfichiersainsiquelventuellemorceaudecodequicomporteunefailledescuritqui
pourraittreexploitable.

Danscetexemple,nousallonsutiliserleclbreCMSJoomla2.5,maisildevraittrefaciledadapterle
codeavecunautreCMS.
PourJoomla,nousallonsutiliserunetechniquelgrementdiffrente,carJoomlan'autorisepasquel'on
renommeledossier"administrator",doncnousallonslaissertoutlecontenudanscedossier.

Parcontre,nousallonsrenommerlefichierindex.phpdecedossierpar_joomla_index.inc.phpet
ajoutercecodedefined('IS_INDEX')ordie;toutaudbutdufichier,justeaprslabalise<?php,cette
lignepermetdinterdirequunepersonneyaccdesanstrepassparlefichierderoutagedaccsque
nousallonscrerparlasuite.

Ainsi,uniquementlespersonnesquiconnaissentledossiertopsecretd'administrationaurontunevariable
desessionquipermettradavoiraccslapagedeconnexionoriginale,lesautresaurontunefaussepage
deconnexion.

Listing3.Fichierquiserviraderouteurpourgrerlabonnepagedeconnexion

<?php
define('IS_INDEX',1);
session_start();
if(!empty($_SESSION['joomla_admin_sess'])&&$_SESSION['joomla_admin_sess']==
'VOTRE_MOT_SECRET')
{
require'_joomla_index.inc.php';//OK,theURLfromwherethepersonistheURLcustom
administration.
}
else
{
require'_honeypot_index.inc.php';//Thefakeadmininterface.
}
?>

Toujoursdanslemmedossier,crerunfichier_honeypot_index.inc.phpaveclecontenudu
listing4.
Ilsagitdelafaussepagedeconnexionincluantlaclassed'coute,etc.

Listing4.Faussepagedeconnexion
<?php
/**
*ArchitectureanddesignreproducedofJoomlaversion2.5.6
*/
defined('IS_INDEX')ordie;//Securitycheck

session_start();

/**
*Generatearandomtokennamefieldoftheloginform.
*/
if(empty($_SESSION['login_token']))
$_SESSION['login_token']=md5(uniqid(mt_rand(),true));

/**
*GetstherootURL.
*ItisusefultogettheURLtoreproduceexactlythesamesourcecodeastheoriginalJoomla
administration.
*
*@returnstring
*/
functionget_url()
{
//URLAssociationforSSLandProtocolCompatibility
$sHttp=(!empty($_SERVER['HTTPS'])&&strtolower($_SERVER['HTTPS']=='on'))?'https://':
'http://';

return$sHttp.$_SERVER['HTTP_HOST'].
dirname(dirname(htmlspecialchars($_SERVER['PHP_SELF'])));
}

/**
*GetstherootrelativeURL.
*ItisusefultogettheURLrelativetoreproduceexactlythesamesourcecodeastheoriginalJoomla
administration.
*
*@returnstring
*/
functionget_relative_url()
{
returndirname(dirname(htmlspecialchars($_SERVER['PHP_SELF'])));
}

/**
*Thispageisafakeadminloginpageofsite.
*YourrealloginpageitjustanotherURL(e.g.http://yoursite.com/_mysecretadminpage/).
*/
require'../../_inc/Sniff.class.php';

$bErr=false;//Defaultvalue
if(isset($_POST['username'],$_POST['passwd']))
{
sleep(6);//Securityagainstbruteforceattackandthiswillirritatethehacker...
$bErr=true;
newSniff($_POST['username'],$_POST['passwd']);
}

/**
*CheckiftheIPaddressisbanned.
*/
if(Sniff::isIpBlock())
{
header('Location:../');//Gotoindex.
exit;
}

?>
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="engb"lang="engb"dir="ltr">
<head>
<metahttpequiv="contenttype"content="text/html;charset=utf8"/>
<metaname="generator"content="Joomla!OpenSourceContentManagement"/>
<title>HoneypotJoomlaExampleAdministration</title>
<linkhref="<?phpechoget_relative_url()?>/administrator/templates/bluestork/favicon.ico"
rel="shortcuticon"type="image/vnd.microsoft.icon"/>
<linkrel="stylesheet"href="templates/system/css/system.css"type="text/css"/>
<linkrel="stylesheet"href="templates/bluestork/css/template.css"type="text/css"/>
<styletype="text/css">
html{display:none}
</style>
<scriptsrc="<?phpechoget_relative_url()?>/media/system/js/mootoolscore.js"
type="text/javascript"></script>
<scriptsrc="<?phpechoget_relative_url()?>/media/system/js/core.js"type="text/javascript"></script>
<scripttype="text/javascript">
functionkeepAlive(){varmyAjax=newRequest({method:"get",url:"index.php"}).send();}
window.addEvent("domready",function(){keepAlive.periodical(840000);});
window.addEvent('domready',function(){if(top==self){document.documentElement.style.display=
'block';}else{top.location=self.location;}});
</script>

<![ifIE7]>
<linkhref="templates/bluestork/css/ie7.css"rel="stylesheet"type="text/css"/>
<![endif]>

<scripttype="text/javascript">
window.addEvent('domready',function(){
document.getElementById('formlogin').username.select();
document.getElementById('formlogin').username.focus();
});
</script>
</head>
<body>
<divid="bordertop"class="h_blue">
<spanclass="title"><ahref="index.php">Administration</a></span>
</div>
<divid="contentbox">
<divid="elementbox"class="login">
<divclass="mwbg">
<h1>Joomla!AdministrationLogin</h1>

<divid="systemmessagecontainer">
</div>
<divid="sectionbox">
<divclass="m">
<formaction="<?phpechoget_relative_url()?>/administrator/index.php"method="post"
id="formlogin">
<fieldsetclass="loginform">
<labelid="modloginusernamelbl"for="modloginusername">UserName</label>
<inputname="username"id="modloginusername"type="text"class="inputbox"size="15"/>

<labelid="modloginpasswordlbl"for="modloginpassword">Password</label>
<inputname="passwd"id="modloginpassword"type="password"class="inputbox"size="15"
/>

<labelid="modloginlanguagelbl"for="lang">Language</label>
<selectid="lang"name="lang"class="inputbox">
<optionvalue=""selected="selected">Default</option>
<optionvalue="enGB">English(UnitedKingdom)</option>
</select>

<divclass="buttonholder">
<divclass="button1">
<divclass="next">
<ahref="#"onclick="document.getElementById('formlogin').submit();">
Login</a>
</div>
</div>
</div>

<divclass="clr"></div>
<inputtype="submit"class="hidebtn"value="Login"/>
<inputtype="hidden"name="option"value="com_login"/>
<inputtype="hidden"name="task"value="login"/>
<inputtype="hidden"name="return"value="aW5kZXgucGhw"/>
<inputtype="hidden"name="<?phpecho$_SESSION['login_token']?>"value="1"/></fieldset>
</form>
<divclass="clr"></div>
</div>
</div>

<p>Useavalidusernameandpasswordtogainaccesstotheadministratorbackend.</p>
<p><ahref="<?phpechoget_url()?>">Gotositehomepage.</a></p>
<divid="lock"></div>
</div>
</div>
<noscript>
Warning!JavaScriptmustbeenabledforproperoperationoftheAdministratorbackend.
</noscript>
</div>
<divid="footer">
<pclass="copyright">
<ahref="http://www.joomla.org">Joomla!&#174;</a>isfreesoftwarereleasedunderthe<a
href="http://www.gnu.org/licenses/gpl2.0.html">GNUGeneralPublicLicense</a>.</p>
</div>
</body>
</html>

Enfin,crezlevraidossierdadministrationportantlenomdevotrechoix,maisdifficiledevineret
crezyunfichierindex.phpcontenantlecodedulisting5.

Listing5.FichierquiinitialiselasessionpourlapagedeconnexionJoomla

<?php
define('IS_INDEX',1);

session_start();
$_SESSION['joomla_admin_sess']='VOTRE_MOT_SECRET';//JoomlaLoginisOK
header('Location:../administrator/');
?>

Gardezlespritquengnralilsuffitderenommerlereldossierdadministrationparunnomdifficile
devineretdecrerunefaussepartieadministrativeportantlenomdelancien(ex:admin/)puisde
modifierunevariableouuneconstantequiestlechemindecettepartieadministrative(gnralementelle
setrouvedanslefichierdeconfigurationdevotresite).
L'exempleprcdentestdiffrent,carJoomlanepermetpasqueledossieradministratorsoitrenomm
sousunautrenom.
Figure1.Exempledelafaussepagedeconnexion.

Les diffrentes techniques de pots de miel


Danscetutoriel,nousavonsutilislepotdemielpourfairecroireauxpiratesinformatiquesouaux
spammeurs(robots,etc.)quilsagissaitdelapagedeconnexiondelapartieadministrative,maisen
ralitilsagitdunpige.

Maiscettetechniquedepotsdemielpeutsutiliserpourdautreschoses.
Parexemple,pourcrerunfauxcaptchaquiserainvisiblelilnupourlesinternautes,maisvisible
pourlesrobotsdespam.Ilseraitgalementintressantdexaminerlecomportementetlatechnique
utiliseparcebotpour,parexempleamliorernotrevraicaptchapourquilsoitplusefficace.

NouspouvonsgalementbannircesrobotsparsonadresseIPdelammemanirequenouslavonsfait
danslaclasseSniff.
Unautreexempleestuneadresseemaildespam(aussiconnusouslenomd'emailpigeouemailtrap)
quiestutilisquepourrecevoirduspam.Cettetechniqueestsouventconsidrecommeunpotdemiel
spam.
UnprojetsouslenomdeProjectHoneyPotgalementtcrpourluttercontrelespametainsi
collectertouteslesadressesemaildespamoupourd'autresfinssimilaires,commelecourrierenvracet
lafraudeparcourriel.
Cesexemplessontloindtrelesseuls,carlatechniquedupotdemielesttrsvasteetnestpas
uniquementdestinpourledomaineduWeb.
Pourdeplusamplesinformations,jaiajoutunarticleWikipediadanslasectiondesliens.

Catgories de pot de miel


Avantdeterminercetarticle,jevousproposededcouvrirengrandeslignes,lesdeuxdiffrentstypesde
potsdemiel.

Potsdemielfaibleinteraction:
Cesontlesplussimplesmettreenplaceetlesplusscurissdelafamilledespotsdemiel.
Leursbutestdercolterunmaximumd'informationstoutenoffrantunminimumdeprivilgesaux
attaquantsafindelimiteraumaximumlesrisquesdescurit.

Potsdemielforteinteraction:
Ilspeuventtreconsidrscommelectextrme,carilsreposentsurleprincipedel'accsdevritable
interactionsetfonctionnalitsduserviceconcern.
Lesrisquessontbeaucoupplusimportantsquepourlespotsdemielfaibleinteraction.
Ilapparatdoncncessairedescuriseraumaximuml'architectureduserviceafinquel'attaquantne
puisses'enprendreetaccderd'autresfonctionnalitsetservicesquineluisontpasdestins.

Conclusion
Cettetechniquepermetdemieuxconnatrelesintentionsetlestentativesd'hackingsurvotre
site.
Parexemple,maintenantvousallezrecevoirunemailouunmessagedanslesfichiersdelogs
chaquefoisqu'unepersonnetentedeseconnecter,vouspouvezgalementvoirsilapersonne
utiliselemmenomd'utilisateuroumotdepasse,sitelsestlecas,celaveutdirequequelqu'un
d'autreconnaitvotrepassedeconnexion,vousdevezdoncvousprmunirenchangeantvotremot
depasse.

Ellepermetgalementdefaireperdredutempsprcieuxlapersonnequiessayed'hackervotre
siteetainsidiminuerlerisquedetentatived'hackingailleurs(survotresiteousurunautre).

VouspouvezbloquerlesadressesIPdespersonnesmalintentionnsafindediminuerencore
davantagelesventuellesrisquesdepiratagesurvotresite,mmesicettepratiquereste
discutable,eneffetvouspouvezfacilementmodifiervotreadresseIPviadesserveursproxy,de
plusbeaucoupd'oprateurInternetfournissentuneIPdynamique(adressequichange
priodiquement).

Enfin,lesbotsquiessayerontd'utilisertouteslescombinaisonspossiblespouraccder
l'administrationdusite,seronsgalementbannitsivousavezactivlaprotectionde
bannissementd'IPautomatique.

Sur Internet
http://github.com/pH7/HoneypotsLa http://github.com/pH7/fakeadmin
totalitducodesourceabordedanscet honeypotV1.1Moduledunefausse
article. partieadministrativedontvouspouvez
vousinspirerducodesource.
http://projecthoneypot.orgProjectHoney http://fr.wikipedia.org/wiki/Honeypot
Potestunrseaudercolted'adresseIPde Explicationbrvedesprincipesde
spamafindeluttercontrelecourriernon fonctionnementdupotdemiel.
dsir.
http://www.tracking
hackers.com/papers/honeypots.html
Articleintressantsurladfinitionet
lexplicationdupotdemiel(enanglais).

propos de l'auteur Pierre-Henry Soria

PierreHenrySoriatravailledansledveloppementWebdepuisplusieursannes,
ilsespcialisesurlaccessibilit,lerfrencementainsiquelascuritinformatique.Ilestl'auteurentreautredusite
d'actualitfrancophone01ScriptainsiqueduCMSsocialopensourcepH7CMSetdeIDzUpquifournitdesportails
communautairesdehautesqualitspourlesentreprises.
Iltravaillegalementsurlesparseursetanalyseurslexicauxetsyntaxiquesenlangagesdebasniveaux.
Vouspouvezlecontacterparemail:phs@hizup.net

You might also like