In the IMDb credits for this movie, it says that Leonid Sherbarshin and Viktor Cherkashin were played by 'Themselves'.
I can quite definitely state this is not the case. Sherbarshin is more than a foot taller than the actor playing him in this movie. Cherkashin was born in 1932 and therefore is considerably older than the person playing him.
Further, in the movie, when Shebarshin first appears, right after Hanssen first contacts the KGB in 1985, a caption says he is the head of Soviet Foreign Intelligence. In 1985 the head of Soviet Foreign Intelligence was Vladimir Kryuchkov. Sherbarshin did not become FCD head until 1988.
Ironically, the credits state 'Alexander Kalugin....?'. This person was actually played by the real former KGB Colonel and defector Oleg Kalugin.
In reality the person who stole the Hanssen file from the KGB archive as a retirement plan was not paid $20M for it as stated in the movie, but more like $7M, and that only in installments. However the SVR somehow managed to lure him back to Moscow where he was jailed for 18 years.
Other than these minor points this film is largely faithful to the major facts of the case.