I mean, the FSB could have easily had an asset inside the refueling operation at the Moscow airport. Place a small time-delayed explosive charge in the fuel intake of the left wing just before take-off, and you'd end up with pretty much exactly the crash profile we've seen.
It's cheaper and more reliable than a missile, leaves less physical evidence behind, and maintains a higher level of plausible deniability. Especially if your fallback plan is to blame it on the Ukrainians if the plot gets discovered.