Real life XMPP Instant Messaging

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    12 Favorites, 3 Groups & 2 Events

    Real life XMPP Instant Messaging - Presentation Transcript

    1. XMPP in real life: attacks, bad behaviour and how to cope with them 2009, 7th february - FOSDEM 2009 Mickaël Rémond <mremond@process-one.net>
    2. Background: What we do Company created in 1999
    3. Background: What we do Company created in 1999 20 employees
    4. Background: What we do Company created in 1999 20 employees Specialized in Instant Messaging since 2002
    5. Background: What we do Company created in 1999 20 employees Specialized in Instant Messaging since 2002 Involved in ejabberd since 2002. ProcessOne produced 98% of the code.
    6. Background: What we do Company created in 1999 20 employees Specialized in Instant Messaging since 2002 Involved in ejabberd since 2002. ProcessOne produced 98% of the code. Complete stack of Instant Messaging software
    7. Background: What we do Company created in 1999 20 employees Specialized in Instant Messaging since 2002 Involved in ejabberd since 2002. ProcessOne produced 98% of the code. Complete stack of Instant Messaging software Two main activities software: complete software solution for IM expertise: renowed company for high-availability, scalability and custom solutions (consulting, development and hosting)
    8. Background: What we do Company created in 1999 20 employees Specialized in Instant Messaging since 2002 Involved in ejabberd since 2002. ProcessOne produced 98% of the code. Complete stack of Instant Messaging software Two main activities software: complete software solution for IM expertise: renowed company for high-availability, scalability and custom solutions (consulting, development and hosting) Several tens of large customers, spread across the world Large scale worldwide leader Specific needs renowed expertise
    9. XMPP deployments types Visible public servers The «Sandbox» Not necessarily large scale but very unusual behaviours, clients, usage pattern
    10. XMPP deployments types Visible public servers The «Sandbox» Not necessarily large scale but very unusual behaviours, clients, usage pattern Large scale servers Large scale in term of registered or simultaneous users Large scale starts after a million of registered users and / or hundred of thousands simultaneous connections
    11. XMPP deployments types Visible public servers The «Sandbox» Not necessarily large scale but very unusual behaviours, clients, usage pattern Large scale servers Large scale in term of registered or simultaneous users Large scale starts after a million of registered users and / or hundred of thousands simultaneous connections Large scale in term of thoughput At least tens of thousands of packets per seconds, millions of users of MUC / Pubsub, millions of nodes.
    12. XMPP deployments types Visible public servers The «Sandbox» Not necessarily large scale but very unusual behaviours, clients, usage pattern Large scale servers Large scale in term of registered or simultaneous users Large scale starts after a million of registered users and / or hundred of thousands simultaneous connections Large scale in term of thoughput At least tens of thousands of packets per seconds or tens of thousands users in MUC room or subscribed to pubsub node, etc. Experience of large clusters with several tens of millions registered users and more than 500 000 simultaneous users.
    13. Challenges of real life XMPP Uptime
    14. Challenges of real life XMPP Uptime Uptime !
    15. Challenges of real life XMPP Uptime Uptime ! Uptime !!
    16. Challenges of real life XMPP Uptime Everything else derives from this Uptime ! Challenge (performance, scalability) Uptime !!
    17. Challenges of real life XMPP Uptime Everything else derives from this Uptime ! Challenge (performance, scalability) Uptime !! When a server is restarted: it faces a reconnect storm from client that login again it needs to resync the complete presence states with most of its known s2s servers it reconnects the users accounts on gateways ...
    18. Challenges of real life XMPP Uptime Everything else derives from this Uptime ! Challenge (performance, scalability) Uptime !! When a server is restarted: it faces a reconnect storm from client that login again it needs to resync the complete presence states with most of its known s2s servers it reconnects the users accounts on gateways ... You need to: Be able to monitor lots of values to detect troubles and have tools to keep the server online during trouble phase (otherwise it crash:get worse) Be able to perform maintenance task and upgrade code live
    19. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly
    20. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly First challenge: Detect possible abuser
    21. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly First challenge: Detect possible abuser Use of our toolkit (TeamLeader console) to analyse traffic patterns.
    22. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly First challenge: Detect possible abuser Use of our toolkit (TeamLeader console) to analyse traffic patterns. Correlate the crash to a given user Large number of packets send when online Large bandwidth consumption
    23. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly First challenge: Detect possible abuser Use of our toolkit (TeamLeader console) to analyse traffic patterns. Correlate the crash to a given user Large number of packets send when online Large bandwidth consumption Dump traffic of this user for analysis
    24. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly First challenge: Detect possible abuser Use of our toolkit (TeamLeader console) to analyse traffic patterns. Correlate the crash to a given user Large number of packets send when online Large bandwidth consumption Dump traffic of this user for analysis Traffic reveals that user: has deployed XMPP bot at work on his servers is using the public server to get control of his server basically «Shell over XMPP»
    25. Case 1: XMPP as a proxy Symptom: A «sandbox» XMPP server crashes regularly First challenge: Detect possible abuser Use of our toolkit (TeamLeader console) to analyse traffic patterns. Correlate the crash to a given user Large number of packets send when online Large bandwidth consumption Dump traffic of this user for analysis Traffic reveals that user: has deployed XMPP bot at work on his servers is using the public server to get control of his server basically «Shell over XMPP» Response: Need to detect abnormal usage pattern and trigger alerts
    26. Case 2: Client bad behaviours Symptom: Abnormal memory consumption / sometime leading to crash
    27. Case 2: Client bad behaviours Symptom: Abnormal memory consumption / sometime leading to crash Source problem had been client behaviour
    28. Case 2: Client bad behaviours Symptom: Abnormal memory consumption / sometime leading to crash Source problem had been client behaviour Generates an undue load on the server Example: Client does not reply to some IQ stanzas (PEPS / CAPS) Server waits for reply until timeout Depending on the type of processing it can be blocking Example: Client that send too many presences Large presence broadcast, especially in MUC rooms
    29. Case 2: Client bad behaviours Symptom: Abnormal memory consumption / sometime leading to crash Source problem had been client behaviour Generates an undue load on the server Example: Client does not reply to some IQ stanzas (PEPS / CAPS) Server waits for reply until timeout Depending on the type of processing it can be blocking Example: Client that send too many presences Large presence broadcast, especially in MUC rooms Need to restrict the ability to perform those patterns: Limit the interval for sending presences in chat rooms Limit resourc consumption in general
    30. Case 2: Client bad behaviours Symptom: Abnormal memory consumption / sometime leading to crash Source problem had been client behaviour Generates an undue load on the server Example: Client does not reply to some IQ stanzas (PEPS / CAPS) Server waits for reply until timeout Depending on the type of processing it can be blocking Example: Client that send too many presences Large presence broadcast, especially in MUC rooms Need to restrict the ability to perform those patterns: Limit the interval for sending presences in chat rooms Limit resourc consumption in general
    31. Case 3: Multi User chat MUC rooms attacks Most common case of abuse
    32. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms
    33. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms Join a lot of MUC rooms
    34. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms Join a lot of MUC rooms Join / leave a MUC room fastly
    35. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms Join a lot of MUC rooms Join / leave a MUC room fastly Join lots of users in a single room
    36. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms Join a lot of MUC rooms Join / leave a MUC room fastly Join lots of users in a single room Change presence to bypass voice
    37. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms Join a lot of MUC rooms Join / leave a MUC room fastly Join lots of users in a single room Change presence to bypass voice Flood with messages
    38. Case 3: Multi User chat MUC rooms attacks Most common case of abuse Create a lot of MUC persistant MUC rooms Join a lot of MUC rooms Join / leave a MUC room fastly Join lots of users in a single room Change presence to bypass voice Flood with messages Use large values to «attack» the server or the client (large room names, large nick names, etc)
    39. Case 4: Bots Symptom: Server crash
    40. Case 4: Bots Symptom: Server crash Reduce to a crash when some special user connects (every time)
    41. Case 4: Bots Symptom: Server crash Reduce to a crash when some special user connects (every time) Bots send messages to their users on a public server
    42. Case 4: Bots Symptom: Server crash Reduce to a crash when some special user connects (every time) Bots send messages to their users on a public server They do not often use headline message type (which means they are not intended to be stored offline). They sometimes rely on presence, but it can be inaccurate after a force server shutdown. We have seen users of public servers with more than 500 000 messages in the offline store.
    43. Case 4: Bots Symptom: Server crash Reduce to a crash when some special user connects (every time) Bots send messages to their users on a public server They do not often use headline message type (which means they are not intended to be stored offline). They sometimes rely on presence, but it can be inaccurate after a force server shutdown. We have seen users of public servers with more than 500 000 messages in the offline store. Limit the size of the offline store Ability to detect abusers and limit their ability to send massive amount of messages
    44. Case 5: Large flow / small pipes An XMPP server is a pipe Data flows from on connection to another.
    45. Case 5: Large flow / small pipes An XMPP server is a pipe Data flows from on connection to another. Problem: What happens if you try to send data faster than the target client can receive (mobile) ? What happens if you try to send data faster than the target server can receive (limited bandwith, Karma limitation) ?
    46. Case 5: Large flow / small pipes An XMPP server is a pipe Data flows from on connection to another. Problem: What happens if you try to send data faster than the target client can receive (mobile) ? What happens if you try to send data faster than the target server can receive (limited bandwith, Karma limitation) ? Challenge: Detect congestions and decide what to do when this happens This has to been done right otherwise the service might seems unreliable Federation rules / pattern needed ?
    47. Interesting new challenges ahead Massive numbers of XMPP servers deployed Lots of s2s connections to maintain for large servers Will XMPP scale to millions of servers ?
    48. Interesting new challenges ahead Massive numbers of XMPP servers deployed Lots of s2s connections to maintain for large servers Will XMPP scale to millions of servers ? Large servers connected through s2s: Several large servers need to keep users presence in sync Imagine what happen when one of them goes down ... Yes, massive presence resync is needed
    49. Interesting new challenges ahead Massive numbers of XMPP servers deployed Lots of s2s connections to maintain for large servers Will XMPP scale to millions of servers ? Large servers connected through s2s: Several large servers need to keep users presence in sync Imagine what happen when one of them goes down ... Yes, massive presence resync is needed New usage patterns Ubiquitous XMPP: A single users can have many connections: Increase in size of XMPP platforms Devices / Machine to Machine communication: increase of volume of messages
    50. Questions and challenges to share ?

    + Mickaël RémondMickaël Rémond, 9 months ago

    custom

    2707 views, 12 favs, 2 embeds more stats

    Real life XMPP: How to deploy and manage your publi more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2707
      • 2558 on SlideShare
      • 149 from embeds
    • Comments 0
    • Favorites 12
    • Downloads 34
    Most viewed embeds
    • 147 views on http://www.process-one.net
    • 2 views on http://static.slideshare.net

    more

    All embeds
    • 147 views on http://www.process-one.net
    • 2 views on http://static.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories