SlideShare ist ein Scribd-Unternehmen logo
FLOW3: SECURITY MIT AOP
FLOW3 Experience 2012




31.03.2012
F3X - Andreas Förthner    media.netlogix.de
                                          1
ANDREAS FÖRTHNER



     Leiter Web-Entwicklung                 @t3andi
     netlogix Media

     TYPO3 Phoenix / FLOW3 Core
     Team seit 2007
                                            Andreas_Foerthne
     TYPO3 Security Team                    r
     Member und Kopf hinter dem
     FLOW3 Security Framework     andreas.foerthner@netlogi
                                  x.de
31.03.2012
F3X - Andreas Förthner                              media.netlogix.de
                                                                    2
AGENDA


     Warum ein Security
     Framework?

     Authentifizierung

     Autorisierung mit AOP
                              cont
                                  ent
     Content Security

     ... und der ganze Rest


31.03.2012
F3X - Andreas Förthner                  media.netlogix.de
                                                        3
WER? WAS? WIE? UND WARUM DER
GANZE AUFWAND?
Das Security Framework




31.03.2012
F3X - Andreas Förthner     media.netlogix.de
                                           4
DAS SECURITY FRAMEWORK


                         Start der Planungen bereits Ende 2007

                         Ziel: Unterstützung bei der Entwicklung
                         sicherer Anwendungen

                         Kritische Routinen zentral kapseln

                         Infrastruktur für oft benötigte Use-Cases

                         Nicht Teil des Security-Packages:
                         Validierung und Output-Filterung
31.03.2012
F3X - Andreas Förthner                                        media.netlogix.de
                                                                              5
UND WER WARST DU
NOCH GLEICH?
Authentifizierung




31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                         6
AUTHENTIFIZIERUNG


     Es ist möglich beliebige Mechanismen zur
     Authentifizierung zu verwenden




31.03.2012
F3X - Andreas Förthner                          media.netlogix.de
                                                                7
AUTHENTIFIZIERUNG


     Es ist möglich beliebige Mechanismen zur
     Authentifizierung zu verwenden
     Bisher in FLOW3 implementiert:

           Benutzername/Passwort

           HTTP-Auth

           typo3.org SSO



31.03.2012
F3X - Andreas Förthner                          media.netlogix.de
                                                                7
AUTHENTIFIZIERUNG



                 TYPO3:
                   FLOW3:
                    security:
                         authentication:
                          providers:
                           DefaultProvider:
                            providerClass: PersistedUsernamePasswordProvider
                            entryPoint:
                              WebRedirect:
                               uri: login.html


31.03.2012
F3X - Andreas Förthner                                                         media.netlogix.de
                                                                                               8
AUTHENTIFIZIERUNG


     Es ist möglich verschiedene Mechanismen
     gleichzeitig zu verwenden!

           More-Factor-Authentication

           Verschiedene Mechanismen für
           verschiedene Bereiche

           Verschiedene Mechanismen je nach
           Herkunft des Users (z.B. internes vs.
           externes Netzwerk)
31.03.2012
F3X - Andreas Förthner                             media.netlogix.de
                                                                   9
AUTHENTIFIZIERUNG




                         DefaultProvider:
                          providerClass: PersistedUsernamePasswordProvider
                          requestPatterns:
                           uri: /userarea
                         AdministrationProvider:
                          providerClass: PersistedUsernamePasswordProvider
                          requestPatterns:
                           controllerObjectName: MyPackage/Controller/Admin.*



31.03.2012
F3X - Andreas Förthner                                                          media.netlogix.de
                                                                                              10
AUTHENTIFIZIERUNG




31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       11
AUTHENTIFIZIERUNG


     Jeder Provider authentifiziert einen eigenen
     Account




31.03.2012
F3X - Andreas Förthner                             media.netlogix.de
                                                                 11
AUTHENTIFIZIERUNG


     Jeder Provider authentifiziert einen eigenen
     Account

     Jeder Account hält Rollen, die damit „aktiv“
     werden




31.03.2012
F3X - Andreas Förthner                              media.netlogix.de
                                                                  11
AUTHENTIFIZIERUNG


     Jeder Provider authentifiziert einen eigenen
     Account

     Jeder Account hält Rollen, die damit „aktiv“
     werden

     Account-Model erweitern für dynamische
     Rollen-Aktivierung



31.03.2012
F3X - Andreas Förthner                              media.netlogix.de
                                                                  11
HEY! DU KOMMST
HIER NET REIN!
Autorisierung




31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       12
AUTORISIERUNG




31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       13
AUTORISIERUNG


     Was bedeutet das?




