Chapter 7: Practical Firewall Design
Palo Alto Networks (a leading next-generation FW vendor)
Fortinet (FortiGate)
Example of a firewall appliance (Cisco ASA 5510)
Appearance of an enterprise firewall used in hospital networks
7.1 FQDN-Based vs. IP-Based Allow Rules
Two Allow Methods
There are broadly two methods for allowing outbound traffic through a firewall.
| Method | Configuration Example | Characteristics |
|---|---|---|
| IP-based allow | Destination: 52.194.10.20 | Allows traffic only to a specific IP address |
| FQDN-based allow | Destination: smartassist.example.com | Specifies by domain name; automatically allows IPs resolved via DNS |
Why FQDN-Based Allow Rules Are Recommended for AWS
With AWS services, IP addresses can change dynamically for the following reasons:
- Load balancer scaling: IPs are added or changed in response to load
- Failover during outages: Traffic may switch to a different IP address
- Maintenance: IP changes due to AWS infrastructure updates
When FQDN-Based Allow Rules Cannot Be Used
Older firewall appliances may not support FQDN-based allow rules. The following workarounds are available in such cases.
| Workaround | Description |
|---|---|
| Allow by IP range | Allow a broad range using AWS IP ranges (publicly available information) |
| Periodic IP verification | Periodically check the FQDN's IP address and update FW rules if it changes |
| Route through a proxy | Perform FQDN-based control on the proxy server and only allow the proxy on the FW |
This situation actually comes up quite often in the field. You may encounter older firewalls (such as Cisco ASA 5500 series with legacy firmware) that do not support FQDN-based allow rules. Do not panic when this happens.
The most practical approach is to switch to routing through a proxy. On the FW side, only allow the proxy server's IP, and let the proxy handle FQDN-based control. If no proxy is available, use nslookup to check the current IP and submit the request, but make sure to inform the hospital's IT administrator that the IP may change. If you stay silent about it, traffic will suddenly stop when the IP changes, causing a major incident.
7.2 Port Opening Principles
Principle of Least Privilege
Firewall port openings should be designed based on the principle of allowing only the minimum necessary traffic.
Ports Required for Smart Assist
| Protocol | Port | Direction | Purpose |
|---|---|---|---|
| TCP | 443 | Outbound | HTTPS communication (data send/receive) |
| UDP | 53 | Outbound | DNS name resolution (when using FQDN) |
Firewall Rule Design Example
# Smart Assist Traffic Allow Rules
Rule 1: HTTPS Traffic
Source: 192.168.10.50/32 (Smart Assist PC)
Destination: smartassist.example.com
Protocol: TCP
Dest Port: 443
Action: ALLOW
Rule 2: DNS Traffic (for direct DNS)
Source: 192.168.10.50/32 (Smart Assist PC)
Destination: Hospital Internal DNS Server
Protocol: UDP
Dest Port: 53
Action: ALLOW
Default Rule:
Source: *
Destination: *
Protocol: *
Dest Port: *
Action: DENY
Configurations You Must Never Use
| Configuration Example | Problem |
|---|---|
| Destination: ANY, Port: ANY | Allows all outbound traffic |
| Destination: ANY, Port: 443 | Enables access to any HTTPS site |
| Source: ANY | Allows traffic from devices other than the Smart Assist PC |
You might be tempted to suggest to the hospital IT administrator: "Let's open everything for the connectivity test first, then tighten it later." I understand the temptation. But you must absolutely never do this.
There are two reasons. First, at a hospital that has passed a security review, "opening everything, even temporarily" will destroy trust. Second, there is a high risk that "tightening later" never actually happens and the system goes live with wide-open rules. Closing a hole after it has been opened is far harder than configuring it properly from the start.
Always configure with least privilege from the beginning, and if traffic does not pass, troubleshoot to identify the cause. Follow this order without exception.
7.3 Considerations for Proxy Environments
Traffic Flow Through a Proxy
In a proxy environment, the Smart Assist PC communicates through the proxy server rather than directly through the firewall.
Required Settings for Proxy Environments
| Setting Location | Configuration |
|---|---|
| Smart Assist PC | Configure the proxy server address and port number |
| Proxy server | Add Smart Assist's destination FQDN to the whitelist |
| Firewall | Allow 443/tcp outbound traffic from the proxy server |
Proxy Configuration on the Smart Assist PC
# Setting via environment variables
HTTPS_PROXY=http://proxy.hospital.local:8080
# Setting via application configuration
Proxy Host: proxy.hospital.local
Proxy Port: 8080
Handling Authenticated Proxies
With an authenticated proxy, authentication credentials must be sent with each communication.
| Item to Verify | Details |
|---|---|
| Authentication method | Basic authentication, NTLM authentication, Kerberos authentication, etc. |
| Service account | Whether a dedicated account is needed for always-on services |
| Password change policy | Whether periodic password changes will affect Smart Assist communications |
The biggest pitfall at hospitals with authenticated proxies is the service account issue. In environments where individual AD accounts are used for authentication, the question arises: "Whose account should Smart Assist use for proxy authentication?"
There are three things to verify in advance:
- Can a dedicated service account (AD account) be created specifically for the Smart Assist PC?
- What is the password expiration policy for that account? (If it expires every 90 days, communications will periodically stop)
- Is an authentication bypass list available (a setting that allows certain IPs to skip proxy authentication)?
The easiest option is the authentication bypass list. If the Smart Assist PC's IP address is registered on it, the authentication problem goes away entirely.
7.4 Impact of SSL Inspection
What Is SSL Inspection?
SSL inspection (also called SSL/TLS inspection or HTTPS inspection) is a feature where the firewall or proxy decrypts and inspects the contents of encrypted HTTPS traffic.
How It Works
Impact on Smart Assist
| Impact | Description |
|---|---|
| Certificate error | Communication fails if the Smart Assist PC does not trust the FW's certificate |
| Certificate pinning | If the application expects a specific certificate, it will reject the replacement certificate |
| Performance degradation | Communication speed may decrease due to the processing overhead of decryption and re-encryption |
Remediation Methods
| Method | Description |
|---|---|
| Exclusion setting | Exclude the Smart Assist destination FQDN from SSL inspection targets |
| CA certificate installation | Install the CA certificate issued by the FW/Proxy on the Smart Assist PC |
In most cases, the exclusion setting is the simplest and most reliable approach.
Simply saying "Please exclude us from SSL inspection" will make the hospital IT administrator uneasy. The key when submitting an exclusion request is to also explain why it is safe to grant the exclusion.
Points to include in the request:
- FQDNs to exclude:
*.arkray-smartassist.comand the S3 FQDN (specify explicitly) - Reason for exclusion: The system cannot function in an inspection environment due to certificate pinning
- Basis for safety: The destination is exclusively our company-managed AWS environment, traffic is already encrypted with TLS 1.2, and a WAF is filtering malicious requests
Providing three or more reasons why the exclusion is safe will generally get the request approved.
7.5 How to Write a Firewall Allow Request
Information to Include in Hospital Requests
Firewall allow requests must contain all the information the hospital IT department needs to make a decision, without excess or omission.
Request Template
| Item | Details |
|---|---|
| Source | 192.168.10.50 (Smart Assist PC) |
| Destination | smartassist.example.com |
| Port | 443/tcp (HTTPS) |
| Traffic Direction | Outbound Only |
| Encryption | TLS 1.2 or higher |
- Anonymized specimen IDs
- Microscope images (formed elements)
- Automated classification results (confidence scores)
- All communications are encrypted with HTTPS (TLS 1.2 or higher)
- Communications are always initiated from the hospital PC (Outbound Only)
- No new inbound connections from the cloud to the hospital network will occur
- The destination is limited to specific FQDNs on AWS
- Communication sequence diagram (Appendix 1)
- Security design document (Appendix 2)
7.6 How to Explain to Hospital IT
Fundamental Principles of Explanation
| Principle | Description |
|---|---|
| Anticipate the other party's concerns | Explain security concerns and countermeasures before being asked |
| Do not overuse technical jargon | Use necessary technical terms but always provide explanations |
| Use diagrams | Always illustrate communication flows and network architecture with diagrams |
| Provide evidence | Instead of saying "It's safe," explain technically "why it is safe" |
| Welcome questions | Treat questions as opportunities to build trust |
Recommended Explanation Flow
| Order | Content | Purpose |
|---|---|---|
| 1 | Explain the business purpose of Smart Assist | Help them understand why this communication is necessary |
| 2 | Show the communication flow diagram | Visualize what data flows where |
| 3 | Clearly state what data is transmitted | Confirm that no personal information is included |
| 4 | Explain that traffic is Outbound Only | Provide an answer to their primary concern |
| 5 | Present a specific firewall configuration proposal | Provide a concrete, implementable plan |
| 6 | Explain the scope of impact during failures | Clarify what happens in the worst-case scenario |
| 7 | Q&A session | Carefully address concerns |
Explanation Patterns to Avoid
| Bad Example | Reason |
|---|---|
| "It's safe because it's in the cloud" | No supporting evidence |
| "There are no technical issues" | Technical issues are not the only thing they are worried about |
| "It's running fine at other hospitals" | Their hospital's policies may not be the same |
| "Please ask the technical team for details" | This destroys trust |
Note (International Context): The firewall allow request template presented in this chapter follows a standard format for Japanese hospital IT departments. In the United States, the request process is typically based on vendor security questionnaires (SIG: Standardized Information Gathering, CAIQ: Consensus Assessment Initiative Questionnaire) or HIPAA Security Risk Assessments. In the EU, a DPIA (Data Protection Impact Assessment) under GDPR Article 35 and consultation with a DPO (Data Protection Officer) are often required. Regardless of region, the fundamentals remain the same: visualize the communication flow, clearly state what data is transmitted, and provide technical evidence that traffic is Outbound Only.
7.7 Reading the Documentation: FW Allow FQDN List (Actual Configuration Values)
Overview of the Documentation
The Network Explanatory Materials contain a list of specific FQDNs and ports that need to be allowed on the firewall. Field engineers use this list to present specific FW configuration proposals to hospital IT administrators.
Smart Assist Communications (Required)
| Category | FQDN | Protocol | Port |
|---|---|---|---|
| Smart Assist | *.arkray-smartassist.com | HTTPS | 443 |
| Smart Assist (S3) | remote-us1pdv2-bucket-measure-info.s3.us-east-1.amazonaws.com | HTTPS | 443 |
Time Synchronization (NTP)
| Category | FQDN | Protocol | Port |
|---|---|---|---|
| NTP | ntp.nict.jp | UDP/TCP | 123 |
| NTP | *.pool.ntp.org | UDP/TCP | 123 |
| NTP | time.windows.com | UDP/TCP | 123 |
Security Software Updates
| Category | FQDN | Protocol | Port |
|---|---|---|---|
| McAfee Update | update.nai.com | HTTPS | 443 |
| McAfee Update | download.mcafee.com | HTTPS | 443 |
| McAfee Update | updates.mcafee.com | HTTPS | 443 |
| McAfee Update | gti.mcafee.com | HTTPS | 443 |
| McAfee Update | cloud.gti.mcafee.com | HTTPS | 443 |
| McAfee Update | crl.trustwave.com | HTTPS | 443 |
Windows Update
| Category | Key FQDNs (Excerpt) | Protocol | Port |
|---|---|---|---|
| Windows Update | windowsupdate.microsoft.com | HTTPS | 443 |
| Windows Update | *.windowsupdate.microsoft.com | HTTPS | 443 |
| Windows Update | update.microsoft.com | HTTPS | 443 |
| Windows Update | *.update.microsoft.com | HTTPS | 443 |
| Windows Update | download.microsoft.com | HTTPS | 443 |
| Windows Update | *.download.microsoft.com | HTTPS | 443 |
| Windows Update | dl.delivery.mp.microsoft.com | HTTPS | 443 |
| Windows Update | settings-win.data.microsoft.com | HTTPS | 443 |
Note: Refer to the Network Explanatory Materials for the complete list of Windows Update FQDNs. The above is an excerpt of the major ones.
When Using the VPN Connection Option (Option 2)
When the VPN connection option is selected, only the FQDN allow rules for Smart Assist communications are needed (NTP, McAfee, and Windows Update will route through the VPN).
| Category | FQDN | Protocol | Port |
|---|---|---|---|
| Smart Assist | *.arkray-smartassist.com | HTTPS | 443 |
| Smart Assist (S3) | remote-us1pdv2-bucket-measure-info.s3.us-east-1.amazonaws.com | HTTPS | 443 |
| AWS Client VPN | Provided via configuration file | — | — |
Key Points for Field Engineers
- Wildcard (*) allow rules: Wildcard specifications such as
*.arkray-smartassist.commay not be supported by some FW appliances. In that case, allow specific subdomains individually - S3 FQDN: The direct access URL for S3 buckets is a long FQDN that includes region information. Make sure to copy it exactly
- Importance of NTP: If time synchronization fails, TLS certificate validation may also fail (see Chapter 10 for certificate expiration troubleshooting)
- Phased allow approach: It is also effective to first allow only the two Smart Assist communication entries, test connectivity, then add NTP and update-related entries
Cases where the wildcard specification *.arkray-smartassist.com is rejected by the FW are actually fairly common. This happens especially with older firmware on Palo Alto or FortiGate appliances, or at hospitals whose policies prohibit wildcard rules.
When this happens, do not panic. Expand the actually used subdomains individually and submit them in the request. The specific subdomains are listed in the Network Explanatory Materials. First check that document, then list out the required FQDNs individually for your request.
Do not forget the S3 FQDN either. remote-us1pdv2-bucket-measure-info.s3.us-east-1.amazonaws.com is long, so copying and pasting is mandatory (typing it manually will result in a typo 100% of the time).
In the next chapter, we will understand the basic structure of AWS, the cloud infrastructure behind Smart Assist.