This is still all theory rather than practice because CASPER is still under development, but here goes:
Validators have to place a security deposit (bond) in order to build blocks and participate in the consensus-generating process. This is what keeps them honest. The PoS protocol (Casper) controls these bonds and this is how it enforces proper behavior. When Casper detects that validators do not create blocks in a protocol-prescribed order, it punishes them by withholding transaction fees and deposits. So the answer to who ensures it is the protocol itself. Vitalik Buterin describes these slashing conditions (i.e. the rule-breaking scenarios that will lead to the destruction of the validator's bonds) here: https://www.ethnews.com/proof-of-stake-vitalik-buterin-shares-casper-contract-code
It looks like certain things are still in development stage, for instance the minimum size of validator deposits that need to be staked "to offset the gas costs (transaction fees) of sending prepare/commit messages and make a profit"
This is a tricky issue. Here there is an implied minimum because you
have to pay gas to prepare/commit, and so altogether it's not
profitable unless you deposit at least 1000-4000 ETH. One possibility
that we're thinking about is in later stages hardforking in a discount
specifically for execution associated with this contract, but that's
still nowhere near finalized.
Read more here: