it looks like you are dealing with a Fortigate B-model, like 60B from around 2010...there has been some development (in terms of tightening security) since.
Please state the version of FortiOS you are using. The settings to mediate those security holes depend on that.
Generally, in "config system global", "config system setting" and some other contexts you can set parameters to enforce a minimum level of security - mainly the minimum version of SSL used (today: TLS 1.2), in "config vpn ipsec" the ciphes offered (DH group > 14) etc. etc.
There is a lot of explanations and advice into this direction in the Fortigate Handbook, and probably the Knowledgebase as well.
So, in short, you can tighten security on a contemporary FortiOS version significantly - many of the problem points you mention in your post are about 10 years old. But the appropriate settings depend on the version you use.
One caveat: there will be no easy recipe like "if you set this to x and that to y, your FGT will withstand all audits". It takes thorough analysis of the way the FGT is set up, the features used etc. and some seasoned experience in the field of IT security to make the setup safer but not cripple the firewall. Maybe you should consider hiring a Fortinet partner to assist you in this.
"Kernel panic: Aiee, killing interrupt handler!"