1c utente ib corrisponde a più di un elemento. Gestione dell'IB

Informazioni di sicurezza, come la protezione delle informazioni, è un compito complesso volto a garantire la sicurezza, attuato mediante l'implementazione di un sistema di sicurezza. Il problema della sicurezza delle informazioni è multiforme e complesso e copre una serie di compiti importanti.

I problemi di sicurezza delle informazioni sono costantemente aggravati dalla penetrazione dei mezzi tecnici di elaborazione e trasmissione dei dati in tutte le sfere della società; questo problema è particolarmente acuto nel campo dei sistemi di contabilità finanziaria; Il sistema di processi di contabilità, vendita e CRM più popolare in Russia è il sistema 1C Enterprise.

Consideriamo le potenziali minacce alla sicurezza quando si utilizza il programma 1C.

Utilizzo di 1C con database in formato file. I database di file 1C sono i più vulnerabili agli impatti fisici. Ciò è dovuto alle caratteristiche architettoniche di questo tipo di database: la necessità di mantenere aperti (con pieno accesso) tutti i file di configurazione e i database di file stessi per tutti gli utenti del sistema operativo. Di conseguenza, qualsiasi utente che ha il diritto di lavorare in un database di file 1C può teoricamente copiare o addirittura eliminare un database di informazioni 1C con due clic del mouse.

Utilizzo di 1C con database in formato DBMS. Questo tipo di problema si verifica se un DBMS (PosgreSQL, MS SQL) viene utilizzato come archivio per i database 1C e un server 1C aziendale viene utilizzato come servizio di comunicazione intermedio tra 1C e il DBMS. Questo è un esempio: molte aziende si esercitano a modificare le configurazioni 1C per adattarle alle proprie esigenze. Nel processo di perfezionamento, nelle condizioni di “confusione” del progetto, di costante test di funzionalità nuove e migliorate, gli specialisti responsabili spesso trascurano le regole della sicurezza della rete.
Di conseguenza, alcuni individui che hanno accesso diretto al database DBMS o hanno diritti di amministratore sul server 1C Enterprise, anche per un periodo di prova temporaneo, possono effettuare una copia di backup su risorse esterne o eliminare completamente il database nel DBMS.

Apertura e accessibilità delle apparecchiature server. In caso di accesso non autorizzato alle apparecchiature server, i dipendenti dell'azienda o terzi possono utilizzare questo accesso per rubare o danneggiare informazioni. In poche parole, se un utente malintenzionato ottiene l'accesso diretto al corpo e alla console di un server 1c, la gamma delle sue capacità si espande di dieci volte.

Rischi di furto e fuga di dati personali. Qui, le attuali minacce alla sicurezza dei dati personali sono intese come un insieme di condizioni e fattori che creano l'attuale pericolo di accesso non autorizzato, incluso accidentale, ai dati personali durante il loro trattamento in un sistema informativo, ad esempio, da parte di dipendenti responsabili, PC operatori, dipartimenti contabili, ecc.
Ciò può comportare la distruzione, la modifica, il blocco, la copia, la fornitura, la distribuzione dei dati personali, nonché altre azioni illegali delle persone responsabili.

Sicurezza della rete. Un sistema informativo aziendale costruito in violazione di GOST, requisiti di sicurezza, raccomandazioni o senza un adeguato supporto IT è pieno di buchi, virus e spyware e molte backdoor (accesso non autorizzato alla rete interna), che influiscono direttamente sulla sicurezza dei dati aziendali in 1C. Ciò consente a un utente malintenzionato di accedere facilmente a informazioni commercialmente sensibili. Un utente malintenzionato può ad esempio sfruttare l'accesso gratuito alle copie di backup e l'assenza di password per gli archivi con copie di backup per guadagno personale. Per non parlare del danno elementare al database 1C causato dall'attività virale.

Relazione tra 1C e oggetti esterni. Un’altra potenziale minaccia è la necessità (e talvolta una speciale funzionalità di marketing) del database contabile 1C di comunicare con il “mondo esterno”. Caricamenti/download delle banche clienti, scambio di informazioni con le filiali, sincronizzazione periodica con siti aziendali, portali, altri programmi di reporting, gestione clienti e vendite e molto altro ancora. Poiché in quest'area 1C non è incoraggiato il rispetto degli standard di sicurezza e l'uniformità dello scambio di informazioni sulla rete, una perdita è del tutto reale in qualsiasi punto del suo percorso.
A causa della necessità di miglioramenti non standard nell'automazione dei processi o di tagli al budget per le misure necessarie per proteggere il traffico, il numero di vulnerabilità, buchi, connessioni non sicure, porte aperte, file di scambio facilmente accessibili in forma non crittografata, ecc. aumenta immediatamente nel sistema contabile. Puoi tranquillamente immaginare a cosa ciò potrebbe portare: dalla disabilitazione elementare del database 1C per un certo periodo alla falsificazione di un ordine di pagamento per diversi milioni.

Cosa si può proporre per risolvere tali problemi?

1. Quando si lavora con database di file 1CÈ imperativo attuare una serie di misure per garantire la sicurezza delle basi:

  • Utilizzando le restrizioni di accesso NTFS, concedi i diritti necessari solo agli utenti che lavorano con questo database, proteggendo così il database da furti o danni da parte di dipendenti senza scrupoli o di un utente malintenzionato;
  • Utilizzare sempre l'autorizzazione Windows per accedere alle postazioni di lavoro degli utenti e accedere alle risorse di rete;
  • Utilizza dischi crittografati o cartelle crittografate che ti consentiranno di salvare informazioni riservate anche se rimuovi il database 1C;
  • Stabilire una politica di blocco automatico dello schermo e fornire formazione agli utenti per spiegare la necessità del blocco del profilo;
  • La differenziazione dei diritti di accesso al livello 1C consentirà agli utenti di accedere solo alle informazioni per le quali dispongono dei diritti appropriati;
  • È necessario consentire il lancio del configuratore 1C solo ai dipendenti che ne hanno bisogno.

2. Quando si lavora con database DBMS 1C Si prega di prestare attenzione alle seguenti raccomandazioni:

  • Le credenziali per la connessione al DBMS non dovrebbero avere diritti amministrativi;
  • È necessario differenziare i diritti di accesso ai database DBMS, ad esempio, creare il proprio account per ciascuna base di informazioni, che ridurrà al minimo la perdita di dati se uno degli account viene violato;
  • Si consiglia di limitare l'accesso fisico e remoto al database aziendale e ai server 1C;
  • Si consiglia di utilizzare la crittografia per i database; ciò salverà i dati riservati anche se un utente malintenzionato ottiene l'accesso fisico ai file DBMS;
  • Inoltre, una delle decisioni importanti è crittografare o impostare una password per i backup dei dati;
  • È obbligatorio creare amministratori per il cluster 1C, così come per il server 1C, poiché per impostazione predefinita, se non vengono creati utenti, assolutamente tutti gli utenti del sistema hanno pieno accesso alle basi informazioni.

3. Requisiti per garantire la sicurezza fisica delle apparecchiature server:
(secondo GOST R ISO/IEC TO – 13335)

  • L'accesso alle aree in cui vengono trattate o archiviate informazioni sensibili deve essere controllato e limitato alle sole persone autorizzate;
  • Controlli di autenticazione, come una carta di controllo dell'accesso più un numero di identificazione personale , deve essere utilizzato per autorizzare e confermare qualsiasi accesso;
  • Una traccia di controllo di tutti gli accessi deve essere conservata in un luogo sicuro;
  • Al personale dei servizi di supporto di terzi dovrebbe essere concesso un accesso limitato alle aree di sicurezza o alle strutture di trattamento Informazioni importanti solo quando richiesto;
  • tale accesso deve essere autorizzato e monitorato in ogni momento;
  • I diritti di accesso alle aree di sicurezza dovrebbero essere regolarmente riesaminati e aggiornati e, se necessario, revocati;
  • È necessario tenere conto delle normative e degli standard pertinenti in materia di sicurezza e salute;
  • Le strutture chiave dovrebbero essere ubicate in modo da impedirne l'accesso al pubblico in generale;
  • Ove applicabile, gli edifici e i locali dovrebbero essere modesti e fornire indicazioni minime sulla loro destinazione, senza segnaletica evidente, all'esterno o all'interno dell'edificio, che indichi la presenza di attività di elaborazione delle informazioni;
  • I segnali e gli elenchi telefonici interni che indicano l'ubicazione delle strutture per il trattamento delle informazioni sensibili non dovrebbero essere facilmente accessibili al grande pubblico.

4. Riservatezza dei dati personali. L'obiettivo principale nell'organizzazione della protezione dei dati personali è quello di neutralizzare le minacce attuali nel sistema informativo, definito Legge federale del 27 luglio 2006 n. 152-FZ "Sui dati personali" , un elenco di standard statali e requisiti delle certificazioni internazionali di sicurezza IT (GOST R ISO/IEC 13335 2-5, ISO 27001) . Ciò si ottiene limitando l'accesso alle informazioni in base alla loro tipologia, delimitando l'accesso alle informazioni in base ai ruoli utente, strutturando il processo di elaborazione e archiviazione delle informazioni.
Ecco alcuni punti chiave:

  • Il trattamento dei dati personali deve essere limitato al raggiungimento di finalità determinate, predefinite e legittime;
  • Il consenso al trattamento dei dati personali deve essere specifico, informato e consapevole;
  • Non è consentito il trattamento dei dati personali incompatibile con le finalità della raccolta dei dati personali;
  • Sono oggetto di trattamento solo i dati personali rispondenti alle finalità del loro trattamento;
  • Gli operatori e le altre persone che hanno accesso ai dati personali sono obbligati a non divulgare a terzi o diffondere i dati personali senza il consenso dell'interessato, salvo diversa disposizione della legge federale;
  • Non dovrebbero essere consentite apparecchiature fotografiche, video, audio o di altra registrazione, come fotocamere su dispositivi mobili, senza autorizzazione;
  • Le unità con supporti rimovibili dovrebbero essere consentite solo se necessario per l'azienda;
  • Per garantire che le informazioni riservate non vengano manomesse, i supporti cartacei ed elettronici devono essere conservati in armadi opportunamente chiusi e/o altri mobili sicuri quando non utilizzati, soprattutto durante le ore non lavorative;
  • I supporti contenenti informazioni proprietarie importanti o sensibili devono essere riposti e chiusi a chiave quando non sono necessari (ad esempio, in una cassaforte o in un armadietto ignifugo), soprattutto quando l'area non è occupata.

5. Sicurezza della rete- si tratta di un insieme di requisiti per l'infrastruttura della rete informatica di un'impresa e le politiche per lavorare al suo interno, la cui attuazione garantisce la protezione delle risorse di rete dall'accesso non autorizzato. Nell'ambito delle azioni consigliate per organizzare e garantire la sicurezza della rete, oltre a quelle di base, puoi considerare le seguenti funzionalità:

  • Innanzitutto l’azienda deve dotarsi di una normativa unificata sulla sicurezza delle informazioni con apposite istruzioni;
  • Agli utenti dovrebbe essere negato il più possibile l'accesso a siti indesiderati, compresi i servizi di file hosting;
  • Dalla rete esterna devono essere aperte solo le porte necessarie per il corretto funzionamento degli utenti;
  • Deve esistere un sistema per il monitoraggio completo delle azioni degli utenti e la tempestiva notifica delle violazioni dello stato normale di tutte le risorse disponibili al pubblico, il cui funzionamento è importante per la Società;
  • Disponibilità di un sistema antivirus centralizzato e politiche di pulizia e rimozione malware;
  • Disponibilità di un sistema centralizzato per la gestione e l'aggiornamento del software antivirus, nonché di policy per gli aggiornamenti periodici del sistema operativo;
  • La capacità di eseguire supporti flash rimovibili dovrebbe essere limitata il più possibile;
  • La password deve essere lunga almeno 8 caratteri, contenere numeri e lettere maiuscole e minuscole;
  • È necessario proteggere e crittografare le cartelle di scambio delle informazioni chiave, in particolare i file di scambio 1c e il sistema cliente-banca;
  • Le linee elettriche e di comunicazione a lunga distanza incluse negli impianti di elaborazione delle informazioni dovrebbero essere sotterranee, ove possibile, o essere soggette ad un'adeguata protezione alternativa;
  • I cavi di rete devono essere protetti da intercettazioni o danneggiamenti non autorizzati, ad esempio utilizzando una canalina o evitando percorsi in aree accessibili al pubblico.

Riassumendo tutto quanto sopra, vorrei sottolineare che le principali regole per la protezione delle informazioni limitano i diritti e le capacità degli utenti, nonché il controllo su di essi quando utilizzano i sistemi informativi. Minori sono i diritti di cui dispone un utente quando lavora con un sistema informativo, minore è il rischio che le informazioni vengano perse o danneggiate a causa di dolo o negligenza.


Una soluzione completa per la protezione dei dati aziendali, inclusi i database 1C, è la soluzione "Server in Israel", che contiene strumenti aggiornati per garantire un elevato livello di riservatezza delle informazioni.

Integrazione del sistema. Consulenza

GESTIONE DELLA BASE INFORMATIVA (SI)

Sono stato costretto a scrivere questo articolo da 3 circostanze: comunicazione con contabili familiari, un articolo del capo contabile, una raccolta di aneddoti.

Un mio amico lavora come capo contabile e parla correntemente 1C. Ma recentemente si è trasferita in una nuova organizzazione dove non ci sono specialisti in tecnologia dell'informazione (IT) e ha iniziato a farmi domande del tipo "Voglio lavorare su un programma a casa, come posso trasferirlo sul mio computer di casa?"

Comunicando con i contabili professionisti, mi sono reso conto che non hanno domande a livello professionale. Sorgono domande nell'area della gestione della base di informazioni.

In secondo luogo, ricordo l'articolo recentemente pubblicato "Perché un contabile ha bisogno di Infostart?" . Autore Alla (bux 2).

La terza circostanza è una raccolta di battute tutt'altro che nuove "Istruzioni per i contabili sulla comunicazione con un programmatore 1C". In effetti, queste storie possono essere definite aneddoti con una grande estensione: sono storie vere di ogni specialista IT associato alla contabilità.

Se analizzi attentamente questi aneddoti, arrivi involontariamente alla conclusione che il conflitto si verifica nell'area di confine della responsabilità, che non è assegnata né all'utente dell'applicazione né allo specialista IT.

Attualmente sul sito Infostart sono registrati più di 80.000 utenti. È improbabile che si tratti di tutti programmatori 1C, molto probabilmente si tratta di utenti "avanzati" che hanno avuto problemi con l'utilizzo dei sistemi 1C;

Mi sembra che tutti gli utenti del sito possano essere suddivisi in tre categorie principali:

  • Programmatori 1C che sono narcisisticamente coinvolti nelle competizioni di classificazione
  • Utenti "avanzati" che cercano strumenti più avanzati per lavorare con 1C
  • Principianti che hanno riscontrato problemi con l'utilizzo di 1C e cercano risposte alla domanda "Cosa fare?"

Questo articolo è destinato alle ultime due categorie di utenti. Qui vorrei discutere della gestione delle basi informazioni 1C. La discussione è controversa e si basa esclusivamente sull'esperienza personale.

Se analizzi gli articoli più “votati”, puoi vedere che articoli abbastanza semplici su problemi generali gestione della sicurezza delle informazioni. Queste domande sono comprensibili per gli specialisti IT, ma per gli utenti delle applicazioni 1C sono quasi una rivelazione.

Ciò è particolarmente vero per le piccole aziende che non possono permettersi di assumere un programmatore 1C o anche solo uno specialista IT. In questo caso tutti i problemi ricadono sugli utenti.

Molto spesso, un'impresa di questo tipo utilizza le configurazioni "contabilità" e "stipendio". Ciò è dovuto al fatto che 1C riflette rapidamente i cambiamenti legislativi nelle sue configurazioni. Per le imprese questo è importante dal punto di vista della rendicontazione fiscale.

Tipica piccola impresa. Utenti 1C: direttore; contabile, anche il capo; segretario, che è anche il capo dell'OK; diversi manager (per qualche motivo questo è ciò che vengono chiamati gli specialisti delle vendite).

Ogni utente “gestisce” la propria parte di sicurezza informatica, ma nessuno è responsabile dell'intero database nel suo insieme. E quando sorgono problemi, non c'è nessuno a cui chiedere. Come Raikin, “Ho cucito personalmente i bottoni. Hai domande sui pulsanti? No, sono cuciti a morte, non puoi strapparli!” Ma in generale nessuno è responsabile della causa.

Per il normale funzionamento del sistema, qualcuno deve assumere le funzioni di controllo generale della sicurezza delle informazioni. Tali funzioni, ad esempio, includono la rimozione dei duplicati dalle directory. Da un lato si tratta di un'area applicativa, dall'altro deve essere eseguito da uno specialista IT. Queste funzioni si trovano nell'area “borderline”; sia gli specialisti IT (se presenti) che gli utenti 1C si rifiutano di svolgerle.

Questo problema è rilevante non solo per le piccole imprese. Recentemente stavo aggiornando le descrizioni delle mansioni e sono riuscito a distribuire funzioni simili tra i dipendenti con grande difficoltà. E ora l'approccio alle descrizioni dei lavori è molto serio, perché... costituiscono la base per varie sanzioni amministrative, compreso il licenziamento.

L'amministratore di sistema ha rifiutato con rabbia l'offerta, il programmatore 1C ha dichiarato con orgoglio che stava "codificando" e non spazzando via la spazzatura degli utenti. In breve, in un'impresa normale non esiste uno specialista responsabile dell'integrità delle informazioni nella sicurezza delle informazioni. Questa posizione è difficile da definire in modo condizionale, può essere chiamata qualcosa come "Responsabile della sicurezza delle informazioni".

Queste funzioni sono diverse da quelle dell'amministratore. La Società 1C fornisce la seguente definizione di compiti amministrativi:

  • Installazione e aggiornamento del sistema
  • Mantenimento di un elenco di utenti
  • Configurazione dei diritti di accesso in base al meccanismo dei ruoli
  • Monitoraggio delle azioni dell'utente e degli eventi di sistema
  • Backup
  • Testare e correggere la base di informazioni
  • Impostazione delle impostazioni regionali
  • Aggiornamento delle configurazioni
  • Caricamento e scaricamento di un database di informazioni in un file
  • Mantenere e impostare un registro

A questo infatti è dedicato il capitolo “Amministrazione” nella documentazione 1C “Configurazione e amministrazione”.

In realtà, queste attività amministrative non sono sufficienti per garantire il corretto funzionamento del database. Per il “corretto” funzionamento del database sono necessarie azioni più ampie e diversificate. La “gestione del database” è molto più ampia del concetto di “amministrazione”.

Nelle grandi imprese, queste funzioni di gestione della sicurezza delle informazioni dovrebbero essere assegnate a uno specialista a tempo pieno. Nelle piccole imprese, queste funzioni molto probabilmente ricadranno sul capo contabile, perché ha un controllo più completo delle informazioni, deve controllare l'inserimento e la sequenza dei documenti, caricare e scaricare dati, ecc.

In generale, le funzioni di gestione della sicurezza delle informazioni si riducono a garantire che la sicurezza delle informazioni sia “corretta”. I problemi con la “correttezza” del database sono sempre esistiti.

A mio avviso, il database di informazioni 1C “corretto” in qualsiasi configurazione deve soddisfare almeno i seguenti principi:

  • Non dovrebbe contenere oggetti contrassegnati per l'eliminazione. Tutti gli oggetti contrassegnati devono essere eliminati
  • Nel database non devono essere presenti documenti non pubblicati
  • Quando si ripubblicano i documenti per qualsiasi periodo, i risultati non dovrebbero cambiare

La gestione del database dovrebbe portare a questi risultati. Per un lavoro ininterrotto con il database, è necessario eseguire le seguenti azioni nelle configurazioni standard 1C (usando l'esempio di ZUP):

    1. Backup
      • Le copie di tutti i database devono essere effettuate quotidianamente alla fine di ogni giornata. In questo caso è possibile “sovrascrivere” le copie del giorno precedente;
      • Prima dell'aggiornamento sono necessarie copie del database. Si consiglia di salvare queste copie con nomi univoci.
      • È obbligatorio salvare copie del database dopo la fine del mese, anche con nomi univoci.

Il sito presenta numerosi articoli e trattazioni dedicate al backup.

    1. Controlla settimanalmente i libri di consultazione per i duplicati. Se si verificano duplicati, eliminali. Come rimuovere i duplicati
    2. Elimina gli elementi contrassegnati per l'eliminazione su base settimanale. Se gli oggetti non vengono eliminati significa che esistono riferimenti a questi oggetti. È necessario scoprire chi li ha contrassegnati per la cancellazione e perché. Se necessario, questi oggetti dovranno essere ripristinati. La rimozione può essere effettuata utilizzando trattamenti universali//sito/blog/1313/ Prima della segnalazione normativa - Controllo tecnologico
    3. Analisi rapida del database//sito/pubblico/21332/
    4. Alla fine del mese successivo alla chiusura del mese, nega l'accesso ai dati

Forse puoi consigliarmi qualcosa dalla tua esperienza?

Per le imprese, le istituzioni e le organizzazioni, indipendentemente dalla loro forma di proprietà, la questione fondamentale è garantire la protezione delle risorse informative, comprese le informazioni contabili e il reporting. Il programma "1C: Contabilità delle istituzioni pubbliche 8" edizione 2 soddisfa i moderni requisiti di sicurezza delle informazioni. Gli esperti 1C parlano delle capacità del programma di protezione delle informazioni nell'articolo.

L’importanza di garantire la protezione delle risorse informative

Per garantire la sicurezza delle informazioni di un'organizzazione, istituzione, impresa, devono essere create le condizioni in base alle quali l'uso, la perdita o la distorsione di qualsiasi informazione sullo stato dell'organizzazione, comprese le informazioni contabili e finanziarie, da parte dei dipendenti dell'organizzazione o di persone esterne ( utenti) con un alto grado di probabilità non porterà nel prossimo futuro all'emergere di minacce per interrompere le attività dell'organizzazione.

L'importanza dei problemi di sicurezza delle informazioni a livello statale è confermata dall'adozione della Dottrina sulla sicurezza delle informazioni nella Federazione Russa (approvata dal Presidente della Federazione Russa il 9 settembre 2000 n. Pr-1895). Una delle componenti degli interessi nazionali della Federazione Russa nella sfera dell'informazione è la protezione delle risorse informative dall'accesso non autorizzato, garantendo la sicurezza dei sistemi informativi e di telecomunicazione, sia già implementati che quelli in fase di creazione in Russia.

Garantire la sicurezza delle informazioni della Federazione Russa nella sfera economica svolge un ruolo chiave nel garantire la sicurezza nazionale della Federazione Russa. I soggetti più suscettibili all'impatto delle minacce alla sicurezza informatica della Federazione Russa nella sfera economica sono:

  • sistema statistico statale;
  • sistema creditizio e finanziario;
  • sistemi automatizzati informativi e contabili delle divisioni delle autorità esecutive federali che assicurano le attività della società e dello Stato nella sfera economica;
  • sistemi contabili per imprese, istituzioni e organizzazioni, indipendentemente dalla loro forma di proprietà;
  • sistemi per la raccolta, l'elaborazione, l'archiviazione e la trasmissione di informazioni finanziarie, borsistiche, fiscali, doganali e informazioni sull'attività economica estera dello Stato, nonché di imprese, istituzioni e organizzazioni, indipendentemente dalla loro forma di proprietà.

Minacce alla sicurezza delle informazioni di un'impresa, istituzione, organizzazione correlata a contabilità e la segnalazione sono minacce:

  • integrità delle informazioni contabili e del reporting;
  • violazione della riservatezza delle informazioni contabili e del reporting;
  • violazioni dell'accessibilità (blocco) delle informazioni contabili e del reporting;
  • affidabilità delle informazioni contabili e del reporting;
  • il contenuto delle informazioni contabili e delle relazioni causate dalle azioni del personale e di altre persone;
  • causato dall’uso di informazioni contabili e reporting di scarsa qualità.

Sicurezza delle informazioni in "1C: Contabilità delle istituzioni pubbliche 8"

Il programma "1C: Contabilità delle istituzioni pubbliche 8" edizione 2 (di seguito denominato Programma) soddisfa i moderni requisiti di sicurezza delle informazioni. Per aumentare il livello di protezione contro l'accesso non autorizzato alle informazioni archiviate nel Programma, vengono fornite le seguenti funzionalità:

  • autenticazione;

Diamo uno sguardo più da vicino a queste funzionalità del Programma.

Autenticazione

Il meccanismo di autenticazione è uno degli strumenti di amministrazione. Consente di determinare quale degli utenti elencati nell'elenco degli utenti del sistema si connette al Programma in questo momento e impedire l'accesso non autorizzato al Programma.

In "1C: Public Institution Accounting 8" edizione 2, sono supportati tre tipi di autenticazione, che possono essere utilizzati a seconda dei compiti specifici che l'amministratore della base di informazioni deve affrontare:

  • autenticazione 1C:Enterprise- autenticazione tramite utente e password creati nel Programma;
  • autenticazione del sistema operativo- nel Programma viene selezionato per l'utente uno degli utenti del sistema operativo. Il Programma analizza per conto di quale utente del sistema operativo viene effettuata la connessione al Programma e, in base a ciò, determina l'utente corrispondente del Programma;
  • Autenticazione OpenID- L'autenticazione dell'utente viene eseguita da un provider OpenID esterno che memorizza un elenco di utenti.

Se non viene specificato alcun tipo di autenticazione per un utente, l'accesso di tale utente al Programma verrà negato.

Se è necessario che l'utente entri nel Programma con una password che verrà controllata, il flag dovrà essere abilitato Autenticazione 1C: Aziendale(vedi Fig. 1). È abilitato per impostazione predefinita insieme al flag L'accesso al programma è consentito.

Lo stato di autenticazione 1C:Enterprise viene visualizzato sotto il flag.


Riso. 1

Quando viene creato un nuovo utente, il Programma gli assegna automaticamente una password vuota. Per modificarlo utilizzare il comando Impostare la password nella tessera utente (vedi Fig. 1).

A forma di Impostazione di una password deve essere inserito nuova password per entrare nel Programma riscriverlo nel campo Conferma.

Una buona password dovrebbe essere lunga almeno otto caratteri, includere lettere latine maiuscole e minuscole, numeri, simboli (trattino basso, parentesi, ecc.) ed essere vaga. Non è auspicabile che la password coincida con il nome utente, sia composta interamente da numeri o contenga parole comprensibili, alternando gruppi di personaggi. Esempi di password valide: "nj7(jhjibq*Gfhjkm, F5"njnGhkmNj;t(HI. Esempi di password non valide: Ivanov, qwerty, 12345678, 123123123. Per ulteriori dettagli, consultare la documentazione "1C:Enterprise 8.3. Administrator's Guide."

Il Programma offre l'opportunità controllo automatico della complessità della password.

Per impostazione predefinita, per motivi di sicurezza, la password non viene visualizzata quando viene inserita. Per vedere quali caratteri vengono inseriti, dovresti abilitare il flag Mostra nuova password.

Per generare automaticamente una password è possibile utilizzare il pulsante Crea una password. La password verrà generata dal Programma.

Per salvare la password, fare clic sul pulsante Impostare la password.

Successivamente, lo stato di autenticazione 1C:Enterprise cambia in Password impostata. Nella scheda utente il pulsante cambia il suo valore in Cambiare la password.

Per facilità di amministrazione e sicurezza, tutti gli utenti hanno un contrassegno , necessario affinché l'utente possa modificare la password impostata dall'amministratore con la propria. Quando questo flag è abilitato, all'utente verrà richiesto di inserire la propria password, che nessun altro conoscerà.

Se la bandiera Richiedi la modifica della password al momento dell'accesso non è abilitato e per qualche motivo la password precedentemente impostata non ti soddisfa, puoi modificarla in qualsiasi momento nella scheda utente.

Flag abilitato All'utente è vietato modificare la password vieta a un utente che non dispone di tutti i diritti di impostare e modificare autonomamente una password.

Requisiti Richiedi la modifica della password al momento dell'accesso E Validità sono visibili nella scheda utente e nel report informazioni utente (Informazioni sugli utenti esterni).

Impostazioni di accesso al programma

A forma di Impostazioni di accesso(capitolo Amministrazione, comando della barra di navigazione Impostazioni utente e diritti) separatamente per gli utenti interni ed esterni al Programma è possibile configurare i seguenti parametri:

  • impostazione e controllo della complessità della password;
  • obbligo di modificare la password in base a una pianificazione o manualmente. Modifica password - periodicamente o su richiesta;
  • impostazione e controllo della ripetizione della password;
  • limitare il periodo di validità dei conti.

La Figura 2 mostra la configurazione per gli utenti interni.


Riso. 2

Un'impostazione simile è fornita per gli utenti esterni.

Controllo della complessità della password

Quando la bandiera è impostata La password deve soddisfare i requisiti di complessità il programma verifica che la nuova password:

  • aveva almeno 7 caratteri,
  • conteneva 3 dei 4 tipi di caratteri: lettere maiuscole, lettere minuscole, numeri, caratteri speciali,
  • non corrisponde al nome (per il login).

La lunghezza minima della password può essere modificata selezionando la casella accanto al campo con lo stesso nome e specificando la lunghezza della password richiesta (Fig. 3).


Riso. 3

Cambiare la password

Sono disponibili due impostazioni per la modifica della password: periodica o su richiesta dell'amministratore.

Per modificare periodicamente la password, è necessario limitare la data di scadenza della password utilizzando le impostazioni Periodo minimo di validità della password E Validità massima della password. Una volta scaduto il periodo specificato, il Programma richiederà all'utente di modificare la password.

Il periodo massimo di validità della password è il periodo successivo al primo accesso con una nuova password, dopo il quale l'utente dovrà modificare la password, per impostazione predefinita 30 giorni.

Il periodo minimo di validità della password è il periodo successivo al primo accesso con una nuova password durante il quale l'utente non può modificare la password, per impostazione predefinita 1 giorno.

Per modificare la password su richiesta, l'amministratore deve impostare il flag Richiedi una password al momento del login nella tessera utente. Quando accedi per la prima volta al Programma, ti verrà richiesto di modificare la password impostata dall'amministratore con la tua.

Controllo della ripetibilità

Per impedire agli utenti di creare password duplicate, è necessario abilitare l'impostazione Evita la ripetizione della password tra quelle recenti e impostare il numero di password recenti con cui verrà confrontata la nuova password.

Restrizioni per l'accesso degli utenti

Per proteggersi dall'accesso non autorizzato al Programma, è possibile impostare una restrizione per gli utenti che non lavorano nel Programma per un certo periodo di tempo, ad esempio 45 giorni.

Una volta scaduto il periodo specificato, il programma non consentirà all'utente di accedere al Programma. Le sessioni utente aperte termineranno automaticamente non più di 25 minuti dopo che è stato negato l'accesso al Programma.

Nella scheda utente, disponibile nelle impostazioni personali del Programma, tramite il collegamento ipertestuale Imposta restrizioniÈ possibile specificare ulteriori restrizioni all'accesso al Programma (Fig. 4).


Riso. 4

Utilizzando l'interruttore è possibile impostare una restrizione all'accesso al Programma:

  • Secondo impostazioni generali Entrata- installato per impostazione predefinita;
  • Nessun limite di tempo;
  • Ingresso consentito fino al(devi impostare una scadenza: inserisci la data manualmente o selezionala dal calendario utilizzando il pulsante). Per proteggersi dall'accesso non autorizzato al Programma, tutti gli utenti hanno un periodo di validità che consente all'utente di essere automaticamente disconnesso al raggiungimento di una data specifica;
  • Nega l'ingresso se non funziona più(è necessario specificare il numero di giorni) - se l'utente non accede al Programma per un numero di giorni superiore a quello specificato, l'accesso al Programma sarà impossibile. In questo caso, l'utente dovrà contattare l'amministratore per riprendere a lavorare nel Programma.

Rapporto sui dettagli dell'utente

Rapporto informazioni utente(Fig. 5) è destinato alla visualizzazione delle informazioni sugli utenti del Programma, comprese le impostazioni di accesso (proprietà utente dell'infobase). La necessità di un report sorge se è necessario eseguire un'analisi di gruppo delle impostazioni di accesso (nome di accesso, tipi di autenticazione, ecc.).

Il report si apre dall'elenco Utenti (Utenti esterni) a comando Tutte le azioni - Informazioni utente (Tutte le azioni-Informazioni sugli utenti esterni). A seconda del tipo di elenco, il Programma seleziona automaticamente l'opzione di report desiderata.

Le informazioni sugli utenti interni ed esterni in un report possono essere aperte tramite la sezione pannello azioni Amministrazione a comando informazioni utente.

La necessità di un report sorge se è necessario eseguire un'analisi di gruppo delle impostazioni di accesso (nome di accesso, tipi di autenticazione, ecc.).


Riso. 5

Utilizzando un pulsante Impostazioni...È possibile aprire l'elenco dei campi e, se necessario, aggiungere i campi richiesti al report. Ad esempio, puoi aggiungere campi al report Richiedi la modifica della password al momento dell'accesso E Validità.

Garantire la protezione dei dati personali

In conclusione, si segnala che il controllo degli accessi al Programma è solo uno degli elementi di protezione dei dati previsti dal Programma.

Il decreto del governo della Federazione Russa del 1 novembre 2012 n. 1119 ha approvato i Requisiti per la protezione dei dati personali durante il loro trattamento nei sistemi di informazione dei dati personali, che definiscono i livelli di sicurezza dei dati personali durante il loro trattamento nelle informazioni dei dati personali sistemi a seconda delle minacce alla sicurezza di questi dati. In conformità con questi requisiti, con ordinanza dell'FSTEC della Russia del 18 febbraio 2013. N. 21 dettaglia la composizione e il contenuto delle misure organizzative e tecniche per garantire la sicurezza dei dati personali durante il loro trattamento nei sistemi di informazione dei dati personali.

Le norme dell'attuale legislazione sui dati personali impongono requisiti aggiuntivi ai prodotti software, in particolare al software che costituisce un mezzo per proteggere le informazioni.

Per garantire la protezione dei dati personali, è stato progettato il pacchetto software protetto (ZPK) "1C:Enterprise, versione 8.3z", che è un software generico certificato dal FSTEC della Russia con mezzi integrati per proteggere le informazioni da persone non autorizzate accesso (NSD) alle informazioni che non contengono informazioni che costituiscono segreto di stato.

ZPK "1C:Enterprise 8.3z" consente di bloccare:

  • avvio di oggetti COM, elaborazione e report esterni, applicazioni installate sul server 1C:Enterprise;
  • utilizzo di componenti esterni 1C:Enterprise;
  • accesso alle risorse Internet.

L'uso combinato dello standard "1C: Public Institution Accounting" edizione 2 e ZPK "1C: Enterprise 8.3z" consente di creare un sistema informativo di dati personali con tutti i livelli di sicurezza e non è richiesta un'ulteriore certificazione di questa soluzione applicativa.

L'uso di ZPK "1C:Enterprise 8.3z" insieme a sistemi operativi certificati FSTEC, DBMS e altri strumenti certificati consente di soddisfare pienamente i requisiti dei documenti normativi di cui sopra.

Poiché “1C: contabilità delle istituzioni pubbliche” garantisce lo scambio di dati con le autorità federali del Tesoro, le autorità fiscali, i sistemi informativi sui pagamenti statali e comunali (GIS GMP), la contabilità delle proprietà federali (ASUFI), la registrazione e la maturazione dei pagamenti (IS RNIP), ecc. via Internet, per soddisfare i requisiti di sicurezza, la struttura deve essere dotata di strumenti firewall certificati.

Naturalmente, è necessario controllare quotidianamente la presenza di software dannoso sui computer su cui è installato il Programma. programmi per computer utilizzando prodotti di protezione antivirus certificati nel sistema di certificazione FSTEC della Russia.

2009

Sezione "Modernizzazione dei meccanismi gestionali, finanziari ed economici a diversi livelli del sistema educativo utilizzando le tecnologie 1C"

"25. Metodi e mezzi per garantire la sicurezza delle informazioni nel sistema 1C:Enterprise 8.1" (P.B. Khorev, Università sociale statale russa (RGSU), Mosca)

Presentazione

Il costante sviluppo delle tecnologie e dei sistemi informatici porta, purtroppo, all'esacerbazione di vecchi problemi e all'emergere di nuovi. Uno di questi problemi è il problema della protezione delle informazioni: fornitura affidabile della sua sicurezza e stato d'uso stabilito. Pertanto, garantire la sicurezza delle informazioni e dei processi informativi è una funzione obbligatoria dei moderni sistemi informativi.

I principali metodi di protezione contro l'accesso non autorizzato agli oggetti del sistema informativo sono

  • identificazione ed autenticazione degli utenti dei sistemi informativi e dei processi da questi attivati;
  • autorizzazione dei soggetti (determinazione dei diritti di accesso del soggetto a un oggetto con informazioni riservate);
  • verifica di eventi legati alla sicurezza del sistema informativo.

Questo rapporto discuterà i metodi e i mezzi per garantire la sicurezza delle informazioni disponibili nel sistema 1C:Enterprise 8.1.

L'amministratore del database nel sistema 1C:Enterprise 8.1 può creare e quindi modificare un elenco di utenti autorizzati a lavorare con il sistema. Quando si aggiunge un nuovo utente (inizialmente l'elenco degli utenti è vuoto), vengono specificate le seguenti proprietà dell'account in creazione (nella scheda "Base"):

  • il nome con il quale l'utente verrà registrato nel sistema;
  • nome completo (si consiglia di utilizzare questa proprietà per specificare cognome, nome e patronimico, posizione e nome del dipartimento di un dipendente dell'organizzazione in cui viene utilizzato il sistema);
  • Flag di autenticazione “1C:Enterprise” (quando questa “casella di controllo” è selezionata, quando un utente tenta di accedere al sistema “1C:Enterprise”, la sua identificazione e autenticazione verranno effettuate utilizzando il sistema stesso);
  • password dell'utente, la cui immissione sarà richiesta per identificarlo utilizzando il sistema 1C:Enterprise:
  • conferma della password utente (necessaria per eliminare la possibilità di un errore durante l'immissione della password, poiché i simboli della password vengono sostituiti dai simboli * quando vengono immessi);
  • un segno che all'utente è vietato modificare la propria password quando autenticato utilizzando 1C:Enterprise;
  • un segno di visualizzazione del nome utente nell'elenco quando si tenta di accedere e autenticarsi utilizzando 1C:Enterprise;
  • Flag di autenticazione di Windows (quando questo "Flag" è abilitato, quando un utente tenta di accedere al sistema 1C:Enterprise, verrà determinato il nome con cui è in esecuzione la sessione con il sistema operativo Microsoft Windows e il nome a cui il nome corrisponde verrà cercato nell'elenco degli utenti dell'utente Windows "attuale" del sistema 1C:Enterprise);
  • nome utente del sistema operativo Windows a cui è associato questo utente del sistema 1C:Enterprise quando si utilizza l'autenticazione utilizzando il sistema operativo Windows (il nome può essere specificato nel formato \\nome dominio\nome account utente o selezionato utilizzando il pulsante corrispondente dall'elenco degli account locali e globali conosciuti su questo computer).

L'amministratore del database può, utilizzando le impostazioni dei parametri di infobase, impostare la lunghezza minima delle password degli utenti di sistema (se la casella di controllo "Verifica della complessità delle password degli utenti" è selezionata, la lunghezza minima delle password non può essere inferiore a 7 caratteri) e richiedere che le password degli utenti soddisfano le condizioni di complessità, soddisfacendo i requisiti per la complessità delle password degli utenti di Windows (inoltre, la password non deve essere una sequenza di caratteri).

Il modo più sicuro per autenticare gli utenti quando accedono al sistema 1C:Enterprise è combinare l'autenticazione utilizzando gli strumenti 1C:Enterprise e Windows. In questo caso, si consiglia di deselezionare la casella di controllo "Mostra nell'elenco di selezione" nel gruppo delle proprietà di autenticazione "1C:Enterprise" e nelle impostazioni di sicurezza di Windows, abilitare i requisiti per la lunghezza minima e la complessità delle password, le restrizioni su il periodo di validità massimo, la non ripetizione delle password e il periodo di validità minimo e impostare un valore soglia per il contatore degli errori di accesso a Windows.

Per forzare la visualizzazione della finestra di dialogo di autenticazione dell'utente utilizzando 1C:Enterprise (se la casella di controllo di autenticazione di Windows è abilitata), è necessario utilizzare il parametro della riga di comando /WA+ all'avvio di 1C:Enterprise.

Va tenuto presente che l'elenco degli utenti del sistema 1C:Enterprise non fa parte della sua configurazione, ma viene creato separatamente per ciascuna organizzazione in cui è installato questo sistema.

Un ruolo nel sistema 1C:Enterprise è un insieme di diritti di accesso a vari oggetti del database. In genere, i ruoli vengono creati per responsabilità lavorative individuali e a ciascun utente del sistema possono essere assegnati uno o più ruoli. Se a un utente vengono assegnati più ruoli, concedergli l'accesso a un oggetto del database verrà effettuato come segue:

  1. Se almeno uno dei ruoli assegnati all'utente consente l'accesso richiesto, questo viene concesso all'utente.
  2. Se tutti i ruoli assegnati a un utente non consentono l'accesso appropriato, l'accesso richiesto non viene concesso.

Per creare e modificare i ruoli, utilizzare il configuratore di sistema 1C:Enterprise. Durante il processo di creazione della configurazione viene creato un insieme di ruoli standard che possono poi essere modificati.

Quando si crea o si modifica un ruolo, viene utilizzata una finestra con due schede: "Diritti" e "Modelli di restrizione". La scheda “Diritti” contiene una struttura gerarchica degli oggetti di configurazione per tutti i sottosistemi e un elenco dei diritti di accesso applicabili all'oggetto selezionato (per abilitare un diritto è necessario selezionare la corrispondente “casella di controllo”).

Nel sistema 1C:Enterprise esistono due tipi di diritti: di base e interattivi. I diritti di base vengono verificati ogni volta che si accede agli oggetti del sistema informativo. I diritti interattivi vengono controllati durante l'esecuzione di operazioni interattive (ad esempio, visualizzazione e modifica dei dati in un modulo).

Il sistema 1C:Enterprise consente di verificare i diritti di accesso utilizzando un linguaggio integrato. Ad esempio, quando si aggiungono nuovi comandi a un modulo, lo sviluppatore deve inoltre verificare che l'utente disponga dei diritti interattivi appropriati.

Quando si modifica un ruolo, è necessario tenere conto dell'ereditarietà (gerarchia) dei diritti: quando si cancella un diritto "genitore" ("senior"), vengono cancellati anche i suoi diritti "figlio" ("junior") e quando si installa un diritto “del figlio”, viene stabilito anche il suo diritto “genitore”. Ad esempio, quando si annulla il diritto di Visualizzazione, viene annullato anche il diritto di Modifica dell'oggetto corrispondente.

Utilizzando la casella di controllo "Imposta diritti per nuovi oggetti", puoi assicurarti che il ruolo modificato imposti automaticamente i diritti di accesso ai nuovi oggetti di configurazione (successivamente aggiunti).

È possibile impostare i seguenti diritti di accesso per l'oggetto di configurazione root:

  • funzioni amministrative (include l'apertura della configurazione, l'apertura dell'elenco degli utenti, l'impostazione del registro, l'aggiornamento della configurazione e altre azioni amministrative);
  • aggiornare la configurazione del database;
  • modalità monopolio;
  • utenti attivi (aprendo la loro lista);
  • log (aprendo questo log);
  • connessione esterna (funzionamento con il sistema tramite un'interfaccia COM);
  • automazione (lavorare con il sistema come server di automazione);
  • apertura interattiva di elaborazioni esterne;
  • apertura interattiva di report esterni;
  • stampa dell'output, salvataggio, utilizzo degli appunti quando si lavora con il sistema).

Per facilità di amministrazione, il sistema 1C:Enterprise fornisce una finestra per visualizzare e modificare tutti i ruoli creati in questa configurazione. Se per un determinato ruolo è necessario revocare o impostare tutti i diritti di accesso all'oggetto selezionato, è possibile utilizzare il checkbox nella riga “Tutti i diritti” per la colonna con il nome del ruolo in modifica. Se è necessario revocare o impostare un determinato diritto di accesso in tutti i ruoli, è possibile utilizzare la casella di controllo nella riga con il nome del diritto corrispondente per la colonna Tutti i ruoli.

Per limitare l'accesso agli oggetti del database a livello di singoli campi e record, il sistema 1C:Enterprise fornisce un meccanismo per limitare l'accesso ai dati (utilizzando i diritti per leggere, aggiungere, modificare ed eliminare questi oggetti). È possibile impostare più restrizioni di accesso per il diritto di lettura e una sola restrizione per i restanti diritti specificati.

Per ciascuna restrizione di accesso ai dati, leggendo a destra, è possibile selezionare un campo in base al valore del quale verrà verificata la condizione di restrizione di accesso o specificare "Altri campi", che garantirà che la condizione per ciascun campo venga verificata.

La condizione per limitare l'accesso ai dati può essere definita utilizzando la finestra di progettazione o manualmente creando e modificando modelli di restrizione dell'accesso denominato nella scheda "Modelli di restrizione" della finestra di modifica del ruolo.

Per facilitare il lavoro dell'utente e limitare ulteriormente i suoi diritti, il sistema 1C:Enterprise prevede un meccanismo di interfaccia. Utilizzando questi oggetti vengono creati insiemi di comandi del menu principale ed elementi della barra degli strumenti con cui l'utente può lavorare. Utilizzando il progettista del menu dell'interfaccia principale, l'amministratore crea un elenco di sottomenu e un elenco di comandi per ciascun sottomenu.

Dopo aver definito la struttura del menu principale, è possibile aggiungere all'interfaccia creata una o più barre degli strumenti. Questi pannelli possono essere posizionati in alto, in basso, a sinistra e a destra nella finestra del programma 1C:Enterprise.

Si noti che dopo aver creato ruoli e interfacce, è necessario aggiornare la configurazione del database in modo che ai nuovi utenti del sistema informativo possano essere assegnati i ruoli e le interfacce creati.

Gli eventi che devono essere registrati nel registro di sistema 1C:Enterprise possono essere specificati dall'amministratore utilizzando la sua funzione di configurazione. Qui è anche possibile selezionare il periodo di tempo dopo il quale il registro verrà salvato in un nuovo file, nonché abbreviare le voci del registro prima della scadenza del periodo specificato cancellandole ed eventualmente salvandole in un file.

Letteratura

  1. Radchenko M.G. "1C:Impresa 8.1. Guida pratica per gli sviluppatori. Esempi e tecniche tipiche. M.: 1C-Publishing LLC, San Pietroburgo: Peter, 2007.
  2. 1C:Impresa 8.1. Configurazione e amministrazione. M.: Ditta "1C", 2007.

Questo articolo dimostra ancora una volta che qualsiasi insieme di misure di sicurezza deve coprire tutte le fasi di implementazione: sviluppo, distribuzione, amministrazione del sistema e, ovviamente, misure organizzative. Nei sistemi informativi è " fattore umano"(compresi gli utenti) rappresenta la principale minaccia alla sicurezza. Questo insieme di misure deve essere ragionevole ed equilibrato: non ha senso ed è improbabile che vengano stanziati fondi sufficienti per organizzare una protezione che superi il costo dei dati stessi.

introduzione

1C:Enterprise è il sistema contabile più diffuso in Russia, ma nonostante ciò, fino alla versione 8.0 i suoi sviluppatori prestavano pochissima attenzione ai problemi di sicurezza. Fondamentalmente, ovviamente, ciò è stato dettato dalla nicchia di prezzo del prodotto e dall’attenzione rivolta alle piccole imprese dove non esistono specialisti IT qualificati e il possibile costo di implementazione e mantenimento di un sistema sicuro sarebbe proibitivo per l’azienda. Con il rilascio della versione 8.0, l'enfasi ha dovuto cambiare: il costo delle soluzioni è aumentato in modo significativo, il sistema è diventato molto più scalabile e flessibile - i requisiti sono cambiati in modo significativo. Se il sistema sia diventato sufficientemente affidabile e sicuro è una questione molto individuale. Il sistema informativo principale di un'impresa moderna deve soddisfare almeno i seguenti requisiti di sicurezza:

  • Probabilità piuttosto bassa di guasto del sistema dovuto a motivi interni.
  • Autorizzazione utente affidabile e protezione dei dati da azioni errate.
  • Un sistema efficace per l'assegnazione dei diritti utente.
  • Sistema operativo backup e ripristino in caso di guasto.

Le soluzioni basate su 1C:Enterprise 8.0 soddisfano questi requisiti? Non esiste una risposta chiara. Nonostante i cambiamenti significativi nel sistema di controllo degli accessi, rimangono molte questioni irrisolte. A seconda di come il sistema è progettato e configurato, tutti questi requisiti potrebbero non essere soddisfatti o soddisfatti in misura sufficiente per una determinata implementazione, tuttavia vale la pena prestare attenzione (e questa è una conseguenza significativa della “giovinezza” della piattaforma ) che per soddisfare pienamente le condizioni elencate è necessario applicare sforzi veramente erculei.

Questo articolo è destinato agli sviluppatori e agli implementatori di soluzioni sulla piattaforma 1C:Enterprise, nonché agli amministratori di sistema delle organizzazioni in cui viene utilizzato 1C:Enterprise e descrive alcuni aspetti dello sviluppo e della configurazione di una versione client-server del sistema dal punto dal punto di vista dell’organizzazione della sicurezza delle informazioni. Questo articolo non può essere utilizzato in sostituzione della documentazione, ma sottolinea solo alcuni punti che non sono ancora stati riflessi in esso. E, naturalmente, né questo articolo né tutta la documentazione saranno in grado di riflettere la complessità del problema della costruzione di un sistema informativo sicuro, che allo stesso tempo deve soddisfare requisiti contrastanti di sicurezza, prestazioni, comodità e funzionalità.

Classificazione e terminologia

L'argomento chiave di considerazione nell'articolo sono le minacce informatiche.

Minaccia informativa– la possibilità che si verifichi una situazione in cui i dati verranno letti, copiati, modificati o bloccati senza autorizzazione.

E, sulla base di questa definizione, l’articolo classifica le minacce informatiche come segue:

  • Distruzione non autorizzata dei dati
  • Modifica dei dati non autorizzata
  • Copia non autorizzata dei dati
  • Lettura non autorizzata dei dati
  • Indisponibilità dei dati

Tutte le minacce si dividono in intenzionali e non intenzionali. Chiameremo una minaccia informativa realizzata incidente. Le caratteristiche del sistema sono:

Vulnerabilità– caratteristiche che portano a incidenti Misure di protezione– caratteristiche che bloccano la possibilità di un incidente

Fondamentalmente vengono presi in considerazione solo i casi la cui probabilità è dovuta all'uso di piattaforma tecnologica 1C:Enterprise 8.0 nella versione client-server (di seguito, nei casi in cui ciò non contraddica il significato semplicemente di 1C o 1C 8.0). Definiamo i seguenti ruoli principali in relazione all'utilizzo del sistema:

  • Operatori– utenti che dispongono dei diritti di visualizzazione e modifica dei dati limitati da un ruolo dell'applicazione, ma non dispongono di funzioni amministrative
  • Amministratori di sistema– utenti che dispongono di diritti amministrativi nel sistema, inclusi diritti amministrativi nei sistemi operativi del server delle applicazioni e del server MS SQL, diritti amministrativi in ​​MS SQL, ecc.
  • Amministratori della sicurezza informatica– utenti ai quali sono delegate determinate funzioni amministrative nella base informativa 1C (come aggiunta di utenti, test e correzioni, backup, impostazione di una soluzione applicativa, ecc.)
  • Sviluppatori di sistemi– utenti che sviluppano una soluzione applicativa. In generale, potrebbero non avere accesso al sistema di lavoro.
  • Persone che non hanno accesso diretto al sistema– utenti a cui non sono delegati i diritti di accesso a 1C, ma che possono, in un modo o nell'altro, influenzare il funzionamento del sistema (di solito si tratta di tutti gli utenti dello stesso dominio Active Directory in cui è installato il sistema). Questa categoria viene considerata principalmente per identificare soggetti potenzialmente pericolosi presenti nell'impianto.
  • Script amministrativi automatizzati– programmi a cui sono delegate determinate funzioni, progettati per eseguire automaticamente determinate azioni (ad esempio, import-export di dati)

Qui occorre notare due punti: in primo luogo, questa classificazione è molto approssimativa e non tiene conto delle divisioni all'interno di ciascun gruppo - tale divisione verrà creata per alcuni casi specifici, e in secondo luogo, si presuppone che altre persone non possano influenzare l'operazione del sistema, che dovrà essere erogato con mezzi esterni a 1C.

Qualsiasi sistema di sicurezza deve essere progettato tenendo presente la fattibilità e il costo di proprietà. In generale, quando si sviluppa e si implementa un sistema informativo, è necessario che il prezzo della protezione del sistema corrisponda a:

  • il valore delle informazioni protette;
  • costi per la creazione di un incidente (in caso di minaccia deliberata);
  • rischi finanziari in caso di incidente

È inutile e dannoso organizzare una difesa che è molto più costosa che valutarne l’efficacia finanziaria. Esistono diversi metodi per valutare i rischi di perdita di informazioni, ma non vengono discussi nell'ambito di questo articolo. Un altro aspetto importante è il mantenimento di un equilibrio tra requisiti spesso contrastanti in termini di sicurezza delle informazioni, prestazioni del sistema, comodità e facilità di utilizzo del sistema, velocità di sviluppo e implementazione e altri requisiti per i sistemi informativi aziendali.

Caratteristiche principali del meccanismo di sicurezza delle informazioni del sistema

1C:Enterprise 8.0 è disponibile in due versioni: file e client-server. La versione del file non può essere considerata tale da garantire la sicurezza delle informazioni del sistema per i seguenti motivi:

  • Dati e configurazione vengono memorizzati in un file leggibile e scrivibile da tutti gli utenti del sistema.
  • Come verrà mostrato di seguito, l'autorizzazione del sistema può essere aggirata molto facilmente.
  • L'integrità del sistema è garantita solo dal kernel della parte client.

Nella versione client-server, per archiviare le informazioni viene utilizzato MS SQL Server che fornisce:

  • Archiviazione dei dati più affidabile.
  • Isolamento dei file dall'accesso diretto.
  • Meccanismi di transazione e blocco più avanzati.

Nonostante le differenze significative tra le versioni file e client-server del sistema, dispongono di uno schema di controllo degli accessi unificato a livello di soluzione applicativa, che fornisce le seguenti funzionalità:

  • Autorizzazione dell'utente utilizzando la password specificata in 1C.
  • Autorizzazione utente basata sull'utente Windows corrente.
  • Assegnazione di ruoli agli utenti del sistema.
  • Limitazione delle funzioni amministrative per ruolo.
  • Assegnazione delle interfacce disponibili in base ai ruoli.
  • Limitazione dell'accesso agli oggetti di metadati in base al ruolo.
  • Limitazione dell'accesso ai dettagli dell'oggetto in base al ruolo.
  • Limitazione dell'accesso agli oggetti dati in base a ruoli e parametri di sessione.
  • Limitazione dell'accesso interattivo ai dati e ai moduli eseguibili.
  • Alcune restrizioni sull'esecuzione del codice.

In generale, lo schema di accesso ai dati utilizzato è abbastanza tipico per i sistemi informativi di questo livello. Tuttavia, in relazione a questa implementazione di un'architettura client-server a tre livelli, ci sono diversi aspetti fondamentali che portano ad un numero relativamente elevato di vulnerabilità:

  1. Un gran numero di fasi di elaborazione dei dati e ad ogni fase possono essere applicate regole diverse per l'accesso agli oggetti.

    Uno schema alquanto semplificato delle fasi del trattamento dei dati rilevanti dal punto di vista della sicurezza è mostrato nella Fig. 1. La regola generale per 1C è ridurre le restrizioni man mano che si scende in questo schema, pertanto, l'utilizzo di una vulnerabilità a uno dei livelli superiori può interrompere il funzionamento del sistema a tutti i livelli.

  2. Procedure non sufficientemente consolidate per il monitoraggio dei dati trasmessi quando si passa da un livello all'altro.

    Sfortunatamente, non tutti i meccanismi interni del sistema sono perfettamente debuggati, soprattutto per i meccanismi non interattivi, il cui debugging è sempre più dispendioso in termini di lavoro da un lato, ma dall'altro più responsabile. Questa "malattia" non è un problema esclusivo di 1C; si riscontra in molti prodotti server della maggior parte dei fornitori. Solo in l'anno scorso l’attenzione a questi problemi è aumentata in modo significativo.

  3. Qualifiche medie non sufficientemente elevate di sviluppatori e amministratori di sistema, ereditate dalla versione precedente.

    I prodotti della linea 1C:Enterprise erano inizialmente focalizzati sulla facilità di sviluppo e supporto e sul lavoro in piccole organizzazioni, quindi non sorprende che storicamente si sia sviluppato che una parte significativa degli "sviluppatori" di soluzioni applicative e degli "amministratori" di i sistemi non dispongono di conoscenze e competenze sufficienti per lavorare con un prodotto molto più complesso, ovvero la versione 8.0. Il problema è aggravato dalla pratica adottata dalle società affiliate di addestrarsi “al combattimento” a spese dei clienti, senza avvicinarsi sistematicamente questa edizione. È necessario rendere omaggio alla società 1C che negli ultimi anni questa situazione è stata gradualmente corretta: le società in franchising serie hanno iniziato ad adottare un approccio più responsabile al problema della selezione e formazione del personale, al livello di supporto informatico da la società 1C è aumentata in modo significativo, i programmi di certificazione sono apparsi mirati alto livello servizio; ma la situazione non può essere corretta immediatamente, quindi questo fattore dovrebbe essere preso in considerazione quando si analizza la sicurezza del sistema.

  4. La piattaforma è relativamente giovane.

    Tra prodotti con focus e finalità di utilizzo simili, questa è una delle soluzioni più giovani. La funzionalità della piattaforma è stata più o meno stabilita meno di un anno fa. Allo stesso tempo, ogni versione della piattaforma, a partire dalla 8.0.10 (fu in questa versione che furono implementate quasi tutte le attuali funzionalità del sistema) divenne significativamente più stabile delle precedenti. La funzionalità delle soluzioni applicative standard continua a crescere a passi da gigante, sebbene venga utilizzata solo la metà delle capacità della piattaforma. Naturalmente, in tali condizioni possiamo parlare di stabilità in modo piuttosto condizionale, ma in generale bisogna riconoscere che per molti aspetti le soluzioni sulla piattaforma 1C 8.0 sono significativamente più avanti in termini di funzionalità e prestazioni (e spesso in stabilità) di soluzioni simili sulla piattaforma 1C piattaforma 7.7.

Pertanto, il sistema (e, possibilmente, una soluzione applicativa standard) viene distribuito nell'azienda e installato sui computer. Prima di tutto, è necessario creare un ambiente in cui abbia senso impostare la sicurezza 1C, e per questo deve essere configurata in modo tale da soddisfare il presupposto che la sicurezza del sistema sia influenzata in modo significativo dalle impostazioni del sistema.

Seguire le regole generali per impostare la sicurezza.

Non si può parlare di sicurezza delle informazioni di un sistema se non vengono seguiti i principi di base della creazione di sistemi sicuri. Assicurati che siano soddisfatte almeno le seguenti condizioni:

  • L'accesso ai server è fisicamente limitato e il loro funzionamento ininterrotto è assicurato:
    • le apparecchiature server soddisfano i requisiti di affidabilità, è stata adeguata la sostituzione delle apparecchiature server difettose, per le aree particolarmente critiche vengono utilizzati schemi con duplicazione dell'hardware (RAID, alimentazione da più fonti, più canali di comunicazione, ecc.);
    • i server si trovano in una stanza chiusa a chiave e tale stanza viene aperta solo per la durata del lavoro che non può essere svolto da remoto;
    • Solo una o due persone hanno il diritto di aprire la sala server; in caso di emergenza è stato sviluppato un sistema di notifica per le persone responsabili;
    • è garantita l'alimentazione ininterrotta dei server
    • siano garantite le normali condizioni climatiche di funzionamento dell'apparecchiatura;
    • nella sala server è presente l'allarme antincendio, non vi è rischio di allagamento (soprattutto per il primo e l'ultimo piano);
  • Le impostazioni della rete e dell'infrastruttura informatica dell'azienda sono completate correttamente:
    • I firewall sono installati e configurati su tutti i server;
    • tutti gli utenti e i computer sono autorizzati sulla rete, le password sono abbastanza complesse da non poter essere indovinate;
    • gli operatori di sistema hanno diritti sufficienti per lavorare normalmente con esso, ma non hanno diritti per azioni amministrative;
    • gli strumenti antivirus sono installati e abilitati su tutti i computer della rete;
    • È auspicabile che gli utenti (ad eccezione degli amministratori di rete) non dispongano di diritti amministrativi sulle workstation client;
    • l'accesso a Internet e ai supporti di memorizzazione rimovibili dovrebbe essere regolamentato e limitato;
    • è necessario configurare il controllo del sistema degli eventi di sicurezza;
  • Sono state risolte le principali problematiche organizzative:
    • gli utenti hanno qualifiche sufficienti per lavorare con 1C e hardware;
    • gli utenti vengono informati della responsabilità per la violazione delle regole di funzionamento;
    • per ciascun elemento materiale del sistema informativo sono stati nominati i responsabili finanziari;
    • tutte le unità del sistema sono sigillate e chiuse;
    • Attenzione speciale Concentrarsi sull'istruzione e sulla supervisione degli addetti alle pulizie, dei lavoratori edili e degli elettricisti. Queste persone potrebbero, per negligenza, causare danni non paragonabili al danno intenzionale causato da un utente senza scrupoli del sistema.

Attenzione! Questo elenco non è esaustivo, ma descrive solo ciò che spesso si perde quando si implementa un sistema informativo abbastanza complesso e costoso!

  • MS SQL Server, server applicativo e parte client vengono eseguiti su computer diversi, le applicazioni server vengono eseguite con i diritti di utenti Windows appositamente creati;
  • Per MS SQL Server
    • è impostata la modalità di autorizzazione mista
    • Gli utenti MS SQL inclusi nel ruolo serveradmin non partecipano al lavoro 1C,
    • per ogni IB 1C è stato creato un utente MS SQL separato che non ha accesso privilegiato al server,
    • L'utente MS SQL di un IS non ha accesso all'altro IS;
  • Gli utenti non hanno accesso diretto al server delle applicazioni e ai file del server MS SQL
  • Le postazioni operatore sono dotate di Windows 2000/XP (non Windows 95/98/Me)

Non trascurare le raccomandazioni degli sviluppatori del sistema e la lettura della documentazione. Materiali importanti sulla configurazione del sistema sono pubblicati sui dischi ITS nella sezione "Raccomandazioni metodologiche". Prestare particolare attenzione ai seguenti articoli:

  1. Funzionalità delle applicazioni che funzionano con il server 1C:Enterprise
  2. Posizionamento dati 1C:Enterprise 8.0
  3. Aggiornamento 1C:Enterprise 8.0 da parte degli utenti Microsoft Windows senza diritti di amministratore
  4. Modifica dell'elenco utenti per conto di un utente che non dispone di diritti amministrativi
  5. Configurazione delle impostazioni del firewall di Windows XP SP2 per eseguire SQL Server 2000 e SQL Server Desktop Engine (MSDE)
  6. Configurazione dei parametri COM+ Windows XP SP2 per l'esecuzione del server 1C:Enterprise 8.0
  7. Configurazione delle impostazioni del firewall di Windows XP SP2 per il server 1C:Enterprise 8.0
  8. Configurazione delle impostazioni del firewall di Windows XP SP2 per HASP License Manager
  9. Creazione di una copia di backup di un'infobase utilizzando SQL Server 2000
  10. Problemi di installazione e configurazione 1C:Enterprise 8.0 nella versione "client-server".(uno degli articoli più importanti)
  11. Funzionalità di configurazione di Windows Server 2003 durante l'installazione del server 1C:Enterprise 8.0
  12. Regolamentazione dell'accesso degli utenti alla base informativa nella versione client-server(uno degli articoli più importanti)
  13. Server 1C: server aziendale e SQL
  14. Procedura dettagliata di installazione per 1C:Enterprise 8.0 nella versione "client-server".(uno degli articoli più importanti)
  15. Utilizzando il linguaggio integrato sul server 1C:Enterprise

Ma quando si legge la documentazione, sii critico nei confronti delle informazioni ricevute, ad esempio, l'articolo "Problemi di installazione e configurazione di 1C: Enterprise 8.0 nella versione client-server" non descrive accuratamente i diritti richiesti per l'utente USER1CV8SERVER. Saranno presenti collegamenti all'elenco seguente, ad esempio [ITS1] indica l'articolo "Caratteristiche delle applicazioni che funzionano con il server 1C:Enterprise". Tutti i collegamenti agli articoli si riferiscono all'ultimo numero di ITS al momento della stesura di questo articolo (gennaio 2006)

Utilizza le funzionalità di autorizzazione per gli utenti combinate con l'autorizzazione di Windows

Tra le due possibili modalità di autorizzazione dell'utente: 1C integrata e combinata con l'autorizzazione del sistema operativo Windows, se possibile, dovresti scegliere l'autorizzazione combinata. Ciò consentirà agli utenti di non essere confusi con più password durante il lavoro, ma non ridurrà il livello di sicurezza del sistema. Tuttavia, anche per gli utenti che utilizzano solo l'autorizzazione Windows, è altamente consigliabile impostare una password durante la creazione e solo dopo disattivare l'autorizzazione 1C per dato utente. Per garantire il ripristino del sistema in caso di distruzione della struttura di Active Directory, è necessario lasciare almeno un utente che possa accedere al sistema utilizzando l'autorizzazione 1C.

Quando si creano ruoli della soluzione applicativa, non aggiungere diritti “di riserva”

Ciascun ruolo della soluzione applicativa deve riflettere l'insieme minimo di diritti richiesti per eseguire le azioni definite da questo ruolo. Tuttavia, alcuni ruoli potrebbero non essere utilizzati in modo indipendente. Ad esempio, per eseguire i processori esterni in modo interattivo, puoi creare un ruolo separato e aggiungerlo a tutti gli utenti che necessitano di utilizzare processori esterni.

Esaminare regolarmente i registri e i protocolli operativi del sistema

Se possibile, regolamentare e automatizzare la visualizzazione dei log e dei protocolli di funzionamento del sistema. Con una corretta configurazione e una revisione regolare dei log (filtrando solo in base agli eventi importanti), le azioni non autorizzate possono essere rilevate tempestivamente o addirittura prevenute durante la fase di preparazione.

Alcune funzionalità della versione client-server

Questa sezione descrive alcune delle caratteristiche operative dell'opzione client-server e il loro impatto sulla sicurezza. Per maggiore comodità di lettura si utilizzano le seguenti notazioni:

Attenzione! descrizione della vulnerabilità

Memorizzazione delle informazioni che controllano l'accesso al sistema

Memorizzazione di un elenco di utenti di sicurezza delle informazioni

Tutte le informazioni sull'elenco degli utenti di questa sicurezza informatica e sui ruoli a loro disposizione sono archiviate nella tabella Params nel database MS SQL (vedere [ITS2]). Osservando la struttura e il contenuto di questa tabella, diventa ovvio che tutte le informazioni dell'utente sono archiviate in un record con il valore del campo FileName "users.usr".

Poiché presupponiamo che gli utenti non abbiano accesso al database MS SQL, questo fatto di per sé non può essere utilizzato da un utente malintenzionato, tuttavia, se è possibile eseguire codice in MS SQL, ciò "apre la porta" per ottenere qualsiasi (! ) accesso dal 1C . Lo stesso meccanismo (con piccole modifiche) può essere utilizzato anche nella versione file del sistema, il che, tenendo conto delle caratteristiche della versione file, ne esclude completamente l'applicabilità nella creazione di sistemi sicuri.

Raccomandazione: Al momento non esiste alcun modo per proteggere completamente l'applicazione da tali modifiche, se non l'utilizzo di trigger a livello di MS SQL Server, che invece possono causare problemi durante l'aggiornamento della versione della piattaforma o la modifica dell'elenco dei utenti. Per tenere traccia di tali modifiche è possibile utilizzare il log 1C (facendo attenzione agli accessi “sospetti” in modalità configuratore senza specificare l'utente) oppure mantenere SQL Profiler costantemente in esecuzione (che avrà un impatto estremamente negativo sulle prestazioni del sistema) o configurare gli Alerts meccanismo (molto probabilmente insieme utilizzando i trigger)

Memorizzazione delle informazioni sull'elenco IS sul server

Per ciascun server delle applicazioni 1C, vengono archiviate informazioni sull'elenco dei database MS SQL ad esso collegati. Ogni infobase utilizza la propria stringa di connessione dal server delle applicazioni e dal server MS SQL per funzionare. Le informazioni sulle infobase registrate sul server delle applicazioni, insieme alle stringhe di connessione, sono archiviate nel file srvrib.lst, che si trova sul server nella directory<Общие данные приложений>/1C/1Cv8 (ad esempio, C:/Documents and Settings/All Users/Dati applicazioni/1C/1Cv8/srvrib.lst). Per ogni sistema di sicurezza delle informazioni viene memorizzata una stringa di connessione completa, inclusa la password dell'utente MS SQL quando si utilizza un modello di autorizzazione MS SQL misto. È la presenza di questo file che fa temere un accesso non autorizzato al database MS SQL e se, contrariamente alle raccomandazioni, un utente privilegiato (ad esempio "sa") viene utilizzato per accedere ad almeno un database, allora in Oltre alla minaccia per la sicurezza delle informazioni, esiste una minaccia per l'intero sistema che utilizza MS SQL.

È interessante notare che l'utilizzo dell'autorizzazione mista e dell'autorizzazione Windows su un server MS SQL porta a diversi tipi di problemi nell'accesso a un determinato file. Quindi le principali proprietà negative dell'autorizzazione di Windows saranno:

  • Gestione di tutta la sicurezza delle informazioni sul server delle applicazioni e sul server MS SQL con un unico insieme di diritti (molto probabilmente ridondante)
  • Dal processo del server delle applicazioni 1C (o in generale dall'utente USER1CV8SERVER o equivalente) senza specificare una password, è possibile connettersi facilmente a qualsiasi sicurezza informatica senza specificare una password

D'altra parte, potrebbe essere più difficile per un utente malintenzionato eseguire codice arbitrario dal contesto dell'utente USER1CV8SERVER piuttosto che ottenere il file specificato. A proposito, la presenza di un file del genere è un altro argomento a favore della distribuzione delle funzioni del server su computer diversi.

Raccomandazione: Il file srvrib.lst dovrebbe essere accessibile solo dal processo server. Assicurati di configurare il controllo per modificare questo file.

Sfortunatamente, per impostazione predefinita questo file non è quasi protetto dalla lettura, cosa che deve essere presa in considerazione durante la distribuzione del sistema. L'opzione ideale sarebbe che il server delle applicazioni impedisca la lettura e la scrittura di questo file durante l'esecuzione (incluse la lettura e la scrittura da parte delle connessioni utente in esecuzione su questo server).

Mancanza di autorizzazione durante la creazione della sicurezza delle informazioni sul server

Attenzione! L'errore di mancanza di autorizzazione è stato corretto nella versione 8.0.14 della piattaforma 1C:Enterprise. In questa versione è apparso il concetto di "1C:Enterprise Server Administrator", ma finché l'elenco degli amministratori è specificato sul server, il sistema funziona come descritto di seguito, quindi non dimenticare questa possibile funzionalità.

Probabilmente la più grande vulnerabilità di questa sezione è la capacità di aggiungere quasi illimitatamente la sicurezza delle informazioni al server delle applicazioni, in conseguenza della quale qualsiasi utente che ottiene l'accesso a una connessione al server delle applicazioni ottiene automaticamente la capacità di eseguire codice arbitrario sul server delle applicazioni. . Consideriamolo con un esempio.

Il sistema deve essere installato come segue

  • MS SQL Server 2000 (ad esempio, nome di rete SRV1)
  • Server 1C:Enterprise 8.0 (nome della rete SRV2)
  • Parte client 1C:Enterprise 8.0 (nome della rete WS)

Si presuppone che l'utente (di seguito UTENTE) che opera sul WS abbia almeno un accesso minimo ad uno dei sistemi di sicurezza informatica registrati su SRV2, ma non abbia accesso privilegiato a SRV1 e SRV2. In generale, la combinazione delle funzioni dei computer elencati non influisce sulla situazione. Il sistema è stato configurato tenendo conto delle raccomandazioni presenti nella documentazione e sui dischi ITS. La situazione è mostrata in Fig. 2.


  • configurare la sicurezza COM+ sul server delle applicazioni in modo che solo gli utenti 1C abbiano il diritto di connettersi al processo del server delle applicazioni (maggiori dettagli [ITS12]);
  • il file srvrib.lst deve essere di sola lettura per l'utente USER1CV8SERVER (per aggiungere una nuova sicurezza informatica al server, consentire temporaneamente la scrittura);
  • Per connettersi a MS SQL utilizzare esclusivamente il protocollo TCP/IP, in questo caso è possibile:
    • limitare le connessioni utilizzando un firewall;
    • configurare l'uso di una porta TCP non standard, che complicherà la connessione degli "outsider" IB 1C;
    • utilizzare la crittografia dei dati trasmessi tra il server delle applicazioni e il server SQL;
  • configurare il firewall del server in modo che l'utilizzo di server MS SQL di terze parti sia impossibile;
  • utilizzare strumenti di sicurezza intranet per escludere la possibilità che un computer non autorizzato appaia sulla rete locale (IPSec, policy di sicurezza di gruppo, firewall, ecc.);
  • Non concedere in nessun caso all'utente USER1CV8SERVER diritti amministrativi sul server delle applicazioni.

Utilizzando il codice in esecuzione sul server

Quando si utilizza la versione client-server di 1C, lo sviluppatore può distribuire l'esecuzione del codice tra il client e il server delle applicazioni. Affinché il codice (procedura o funzione) venga eseguito solo sul server, è necessario inserirlo in un modulo generale per il quale è impostata la proprietà “Server” e, nel caso in cui l'esecuzione del modulo è consentita non solo su sul server, inserire il codice nella sezione riservata “#If Server ":

#Se Server Allora
Function OnServer(Param1, Param2 = 0) Export // Questa funzione, nonostante la sua semplicità, viene eseguita sul server
Parametro1 = Parametro1 + 12;
Restituisce Param1;
EndFunction
#Finisci se

Quando si utilizza codice eseguito sul server è necessario tenere presente che:

  • il codice viene eseguito con diritti USER1CV8SERVER sul server delle applicazioni (sono disponibili oggetti COM e file del server);
  • tutte le sessioni utente vengono eseguite da un'istanza del servizio, quindi, ad esempio, un overflow dello stack sul server causerà la disconnessione di tutti gli utenti attivi;
  • il debug dei moduli server è difficile (ad esempio, non è possibile impostare un punto di interruzione nel debugger), ma deve essere fatto;
  • il trasferimento del controllo dal client al server delle applicazioni e viceversa può richiedere risorse significative con grandi volumi di parametri trasferiti;
  • è impossibile l'utilizzo di strumenti interattivi (moduli, fogli di calcolo, finestre di dialogo), report esterni ed elaborazione in codice sull'application server;
  • non è consentito l'utilizzo di variabili globali (variabili del modulo applicativo dichiarate con l'indicazione “Export”);

Per maggiori dettagli, vedere [ITS15] e altri articoli ITS.

Il server delle applicazioni deve avere requisiti di affidabilità speciali. In un sistema client-server correttamente costruito, devono essere soddisfatte le seguenti condizioni:

  • nessuna azione dell'applicazione client deve interrompere il funzionamento del server (ad eccezione dei casi amministrativi);
  • il server non può eseguire il codice del programma ricevuto dal client;
  • le risorse devono essere “equamente” distribuite tra le connessioni client, garantendo la disponibilità del server indipendentemente dal carico corrente;
  • in assenza di blocco dei dati, le connessioni dei client non dovrebbero influenzare il lavoro degli altri;
  • il server non ha un'interfaccia utente, ma devono essere sviluppati strumenti di monitoraggio e logging;

In generale, il sistema 1C è costruito in modo tale da avvicinarsi di più a questi requisiti (ad esempio, è impossibile forzare l'esecuzione dell'elaborazione esterna sul server), ma esistono ancora alcune caratteristiche spiacevoli, quindi:

Raccomandazione: Quando si sviluppa un server runtime, si consiglia di aderire al principio dell'interfaccia minima. Quelli. il numero di voci nei moduli server dall'applicazione client dovrebbe essere molto limitato e i parametri dovrebbero essere rigorosamente regolamentati. Raccomandazione: Quando si ricevono parametri di procedure e funzioni sul server, è necessario convalidare i parametri (controllando se i parametri corrispondono al tipo e all'intervallo di valori previsti). Ciò non viene fatto nelle soluzioni standard, ma è altamente auspicabile introdurre una convalida obbligatoria nei propri sviluppi. Raccomandazione: Quando si genera il testo della richiesta (e in particolare il parametro del comando Esegui) sul lato server, non utilizzare stringhe ricevute dall'applicazione client.

Una raccomandazione generale sarebbe quella di familiarizzare con i principi della costruzione sicura ragnatela-applicazioni di database e lavorare su principi simili. Le somiglianze sono infatti notevoli: in primo luogo, un application server è come un'applicazione web strato intermedio tra il database e l'interfaccia utente (la differenza principale è che il web server genera l'interfaccia utente); in secondo luogo, dal punto di vista della sicurezza, non ci si può fidare dei dati ricevuti dal cliente, perché è possibile lanciare report ed elaborazioni esterne.

Passaggio dei parametri

Passare parametri ad una funzione (procedura) eseguita sul server è una questione piuttosto delicata. Ciò è dovuto principalmente alla necessità di trasferirli tra il server delle applicazioni e i processi client. Quando il controllo passa dal lato client al lato server, tutti i parametri trasmessi vengono serializzati, trasferiti al server, dove vengono “spacchettati” e utilizzati. Quando si passa dal lato server al lato client, il processo è invertito. Va notato qui che questo schema gestisce correttamente il passaggio dei parametri per riferimento e per valore. Quando si passano i parametri, si applicano le seguenti restrizioni:

  • Solo valori non mutabili (cioè i cui valori non possono essere modificati) possono essere trasferiti tra il client e il server (in entrambe le direzioni): tipi primitivi, riferimenti, raccolte universali, valori di enumerazione di sistema, archiviazione di valori. Se provi a passare qualcos'altro, l'applicazione client si blocca (anche se il server tenta di passare un parametro errato).
  • Non è consigliabile trasferire grandi quantità di dati durante il passaggio dei parametri (ad esempio, stringhe di oltre 1 milione di caratteri), poiché ciò potrebbe influire negativamente sulle prestazioni del server.
  • Non è possibile passare parametri contenenti un riferimento ciclico, sia dal server al client e viceversa. Se provi a passare un parametro di questo tipo, l'applicazione client si blocca (anche se il server tenta di passare il parametro errato).
  • Non è consigliabile trasferire raccolte di dati molto complesse. Quando si tenta di passare un parametro con un livello di annidamento molto elevato, il server si blocca (! ).

Attenzione! La caratteristica più fastidiosa al momento è probabilmente l'errore nel passaggio di raccolte complesse di valori. Quindi, ad esempio, il codice: Livello di nidificazione = 1250;
M = Nuova matrice;
Parametro superato = M;
Per conto = 1 per livello di ciclo di nidificazione
MVInt = Nuovo array;
M.Add(MVInt);
M = MVint;
FineCiclo;
FunzioneServer(Parametro Passato);

Porta all'arresto di emergenza del server con la disconnessione di tutti gli utenti e ciò avviene prima che il controllo venga trasferito al codice nel linguaggio integrato.

Utilizzo di funzioni non sicure sul lato server.

Non tutti gli strumenti linguistici integrati possono essere utilizzati nel codice eseguito sul server delle applicazioni, ma anche tra gli strumenti disponibili ci sono molti costrutti “problematici” che possono essere grossolanamente classificati come segue:

  • in grado di fornire la possibilità di eseguire codice non contenuto nella configurazione (gruppo "Code Execution")
  • in grado di fornire all'applicazione client informazioni sul file e sul sistema operativo dell'utente o di eseguire azioni non correlate all'utilizzo dei dati ("Violazione dei diritti")
  • in grado di causare un crash del server o di utilizzare risorse molto grandi (gruppo "Server crash")
  • in grado di causare un guasto del client (gruppo di guasti del client) – questo tipo non è considerato. Esempio: passaggio di un valore mutabile al server.
  • errori negli algoritmi di programmazione (loop infiniti, ricorsione illimitata, ecc.) (“Errori di programmazione”)

I principali progetti problematici a me noti (con esempi) sono elencati di seguito:

Procedura Esegui(<Строка>)

Esecuzione del codice. Consente di eseguire una parte di codice che gli viene passata come valore stringa. Quando vengono utilizzati sul server, è necessario assicurarsi che i dati ricevuti dal client non vengano utilizzati come parametro. Ad esempio, non è consentito il seguente utilizzo:

#Se Server Allora
ProceduraSuServer(Param1) Esporta
Esegui(Param1);
Fine della procedura
#Finisci se

Digitare "COMObject" (costruttore New COMObject(<Имя>, <Имя сервера>))

Crea un oggetto COM dell'applicazione esterna con diritti USER1CV8SERVER sul server delle applicazioni (o su un altro computer specificato). Se utilizzato su un server, assicurarsi che i parametri non vengano passati dall'applicazione client. Tuttavia, lato server, è efficace utilizzare questa funzionalità durante l'importazione/esportazione, l'invio di dati su Internet, l'implementazione di funzioni non standard, ecc.

Funzione GetCOMOggetto(<Имя файла>, <Имя класса COM>)
Violazione dei diritti ed esecuzione del codice. Simile al precedente, ottiene solo l'oggetto COM corrispondente al file.
Procedure e funzioni ComputerName(), TemporaryFileDirectory(), ProgramDirectory(), WindowsUsers()
Violazione dei diritti. Eseguendoli sul server, consentono di scoprire i dettagli dell'organizzazione del sottosistema server. Se utilizzati su un server, assicurarsi che i dati non vengano trasferiti al client o non siano accessibili agli operatori senza l'autorizzazione adeguata. Prestare particolare attenzione al fatto che i dati possono essere restituiti in un parametro passato per riferimento.
Procedure e funzioni per lavorare con i file (CopyFile, FindFiles, MergeFiles e molti altri), nonché Tipi di file.

Violazione dei diritti. Permette, eseguendoli sul server, di ricevere accesso generale ai file locali (e di rete) accessibili con i diritti utente USER1CV8SERVER. Se utilizzato consapevolmente, è possibile implementare in modo efficace attività come l'importazione/esportazione di dati sul server.

Assicurati di controllare i tuoi diritti utente 1C prima di utilizzare queste funzioni. Per verificare i diritti utente, è possibile utilizzare il seguente costrutto nel modulo server:

#Se Server Allora
Procedura PerformWorkWithFile() Esporta
RoleAdministrator = Metadata.Roles.Administrator;
Utente = SessionParameters.CurrentUser;
Se User.Roles.Contains(RoleAdministrator) Allora
//Il codice per lavorare con i file viene eseguito qui
finisci se;
#Finisci se

Assicurati di controllare i parametri se usi queste procedure e funzioni, altrimenti c'è il rischio di causare accidentalmente o deliberatamente danni irreparabili al server delle applicazioni 1C, ad esempio, quando si esegue il seguente codice sul server:

Percorso = "C:\Documents and Settings\Tutti gli utenti\Dati applicazioni\1C\1Cv8\";
MoveFile(Percorso + "srvrib.lst", Percorso + "Ecco dove va il file");

Dopo aver eseguito tale codice sul server, se l'utente USER1CV8SERVER ha i diritti per modificarlo, come descritto sopra, e dopo aver riavviato il processo del server (per impostazione predefinita, 3 minuti dopo l'uscita di tutti gli utenti), sorgerà una GRANDE domanda sull'avvio del server . Ma è anche possibile eliminare completamente i file...

Tipi "XBase", "BinaryData", "XML Reader", "XML Writer", "XSL Transformation", "ZipFile Writer", "ZipFile Reader", "Text Reader", "Text Writer"
Violazione dei diritti. Consentono, eseguendoli sul server, di accedere a file locali (e situati in rete) di determinati tipi e di leggerli/scriverli con i diritti utente USER1CV8SERVER. Se utilizzato consapevolmente, è possibile implementare in modo efficace attività come l'importazione/esportazione di dati sul server, la registrazione del funzionamento di determinate funzioni e la risoluzione di compiti amministrativi. In generale, le raccomandazioni coincidono con il paragrafo precedente, ma dovresti considerare la possibilità di trasferire dati da questi file (ma non oggetti di tutti questi tipi) tra la parte client e quella server.
Digita "Informazioni di sistema"
Violazione dei diritti. Consente di ottenere dati sul server dell'applicazione in caso di utilizzo errato e trasferimento dei dati alla parte client dell'applicazione. Si consiglia di limitare il diritto d'uso durante l'utilizzo.
Tipi "ConnessioneInternet", "InternetMail", "InternetProxy", "ConnessioneHTTP", "ConnessioneFTP"

Violazione dei diritti. Se utilizzato su un server, si connette a un PC remoto da un server delle applicazioni con i diritti USER1CV8SERVER.

firewall sul server delle applicazioni 1C.

Se utilizzato correttamente, è conveniente organizzare, ad esempio, l'invio di e-mail da un server di applicazioni.

Violazione dei diritti. Tipi "InformationBaseUserManager", "InformationBaseUser"

Se utilizzato in modo errato (in un modulo privilegiato), è possibile aggiungere utenti o modificare i parametri di autorizzazione degli utenti esistenti.

Formato della funzione SÌ! Questa funzione apparentemente innocua, se i suoi parametri non vengono controllati ed eseguiti sul server, può causare il crash dell'applicazione server. L'errore si verifica, ad esempio, durante la formattazione dei numeri e l'utilizzo della modalità di visualizzazione degli zeri iniziali e di un numero elevato di caratteri

Formato(1, "CHZ=999; CHVN=");

Spero che questo errore venga corretto nei prossimi rilasci della piattaforma, ma nel frattempo in tutte le chiamate a questa funzione eseguibili sul server controllate i parametri di chiamata.

Procedure e funzioni per il salvataggio dei valori (ValueInRowInt, ValueInFile)
Formato della funzione Queste funzioni non gestiscono i riferimenti circolari nelle raccolte o negli annidamenti molto profondi, quindi potrebbero bloccarsi in alcuni casi molto speciali.

Errori nei valori limite e dei parametri speciali nelle funzioni. Controllo dell'esecuzione.

Uno dei problemi che potresti incontrare quando usi un server è l'elevata "responsabilità" delle funzioni del server (la possibilità che l'intera applicazione server si blocchi a causa di un errore in una connessione e l'utilizzo di uno "spazio risorse" per tutte le connessioni) . Da qui la necessità di controllare i principali parametri di runtime:

  • Per le funzioni linguistiche integrate, controlla i parametri di avvio (un buon esempio è la funzione "Formato")
  • Quando si utilizzano i loop, assicurarsi che la condizione di uscita dal loop sia soddisfatta. Se il ciclo è potenzialmente infinito, limita artificialmente il numero di iterazioni: MaximumIterationCounterValue = 1000000;
    Contatore iterazioni = 1;
    Ciao
    FunctionWhichMayNotReturnFalseValue()
    AND (Conteggio iterazioni<МаксимальноеЗначениеСчетчикаИтераций) Цикл

    //.... Corpo del ciclo
    Contatore iterazioni = Contatore iterazioni + 1;
    FineCiclo;
    Se Contatore iterazioni>Valore massimo del contatore iterazioni Allora
    //.... gestisce l'evento di un'esecuzione del ciclo eccessivamente lunga
    finisci se;

  • Quando si utilizza la ricorsione, limitare il livello massimo di annidamento.
  • Durante la formazione e l'esecuzione delle query, cercare di evitare selezioni molto lunghe e selezioni di una grande quantità di informazioni (ad esempio, quando si utilizza la condizione "IN HIERARCHY", non utilizzare un valore vuoto)
  • Quando si progetta una base di informazioni, fornire una riserva sufficientemente ampia di profondità di bit per i numeri (altrimenti l'addizione e la moltiplicazione diventano non commutative e non associative, il che rende difficile il debug)
  • Nelle query eseguibili, verificare la logica operativa per la presenza di valori NULL e il corretto funzionamento delle condizioni e delle espressioni della query utilizzando NULL.
  • Quando si utilizzano le raccolte, controllare la possibilità di trasferirle tra il server delle applicazioni e il lato client.

Utilizzo dell'accesso terminale al lato client per limitare l'accesso

Spesso è possibile trovare consigli per utilizzare l'accesso al terminale per limitare l'accesso ai dati e migliorare le prestazioni eseguendo codice lato client sul server terminal. Sì, se configurato correttamente, l'utilizzo dell'accesso al terminale può effettivamente aumentare il livello generale di sicurezza del sistema, ma, sfortunatamente, spesso si riscontra il fatto che con l'uso pratico la sicurezza del sistema diminuisce solo. Proviamo a capire a cosa è collegato. Ora esistono due mezzi comuni per organizzare l'accesso al terminale: Microsoft Terminal Services (protocollo RDP) e Citrix Metaframe Server (protocollo ICA). In generale, gli strumenti Citrix forniscono opzioni di amministrazione degli accessi molto più flessibili, ma il prezzo di queste soluzioni è molto più alto. Considereremo solo le caratteristiche di base comuni a entrambi i protocolli che possono ridurre il livello generale di sicurezza. Esistono solo tre pericoli principali quando si utilizza l'accesso al terminale:
  • Possibilità di bloccare il lavoro di altri utenti sequestrando quantità eccessive di risorse
  • Accesso ai dati di altri utenti.
  • Copia non autorizzata di dati dal server terminale al computer dell'utente

In ogni caso, Terminal Services ti consente di:

  • Aumentare l'affidabilità del lavoro (se si verifica un guasto sul computer terminale, l'utente può successivamente continuare a lavorare dallo stesso posto)
  • Limitare l'accesso all'applicazione client e ai file salvati.
  • Trasferire il carico di elaborazione dalla workstation dell'utente al server di accesso al terminale
  • Gestisci le impostazioni di sistema in modo più centralizzato. Per gli utenti, le impostazioni salvate saranno valide indipendentemente dal computer da cui hanno effettuato l'accesso al sistema.
  • In alcuni casi è possibile utilizzare una soluzione terminale per l'accesso remoto al sistema.

È necessario limitare il numero di possibili connessioni al server terminal per un utente

A causa della "golosità" dell'applicazione client 1C per quanto riguarda le risorse, è necessario limitare quantità massima connessioni simultanee di un utente (operatore) al terminal server. Una connessione utilizzata attivamente può utilizzare fino a 300 MB di memoria con una sola istanza dell'applicazione. Oltre alla memoria, viene utilizzato attivamente il tempo della CPU, il che non contribuisce alla stabilità degli utenti di questo server. Oltre a impedire un uso eccessivo delle risorse del server, tale restrizione può impedire l'utilizzo dell'account di qualcun altro. Implementato dalle impostazioni standard del server terminal.

Non è necessario consentire l'esecuzione simultanea di più di una o due applicazioni client 1C in una connessione

Dettato dalle stesse ragioni del paragrafo precedente, ma tecnicamente più difficili da attuare. Il problema è che è quasi impossibile impedire il riavvio di 1C utilizzando gli strumenti del server terminal (il motivo verrà spiegato di seguito), quindi è necessario implementare questa funzionalità a livello della soluzione applicativa (che non è nemmeno una buona soluzione, poiché le sessioni potrebbero rimanere “sospese” per un po' di tempo. Se l'applicazione viene terminata in modo errato, è necessario perfezionare la soluzione applicativa nel modulo dell'applicazione e in alcuni libri di consultazione, il che complicherà l'uso degli aggiornamenti da 1C). È altamente auspicabile lasciare all'utente la possibilità di eseguire 2 applicazioni per poter eseguire alcune azioni (ad esempio, la generazione di report) in background: l'applicazione client, sfortunatamente, è in realtà a thread singolo.

Non è consigliabile concedere i diritti di accesso al server terminal agli utenti che hanno il diritto di eseguire attività informatiche ad uso intensivo di risorse in 1C o impedire tale avvio mentre altri utenti stanno lavorando attivamente.

Naturalmente, l'accesso a server terminaleÈ meglio lasciarlo solo agli utenti che non utilizzano attività come data mining, diagrammi geografici, importazione/esportazione e altre attività che caricano seriamente la parte client dell'applicazione. Se è ancora necessario risolvere tali attività, è necessario: avvisare l'utente che queste attività possono influenzare le prestazioni di altri utenti, registrare l'evento dell'inizio e della fine di tale processo nel registro, consentirne solo l'esecuzione ad orari regolamentati, ecc.

È necessario assicurarsi che ogni utente abbia diritti di scrittura solo su directory rigorosamente definite sul server terminale e che altri utenti non abbiano accesso ad esse.

In primo luogo, se non si limita la possibilità di scrivere nelle directory condivise (come la directory in cui è installato 1C), un utente malintenzionato può comunque modificare il comportamento del programma per tutti gli utenti. In secondo luogo, i dati di un utente (file temporanei, file per il salvataggio delle impostazioni del report, ecc.) non dovrebbero in nessun caso essere accessibili a un altro utente del terminal server - in generale, durante la normale configurazione, questa regola viene seguita. In terzo luogo, l'aggressore ha ancora la possibilità di "sporcare" la partizione in modo che non rimanga spazio sul disco rigido. So che mi obietteranno che il sistema operativo Windows, a partire da Windows 2000, ha un meccanismo di quote, ma si tratta di un meccanismo piuttosto costoso, e non ne ho praticamente mai visto un reale utilizzo.

Se i problemi precedenti relativi alla configurazione dell'accesso fossero generalmente abbastanza facili da implementare, allora questo (sembrerebbe) compito semplice, come la regolamentazione dell'accesso degli utenti ai file viene implementata in modo non banale. Innanzitutto, se non viene utilizzato il meccanismo delle quote, è possibile salvare file di grandi dimensioni. In secondo luogo, il sistema è costruito in modo tale che sarà quasi sempre possibile salvare il file in modo che sia disponibile per un altro utente.

Considerando che l'attività è difficile da risolvere completamente, si consiglia di controllare la maggior parte degli eventi dei file

È necessario vietare la connessione (mappatura) dei dispositivi disco, delle stampanti e degli appunti della workstation client.

In RDP e ICA è possibile organizzare la connessione automatica di dischi, stampanti, porte com degli appunti del computer terminale al server. Se esiste questa opportunità, è quasi impossibile impedire il lancio di codice straniero sul server terminale e il salvataggio dei dati da 1C sul client di accesso al terminale. Consenti queste funzionalità solo a chi dispone di diritti amministrativi.

L'accesso ai file di rete dal server terminal dovrebbe essere limitato.

Se ciò non viene fatto, l'utente sarà nuovamente in grado di eseguire codice indesiderato o salvare dati. Poiché il registro standard non tiene traccia degli eventi dei file (tra l'altro, è una buona idea da implementare per gli sviluppatori della piattaforma) ed è quasi impossibile impostare un controllo di sistema sull'intera rete (non ci sono risorse sufficienti per mantenerlo), è preferibile che l'utente possa inviare i dati sia per la stampa, sia tramite e-mail. Prestare particolare attenzione a garantire che il server terminal non funzioni direttamente con i supporti rimovibili degli utenti.

In nessun caso si dovrebbe lasciare l'application server sul terminal server quando si crea un sistema sicuro.

Se il server delle applicazioni viene eseguito sullo stesso computer delle applicazioni client, esistono molte possibilità di interromperne il normale funzionamento. Se per qualche motivo è impossibile separare le funzioni del server terminale e del server delle applicazioni, prestare particolare attenzione all'accesso dell'utente ai file utilizzati dal server delle applicazioni.

È necessario escludere la possibilità di eseguire tutte le applicazioni tranne 1C:Enterprise sul terminal server.

Questo è uno dei desideri più difficili da realizzare. Cominciamo dal fatto che è necessario configurare correttamente i criteri di sicurezza del gruppo nel dominio. Tutti i modelli amministrativi e i criteri di restrizione software devono essere configurati correttamente. Per metterti alla prova, assicurati che almeno le seguenti funzionalità siano bloccate:

La complessità dell'implementazione di questo requisito porta spesso alla possibilità di avviare una sessione 1C “extra” sul server terminal (anche se le altre applicazioni sono limitate, è fondamentalmente impossibile vietare l'avvio di 1C utilizzando Windows).

Considera le limitazioni del registro regolare (tutti gli utenti utilizzano il programma da un computer)

Ovviamente, poiché gli utenti aprono 1C in modalità terminale, il server terminale verrà registrato nel registro. Il registro non indica da quale computer l'utente si è connesso.

Terminal Server: protezione o vulnerabilità?

Quindi, dopo aver considerato le caratteristiche principali del terminal nord, possiamo dire che il terminal nord può potenzialmente aiutare nell'automazione a distribuire il carico informatico, ma costruire un sistema sicuro è piuttosto difficile. Uno dei casi in cui l'utilizzo di un server terminal è più efficace è quando si esegue 1C senza Esplora risorse in modalità a schermo intero per utenti con funzionalità limitate e un'interfaccia specializzata.

Lavoro della parte cliente

Utilizzo di Internet Explorer (IE)

Una delle condizioni per il normale funzionamento della parte client 1C è l'uso dei componenti di Internet Explorer. Devi stare molto attento con questi componenti.

Attenzione! In primo luogo, se un modulo spyware o adware è "allegato" a IE, verrà caricato anche se visualizzi file HTML in 1C. Finora non ho visto alcun uso consapevole di questa funzionalità, ma ho visto in una delle organizzazioni un modulo "spia" caricato da una delle reti pornografiche con 1C in esecuzione (il programma antivirus non è stato aggiornato, i cui sintomi sono stati rilevati : durante l'impostazione del firewall, era chiaro che 1C stava tentando di connettersi a un sito porno sulla porta 80). In realtà, questo è un altro argomento a favore del fatto che la protezione dovrebbe essere globale

Attenzione! In secondo luogo, il sistema 1C consente l'utilizzo di filmati Flash, oggetti ActiveX, VBScript nei documenti HTML visualizzati, l'invio di dati su Internet, persino l'apertura di file PDF (!), anche se in quest'ultimo caso chiede "apri o salva"... In generale, tutto ciò che il tuo cuore desidera. Un esempio di utilizzo non del tutto ragionevole delle funzionalità di visualizzazione e modifica HTML integrate:

  • Crea un nuovo documento HTML (File -> Nuovo -> Documento HTML).
  • Vai alla scheda "Testo" del documento vuoto.
  • Rimuovere il testo (interamente).
  • Vai alla scheda "Visualizza" di questo documento
  • Usando il drag-n-drop, sposta un file con un'estensione SWF (questi sono file di filmati Flash) da un Explorer aperto a una finestra di documento, ad esempio dalla cache del browser, anche se puoi anche usare un giocattolo FLASH per divertimento.
  • Che bello! Puoi eseguire un giocattolo su 1C!

Dal punto di vista della sicurezza del sistema, questo è completamente sbagliato. Finora non ho visto alcun attacco speciale su 1C attraverso questa vulnerabilità, ma molto probabilmente sarà una questione di tempo e del valore delle tue informazioni.

Ci sono altri problemi minori che sorgono quando si lavora con un campo documento HTML, ma i principali sono i due elencati. Tuttavia, se ti avvicini a queste funzionalità in modo creativo, puoi organizzare funzionalità di interfaccia davvero sorprendenti per lavorare con 1C.

Utilizzo di report ed elaborazioni esterne.

Attenzione! Report ed elaborazione esterni: da un lato, rappresentano un modo conveniente per implementare moduli stampati aggiuntivi, report normativi e report specializzati, dall'altro rappresentano un potenziale modo per aggirare molte restrizioni di sicurezza del sistema e interrompere il funzionamento dell'applicazione; server (per un esempio, vedere sopra in "Passaggio dei parametri"). Nel sistema 1C esiste un parametro speciale nell'insieme dei diritti per il ruolo "Apertura interattiva dell'elaborazione esterna", ma questo non risolve completamente il problema - per soluzione completaè necessario restringere notevolmente la cerchia degli utenti che possono gestire moduli stampati esterni, rapporti normativi e altre funzionalità standard di soluzioni standard implementate utilizzando l'elaborazione esterna. Ad esempio, per impostazione predefinita in UPP, tutti i ruoli utente principali hanno la capacità di lavorare con una directory di moduli stampati aggiuntivi e questa, in effetti, è la capacità di utilizzare qualsiasi elaborazione esterna.

Utilizzo di meccanismi standard per soluzioni e piattaforme standard (scambio di dati)

Alcuni dei meccanismi standard sono potenzialmente pericolosi e in modi inaspettati.

Stampa elenchi

Qualsiasi elenco (ad esempio, una directory o un registro di informazioni) nel sistema può essere stampato o salvato in un file. Per fare ciò basta utilizzare la funzionalità standard disponibile dal menu contestuale e dal menu “Azioni”:

Tieni presente che praticamente tutto ciò che l'utente vede negli elenchi può essere inviato a file esterni. L'unica cosa che possiamo consigliare è di tenere un registro della stampa dei documenti sui server di stampa. Per form particolarmente critici è necessario configurare il pannello azioni associato al campo protetto della tabella in modo che da tale pannello non sia disponibile la possibilità di visualizzare un elenco e disabilitare il menu contestuale (vedi Figura 6).

Scambio di dati in un database distribuito

Il formato di scambio dati è abbastanza semplice ed è descritto nella documentazione. Se l'utente ha la possibilità di sostituire più file, può apportare modifiche non autorizzate al sistema (sebbene si tratti di un compito piuttosto laborioso). La possibilità di creare un database periferico quando si utilizzano piani di scambio di database distribuiti non dovrebbe essere disponibile per gli operatori ordinari.

Scambio di dati XML standard

Nello scambio dati standard, utilizzato per lo scambio tra configurazioni standard (ad esempio, "Gestione commerciale" e "Contabilità aziendale"), è possibile specificare gestori di eventi per caricare e scaricare oggetti nelle regole di scambio. Ciò viene implementato ottenendo un gestore dal file e la procedura “Esegui()” per l'elaborazione standard del caricamento e scaricamento dei file (la procedura “Esegui()” viene avviata sul lato client). Ovviamente, non è difficile creare un file di scambio così falso che esegua azioni dannose. Per la maggior parte dei ruoli utente delle soluzioni standard, la condivisione è consentita per impostazione predefinita.

Raccomandazione: limitare l'accesso allo scambio XML per la maggior parte degli utenti (lasciandolo solo agli amministratori della sicurezza delle informazioni). Conserva i registri degli avvii di questa elaborazione, salvando il file di scambio, ad esempio, inviandolo per e-mail amministratore della sicurezza delle informazioni prima del download.

Utilizzando report generici, in particolare la Console Report

Un altro problema è l'accesso utente predefinito ai report generici, in particolare al report della Console report. Questo rapporto è caratterizzato dal fatto che consente di eseguire quasi tutte le richieste di sicurezza delle informazioni e, anche se il sistema dei diritti 1C (incluso RLS) è configurato in modo abbastanza rigoroso, consente all'utente di ottenere molte informazioni "extra" e forzare il server a eseguire una richiesta che consumerà tutte le risorse del sistema.

Utilizzo della modalità a schermo intero (modalità desktop)

Uno dei modi efficaci per organizzare interfacce specializzate con accesso limitato alle funzionalità del programma è la modalità a schermo intero della forma principale (e forse unica) dell'interfaccia utilizzata. In questo caso non ci sono problemi di accessibilità, ad esempio il menu "File" e tutte le azioni dell'utente sono limitate dalle funzionalità del modulo utilizzato. Per maggiori dettagli, vedere "Caratteristiche dell'implementazione della modalità desktop" sul disco ITS.

Backup

Il backup per la versione client-server di 1C può essere eseguito in due modi: caricando i dati in un file con estensione dt e creando copie di backup utilizzando SQL. Il primo metodo presenta molti svantaggi: è richiesto l'accesso esclusivo, la creazione di una copia stessa richiede molto più tempo, in alcuni casi (se la struttura di sicurezza delle informazioni viene violata) la creazione di un archivio è impossibile, ma c'è un vantaggio: la dimensione minima di l'archivio. Per il backup SQL è vero il contrario: la creazione di una copia avviene in background utilizzando il server SQL, a causa della struttura semplice e della mancanza di compressione: si tratta di un processo molto veloce e a condizione che l'integrità fisica dell'SQL il database non viene violato, viene eseguito il backup, ma la dimensione della copia coincide con quella reale della dimensione della sicurezza informatica nello stato espanso (non viene eseguita la compressione). A causa degli ulteriori vantaggi del sistema di backup MS SQL, è più consigliabile utilizzarlo (sono consentiti 3 tipi di backup: completo, differenziale, copia del registro delle transazioni; è possibile creare processi eseguiti regolarmente; una copia di backup e una copia di backup sistema vengono implementati rapidamente; è possibile prevedere la dimensione dello spazio su disco richiesto, ecc.). I punti principali per organizzare un backup dal punto di vista della sicurezza del sistema sono:

  • La necessità di scegliere una posizione di archiviazione per i backup in modo che non siano accessibili agli utenti.
  • La necessità di archiviare i backup a distanza fisica dal server MS SQL (in caso di catastrofi naturali, incendi, attacchi, ecc.)
  • La possibilità di concedere i diritti per avviare un backup a un utente che non ha accesso ai backup.

Per maggiori dettagli fare riferimento alla documentazione di MS SQL.

Crittografia dei dati

Per proteggere i dati da accessi non autorizzati vengono spesso utilizzati vari strumenti crittografici (sia software che hardware), ma la loro fattibilità dipende in gran parte dalla corretta applicazione e dalla sicurezza generale del sistema. Esamineremo la crittografia dei dati nelle varie fasi della trasmissione e archiviazione dei dati utilizzando i mezzi più comuni e i principali errori nella progettazione del sistema utilizzando strumenti crittografici.

Esistono diverse fasi principali del trattamento delle informazioni che possono essere protette:

  • Trasferimento di dati tra la parte client del sistema e il server delle applicazioni
  • Trasferimento di dati tra il server delle applicazioni e MS SQL Server
  • Dati archiviati su MS SQL Server (file di dati su disco fisico)
  • Crittografia dei dati archiviati nella sicurezza delle informazioni
  • Dati esterni (in relazione alla sicurezza delle informazioni)

Per i dati archiviati sul lato client e sul server dell'applicazione (impostazioni utente salvate, elenco di sicurezza delle informazioni, ecc.), la crittografia è giustificata solo in casi molto rari e pertanto non viene presa in considerazione in questa sede. Quando si utilizzano strumenti crittografici, non bisogna dimenticare che il loro utilizzo può ridurre significativamente le prestazioni del sistema nel suo insieme.

Informazioni generali sulla protezione crittografica delle connessioni di rete quando si utilizza il protocollo TCP/IP.

Senza sicurezza, tutte le connessioni di rete sono vulnerabili alla sorveglianza e all’accesso non autorizzati. Per proteggerli, puoi utilizzare la crittografia dei dati a livello di protocollo di rete. Per crittografare i dati trasmessi su una rete locale, vengono spesso utilizzati gli strumenti IPSec forniti dal sistema operativo.

Gli strumenti IPSec forniscono la crittografia dei dati trasmessi utilizzando gli algoritmi DES e 3DES, nonché la verifica dell'integrità utilizzando le funzioni hash MD5 o SHA1. IPSec può funzionare in due modalità: modalità trasporto e modalità tunnel. La modalità di trasporto è più adatta per proteggere le connessioni su una rete locale. La modalità tunnel può essere utilizzata per organizzare le connessioni VPN tra segmenti di rete separati o proteggere una connessione remota a una rete locale su canali dati aperti.

I principali vantaggi di questo approccio sono:

  • Possibilità di gestione centralizzata della sicurezza tramite strumenti Active Directory.
  • La possibilità di escludere connessioni non autorizzate al server delle applicazioni e al server MS SQL (ad esempio, è possibile proteggere dall'aggiunta non autorizzata di sicurezza delle informazioni sul server delle applicazioni).
  • Eliminazione dell'"ascolto" del traffico di rete.
  • Non è necessario modificare il comportamento dei programmi applicativi (in questo caso 1C).
  • La natura standard di tale soluzione.

Tuttavia, questo approccio presenta limiti e svantaggi:

  • IPSec non protegge i dati da interferenze e intercettazioni direttamente sui computer di origine e di destinazione.
  • La quantità di dati trasferiti sulla rete è leggermente maggiore rispetto a quando non si utilizza IPSec.
  • Quando si utilizza IPSec, il carico sul processore centrale è leggermente superiore.

Una descrizione dettagliata dell'implementazione degli strumenti IPSec va oltre lo scopo di questo articolo e richiede la comprensione dei principi di base del funzionamento del protocollo IP. Per configurare correttamente la sicurezza della connessione leggere la relativa documentazione.

Diversi aspetti devono essere menzionati separatamente contratto di licenza con 1C quando si organizzano le connessioni VPN. Il fatto è che, nonostante l'assenza di restrizioni tecniche, quando si collegano diversi segmenti di una rete locale o si accede da remoto computer separato a una rete locale, di solito richiede più forniture di base.

Crittografia dei dati durante il trasferimento tra la parte client del sistema e il server delle applicazioni.

Oltre alla crittografia a livello del protocollo di rete, è possibile crittografare i dati a livello del protocollo COM+, come menzionato nell'articolo "Regolamentazione dell'accesso degli utenti alla base informatica nella versione client-server" di ITS. Per implementarlo è necessario impostare il livello di autenticazione per le chiamate a “Packet Privacy” per l'applicazione 1CV8 in “Servizi componenti”. Quando impostato su questa modalità, il pacchetto viene autenticato e crittografato, inclusi i dati, l'identità e la firma del mittente.

Crittografia dei dati durante il trasferimento tra il server delle applicazioni e MS SQL Server

MS SQL Server fornisce i seguenti strumenti per la crittografia dei dati:

  • È possibile utilizzare Secure Sockets Layer (SSL) durante il trasferimento dei dati tra il server delle applicazioni e MS SQL Server.
  • Quando si utilizza la libreria di rete Multiprotocollo, la crittografia dei dati viene utilizzata a livello RPC. Si tratta di una crittografia potenzialmente più debole rispetto all'utilizzo di SSL.
  • Se viene utilizzato il protocollo di scambio Shared Memory (questo accade se il server delle applicazioni e MS SQL Server si trovano sullo stesso computer), la crittografia non viene in nessun caso utilizzata.

Per stabilire la necessità di crittografare tutti i dati trasmessi per uno specifico server MS SQL, è necessario utilizzare l'utilità "Server Network Utility". Eseguilo e nella scheda "Generale", seleziona la casella di controllo "Forza crittografia protocollo". Il metodo di crittografia viene selezionato in base a quello utilizzato dall'applicazione client (ovvero, il server delle applicazioni 1C). Per utilizzare SSL, è necessario configurare correttamente il servizio di certificazione sulla propria rete.

Per impostare la necessità di crittografare tutti i dati trasmessi per un server applicativo specifico, è necessario utilizzare l'utilità "Client Network Utility" (solitamente situata in "C:\WINNT\system32\cliconfg.exe"). Come nel caso precedente, nella scheda "Generale", seleziona la casella di controllo "Forza crittografia protocollo".

Vale la pena considerare che l'uso della crittografia in questo caso può avere un impatto significativo sulle prestazioni del sistema, soprattutto quando si utilizzano query che restituiscono grandi quantità di informazioni.

Per proteggere in modo più completo la connessione tra il server delle applicazioni e MS SQL Server quando si utilizza il protocollo TCP/IP, possiamo consigliare diverse modifiche alle impostazioni predefinite.

Innanzitutto è possibile impostare una porta diversa da quella standard (per impostazione predefinita viene utilizzata la porta 1433). Se decidi di utilizzare una porta TCP non standard per lo scambio dati, tieni presente che:

  • Il server MS SQL e il server delle applicazioni devono utilizzare la stessa porta.
  • Quando si utilizzano i firewall, questa porta deve essere consentita.
  • Non è possibile impostare una porta che possa essere utilizzata da altre applicazioni sul server MS SQL. Come riferimento, è possibile utilizzare http://www.ise.edu/in-notes/iana/assignments/port-numbers (indirizzo preso dalla documentazione online di SQL Server).
  • Quando si utilizzano più istanze del servizio MS SQL Server, assicurarsi di leggere la documentazione di MS SQL per la configurazione (sezione "Configurazione delle connessioni di rete").

In secondo luogo, nelle impostazioni del protocollo TCP/IP sul server MS SQL, è possibile impostare il flag "Nascondi server", che vieta le risposte alle richieste broadcast per questa istanza del servizio MS SQL Server.

Crittografia dei dati MS SQL archiviati su disco

Esiste una selezione abbastanza ampia di software e hardware per crittografare i dati situati su un disco locale (questo include la capacità standard di Windows di utilizzare EFS, l'uso di chiavi eToken e programmi di terze parti come Jetico Bestcrypt o PGPDisk). Uno dei compiti principali svolti da questi strumenti è proteggere i dati in caso di perdita del supporto (ad esempio, se un server viene rubato). Vale soprattutto la pena notare che Microsoft sconsiglia di archiviare i database MS SQL su supporti crittografati, e questo è abbastanza giustificato. Il problema principale in questo caso è un calo significativo della produttività e possibili problemi affidabilità dai guasti. Il secondo fattore che complica la vita dell'amministratore di sistema è la necessità di garantire la disponibilità di tutti i file del database nel momento in cui il servizio MS SQL vi accede per la prima volta (vale a dire, è auspicabile che le azioni interattive siano escluse quando si collega un supporto crittografato).

Per evitare un notevole calo delle prestazioni del sistema, è possibile sfruttare la capacità di MS SQL di creare database in più file. Naturalmente, in questo caso, il database MS SQL non dovrebbe essere creato dal server 1C durante la creazione dell'infobase, ma dovrebbe essere creato separatamente. Di seguito è riportato un esempio di script TSQL con commenti:

USO maestro
ANDARE
-- Creare un database SomeData,
CREA DATABASE SomeData
-- i cui dati si trovano interamente nel filegroup PRIMARY.
SULLA PRIMARIA
-- Il file di dati principale si trova su un supporto crittografato (unità logica E:)
-- e ha una dimensione iniziale di 100 MB, può essere aumentata automaticamente a 200 MB con
-- Passi da 20 MB
(NOME = AlcuniDati1,
NOMEFILE = "E:\AlcuniDati1.mdf",
DIMENSIONE = 100 MB,
DIMENSIONE MASSIMA = 200,
CRESCITA FILE = 2),
-- Il secondo file di dati si trova su un supporto non crittografato (unità logica C:)
-- e ha una dimensione iniziale di 100 MB, può essere aumentata automaticamente fino al limite
-- spazio su disco con incrementi del 5% della dimensione del file corrente (arrotondato a 64 KB)
(NOME = AlcuniDati2,
FILENAME = "c:\programmi\microsoft sql server\mssql\data\SomeData2.ndf",
DIMENSIONE = 100 MB,
DIMENSIONE MASSIMA = ILLIMITATO,
CRESCITA FILE = 5%)
ACCEDERE
-- Sebbene il registro delle transazioni possa anche essere diviso in parti, ciò non dovrebbe essere fatto,
-- Perché questo file cambia molto più frequentemente e viene pulito regolarmente (ad esempio, quando
-- creazione di un backup del database).
(NOME = SomeDatalog,
FILENAME = "c:\programmi\microsoft sql server\mssql\data\SomeData.ldf",
DIMENSIONE = 10 MB,
DIMENSIONE MASSIMA = ILLIMITATO,
CRESCITA FILE = 10)
ANDARE
-- È meglio dare immediatamente la proprietà del database all'utente per conto di chi
-- 1C si connetterà. Per fare ciò, dobbiamo dichiarare la base corrente
- appena creato,
USA Alcuni dati
ANDARE
-- ed esegui sp_changedbowner
EXEC sp_changedbowner @loginame = "SomeData_dbowner"

Una breve digressione sulla crescita automatica della dimensione del file di dati. Per impostazione predefinita, le dimensioni dei file per i nuovi database vengono aumentate con incrementi del 10% rispetto alla dimensione del file corrente. Questa è una soluzione del tutto accettabile per i database di piccole dimensioni, ma non molto buona per quelli di grandi dimensioni: con una dimensione del database, ad esempio, di 20 GB, il file dovrebbe immediatamente aumentare di 2 GB. Anche se questo evento si verifica abbastanza raramente, può durare diverse decine di secondi (tutte le altre transazioni sono effettivamente inattive durante questo periodo), il che, se si verifica durante il lavoro attivo con il database, può causare alcuni errori. La seconda conseguenza negativa dell'incremento proporzionale, che si verifica quando lo spazio su disco è quasi completamente pieno, è la probabilità di un guasto prematuro dovuto allo spazio libero insufficiente. Ad esempio, se una partizione del disco con una capacità di 40 GB è completamente dedicata a un database (più precisamente, a un file di questo database), allora la dimensione critica del file del database alla quale è necessario urgentemente (molto urgentemente, al punto da interrompere il normale lavoro degli utenti) per riorganizzare l'archiviazione delle informazioni è un file di dati della dimensione di 35 GB. Con la dimensione di incremento impostata su 10-20 MB, puoi continuare a lavorare fino a raggiungere 39 GB.

Pertanto, sebbene l'elenco precedente specifichi un aumento della dimensione di uno dei file di database con incrementi del 5%, quando grandi formatiÈ meglio che il database imposti un incremento fisso di 10-20 MB. Quando si impostano i valori di incremento per l'aumento della dimensione dei file del database, è necessario tenere presente che finché uno dei file in un gruppo di file non raggiunge la sua dimensione massima, si applica la regola: i file in un gruppo di file vengono aumentati tutti contemporaneamente tempo, quando saranno tutti completamente riempiti. Pertanto, nell'esempio precedente, quando il file SomeData1.mdf raggiunge la dimensione massima di 200 MB, il file SomeData2.ndf avrà una dimensione di circa 1,1 GB.

Dopo aver creato un database di questo tipo, anche se i suoi file non protetti SomeData2.ndf e SomeData.ldf diventano accessibili a un utente malintenzionato, sarà estremamente difficile ripristinare il vero stato del database: i dati (comprese le informazioni sulla struttura logica del database ) saranno sparsi su diversi file e le informazioni chiave (su, ad esempio, quali file compongono questo database) si troveranno nel file crittografato.

Naturalmente, se si utilizza la memorizzazione dei file di database utilizzando mezzi crittografici, il backup (almeno di questi file) non dovrebbe essere eseguito su supporti non crittografati. Per eseguire il backup di singoli file di database, utilizzare la sintassi del comando BACKUP DATABASE appropriata. Tieni presente che sebbene sia possibile proteggere un backup del database con una password (le opzioni "PASSWORD = " e "MEDIAPASSWORD = " del comando "BACKUP DATABASE"), tale backup non viene crittografato!

Crittografia dei dati del client e del server delle applicazioni archiviati sui dischi

Nella maggior parte dei casi, non può essere considerato giustificato archiviare i file utilizzati da 1C:Enterprise (parte client e server applicazioni) su supporti crittografati a causa di costi irragionevolmente elevati, tuttavia, se tale necessità esiste, tenere presente che la parte server applicazioni e client dell'applicazione molto spesso creano file temporanei. Spesso questi file possono rimanere anche dopo che l'applicazione ha terminato l'esecuzione ed è quasi impossibile garantirne la rimozione utilizzando gli strumenti 1C. Pertanto, diventa necessario crittografare la directory utilizzata per i file temporanei in 1C o non memorizzarla su disco utilizzando un'unità RAM (quest'ultima opzione non è sempre possibile a causa della dimensione dei file generati e dei requisiti di RAM di 1C:Enterprise applicazione stessa).

Crittografia dei dati utilizzando strumenti 1C integrati.

Le funzionalità standard per l'utilizzo della crittografia in 1C si riducono all'utilizzo di oggetti per lavorare con file Zip con parametri di crittografia. Sono disponibili le seguenti modalità di crittografia: algoritmo AES con una chiave di 128, 192 o 256 bit e un algoritmo obsoleto originariamente utilizzato nell'archiviatore Zip. I file zip crittografati con AES non sono leggibili da molti archiviatori (WinRAR, 7zip). Per generare un file contenente dati crittografati, è necessario specificare una password e un algoritmo di crittografia. Di seguito è riportato l'esempio più semplice di funzioni di crittografia-decrittografia basate su questa funzionalità:

Funzione EncryptData (dati, password, metodo di crittografia = non definito) Esportazione

// Scrive i dati in un file temporaneo. In effetti, non tutti i dati possono essere salvati in questo modo.
ValoreInFile(NomeFileTemporaneo, Dati);

// Scrive dati temporanei nell'archivio
Zip = Nuovo ZipFileRecord (nome file archivio temporaneo, password, metodo di crittografia);
Zip.Add(NomeFileTemporaneo);
Zip.Scrivi();

// Legge i dati dall'archivio ricevuto nella RAM
EncryptedData = NewValueStorage(NewBinaryData(ArchiveTemporaryFileName));

// File temporanei: elimina

Funzione EndFunctions DecryptData (dati crittografati, password) Esportazione

// Attenzione! La correttezza dei parametri passati non viene monitorata

// Scrive il valore passato in un file
ArchiveTemporaryFileName = GetTemporaryFileName("zip");
BinaryArchiveData = EncryptedData.Get();
BinaryArchiveData.Write(ArchiveTemporaryFileName);

// Estrae il primo file dell'archivio appena scritto
NomeFileTemporaneo = OttieniNomeFileTemporaneo();
Zip = Nuovo ReadZipFile (nome file archivio temporaneo, password);
Zip.Extract(Zip.Items, TemporaryFileName, ZIPFilePathRecoveryMode.Do NotRecover);

// Leggi il file scritto
Dati = ValoreDaFile(NomeFileTemporaneo + "\" + Zip.Elementi.Nome);

//Elimina i file temporanei
EliminaFile(NomeFileTemporaneo);
EliminaFile(ArchiveTemporaryFileName);

Dati di restituzione;

EndFunction

Naturalmente, questo metodo non può essere definito ideale: i dati vengono scritti in una cartella temporanea in forma aperta, le prestazioni del metodo, francamente, sono peggiori che mai, l'archiviazione nel database richiede una quantità di spazio estremamente elevata, ma questo è l'unico metodo che si basa solo sui meccanismi integrati della piattaforma. Inoltre, ha un vantaggio rispetto a molti altri metodi: questo metodo racchiude contemporaneamente i dati insieme alla crittografia. Se si desidera implementare la crittografia senza gli svantaggi di questo metodo, è necessario implementarli in un componente esterno oppure ricorrere alle librerie esistenti attraverso la creazione di oggetti COM, ad esempio utilizzando Microsoft CryptoAPI. Ad esempio, forniremo le funzioni di crittografia/decrittografia di una stringa in base alla password ricevuta.

Funzione EncryptStringDES(UnencryptedString, Password)

CAPICOM_ENCRYPTION_ALGORITHM_DES = 2; // Questa costante proviene da CryptoAPI


EncryptionMechanism.Content = UnencryptedString;
Motore di crittografia.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_DES;
EncryptedString = EncryptionMechanism.Encrypt();

Restituisce EncryptedString;

EndFunction // EncryptStringDES()

Funzione DecryptStringDES(EncryptedString, Password)

//Attenzione! I parametri non vengono controllati!

Motore di crittografia = Nuovo COMObject("CAPICOM.EncryptedData");
EncryptionMechanism.SetSecret(Password);
Tentativo
EncryptionMechanism.Decrypt(EncryptedString);
Eccezione
// Password errata!;
Restituisce Non definito;
Finetentativo;

ReturnEncryptionMechanism.Content;

EndFunction // DecryptStringDES()

Tieni presente che il passaggio di un valore vuoto come stringa o password a queste funzioni genererà un messaggio di errore. La stringa ottenuta utilizzando questa procedura di crittografia è leggermente più lunga dell'originale. La specificità di questa crittografia è che se si crittografa una stringa due volte, le stringhe risultanti NON saranno identiche.

Errori di base quando si utilizzano strumenti crittografici.

Quando si utilizzano strumenti crittografici, spesso si commettono gli stessi errori:

Sottovalutare la penalità prestazionale quando si utilizza la crittografia.

La crittografia è un compito che richiede un numero piuttosto elevato di calcoli (soprattutto per algoritmi come DES, 3DES, GOST, PGP). E anche quando si utilizzano algoritmi ottimizzati e ad alte prestazioni (RC5, RC6, AES), non c'è scampo dal trasferimento di dati non necessario nella memoria e dall'elaborazione computazionale. E questo quasi annulla le capacità di molti componenti del server (array RAID, adattatori di rete). Quando si utilizza la crittografia hardware o la derivazione hardware della chiave di crittografia, esiste un ulteriore possibile collo di bottiglia delle prestazioni: la velocità di trasferimento dei dati tra il dispositivo aggiuntivo e la memoria (dove le prestazioni di tale dispositivo potrebbero non essere critiche). Quando si utilizza la crittografia di piccole quantità di dati (ad esempio un messaggio di posta elettronica), l'aumento del carico di elaborazione sul sistema non è così evidente, ma nel caso della crittografia totale di tutto ciò può influire notevolmente sulle prestazioni del sistema nel complesso.

Sottostima delle moderne capacità di selezione di password e chiavi.

Al momento, le capacità della tecnologia sono tali che una chiave con una lunghezza di 40-48 bit può essere selezionata da una piccola organizzazione e una chiave con una lunghezza di 56-64 bit da una grande organizzazione. Quelli. devono essere utilizzati algoritmi che utilizzano una chiave di almeno 96 o 128 bit. Ma la maggior parte delle chiavi viene generata utilizzando algoritmi hash (SHA-1, ecc.) basati sulle password immesse dall'utente. In questo caso, una chiave con una lunghezza di 1024 bit potrebbe non essere d'aiuto. Innanzitutto, viene spesso utilizzata una password facile da indovinare. I fattori che facilitano la selezione sono: utilizzare un solo caso di lettere; uso di parole, nomi ed espressioni nelle password; utilizzo di date conosciute, compleanni, ecc.; utilizzare "modelli" durante la generazione delle password (ad esempio, 3 lettere, quindi 2 numeri, quindi 3 lettere in tutta l'organizzazione). Una buona password dovrebbe essere una sequenza abbastanza casuale di lettere maiuscole, numeri e segni di punteggiatura. Le password inserite da tastiera lunghe fino a 7-8 caratteri, anche se si seguono queste regole, possono essere indovinate in un tempo ragionevole, quindi è meglio che la password sia almeno di 11-13 caratteri. La soluzione ideale è evitare di generare una chiave tramite password, ad esempio per utilizzare varie smart card, ecc., ma in questo caso è necessario prevedere la possibilità di proteggere dalla perdita del supporto della chiave di crittografia.

Archiviazione non sicura di chiavi e password.

Esempi comuni di questo errore sono:

  • password lunghe e complesse scritte su foglietti adesivi incollati sul monitor dell'utente.
  • memorizzare tutte le password in un file non protetto (o protetto in modo molto più debole del sistema stesso)
  • conservazione delle chiavi elettroniche in pubblico dominio.
  • trasferimento frequente di chiavi elettroniche tra utenti.

Perché realizzare una porta blindata se la chiave è sotto lo zerbino?

Trasferimento di dati inizialmente crittografati in un ambiente non sicuro.

Quando imposti un sistema di sicurezza, assicurati che faccia il suo lavoro. Ad esempio, mi sono imbattuto in una situazione (non correlata a 1C) in cui un file inizialmente crittografato, quando il programma era in esecuzione in chiaro, veniva inserito in una cartella temporanea da dove poteva essere letto in sicurezza. Spesso le copie di backup dei dati crittografati in forma chiara si trovano da qualche parte “non lontano” da questi dati.

Utilizzo di strumenti crittografici per altri scopi

Crittografando i dati in transito, non puoi aspettarti che i dati siano inaccessibili nel luogo in cui vengono utilizzati. Ad esempio, i servizi IPSec non impediscono in alcun modo al server delle applicazioni di "sniffare" il traffico di rete a livello di applicazione.

Pertanto, per evitare errori durante l'implementazione dei sistemi crittografici, dovresti (come minimo) fare quanto segue prima di distribuirlo.

  • Scoprire:
    • Cosa deve essere protetto?
    • Quale metodo di protezione dovresti usare?
    • Quali parti del sistema devono essere protette?
    • Chi controllerà gli accessi?
    • La crittografia funzionerà in tutte le aree giuste?
  • Determinare dove sono archiviate le informazioni, come verranno inviate in rete e i computer da cui si accederà alle informazioni. Ciò fornirà informazioni sulla velocità, la capacità e l'utilizzo della rete prima di implementare il sistema, utile per ottimizzare le prestazioni.
  • Valutare la vulnerabilità del sistema a vari tipi di attacchi.
  • Sviluppare e documentare un piano di sicurezza del sistema.
  • Valutare l’efficienza economica (giustificazione) dell’utilizzo del sistema.

Conclusione

Naturalmente, in una rapida rassegna è impossibile indicare tutti gli aspetti legati alla sicurezza in 1C, ma permettiamoci di trarre alcune conclusioni preliminari. Naturalmente, questa piattaforma non può essere definita ideale: come molte altre, ha i suoi problemi nell'organizzazione di un sistema sicuro. Ma ciò non significa in alcun modo che questi problemi non possano essere aggirati; al contrario, quasi tutte le carenze possono essere eliminate con uno sviluppo, un’implementazione e un utilizzo adeguati del sistema. La maggior parte dei problemi sorgono a causa dello sviluppo insufficiente di una soluzione applicativa specifica e del suo ambiente di esecuzione. Ad esempio, le soluzioni standard senza modifiche significative semplicemente non implicano la creazione di un sistema sufficientemente sicuro.

Questo articolo dimostra ancora una volta che qualsiasi insieme di misure di sicurezza deve coprire tutte le fasi di implementazione: sviluppo, distribuzione, amministrazione del sistema e, ovviamente, misure organizzative. Nei sistemi informativi è il “fattore umano” (compresi gli utenti) la principale minaccia alla sicurezza. Questo insieme di misure deve essere ragionevole ed equilibrato: non ha senso ed è improbabile che vengano stanziati fondi sufficienti per organizzare una protezione che superi il costo dei dati stessi.

Azienda è un servizio unico per acquirenti, sviluppatori, rivenditori e partner affiliati. Inoltre, questo è uno dei migliori negozi di software online in Russia, Ucraina e Kazakistan, che offre ai clienti una vasta gamma di prodotti, molti metodi di pagamento, un'elaborazione degli ordini rapida (spesso istantanea) e il monitoraggio del processo di ordine in modo personale. sezione.