31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       13
AUTORISIERUNG


     Was bedeutet das?

           Aktionen verbieten




31.03.2012
F3X - Andreas Förthner          media.netlogix.de
                                              13
AUTORISIERUNG


     Was bedeutet das?

           Aktionen verbieten

           ... also Methoden nicht ausführen




31.03.2012
F3X - Andreas Förthner                         media.netlogix.de
                                                             13
AUTORISIERUNG


     Was bedeutet das?

           Aktionen verbieten

           ... also Methoden nicht ausführen

     Problem: Eine Anwendung hat überall
     Methoden...




31.03.2012
F3X - Andreas Förthner                         media.netlogix.de
                                                             13
AUTORISIERUNG


     Was bedeutet das?

           Aktionen verbieten

           ... also Methoden nicht ausführen

     Problem: Eine Anwendung hat überall
     Methoden...

     Wir wollen das aber trotzdem zentral lösen!


31.03.2012
F3X - Andreas Förthner                             media.netlogix.de
                                                                 13
AUTORISIERUNG


     Mit AOP kann Code dynamisch in die
     Anwendung „eingewoben“ werden

     z.B. Security-Checks for dem Ausführen
     einer Methode

     Der Check selbst wird nur einmal zentral in
     einem sog. Advice implementiert!

     Pointcut-Expressions definieren wo
     „eingewoben“ wird (Pointcuts)
31.03.2012
F3X - Andreas Förthner                             media.netlogix.de
                                                                 14
AOP



   namespace ExamplesForumDomainModel;

   class Forum {

         /**
          * Delete a forum post
          *
          * @param ExamplesForumDomainModelPost $post
          * @return void
          */
         public function deletePost(Post $post) {
              $this->posts->remove($post);
         }

   }




31.03.2012
F3X - Andreas Förthner                                       media.netlogix.de
                                                                           15
