FLOW3: Security mit AOP

2.402 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
5 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.402
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
182
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
5
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • FLOW3: Security mit AOP

    1. 1. FLOW3: SECURITY MIT AOPFLOW3 Experience 201231.03.2012F3X - Andreas Förthner media.netlogix.de 1
    2. 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.de31.03.2012F3X - Andreas Förthner media.netlogix.de 2
    3. 3. AGENDA Warum ein Security Framework? Authentifizierung Autorisierung mit AOP cont ent Content Security ... und der ganze Rest31.03.2012F3X - Andreas Förthner media.netlogix.de 3
    4. 4. WER? WAS? WIE? UND WARUM DERGANZE AUFWAND?Das Security Framework31.03.2012F3X - Andreas Förthner media.netlogix.de 4
    5. 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-Filterung31.03.2012F3X - Andreas Förthner media.netlogix.de 5
    6. 6. UND WER WARST DUNOCH GLEICH?Authentifizierung31.03.2012F3X - Andreas Förthner media.netlogix.de 6
    7. 7. AUTHENTIFIZIERUNG Es ist möglich beliebige Mechanismen zur Authentifizierung zu verwenden31.03.2012F3X - Andreas Förthner media.netlogix.de 7
    8. 8. AUTHENTIFIZIERUNG Es ist möglich beliebige Mechanismen zur Authentifizierung zu verwenden Bisher in FLOW3 implementiert: Benutzername/Passwort HTTP-Auth typo3.org SSO31.03.2012F3X - Andreas Förthner media.netlogix.de 7
    9. 9. AUTHENTIFIZIERUNG TYPO3: FLOW3: security: authentication: providers: DefaultProvider: providerClass: PersistedUsernamePasswordProvider entryPoint: WebRedirect: uri: login.html31.03.2012F3X - Andreas Förthner media.netlogix.de 8
    10. 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.2012F3X - Andreas Förthner media.netlogix.de 9
    11. 11. AUTHENTIFIZIERUNG DefaultProvider: providerClass: PersistedUsernamePasswordProvider requestPatterns: uri: /userarea AdministrationProvider: providerClass: PersistedUsernamePasswordProvider requestPatterns: controllerObjectName: MyPackage/Controller/Admin.*31.03.2012F3X - Andreas Förthner media.netlogix.de 10
    12. 12. AUTHENTIFIZIERUNG31.03.2012F3X - Andreas Förthner media.netlogix.de 11
    13. 13. AUTHENTIFIZIERUNG Jeder Provider authentifiziert einen eigenen Account31.03.2012F3X - Andreas Förthner media.netlogix.de 11
    14. 14. AUTHENTIFIZIERUNG Jeder Provider authentifiziert einen eigenen Account Jeder Account hält Rollen, die damit „aktiv“ werden31.03.2012F3X - Andreas Förthner media.netlogix.de 11
    15. 15. AUTHENTIFIZIERUNG Jeder Provider authentifiziert einen eigenen Account Jeder Account hält Rollen, die damit „aktiv“ werden Account-Model erweitern für dynamische Rollen-Aktivierung31.03.2012F3X - Andreas Förthner media.netlogix.de 11
    16. 16. HEY! DU KOMMSTHIER NET REIN!Autorisierung31.03.2012F3X - Andreas Förthner media.netlogix.de 12
    17. 17. AUTORISIERUNG31.03.2012F3X - Andreas Förthner media.netlogix.de 13
    18. 18. AUTORISIERUNG Was bedeutet das?31.03.2012F3X - Andreas Förthner media.netlogix.de 13
    19. 19. AUTORISIERUNG Was bedeutet das? Aktionen verbieten31.03.2012F3X - Andreas Förthner media.netlogix.de 13
    20. 20. AUTORISIERUNG Was bedeutet das? Aktionen verbieten ... also Methoden nicht ausführen31.03.2012F3X - Andreas Förthner media.netlogix.de 13
    21. 21. AUTORISIERUNG Was bedeutet das? Aktionen verbieten ... also Methoden nicht ausführen Problem: Eine Anwendung hat überall Methoden...31.03.2012F3X - Andreas Förthner media.netlogix.de 13
    22. 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.2012F3X - Andreas Förthner media.netlogix.de 13
    23. 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.2012F3X - Andreas Förthner media.netlogix.de 14
    24. 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.2012F3X - Andreas Förthner media.netlogix.de 15
    25. 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.2012F3X - Andreas Förthner media.netlogix.de 16
    26. 26. AUTORISIERUNG Security-Policy besteht aus: Securit-Resources: Pointcut-Expressions Rollen Access Control Lists (ACLs)31.03.2012F3X - Andreas Förthner media.netlogix.de 17
    27. 27. POLICY resources: methods: RestrictedController_adminAction: "method(MyPackageRestrictedController->adminAction())" RestrictedController_customerAction: "method(MyPackageRestrictedController ->customerAction($customer.administrator == current.securityContext.account) )"31.03.2012F3X - Andreas Förthner media.netlogix.de 18
    28. 28. POLICY roles: Customer: [] Administrator: [ Customer ]31.03.2012F3X - Andreas Förthner media.netlogix.de 19
    29. 29. POLICY acls: Customer: methods: RestrictedController_customerAction: GRANT RestrictedController_adminAction: DENY Administrator: methods: RestrictedController_customerAction: GRANT RestrictedController_adminAction: GRANT31.03.2012F3X - Andreas Förthner media.netlogix.de 20
    30. 30. AUTORISIERUNG Mass-Assignment -> vgl. Github resources: methods: User_makeAdmin: "method(MyPackageUser->setAdmin())"31.03.2012F3X - Andreas Förthner media.netlogix.de 21
    31. 31. CONTENT SECURITY SECURITY KANN MAN GANZ AM ENDE „HINZUFÜGEN“!31.03.2012F3X - Andreas Förthner media.netlogix.de 22
    32. 32. 31.03.2012F3X - Andreas Förthner media.netlogix.de 23
    33. 33. 31.03.2012F3X - Andreas Förthner media.netlogix.de 23
    34. 34. CONTENT SECURITY31.03.2012F3X - Andreas Förthner media.netlogix.de 24
    35. 35. CONTENT SECURITY Sicherheit für gespeicherte Daten31.03.2012F3X - Andreas Förthner media.netlogix.de 24
    36. 36. CONTENT SECURITY Sicherheit für gespeicherte Daten ... d.h. für peristierte Objekte31.03.2012F3X - Andreas Förthner media.netlogix.de 24
    37. 37. CONTENT SECURITY Sicherheit für gespeicherte Daten ... d.h. für peristierte Objekte Objekte, die man nicht lesen darf, werden nicht zurückgegeben31.03.2012F3X - Andreas Förthner media.netlogix.de 24
    38. 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 um31.03.2012F3X - Andreas Förthner media.netlogix.de 24
    39. 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.2012F3X - Andreas Förthner media.netlogix.de 24
    40. 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.2012F3X - Andreas Förthner media.netlogix.de 25
    41. 41. CONTENT SECURITY DEMNÄCHST IN IHREM FLOW3:31.03.2012F3X - Andreas Förthner media.netlogix.de 26
    42. 42. CONTENT SECURITY DEMNÄCHST IN IHREM FLOW3: CONTENT SECURITY FÜR DQL31.03.2012F3X - Andreas Förthner media.netlogix.de 26
    43. 43. SO VIEL SPASS -FÜR SO WENIG GELD!Was es sonst noch zu sehen gibt...31.03.2012F3X - Andreas Förthner media.netlogix.de 27
    44. 44. WAS ES SONST NOCH ZU SEHEN GIBT...31.03.2012F3X - Andreas Förthner media.netlogix.de 28
    45. 45. WAS ES SONST NOCH ZU SEHEN GIBT... Virus!31.03.2012F3X - Andreas Förthner media.netlogix.de 28
    46. 46. WAS ES SONST NOCH ZU SEHEN GIBT...31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    47. 47. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter?31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    48. 48. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF)31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    49. 49. WAS ES SONST NOCH ZU SEHEN GIBT... Was steckt dahinter? Cross Site Request Forgery (CSRF) Die Lösung31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    50. 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) Actions31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    51. 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 AOP31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    52. 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 explizit31.03.2012F3X - Andreas Förthner media.netlogix.de 29
    53. 53. WAS ES SONST NOCH ZU SEHEN GIBT...31.03.2012F3X - Andreas Förthner media.netlogix.de 30
    54. 54. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für31.03.2012F3X - Andreas Förthner media.netlogix.de 30
    55. 55. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.)31.03.2012F3X - Andreas Förthner media.netlogix.de 30
    56. 56. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.) Encryption (RSA wallet service ...)31.03.2012F3X - Andreas Förthner media.netlogix.de 30
    57. 57. WAS ES SONST NOCH ZU SEHEN GIBT... Zentrale Utility-Klassen für Hashing (Hashes, HMAC, etc.) Encryption (RSA wallet service ...) Secure Downloads31.03.2012F3X - Andreas Förthner media.netlogix.de 30
    58. 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.2012F3X - Andreas Förthner media.netlogix.de 30
    59. 59. SO LONG AND THANKS FOR THE FISH... Vielen Dank! Gibt es Fragen?31.03.2012F3X - Andreas Förthner media.netlogix.de 31

    ×