In the epidemic of COVID-19 disease, people and governments have applied a social distancing policy as a way to help reduce the spread of the virus. Although it is termed “social” distancing, it is actually more accurate to see it as physical distancing, as we are social beings and socializing via telecommunication means are very much encouraged.
The purpose of physical distancing is to lower the pace of virus spreading so that the number of infected patients at any given time during the pandemic is within the capacity of available medical institutions to treat them.
Prior to physical distancing policy, authorities have implemented city-wide isolation and lockdown in certain regions. Two of these procedures are also familiarly found in debugging computer programs. Hence I am thinking if further computer debugging methods and computer security principles can also be applied to mitigate the pandemic.
Isolation and containment
In debugging, when a bug is detected in a system, we begin the investigation by scoping and isolating the bug to the smallest module. This strategy is also called “divide & conquer” in computer debugging.
This is similar to the lockdown procedure already applied in several cities.
Let’s say a system can be spliced into three modules, if module #1 is suspected, we isolate the module and test this single module. If the bug can be replicated on the isolated module, then the bug is contained, while the rest of the system are cleared.
Then we splice the module even further to the smallest possible, and locate where the bug lies.
We can imagine the system as a country, whereas modules within the system are translatable to provinces, which can then be further divided into cities, districts, and so on.
Shutting down network
Of course, this only works if the bug is non contagious. In case of virus, where the disease may spread to other areas while we are isolating them, we need another approach to slow down the race and prevent the spread.
In a computer network, when multiple computers are infected and actively infecting other computers in the network, the first feasible option to mitigate the issue is by cutting of the network. Without the network, virus on one computer will not be able to infect another. Then we don’t have to worry much about the spread and can begin focusing on fixing the infected computers.
This procedure is the physical distancing as what we have in various parts of the world right now.
But people need to work and eat. So they need some external access outside of their homes too. In computer networks, sometimes there is also a pressure to get the network up as soon as possible. We can’t leave the network down for too long.
So, what would be the next possible procedure?
Whitelisting is similar to the isolation and containment procedure above, except that it is done from the bottom-up and applied to cleared areas instead of suspected ones.
In computer security, there are two basic approaches in determining authorization. Or in other words, who can access what.
The first approach is blacklisting. Here we have basic assumption that everyone is trusted and allowed to access the network. Then when a computer or multiple computers within a certain subnetwork is suspected, then these can be blacklisted and not allowed to access.
The second approach, whitelisting, is the opposite. By default every computer is treated as possible suspect. Only after it is cleared and included in the whitelist, it is then able to access.
Now with people being isolated inside their homes and being cut off from the community, it is possible to apply whitelisting.
Let’s say we have a small neighborhood consisting of 3 houses. Healthcare worker together with local authorities can conduct a door-to-door test on each house. If all the houses within this neighborhood are cleared, then the isolation area is enlarged to that neighborhood. Which means the people are now able to walk around and meet their neighbors within this area, but are still not allowed to go past the neighborhood.
Then, they conduct a test to the next neighborhood, if it is also cleared, then people living in this neighborhood is allowed to walk around within.
Now, we have two isolated, whitelisted, neighborhoods. We can then keep doing the above steps to each neighborhood within a district. If all the neighborhoods in a district is cleared, then they can be merged together. That means the inhabitants now have an even larger area movement within the district, but are still not allowed to go beyond.
As the area grows, eventually the infected area can be contained. So rather than marking and isolating infected areas, we are marking and isolating uninfected areas this way.
Now the issue is, how practical would this method be? Unlike computer programs where things stay as they are and follows every command as directed, every person has their own mind and needs. I will leave that up for discussion and end my post here.