Expedition BPA customise or disable some checks associated to the different

Showing results for 
Show  only  | Search instead for 
Did you mean: 

Expedition BPA customise or disable some checks associated to the different

L0 Member

Can someone please let me know how I can customise or disable some checks associated to the different topics’s (Device, Objects, Policies, Network) under BPA in Expedition. 

Is there a centralised BPA definition file(csv,XML) that can be updated so Expedition Project BPA report will Get exclude? 


L5 Sessionator

This is not actually possible.

The BPA checks are performed as a single pack, and the results are also presented as a group.


We have not implemented any process to disable specific checks as the results are mean to provide visibility on aspects that are not following the recommended Palo Alto Networks settings, therefore called Best Practices.

If that's the case where can I find a list of all benchmarks/controls that Expedition BPA compare ?


After analysing py best_practice_assessment_ngfw_pano-master.zip under /html/OS/BPA i have noticed that you can add new best practice checks by updating file "analyzers/best_practices/check_config.json" and these check IDs has been hardcoded into the Analyzer classes


Example of BPA check ID 3::

"check_id": 3,
"check_name": "Description Populated",
"check_type": "Warning"


Is there a way you can add new BPA controls by using this method?


I have found benchmarks/controls are loaded from below location and some reference are to CSV file located on '/libs/best_practice_assessment/bpat_documentation.csv'. I was able to find contents/benchmarks.xml, but not the CSV file. 


Can you able to explain how BPA process is pulling all benchmarks ? 




# LOAD Benchmark
if (file_exists(INC_ROOT.'/contents/benchmarks.xml')){
$xml = simplexml_load_file(INC_ROOT.'/contents/benchmarks.xml');
$bestPracticesdb->query("TRUNCATE benchmarks_topics;");
$bestPracticesdb->query("TRUNCATE benchmarks;");
$bestPracticesdb->query("TRUNCATE benchmarks;");




function load_csv_description(){

if (file_exists(INC_ROOT.'/libs/best_practice_assessment/bpat_documentation.csv')){
$handle = fopen(INC_ROOT.'/libs/best_practice_assessment/bpat_documentation.csv','r');
while ( ($data = fgetcsv($handle,0,';') ) !== FALSE ) {

return $description;



We are not the developers of the BPA, but we consume the results that the BPA team has implemented and do the mapping for some specific check remediations.


You may want to address to them via their Live space:

Like what you see?

Show your appreciation!

Click Like if a post is helpful to you or if you just want to show your support.

Click Accept as Solution to acknowledge that the answer to your question has been provided.

The button appears next to the replies on topics you’ve started. The member who gave the solution and all future visitors to this topic will appreciate it!

These simple actions take just seconds of your time, but go a long way in showing appreciation for community members and the LIVEcommunity as a whole!

The LIVEcommunity thanks you for your participation!