AOP


          /**
    * @FLOW3Aspect
    */
   class LoggingAspect {

         /**
          * Log a message if a post is deleted
          *
          * @param TYPO3FLOW3AOPJoinPointInterface $joinPoint
          * @FLOW3Before("method(ExamplesForumDomainModelForum-
   >deletePost())")
         * @return void
         */
         public function logDeletePost(TYPO3FLOW3AOPJoinPointInterface $joinPoint) {
              $post = $joinPoint->getMethodArgument('post');




31.03.2012
F3X - Andreas Förthner                                                                     media.netlogix.de
                                                                                                         16
AUTORISIERUNG


     Security-Policy besteht aus:

           Securit-Resources: Pointcut-Expressions

           Rollen

           Access Control Lists (ACLs)




31.03.2012
F3X - Andreas Förthner                               media.netlogix.de
                                                                   17
POLICY


   resources:
     methods:


      RestrictedController_adminAction:
         "method(MyPackageRestrictedController->adminAction())"


      RestrictedController_customerAction:
         "method(MyPackageRestrictedController
          ->customerAction($customer.administrator == current.securityContext.account)
          )"



31.03.2012
F3X - Andreas Förthner                                                         media.netlogix.de
                                                                                             18
POLICY




                roles:
                  Customer: []
                  Administrator: [ Customer ]




31.03.2012
F3X - Andreas Förthner                          media.netlogix.de
                                                              19
POLICY



                acls:
                  Customer:
                   methods:
                     RestrictedController_customerAction: GRANT
                     RestrictedController_adminAction:   DENY


                  Administrator:
                   methods:
                     RestrictedController_customerAction: GRANT
                     RestrictedController_adminAction:   GRANT


31.03.2012
F3X - Andreas Förthner                                            media.netlogix.de
                                                                                20
AUTORISIERUNG



           Mass-Assignment -> vgl. Github



                 resources:
                   methods:
                     User_makeAdmin:
                         "method(MyPackageUser->setAdmin())"




31.03.2012
F3X - Andreas Förthner                                          media.netlogix.de
                                                                              21
CONTENT SECURITY




         SECURITY KANN MAN GANZ AM
             ENDE „HINZUFÜGEN“!



31.03.2012
F3X - Andreas Förthner          media.netlogix.de
                                              22
31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       23
31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       23
CONTENT SECURITY




31.03.2012
F3X - Andreas Förthner   media.netlogix.de
                                       24
CONTENT SECURITY


     Sicherheit für gespeicherte Daten




31.03.2012
F3X - Andreas Förthner                   media.netlogix.de
                                                       24
CONTENT SECURITY


     Sicherheit für gespeicherte Daten

     ... d.h. für peristierte Objekte




31.03.2012
F3X - Andreas Förthner                   media.netlogix.de
                                                       24
CONTENT SECURITY


     Sicherheit für gespeicherte Daten

     ... d.h. für peristierte Objekte

     Objekte, die man nicht lesen darf, werden
     nicht zurückgegeben




31.03.2012
F3X - Andreas Förthner                           media.netlogix.de
                                                               24
CONTENT SECURITY


     Sicherheit für gespeicherte Daten

     ... d.h. für peristierte Objekte

     Objekte, die man nicht lesen darf, werden
     nicht zurückgegeben

           Wir schreiben Queries per AOP
           transparent um



31.03.2012
F3X - Andreas Förthner                           media.netlogix.de
                                                               24
CONTENT SECURITY


     Sicherheit für gespeicherte Daten

     ... d.h. für peristierte Objekte

     Objekte, die man nicht lesen darf, werden
     nicht zurückgegeben

           Wir schreiben Queries per AOP
           transparent um

     Nebeneffekt: Performance-Gewinn!

31.03.2012
F3X - Andreas Förthner                           media.netlogix.de
                                                               24
CONTENT SECURITY



      resources:
        entities:
          TYPO3_FLOW3_Tests_Functional_Security_Fixtures_RestrictableEntity:
            TYPO3_FLOW3_allEntities: "ANY"
            TYPO3_FLOW3_hiddenEntities: "this.hidden == TRUE"
            TYPO3_FLOW3_othersEntities:
                "current.securityContext.account != this.ownerAccount
                && this.ownerAccount != NULL"




31.03.2012
F3X - Andreas Förthner                                                         media.netlogix.de
                                                                                             25
CONTENT SECURITY




             DEMNÄCHST IN IHREM FLOW3:




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   26
CONTENT SECURITY




             DEMNÄCHST IN IHREM FLOW3:

            CONTENT SECURITY FÜR DQL



31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   26
SO VIEL SPASS -
FÜR SO WENIG GELD!
Was es sonst noch zu sehen gibt...




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   27
WAS ES SONST NOCH ZU SEHEN GIBT...




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   28
WAS ES SONST NOCH ZU SEHEN GIBT...




   Virus!

31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   28
WAS ES SONST NOCH ZU SEHEN GIBT...




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   29
WAS ES SONST NOCH ZU SEHEN GIBT...


     Was steckt dahinter?




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   29
WAS ES SONST NOCH ZU SEHEN GIBT...


     Was steckt dahinter?

           Cross Site Request Forgery (CSRF)




31.03.2012
F3X - Andreas Förthner                         media.netlogix.de
                                                             29
WAS ES SONST NOCH ZU SEHEN GIBT...


     Was steckt dahinter?

           Cross Site Request Forgery (CSRF)

     Die Lösung




31.03.2012
F3X - Andreas Förthner                         media.netlogix.de
                                                             29
WAS ES SONST NOCH ZU SEHEN GIBT...


     Was steckt dahinter?

           Cross Site Request Forgery (CSRF)

     Die Lösung

           CSRF-Token für geschützte (schreibende)
           Actions




31.03.2012
F3X - Andreas Förthner                               media.netlogix.de
                                                                   29
WAS ES SONST NOCH ZU SEHEN GIBT...


     Was steckt dahinter?

           Cross Site Request Forgery (CSRF)

     Die Lösung

           CSRF-Token für geschützte (schreibende)
           Actions

           Die geschieht komplett transparent per AOP


31.03.2012
F3X - Andreas Förthner                                  media.netlogix.de
                                                                      29
WAS ES SONST NOCH ZU SEHEN GIBT...


     Was steckt dahinter?

           Cross Site Request Forgery (CSRF)

     Die Lösung

           CSRF-Token für geschützte (schreibende)
           Actions

           Die geschieht komplett transparent per AOP

           (Nur das weglassen muss momentan explizit
31.03.2012
F3X - Andreas Förthner                                  media.netlogix.de
                                                                      29
WAS ES SONST NOCH ZU SEHEN GIBT...




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   30
WAS ES SONST NOCH ZU SEHEN GIBT...


     Zentrale Utility-Klassen für




31.03.2012
F3X - Andreas Förthner               media.netlogix.de
                                                   30
WAS ES SONST NOCH ZU SEHEN GIBT...


     Zentrale Utility-Klassen für

           Hashing (Hashes, HMAC, etc.)




31.03.2012
F3X - Andreas Förthner                    media.netlogix.de
                                                        30
WAS ES SONST NOCH ZU SEHEN GIBT...


     Zentrale Utility-Klassen für

           Hashing (Hashes, HMAC, etc.)

           Encryption (RSA wallet service ...)




31.03.2012
F3X - Andreas Förthner                           media.netlogix.de
                                                               30
WAS ES SONST NOCH ZU SEHEN GIBT...


     Zentrale Utility-Klassen für

           Hashing (Hashes, HMAC, etc.)

           Encryption (RSA wallet service ...)

     Secure Downloads




31.03.2012
F3X - Andreas Förthner                           media.netlogix.de
                                                               30
WAS ES SONST NOCH ZU SEHEN GIBT...


     Zentrale Utility-Klassen für

           Hashing (Hashes, HMAC, etc.)

           Encryption (RSA wallet service ...)

     Secure Downloads

     Functional Tests für Security!




31.03.2012
F3X - Andreas Förthner                           media.netlogix.de
                                                               30
SO LONG AND THANKS FOR THE FISH...




                         Vielen Dank!
                         Gibt es Fragen?

31.03.2012
F3X - Andreas Förthner                     media.netlogix.de
                                                         31

Weitere ähnliche Inhalte

Ähnlich wie FLOW3: Security mit AOP

FSLN: Interaktive lernressourcen Abschlusspräsentation
FSLN: Interaktive lernressourcen AbschlusspräsentationFSLN: Interaktive lernressourcen Abschlusspräsentation
FSLN: Interaktive lernressourcen AbschlusspräsentationAlexander Schäfer
 
FOM Vortrag Bernd Fuhlert April 2013
FOM Vortrag Bernd Fuhlert April 2013FOM Vortrag Bernd Fuhlert April 2013
FOM Vortrag Bernd Fuhlert April 2013
Bernd Fuhlert
 
Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?
Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?
Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?
lernet
 
Datenschutz Schulung Bernd Fuhlert 2013
Datenschutz Schulung Bernd Fuhlert 2013Datenschutz Schulung Bernd Fuhlert 2013
Datenschutz Schulung Bernd Fuhlert 2013
Bernd Fuhlert
 
Marktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammen
Marktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammenMarktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammen
Marktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammen
André Zehl
 
Dokumente gegen unbefugte nutzung schützen
Dokumente gegen unbefugte nutzung schützenDokumente gegen unbefugte nutzung schützen
Dokumente gegen unbefugte nutzung schützen
team-WIBU
 
Datenverschlüsselung in der Praxis
Datenverschlüsselung in der PraxisDatenverschlüsselung in der Praxis
Datenverschlüsselung in der Praxis
A. Baggenstos & Co. AG
 
DACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdfDACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdf
DNUG e.V.
 
Boardnox von Oodrive. Die Lösung für Boardkommunikation
Boardnox von Oodrive. Die Lösung für BoardkommunikationBoardnox von Oodrive. Die Lösung für Boardkommunikation
Boardnox von Oodrive. Die Lösung für Boardkommunikation
Klaus Nemelka
 
Reto Zbinden zu Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
Reto Zbinden zu Sicherheitsprobleme mit privaten Geräten im FirmenumfeldReto Zbinden zu Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
Reto Zbinden zu Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
ONE Schweiz
 
Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
Sicherheitsprobleme mit privaten Geräten im FirmenumfeldSicherheitsprobleme mit privaten Geräten im Firmenumfeld
Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
ONE Schweiz
 
iManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter IdentitätsmanageriManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter Identitätsmanager
Sven Wohlgemuth
 
iManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter IdentitätsmanageriManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter Identitätsmanager
Sven Wohlgemuth
 

Ähnlich wie FLOW3: Security mit AOP (14)

FSLN: Interaktive lernressourcen Abschlusspräsentation
FSLN: Interaktive lernressourcen AbschlusspräsentationFSLN: Interaktive lernressourcen Abschlusspräsentation
FSLN: Interaktive lernressourcen Abschlusspräsentation
 
FOM Vortrag Bernd Fuhlert April 2013
FOM Vortrag Bernd Fuhlert April 2013FOM Vortrag Bernd Fuhlert April 2013
FOM Vortrag Bernd Fuhlert April 2013
 
Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?
Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?
Andreas Gabriel: IT-Sicherheit als hemmender Faktor für E-Learning?
 
Datenschutz Schulung Bernd Fuhlert 2013
Datenschutz Schulung Bernd Fuhlert 2013Datenschutz Schulung Bernd Fuhlert 2013
Datenschutz Schulung Bernd Fuhlert 2013
 
Marktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammen
Marktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammenMarktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammen
Marktplätze im Netz – so kommen Cloud und Mittelstand endlich zusammen
 
Dokumente gegen unbefugte nutzung schützen
Dokumente gegen unbefugte nutzung schützenDokumente gegen unbefugte nutzung schützen
Dokumente gegen unbefugte nutzung schützen
 
Datenverschlüsselung in der Praxis
Datenverschlüsselung in der PraxisDatenverschlüsselung in der Praxis
Datenverschlüsselung in der Praxis
 
DACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdfDACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdf
 
Boardnox von Oodrive. Die Lösung für Boardkommunikation
Boardnox von Oodrive. Die Lösung für BoardkommunikationBoardnox von Oodrive. Die Lösung für Boardkommunikation
Boardnox von Oodrive. Die Lösung für Boardkommunikation
 
Reto Zbinden zu Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
Reto Zbinden zu Sicherheitsprobleme mit privaten Geräten im FirmenumfeldReto Zbinden zu Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
Reto Zbinden zu Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
 
Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
Sicherheitsprobleme mit privaten Geräten im FirmenumfeldSicherheitsprobleme mit privaten Geräten im Firmenumfeld
Sicherheitsprobleme mit privaten Geräten im Firmenumfeld
 
Windows 8 im Unternehmen
Windows 8 im UnternehmenWindows 8 im Unternehmen
Windows 8 im Unternehmen
 
iManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter IdentitätsmanageriManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter Identitätsmanager
 
iManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter IdentitätsmanageriManager - nutzer-zentrierter Identitätsmanager
iManager - nutzer-zentrierter Identitätsmanager
 

Mehr von netlogix

Astaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren ITAstaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren IT
netlogix
 
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
netlogix
 
SMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per HandySMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per Handy
netlogix
 
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
netlogix
 
XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"
netlogix
 
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
netlogix
 
Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010
netlogix
 
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Servicenetlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix
 
Microsoft System Center Day 2011
Microsoft System Center Day 2011Microsoft System Center Day 2011
Microsoft System Center Day 2011
netlogix
 
Microsoft System Center - Lizenzierung
Microsoft System Center - LizenzierungMicrosoft System Center - Lizenzierung
Microsoft System Center - Lizenzierung
netlogix
 
Building a large eCommerce application with Extbase, Fluid and Apache Solr
Building a large eCommerce application with Extbase, Fluid and Apache SolrBuilding a large eCommerce application with Extbase, Fluid and Apache Solr
Building a large eCommerce application with Extbase, Fluid and Apache Solr
netlogix
 
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die NeuerungenCitrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungen
netlogix
 
DataCore Speichervirtualisierung
DataCore SpeichervirtualisierungDataCore Speichervirtualisierung
DataCore Speichervirtualisierung
netlogix
 
VMware View 4
VMware View 4VMware View 4
VMware View 4
netlogix
 
VMware ThinApp 4.5
VMware ThinApp 4.5VMware ThinApp 4.5
VMware ThinApp 4.5
netlogix
 
Trapeze WLAN-Lösung
Trapeze WLAN-LösungTrapeze WLAN-Lösung
Trapeze WLAN-Lösung
netlogix
 
EMA Email Archive Appliance
EMA Email Archive ApplianceEMA Email Archive Appliance
EMA Email Archive Appliance
netlogix
 
Data Domain Backup & Recovery
Data Domain Backup & RecoveryData Domain Backup & Recovery
Data Domain Backup & Recovery
netlogix
 
Citrix XenDesktop 4
Citrix XenDesktop 4Citrix XenDesktop 4
Citrix XenDesktop 4
netlogix
 
Astaro IT-Security-Lösungen
Astaro IT-Security-LösungenAstaro IT-Security-Lösungen
Astaro IT-Security-Lösungen
netlogix
 

Mehr von netlogix (20)

Astaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren ITAstaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren IT
 
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
 
SMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per HandySMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per Handy
 
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
 
XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"
 
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
 
Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010
 
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Servicenetlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
 
Microsoft System Center Day 2011
Microsoft System Center Day 2011Microsoft System Center Day 2011
Microsoft System Center Day 2011
 
Microsoft System Center - Lizenzierung
Microsoft System Center - LizenzierungMicrosoft System Center - Lizenzierung
Microsoft System Center - Lizenzierung
 
Building a large eCommerce application with Extbase, Fluid and Apache Solr
Building a large eCommerce application with Extbase, Fluid and Apache SolrBuilding a large eCommerce application with Extbase, Fluid and Apache Solr
Building a large eCommerce application with Extbase, Fluid and Apache Solr
 
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die NeuerungenCitrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungen
 
DataCore Speichervirtualisierung
DataCore SpeichervirtualisierungDataCore Speichervirtualisierung
DataCore Speichervirtualisierung
 
VMware View 4
VMware View 4VMware View 4
VMware View 4
 
VMware ThinApp 4.5
VMware ThinApp 4.5VMware ThinApp 4.5
VMware ThinApp 4.5
 
Trapeze WLAN-Lösung
Trapeze WLAN-LösungTrapeze WLAN-Lösung
Trapeze WLAN-Lösung
 
EMA Email Archive Appliance
EMA Email Archive ApplianceEMA Email Archive Appliance
EMA Email Archive Appliance
 
Data Domain Backup & Recovery
Data Domain Backup & RecoveryData Domain Backup & Recovery
Data Domain Backup & Recovery
 
Citrix XenDesktop 4
Citrix XenDesktop 4Citrix XenDesktop 4
Citrix XenDesktop 4
 
Astaro IT-Security-Lösungen
Astaro IT-Security-LösungenAstaro IT-Security-Lösungen
Astaro IT-Security-Lösungen
 

FLOW3: Security mit AOP

  • 1. FLOW3: SECURITY MIT AOP FLOW3 Experience 2012 31.03.2012 F3X - Andreas Förthner media.netlogix.de 1
  • 2. ANDREAS FÖRTHNER Leiter Web-Entwicklung @t3andi netlogix Media TYPO3 Phoenix / FLOW3 Core Team seit 2007 Andreas_Foerthne TYPO3 Security Team r Member und Kopf hinter dem FLOW3 Security Framework andreas.foerthner@netlogi x.de 31.03.2012 F3X - Andreas Förthner media.netlogix.de 2
  • 3. AGENDA Warum ein Security Framework? Authentifizierung Autorisierung mit AOP cont ent Content Security ... und der ganze Rest 31.03.2012 F3X - Andreas Förthner media.netlogix.de 3
  • 4. WER? WAS? WIE? UND WARUM DER GANZE AUFWAND? Das Security Framework 31.03.2012 F3X - Andreas Förthner media.netlogix.de 4
  • 5. DAS SECURITY FRAMEWORK Start der Planungen bereits Ende 2007 Ziel: Unterstützung bei der Entwicklung sicherer Anwendungen Kritische Routinen zentral kapseln Infrastruktur für oft benötigte Use-Cases Nicht Teil des Security-Packages: Validierung und Output-Filterung 31.03.2012 F3X - Andreas Förthner media.netlogix.de 5
  • 6. UND WER WARST DU NOCH GLEICH? Authentifizierung 31.03.2012 F3X - Andreas Förthner media.netlogix.de 6
  • 7. AUTHENTIFIZIERUNG Es ist möglich beliebige Mechanismen zur Authentifizierung zu verwenden 31.03.2012 F3X - Andreas Förthner media.netlogix.de 7
  • 8. AUTHENTIFIZIERUNG Es ist möglich beliebige Mechanismen zur Authentifizierung zu verwenden Bisher in FLOW3 implementiert: Benutzername/Passwort HTTP-Auth typo3.org SSO 31.03.2012 F3X - Andreas Förthner media.netlogix.de 7
  • 9. AUTHENTIFIZIERUNG TYPO3: FLOW3: security: authentication: providers: DefaultProvider: providerClass: PersistedUsernamePasswordProvider entryPoint: WebRedirect: uri: login.html 31.03.2012 F3X - Andreas Förthner media.netlogix.de 8
  • 10. AUTHENTIFIZIERUNG Es ist möglich verschiedene Mechanismen gleichzeitig zu verwenden! More-Factor-Authentication Verschiedene Mechanismen für verschiedene Bereiche Verschiedene Mechanismen je nach Herkunft des Users (z.B. internes vs. externes Netzwerk) 31.03.2012 F3X - Andreas Förthner media.netlogix.de 9
  • 11. AUTHENTIFIZIERUNG DefaultProvider: providerClass: PersistedUsernamePasswordProvider requestPatterns: uri: /userarea AdministrationProvider: providerClass: PersistedUsernamePasswordProvider requestPatterns: controllerObjectName: MyPackage/Controller/Admin.* 31.03.2012 F3X - Andreas Förthner media.netlogix.de 10
  • 12. AUTHENTIFIZIERUNG 31.03.2012 F3X - Andreas Förthner media.netlogix.de 11
  • 13. AUTHENTIFIZIERUNG Jeder Provider authentifiziert einen eigenen Account 31.03.2012 F3X - Andreas Förthner media.netlogix.de 11
  • 14. AUTHENTIFIZIERUNG Jeder Provider authentifiziert einen eigenen Account Jeder Account hält Rollen, die damit „aktiv“ werden 31.03.2012 F3X - Andreas Förthner media.netlogix.de 11
  • 15. AUTHENTIFIZIERUNG Jeder Provider authentifiziert einen eigenen Account Jeder Account hält Rollen, die damit „aktiv“ werden Account-Model erweitern für dynamische Rollen-Aktivierung 31.03.2012 F3X - Andreas Förthner media.netlogix.de 11
  • 16. HEY! DU KOMMST HIER NET REIN! Autorisierung 31.03.2012 F3X - Andreas Förthner media.netlogix.de 12
  • 17. AUTORISIERUNG 31.03.2012 F3X - Andreas Förthner media.netlogix.de 13
  • 18. AUTORISIERUNG Was bedeutet das? 31.03.2012 F3X - Andreas Förthner media.netlogix.de 13
  • 19. AUTORISIERUNG Was bedeutet das? Aktionen verbieten 31.03.2012 F3X - Andreas Förthner media.netlogix.de 13
  • 20. AUTORISIERUNG Was bedeutet das? Aktionen verbieten ... also Methoden nicht ausführen 31.03.2012 F3X - Andreas Förthner media.netlogix.de 13
  • 21. AUTORISIERUNG Was bedeutet das? Aktionen verbieten ... also Methoden nicht ausführen Problem: Eine Anwendung hat überall Methoden... 31.03.2012 F3X - Andreas Förthner media.netlogix.de 13
  • 22. AUTORISIERUNG Was bedeutet das? Aktionen verbieten ... also Methoden nicht ausführen Problem: Eine Anwendung hat überall Methoden... Wir wollen das aber trotzdem zentral lösen! 31.03.2012 F3X - Andreas Förthner media.netlogix.de 13
  • 23. AUTORISIERUNG Mit AOP kann Code dynamisch in die Anwendung „eingewoben“ werden z.B. Security-Checks for dem Ausführen einer Methode Der Check selbst wird nur einmal zentral in einem sog. Advice implementiert! Pointcut-Expressions definieren wo „eingewoben“ wird (Pointcuts) 31.03.2012 F3X - Andreas Förthner media.netlogix.de 14
  • 24. AOP namespace ExamplesForumDomainModel; class Forum { /** * Delete a forum post * * @param ExamplesForumDomainModelPost $post * @return void */ public function deletePost(Post $post) { $this->posts->remove($post); } } 31.03.2012 F3X - Andreas Förthner media.netlogix.de 15
  • 25. AOP /** * @FLOW3Aspect */ class LoggingAspect { /** * Log a message if a post is deleted * * @param TYPO3FLOW3AOPJoinPointInterface $joinPoint * @FLOW3Before("method(ExamplesForumDomainModelForum- >deletePost())") * @return void */ public function logDeletePost(TYPO3FLOW3AOPJoinPointInterface $joinPoint) { $post = $joinPoint->getMethodArgument('post'); 31.03.2012 F3X - Andreas Förthner media.netlogix.de 16
  • 26. AUTORISIERUNG Security-Policy besteht aus: Securit-Resources: Pointcut-Expressions Rollen Access Control Lists (ACLs) 31.03.2012 F3X - Andreas Förthner media.netlogix.de 17
  • 27. POLICY resources: methods: RestrictedController_adminAction: "method(MyPackageRestrictedController->adminAction())" RestrictedController_customerAction: "method(MyPackageRestrictedController ->customerAction($customer.administrator == current.securityContext.account) )" 31.03.2012 F3X - Andreas Förthner media.netlogix.de 18
  • 28. POLICY roles: Customer: [] Administrator: [ Customer ] 31.03.2012 F3X - Andreas Förthner media.netlogix.de 19
  • 29. POLICY acls: Customer: methods: RestrictedController_customerAction: GRANT RestrictedController_adminAction: DENY Administrator: methods: RestrictedController_customerAction: GRANT RestrictedController_adminAction: GRANT 31.03.2012 F3X - Andreas Förthner media.netlogix.de 20
  • 30. AUTORISIERUNG Mass-Assignment -> vgl. Github resources: methods: User_makeAdmin: "method(MyPackageUser->setAdmin())" 31.03.2012 F3X - Andreas Förthner media.netlogix.de 21
  • 31. CONTENT SECURITY SECURITY KANN MAN GANZ AM ENDE „HINZUFÜGEN“! 31.03.2012 F3X - Andreas Förthner media.netlogix.de 22
  • 32. 31.03.2012 F3X - Andreas Förthner media.netlogix.de 23
  • 33. 31.03.2012 F3X - Andreas Förthner media.netlogix.de 23
  • 34. CONTENT SECURITY 31.03.2012 F3X - Andreas Förthner media.netlogix.de 24
  • 35. CONTENT SECURITY Sicherheit für gespeicherte Daten 31.03.2012 F3X - Andreas Förthner media.netlogix.de 24
  • 36. CONTENT SECURITY Sicherheit für gespeicherte Daten ... d.h. für peristierte Objekte 31.03.2012 F3X - Andreas Förthner media.netlogix.de 24
  • 37. CONTENT SECURITY Sicherheit für gespeicherte Daten ... d.h. für peristierte Objekte Objekte, die man nicht lesen darf, werden nicht zurückgegeben 31.03.2012 F3X - Andreas Förthner media.netlogix.de 24
  • 38. CONTENT SECURITY Sicherheit für gespeicherte Daten ... d.h. für peristierte Objekte Objekte, die man nicht lesen darf, werden nicht zurückgegeben Wir schreiben Queries per AOP transparent um 31.03.2012 F3X - Andreas Förthner media.netlogix.de 24
  • 39. CONTENT SECURITY Sicherheit für gespeicherte Daten ... d.h. für peristierte Objekte Objekte, die man nicht lesen darf, werden nicht zurückgegeben Wir schreiben Queries per AOP transparent um Nebeneffekt: Performance-Gewinn! 31.03.2012 F3X - Andreas Förthner media.netlogix.de 24
  • 40. CONTENT SECURITY resources: entities: TYPO3_FLOW3_Tests_Functional_Security_Fixtures_RestrictableEntity: TYPO3_FLOW3_allEntities: "ANY" TYPO3_FLOW3_hiddenEntities: "this.hidden == TRUE" TYPO3_FLOW3_othersEntities: "current.securityContext.account != this.ownerAccount && this.ownerAccount != NULL" 31.03.2012 F3X - Andreas Förthner media.netlogix.de 25
  • 41. CONTENT SECURITY DEMNÄCHST IN IHREM FLOW3: 31.03.2012 F3X - Andreas Förthner media.netlogix.de 26
  • 42. CONTENT SECURITY DEMNÄCHST IN IHREM FLOW3: CONTENT SECURITY FÜR DQL 31.03.2012 F3X - Andreas Förthner media.netlogix.de 26
  • 43. SO VIEL SPASS - FÜR SO WENIG GELD! Was es sonst noch zu sehen gibt... 31.03.2012 F3X - Andreas Förthner media.netlogix.de 27
  • 44. WAS ES SONST NOCH ZU SEHEN GIBT... 31.03.2012 F3X - Andreas Förthner media.netlogix.de 28
  • 45. WAS ES SONST NOCH ZU SEHEN GIBT... Virus! 31.03.2012 F3X - Andreas Förthner media.netlogix.de 28
  • 46. WAS ES SONST NOCH ZU SEHEN GIBT... 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 47. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 48. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF) 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 49. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF) Die Lösung 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 50. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF) Die Lösung CSRF-Token für geschützte (schreibende) Actions 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 51. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF) Die Lösung CSRF-Token für geschützte (schreibende) Actions Die geschieht komplett transparent per AOP 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 52. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF) Die Lösung CSRF-Token für geschützte (schreibende) Actions Die geschieht komplett transparent per AOP (Nur das weglassen muss momentan explizit 31.03.2012 F3X - Andreas Förthner media.netlogix.de 29
  • 53. WAS ES SONST NOCH ZU SEHEN GIBT... 31.03.2012 F3X - Andreas Förthner media.netlogix.de 30
  • 54. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für 31.03.2012 F3X - Andreas Förthner media.netlogix.de 30
  • 55. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.) 31.03.2012 F3X - Andreas Förthner media.netlogix.de 30
  • 56. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.) Encryption (RSA wallet service ...) 31.03.2012 F3X - Andreas Förthner media.netlogix.de 30
  • 57. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.) Encryption (RSA wallet service ...) Secure Downloads 31.03.2012 F3X - Andreas Förthner media.netlogix.de 30
  • 58. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.) Encryption (RSA wallet service ...) Secure Downloads Functional Tests für Security! 31.03.2012 F3X - Andreas Förthner media.netlogix.de 30
  • 59. SO LONG AND THANKS FOR THE FISH... Vielen Dank! Gibt es Fragen? 31.03.2012 F3X - Andreas Förthner media.netlogix.de 31

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n