Это то, что вам очень трудно сделать, и я думаю, что вы подходите к проблеме с неправильной точки зрения. Если вы пишете приложение любого размера, то попытка решить проблему безопасности в конце концов путем поиска конкретных способов взлома вашего собственного программного обеспечения практически невозможна.
Это по ряду причин. Вы уже думаете о своем программном обеспечении определенным образом. Вы думаете о конкретных способах взаимодействия с ним и знаете, как извлечь из этого максимум пользы. Вы не думаете об этом с точки зрения способов его использования, и это трудно сделать с программным обеспечением, с которым вы хорошо знакомы.
Другая проблема заключается в том, что задача к этому моменту слишком велика для решения. Любые проблемы, которые вы обнаружите, могут открыть множество других проблем. Системная проверка безопасности далеко не достаточно гранулярна.
Что вы должны делать, так это думать о безопасности во время написания программного обеспечения. Изучите лучшие практики и рассмотрите каждый метод и класс, которые вы пишете, с точки зрения безопасности. Это идет рука об руку с модульным тестированием, попробуйте подумать, какие входные данные могут сделать эту конкретную часть моего программного разрыва. а затем разберитесь с ними на этом уровне.
После этого я думаю, что это вопрос быстрого реагирования на любые проблемы безопасности, о которых вам стало известно.