In a large pot, combine the water, pork ribs, cilantro roots, and salt. Bring to a boil over high heat. Once the water boils, reduce heat to medium, cover and continue to boil for 1 hour.
Once the ribs are fully cooked, strain the contents of the pot through a colander into a large bowl. Remove the pork rib meat from the bone and chop with a French knife. Place the chopped pork rib meat back into the pot along with the reserved broth. Discard the pork bones and cilantro roots.
PREPARE THE PASTE: Using a food processor blitz the dried chiles, paprika, 2 tbsp garlic, ginger, shallots and shrimp paste. Add the tomatoes and blitz until you've achieved a smooth mixture.
Heat oil in a saucepan over medium heat. Add the remaining 1 tbsp of garlic and cook until fragrant, 10-15 seconds. Add the tomato mixture and cook for 2 minutes stirring frequently. Add the ground pork and mix well for 5-6 minutes until fully cooked.
Transfer the tomato pork mixture to the broth. Turn the heat to medium then add the fish sauce and chicken broth. Mix well and simmer for 2-3 minutes.
Meanwhile, cook the rice vermicelli noodles according to the package directions. Drain and rinse under cold running water to stop the noodles from cooking. Divide the noodles into 4 bowls and ladle soup over the noodles.
Top each bowl with bean sprouts, cilantro, green onions and fried shallots. Serve hot.