Você está na página 1de 5

Universidade Federal de Campina Grande CEEI - Centro de Engenharia Eltrica e Informtica DSC - Departamento de Sistemas e Computao Disciplina: Sistemas

Operacionais Professora: Raquel Vigolvino Lopes Alunos: Igor e Kaio Lab SO - Sistemas de Arquivos
Questo1
1. Uma possvel implementao do mdulo de Monitoramento de nosso prottipo, o qual responsvel por detectar as modificaes feitas nosistemade arquivos,consisteeminterceptar as system calls relacionadas com esse sistema. Nessa interceptao, o cdigo das system calls modificado para executar alguma rotina adicional, por exemplo, adicionar logging. Em seguida, o log coletado analisado para definir se houve ou no alguma modificao no sistema dearquivos. Considerando essa implementao, determine que systems calls listadas abaixo deveriam ser interceptadas em nosso prottipo. Alm disso, para cada uma das chamadas escolhidas, determine que informao deve ser considerada (quais argumentos, bem como valores de retorno dasfunes).Suasescolhasdevemserjustificadas.

http://linux.die.net/man/2/open Deciso: Deve serinterceptada, poispodeservirparacriararquivos,escrever eatfornecer permisses. Informaesconsideradas: flags com valores definidos em O_WRONLY ou O_RDWR solicitado que o arquivo seja aberto somente para escrita, ou tanto para escrita como leitura repectivamente ou outros valores como O_APPEND que abre o arquivo em modo de acrscimo, ou seja, o apontador estar no fim do arquivo, tambm como para O_ASYNC que avisar quando se o arquivo foi lido ou escrito, O_CREAT que cria um arquivo, indicado pelo nome, se aindanoexistir, e necessrio omodo,pois os resultados podem ficar indefinidos, assim fornecendo as permisses do recm arquivo criado,O_SYNC queabreo arquivoparagravao e no ser concluda at que o arquivo seja gravado fisicamente no disco e mode pois necessrio ter permissosuficienteparaobteroacessosolicitado. Oopenretornaumfiledescriptoremcasodesucesso,ou1emcasodeerro. http://linux.die.net/man/2/close

Deciso: Deve ser interceptado, pois esse comando fecha o arquivo e possvel que alteraestenhamsidofeitaseconcludas.

Informaes consideradas: O close desassociao mapeamento do descritor dearquivo eo processo a partir do arquivo, e dado que o close foi bem sucedido pode ocorrer a transferncia dos dados, mas para que se possa garantir que os dados foram salvos no disco deve ser utilizada a sincronizao.Retorna0 em casode sucesso. Emcaso deerro, eleretorna1. http://linux.die.net/man/2/dup Deciso: Deve ser interceptado pois ele um duplicador de descritor de arquivos e pode modificaroestadodealgumarquivo. Informaes consideradas: Em caso de sucesso, a chamada do sistema retorna o novo descritor.Emcasodeerro,1retornado. http://linux.die.net/man/2/write Deciso:Deveserinterceptado,poisowritepordefiniogeramodificaodearquivos. Informaes consideradas: count com valor definido em 0 resulta num retorno tambm definido em 0, ou seja, no foifeita a escritade nenhum byte, almdisso noh garantias que os dados sido escritos no seu destino, pois o kernel copia os dados para um buffer, mesmo que ja tenha ocorrido o retorno da resposta. Em caso de sucesso, o nmero de bytesescritosretornado,casocontrario1retornado. http://linux.die.net/man/2/read Deciso:Nodeveserinterceptada,jqueumafunoparaleitura. http://linux.die.net/man/2/llseek Deciso: Como a funo Ilseek posiciona um ponteiro em um determinadoponto doarquivo antesdaleituraougravaodedados,devesercapturado. Informaes consideradas: Ele retorna a posio do arquivo atualizado no argumento result,sealgodeerradoocorrereleretorna1. http://linux.die.net/man/2/fstat Deciso: No deve serinterceptado,porque somente retorna informaes doarquivo,ainda que a estrutura estatstica definida,struct, seja importante, pois alguns dos seusdomnios como o st_ctime, queretornaa ultimavez quehouve mudanano arquivo, retornam 0 caso ocorra sucesso, armazenam os metadados do arquivo no status fornecido, caso ocorra erroretornam1. http://linux.die.net/man/2/fstatfs Deciso: No deve ser capturado, pois assim como anterior, serve para retornar informaessobreumarquivoabertoreferenciadopelodescritorchamadofd. http://linux.die.net/man/2/statfs Deciso: No deve ser capturado, anloga ao fstatfs, a diferena queem vez deutilizar odescritorcomoparmetro,utilizaocaminhodoarquivo. http://linux.die.net/man/2/stat Deciso:Nodevesercapturada,poisserveparaobterinformaesdearquivos. Informaesconsideradas: http://linux.die.net/man/2/lstat Deciso: No deve ser capturado, idntico ao stat, exceto por ter um link simblico, retornandoinformaessobreolinkemsi,enosobreoarquivodedestino. http://linux.die.net/man/2/getxattr Deciso:Nodevesercapturado,poisserveparaobterinformaesdearquivos. Informaes consideradas: A chamada bem sucedida armazena o atributo estendido com o nome chave do caminho do arquivo no valor padro fornecido, que size bytes de comprimento. Ele retorna o tamanho real do valor. Se o tamanho for 0, a chamadaretorna o tamanhodo valor sem armazenar.Assim,passar0 permite determinar otamanho correto

dos aplicativos para o buffer armazenando o valor da chave. Diante desse tamanho, os aplicativospodementoalocarouredimensionarobuffer,conformenecessrio. http://linux.die.net/man/2/lgetxattr Deciso:Nodevesercapturado,poisserveparaobterinformaesdearquivos. Informaes consideradas: lgetxattr se comporta o mesmo que getxattr, com a diferena que caminho um link simblico, e ele retorna atributos estendidosdo linkemsi,em vez doalvodolink. http://linux.die.net/man/2/fgetxattr Deciso:Nodevesercapturado,poisserveparaobterinformaesdearquivos. Informaes consideradas: fgetxattr opera sobre o descritor de arquivo fd, caso contrrio, elesecomportacomoogetxattr. http://linux.die.net/man/2/removexattr Deciso: Deve ser capturado, pois remove atributos dos arquivos identificados por nome, modificandodealgumaformaseuestado. Informaes consideradas: O removexattr remove a chave de atributo estendidoapartir do caminhodoarquivo.Emcasodesucessoretornadozero,casocontrrioretornado1. http://linux.die.net/man/2/lremovexattr Deciso:Assimcomooanterior,deveserincludo,poisremoveatributosdoarquivo. Informaes consideradas: O lremovexattr se comporta da mesma forma que removexattr, adiferenaocaminhoqueumlinksimblico. http://linux.die.net/man/2/fremovexattr Deciso:Devesercapturado,poisremoveatributosdoarquivo,modificandoseuestado. Informaes consideradas: O fremovexattr opera sobre o descritor de arquivo fd, caso contrrio,elesecomportadamesmaformaqueremovexattr. http://linux.die.net/man/2/setxattr Deciso: Deve ser capturado, pois seta um atributo do do arquivo identificado pelo nome, modificandoseuestado. Informaes consideradas: setxattr define a chave de atributos estendidos para um novo valor, que tamanho em bytes de comprimento. O campo de flags modifica o comportamentodachamada. http://linux.die.net/man/2/lsetxattr Deciso:Assimcomooanterior,devesercapturadopoissetaumatributosdoarquivo. Informaes consideradas: O comportamento de lsetxattr equivalente a setxattr, a diferena que o caminho um link simblico, em que ele defineos atributos estendidos noprpriolink. http://linux.die.net/man/2/fsetxattr Deciso: Deve ser capturado, pois seta um atributo do arquivo identificado pelo nome, modificandoseuestado. Informaes consideradas: Ele opera sobre o descritor de arquivo fd,caso contrrio, elese comportacomoosetxattr. http://linux.die.net/man/2/listxattr

Deciso: No deve ser capturado pois recupera uma lista de atributo e no modifica o estadodosarquivos. Informaes consideradas: Retorna uma lista de chaves de atributos estendidos associadosaoarquivodenotadopelocaminho. http://linux.die.net/man/2/llistxattr Deciso: No deve ser capturado, pois recupera uma lista de atributo e no modifica o

estadodosarquivos. Informaes consideradas: O llistxattr se comporta da mesma forma que listxattr, deferenteporoatributoserumlinksimblico. http://linux.die.net/man/2/flistxattr Deciso: No deve ser capturado, pois recupera uma lista de atributo e no modifica o estadodosarquivos. Informaes consideradas: flistxattr opera sobre o descritor de arquivo fd, caso contrrio, elesecomportacomolistxattr. http://linux.die.net/man/2/mknod Deciso:Devesercapturado,poiscriaarquivosespeciaisouordinrios. Informaes consideradas: A chamada cria um n do sistema de arquivos definido no caminho, com atributos especficos como o modoque especifica as permisseseo dev quecriaaspermisses. http://linux.die.net/man/2/mkdir Deciso:Devesercapturado,jqueumdiretriopodesercriado. Informaes consideradas: mkdir cria o caminho do diretrio, que pode ser relativo ou absoluto, junto com o modo, bits de permisso, e retorna 0, caso ocorra um erro retorna 1. http://linux.die.net/man/2/rename Deciso: Deve ser capturado, pois se a localizao de um arquivo ou o seu nome forem modificados,devemossincronizalo. Informaes consideradas: O rename renomeia o nome do caminho deumcaminhoantigo para um novo caminho. O contedo dos arquivos e o inode permanecem os mesmos. Ambos os caminhos, novo e velho, devem residir no mesmo sistema de arquivos. Ele retorna0casoocorrasucesso,e1seocorrererro. http://linux.die.net/man/2/rmdir Deciso: Deve ser capturado, pois se um diretrio for excludo, mesmoque neste casos funcioneparadiretriosvazios,eledevesersincronizado. Informaes consideradas: O rmdir remove um diretrio da hierarquia de sistema de arquivos, sendo que este deve estar vazio, executando a busca em profundidade do sistema de arquivos removendo todos os arquivos e diretrios se usado com r, que a eliminaorecursiva.Eleretorna0emcasodesucessoe1emcasodeerro. http://linux.die.net/man/2/symlink Deciso:Devesercapturado,poiscriaumlink,umvinculo,paraumarquivojexistente. Informaes consideradas: O symlink no apenas uma entrada de diretrio adicional, mas um tipo especial de arquivo completo. Este arquivo especial contm o caminho para um arquivo diferente, chamado de destino do symlink. Em tempo de execuo, o kernel substitui este caminho para o caminho do symlink, assim, fcil perceber a diferena entre um link simblico e seu arquivo alvo. Um symlink pode ser relativo ou absoluto. O symlink cria o link simblico com o novo caminho apontando para o alvo que o antigo caminho,emseguida,retorna0.Emcasodeerro,symlinkretorna1. http://linux.die.net/man/2/unlink Deciso: Deve ser capturado, ele desvincula, ou seja, remove os caminhos dosistemade arquivos, j que apaga atravs de um nome a partir do sistema de arquivos, assimocorre modificaonosistemadearquivoseissotemquesernotificado. Informaes consideradas: Se o nome passado foi a ltima referncia para o arquivo, o arquivo excludo do sistema de arquivos. Se, no entanto, um processo tem o arquivo aberto, o kernel no vai apagar o arquivo do sistema de arquivosatque o processo feche

o arquivo. Se caminho referese a um link simblico, o link, destrudo. Se caminho referese a outro tipo de arquivo especial, como um dispositivo, ou socket, o arquivo especialremovidodosistemadearquivos. http://linux.die.net/man/2/creat Deciso: O creat similar a o open, mas o creat permanece mais para termos de compatibilidade,sendoassimtambmescolhidaparaserinterceptadapeloprottipo. http://linux.die.net/man/2/readdir Deciso:Nodevesercapturado,poisumasystemscallsapenasdeleitura. Informaes consideradas: Depois de ter criado um fluxo de diretrio com opendir(), o programa pode comear leitura de entradas do diretrio. Para fazer isso deve serutilizado oreaddir,queretornaasentradasumaporuma,apartirdeumdeterminadoobjetoDIR. http://linux.die.net/man/2/mmap Deciso: No deve ser capturada, pois se refere a mapeamento de memria, mesmo que ele crie um novo espao de endereamento de memria virtual e a proteo das pginas sejadeescritanotemosumarquivoparaabriregerenciar. Informaes consideradas: Utilizamos caso queremos forar o uso de ummapeamento de memria sobre um monto de atribuies especficas, ou talvez porque estamos escrevendo o prprio sistema de alocao de memria, poderemos criar manualmente o prpriocaminhodemapeamentooumemriaannima. http://linux.die.net/man/2/munmap Deciso: Como referese a mmap, no deve ser capturado, pois ele exclui os mapeamentosfeitospormmap. Informaes consideradas: O munmap fornecido para a remoo de um mapeamento criadocommmap.Eleretorna0ocorrendosucessoe1seocorrerfalha.

Você também pode gostar