After a bit of investigation, it seems the following are mitigations that could be worthwhile to briefly discuss in the book:
- (SW/HW) Flushing branch state when switching between sandboxes/distrusting contexts.
- (HW) partitioning branch predictor "real estate", so it doesn't get shared.
- (SW): remove branches, e.g. if-conversion - especially the branches that are dependent
on secret data. algorithmically or through if-conversion.
- (HW): randomize branch predictor indexing, i.e. how branches alias.
- (HW/SW): Prevent predicting sensitive branches.
- (SW): obfuscating a set of conditional branches by converting them into a single indirect branch.
Zigzagger, see [@lee2017].
After a bit of investigation, it seems the following are mitigations that could be worthwhile to briefly discuss in the book:
on secret data. algorithmically or through if-conversion.
Zigzagger, see [@lee2017].