Conversation
AIX audit support
conditional compilation checks specifc to AIX in setresuid
|
Please stop creating and immediately closing pull requests. You can update an open PR by updating your fork on GitHub. |
|
The first problem is that you are sprinkling platform specific code throughout the platform-independent audit.c. you should put the AIX specific stuff into its own file, similar to audit-bsm.c or audit-linux.c |
so instead of creating a stub what I could have done is create a new file audit-aix.c and have all the audit specific implementation there and receptively make necessary changes in Makefile.in |
Yes. audit.c is the stub (plus some helper functions). Platforms specific code goes into its own file. |
|
It's very difficult to follow what you are changing with all of the commits on top of commits. |
Sure @daztucker , I understand that there are several commits. Let me re-submit the PR with all the aix specific changes. |
You did it again . Please don't open then immediately close PRs, instead leave one open and update it: |
I tried to incorporate the suggestion by making necessary changes to the congifure.ac, Makefile.in. also created a new file named audit-aix.c.
do you want me to
do you want me to revert all the changes
Sorry my bad. Thanks for sharing this document. Will follow and keep this handy. |
1. Core Audit Implementation Changes
File: [audit.c]
Added AIX-Specific Audit Support:
AIX Headers: Added <sys/audit.h> and <usersec.h> for AIX audit subsystem
Enhanced [audit_username()]: Improved logic to handle NULL authctxt cases
AIX Event Names: Added AIX-compliant event names in [audit_event_lookup()]:
SSH_exceedmtrix, SSH_rootdned, SSH_authsuccess, etc.
Standard names for non-AIX: LOGIN_EXCEED_MAXTRIES, AUTH_SUCCESS, etc.
Enhanced [audit_event()] Function:
UID Tracking: Added auth_uid to track authenticating user's UID
AIX UID Retrieval: Uses getuserattr() on AIX, getpwnam() on other systems
Remote IP Handling: Safely handles NULL ssh pointer
Detailed Logging: Logs auth_uid, username, event type, and remote IP
AIX Audit Writing: Calls auditwrite() with proper result codes (0=success, 1=failure)
Error Handling: Proper buffer truncation checks and error logging
Enhanced [audit_session_open()] Function:
AIX-Specific Implementation: Complete audit trail for session opens
Detailed Context: Logs username, tty, hostname, PID, and UID
AIX Audit Integration: Writes to AIX audit subsystem with auditwrite()
Fallback for Non-AIX: Maintains simple debug logging for other platforms
2. Audit Header Changes
File: [audit.h]
Added New Event Types:
SSH_BAD_PCKT, // bad/invalid packet received
SSH_CIPHER_NO_MATCH, // cipher negotiation failed
SSH_SESSION_OPEN, // session opened
These events enable tracking
of security-relevant protocol events.
3. Client/Server Separation Solution
File: [audit-stub.c] (NEW FILE)
Purpose:
Provides
no-op
stub implementations
of all audit functions for client binaries.
Key Design:
Conditional Compilation: Uses #ifndef CUSTOM_SSH_AUDIT_EVENTS
Complete Stub Set: All 6 audit functions stubbed: